user: Please show me the C implementation that matches the assembly code listed below:

```asm
<kernel_dgemm_diag_left_3_lib4>:
  endbr64
  mov    %edi,%r10d
  test   %edi,%edi
  jle    L204
  movupd 0x8(%rsi),%xmm5
  movupd (%rsi),%xmm0
  mov    %rdx,%rdi
  mov    %rcx,%r11
  movapd D6(%rip),%xmm2
  movapd %xmm5,%xmm4
  movapd %xmm0,%xmm1
  movapd %xmm5,%xmm3
  unpckhpd %xmm4,%xmm4
  xorpd  %xmm2,%xmm1
  xorpd  %xmm2,%xmm3
  movapd %xmm4,%xmm6
  movsd  0x10(%rsi),%xmm4
  movhpd (%rsi),%xmm4
  lea    -0x3(%r10),%esi
  xorpd  %xmm4,%xmm2
  cmp    $0xffffffff,%r9d
  je     L57
  test   %r9d,%r9d
  jne    L260
  test   %esi,%esi
  jle    L112
  lea    0xf7(%rdx),%rax
  lea    -0x4(%r10),%r9d
  sub    %r8,%rax
  cmp    $0x1ee,%rax
  jbe    L216
  cmp    $0x7,%r9d
  jbe    L216
  mov    %r9d,%r11d
  mov    %rdx,%rax
  mov    %r8,%rdx
  shr    $0x3,%r11d
  lea    -0x1(%r11),%ecx
  shl    $0x8,%rcx
  lea    0x100(%rdi,%rcx,1),%rcx
  nop
L157:
  movupd 0x10(%rax),%xmm2
  movupd (%rax),%xmm3
  add    $0x100,%rax
  add    $0x100,%rdx
  movupd -0x70(%rax),%xmm7
  movupd -0x80(%rax),%xmm1
  mulpd  %xmm0,%xmm3
  movhpd -0x80(%rax),%xmm2
  mulpd  %xmm4,%xmm2
  shufpd $0x1,%xmm7,%xmm1
  mulpd  %xmm5,%xmm1
  movups %xmm3,-0x100(%rdx)
  movlpd %xmm2,-0xf0(%rdx)
  movhpd %xmm1,-0x70(%rdx)
  shufpd $0x1,%xmm1,%xmm2
  movups %xmm2,-0x80(%rdx)
  movupd -0x50(%rax),%xmm7
  movupd -0xd0(%rax),%xmm2
  movupd -0x60(%rax),%xmm1
  movupd -0xe0(%rax),%xmm3
  movhpd -0x60(%rax),%xmm2
  mulpd  %xmm4,%xmm2
  shufpd $0x1,%xmm7,%xmm1
  mulpd  %xmm0,%xmm3
  mulpd  %xmm5,%xmm1
  movlpd %xmm2,-0xd0(%rdx)
  movups %xmm3,-0xe0(%rdx)
  movhpd %xmm1,-0x50(%rdx)
  shufpd $0x1,%xmm1,%xmm2
  movups %xmm2,-0x60(%rdx)
  movupd -0x30(%rax),%xmm7
  movupd -0xb0(%rax),%xmm2
  movupd -0x40(%rax),%xmm1
  movupd -0xc0(%rax),%xmm3
  movhpd -0x40(%rax),%xmm2
  mulpd  %xmm4,%xmm2
  shufpd $0x1,%xmm7,%xmm1
  mulpd  %xmm0,%xmm3
  mulpd  %xmm5,%xmm1
  movlpd %xmm2,-0xb0(%rdx)
  movups %xmm3,-0xc0(%rdx)
  movhpd %xmm1,-0x30(%rdx)
  shufpd $0x1,%xmm1,%xmm2
  movups %xmm2,-0x40(%rdx)
  movupd -0x20(%rax),%xmm1
  movupd -0x90(%rax),%xmm2
  movupd -0x10(%rax),%xmm7
  movupd -0xa0(%rax),%xmm3
  movhpd -0x20(%rax),%xmm2
  mulpd  %xmm4,%xmm2
  shufpd $0x1,%xmm7,%xmm1
  mulpd  %xmm0,%xmm3
  mulpd  %xmm5,%xmm1
  movups %xmm3,-0xa0(%rdx)
  movlpd %xmm2,-0x90(%rdx)
  shufpd $0x1,%xmm1,%xmm2
  movhpd %xmm1,-0x10(%rdx)
  movups %xmm2,-0x20(%rdx)
  cmp    %rax,%rcx
  jne    L157
  lea    (%r11,%r11,1),%eax
  mov    %rax,%rdx
  shl    $0x7,%rax
  lea    (%rdi,%rax,1),%rcx
  add    %r8,%rax
  lea    0x4(,%rdx,4),%edx
  movsd  0x10(%rcx),%xmm2
  movupd (%rcx),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0x10(%rax)
  movups %xmm1,(%rax)
  movsd  0x30(%rcx),%xmm2
  movupd 0x20(%rcx),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0x30(%rax)
  movups %xmm1,0x20(%rax)
  movsd  0x50(%rcx),%xmm2
  movupd 0x40(%rcx),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0x50(%rax)
  movups %xmm1,0x40(%rax)
  movsd  0x70(%rcx),%xmm2
  movupd 0x60(%rcx),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0x70(%rax)
  movups %xmm1,0x60(%rax)
  cmp    %esi,%edx
  jge    L28
  movsd  0x90(%rcx),%xmm2
  movupd 0x80(%rcx),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0x90(%rax)
  movups %xmm1,0x80(%rax)
  movsd  0xb0(%rcx),%xmm2
  movupd 0xa0(%rcx),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0xb0(%rax)
  movups %xmm1,0xa0(%rax)
  movsd  0xd0(%rcx),%xmm2
  movupd 0xc0(%rcx),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0xd0(%rax)
  movups %xmm1,0xc0(%rax)
  movsd  0xf0(%rcx),%xmm2
  movupd 0xe0(%rcx),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0xf0(%rax)
  movups %xmm1,0xe0(%rax)
L28:
  shr    $0x2,%r9d
  lea    0x1(%r9),%eax
  mov    %rax,%r9
  shl    $0x7,%rax
  shl    $0x2,%r9d
  add    %rax,%rdi
  add    %rax,%r8
  cmp    %r9d,%r10d
  jle    L204
L112:
  mov    %r10d,%eax
  sub    %r9d,%eax
  lea    -0x1(%rax),%edx
  cmp    $0x2,%edx
  seta   %cl
  cmp    %r10d,%r9d
  setl   %dl
  test   %dl,%cl
  je     L215
  mov    %r8,%rdx
  sub    %rdi,%rdx
  sub    $0x10,%rdx
  cmp    $0x20,%rdx
  jbe    L215
  movupd 0x10(%rdi),%xmm2
  cmp    %r10d,%r9d
  mov    $0x1,%edx
  movupd 0x20(%rdi),%xmm1
  movupd (%rdi),%xmm3
  cmovge %edx,%eax
  movhpd 0x20(%rdi),%xmm2
  mulpd  %xmm4,%xmm2
  movupd 0x30(%rdi),%xmm4
  sub    $0x1,%eax
  mulpd  %xmm0,%xmm3
  and    $0xfffffffe,%eax
  shufpd $0x1,%xmm4,%xmm1
  mulpd  %xmm5,%xmm1
  mov    %eax,%edx
  lea    0x1(%rax,%r9,1),%eax
  shl    $0x5,%rdx
  add    %rdx,%rdi
  add    %r8,%rdx
  movlpd %xmm2,0x10(%r8)
  movups %xmm3,(%r8)
  movhpd %xmm1,0x30(%r8)
  shufpd $0x1,%xmm1,%xmm2
  movups %xmm2,0x20(%r8)
  movsd  0x10(%rdi),%xmm2
  movupd (%rdi),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0x10(%rdx)
  movups %xmm1,(%rdx)
  cmp    %eax,%r10d
  jle    L204
  movupd 0x20(%rdi),%xmm1
  mulsd  0x30(%rdi),%xmm6
  mulpd  %xmm1,%xmm0
  movsd  %xmm6,0x30(%rdx)
  movups %xmm0,0x20(%rdx)
  ret
  nopl   0x0(%rax,%rax,1)
L215:
  movsd  0x10(%rdi),%xmm2
  movupd (%rdi),%xmm1
  lea    0x1(%r9),%eax
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0x10(%r8)
  movups %xmm1,(%r8)
  cmp    %eax,%r10d
  jg     L201
L204:
  ret
  nopl   0x0(%rax)
L260:
  movapd %xmm4,%xmm2
  movapd %xmm5,%xmm3
  movapd %xmm0,%xmm1
L57:
  movapd %xmm3,%xmm4
  push   %r12
  xor    %ecx,%ecx
  push   %rbp
  unpckhpd %xmm4,%xmm4
  push   %rbx
  test   %esi,%esi
  jle    L209
  lea    0xf7(%rdi),%rax
  lea    -0x4(%r10),%r9d
  sub    %r8,%rax
  cmp    $0x1ee,%rax
  lea    0xf7(%r11),%rax
  seta   %dl
  sub    %r8,%rax
  cmp    $0x1ee,%rax
  seta   %al
  test   %al,%dl
  je     L169
  cmp    $0x7,%r9d
  jbe    L169
  mov    %r9d,%r12d
  mov    %r11,%rax
  mov    %rdi,%rcx
  mov    %r8,%rdx
  shr    $0x3,%r12d
  lea    -0x1(%r12),%ebp
  shl    $0x8,%rbp
  lea    0x100(%r11,%rbp,1),%rbx
  nop
L8:
  movupd 0x10(%rcx),%xmm5
  movupd 0x10(%rax),%xmm0
  add    $0x100,%rax
  add    $0x100,%rcx
  movupd -0x70(%rcx),%xmm7
  movupd -0x80(%rax),%xmm6
  add    $0x100,%rdx
  movhpd -0x80(%rcx),%xmm5
  movhpd -0x80(%rax),%xmm0
  mulpd  %xmm2,%xmm5
  addpd  %xmm0,%xmm5
  movupd -0x80(%rcx),%xmm0
  shufpd $0x1,%xmm7,%xmm0
  mulpd  %xmm3,%xmm0
  movupd -0x70(%rax),%xmm7
  shufpd $0x1,%xmm7,%xmm6
  movupd -0x100(%rax),%xmm7
  addpd  %xmm6,%xmm0
  movupd -0x100(%rcx),%xmm6
  movlpd %xmm5,-0xf0(%rdx)
  mulpd  %xmm1,%xmm6
  movhpd %xmm0,-0x70(%rdx)
  shufpd $0x1,%xmm0,%xmm5
  movups %xmm5,-0x80(%rdx)
  addpd  %xmm7,%xmm6
  movups %xmm6,-0x100(%rdx)
  movupd -0xd0(%rcx),%xmm5
  movupd -0xd0(%rax),%xmm0
  movupd -0x50(%rcx),%xmm7
  movupd -0x60(%rax),%xmm6
  movhpd -0x60(%rcx),%xmm5
  movhpd -0x60(%rax),%xmm0
  mulpd  %xmm2,%xmm5
  addpd  %xmm0,%xmm5
  movupd -0x60(%rcx),%xmm0
  shufpd $0x1,%xmm7,%xmm0
  mulpd  %xmm3,%xmm0
  movupd -0x50(%rax),%xmm7
  shufpd $0x1,%xmm7,%xmm6
  movupd -0xe0(%rax),%xmm7
  addpd  %xmm6,%xmm0
  movupd -0xe0(%rcx),%xmm6
  movlpd %xmm5,-0xd0(%rdx)
  mulpd  %xmm1,%xmm6
  movhpd %xmm0,-0x50(%rdx)
  shufpd $0x1,%xmm0,%xmm5
  movups %xmm5,-0x60(%rdx)
  addpd  %xmm7,%xmm6
  movups %xmm6,-0xe0(%rdx)
  movupd -0xb0(%rcx),%xmm5
  movupd -0xb0(%rax),%xmm0
  movhpd -0x40(%rcx),%xmm5
  movhpd -0x40(%rax),%xmm0
  mulpd  %xmm2,%xmm5
  addpd  %xmm0,%xmm5
  movupd -0x40(%rcx),%xmm0
  movupd -0x30(%rcx),%xmm7
  movupd -0x40(%rax),%xmm6
  shufpd $0x1,%xmm7,%xmm0
  mulpd  %xmm3,%xmm0
  movupd -0x30(%rax),%xmm7
  shufpd $0x1,%xmm7,%xmm6
  movupd -0xc0(%rax),%xmm7
  addpd  %xmm6,%xmm0
  movupd -0xc0(%rcx),%xmm6
  movlpd %xmm5,-0xb0(%rdx)
  mulpd  %xmm1,%xmm6
  movhpd %xmm0,-0x30(%rdx)
  shufpd $0x1,%xmm0,%xmm5
  movups %xmm5,-0x40(%rdx)
  addpd  %xmm7,%xmm6
  movups %xmm6,-0xc0(%rdx)
  movupd -0x90(%rcx),%xmm5
  movupd -0x90(%rax),%xmm0
  movupd -0x10(%rcx),%xmm7
  movupd -0x20(%rax),%xmm6
  movhpd -0x20(%rcx),%xmm5
  movhpd -0x20(%rax),%xmm0
  mulpd  %xmm2,%xmm5
  addpd  %xmm0,%xmm5
  movupd -0x20(%rcx),%xmm0
  shufpd $0x1,%xmm7,%xmm0
  mulpd  %xmm3,%xmm0
  movupd -0x10(%rax),%xmm7
  shufpd $0x1,%xmm7,%xmm6
  movupd -0xa0(%rax),%xmm7
  addpd  %xmm6,%xmm0
  movupd -0xa0(%rcx),%xmm6
  movlpd %xmm5,-0x90(%rdx)
  mulpd  %xmm1,%xmm6
  shufpd $0x1,%xmm0,%xmm5
  movhpd %xmm0,-0x10(%rdx)
  movups %xmm5,-0x20(%rdx)
  addpd  %xmm7,%xmm6
  movups %xmm6,-0xa0(%rdx)
  cmp    %rax,%rbx
  jne    L8
  lea    (%r12,%r12,1),%eax
  mov    %rax,%rbx
  shl    $0x7,%rax
  lea    (%rdi,%rax,1),%rcx
  lea    (%r11,%rax,1),%rdx
  add    %r8,%rax
  movupd (%rcx),%xmm0
  movsd  0x10(%rcx),%xmm5
  lea    0x4(,%rbx,4),%ebx
  movupd (%rdx),%xmm7
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  0x10(%rdx),%xmm5
  addpd  %xmm7,%xmm0
  movsd  %xmm5,0x10(%rax)
  movups %xmm0,(%rax)
  movupd 0x20(%rcx),%xmm0
  movsd  0x30(%rcx),%xmm5
  movupd 0x20(%rdx),%xmm7
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  0x30(%rdx),%xmm5
  addpd  %xmm7,%xmm0
  movsd  %xmm5,0x30(%rax)
  movups %xmm0,0x20(%rax)
  movupd 0x40(%rcx),%xmm0
  movsd  0x50(%rcx),%xmm5
  movupd 0x40(%rdx),%xmm7
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  0x50(%rdx),%xmm5
  addpd  %xmm7,%xmm0
  movsd  %xmm5,0x50(%rax)
  movups %xmm0,0x40(%rax)
  movupd 0x60(%rcx),%xmm0
  movsd  0x70(%rcx),%xmm5
  movupd 0x60(%rdx),%xmm7
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  0x70(%rdx),%xmm5
  addpd  %xmm7,%xmm0
  movsd  %xmm5,0x70(%rax)
  movups %xmm0,0x60(%rax)
  cmp    %esi,%ebx
  jge    L134
  movupd 0x80(%rcx),%xmm0
  movsd  0x90(%rcx),%xmm5
  movupd 0x80(%rdx),%xmm7
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  0x90(%rdx),%xmm5
  addpd  %xmm7,%xmm0
  movsd  %xmm5,0x90(%rax)
  movups %xmm0,0x80(%rax)
  movupd 0xa0(%rcx),%xmm0
  movsd  0xb0(%rcx),%xmm5
  movupd 0xa0(%rdx),%xmm7
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  0xb0(%rdx),%xmm5
  addpd  %xmm7,%xmm0
  movsd  %xmm5,0xb0(%rax)
  movups %xmm0,0xa0(%rax)
  movupd 0xc0(%rcx),%xmm0
  movsd  0xd0(%rcx),%xmm5
  movupd 0xc0(%rdx),%xmm7
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  0xd0(%rdx),%xmm5
  addpd  %xmm7,%xmm0
  movsd  %xmm5,0xd0(%rax)
  movups %xmm0,0xc0(%rax)
  movupd 0xe0(%rcx),%xmm0
  movsd  0xf0(%rcx),%xmm5
  movupd 0xe0(%rdx),%xmm6
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  0xf0(%rdx),%xmm5
  addpd  %xmm6,%xmm0
  movsd  %xmm5,0xf0(%rax)
  movups %xmm0,0xe0(%rax)
L134:
  mov    %r9d,%eax
  shr    $0x2,%eax
  lea    0x1(%rax),%edx
  mov    %rdx,%rax
  shl    $0x7,%rdx
  lea    0x0(,%rax,4),%ecx
  add    %rdx,%rdi
  add    %rdx,%r11
  add    %rdx,%r8
  cmp    %ecx,%r10d
  jle    L36
L209:
  mov    %r8,%rax
  mov    %r10d,%edx
  sub    %r11,%rax
  sub    %ecx,%edx
  sub    $0x10,%rax
  cmp    $0x20,%rax
  lea    -0x1(%rdx),%eax
  seta   %sil
  cmp    $0x1,%eax
  seta   %al
  cmp    %r10d,%ecx
  setl   %r9b
  and    %r9d,%eax
  test   %al,%sil
  je     L127
  mov    %r8,%rax
  sub    %rdi,%rax
  sub    $0x10,%rax
  cmp    $0x20,%rax
  jbe    L127
  movupd 0x10(%rdi),%xmm0
  movupd 0x30(%rdi),%xmm7
  cmp    %r10d,%ecx
  mov    $0x1,%eax
  cmovge %eax,%edx
  movhpd 0x20(%rdi),%xmm0
  mulpd  %xmm0,%xmm2
  movupd 0x10(%r11),%xmm0
  sub    $0x1,%edx
  and    $0xfffffffe,%edx
  movhpd 0x20(%r11),%xmm0
  mov    %edx,%eax
  lea    0x1(%rcx,%rdx,1),%edx
  shl    $0x5,%rax
  addpd  %xmm0,%xmm2
  movupd 0x20(%rdi),%xmm0
  shufpd $0x1,%xmm7,%xmm0
  mulpd  %xmm3,%xmm0
  movupd 0x30(%r11),%xmm7
  movupd 0x20(%r11),%xmm3
  shufpd $0x1,%xmm7,%xmm3
  movupd (%r11),%xmm7
  add    %rax,%r11
  addpd  %xmm3,%xmm0
  movupd (%rdi),%xmm3
  add    %rax,%rdi
  movlpd %xmm2,0x10(%r8)
  add    %r8,%rax
  mulpd  %xmm1,%xmm3
  movhpd %xmm0,0x30(%r8)
  shufpd $0x1,%xmm0,%xmm2
  movups %xmm2,0x20(%r8)
  addpd  %xmm7,%xmm3
  movups %xmm3,(%r8)
  movupd (%rdi),%xmm0
  movsd  0x10(%rdi),%xmm2
  movupd (%r11),%xmm3
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm2
  addsd  0x10(%r11),%xmm2
  addpd  %xmm3,%xmm0
  movsd  %xmm2,0x10(%rax)
  movups %xmm0,(%rax)
  cmp    %edx,%r10d
  jle    L36
  movupd 0x20(%rdi),%xmm0
  mulsd  0x30(%rdi),%xmm4
  addsd  0x30(%r11),%xmm4
  mulpd  %xmm1,%xmm0
  movupd 0x20(%r11),%xmm1
  movsd  %xmm4,0x30(%rax)
  addpd  %xmm1,%xmm0
  movups %xmm0,0x20(%rax)
L36:
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  nopl   0x0(%rax,%rax,1)
L169:
  mov    %r9d,%eax
  mov    %r8,%rsi
  mov    %r11,%rcx
  mov    %rdi,%rdx
  shr    $0x2,%eax
  add    $0x1,%eax
  shl    $0x7,%rax
  add    %rdi,%rax
  nopl   0x0(%rax)
L166:
  movupd (%rdx),%xmm0
  movupd (%rcx),%xmm7
  sub    $0xffffffffffffff80,%rdx
  sub    $0xffffffffffffff80,%rcx
  movsd  -0x70(%rdx),%xmm5
  sub    $0xffffffffffffff80,%rsi
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  -0x70(%rcx),%xmm5
  addpd  %xmm7,%xmm0
  movsd  %xmm5,-0x70(%rsi)
  movups %xmm0,-0x80(%rsi)
  movupd -0x60(%rdx),%xmm0
  movsd  -0x50(%rdx),%xmm5
  movupd -0x60(%rcx),%xmm7
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  -0x50(%rcx),%xmm5
  addpd  %xmm7,%xmm0
  movsd  %xmm5,-0x50(%rsi)
  movups %xmm0,-0x60(%rsi)
  movupd -0x40(%rdx),%xmm0
  movsd  -0x30(%rdx),%xmm5
  movupd -0x40(%rcx),%xmm7
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  -0x30(%rcx),%xmm5
  addpd  %xmm7,%xmm0
  movsd  %xmm5,-0x30(%rsi)
  movups %xmm0,-0x40(%rsi)
  movupd -0x20(%rdx),%xmm0
  movsd  -0x10(%rdx),%xmm5
  movupd -0x20(%rcx),%xmm7
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm5
  addsd  -0x10(%rcx),%xmm5
  addpd  %xmm7,%xmm0
  movsd  %xmm5,-0x10(%rsi)
  movups %xmm0,-0x20(%rsi)
  cmp    %rdx,%rax
  jne    L166
  jmp    L134
  nopl   0x0(%rax)
L216:
  mov    %r9d,%ecx
  mov    %r8,%rdx
  mov    %rdi,%rax
  shr    $0x2,%ecx
  add    $0x1,%ecx
  shl    $0x7,%rcx
  add    %rdi,%rcx
  cs nopw 0x0(%rax,%rax,1)
L121:
  movsd  0x10(%rax),%xmm2
  movupd (%rax),%xmm1
  sub    $0xffffffffffffff80,%rax
  sub    $0xffffffffffffff80,%rdx
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,-0x70(%rdx)
  movups %xmm1,-0x80(%rdx)
  movsd  -0x50(%rax),%xmm2
  movupd -0x60(%rax),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,-0x50(%rdx)
  movups %xmm1,-0x60(%rdx)
  movsd  -0x30(%rax),%xmm2
  movupd -0x40(%rax),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,-0x30(%rdx)
  movups %xmm1,-0x40(%rdx)
  movsd  -0x10(%rax),%xmm2
  movupd -0x20(%rax),%xmm1
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,-0x10(%rdx)
  movups %xmm1,-0x20(%rdx)
  cmp    %rax,%rcx
  jne    L121
  jmp    L28
  nopl   (%rax)
L127:
  movupd (%rdi),%xmm0
  movsd  0x10(%rdi),%xmm2
  lea    0x1(%rcx),%eax
  movupd (%r11),%xmm3
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm2
  addsd  0x10(%r11),%xmm2
  addpd  %xmm3,%xmm0
  movsd  %xmm2,0x10(%r8)
  movups %xmm0,(%r8)
  cmp    %eax,%r10d
  jle    L36
  movupd 0x20(%rdi),%xmm0
  movsd  0x30(%rdi),%xmm2
  lea    0x2(%rcx),%eax
  movupd 0x20(%r11),%xmm3
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm2
  addsd  0x30(%r11),%xmm2
  addpd  %xmm3,%xmm0
  movsd  %xmm2,0x30(%r8)
  movups %xmm0,0x20(%r8)
  cmp    %eax,%r10d
  jle    L36
  movupd 0x40(%rdi),%xmm0
  movsd  0x50(%rdi),%xmm2
  lea    0x3(%rcx),%eax
  movupd 0x40(%r11),%xmm3
  mulpd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm2
  addsd  0x50(%r11),%xmm2
  addpd  %xmm3,%xmm0
  movsd  %xmm2,0x50(%r8)
  movups %xmm0,0x40(%r8)
  cmp    %r10d,%eax
  jge    L36
  movupd 0x60(%rdi),%xmm0
  mulsd  0x70(%rdi),%xmm4
  addsd  0x70(%r11),%xmm4
  mulpd  %xmm1,%xmm0
  movupd 0x60(%r11),%xmm1
  movsd  %xmm4,0x70(%r8)
  addpd  %xmm1,%xmm0
  movups %xmm0,0x60(%r8)
  jmp    L36
  cs nopw 0x0(%rax,%rax,1)
L201:
  movsd  0x30(%rdi),%xmm2
  movupd 0x20(%rdi),%xmm1
  lea    0x2(%r9),%eax
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0x30(%r8)
  movups %xmm1,0x20(%r8)
  cmp    %eax,%r10d
  jle    L204
  movsd  0x50(%rdi),%xmm2
  movupd 0x40(%rdi),%xmm1
  add    $0x3,%r9d
  mulsd  %xmm6,%xmm2
  mulpd  %xmm0,%xmm1
  movsd  %xmm2,0x50(%r8)
  movups %xmm1,0x40(%r8)
  cmp    %r9d,%r10d
  jle    L204
  movupd 0x60(%rdi),%xmm1
  mulsd  0x70(%rdi),%xmm6
  mulpd  %xmm1,%xmm0
  movsd  %xmm6,0x70(%r8)
  movups %xmm0,0x60(%r8)
  ret
```

