user: 请将以下的汇编代码转换成C语言代码:

```asm
<kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new>:
  endbr64
  push   %rbx
  mov    %edx,%eax
  sub    $0x70,%rsp
  mov    0x88(%rsp),%rdx
  mov    %ecx,0x44(%rsp)
  mov    %edi,0x4c(%rsp)
  mov    0x80(%rsp),%ecx
  mov    %rdx,0x28(%rsp)
  mov    0x90(%rsp),%rdx
  mov    %esi,0x48(%rsp)
  mov    %rdx,0x20(%rsp)
  mov    0xa0(%rsp),%rdx
  mov    %r8,0x38(%rsp)
  mov    %rdx,0x18(%rsp)
  mov    0xa8(%rsp),%rdx
  mov    %r9,0x30(%rsp)
  mov    %rdx,0x10(%rsp)
  mov    0xb0(%rsp),%rdx
  mov    %rdx,0x8(%rsp)
  mov    0xc0(%rsp),%rdx
  mov    %rdx,(%rsp)
  mov    %fs:0x28,%rdx
  mov    %rdx,0x68(%rsp)
  xor    %edx,%edx
  test   %eax,%eax
  lea    0x3(%rax),%edx
  cmovns %eax,%edx
  sar    $0x2,%edx
  mov    %edx,0x5c(%rsp)
  cltd
  shr    $0x1e,%edx
  add    %edx,%eax
  and    $0x3,%eax
  sub    %edx,%eax
  test   %ecx,%ecx
  mov    %eax,0x60(%rsp)
  lea    0x3(%rcx),%eax
  cmovns %ecx,%eax
  sar    $0x2,%eax
  mov    %eax,0x64(%rsp)
  mov    0x38(%rsp),%rax
  mov    0x30(%rsp),%rbx
  xorpd  %xmm3,%xmm3
  movaps %xmm3,%xmm4
  movaps %xmm3,%xmm5
  movaps %xmm3,%xmm6
  movaps %xmm3,%xmm7
  movaps %xmm3,%xmm8
  movaps %xmm3,%xmm9
  movaps %xmm3,%xmm10
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm12
  movaps %xmm3,%xmm13
  movaps %xmm3,%xmm14
  movaps %xmm3,%xmm15
  mov    0x5c(%rsp),%esi
  mov    0x60(%rsp),%ecx
  add    %esi,%ecx
  test   %ecx,%ecx
  je     16d6 <.DCONSIDERSUB_0>
  movaps (%rax),%xmm0
  movaps 0x10(%rax),%xmm1
  movaps (%rbx),%xmm2
  mov    0x44(%rsp),%ecx
  cmp    $0x1,%ecx
  jne    1481 <.DCONSIDERLOOPADD_0>
  test   %esi,%esi
  je     138f <.DTRIADD_0>
  movaps 0x10(%rbx),%xmm6
  pshufd $0x4e,%xmm2,%xmm7
  mulsd  %xmm0,%xmm2
  mulsd  %xmm0,%xmm7
  addsd  %xmm2,%xmm8
  movaps 0x20(%rbx),%xmm2
  pshufd $0x4e,%xmm6,%xmm4
  mulsd  %xmm0,%xmm6
  addsd  %xmm7,%xmm9
  mulsd  %xmm0,%xmm4
  movaps 0x20(%rax),%xmm0
  addsd  %xmm6,%xmm10
  movaps 0x30(%rbx),%xmm6
  pshufd $0x4e,%xmm2,%xmm7
  mulpd  %xmm0,%xmm2
  addsd  %xmm4,%xmm11
  mulpd  %xmm0,%xmm7
  addpd  %xmm2,%xmm8
  movaps 0x40(%rbx),%xmm2
  pshufd $0x4e,%xmm6,%xmm4
  mulpd  %xmm0,%xmm6
  addpd  %xmm7,%xmm9
  mulpd  %xmm0,%xmm4
  movaps 0x40(%rax),%xmm0
  movaps 0x50(%rax),%xmm1
  addpd  %xmm6,%xmm10
  movaps 0x50(%rbx),%xmm6
  movaps %xmm2,%xmm3
  pshufd $0x4e,%xmm2,%xmm7
  mulpd  %xmm0,%xmm2
  mulsd  %xmm1,%xmm3
  addpd  %xmm4,%xmm11
  movaps %xmm7,%xmm5
  mulpd  %xmm0,%xmm7
  mulsd  %xmm1,%xmm5
  addpd  %xmm2,%xmm8
  movaps 0x60(%rbx),%xmm2
  addsd  %xmm3,%xmm12
  movaps %xmm6,%xmm3
  pshufd $0x4e,%xmm6,%xmm4
  mulpd  %xmm0,%xmm6
  mulsd  %xmm1,%xmm3
  addpd  %xmm7,%xmm9
  addsd  %xmm5,%xmm13
  movaps %xmm4,%xmm5
  mulpd  %xmm0,%xmm4
  movaps 0x60(%rax),%xmm0
  mulsd  %xmm1,%xmm5
  movaps 0x70(%rax),%xmm1
  addpd  %xmm6,%xmm10
  movaps 0x70(%rbx),%xmm6
  addsd  %xmm3,%xmm14
  movaps %xmm2,%xmm3
  pshufd $0x4e,%xmm2,%xmm7
  mulpd  %xmm0,%xmm2
  mulpd  %xmm1,%xmm3
  add    $0x80,%rax
  addpd  %xmm4,%xmm11
  addsd  %xmm5,%xmm15
  movaps %xmm7,%xmm5
  mulpd  %xmm0,%xmm7
  mulpd  %xmm1,%xmm5
  add    $0x80,%rbx
  addpd  %xmm2,%xmm8
  movaps (%rbx),%xmm2
  addpd  %xmm3,%xmm12
  movaps %xmm6,%xmm3
  pshufd $0x4e,%xmm6,%xmm4
  mulpd  %xmm0,%xmm6
  mulpd  %xmm1,%xmm3
  addpd  %xmm7,%xmm9
  dec    %esi
  addpd  %xmm5,%xmm13
  movaps %xmm4,%xmm5
  mulpd  %xmm0,%xmm4
  movaps (%rax),%xmm0
  mulpd  %xmm1,%xmm5
  movaps 0x10(%rax),%xmm1
  jmp    1481 <.DCONSIDERLOOPADD_0>
```

