void kernel_strmm_nt_8x4_lib4(int kmax, float *A0, float *A1, float *B,
                              float *D0, float *D1) {
  int k_iter = kmax / 4 - 1;
  int k_left = kmax % 4;
  __asm__ volatile(
      "                                \n\t"
      "                                \n\t"
      "movq          %2, %%rax         \n\t"
      "movq          %3, %%rcx         \n\t"
      "movq          %4, %%rbx         \n\t"
      "                                \n\t"
      "                                \n\t"
      "movaps        0(%%rax), %%xmm0  \n\t"
      "movaps        0(%%rcx), %%xmm1  \n\t"
      "movss         0(%%rbx), %%xmm2  \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"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      "addps   %%xmm6, %%xmm10         \n\t"
      "addps   %%xmm3, %%xmm14         \n\t"
      "movaps  %%xmm2, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm2, %%xmm7  \n\t"
      "mulps   %%xmm0, %%xmm2          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm4, %%xmm11         \n\t"
      "xorpd   %%xmm4,  %%xmm4         \n\t"
      "addps   %%xmm5, %%xmm15         \n\t"
      "movaps  %%xmm7, %%xmm5          \n\t"
      "pshufd   $0x39, %%xmm7, %%xmm6  \n\t"
      "mulps   %%xmm0, %%xmm7          \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "                                \n\t"
      "addps   %%xmm2, %%xmm8          \n\t"
      "movaps       16(%%rbx), %%xmm2  \n\t"
      "movlhps %%xmm4,  %%xmm2         \n\t"
      "addps   %%xmm3, %%xmm12         \n\t"
      "movaps  %%xmm6, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm6, %%xmm4  \n\t"
      "mulps   %%xmm0, %%xmm6          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm7, %%xmm9          \n\t"
      "addps   %%xmm5, %%xmm13         \n\t"
      "movaps  %%xmm4, %%xmm5          \n\t"
      "mulps   %%xmm0, %%xmm4          \n\t"
      "movaps       16(%%rax), %%xmm0  \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "movaps       16(%%rcx), %%xmm1  \n\t"
      "                                \n\t"
      "                                \n\t"
      "addps   %%xmm6, %%xmm10         \n\t"
      "addps   %%xmm3, %%xmm14         \n\t"
      "movaps  %%xmm2, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm2, %%xmm7  \n\t"
      "mulps   %%xmm0, %%xmm2          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm4, %%xmm11         \n\t"
      "movss        40(%%rbx), %%xmm4  \n\t"
      "addps   %%xmm5, %%xmm15         \n\t"
      "movaps  %%xmm7, %%xmm5          \n\t"
      "pshufd   $0x39, %%xmm7, %%xmm6  \n\t"
      "mulps   %%xmm0, %%xmm7          \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "                                \n\t"
      "addps   %%xmm2, %%xmm8          \n\t"
      "movaps       32(%%rbx), %%xmm2  \n\t"
      "movlhps %%xmm4,  %%xmm2         \n\t"
      "addps   %%xmm3, %%xmm12         \n\t"
      "movaps  %%xmm6, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm6, %%xmm4  \n\t"
      "mulps   %%xmm0, %%xmm6          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm7, %%xmm9          \n\t"
      "addps   %%xmm5, %%xmm13         \n\t"
      "movaps  %%xmm4, %%xmm5          \n\t"
      "mulps   %%xmm0, %%xmm4          \n\t"
      "movaps       32(%%rax), %%xmm0  \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "movaps       32(%%rcx), %%xmm1  \n\t"
      "                                \n\t"
      "                                \n\t"
      "addps   %%xmm6, %%xmm10         \n\t"
      "addps   %%xmm3, %%xmm14         \n\t"
      "movaps  %%xmm2, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm2, %%xmm7  \n\t"
      "mulps   %%xmm0, %%xmm2          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm4, %%xmm11         \n\t"
      "addps   %%xmm5, %%xmm15         \n\t"
      "movaps  %%xmm7, %%xmm5          \n\t"
      "pshufd   $0x39, %%xmm7, %%xmm6  \n\t"
      "mulps   %%xmm0, %%xmm7          \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "                                \n\t"
      "addps   %%xmm2, %%xmm8          \n\t"
      "movaps       48(%%rbx), %%xmm2  \n\t"
      "addps   %%xmm3, %%xmm12         \n\t"
      "movaps  %%xmm6, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm6, %%xmm4  \n\t"
      "mulps   %%xmm0, %%xmm6          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm7, %%xmm9          \n\t"
      "addps   %%xmm5, %%xmm13         \n\t"
      "movaps  %%xmm4, %%xmm5          \n\t"
      "mulps   %%xmm0, %%xmm4          \n\t"
      "movaps       48(%%rax), %%xmm0  \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "movaps       48(%%rcx), %%xmm1  \n\t"
      "                                \n\t"
      "                                \n\t"
      "addps   %%xmm6, %%xmm10         \n\t"
      "addps   %%xmm3, %%xmm14         \n\t"
      "movaps  %%xmm2, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm2, %%xmm7  \n\t"
      "mulps   %%xmm0, %%xmm2          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addq       $64, %%rax           \n\t"
      "                                \n\t"
      "addps   %%xmm4, %%xmm11         \n\t"
      "addps   %%xmm5, %%xmm15         \n\t"
      "movaps  %%xmm7, %%xmm5          \n\t"
      "pshufd   $0x39, %%xmm7, %%xmm6  \n\t"
      "mulps   %%xmm0, %%xmm7          \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "                                \n\t"
      "addq       $64, %%rbx           \n\t"
      "                                \n\t"
      "addps   %%xmm2, %%xmm8          \n\t"
      "movaps         (%%rbx), %%xmm2  \n\t"
      "addps   %%xmm3, %%xmm12         \n\t"
      "movaps  %%xmm6, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm6, %%xmm4  \n\t"
      "mulps   %%xmm0, %%xmm6          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addq       $64, %%rcx           \n\t"
      "                                \n\t"
      "addps   %%xmm7, %%xmm9          \n\t"
      "addps   %%xmm5, %%xmm13         \n\t"
      "movaps  %%xmm4, %%xmm5          \n\t"
      "mulps   %%xmm0, %%xmm4          \n\t"
      "movaps         (%%rax), %%xmm0  \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "movaps         (%%rcx), %%xmm1  \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      "movl      %0, %%esi             \n\t"
      "testl  %%esi, %%esi             \n\t"
      "je     .SCONSIDKLEFT_8X4        \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      ".SLOOPKITER_8X4:                \n\t"
      "                                \n\t"
      "addps   %%xmm6, %%xmm10         \n\t"
      "addps   %%xmm3, %%xmm14         \n\t"
      "movaps  %%xmm2, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm2, %%xmm7  \n\t"
      "mulps   %%xmm0, %%xmm2          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm4, %%xmm11         \n\t"
      "addps   %%xmm5, %%xmm15         \n\t"
      "movaps  %%xmm7, %%xmm5          \n\t"
      "pshufd   $0x39, %%xmm7, %%xmm6  \n\t"
      "mulps   %%xmm0, %%xmm7          \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "                                \n\t"
      "addps   %%xmm2, %%xmm8          \n\t"
      "movaps       16(%%rbx), %%xmm2  \n\t"
      "addps   %%xmm3, %%xmm12         \n\t"
      "movaps  %%xmm6, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm6, %%xmm4  \n\t"
      "mulps   %%xmm0, %%xmm6          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm7, %%xmm9          \n\t"
      "addps   %%xmm5, %%xmm13         \n\t"
      "movaps  %%xmm4, %%xmm5          \n\t"
      "mulps   %%xmm0, %%xmm4          \n\t"
      "movaps       16(%%rax), %%xmm0  \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "movaps       16(%%rcx), %%xmm1  \n\t"
      "                                \n\t"
      "                                \n\t"
      "addps   %%xmm6, %%xmm10         \n\t"
      "addps   %%xmm3, %%xmm14         \n\t"
      "movaps  %%xmm2, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm2, %%xmm7  \n\t"
      "mulps   %%xmm0, %%xmm2          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm4, %%xmm11         \n\t"
      "addps   %%xmm5, %%xmm15         \n\t"
      "movaps  %%xmm7, %%xmm5          \n\t"
      "pshufd   $0x39, %%xmm7, %%xmm6  \n\t"
      "mulps   %%xmm0, %%xmm7          \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "                                \n\t"
      "addps   %%xmm2, %%xmm8          \n\t"
      "movaps       32(%%rbx), %%xmm2  \n\t"
      "addps   %%xmm3, %%xmm12         \n\t"
      "movaps  %%xmm6, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm6, %%xmm4  \n\t"
      "mulps   %%xmm0, %%xmm6          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm7, %%xmm9          \n\t"
      "addps   %%xmm5, %%xmm13         \n\t"
      "movaps  %%xmm4, %%xmm5          \n\t"
      "mulps   %%xmm0, %%xmm4          \n\t"
      "movaps       32(%%rax), %%xmm0  \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "movaps       32(%%rcx), %%xmm1  \n\t"
      "                                \n\t"
      "                                \n\t"
      "addps   %%xmm6, %%xmm10         \n\t"
      "addps   %%xmm3, %%xmm14         \n\t"
      "movaps  %%xmm2, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm2, %%xmm7  \n\t"
      "mulps   %%xmm0, %%xmm2          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm4, %%xmm11         \n\t"
      "addps   %%xmm5, %%xmm15         \n\t"
      "movaps  %%xmm7, %%xmm5          \n\t"
      "pshufd   $0x39, %%xmm7, %%xmm6  \n\t"
      "mulps   %%xmm0, %%xmm7          \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "                                \n\t"
      "addps   %%xmm2, %%xmm8          \n\t"
      "movaps       48(%%rbx), %%xmm2  \n\t"
      "addps   %%xmm3, %%xmm12         \n\t"
      "movaps  %%xmm6, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm6, %%xmm4  \n\t"
      "mulps   %%xmm0, %%xmm6          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm7, %%xmm9          \n\t"
      "addps   %%xmm5, %%xmm13         \n\t"
      "movaps  %%xmm4, %%xmm5          \n\t"
      "mulps   %%xmm0, %%xmm4          \n\t"
      "movaps       48(%%rax), %%xmm0  \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "movaps       48(%%rcx), %%xmm1  \n\t"
      "                                \n\t"
      "                                \n\t"
      "addps   %%xmm6, %%xmm10         \n\t"
      "addps   %%xmm3, %%xmm14         \n\t"
      "movaps  %%xmm2, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm2, %%xmm7  \n\t"
      "mulps   %%xmm0, %%xmm2          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addq       $64, %%rax           \n\t"
      "                                \n\t"
      "addps   %%xmm4, %%xmm11         \n\t"
      "addps   %%xmm5, %%xmm15         \n\t"
      "movaps  %%xmm7, %%xmm5          \n\t"
      "pshufd   $0x39, %%xmm7, %%xmm6  \n\t"
      "mulps   %%xmm0, %%xmm7          \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "                                \n\t"
      "addq       $64, %%rbx           \n\t"
      "                                \n\t"
      "addps   %%xmm2, %%xmm8          \n\t"
      "movaps         (%%rbx), %%xmm2  \n\t"
      "addps   %%xmm3, %%xmm12         \n\t"
      "movaps  %%xmm6, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm6, %%xmm4  \n\t"
      "mulps   %%xmm0, %%xmm6          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addq       $64, %%rcx           \n\t"
      "                                \n\t"
      "addps   %%xmm7, %%xmm9          \n\t"
      "decl    %%esi                   \n\t"
      "addps   %%xmm5, %%xmm13         \n\t"
      "movaps  %%xmm4, %%xmm5          \n\t"
      "mulps   %%xmm0, %%xmm4          \n\t"
      "movaps         (%%rax), %%xmm0  \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "movaps         (%%rcx), %%xmm1  \n\t"
      "                                \n\t"
      "                                \n\t"
      "jne    .SLOOPKITER_8X4          \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      ".SCONSIDKLEFT_8X4:              \n\t"
      "                                \n\t"
      "movl      %1, %%esi             \n\t"
      "testl  %%esi, %%esi             \n\t"
      "je     .SPOSTACCUM_8X4          \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      ".SLOOPKLEFT_8X4:                \n\t"
      "                                \n\t"
      "addps   %%xmm6, %%xmm10         \n\t"
      "addps   %%xmm3, %%xmm14         \n\t"
      "movaps  %%xmm2, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm2, %%xmm7  \n\t"
      "mulps   %%xmm0, %%xmm2          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm4, %%xmm11         \n\t"
      "addps   %%xmm5, %%xmm15         \n\t"
      "movaps  %%xmm7, %%xmm5          \n\t"
      "pshufd   $0x39, %%xmm7, %%xmm6  \n\t"
      "mulps   %%xmm0, %%xmm7          \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "                                \n\t"
      "addps   %%xmm2, %%xmm8          \n\t"
      "movaps       16(%%rbx), %%xmm2  \n\t"
      "addps   %%xmm3, %%xmm12         \n\t"
      "movaps  %%xmm6, %%xmm3          \n\t"
      "pshufd   $0x39, %%xmm6, %%xmm4  \n\t"
      "mulps   %%xmm0, %%xmm6          \n\t"
      "mulps   %%xmm1, %%xmm3          \n\t"
      "                                \n\t"
      "addps   %%xmm7, %%xmm9          \n\t"
      "addps   %%xmm5, %%xmm13         \n\t"
      "movaps  %%xmm4, %%xmm5          \n\t"
      "mulps   %%xmm0, %%xmm4          \n\t"
      "movaps       16(%%rax), %%xmm0  \n\t"
      "mulps   %%xmm1, %%xmm5          \n\t"
      "movaps       16(%%rcx), %%xmm1  \n\t"
      "                                \n\t"
      "addq          $16, %%rax        \n\t"
      "addq          $16, %%rcx        \n\t"
      "addq          $16, %%rbx        \n\t"
      "                                \n\t"
      "                                \n\t"
      "decl    %%esi                   \n\t"
      "jne    .SLOOPKLEFT_8X4          \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      ".SPOSTACCUM_8X4:                \n\t"
      "                                \n\t"
      "addps   %%xmm6, %%xmm10         \n\t"
      "addps   %%xmm3, %%xmm14         \n\t"
      "addps   %%xmm4, %%xmm11         \n\t"
      "addps   %%xmm5, %%xmm15         \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      "movaps  %%xmm9, %%xmm4          \n\t"
      "shufps   $0xd8, %%xmm8,  %%xmm9 \n\t"
      "shufps   $0xd8, %%xmm11, %%xmm8 \n\t"
      "shufps   $0xd8, %%xmm10, %%xmm11\n\t"
      "shufps   $0xd8, %%xmm4,  %%xmm10\n\t"
      "                                \n\t"
      "movaps  %%xmm8, %%xmm4          \n\t"
      "shufps   $0xd8, %%xmm10, %%xmm8 \n\t"
      "shufps   $0xd8, %%xmm4, %%xmm10 \n\t"
      "movaps  %%xmm9, %%xmm5          \n\t"
      "shufps   $0xd8, %%xmm11, %%xmm9 \n\t"
      "shufps   $0xd8, %%xmm5, %%xmm11 \n\t"
      "                                \n\t"
      "movaps  %%xmm13, %%xmm4         \n\t"
      "shufps   $0xd8, %%xmm12, %%xmm13\n\t"
      "shufps   $0xd8, %%xmm15, %%xmm12\n\t"
      "shufps   $0xd8, %%xmm14, %%xmm15\n\t"
      "shufps   $0xd8, %%xmm4,  %%xmm14\n\t"
      "                                \n\t"
      "movaps  %%xmm12, %%xmm4         \n\t"
      "shufps   $0xd8, %%xmm14, %%xmm12\n\t"
      "shufps   $0xd8, %%xmm4, %%xmm14 \n\t"
      "movaps  %%xmm13, %%xmm5         \n\t"
      "shufps   $0xd8, %%xmm15, %%xmm13\n\t"
      "shufps   $0xd8, %%xmm5, %%xmm15 \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      "movq   %5, %%rax                \n\t"
      "movq   %6, %%rbx                \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      "movaps	%%xmm8,  (%%rax)          \n\t"
      "movaps	%%xmm9,  16(%%rax)        \n\t"
      "movaps	%%xmm10, 32(%%rax)        \n\t"
      "movaps	%%xmm11, 48(%%rax)        \n\t"
      "movaps	%%xmm12, (%%rbx)          \n\t"
      "movaps	%%xmm13, 16(%%rbx)        \n\t"
      "movaps	%%xmm14, 32(%%rbx)        \n\t"
      "movaps	%%xmm15, 48(%%rbx)        \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      "                                \n\t"
      ".SDONE_8X4:                     \n\t"
      "                                \n\t"
      :
      : "m"(k_iter), "m"(k_left), "m"(A0), "m"(A1), "m"(B), "m"(D0), "m"(D1)
      : "rax", "rbx", "rcx", "r8", "r9", "rsi", "xmm0", "xmm1", "xmm2", "xmm3",
        "xmm4", "xmm5", "xmm6", "xmm7", "xmm8", "xmm9", "xmm10", "xmm11",
        "xmm12", "xmm13", "xmm14", "xmm15", "memory");
}


