user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<RmatMult>:
  endbr64
  movl   $0x0,(%rdi)
  movss  (%rsi),%xmm2
  pxor   %xmm0,%xmm0
  mulss  (%rdx),%xmm2
  addss  %xmm0,%xmm2
  movss  %xmm2,(%rdi)
  movss  0x4(%rsi),%xmm1
  mulss  0xc(%rdx),%xmm1
  addss  %xmm2,%xmm1
  movss  %xmm1,(%rdi)
  movss  0x8(%rsi),%xmm2
  mulss  0x18(%rdx),%xmm2
  movl   $0x0,0x4(%rdi)
  addss  %xmm1,%xmm2
  movss  %xmm2,(%rdi)
  movss  (%rsi),%xmm2
  mulss  0x4(%rdx),%xmm2
  addss  %xmm0,%xmm2
  movss  %xmm2,0x4(%rdi)
  movss  0x4(%rsi),%xmm1
  mulss  0x10(%rdx),%xmm1
  addss  %xmm2,%xmm1
  movss  %xmm1,0x4(%rdi)
  movss  0x8(%rsi),%xmm2
  mulss  0x1c(%rdx),%xmm2
  movl   $0x0,0x8(%rdi)
  addss  %xmm1,%xmm2
  movss  %xmm2,0x4(%rdi)
  movss  (%rsi),%xmm2
  mulss  0x8(%rdx),%xmm2
  addss  %xmm0,%xmm2
  movss  %xmm2,0x8(%rdi)
  movss  0x4(%rsi),%xmm1
  mulss  0x14(%rdx),%xmm1
  addss  %xmm2,%xmm1
  movss  %xmm1,0x8(%rdi)
  movss  0x8(%rsi),%xmm2
  mulss  0x20(%rdx),%xmm2
  movl   $0x0,0xc(%rdi)
  addss  %xmm1,%xmm2
  movss  %xmm2,0x8(%rdi)
  movss  0xc(%rsi),%xmm2
  mulss  (%rdx),%xmm2
  addss  %xmm0,%xmm2
  movss  %xmm2,0xc(%rdi)
  movss  0x10(%rsi),%xmm1
  mulss  0xc(%rdx),%xmm1
  addss  %xmm2,%xmm1
  movss  %xmm1,0xc(%rdi)
  movss  0x14(%rsi),%xmm2
  mulss  0x18(%rdx),%xmm2
  movl   $0x0,0x10(%rdi)
  addss  %xmm1,%xmm2
  movss  %xmm2,0xc(%rdi)
  movss  0xc(%rsi),%xmm2
  mulss  0x4(%rdx),%xmm2
  addss  %xmm0,%xmm2
  movss  %xmm2,0x10(%rdi)
  movss  0x10(%rsi),%xmm1
  mulss  0x10(%rdx),%xmm1
  addss  %xmm2,%xmm1
  movss  %xmm1,0x10(%rdi)
  movss  0x14(%rsi),%xmm2
  mulss  0x1c(%rdx),%xmm2
  movl   $0x0,0x14(%rdi)
  addss  %xmm1,%xmm2
  movss  %xmm2,0x10(%rdi)
  movss  0xc(%rsi),%xmm2
  mulss  0x8(%rdx),%xmm2
  addss  %xmm0,%xmm2
  movss  %xmm2,0x14(%rdi)
  movss  0x10(%rsi),%xmm1
  mulss  0x14(%rdx),%xmm1
  addss  %xmm2,%xmm1
  movss  %xmm1,0x14(%rdi)
  movss  0x14(%rsi),%xmm2
  mulss  0x20(%rdx),%xmm2
  movl   $0x0,0x18(%rdi)
  addss  %xmm1,%xmm2
  movss  %xmm2,0x14(%rdi)
  movss  0x18(%rsi),%xmm2
  mulss  (%rdx),%xmm2
  addss  %xmm0,%xmm2
  movss  %xmm2,0x18(%rdi)
  movss  0x1c(%rsi),%xmm1
  mulss  0xc(%rdx),%xmm1
  addss  %xmm2,%xmm1
  movss  %xmm1,0x18(%rdi)
  movss  0x20(%rsi),%xmm2
  mulss  0x18(%rdx),%xmm2
  movl   $0x0,0x1c(%rdi)
  addss  %xmm1,%xmm2
  movss  %xmm2,0x18(%rdi)
  movss  0x18(%rsi),%xmm2
  mulss  0x4(%rdx),%xmm2
  addss  %xmm0,%xmm2
  movss  %xmm2,0x1c(%rdi)
  movss  0x1c(%rsi),%xmm1
  mulss  0x10(%rdx),%xmm1
  addss  %xmm2,%xmm1
  movss  %xmm1,0x1c(%rdi)
  movss  0x20(%rsi),%xmm2
  mulss  0x1c(%rdx),%xmm2
  movl   $0x0,0x20(%rdi)
  addss  %xmm1,%xmm2
  movss  %xmm2,0x1c(%rdi)
  movss  0x18(%rsi),%xmm1
  mulss  0x8(%rdx),%xmm1
  addss  %xmm0,%xmm1
  movss  %xmm1,0x20(%rdi)
  movss  0x1c(%rsi),%xmm0
  mulss  0x14(%rdx),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,0x20(%rdi)
  movss  0x20(%rsi),%xmm1
  mulss  0x20(%rdx),%xmm1
  addss  %xmm0,%xmm1
  movss  %xmm1,0x20(%rdi)
  ret
```

assistant: ```c
void RmatMult(float (*A)[3l], float (*B)[3l], float (*C)[3l]) {
  signed int i;
  signed int j;
  signed int k = 0;
  while (k < 3) {
    j = 0;
    while (j < 3) {
      A[(signed long int)k][(signed long int)j] = (float)0.000000;
      i = 0;
      while (i < 3) {
        A[(signed long int)k][(signed long int)j] = A[(signed long int)k][(signed long int)j] + B[(signed long int)k][(signed long int)i] * C[(signed long int)i][(signed long int)j];
        i = i + 1;
      }
      j = j + 1;
    }
    k = k + 1;
  }
}
```