assistant: ```c
void kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new(int km, int kn, int kadd, int tri_A, double *Ap, double *Bp, int ksub, double *Am, double *Bm, int alg, double *C, double *D, double *E, int use_inv_diag_E, double *inv_diag_E) {
  int ki_add = kadd / 4;
  int kl_add = kadd % 4;
  int ki_sub = ksub / 4;
  __asm__ volatile("                                \n\t"
                   "                                \n\t"
                   "movq          %3, %%rax         \n\t"
                   "movq          %4, %%rbx         \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "xorpd     %%xmm3,  %%xmm3       \n\t"
                   "movaps    %%xmm3,  %%xmm4       \n\t"
                   "movaps    %%xmm3,  %%xmm5       \n\t"
                   "movaps    %%xmm3,  %%xmm6       \n\t"
                   "movaps    %%xmm3,  %%xmm7       \n\t"
                   "movaps    %%xmm3,  %%xmm8       \n\t"
                   "movaps    %%xmm3,  %%xmm9       \n\t"
                   "movaps    %%xmm3, %%xmm10       \n\t"
                   "movaps    %%xmm3, %%xmm11       \n\t"
                   "movaps    %%xmm3, %%xmm12       \n\t"
                   "movaps    %%xmm3, %%xmm13       \n\t"
                   "movaps    %%xmm3, %%xmm14       \n\t"
                   "movaps    %%xmm3, %%xmm15       \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movl      %0, %%esi             \n\t"
                   "movl      %1, %%ecx             \n\t"
                   "addl      %%esi, %%ecx          \n\t"
                   "testl     %%ecx, %%ecx          \n\t"
                   "je        .DCONSIDERSUB_0         \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movaps        0(%%rax), %%xmm0  \n\t"
                   "movaps       16(%%rax), %%xmm1  \n\t"
                   "movaps        0(%%rbx), %%xmm2  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movl      %11, %%ecx            \n\t"
                   "cmpl      $1,  %%ecx            \n\t"
                   "jne       .DCONSIDERLOOPADD_0     \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "testl  %%esi, %%esi             \n\t"
                   "je     .DTRIADD_0                 \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movaps       16(%%rbx), %%xmm6  \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulsd   %%xmm0, %%xmm2          \n\t"
                   "                                \n\t"
                   "mulsd   %%xmm0, %%xmm7          \n\t"
                   "                                \n\t"
                   "addsd   %%xmm2, %%xmm8          \n\t"
                   "movaps       32(%%rbx), %%xmm2  \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulsd   %%xmm0, %%xmm6          \n\t"
                   "                                \n\t"
                   "addsd   %%xmm7, %%xmm9          \n\t"
                   "mulsd   %%xmm0, %%xmm4          \n\t"
                   "movaps       32(%%rax), %%xmm0  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "addsd   %%xmm6, %%xmm10         \n\t"
                   "movaps       48(%%rbx), %%xmm6  \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "                                \n\t"
                   "addsd   %%xmm4, %%xmm11         \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm2, %%xmm8          \n\t"
                   "movaps       64(%%rbx), %%xmm2  \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm7, %%xmm9          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps       64(%%rax), %%xmm0  \n\t"
                   "movaps       80(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "addpd   %%xmm6, %%xmm10         \n\t"
                   "movaps       80(%%rbx), %%xmm6  \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulsd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm4, %%xmm11         \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulsd   %%xmm1, %%xmm5          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm2, %%xmm8          \n\t"
                   "movaps       96(%%rbx), %%xmm2  \n\t"
                   "addsd   %%xmm3, %%xmm12         \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulsd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm7, %%xmm9          \n\t"
                   "addsd   %%xmm5, %%xmm13         \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps       96(%%rax), %%xmm0  \n\t"
                   "mulsd   %%xmm1, %%xmm5          \n\t"
                   "movaps      112(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "addpd   %%xmm6, %%xmm10         \n\t"
                   "movaps      112(%%rbx), %%xmm6  \n\t"
                   "addsd   %%xmm3, %%xmm14         \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "addq      $128, %%rax           \n\t"
                   "                                \n\t"
                   "addpd   %%xmm4, %%xmm11         \n\t"
                   "addsd   %%xmm5, %%xmm15         \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "addq      $128, %%rbx           \n\t"
                   "                                \n\t"
                   "addpd   %%xmm2, %%xmm8          \n\t"
                   "movaps         (%%rbx), %%xmm2  \n\t"
                   "addpd   %%xmm3, %%xmm12         \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "addpd   %%xmm7, %%xmm9          \n\t"
                   "decl    %%esi                   \n\t"
                   "addpd   %%xmm5, %%xmm13         \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps         (%%rax), %%xmm0  \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "movaps       16(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "jmp     .DCONSIDERLOOPADD_0       \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   ".DTRIADD_0:                       \n\t"
                   "                                \n\t"
                   "movl    %1, %%esi               \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movaps       16(%%rbx), %%xmm6  \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulsd   %%xmm0, %%xmm2          \n\t"
                   "addsd   %%xmm2, %%xmm8          \n\t"
                   "                                \n\t"
                   "mulsd   %%xmm0, %%xmm7          \n\t"
                   "addsd   %%xmm7, %%xmm9          \n\t"
                   "                                \n\t"
                   "movaps       32(%%rbx), %%xmm2  \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulsd   %%xmm0, %%xmm6          \n\t"
                   "addsd   %%xmm6, %%xmm10         \n\t"
                   "                                \n\t"
                   "mulsd   %%xmm0, %%xmm4          \n\t"
                   "addsd   %%xmm4, %%xmm11         \n\t"
                   "movaps       32(%%rax), %%xmm0  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "cmpl    $2, %%esi               \n\t"
                   "jl     .DCONSIDERSUB_NOCLEAN_0    \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movaps       48(%%rbx), %%xmm6  \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "addpd   %%xmm2, %%xmm8          \n\t"
                   "                                \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "addpd   %%xmm7, %%xmm9          \n\t"
                   "                                \n\t"
                   "movaps       64(%%rbx), %%xmm2  \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "addpd   %%xmm6, %%xmm10         \n\t"
                   "                                \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "addpd   %%xmm4, %%xmm11         \n\t"
                   "movaps       64(%%rax), %%xmm0  \n\t"
                   "movaps       80(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "je     .DCONSIDERSUB_NOCLEAN_0    \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movaps       80(%%rbx), %%xmm6  \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulsd   %%xmm1, %%xmm3          \n\t"
                   "addpd   %%xmm2, %%xmm8          \n\t"
                   "addsd   %%xmm3, %%xmm12         \n\t"
                   "                                \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulsd   %%xmm1, %%xmm5          \n\t"
                   "addpd   %%xmm7, %%xmm9          \n\t"
                   "addsd   %%xmm5, %%xmm13         \n\t"
                   "                                \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulsd   %%xmm1, %%xmm3          \n\t"
                   "addpd   %%xmm6, %%xmm10         \n\t"
                   "addsd   %%xmm3, %%xmm14         \n\t"
                   "                                \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "mulsd   %%xmm1, %%xmm5          \n\t"
                   "addpd   %%xmm4, %%xmm11         \n\t"
                   "addsd   %%xmm5, %%xmm15         \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "jmp    .DCONSIDERSUB_NOCLEAN_0    \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   ".DCONSIDERLOOPADD_0:              \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "testl  %%esi, %%esi             \n\t"
                   "je     .DCONSIDERADD_0            \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   ".DLOOPADD_0:                      \n\t"
                   "                                \n\t"
                   "addpd   %%xmm6, %%xmm10         \n\t"
                   "movaps       16(%%rbx), %%xmm6  \n\t"
                   "addpd   %%xmm3, %%xmm14         \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm4, %%xmm11         \n\t"
                   "addpd   %%xmm5, %%xmm15         \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm2, %%xmm8          \n\t"
                   "movaps       32(%%rbx), %%xmm2  \n\t"
                   "addpd   %%xmm3, %%xmm12         \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm7, %%xmm9          \n\t"
                   "addpd   %%xmm5, %%xmm13         \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps       32(%%rax), %%xmm0  \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "movaps       48(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "addpd   %%xmm6, %%xmm10         \n\t"
                   "movaps       48(%%rbx), %%xmm6  \n\t"
                   "addpd   %%xmm3, %%xmm14         \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm4, %%xmm11         \n\t"
                   "addpd   %%xmm5, %%xmm15         \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm2, %%xmm8          \n\t"
                   "movaps       64(%%rbx), %%xmm2  \n\t"
                   "addpd   %%xmm3, %%xmm12         \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm7, %%xmm9          \n\t"
                   "addpd   %%xmm5, %%xmm13         \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps       64(%%rax), %%xmm0  \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "movaps       80(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "addpd   %%xmm6, %%xmm10         \n\t"
                   "movaps       80(%%rbx), %%xmm6  \n\t"
                   "addpd   %%xmm3, %%xmm14         \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm4, %%xmm11         \n\t"
                   "addpd   %%xmm5, %%xmm15         \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm2, %%xmm8          \n\t"
                   "movaps       96(%%rbx), %%xmm2  \n\t"
                   "addpd   %%xmm3, %%xmm12         \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm7, %%xmm9          \n\t"
                   "addpd   %%xmm5, %%xmm13         \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps       96(%%rax), %%xmm0  \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "movaps      112(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "addpd   %%xmm6, %%xmm10         \n\t"
                   "movaps      112(%%rbx), %%xmm6  \n\t"
                   "addpd   %%xmm3, %%xmm14         \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addq      $128, %%rax           \n\t"
                   "                                \n\t"
                   "addpd   %%xmm4, %%xmm11         \n\t"
                   "addpd   %%xmm5, %%xmm15         \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "                                \n\t"
                   "addq      $128, %%rbx           \n\t"
                   "                                \n\t"
                   "addpd   %%xmm2, %%xmm8          \n\t"
                   "movaps         (%%rbx), %%xmm2  \n\t"
                   "addpd   %%xmm3, %%xmm12         \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "addpd   %%xmm7, %%xmm9          \n\t"
                   "decl    %%esi                   \n\t"
                   "addpd   %%xmm5, %%xmm13         \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps         (%%rax), %%xmm0  \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "movaps       16(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "jne    .DLOOPADD_0                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   ".DCONSIDERADD_0:                  \n\t"
                   "                                \n\t"
                   "movl      %1, %%esi             \n\t"
                   "testl  %%esi, %%esi             \n\t"
                   "je     .DCONSIDERSUB_0            \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   ".DLOOPLEFT_0:                     \n\t"
                   "                                \n\t"
                   "addpd   %%xmm6, %%xmm10         \n\t"
                   "movaps       16(%%rbx), %%xmm6  \n\t"
                   "addpd   %%xmm3, %%xmm14         \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm4, %%xmm11         \n\t"
                   "addpd   %%xmm5, %%xmm15         \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm2, %%xmm8          \n\t"
                   "movaps       32(%%rbx), %%xmm2  \n\t"
                   "addpd   %%xmm3, %%xmm12         \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addpd   %%xmm7, %%xmm9          \n\t"
                   "addpd   %%xmm5, %%xmm13         \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps       32(%%rax), %%xmm0  \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "movaps       48(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "addq          $32, %%rax        \n\t"
                   "addq          $32, %%rbx        \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "decl    %%esi                   \n\t"
                   "jne    .DLOOPLEFT_0               \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   ".DCONSIDERSUB_0:                  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "addpd   %%xmm6, %%xmm10         \n\t"
                   "addpd   %%xmm3, %%xmm14         \n\t"
                   "addpd   %%xmm4, %%xmm11         \n\t"
                   "addpd   %%xmm5, %%xmm15         \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   ".DCONSIDERSUB_NOCLEAN_0:          \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "xorpd     %%xmm3,  %%xmm3       \n\t"
                   "movaps    %%xmm3,  %%xmm4       \n\t"
                   "movaps    %%xmm3,  %%xmm5       \n\t"
                   "movaps    %%xmm3,  %%xmm6       \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movl   %2, %%esi                \n\t"
                   "testl  %%esi, %%esi             \n\t"
                   "je     .DPOSTACC_0                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movq   %9,  %%rax               \n\t"
                   "movq   %10, %%rbx               \n\t"
                   "                                \n\t"
                   "movaps        0(%%rax), %%xmm0  \n\t"
                   "movaps       16(%%rax), %%xmm1  \n\t"
                   "movaps        0(%%rbx), %%xmm2  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   ".DLOOPSUB_0:                      \n\t"
                   "                                \n\t"
                   "subpd   %%xmm6, %%xmm10         \n\t"
                   "movaps       16(%%rbx), %%xmm6  \n\t"
                   "subpd   %%xmm3, %%xmm14         \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "subpd   %%xmm4, %%xmm11         \n\t"
                   "subpd   %%xmm5, %%xmm15         \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "                                \n\t"
                   "subpd   %%xmm2, %%xmm8          \n\t"
                   "movaps       32(%%rbx), %%xmm2  \n\t"
                   "subpd   %%xmm3, %%xmm12         \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "subpd   %%xmm7, %%xmm9          \n\t"
                   "subpd   %%xmm5, %%xmm13         \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps       32(%%rax), %%xmm0  \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "movaps       48(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "subpd   %%xmm6, %%xmm10         \n\t"
                   "movaps       48(%%rbx), %%xmm6  \n\t"
                   "subpd   %%xmm3, %%xmm14         \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "subpd   %%xmm4, %%xmm11         \n\t"
                   "subpd   %%xmm5, %%xmm15         \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "                                \n\t"
                   "subpd   %%xmm2, %%xmm8          \n\t"
                   "movaps       64(%%rbx), %%xmm2  \n\t"
                   "subpd   %%xmm3, %%xmm12         \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "subpd   %%xmm7, %%xmm9          \n\t"
                   "subpd   %%xmm5, %%xmm13         \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps       64(%%rax), %%xmm0  \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "movaps       80(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "subpd   %%xmm6, %%xmm10         \n\t"
                   "movaps       80(%%rbx), %%xmm6  \n\t"
                   "subpd   %%xmm3, %%xmm14         \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "subpd   %%xmm4, %%xmm11         \n\t"
                   "subpd   %%xmm5, %%xmm15         \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "                                \n\t"
                   "subpd   %%xmm2, %%xmm8          \n\t"
                   "movaps       96(%%rbx), %%xmm2  \n\t"
                   "subpd   %%xmm3, %%xmm12         \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "subpd   %%xmm7, %%xmm9          \n\t"
                   "subpd   %%xmm5, %%xmm13         \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps       96(%%rax), %%xmm0  \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "movaps      112(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "subpd   %%xmm6, %%xmm10         \n\t"
                   "movaps      112(%%rbx), %%xmm6  \n\t"
                   "subpd   %%xmm3, %%xmm14         \n\t"
                   "movaps  %%xmm2, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm2, %%xmm7  \n\t"
                   "mulpd   %%xmm0, %%xmm2          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "addq      $128, %%rax           \n\t"
                   "                                \n\t"
                   "subpd   %%xmm4, %%xmm11         \n\t"
                   "subpd   %%xmm5, %%xmm15         \n\t"
                   "movaps  %%xmm7, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm7          \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "                                \n\t"
                   "addq      $128, %%rbx           \n\t"
                   "                                \n\t"
                   "subpd   %%xmm2, %%xmm8          \n\t"
                   "movaps         (%%rbx), %%xmm2  \n\t"
                   "subpd   %%xmm3, %%xmm12         \n\t"
                   "movaps  %%xmm6, %%xmm3          \n\t"
                   "pshufd   $0x4e, %%xmm6, %%xmm4  \n\t"
                   "mulpd   %%xmm0, %%xmm6          \n\t"
                   "mulpd   %%xmm1, %%xmm3          \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "subpd   %%xmm7, %%xmm9          \n\t"
                   "decl    %%esi                   \n\t"
                   "subpd   %%xmm5, %%xmm13         \n\t"
                   "movaps  %%xmm4, %%xmm5          \n\t"
                   "mulpd   %%xmm0, %%xmm4          \n\t"
                   "movaps         (%%rax), %%xmm0  \n\t"
                   "mulpd   %%xmm1, %%xmm5          \n\t"
                   "movaps       16(%%rax), %%xmm1  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "jne    .DLOOPSUB_0                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "subpd   %%xmm6, %%xmm10         \n\t"
                   "subpd   %%xmm3, %%xmm14         \n\t"
                   "subpd   %%xmm4, %%xmm11         \n\t"
                   "subpd   %%xmm5, %%xmm15         \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   ".DPOSTACC_0:                      \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movaps   %%xmm8,  %%xmm0        \n\t"
                   "movsd    %%xmm9,  %%xmm8        \n\t"
                   "movsd    %%xmm0,  %%xmm9        \n\t"
                   "                                \n\t"
                   "movaps  %%xmm10,  %%xmm0        \n\t"
                   "movsd   %%xmm11, %%xmm10        \n\t"
                   "movsd    %%xmm0, %%xmm11        \n\t"
                   "                                \n\t"
                   "movaps  %%xmm12,  %%xmm0        \n\t"
                   "movsd   %%xmm13, %%xmm12        \n\t"
                   "movsd    %%xmm0, %%xmm13        \n\t"
                   "                                \n\t"
                   "movaps  %%xmm14,  %%xmm0        \n\t"
                   "movsd   %%xmm15, %%xmm14        \n\t"
                   "movsd    %%xmm0, %%xmm15        \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movl      %8, %%esi             \n\t"
                   "testl  %%esi, %%esi             \n\t"
                   "je     .DSOLVE_0                  \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movq   %5, %%rax                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movaps  (%%rax),   %%xmm0       \n\t"
                   "movaps  32(%%rax), %%xmm1       \n\t"
                   "movaps  64(%%rax), %%xmm2       \n\t"
                   "movaps  96(%%rax), %%xmm3       \n\t"
                   "movaps  16(%%rax), %%xmm4       \n\t"
                   "movaps  48(%%rax), %%xmm5       \n\t"
                   "movaps  80(%%rax), %%xmm6       \n\t"
                   "movaps 112(%%rax), %%xmm7       \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "addpd  %%xmm0, %%xmm9           \n\t"
                   "addpd  %%xmm1, %%xmm8           \n\t"
                   "addpd  %%xmm2, %%xmm11          \n\t"
                   "addpd  %%xmm3, %%xmm10          \n\t"
                   "addpd  %%xmm4, %%xmm13          \n\t"
                   "addpd  %%xmm5, %%xmm12          \n\t"
                   "addpd  %%xmm6, %%xmm15          \n\t"
                   "addpd  %%xmm7, %%xmm14          \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   ".DSOLVE_0:                        \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movl   %14, %%ecx               \n\t"
                   "testl     %%ecx, %%ecx          \n\t"
                   "je        .DNO_INV_E_0          \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movq   %7, %%rax                \n\t"
                   "movq   %15, %%r8                \n\t"
                   "movq   %6, %%rbx                \n\t"
                   "                                \n\t"
                   "movl   %12, %%ecx               \n\t"
                   "movl   %13, %%edx               \n\t"
                   "                                \n\t"
                   "cmpl   $4,  %%ecx               \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movddup (%%r8), %%xmm0          \n\t"
                   "                                \n\t"
                   "mulpd   %%xmm0, %%xmm9          \n\t"
                   "mulpd   %%xmm0, %%xmm13         \n\t"
                   "                                \n\t"
                   "movaps	%%xmm9,  (%%rbx)         \n\t"
                   "jge    .STORE_0_4_INV_0               \n\t"
                   "movsd	%%xmm13, 16(%%rbx)       \n\t"
                   "jmp    .STORE_0_4_INV_END_0           \n\t"
                   ".STORE_0_4_INV_0:                     \n\t"
                   "movaps	%%xmm13, 16(%%rbx)       \n\t"
                   ".STORE_0_4_INV_END_0:                 \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movddup 8(%%rax), %%xmm0        \n\t"
                   "movddup 8(%%r8), %%xmm1         \n\t"
                   "                                \n\t"
                   "movaps  %%xmm0,  %%xmm4         \n\t"
                   "mulpd   %%xmm9, %%xmm0          \n\t"
                   "mulpd   %%xmm13, %%xmm4         \n\t"
                   "subpd   %%xmm0, %%xmm8          \n\t"
                   "subpd   %%xmm4, %%xmm12         \n\t"
                   "                                \n\t"
                   "mulpd   %%xmm1, %%xmm8          \n\t"
                   "mulpd   %%xmm1, %%xmm12         \n\t"
                   "                                \n\t"
                   "movaps	%%xmm8,  32(%%rbx)       \n\t"
                   "jge    .STORE_1_4_INV_0               \n\t"
                   "movsd	%%xmm12, 48(%%rbx)       \n\t"
                   "jmp    .STORE_1_4_INV_END_0           \n\t"
                   ".STORE_1_4_INV_0:                     \n\t"
                   "movaps	%%xmm12, 48(%%rbx)       \n\t"
                   ".STORE_1_4_INV_END_0:                 \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movddup 16(%%rax), %%xmm0       \n\t"
                   "movddup 48(%%rax), %%xmm1       \n\t"
                   "movddup 16(%%r8), %%xmm2        \n\t"
                   "                                \n\t"
                   "movaps  %%xmm0,  %%xmm4         \n\t"
                   "mulpd   %%xmm9, %%xmm0          \n\t"
                   "mulpd   %%xmm13, %%xmm4         \n\t"
                   "subpd   %%xmm0, %%xmm11         \n\t"
                   "subpd   %%xmm4, %%xmm15         \n\t"
                   "                                \n\t"
                   "movaps  %%xmm1,  %%xmm4         \n\t"
                   "mulpd   %%xmm8, %%xmm1          \n\t"
                   "mulpd   %%xmm12, %%xmm4         \n\t"
                   "subpd   %%xmm1, %%xmm11         \n\t"
                   "subpd   %%xmm4, %%xmm15         \n\t"
                   "                                \n\t"
                   "mulpd   %%xmm2, %%xmm11         \n\t"
                   "mulpd   %%xmm2, %%xmm15         \n\t"
                   "                                \n\t"
                   "movaps	%%xmm11, 64(%%rbx)       \n\t"
                   "jge    .STORE_2_4_INV_0               \n\t"
                   "movsd	%%xmm15, 80(%%rbx)       \n\t"
                   "jmp    .STORE_2_4_INV_END_0           \n\t"
                   ".STORE_2_4_INV_0:                     \n\t"
                   "movaps	%%xmm15, 80(%%rbx)       \n\t"
                   ".STORE_2_4_INV_END_0:                 \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "cmpl      $4,  %%edx            \n\t"
                   "jl      .END1_0                   \n\t"
                   "                                \n\t"
                   "movddup 24(%%rax), %%xmm0       \n\t"
                   "movddup 56(%%rax), %%xmm1       \n\t"
                   "movddup 88(%%rax), %%xmm2       \n\t"
                   "movddup 24(%%r8), %%xmm3        \n\t"
                   "                                \n\t"
                   "movaps  %%xmm0,  %%xmm4         \n\t"
                   "mulpd   %%xmm9, %%xmm0          \n\t"
                   "mulpd   %%xmm13, %%xmm4         \n\t"
                   "subpd   %%xmm0, %%xmm10         \n\t"
                   "subpd   %%xmm4, %%xmm14         \n\t"
                   "                                \n\t"
                   "cmpl      $4,  %%ecx            \n\t"
                   "                                \n\t"
                   "movaps  %%xmm1,  %%xmm4         \n\t"
                   "mulpd   %%xmm8, %%xmm1          \n\t"
                   "mulpd   %%xmm12, %%xmm4         \n\t"
                   "subpd   %%xmm1, %%xmm10         \n\t"
                   "subpd   %%xmm4, %%xmm14         \n\t"
                   "                                \n\t"
                   "movaps  %%xmm2,  %%xmm4         \n\t"
                   "mulpd   %%xmm11, %%xmm2         \n\t"
                   "mulpd   %%xmm15, %%xmm4         \n\t"
                   "subpd   %%xmm2, %%xmm10         \n\t"
                   "subpd   %%xmm4, %%xmm14         \n\t"
                   "                                \n\t"
                   "mulpd   %%xmm3, %%xmm10         \n\t"
                   "mulpd   %%xmm3, %%xmm14         \n\t"
                   "                                \n\t"
                   "movaps	%%xmm10, 96(%%rbx)       \n\t"
                   "jge    .STORE_3_4_INV_0               \n\t"
                   "movsd	%%xmm14, 112(%%rbx)      \n\t"
                   "jmp    .STORE_3_4_INV_END_0           \n\t"
                   ".STORE_3_4_INV_0:                     \n\t"
                   "movaps	%%xmm14, 112(%%rbx)      \n\t"
                   ".STORE_3_4_INV_END_0:                 \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "jmp .END1_0                     \n\t"
                   "                                \n\t"
                   ".DNO_INV_E_0:                   \n\t"
                   "                                \n\t"
                   "movsd   .DONE_0(%%rip), %%xmm6  \n\t"
                   "                                \n\t"
                   "movq   %7, %%rax                \n\t"
                   "movq   %6, %%rbx                \n\t"
                   "                                \n\t"
                   "movl   %12, %%ecx               \n\t"
                   "movl   %13, %%edx               \n\t"
                   "                                \n\t"
                   "cmpl   $4,  %%ecx               \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movddup (%%rax), %%xmm0         \n\t"
                   "movsd   %%xmm6, %%xmm5          \n\t"
                   "divsd   %%xmm0, %%xmm5          \n\t"
                   "movddup %%xmm5, %%xmm0          \n\t"
                   "                                \n\t"
                   "mulpd   %%xmm0, %%xmm9          \n\t"
                   "mulpd   %%xmm0, %%xmm13         \n\t"
                   "                                \n\t"
                   "movaps	%%xmm9,  (%%rbx)         \n\t"
                   "jge    .STORE_0_4_0               \n\t"
                   "movsd	%%xmm13, 16(%%rbx)       \n\t"
                   "jmp    .STORE_0_4_END_0           \n\t"
                   ".STORE_0_4_0:                     \n\t"
                   "movaps	%%xmm13, 16(%%rbx)       \n\t"
                   ".STORE_0_4_END_0:                 \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movddup 8(%%rax), %%xmm0        \n\t"
                   "movsd   %%xmm6, %%xmm5          \n\t"
                   "divsd   %%xmm0, %%xmm5          \n\t"
                   "movddup 40(%%rax), %%xmm1       \n\t"
                   "movddup %%xmm5, %%xmm0          \n\t"
                   "                                \n\t"
                   "movaps  %%xmm0,  %%xmm4         \n\t"
                   "mulpd   %%xmm9, %%xmm0          \n\t"
                   "mulpd   %%xmm13, %%xmm4         \n\t"
                   "subpd   %%xmm0, %%xmm8          \n\t"
                   "subpd   %%xmm4, %%xmm12         \n\t"
                   "                                \n\t"
                   "mulpd   %%xmm1, %%xmm8          \n\t"
                   "mulpd   %%xmm1, %%xmm12         \n\t"
                   "                                \n\t"
                   "movaps	%%xmm8,  32(%%rbx)       \n\t"
                   "jge    .STORE_1_4_0               \n\t"
                   "movsd	%%xmm12, 48(%%rbx)       \n\t"
                   "jmp    .STORE_1_4_END_0           \n\t"
                   ".STORE_1_4_0:                     \n\t"
                   "movaps	%%xmm12, 48(%%rbx)       \n\t"
                   ".STORE_1_4_END_0:                 \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "movddup 16(%%rax), %%xmm0       \n\t"
                   "movsd   %%xmm6, %%xmm5          \n\t"
                   "divsd   %%xmm0, %%xmm5          \n\t"
                   "movddup 48(%%rax), %%xmm1       \n\t"
                   "movddup 80(%%rax), %%xmm2       \n\t"
                   "movddup %%xmm5, %%xmm0          \n\t"
                   "                                \n\t"
                   "movaps  %%xmm0,  %%xmm4         \n\t"
                   "mulpd   %%xmm9, %%xmm0          \n\t"
                   "mulpd   %%xmm13, %%xmm4         \n\t"
                   "subpd   %%xmm0, %%xmm11         \n\t"
                   "subpd   %%xmm4, %%xmm15         \n\t"
                   "                                \n\t"
                   "movaps  %%xmm1,  %%xmm4         \n\t"
                   "mulpd   %%xmm8, %%xmm1          \n\t"
                   "mulpd   %%xmm12, %%xmm4         \n\t"
                   "subpd   %%xmm1, %%xmm11         \n\t"
                   "subpd   %%xmm4, %%xmm15         \n\t"
                   "                                \n\t"
                   "mulpd   %%xmm2, %%xmm11         \n\t"
                   "mulpd   %%xmm2, %%xmm15         \n\t"
                   "                                \n\t"
                   "movaps	%%xmm11, 64(%%rbx)       \n\t"
                   "jge    .STORE_2_4_0               \n\t"
                   "movsd	%%xmm15, 80(%%rbx)       \n\t"
                   "jmp    .STORE_2_4_END_0           \n\t"
                   ".STORE_2_4_0:                     \n\t"
                   "movaps	%%xmm15, 80(%%rbx)       \n\t"
                   ".STORE_2_4_END_0:                 \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "cmpl      $4,  %%edx            \n\t"
                   "jl      .END1_0                   \n\t"
                   "                                \n\t"
                   "movddup 24(%%rax), %%xmm0       \n\t"
                   "movsd   %%xmm6, %%xmm5          \n\t"
                   "divsd   %%xmm0, %%xmm5          \n\t"
                   "movddup 56(%%rax), %%xmm1       \n\t"
                   "movddup 88(%%rax), %%xmm2       \n\t"
                   "movddup 120(%%rax), %%xmm3       \n\t"
                   "movddup %%xmm5, %%xmm0          \n\t"
                   "                                \n\t"
                   "movaps  %%xmm0,  %%xmm4         \n\t"
                   "mulpd   %%xmm9, %%xmm0          \n\t"
                   "mulpd   %%xmm13, %%xmm4         \n\t"
                   "subpd   %%xmm0, %%xmm10         \n\t"
                   "subpd   %%xmm4, %%xmm14         \n\t"
                   "                                \n\t"
                   "cmpl      $4,  %%ecx            \n\t"
                   "                                \n\t"
                   "movaps  %%xmm1,  %%xmm4         \n\t"
                   "mulpd   %%xmm8, %%xmm1          \n\t"
                   "mulpd   %%xmm12, %%xmm4         \n\t"
                   "subpd   %%xmm1, %%xmm10         \n\t"
                   "subpd   %%xmm4, %%xmm14         \n\t"
                   "                                \n\t"
                   "movaps  %%xmm2,  %%xmm4         \n\t"
                   "mulpd   %%xmm11, %%xmm2         \n\t"
                   "mulpd   %%xmm15, %%xmm4         \n\t"
                   "subpd   %%xmm2, %%xmm10         \n\t"
                   "subpd   %%xmm4, %%xmm14         \n\t"
                   "                                \n\t"
                   "mulpd   %%xmm3, %%xmm10         \n\t"
                   "mulpd   %%xmm3, %%xmm14         \n\t"
                   "                                \n\t"
                   "movaps	%%xmm10, 96(%%rbx)       \n\t"
                   "jge    .STORE_3_4_0               \n\t"
                   "movsd	%%xmm14, 112(%%rbx)      \n\t"
                   "jmp    .STORE_3_4_END_0           \n\t"
                   ".STORE_3_4_0:                     \n\t"
                   "movaps	%%xmm14, 112(%%rbx)      \n\t"
                   ".STORE_3_4_END_0:                 \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "jmp    .END1_0                    \n\t"
                   ".align 16                       \n\t"
                   ".DONE_0:                          \n\t"
                   ".long  0                        \n\t"
                   ".long  1072693248               \n\t"
                   ".long  0                        \n\t"
                   ".long  0                        \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   ".END1_0:                          \n\t"
                   "                                \n\t"
                   "                                \n\t"
                   :
                   : "m"(ki_add), "m"(kl_add), "m"(ki_sub), "m"(Ap), "m"(Bp), "m"(C), "m"(D), "m"(E), "m"(alg), "m"(Am), "m"(Bm), "m"(tri_A), "m"(km), "m"(kn), "m"(use_inv_diag_E), "m"(inv_diag_E)
                   : "rax", "rbx", "rcx", "rdx", "rsi", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7", "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15", "memory");
}
```