tool_calls: name: parse_data
arguments: label: D6
type_guessed: byte[16]

tool: {"D6": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80]}

assistant: ```c
void kernel_dgemm_diag_left_3_lib4(int kmax, double *A, double *B, double *C, double *D, int alg) {
  if (kmax <= 0)
    return;
  const int bs = 4;
  int k;
  double a_0, a_1, a_2, b_0, b_1, b_2, c_0, c_1, c_2;
  if (alg == -1) {
    a_0 = -A[0];
    a_1 = -A[1];
    a_2 = -A[2];
  } else {
    a_0 = A[0];
    a_1 = A[1];
    a_2 = A[2];
  }
  if (alg == 0) {
    for (k = 0; k < kmax - 3; k += 4) {
      b_0 = B[0 + bs * 0];
      b_1 = B[1 + bs * 0];
      b_2 = B[2 + bs * 0];
      c_0 = a_0 * b_0;
      c_1 = a_1 * b_1;
      c_2 = a_2 * b_2;
      D[0 + bs * 0] = c_0;
      D[1 + bs * 0] = c_1;
      D[2 + bs * 0] = c_2;
      b_0 = B[0 + bs * 1];
      b_1 = B[1 + bs * 1];
      b_2 = B[2 + bs * 1];
      c_0 = a_0 * b_0;
      c_1 = a_1 * b_1;
      c_2 = a_2 * b_2;
      D[0 + bs * 1] = c_0;
      D[1 + bs * 1] = c_1;
      D[2 + bs * 1] = c_2;
      b_0 = B[0 + bs * 2];
      b_1 = B[1 + bs * 2];
      b_2 = B[2 + bs * 2];
      c_0 = a_0 * b_0;
      c_1 = a_1 * b_1;
      c_2 = a_2 * b_2;
      D[0 + bs * 2] = c_0;
      D[1 + bs * 2] = c_1;
      D[2 + bs * 2] = c_2;
      b_0 = B[0 + bs * 3];
      b_1 = B[1 + bs * 3];
      b_2 = B[2 + bs * 3];
      c_0 = a_0 * b_0;
      c_1 = a_1 * b_1;
      c_2 = a_2 * b_2;
      D[0 + bs * 3] = c_0;
      D[1 + bs * 3] = c_1;
      D[2 + bs * 3] = c_2;
      B += 16;
      D += 16;
    }
    for (; k < kmax; k++) {
      b_0 = B[0 + bs * 0];
      b_1 = B[1 + bs * 0];
      b_2 = B[2 + bs * 0];
      c_0 = a_0 * b_0;
      c_1 = a_1 * b_1;
      c_2 = a_2 * b_2;
      D[0 + bs * 0] = c_0;
      D[1 + bs * 0] = c_1;
      D[2 + bs * 0] = c_2;
      B += 4;
      D += 4;
    }
  } else {
    for (k = 0; k < kmax - 3; k += 4) {
      b_0 = B[0 + bs * 0];
      b_1 = B[1 + bs * 0];
      b_2 = B[2 + bs * 0];
      c_0 = C[0 + bs * 0] + a_0 * b_0;
      c_1 = C[1 + bs * 0] + a_1 * b_1;
      c_2 = C[2 + bs * 0] + a_2 * b_2;
      D[0 + bs * 0] = c_0;
      D[1 + bs * 0] = c_1;
      D[2 + bs * 0] = c_2;
      b_0 = B[0 + bs * 1];
      b_1 = B[1 + bs * 1];
      b_2 = B[2 + bs * 1];
      c_0 = C[0 + bs * 1] + a_0 * b_0;
      c_1 = C[1 + bs * 1] + a_1 * b_1;
      c_2 = C[2 + bs * 1] + a_2 * b_2;
      D[0 + bs * 1] = c_0;
      D[1 + bs * 1] = c_1;
      D[2 + bs * 1] = c_2;
      b_0 = B[0 + bs * 2];
      b_1 = B[1 + bs * 2];
      b_2 = B[2 + bs * 2];
      c_0 = C[0 + bs * 2] + a_0 * b_0;
      c_1 = C[1 + bs * 2] + a_1 * b_1;
      c_2 = C[2 + bs * 2] + a_2 * b_2;
      D[0 + bs * 2] = c_0;
      D[1 + bs * 2] = c_1;
      D[2 + bs * 2] = c_2;
      b_0 = B[0 + bs * 3];
      b_1 = B[1 + bs * 3];
      b_2 = B[2 + bs * 3];
      c_0 = C[0 + bs * 3] + a_0 * b_0;
      c_1 = C[1 + bs * 3] + a_1 * b_1;
      c_2 = C[2 + bs * 3] + a_2 * b_2;
      D[0 + bs * 3] = c_0;
      D[1 + bs * 3] = c_1;
      D[2 + bs * 3] = c_2;
      B += 16;
      C += 16;
      D += 16;
    }
    for (; k < kmax; k++) {
      b_0 = B[0 + bs * 0];
      b_1 = B[1 + bs * 0];
      b_2 = B[2 + bs * 0];
      c_0 = C[0 + bs * 0] + a_0 * b_0;
      c_1 = C[1 + bs * 0] + a_1 * b_1;
      c_2 = C[2 + bs * 0] + a_2 * b_2;
      D[0 + bs * 0] = c_0;
      D[1 + bs * 0] = c_1;
      D[2 + bs * 0] = c_2;
      B += 4;
      C += 4;
      D += 4;
    }
  }
}
```