x86 assembly (clang, -O0):
<kernel_strmm_nt_8x4_lib4>:
push   %rbp
mov    %rsp,%rbp
push   %rbx
mov    %edi,-0xc(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    %r9,-0x38(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x4,%ecx
cltd
idiv   %ecx
sub    $0x1,%eax
mov    %eax,-0x3c(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x4,%ecx
cltd
idiv   %ecx
mov    %edx,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%rcx
mov    -0x28(%rbp),%rbx
movaps (%rax),%xmm0
movaps (%rcx),%xmm1
movss  (%rbx),%xmm2
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
addps  %xmm6,%xmm10
addps  %xmm3,%xmm14
movaps %xmm2,%xmm3
pshufd $0x39,%xmm2,%xmm7
mulps  %xmm0,%xmm2
mulps  %xmm1,%xmm3
addps  %xmm4,%xmm11
xorpd  %xmm4,%xmm4
addps  %xmm5,%xmm15
movaps %xmm7,%xmm5
pshufd $0x39,%xmm7,%xmm6
mulps  %xmm0,%xmm7
mulps  %xmm1,%xmm5
addps  %xmm2,%xmm8
movaps 0x10(%rbx),%xmm2
movlhps %xmm4,%xmm2
addps  %xmm3,%xmm12
movaps %xmm6,%xmm3
pshufd $0x39,%xmm6,%xmm4
mulps  %xmm0,%xmm6
mulps  %xmm1,%xmm3
addps  %xmm7,%xmm9
addps  %xmm5,%xmm13
movaps %xmm4,%xmm5
mulps  %xmm0,%xmm4
movaps 0x10(%rax),%xmm0
mulps  %xmm1,%xmm5
movaps 0x10(%rcx),%xmm1
addps  %xmm6,%xmm10
addps  %xmm3,%xmm14
movaps %xmm2,%xmm3
pshufd $0x39,%xmm2,%xmm7
mulps  %xmm0,%xmm2
mulps  %xmm1,%xmm3
addps  %xmm4,%xmm11
movss  0x28(%rbx),%xmm4
addps  %xmm5,%xmm15
movaps %xmm7,%xmm5
pshufd $0x39,%xmm7,%xmm6
mulps  %xmm0,%xmm7
mulps  %xmm1,%xmm5
addps  %xmm2,%xmm8
movaps 0x20(%rbx),%xmm2
movlhps %xmm4,%xmm2
addps  %xmm3,%xmm12
movaps %xmm6,%xmm3
pshufd $0x39,%xmm6,%xmm4
mulps  %xmm0,%xmm6
mulps  %xmm1,%xmm3
addps  %xmm7,%xmm9
addps  %xmm5,%xmm13
movaps %xmm4,%xmm5
mulps  %xmm0,%xmm4
movaps 0x20(%rax),%xmm0
mulps  %xmm1,%xmm5
movaps 0x20(%rcx),%xmm1
addps  %xmm6,%xmm10
addps  %xmm3,%xmm14
movaps %xmm2,%xmm3
pshufd $0x39,%xmm2,%xmm7
mulps  %xmm0,%xmm2
mulps  %xmm1,%xmm3
addps  %xmm4,%xmm11
addps  %xmm5,%xmm15
movaps %xmm7,%xmm5
pshufd $0x39,%xmm7,%xmm6
mulps  %xmm0,%xmm7
mulps  %xmm1,%xmm5
addps  %xmm2,%xmm8
movaps 0x30(%rbx),%xmm2
addps  %xmm3,%xmm12
movaps %xmm6,%xmm3
pshufd $0x39,%xmm6,%xmm4
mulps  %xmm0,%xmm6
mulps  %xmm1,%xmm3
addps  %xmm7,%xmm9
addps  %xmm5,%xmm13
movaps %xmm4,%xmm5
mulps  %xmm0,%xmm4
movaps 0x30(%rax),%xmm0
mulps  %xmm1,%xmm5
movaps 0x30(%rcx),%xmm1
addps  %xmm6,%xmm10
addps  %xmm3,%xmm14
movaps %xmm2,%xmm3
pshufd $0x39,%xmm2,%xmm7
mulps  %xmm0,%xmm2
mulps  %xmm1,%xmm3
add    $0x40,%rax
addps  %xmm4,%xmm11
addps  %xmm5,%xmm15
movaps %xmm7,%xmm5
pshufd $0x39,%xmm7,%xmm6
mulps  %xmm0,%xmm7
mulps  %xmm1,%xmm5
add    $0x40,%rbx
addps  %xmm2,%xmm8
movaps (%rbx),%xmm2
addps  %xmm3,%xmm12
movaps %xmm6,%xmm3
pshufd $0x39,%xmm6,%xmm4
mulps  %xmm0,%xmm6
mulps  %xmm1,%xmm3
add    $0x40,%rcx
addps  %xmm7,%xmm9
addps  %xmm5,%xmm13
movaps %xmm4,%xmm5
mulps  %xmm0,%xmm4
movaps (%rax),%xmm0
mulps  %xmm1,%xmm5
movaps (%rcx),%xmm1
mov    -0x3c(%rbp),%esi
test   %esi,%esi
je     14ad <.SCONSIDKLEFT_8X4>

x86 assembly (clang, -O2):
<kernel_strmm_nt_8x4_lib4>:
push   %rbx
mov    %rsi,-0x8(%rsp)
mov    %rdx,-0x10(%rsp)
mov    %rcx,-0x18(%rsp)
mov    %r8,-0x20(%rsp)
lea    0x3(%rdi),%eax
test   %edi,%edi
cmovns %edi,%eax
mov    %r9,-0x28(%rsp)
mov    %eax,%ecx
sar    $0x2,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x2c(%rsp)
and    $0xfffffffc,%eax
sub    %eax,%edi
mov    %edi,-0x30(%rsp)
mov    -0x8(%rsp),%rax
mov    -0x10(%rsp),%rcx
mov    -0x18(%rsp),%rbx
movaps (%rax),%xmm0
movaps (%rcx),%xmm1
movss  (%rbx),%xmm2
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
addps  %xmm6,%xmm10
addps  %xmm3,%xmm14
movaps %xmm2,%xmm3
pshufd $0x39,%xmm2,%xmm7
mulps  %xmm0,%xmm2
mulps  %xmm1,%xmm3
addps  %xmm4,%xmm11
xorpd  %xmm4,%xmm4
addps  %xmm5,%xmm15
movaps %xmm7,%xmm5
pshufd $0x39,%xmm7,%xmm6
mulps  %xmm0,%xmm7
mulps  %xmm1,%xmm5
addps  %xmm2,%xmm8
movaps 0x10(%rbx),%xmm2
movlhps %xmm4,%xmm2
addps  %xmm3,%xmm12
movaps %xmm6,%xmm3
pshufd $0x39,%xmm6,%xmm4
mulps  %xmm0,%xmm6
mulps  %xmm1,%xmm3
addps  %xmm7,%xmm9
addps  %xmm5,%xmm13
movaps %xmm4,%xmm5
mulps  %xmm0,%xmm4
movaps 0x10(%rax),%xmm0
mulps  %xmm1,%xmm5
movaps 0x10(%rcx),%xmm1
addps  %xmm6,%xmm10
addps  %xmm3,%xmm14
movaps %xmm2,%xmm3
pshufd $0x39,%xmm2,%xmm7
mulps  %xmm0,%xmm2
mulps  %xmm1,%xmm3
addps  %xmm4,%xmm11
movss  0x28(%rbx),%xmm4
addps  %xmm5,%xmm15
movaps %xmm7,%xmm5
pshufd $0x39,%xmm7,%xmm6
mulps  %xmm0,%xmm7
mulps  %xmm1,%xmm5
addps  %xmm2,%xmm8
movaps 0x20(%rbx),%xmm2
movlhps %xmm4,%xmm2
addps  %xmm3,%xmm12
movaps %xmm6,%xmm3
pshufd $0x39,%xmm6,%xmm4
mulps  %xmm0,%xmm6
mulps  %xmm1,%xmm3
addps  %xmm7,%xmm9
addps  %xmm5,%xmm13
movaps %xmm4,%xmm5
mulps  %xmm0,%xmm4
movaps 0x20(%rax),%xmm0
mulps  %xmm1,%xmm5
movaps 0x20(%rcx),%xmm1
addps  %xmm6,%xmm10
addps  %xmm3,%xmm14
movaps %xmm2,%xmm3
pshufd $0x39,%xmm2,%xmm7
mulps  %xmm0,%xmm2
mulps  %xmm1,%xmm3
addps  %xmm4,%xmm11
addps  %xmm5,%xmm15
movaps %xmm7,%xmm5
pshufd $0x39,%xmm7,%xmm6
mulps  %xmm0,%xmm7
mulps  %xmm1,%xmm5
addps  %xmm2,%xmm8
movaps 0x30(%rbx),%xmm2
addps  %xmm3,%xmm12
movaps %xmm6,%xmm3
pshufd $0x39,%xmm6,%xmm4
mulps  %xmm0,%xmm6
mulps  %xmm1,%xmm3
addps  %xmm7,%xmm9
addps  %xmm5,%xmm13
movaps %xmm4,%xmm5
mulps  %xmm0,%xmm4
movaps 0x30(%rax),%xmm0
mulps  %xmm1,%xmm5
movaps 0x30(%rcx),%xmm1
addps  %xmm6,%xmm10
addps  %xmm3,%xmm14
movaps %xmm2,%xmm3
pshufd $0x39,%xmm2,%xmm7
mulps  %xmm0,%xmm2
mulps  %xmm1,%xmm3
add    $0x40,%rax
addps  %xmm4,%xmm11
addps  %xmm5,%xmm15
movaps %xmm7,%xmm5
pshufd $0x39,%xmm7,%xmm6
mulps  %xmm0,%xmm7
mulps  %xmm1,%xmm5
add    $0x40,%rbx
addps  %xmm2,%xmm8
movaps (%rbx),%xmm2
addps  %xmm3,%xmm12
movaps %xmm6,%xmm3
pshufd $0x39,%xmm6,%xmm4
mulps  %xmm0,%xmm6
mulps  %xmm1,%xmm3
add    $0x40,%rcx
addps  %xmm7,%xmm9
addps  %xmm5,%xmm13
movaps %xmm4,%xmm5
mulps  %xmm0,%xmm4
movaps (%rax),%xmm0
mulps  %xmm1,%xmm5
movaps (%rcx),%xmm1
mov    -0x2c(%rsp),%esi
test   %esi,%esi
je     14ad <.SCONSIDKLEFT_8X4>

LLVM IR (-O0):
define void @kernel_strmm_nt_8x4_lib4(i32 %0, float* %1, float* %2, float* %3, float* %4, float* %5) {
%7 = alloca i32
%8 = alloca float*
%9 = alloca float*
%10 = alloca float*
%11 = alloca float*
%12 = alloca float*
%13 = alloca i32
%14 = alloca i32
store i32 %0, i32* %7
store float* %1, float** %8
store float* %2, float** %9
store float* %3, float** %10
store float* %4, float** %11
store float* %5, float** %12
%15 = load i32, i32* %7
%16 = sdiv i32 %15, 4
%17 = sub nsw i32 %16, 1
store i32 %17, i32* %13
%18 = load i32, i32* %7
%19 = srem i32 %18, 4
store i32 %19, i32* %14
ret void
}

LLVM IR (-O2):
define void @kernel_strmm_nt_8x4_lib4(i32 %0, float* %1, float* %2, float* %3, float* %4, float* %5) {
%7 = alloca float*
%8 = alloca float*
%9 = alloca float*
%10 = alloca float*
%11 = alloca float*
%12 = alloca i32
%13 = alloca i32
store float* %1, float** %7
store float* %2, float** %8
store float* %3, float** %9
store float* %4, float** %10
store float* %5, float** %11
%14 = bitcast i32* %12 to i8*
%15 = sdiv i32 %0, 4
%16 = add nsw i32 %15, -1
store i32 %16, i32* %12
%17 = bitcast i32* %13 to i8*
%18 = srem i32 %0, 4
store i32 %18, i32* %13
ret void
}