void kernel_strmm_nt_4x4_lib4(int kadd, float *A, float *B, float *C) {
  const int bs = 4;
  const int lda = bs;
  const int ldc = bs;
  int k;
  float a_0, a_1, a_2, a_3, b_0, b_1, b_2, b_3,
      c_00 = 0, c_01 = 0, c_02 = 0, c_03 = 0, c_10 = 0, c_11 = 0, c_12 = 0,
      c_13 = 0, c_20 = 0, c_21 = 0, c_22 = 0, c_23 = 0, c_30 = 0, c_31 = 0,
      c_32 = 0, c_33 = 0;
  a_0 = A[0 + lda * 0];
  a_1 = A[1 + lda * 0];
  a_2 = A[2 + lda * 0];
  a_3 = A[3 + lda * 0];
  b_0 = B[0 + lda * 0];
  c_00 += a_0 * b_0;
  c_10 += a_1 * b_0;
  c_20 += a_2 * b_0;
  c_30 += a_3 * b_0;
  a_0 = A[0 + lda * 1];
  a_1 = A[1 + lda * 1];
  a_2 = A[2 + lda * 1];
  a_3 = A[3 + lda * 1];
  b_0 = B[0 + lda * 1];
  b_1 = B[1 + lda * 1];
  c_00 += a_0 * b_0;
  c_10 += a_1 * b_0;
  c_20 += a_2 * b_0;
  c_30 += a_3 * b_0;
  c_01 += a_0 * b_1;
  c_11 += a_1 * b_1;
  c_21 += a_2 * b_1;
  c_31 += a_3 * b_1;
  a_0 = A[0 + lda * 2];
  a_1 = A[1 + lda * 2];
  a_2 = A[2 + lda * 2];
  a_3 = A[3 + lda * 2];
  b_0 = B[0 + lda * 2];
  b_1 = B[1 + lda * 2];
  b_2 = B[2 + lda * 2];
  c_00 += a_0 * b_0;
  c_10 += a_1 * b_0;
  c_20 += a_2 * b_0;
  c_30 += a_3 * b_0;
  c_01 += a_0 * b_1;
  c_11 += a_1 * b_1;
  c_21 += a_2 * b_1;
  c_31 += a_3 * b_1;
  c_02 += a_0 * b_2;
  c_12 += a_1 * b_2;
  c_22 += a_2 * b_2;
  c_32 += a_3 * b_2;
  a_0 = A[0 + lda * 3];
  a_1 = A[1 + lda * 3];
  a_2 = A[2 + lda * 3];
  a_3 = A[3 + lda * 3];
  b_0 = B[0 + lda * 3];
  b_1 = B[1 + lda * 3];
  b_2 = B[2 + lda * 3];
  b_3 = B[3 + lda * 3];
  c_00 += a_0 * b_0;
  c_10 += a_1 * b_0;
  c_20 += a_2 * b_0;
  c_30 += a_3 * b_0;
  c_01 += a_0 * b_1;
  c_11 += a_1 * b_1;
  c_21 += a_2 * b_1;
  c_31 += a_3 * b_1;
  c_02 += a_0 * b_2;
  c_12 += a_1 * b_2;
  c_22 += a_2 * b_2;
  c_32 += a_3 * b_2;
  c_03 += a_0 * b_3;
  c_13 += a_1 * b_3;
  c_23 += a_2 * b_3;
  c_33 += a_3 * b_3;
  A += 16;
  B += 16;
  for (k = 4; k < kadd - 3; k += 4) {
    a_0 = A[0 + lda * 0];
    a_1 = A[1 + lda * 0];
    a_2 = A[2 + lda * 0];
    a_3 = A[3 + lda * 0];
    b_0 = B[0 + lda * 0];
    b_1 = B[1 + lda * 0];
    b_2 = B[2 + lda * 0];
    b_3 = B[3 + lda * 0];
    c_00 += a_0 * b_0;
    c_10 += a_1 * b_0;
    c_20 += a_2 * b_0;
    c_30 += a_3 * b_0;
    c_01 += a_0 * b_1;
    c_11 += a_1 * b_1;
    c_21 += a_2 * b_1;
    c_31 += a_3 * b_1;
    c_02 += a_0 * b_2;
    c_12 += a_1 * b_2;
    c_22 += a_2 * b_2;
    c_32 += a_3 * b_2;
    c_03 += a_0 * b_3;
    c_13 += a_1 * b_3;
    c_23 += a_2 * b_3;
    c_33 += a_3 * b_3;
    a_0 = A[0 + lda * 1];
    a_1 = A[1 + lda * 1];
    a_2 = A[2 + lda * 1];
    a_3 = A[3 + lda * 1];
    b_0 = B[0 + lda * 1];
    b_1 = B[1 + lda * 1];
    b_2 = B[2 + lda * 1];
    b_3 = B[3 + lda * 1];
    c_00 += a_0 * b_0;
    c_10 += a_1 * b_0;
    c_20 += a_2 * b_0;
    c_30 += a_3 * b_0;
    c_01 += a_0 * b_1;
    c_11 += a_1 * b_1;
    c_21 += a_2 * b_1;
    c_31 += a_3 * b_1;
    c_02 += a_0 * b_2;
    c_12 += a_1 * b_2;
    c_22 += a_2 * b_2;
    c_32 += a_3 * b_2;
    c_03 += a_0 * b_3;
    c_13 += a_1 * b_3;
    c_23 += a_2 * b_3;
    c_33 += a_3 * b_3;
    a_0 = A[0 + lda * 2];
    a_1 = A[1 + lda * 2];
    a_2 = A[2 + lda * 2];
    a_3 = A[3 + lda * 2];
    b_0 = B[0 + lda * 2];
    b_1 = B[1 + lda * 2];
    b_2 = B[2 + lda * 2];
    b_3 = B[3 + lda * 2];
    c_00 += a_0 * b_0;
    c_10 += a_1 * b_0;
    c_20 += a_2 * b_0;
    c_30 += a_3 * b_0;
    c_01 += a_0 * b_1;
    c_11 += a_1 * b_1;
    c_21 += a_2 * b_1;
    c_31 += a_3 * b_1;
    c_02 += a_0 * b_2;
    c_12 += a_1 * b_2;
    c_22 += a_2 * b_2;
    c_32 += a_3 * b_2;
    c_03 += a_0 * b_3;
    c_13 += a_1 * b_3;
    c_23 += a_2 * b_3;
    c_33 += a_3 * b_3;
    a_0 = A[0 + lda * 3];
    a_1 = A[1 + lda * 3];
    a_2 = A[2 + lda * 3];
    a_3 = A[3 + lda * 3];
    b_0 = B[0 + lda * 3];
    b_1 = B[1 + lda * 3];
    b_2 = B[2 + lda * 3];
    b_3 = B[3 + lda * 3];
    c_00 += a_0 * b_0;
    c_10 += a_1 * b_0;
    c_20 += a_2 * b_0;
    c_30 += a_3 * b_0;
    c_01 += a_0 * b_1;
    c_11 += a_1 * b_1;
    c_21 += a_2 * b_1;
    c_31 += a_3 * b_1;
    c_02 += a_0 * b_2;
    c_12 += a_1 * b_2;
    c_22 += a_2 * b_2;
    c_32 += a_3 * b_2;
    c_03 += a_0 * b_3;
    c_13 += a_1 * b_3;
    c_23 += a_2 * b_3;
    c_33 += a_3 * b_3;
    A += 16;
    B += 16;
  }
  for (; k < kadd; k++) {
    a_0 = A[0 + lda * 0];
    a_1 = A[1 + lda * 0];
    a_2 = A[2 + lda * 0];
    a_3 = A[3 + lda * 0];
    b_0 = B[0 + lda * 0];
    b_1 = B[1 + lda * 0];
    b_2 = B[2 + lda * 0];
    b_3 = B[3 + lda * 0];
    c_00 += a_0 * b_0;
    c_10 += a_1 * b_0;
    c_20 += a_2 * b_0;
    c_30 += a_3 * b_0;
    c_01 += a_0 * b_1;
    c_11 += a_1 * b_1;
    c_21 += a_2 * b_1;
    c_31 += a_3 * b_1;
    c_02 += a_0 * b_2;
    c_12 += a_1 * b_2;
    c_22 += a_2 * b_2;
    c_32 += a_3 * b_2;
    c_03 += a_0 * b_3;
    c_13 += a_1 * b_3;
    c_23 += a_2 * b_3;
    c_33 += a_3 * b_3;
    A += 4;
    B += 4;
  }
  C[0 + ldc * 0] = c_00;
  C[1 + ldc * 0] = c_10;
  C[2 + ldc * 0] = c_20;
  C[3 + ldc * 0] = c_30;
  C[0 + ldc * 1] = c_01;
  C[1 + ldc * 1] = c_11;
  C[2 + ldc * 1] = c_21;
  C[3 + ldc * 1] = c_31;
  C[0 + ldc * 2] = c_02;
  C[1 + ldc * 2] = c_12;
  C[2 + ldc * 2] = c_22;
  C[3 + ldc * 2] = c_32;
  C[0 + ldc * 3] = c_03;
  C[1 + ldc * 3] = c_13;
  C[2 + ldc * 3] = c_23;
  C[3 + ldc * 3] = c_33;
}


x86 assembly (clang, -O0):
<kernel_strmm_nt_4x4_lib4>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
movl   $0x4,-0x24(%rbp)
movl   $0x4,-0x28(%rbp)
movl   $0x4,-0x2c(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x54(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x58(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x5c(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x60(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x64(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x68(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x6c(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x70(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x74(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x78(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x7c(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x80(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
xorps  %xmm0,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x34(%rbp)
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
movss  0xc(%rax),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x34(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x64(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x74(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x84(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
mov    -0x10(%rbp),%rax
movss  0x10(%rax),%xmm0
movss  %xmm0,-0x34(%rbp)
mov    -0x10(%rbp),%rax
movss  0x14(%rax),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movss  0x18(%rax),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x1c(%rax),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movss  0x10(%rax),%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x18(%rbp),%rax
movss  0x14(%rax),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x34(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x64(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x74(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x84(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x58(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x68(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x78(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x88(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
mov    -0x10(%rbp),%rax
movss  0x20(%rax),%xmm0
movss  %xmm0,-0x34(%rbp)
mov    -0x10(%rbp),%rax
movss  0x24(%rax),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movss  0x28(%rax),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x2c(%rax),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movss  0x20(%rax),%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x18(%rbp),%rax
movss  0x24(%rax),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movss  0x28(%rax),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x34(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x64(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x74(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x84(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x58(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x68(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x78(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x88(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x5c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x6c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x7c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x7c(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x8c(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
mov    -0x10(%rbp),%rax
movss  0x30(%rax),%xmm0
movss  %xmm0,-0x34(%rbp)
mov    -0x10(%rbp),%rax
movss  0x34(%rax),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movss  0x38(%rax),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x3c(%rax),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movss  0x30(%rax),%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x18(%rbp),%rax
movss  0x34(%rax),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movss  0x38(%rax),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x18(%rbp),%rax
movss  0x3c(%rax),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x34(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x64(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x74(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x84(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x58(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x68(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x78(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x88(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x5c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x6c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x7c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x7c(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x8c(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x60(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x70(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x70(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x80(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x80(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x90(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x40,%rax
mov    %rax,-0x10(%rbp)
mov    -0x18(%rbp),%rax
add    $0x40,%rax
mov    %rax,-0x18(%rbp)
movl   $0x4,-0x30(%rbp)
mov    -0x30(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jge    2132 <kernel_strmm_nt_4x4_lib4+0x1032>
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x34(%rbp)
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
movss  0xc(%rax),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x18(%rbp),%rax
movss  0x4(%rax),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movss  0x8(%rax),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x18(%rbp),%rax
movss  0xc(%rax),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x34(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x64(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x74(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x84(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x58(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x68(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x78(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x88(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x5c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x6c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x7c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x7c(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x8c(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x60(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x70(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x70(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x80(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x80(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x90(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
mov    -0x10(%rbp),%rax
movss  0x10(%rax),%xmm0
movss  %xmm0,-0x34(%rbp)
mov    -0x10(%rbp),%rax
movss  0x14(%rax),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movss  0x18(%rax),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x1c(%rax),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movss  0x10(%rax),%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x18(%rbp),%rax
movss  0x14(%rax),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movss  0x18(%rax),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x18(%rbp),%rax
movss  0x1c(%rax),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x34(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x64(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x74(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x84(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x58(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x68(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x78(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x88(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x5c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x6c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x7c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x7c(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x8c(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x60(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x70(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x70(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x80(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x80(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x90(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
mov    -0x10(%rbp),%rax
movss  0x20(%rax),%xmm0
movss  %xmm0,-0x34(%rbp)
mov    -0x10(%rbp),%rax
movss  0x24(%rax),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movss  0x28(%rax),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x2c(%rax),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movss  0x20(%rax),%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x18(%rbp),%rax
movss  0x24(%rax),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movss  0x28(%rax),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x18(%rbp),%rax
movss  0x2c(%rax),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x34(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x64(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x74(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x84(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x58(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x68(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x78(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x88(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x5c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x6c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x7c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x7c(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x8c(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x60(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x70(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x70(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x80(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x80(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x90(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
mov    -0x10(%rbp),%rax
movss  0x30(%rax),%xmm0
movss  %xmm0,-0x34(%rbp)
mov    -0x10(%rbp),%rax
movss  0x34(%rax),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movss  0x38(%rax),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x3c(%rax),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movss  0x30(%rax),%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x18(%rbp),%rax
movss  0x34(%rax),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movss  0x38(%rax),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x18(%rbp),%rax
movss  0x3c(%rax),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x34(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x64(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x74(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x84(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x58(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x68(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x78(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x88(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x5c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x6c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x7c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x7c(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x8c(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x60(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x70(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x70(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x80(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x80(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x90(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x40,%rax
mov    %rax,-0x10(%rbp)
mov    -0x18(%rbp),%rax
add    $0x40,%rax
mov    %rax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x30(%rbp)
jmp    17dd <kernel_strmm_nt_4x4_lib4+0x6dd>
jmp    2137 <kernel_strmm_nt_4x4_lib4+0x1037>
mov    -0x30(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    23af <kernel_strmm_nt_4x4_lib4+0x12af>
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x34(%rbp)
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
movss  0xc(%rax),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x18(%rbp),%rax
movss  0x4(%rax),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movss  0x8(%rax),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x18(%rbp),%rax
movss  0xc(%rax),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x34(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x54(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x64(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x74(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x74(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  -0x84(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x58(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x68(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x78(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x78(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
movss  -0x88(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x88(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x5c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x6c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x6c(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x7c(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x7c(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x4c(%rbp),%xmm2
movss  -0x8c(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x8c(%rbp)
ff
movss  -0x34(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x60(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x70(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x70(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x80(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x80(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x50(%rbp),%xmm2
movss  -0x90(%rbp),%xmm1
ff
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x90(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x10,%rax
mov    %rax,-0x10(%rbp)
mov    -0x18(%rbp),%rax
add    $0x10,%rax
mov    %rax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    2137 <kernel_strmm_nt_4x4_lib4+0x1037>
movss  -0x54(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,(%rax)
movss  -0x64(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,0x4(%rax)
movss  -0x74(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,0x8(%rax)
movss  -0x84(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movss  %xmm0,0xc(%rax)
movss  -0x58(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,0x10(%rax)
movss  -0x68(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,0x14(%rax)
movss  -0x78(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,0x18(%rax)
movss  -0x88(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movss  %xmm0,0x1c(%rax)
movss  -0x5c(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,0x20(%rax)
movss  -0x6c(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,0x24(%rax)
movss  -0x7c(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,0x28(%rax)
movss  -0x8c(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movss  %xmm0,0x2c(%rax)
movss  -0x60(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,0x30(%rax)
movss  -0x70(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,0x34(%rax)
movss  -0x80(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  %xmm0,0x38(%rax)
movss  -0x90(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movss  %xmm0,0x3c(%rax)
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<kernel_strmm_nt_4x4_lib4>:
movss  (%rdx),%xmm2
movss  0x10(%rdx),%xmm3
movss  0x14(%rdx),%xmm1
movss  0x20(%rdx),%xmm0
shufps $0x0,%xmm2,%xmm2
movups (%rsi),%xmm6
mulps  %xmm2,%xmm6
movups 0x10(%rsi),%xmm7
movups 0x20(%rsi),%xmm2
movups 0x30(%rsi),%xmm5
xorps  %xmm4,%xmm4
addps  %xmm4,%xmm6
shufps $0x0,%xmm3,%xmm3
mulps  %xmm7,%xmm3
addps  %xmm6,%xmm3
shufps $0x0,%xmm1,%xmm1
mulps  %xmm7,%xmm1
addps  %xmm4,%xmm1
shufps $0x0,%xmm0,%xmm0
mulps  %xmm2,%xmm0
addps  %xmm3,%xmm0
movss  0x24(%rdx),%xmm3
shufps $0x0,%xmm3,%xmm3
mulps  %xmm2,%xmm3
addps  %xmm1,%xmm3
movss  0x28(%rdx),%xmm1
shufps $0x0,%xmm1,%xmm1
mulps  %xmm2,%xmm1
addps  %xmm4,%xmm1
movss  0x30(%rdx),%xmm9
shufps $0x0,%xmm9,%xmm9
mulps  %xmm5,%xmm9
addps  %xmm0,%xmm9
movss  0x34(%rdx),%xmm10
shufps $0x0,%xmm10,%xmm10
mulps  %xmm5,%xmm10
addps  %xmm3,%xmm10
movss  0x38(%rdx),%xmm11
shufps $0x0,%xmm11,%xmm11
mulps  %xmm5,%xmm11
addps  %xmm1,%xmm11
movss  0x3c(%rdx),%xmm12
shufps $0x0,%xmm12,%xmm12
mulps  %xmm5,%xmm12
addps  %xmm4,%xmm12
add    $0x40,%rsi
add    $0x40,%rdx
mov    $0x4,%eax
cmp    $0x8,%edi
jl     1330 <kernel_strmm_nt_4x4_lib4+0x230>
lea    -0x3(%rdi),%r8d
mov    $0x4,%eax
cs nopw 0x0(%rax,%rax,1)
movups (%rsi),%xmm6
movups 0x10(%rsi),%xmm4
movups 0x20(%rsi),%xmm5
movups 0x30(%rsi),%xmm8
movss  (%rdx),%xmm3
movss  0x4(%rdx),%xmm2
movss  0x8(%rdx),%xmm1
movss  0xc(%rdx),%xmm0
shufps $0x0,%xmm3,%xmm3
mulps  %xmm6,%xmm3
addps  %xmm9,%xmm3
shufps $0x0,%xmm2,%xmm2
mulps  %xmm6,%xmm2
addps  %xmm10,%xmm2
shufps $0x0,%xmm1,%xmm1
mulps  %xmm6,%xmm1
addps  %xmm11,%xmm1
shufps $0x0,%xmm0,%xmm0
mulps  %xmm6,%xmm0
addps  %xmm12,%xmm0
movss  0x10(%rdx),%xmm7
shufps $0x0,%xmm7,%xmm7
mulps  %xmm4,%xmm7
addps  %xmm3,%xmm7
movss  0x14(%rdx),%xmm3
shufps $0x0,%xmm3,%xmm3
mulps  %xmm4,%xmm3
addps  %xmm2,%xmm3
movss  0x18(%rdx),%xmm2
shufps $0x0,%xmm2,%xmm2
mulps  %xmm4,%xmm2
addps  %xmm1,%xmm2
movss  0x1c(%rdx),%xmm1
shufps $0x0,%xmm1,%xmm1
mulps  %xmm4,%xmm1
addps  %xmm0,%xmm1
movss  0x20(%rdx),%xmm6
shufps $0x0,%xmm6,%xmm6
mulps  %xmm5,%xmm6
addps  %xmm7,%xmm6
movss  0x24(%rdx),%xmm7
shufps $0x0,%xmm7,%xmm7
mulps  %xmm5,%xmm7
addps  %xmm3,%xmm7
movss  0x28(%rdx),%xmm4
shufps $0x0,%xmm4,%xmm4
mulps  %xmm5,%xmm4
addps  %xmm2,%xmm4
movss  0x2c(%rdx),%xmm0
shufps $0x0,%xmm0,%xmm0
mulps  %xmm5,%xmm0
addps  %xmm1,%xmm0
movss  0x30(%rdx),%xmm5
shufps $0x0,%xmm5,%xmm5
mulps  %xmm8,%xmm5
movaps %xmm5,%xmm9
addps  %xmm6,%xmm9
movss  0x34(%rdx),%xmm1
shufps $0x0,%xmm1,%xmm1
mulps  %xmm8,%xmm1
movaps %xmm1,%xmm10
addps  %xmm7,%xmm10
movss  0x38(%rdx),%xmm2
shufps $0x0,%xmm2,%xmm2
mulps  %xmm8,%xmm2
movaps %xmm2,%xmm11
addps  %xmm4,%xmm11
movss  0x3c(%rdx),%xmm3
shufps $0x0,%xmm3,%xmm3
mulps  %xmm8,%xmm3
movaps %xmm3,%xmm12
addps  %xmm0,%xmm12
add    $0x4,%eax
add    $0x40,%rsi
add    $0x40,%rdx
cmp    %r8d,%eax
jl     11e0 <kernel_strmm_nt_4x4_lib4+0xe0>
addps  %xmm0,%xmm3
addps  %xmm4,%xmm2
addps  %xmm7,%xmm1
addps  %xmm6,%xmm5
mov    %edi,%eax
and    $0xfffffffc,%eax
movaps %xmm5,%xmm9
movaps %xmm1,%xmm10
movaps %xmm2,%xmm11
movaps %xmm3,%xmm12
cmp    %edi,%eax
jge    13cd <kernel_strmm_nt_4x4_lib4+0x2cd>
sub    %eax,%edi
xor    %eax,%eax
nopl   0x0(%rax)
movaps %xmm12,%xmm5
movaps %xmm11,%xmm4
movaps %xmm10,%xmm1
movaps %xmm9,%xmm8
movups (%rsi,%rax,1),%xmm0
movss  (%rdx,%rax,1),%xmm6
movss  0x4(%rdx,%rax,1),%xmm7
movss  0x8(%rdx,%rax,1),%xmm2
movss  0xc(%rdx,%rax,1),%xmm3
shufps $0x0,%xmm6,%xmm6
mulps  %xmm0,%xmm6
movaps %xmm6,%xmm9
addps  %xmm8,%xmm9
shufps $0x0,%xmm7,%xmm7
mulps  %xmm0,%xmm7
movaps %xmm7,%xmm10
addps  %xmm1,%xmm10
shufps $0x0,%xmm2,%xmm2
mulps  %xmm0,%xmm2
movaps %xmm2,%xmm11
addps  %xmm4,%xmm11
shufps $0x0,%xmm3,%xmm3
mulps  %xmm0,%xmm3
movaps %xmm3,%xmm12
addps  %xmm5,%xmm12
add    $0x10,%rax
add    $0xffffffff,%edi
jne    1340 <kernel_strmm_nt_4x4_lib4+0x240>
addps  %xmm5,%xmm3
addps  %xmm4,%xmm2
addps  %xmm1,%xmm7
addps  %xmm8,%xmm6
movaps %xmm6,%xmm9
movaps %xmm7,%xmm10
movaps %xmm2,%xmm11
movaps %xmm3,%xmm12
movups %xmm9,(%rcx)
movups %xmm10,0x10(%rcx)
movups %xmm11,0x20(%rcx)
movups %xmm12,0x30(%rcx)
ret

LLVM IR (-O0):
define void @kernel_strmm_nt_4x4_lib4(i32 %0, float* %1, float* %2, float* %3) {
%5 = alloca i32
%6 = alloca float*
%7 = alloca float*
%8 = alloca float*
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca float
%14 = alloca float
%15 = alloca float
%16 = alloca float
%17 = alloca float
%18 = alloca float
%19 = alloca float
%20 = alloca float
%21 = alloca float
%22 = alloca float
%23 = alloca float
%24 = alloca float
%25 = alloca float
%26 = alloca float
%27 = alloca float
%28 = alloca float
%29 = alloca float
%30 = alloca float
%31 = alloca float
%32 = alloca float
%33 = alloca float
%34 = alloca float
%35 = alloca float
%36 = alloca float
store i32 %0, i32* %5
store float* %1, float** %6
store float* %2, float** %7
store float* %3, float** %8
store i32 4, i32* %9
store i32 4, i32* %10
store i32 4, i32* %11
store float 0.000000e+00, float* %21
store float 0.000000e+00, float* %22
store float 0.000000e+00, float* %23
store float 0.000000e+00, float* %24
store float 0.000000e+00, float* %25
store float 0.000000e+00, float* %26
store float 0.000000e+00, float* %27
store float 0.000000e+00, float* %28
store float 0.000000e+00, float* %29
store float 0.000000e+00, float* %30
store float 0.000000e+00, float* %31
store float 0.000000e+00, float* %32
store float 0.000000e+00, float* %33
store float 0.000000e+00, float* %34
store float 0.000000e+00, float* %35
store float 0.000000e+00, float* %36
%37 = load float*, float** %6
%38 = getelementptr inbounds float, float* %37, i64 0
%39 = load float, float* %38
store float %39, float* %13
%40 = load float*, float** %6
%41 = getelementptr inbounds float, float* %40, i64 1
%42 = load float, float* %41
store float %42, float* %14
%43 = load float*, float** %6
%44 = getelementptr inbounds float, float* %43, i64 2
%45 = load float, float* %44
store float %45, float* %15
%46 = load float*, float** %6
%47 = getelementptr inbounds float, float* %46, i64 3
%48 = load float, float* %47
store float %48, float* %16
%49 = load float*, float** %7
%50 = getelementptr inbounds float, float* %49, i64 0
%51 = load float, float* %50
store float %51, float* %17
%52 = load float, float* %13
%53 = load float, float* %17
%54 = load float, float* %21
%55 = call float @llvm.fmuladd.f32(float %52, float %53, float %54)
store float %55, float* %21
%56 = load float, float* %14
%57 = load float, float* %17
%58 = load float, float* %25
%59 = call float @llvm.fmuladd.f32(float %56, float %57, float %58)
store float %59, float* %25
%60 = load float, float* %15
%61 = load float, float* %17
%62 = load float, float* %29
%63 = call float @llvm.fmuladd.f32(float %60, float %61, float %62)
store float %63, float* %29
%64 = load float, float* %16
%65 = load float, float* %17
%66 = load float, float* %33
%67 = call float @llvm.fmuladd.f32(float %64, float %65, float %66)
store float %67, float* %33
%68 = load float*, float** %6
%69 = getelementptr inbounds float, float* %68, i64 4
%70 = load float, float* %69
store float %70, float* %13
%71 = load float*, float** %6
%72 = getelementptr inbounds float, float* %71, i64 5
%73 = load float, float* %72
store float %73, float* %14
%74 = load float*, float** %6
%75 = getelementptr inbounds float, float* %74, i64 6
%76 = load float, float* %75
store float %76, float* %15
%77 = load float*, float** %6
%78 = getelementptr inbounds float, float* %77, i64 7
%79 = load float, float* %78
store float %79, float* %16
%80 = load float*, float** %7
%81 = getelementptr inbounds float, float* %80, i64 4
%82 = load float, float* %81
store float %82, float* %17
%83 = load float*, float** %7
%84 = getelementptr inbounds float, float* %83, i64 5
%85 = load float, float* %84
store float %85, float* %18
%86 = load float, float* %13
%87 = load float, float* %17
%88 = load float, float* %21
%89 = call float @llvm.fmuladd.f32(float %86, float %87, float %88)
store float %89, float* %21
%90 = load float, float* %14
%91 = load float, float* %17
%92 = load float, float* %25
%93 = call float @llvm.fmuladd.f32(float %90, float %91, float %92)
store float %93, float* %25
%94 = load float, float* %15
%95 = load float, float* %17
%96 = load float, float* %29
%97 = call float @llvm.fmuladd.f32(float %94, float %95, float %96)
store float %97, float* %29
%98 = load float, float* %16
%99 = load float, float* %17
%100 = load float, float* %33
%101 = call float @llvm.fmuladd.f32(float %98, float %99, float %100)
store float %101, float* %33
%102 = load float, float* %13
%103 = load float, float* %18
%104 = load float, float* %22
%105 = call float @llvm.fmuladd.f32(float %102, float %103, float %104)
store float %105, float* %22
%106 = load float, float* %14
%107 = load float, float* %18
%108 = load float, float* %26
%109 = call float @llvm.fmuladd.f32(float %106, float %107, float %108)
store float %109, float* %26
%110 = load float, float* %15
%111 = load float, float* %18
%112 = load float, float* %30
%113 = call float @llvm.fmuladd.f32(float %110, float %111, float %112)
store float %113, float* %30
%114 = load float, float* %16
%115 = load float, float* %18
%116 = load float, float* %34
%117 = call float @llvm.fmuladd.f32(float %114, float %115, float %116)
store float %117, float* %34
%118 = load float*, float** %6
%119 = getelementptr inbounds float, float* %118, i64 8
%120 = load float, float* %119
store float %120, float* %13
%121 = load float*, float** %6
%122 = getelementptr inbounds float, float* %121, i64 9
%123 = load float, float* %122
store float %123, float* %14
%124 = load float*, float** %6
%125 = getelementptr inbounds float, float* %124, i64 10
%126 = load float, float* %125
store float %126, float* %15
%127 = load float*, float** %6
%128 = getelementptr inbounds float, float* %127, i64 11
%129 = load float, float* %128
store float %129, float* %16
%130 = load float*, float** %7
%131 = getelementptr inbounds float, float* %130, i64 8
%132 = load float, float* %131
store float %132, float* %17
%133 = load float*, float** %7
%134 = getelementptr inbounds float, float* %133, i64 9
%135 = load float, float* %134
store float %135, float* %18
%136 = load float*, float** %7
%137 = getelementptr inbounds float, float* %136, i64 10
%138 = load float, float* %137
store float %138, float* %19
%139 = load float, float* %13
%140 = load float, float* %17
%141 = load float, float* %21
%142 = call float @llvm.fmuladd.f32(float %139, float %140, float %141)
store float %142, float* %21
%143 = load float, float* %14
%144 = load float, float* %17
%145 = load float, float* %25
%146 = call float @llvm.fmuladd.f32(float %143, float %144, float %145)
store float %146, float* %25
%147 = load float, float* %15
%148 = load float, float* %17
%149 = load float, float* %29
%150 = call float @llvm.fmuladd.f32(float %147, float %148, float %149)
store float %150, float* %29
%151 = load float, float* %16
%152 = load float, float* %17
%153 = load float, float* %33
%154 = call float @llvm.fmuladd.f32(float %151, float %152, float %153)
store float %154, float* %33
%155 = load float, float* %13
%156 = load float, float* %18
%157 = load float, float* %22
%158 = call float @llvm.fmuladd.f32(float %155, float %156, float %157)
store float %158, float* %22
%159 = load float, float* %14
%160 = load float, float* %18
%161 = load float, float* %26
%162 = call float @llvm.fmuladd.f32(float %159, float %160, float %161)
store float %162, float* %26
%163 = load float, float* %15
%164 = load float, float* %18
%165 = load float, float* %30
%166 = call float @llvm.fmuladd.f32(float %163, float %164, float %165)
store float %166, float* %30
%167 = load float, float* %16
%168 = load float, float* %18
%169 = load float, float* %34
%170 = call float @llvm.fmuladd.f32(float %167, float %168, float %169)
store float %170, float* %34
%171 = load float, float* %13
%172 = load float, float* %19
%173 = load float, float* %23
%174 = call float @llvm.fmuladd.f32(float %171, float %172, float %173)
store float %174, float* %23
%175 = load float, float* %14
%176 = load float, float* %19
%177 = load float, float* %27
%178 = call float @llvm.fmuladd.f32(float %175, float %176, float %177)
store float %178, float* %27
%179 = load float, float* %15
%180 = load float, float* %19
%181 = load float, float* %31
%182 = call float @llvm.fmuladd.f32(float %179, float %180, float %181)
store float %182, float* %31
%183 = load float, float* %16
%184 = load float, float* %19
%185 = load float, float* %35
%186 = call float @llvm.fmuladd.f32(float %183, float %184, float %185)
store float %186, float* %35
%187 = load float*, float** %6
%188 = getelementptr inbounds float, float* %187, i64 12
%189 = load float, float* %188
store float %189, float* %13
%190 = load float*, float** %6
%191 = getelementptr inbounds float, float* %190, i64 13
%192 = load float, float* %191
store float %192, float* %14
%193 = load float*, float** %6
%194 = getelementptr inbounds float, float* %193, i64 14
%195 = load float, float* %194
store float %195, float* %15
%196 = load float*, float** %6
%197 = getelementptr inbounds float, float* %196, i64 15
%198 = load float, float* %197
store float %198, float* %16
%199 = load float*, float** %7
%200 = getelementptr inbounds float, float* %199, i64 12
%201 = load float, float* %200
store float %201, float* %17
%202 = load float*, float** %7
%203 = getelementptr inbounds float, float* %202, i64 13
%204 = load float, float* %203
store float %204, float* %18
%205 = load float*, float** %7
%206 = getelementptr inbounds float, float* %205, i64 14
%207 = load float, float* %206
store float %207, float* %19
%208 = load float*, float** %7
%209 = getelementptr inbounds float, float* %208, i64 15
%210 = load float, float* %209
store float %210, float* %20
%211 = load float, float* %13
%212 = load float, float* %17
%213 = load float, float* %21
%214 = call float @llvm.fmuladd.f32(float %211, float %212, float %213)
store float %214, float* %21
%215 = load float, float* %14
%216 = load float, float* %17
%217 = load float, float* %25
%218 = call float @llvm.fmuladd.f32(float %215, float %216, float %217)
store float %218, float* %25
%219 = load float, float* %15
%220 = load float, float* %17
%221 = load float, float* %29
%222 = call float @llvm.fmuladd.f32(float %219, float %220, float %221)
store float %222, float* %29
%223 = load float, float* %16
%224 = load float, float* %17
%225 = load float, float* %33
%226 = call float @llvm.fmuladd.f32(float %223, float %224, float %225)
store float %226, float* %33
%227 = load float, float* %13
%228 = load float, float* %18
%229 = load float, float* %22
%230 = call float @llvm.fmuladd.f32(float %227, float %228, float %229)
store float %230, float* %22
%231 = load float, float* %14
%232 = load float, float* %18
%233 = load float, float* %26
%234 = call float @llvm.fmuladd.f32(float %231, float %232, float %233)
store float %234, float* %26
%235 = load float, float* %15
%236 = load float, float* %18
%237 = load float, float* %30
%238 = call float @llvm.fmuladd.f32(float %235, float %236, float %237)
store float %238, float* %30
%239 = load float, float* %16
%240 = load float, float* %18
%241 = load float, float* %34
%242 = call float @llvm.fmuladd.f32(float %239, float %240, float %241)
store float %242, float* %34
%243 = load float, float* %13
%244 = load float, float* %19
%245 = load float, float* %23
%246 = call float @llvm.fmuladd.f32(float %243, float %244, float %245)
store float %246, float* %23
%247 = load float, float* %14
%248 = load float, float* %19
%249 = load float, float* %27
%250 = call float @llvm.fmuladd.f32(float %247, float %248, float %249)
store float %250, float* %27
%251 = load float, float* %15
%252 = load float, float* %19
%253 = load float, float* %31
%254 = call float @llvm.fmuladd.f32(float %251, float %252, float %253)
store float %254, float* %31
%255 = load float, float* %16
%256 = load float, float* %19
%257 = load float, float* %35
%258 = call float @llvm.fmuladd.f32(float %255, float %256, float %257)
store float %258, float* %35
%259 = load float, float* %13
%260 = load float, float* %20
%261 = load float, float* %24
%262 = call float @llvm.fmuladd.f32(float %259, float %260, float %261)
store float %262, float* %24
%263 = load float, float* %14
%264 = load float, float* %20
%265 = load float, float* %28
%266 = call float @llvm.fmuladd.f32(float %263, float %264, float %265)
store float %266, float* %28
%267 = load float, float* %15
%268 = load float, float* %20
%269 = load float, float* %32
%270 = call float @llvm.fmuladd.f32(float %267, float %268, float %269)
store float %270, float* %32
%271 = load float, float* %16
%272 = load float, float* %20
%273 = load float, float* %36
%274 = call float @llvm.fmuladd.f32(float %271, float %272, float %273)
store float %274, float* %36
%275 = load float*, float** %6
%276 = getelementptr inbounds float, float* %275, i64 16
store float* %276, float** %6
%277 = load float*, float** %7
%278 = getelementptr inbounds float, float* %277, i64 16
store float* %278, float** %7
store i32 4, i32* %12
br label %279
279: ; preds = %641, %4
%280 = load i32, i32* %12
%281 = load i32, i32* %5
%282 = sub nsw i32 %281, 3
%283 = icmp slt i32 %280, %282
br i1 %283, label %284, label %644
284: ; preds = %279
%285 = load float*, float** %6
%286 = getelementptr inbounds float, float* %285, i64 0
%287 = load float, float* %286
store float %287, float* %13
%288 = load float*, float** %6
%289 = getelementptr inbounds float, float* %288, i64 1
%290 = load float, float* %289
store float %290, float* %14
%291 = load float*, float** %6
%292 = getelementptr inbounds float, float* %291, i64 2
%293 = load float, float* %292
store float %293, float* %15
%294 = load float*, float** %6
%295 = getelementptr inbounds float, float* %294, i64 3
%296 = load float, float* %295
store float %296, float* %16
%297 = load float*, float** %7
%298 = getelementptr inbounds float, float* %297, i64 0
%299 = load float, float* %298
store float %299, float* %17
%300 = load float*, float** %7
%301 = getelementptr inbounds float, float* %300, i64 1
%302 = load float, float* %301
store float %302, float* %18
%303 = load float*, float** %7
%304 = getelementptr inbounds float, float* %303, i64 2
%305 = load float, float* %304
store float %305, float* %19
%306 = load float*, float** %7
%307 = getelementptr inbounds float, float* %306, i64 3
%308 = load float, float* %307
store float %308, float* %20
%309 = load float, float* %13
%310 = load float, float* %17
%311 = load float, float* %21
%312 = call float @llvm.fmuladd.f32(float %309, float %310, float %311)
store float %312, float* %21
%313 = load float, float* %14
%314 = load float, float* %17
%315 = load float, float* %25
%316 = call float @llvm.fmuladd.f32(float %313, float %314, float %315)
store float %316, float* %25
%317 = load float, float* %15
%318 = load float, float* %17
%319 = load float, float* %29
%320 = call float @llvm.fmuladd.f32(float %317, float %318, float %319)
store float %320, float* %29
%321 = load float, float* %16
%322 = load float, float* %17
%323 = load float, float* %33
%324 = call float @llvm.fmuladd.f32(float %321, float %322, float %323)
store float %324, float* %33
%325 = load float, float* %13
%326 = load float, float* %18
%327 = load float, float* %22
%328 = call float @llvm.fmuladd.f32(float %325, float %326, float %327)
store float %328, float* %22
%329 = load float, float* %14
%330 = load float, float* %18
%331 = load float, float* %26
%332 = call float @llvm.fmuladd.f32(float %329, float %330, float %331)
store float %332, float* %26
%333 = load float, float* %15
%334 = load float, float* %18
%335 = load float, float* %30
%336 = call float @llvm.fmuladd.f32(float %333, float %334, float %335)
store float %336, float* %30
%337 = load float, float* %16
%338 = load float, float* %18
%339 = load float, float* %34
%340 = call float @llvm.fmuladd.f32(float %337, float %338, float %339)
store float %340, float* %34
%341 = load float, float* %13
%342 = load float, float* %19
%343 = load float, float* %23
%344 = call float @llvm.fmuladd.f32(float %341, float %342, float %343)
store float %344, float* %23
%345 = load float, float* %14
%346 = load float, float* %19
%347 = load float, float* %27
%348 = call float @llvm.fmuladd.f32(float %345, float %346, float %347)
store float %348, float* %27
%349 = load float, float* %15
%350 = load float, float* %19
%351 = load float, float* %31
%352 = call float @llvm.fmuladd.f32(float %349, float %350, float %351)
store float %352, float* %31
%353 = load float, float* %16
%354 = load float, float* %19
%355 = load float, float* %35
%356 = call float @llvm.fmuladd.f32(float %353, float %354, float %355)
store float %356, float* %35
%357 = load float, float* %13
%358 = load float, float* %20
%359 = load float, float* %24
%360 = call float @llvm.fmuladd.f32(float %357, float %358, float %359)
store float %360, float* %24
%361 = load float, float* %14
%362 = load float, float* %20
%363 = load float, float* %28
%364 = call float @llvm.fmuladd.f32(float %361, float %362, float %363)
store float %364, float* %28
%365 = load float, float* %15
%366 = load float, float* %20
%367 = load float, float* %32
%368 = call float @llvm.fmuladd.f32(float %365, float %366, float %367)
store float %368, float* %32
%369 = load float, float* %16
%370 = load float, float* %20
%371 = load float, float* %36
%372 = call float @llvm.fmuladd.f32(float %369, float %370, float %371)
store float %372, float* %36
%373 = load float*, float** %6
%374 = getelementptr inbounds float, float* %373, i64 4
%375 = load float, float* %374
store float %375, float* %13
%376 = load float*, float** %6
%377 = getelementptr inbounds float, float* %376, i64 5
%378 = load float, float* %377
store float %378, float* %14
%379 = load float*, float** %6
%380 = getelementptr inbounds float, float* %379, i64 6
%381 = load float, float* %380
store float %381, float* %15
%382 = load float*, float** %6
%383 = getelementptr inbounds float, float* %382, i64 7
%384 = load float, float* %383
store float %384, float* %16
%385 = load float*, float** %7
%386 = getelementptr inbounds float, float* %385, i64 4
%387 = load float, float* %386
store float %387, float* %17
%388 = load float*, float** %7
%389 = getelementptr inbounds float, float* %388, i64 5
%390 = load float, float* %389
store float %390, float* %18
%391 = load float*, float** %7
%392 = getelementptr inbounds float, float* %391, i64 6
%393 = load float, float* %392
store float %393, float* %19
%394 = load float*, float** %7
%395 = getelementptr inbounds float, float* %394, i64 7
%396 = load float, float* %395
store float %396, float* %20
%397 = load float, float* %13
%398 = load float, float* %17
%399 = load float, float* %21
%400 = call float @llvm.fmuladd.f32(float %397, float %398, float %399)
store float %400, float* %21
%401 = load float, float* %14
%402 = load float, float* %17
%403 = load float, float* %25
%404 = call float @llvm.fmuladd.f32(float %401, float %402, float %403)
store float %404, float* %25
%405 = load float, float* %15
%406 = load float, float* %17
%407 = load float, float* %29
%408 = call float @llvm.fmuladd.f32(float %405, float %406, float %407)
store float %408, float* %29
%409 = load float, float* %16
%410 = load float, float* %17
%411 = load float, float* %33
%412 = call float @llvm.fmuladd.f32(float %409, float %410, float %411)
store float %412, float* %33
%413 = load float, float* %13
%414 = load float, float* %18
%415 = load float, float* %22
%416 = call float @llvm.fmuladd.f32(float %413, float %414, float %415)
store float %416, float* %22
%417 = load float, float* %14
%418 = load float, float* %18
%419 = load float, float* %26
%420 = call float @llvm.fmuladd.f32(float %417, float %418, float %419)
store float %420, float* %26
%421 = load float, float* %15
%422 = load float, float* %18
%423 = load float, float* %30
%424 = call float @llvm.fmuladd.f32(float %421, float %422, float %423)
store float %424, float* %30
%425 = load float, float* %16
%426 = load float, float* %18
%427 = load float, float* %34
%428 = call float @llvm.fmuladd.f32(float %425, float %426, float %427)
store float %428, float* %34
%429 = load float, float* %13
%430 = load float, float* %19
%431 = load float, float* %23
%432 = call float @llvm.fmuladd.f32(float %429, float %430, float %431)
store float %432, float* %23
%433 = load float, float* %14
%434 = load float, float* %19
%435 = load float, float* %27
%436 = call float @llvm.fmuladd.f32(float %433, float %434, float %435)
store float %436, float* %27
%437 = load float, float* %15
%438 = load float, float* %19
%439 = load float, float* %31
%440 = call float @llvm.fmuladd.f32(float %437, float %438, float %439)
store float %440, float* %31
%441 = load float, float* %16
%442 = load float, float* %19
%443 = load float, float* %35
%444 = call float @llvm.fmuladd.f32(float %441, float %442, float %443)
store float %444, float* %35
%445 = load float, float* %13
%446 = load float, float* %20
%447 = load float, float* %24
%448 = call float @llvm.fmuladd.f32(float %445, float %446, float %447)
store float %448, float* %24
%449 = load float, float* %14
%450 = load float, float* %20
%451 = load float, float* %28
%452 = call float @llvm.fmuladd.f32(float %449, float %450, float %451)
store float %452, float* %28
%453 = load float, float* %15
%454 = load float, float* %20
%455 = load float, float* %32
%456 = call float @llvm.fmuladd.f32(float %453, float %454, float %455)
store float %456, float* %32
%457 = load float, float* %16
%458 = load float, float* %20
%459 = load float, float* %36
%460 = call float @llvm.fmuladd.f32(float %457, float %458, float %459)
store float %460, float* %36
%461 = load float*, float** %6
%462 = getelementptr inbounds float, float* %461, i64 8
%463 = load float, float* %462
store float %463, float* %13
%464 = load float*, float** %6
%465 = getelementptr inbounds float, float* %464, i64 9
%466 = load float, float* %465
store float %466, float* %14
%467 = load float*, float** %6
%468 = getelementptr inbounds float, float* %467, i64 10
%469 = load float, float* %468
store float %469, float* %15
%470 = load float*, float** %6
%471 = getelementptr inbounds float, float* %470, i64 11
%472 = load float, float* %471
store float %472, float* %16
%473 = load float*, float** %7
%474 = getelementptr inbounds float, float* %473, i64 8
%475 = load float, float* %474
store float %475, float* %17
%476 = load float*, float** %7
%477 = getelementptr inbounds float, float* %476, i64 9
%478 = load float, float* %477
store float %478, float* %18
%479 = load float*, float** %7
%480 = getelementptr inbounds float, float* %479, i64 10
%481 = load float, float* %480
store float %481, float* %19
%482 = load float*, float** %7
%483 = getelementptr inbounds float, float* %482, i64 11
%484 = load float, float* %483
store float %484, float* %20
%485 = load float, float* %13
%486 = load float, float* %17
%487 = load float, float* %21
%488 = call float @llvm.fmuladd.f32(float %485, float %486, float %487)
store float %488, float* %21
%489 = load float, float* %14
%490 = load float, float* %17
%491 = load float, float* %25
%492 = call float @llvm.fmuladd.f32(float %489, float %490, float %491)
store float %492, float* %25
%493 = load float, float* %15
%494 = load float, float* %17
%495 = load float, float* %29
%496 = call float @llvm.fmuladd.f32(float %493, float %494, float %495)
store float %496, float* %29
%497 = load float, float* %16
%498 = load float, float* %17
%499 = load float, float* %33
%500 = call float @llvm.fmuladd.f32(float %497, float %498, float %499)
store float %500, float* %33
%501 = load float, float* %13
%502 = load float, float* %18
%503 = load float, float* %22
%504 = call float @llvm.fmuladd.f32(float %501, float %502, float %503)
store float %504, float* %22
%505 = load float, float* %14
%506 = load float, float* %18
%507 = load float, float* %26
%508 = call float @llvm.fmuladd.f32(float %505, float %506, float %507)
store float %508, float* %26
%509 = load float, float* %15
%510 = load float, float* %18
%511 = load float, float* %30
%512 = call float @llvm.fmuladd.f32(float %509, float %510, float %511)
store float %512, float* %30
%513 = load float, float* %16
%514 = load float, float* %18
%515 = load float, float* %34
%516 = call float @llvm.fmuladd.f32(float %513, float %514, float %515)
store float %516, float* %34
%517 = load float, float* %13
%518 = load float, float* %19
%519 = load float, float* %23
%520 = call float @llvm.fmuladd.f32(float %517, float %518, float %519)
store float %520, float* %23
%521 = load float, float* %14
%522 = load float, float* %19
%523 = load float, float* %27
%524 = call float @llvm.fmuladd.f32(float %521, float %522, float %523)
store float %524, float* %27
%525 = load float, float* %15
%526 = load float, float* %19
%527 = load float, float* %31
%528 = call float @llvm.fmuladd.f32(float %525, float %526, float %527)
store float %528, float* %31
%529 = load float, float* %16
%530 = load float, float* %19
%531 = load float, float* %35
%532 = call float @llvm.fmuladd.f32(float %529, float %530, float %531)
store float %532, float* %35
%533 = load float, float* %13
%534 = load float, float* %20
%535 = load float, float* %24
%536 = call float @llvm.fmuladd.f32(float %533, float %534, float %535)
store float %536, float* %24
%537 = load float, float* %14
%538 = load float, float* %20
%539 = load float, float* %28
%540 = call float @llvm.fmuladd.f32(float %537, float %538, float %539)
store float %540, float* %28
%541 = load float, float* %15
%542 = load float, float* %20
%543 = load float, float* %32
%544 = call float @llvm.fmuladd.f32(float %541, float %542, float %543)
store float %544, float* %32
%545 = load float, float* %16
%546 = load float, float* %20
%547 = load float, float* %36
%548 = call float @llvm.fmuladd.f32(float %545, float %546, float %547)
store float %548, float* %36
%549 = load float*, float** %6
%550 = getelementptr inbounds float, float* %549, i64 12
%551 = load float, float* %550
store float %551, float* %13
%552 = load float*, float** %6
%553 = getelementptr inbounds float, float* %552, i64 13
%554 = load float, float* %553
store float %554, float* %14
%555 = load float*, float** %6
%556 = getelementptr inbounds float, float* %555, i64 14
%557 = load float, float* %556
store float %557, float* %15
%558 = load float*, float** %6
%559 = getelementptr inbounds float, float* %558, i64 15
%560 = load float, float* %559
store float %560, float* %16
%561 = load float*, float** %7
%562 = getelementptr inbounds float, float* %561, i64 12
%563 = load float, float* %562
store float %563, float* %17
%564 = load float*, float** %7
%565 = getelementptr inbounds float, float* %564, i64 13
%566 = load float, float* %565
store float %566, float* %18
%567 = load float*, float** %7
%568 = getelementptr inbounds float, float* %567, i64 14
%569 = load float, float* %568
store float %569, float* %19
%570 = load float*, float** %7
%571 = getelementptr inbounds float, float* %570, i64 15
%572 = load float, float* %571
store float %572, float* %20
%573 = load float, float* %13
%574 = load float, float* %17
%575 = load float, float* %21
%576 = call float @llvm.fmuladd.f32(float %573, float %574, float %575)
store float %576, float* %21
%577 = load float, float* %14
%578 = load float, float* %17
%579 = load float, float* %25
%580 = call float @llvm.fmuladd.f32(float %577, float %578, float %579)
store float %580, float* %25
%581 = load float, float* %15
%582 = load float, float* %17
%583 = load float, float* %29
%584 = call float @llvm.fmuladd.f32(float %581, float %582, float %583)
store float %584, float* %29
%585 = load float, float* %16
%586 = load float, float* %17
%587 = load float, float* %33
%588 = call float @llvm.fmuladd.f32(float %585, float %586, float %587)
store float %588, float* %33
%589 = load float, float* %13
%590 = load float, float* %18
%591 = load float, float* %22
%592 = call float @llvm.fmuladd.f32(float %589, float %590, float %591)
store float %592, float* %22
%593 = load float, float* %14
%594 = load float, float* %18
%595 = load float, float* %26
%596 = call float @llvm.fmuladd.f32(float %593, float %594, float %595)
store float %596, float* %26
%597 = load float, float* %15
%598 = load float, float* %18
%599 = load float, float* %30
%600 = call float @llvm.fmuladd.f32(float %597, float %598, float %599)
store float %600, float* %30
%601 = load float, float* %16
%602 = load float, float* %18
%603 = load float, float* %34
%604 = call float @llvm.fmuladd.f32(float %601, float %602, float %603)
store float %604, float* %34
%605 = load float, float* %13
%606 = load float, float* %19
%607 = load float, float* %23
%608 = call float @llvm.fmuladd.f32(float %605, float %606, float %607)
store float %608, float* %23
%609 = load float, float* %14
%610 = load float, float* %19
%611 = load float, float* %27
%612 = call float @llvm.fmuladd.f32(float %609, float %610, float %611)
store float %612, float* %27
%613 = load float, float* %15
%614 = load float, float* %19
%615 = load float, float* %31
%616 = call float @llvm.fmuladd.f32(float %613, float %614, float %615)
store float %616, float* %31
%617 = load float, float* %16
%618 = load float, float* %19
%619 = load float, float* %35
%620 = call float @llvm.fmuladd.f32(float %617, float %618, float %619)
store float %620, float* %35
%621 = load float, float* %13
%622 = load float, float* %20
%623 = load float, float* %24
%624 = call float @llvm.fmuladd.f32(float %621, float %622, float %623)
store float %624, float* %24
%625 = load float, float* %14
%626 = load float, float* %20
%627 = load float, float* %28
%628 = call float @llvm.fmuladd.f32(float %625, float %626, float %627)
store float %628, float* %28
%629 = load float, float* %15
%630 = load float, float* %20
%631 = load float, float* %32
%632 = call float @llvm.fmuladd.f32(float %629, float %630, float %631)
store float %632, float* %32
%633 = load float, float* %16
%634 = load float, float* %20
%635 = load float, float* %36
%636 = call float @llvm.fmuladd.f32(float %633, float %634, float %635)
store float %636, float* %36
%637 = load float*, float** %6
%638 = getelementptr inbounds float, float* %637, i64 16
store float* %638, float** %6
%639 = load float*, float** %7
%640 = getelementptr inbounds float, float* %639, i64 16
store float* %640, float** %7
br label %641
641: ; preds = %284
%642 = load i32, i32* %12
%643 = add nsw i32 %642, 4
store i32 %643, i32* %12
br label %279
644: ; preds = %279
br label %645
645: ; preds = %742, %644
%646 = load i32, i32* %12
%647 = load i32, i32* %5
%648 = icmp slt i32 %646, %647
br i1 %648, label %649, label %745
649: ; preds = %645
%650 = load float*, float** %6
%651 = getelementptr inbounds float, float* %650, i64 0
%652 = load float, float* %651
store float %652, float* %13
%653 = load float*, float** %6
%654 = getelementptr inbounds float, float* %653, i64 1
%655 = load float, float* %654
store float %655, float* %14
%656 = load float*, float** %6
%657 = getelementptr inbounds float, float* %656, i64 2
%658 = load float, float* %657
store float %658, float* %15
%659 = load float*, float** %6
%660 = getelementptr inbounds float, float* %659, i64 3
%661 = load float, float* %660
store float %661, float* %16
%662 = load float*, float** %7
%663 = getelementptr inbounds float, float* %662, i64 0
%664 = load float, float* %663
store float %664, float* %17
%665 = load float*, float** %7
%666 = getelementptr inbounds float, float* %665, i64 1
%667 = load float, float* %666
store float %667, float* %18
%668 = load float*, float** %7
%669 = getelementptr inbounds float, float* %668, i64 2
%670 = load float, float* %669
store float %670, float* %19
%671 = load float*, float** %7
%672 = getelementptr inbounds float, float* %671, i64 3
%673 = load float, float* %672
store float %673, float* %20
%674 = load float, float* %13
%675 = load float, float* %17
%676 = load float, float* %21
%677 = call float @llvm.fmuladd.f32(float %674, float %675, float %676)
store float %677, float* %21
%678 = load float, float* %14
%679 = load float, float* %17
%680 = load float, float* %25
%681 = call float @llvm.fmuladd.f32(float %678, float %679, float %680)
store float %681, float* %25
%682 = load float, float* %15
%683 = load float, float* %17
%684 = load float, float* %29
%685 = call float @llvm.fmuladd.f32(float %682, float %683, float %684)
store float %685, float* %29
%686 = load float, float* %16
%687 = load float, float* %17
%688 = load float, float* %33
%689 = call float @llvm.fmuladd.f32(float %686, float %687, float %688)
store float %689, float* %33
%690 = load float, float* %13
%691 = load float, float* %18
%692 = load float, float* %22
%693 = call float @llvm.fmuladd.f32(float %690, float %691, float %692)
store float %693, float* %22
%694 = load float, float* %14
%695 = load float, float* %18
%696 = load float, float* %26
%697 = call float @llvm.fmuladd.f32(float %694, float %695, float %696)
store float %697, float* %26
%698 = load float, float* %15
%699 = load float, float* %18
%700 = load float, float* %30
%701 = call float @llvm.fmuladd.f32(float %698, float %699, float %700)
store float %701, float* %30
%702 = load float, float* %16
%703 = load float, float* %18
%704 = load float, float* %34
%705 = call float @llvm.fmuladd.f32(float %702, float %703, float %704)
store float %705, float* %34
%706 = load float, float* %13
%707 = load float, float* %19
%708 = load float, float* %23
%709 = call float @llvm.fmuladd.f32(float %706, float %707, float %708)
store float %709, float* %23
%710 = load float, float* %14
%711 = load float, float* %19
%712 = load float, float* %27
%713 = call float @llvm.fmuladd.f32(float %710, float %711, float %712)
store float %713, float* %27
%714 = load float, float* %15
%715 = load float, float* %19
%716 = load float, float* %31
%717 = call float @llvm.fmuladd.f32(float %714, float %715, float %716)
store float %717, float* %31
%718 = load float, float* %16
%719 = load float, float* %19
%720 = load float, float* %35
%721 = call float @llvm.fmuladd.f32(float %718, float %719, float %720)
store float %721, float* %35
%722 = load float, float* %13
%723 = load float, float* %20
%724 = load float, float* %24
%725 = call float @llvm.fmuladd.f32(float %722, float %723, float %724)
store float %725, float* %24
%726 = load float, float* %14
%727 = load float, float* %20
%728 = load float, float* %28
%729 = call float @llvm.fmuladd.f32(float %726, float %727, float %728)
store float %729, float* %28
%730 = load float, float* %15
%731 = load float, float* %20
%732 = load float, float* %32
%733 = call float @llvm.fmuladd.f32(float %730, float %731, float %732)
store float %733, float* %32
%734 = load float, float* %16
%735 = load float, float* %20
%736 = load float, float* %36
%737 = call float @llvm.fmuladd.f32(float %734, float %735, float %736)
store float %737, float* %36
%738 = load float*, float** %6
%739 = getelementptr inbounds float, float* %738, i64 4
store float* %739, float** %6
%740 = load float*, float** %7
%741 = getelementptr inbounds float, float* %740, i64 4
store float* %741, float** %7
br label %742
742: ; preds = %649
%743 = load i32, i32* %12
%744 = add nsw i32 %743, 1
store i32 %744, i32* %12
br label %645
745: ; preds = %645
%746 = load float, float* %21
%747 = load float*, float** %8
%748 = getelementptr inbounds float, float* %747, i64 0
store float %746, float* %748
%749 = load float, float* %25
%750 = load float*, float** %8
%751 = getelementptr inbounds float, float* %750, i64 1
store float %749, float* %751
%752 = load float, float* %29
%753 = load float*, float** %8
%754 = getelementptr inbounds float, float* %753, i64 2
store float %752, float* %754
%755 = load float, float* %33
%756 = load float*, float** %8
%757 = getelementptr inbounds float, float* %756, i64 3
store float %755, float* %757
%758 = load float, float* %22
%759 = load float*, float** %8
%760 = getelementptr inbounds float, float* %759, i64 4
store float %758, float* %760
%761 = load float, float* %26
%762 = load float*, float** %8
%763 = getelementptr inbounds float, float* %762, i64 5
store float %761, float* %763
%764 = load float, float* %30
%765 = load float*, float** %8
%766 = getelementptr inbounds float, float* %765, i64 6
store float %764, float* %766
%767 = load float, float* %34
%768 = load float*, float** %8
%769 = getelementptr inbounds float, float* %768, i64 7
store float %767, float* %769
%770 = load float, float* %23
%771 = load float*, float** %8
%772 = getelementptr inbounds float, float* %771, i64 8
store float %770, float* %772
%773 = load float, float* %27
%774 = load float*, float** %8
%775 = getelementptr inbounds float, float* %774, i64 9
store float %773, float* %775
%776 = load float, float* %31
%777 = load float*, float** %8
%778 = getelementptr inbounds float, float* %777, i64 10
store float %776, float* %778
%779 = load float, float* %35
%780 = load float*, float** %8
%781 = getelementptr inbounds float, float* %780, i64 11
store float %779, float* %781
%782 = load float, float* %24
%783 = load float*, float** %8
%784 = getelementptr inbounds float, float* %783, i64 12
store float %782, float* %784
%785 = load float, float* %28
%786 = load float*, float** %8
%787 = getelementptr inbounds float, float* %786, i64 13
store float %785, float* %787
%788 = load float, float* %32
%789 = load float*, float** %8
%790 = getelementptr inbounds float, float* %789, i64 14
store float %788, float* %790
%791 = load float, float* %36
%792 = load float*, float** %8
%793 = getelementptr inbounds float, float* %792, i64 15
store float %791, float* %793
ret void
}

LLVM IR (-O2):
define void @kernel_strmm_nt_4x4_lib4(i32 %0, float* nocapture %1, float* nocapture %2, float* nocapture writeonly %3) {
%5 = bitcast float* %1 to <4 x float>*
%6 = load <4 x float>, <4 x float>* %5
%7 = load float, float* %2
%8 = insertelement <4 x float> poison, float %7, i64 0
%9 = shufflevector <4 x float> %8, <4 x float> poison, <4 x i32> zeroinitializer
%10 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %6, <4 x float> %9, <4 x float> zeroinitializer)
%11 = getelementptr inbounds float, float* %1, i64 4
%12 = bitcast float* %11 to <4 x float>*
%13 = load <4 x float>, <4 x float>* %12
%14 = getelementptr inbounds float, float* %2, i64 4
%15 = load float, float* %14
%16 = getelementptr inbounds float, float* %2, i64 5
%17 = load float, float* %16
%18 = insertelement <4 x float> poison, float %15, i64 0
%19 = shufflevector <4 x float> %18, <4 x float> poison, <4 x i32> zeroinitializer
%20 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %13, <4 x float> %19, <4 x float> %10)
%21 = insertelement <4 x float> poison, float %17, i64 0
%22 = shufflevector <4 x float> %21, <4 x float> poison, <4 x i32> zeroinitializer
%23 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %13, <4 x float> %22, <4 x float> zeroinitializer)
%24 = getelementptr inbounds float, float* %1, i64 8
%25 = bitcast float* %24 to <4 x float>*
%26 = load <4 x float>, <4 x float>* %25
%27 = getelementptr inbounds float, float* %2, i64 8
%28 = load float, float* %27
%29 = getelementptr inbounds float, float* %2, i64 9
%30 = load float, float* %29
%31 = getelementptr inbounds float, float* %2, i64 10
%32 = load float, float* %31
%33 = insertelement <4 x float> poison, float %28, i64 0
%34 = shufflevector <4 x float> %33, <4 x float> poison, <4 x i32> zeroinitializer
%35 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %26, <4 x float> %34, <4 x float> %20)
%36 = insertelement <4 x float> poison, float %30, i64 0
%37 = shufflevector <4 x float> %36, <4 x float> poison, <4 x i32> zeroinitializer
%38 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %26, <4 x float> %37, <4 x float> %23)
%39 = insertelement <4 x float> poison, float %32, i64 0
%40 = shufflevector <4 x float> %39, <4 x float> poison, <4 x i32> zeroinitializer
%41 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %26, <4 x float> %40, <4 x float> zeroinitializer)
%42 = getelementptr inbounds float, float* %1, i64 12
%43 = bitcast float* %42 to <4 x float>*
%44 = load <4 x float>, <4 x float>* %43
%45 = getelementptr inbounds float, float* %2, i64 12
%46 = load float, float* %45
%47 = getelementptr inbounds float, float* %2, i64 13
%48 = load float, float* %47
%49 = getelementptr inbounds float, float* %2, i64 14
%50 = load float, float* %49
%51 = getelementptr inbounds float, float* %2, i64 15
%52 = load float, float* %51
%53 = insertelement <4 x float> poison, float %46, i64 0
%54 = shufflevector <4 x float> %53, <4 x float> poison, <4 x i32> zeroinitializer
%55 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %44, <4 x float> %54, <4 x float> %35)
%56 = insertelement <4 x float> poison, float %48, i64 0
%57 = shufflevector <4 x float> %56, <4 x float> poison, <4 x i32> zeroinitializer
%58 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %44, <4 x float> %57, <4 x float> %38)
%59 = insertelement <4 x float> poison, float %50, i64 0
%60 = shufflevector <4 x float> %59, <4 x float> poison, <4 x i32> zeroinitializer
%61 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %44, <4 x float> %60, <4 x float> %41)
%62 = insertelement <4 x float> poison, float %52, i64 0
%63 = shufflevector <4 x float> %62, <4 x float> poison, <4 x i32> zeroinitializer
%64 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %44, <4 x float> %63, <4 x float> zeroinitializer)
%65 = add nsw i32 %0, -3
%66 = getelementptr inbounds float, float* %1, i64 16
%67 = getelementptr inbounds float, float* %2, i64 16
%68 = icmp sgt i32 %0, 7
br i1 %68, label %96, label %87
69: ; preds = %96
%70 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %107, <4 x float> %125, <4 x float> %105)
%71 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %129, <4 x float> %148, <4 x float> %70)
%72 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %152, <4 x float> %171, <4 x float> %71)
%73 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %175, <4 x float> %194, <4 x float> %72)
%74 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %107, <4 x float> %122, <4 x float> %104)
%75 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %129, <4 x float> %145, <4 x float> %74)
%76 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %152, <4 x float> %168, <4 x float> %75)
%77 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %175, <4 x float> %191, <4 x float> %76)
%78 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %107, <4 x float> %119, <4 x float> %103)
%79 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %129, <4 x float> %142, <4 x float> %78)
%80 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %152, <4 x float> %165, <4 x float> %79)
%81 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %175, <4 x float> %188, <4 x float> %80)
%82 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %107, <4 x float> %116, <4 x float> %102)
%83 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %129, <4 x float> %139, <4 x float> %82)
%84 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %152, <4 x float> %162, <4 x float> %83)
%85 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %175, <4 x float> %185, <4 x float> %84)
%86 = and i32 %0, -4
br label %87
87: ; preds = %69, %4
%88 = phi i32 [ 4, %4 ], [ %86, %69 ]
%89 = phi float* [ %66, %4 ], [ %197, %69 ]
%90 = phi float* [ %67, %4 ], [ %198, %69 ]
%91 = phi <4 x float> [ %55, %4 ], [ %85, %69 ]
%92 = phi <4 x float> [ %58, %4 ], [ %81, %69 ]
%93 = phi <4 x float> [ %61, %4 ], [ %77, %69 ]
%94 = phi <4 x float> [ %64, %4 ], [ %73, %69 ]
%95 = icmp slt i32 %88, %0
br i1 %95, label %200, label %238
96: ; preds = %4, %96
%97 = phi float* [ %198, %96 ], [ %67, %4 ]
%98 = phi float* [ %197, %96 ], [ %66, %4 ]
%99 = phi i32 [ %196, %96 ], [ 4, %4 ]
%100 = phi float* [ %98, %96 ], [ %1, %4 ]
%101 = phi float* [ %97, %96 ], [ %2, %4 ]
%102 = phi <4 x float> [ %186, %96 ], [ %55, %4 ]
%103 = phi <4 x float> [ %189, %96 ], [ %58, %4 ]
%104 = phi <4 x float> [ %192, %96 ], [ %61, %4 ]
%105 = phi <4 x float> [ %195, %96 ], [ %64, %4 ]
%106 = bitcast float* %98 to <4 x float>*
%107 = load <4 x float>, <4 x float>* %106
%108 = load float, float* %97
%109 = getelementptr inbounds float, float* %101, i64 17
%110 = load float, float* %109
%111 = getelementptr inbounds float, float* %101, i64 18
%112 = load float, float* %111
%113 = getelementptr inbounds float, float* %101, i64 19
%114 = load float, float* %113
%115 = insertelement <4 x float> poison, float %108, i64 0
%116 = shufflevector <4 x float> %115, <4 x float> poison, <4 x i32> zeroinitializer
%117 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %107, <4 x float> %116, <4 x float> %102)
%118 = insertelement <4 x float> poison, float %110, i64 0
%119 = shufflevector <4 x float> %118, <4 x float> poison, <4 x i32> zeroinitializer
%120 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %107, <4 x float> %119, <4 x float> %103)
%121 = insertelement <4 x float> poison, float %112, i64 0
%122 = shufflevector <4 x float> %121, <4 x float> poison, <4 x i32> zeroinitializer
%123 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %107, <4 x float> %122, <4 x float> %104)
%124 = insertelement <4 x float> poison, float %114, i64 0
%125 = shufflevector <4 x float> %124, <4 x float> poison, <4 x i32> zeroinitializer
%126 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %107, <4 x float> %125, <4 x float> %105)
%127 = getelementptr inbounds float, float* %100, i64 20
%128 = bitcast float* %127 to <4 x float>*
%129 = load <4 x float>, <4 x float>* %128
%130 = getelementptr inbounds float, float* %101, i64 20
%131 = load float, float* %130
%132 = getelementptr inbounds float, float* %101, i64 21
%133 = load float, float* %132
%134 = getelementptr inbounds float, float* %101, i64 22
%135 = load float, float* %134
%136 = getelementptr inbounds float, float* %101, i64 23
%137 = load float, float* %136
%138 = insertelement <4 x float> poison, float %131, i64 0
%139 = shufflevector <4 x float> %138, <4 x float> poison, <4 x i32> zeroinitializer
%140 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %129, <4 x float> %139, <4 x float> %117)
%141 = insertelement <4 x float> poison, float %133, i64 0
%142 = shufflevector <4 x float> %141, <4 x float> poison, <4 x i32> zeroinitializer
%143 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %129, <4 x float> %142, <4 x float> %120)
%144 = insertelement <4 x float> poison, float %135, i64 0
%145 = shufflevector <4 x float> %144, <4 x float> poison, <4 x i32> zeroinitializer
%146 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %129, <4 x float> %145, <4 x float> %123)
%147 = insertelement <4 x float> poison, float %137, i64 0
%148 = shufflevector <4 x float> %147, <4 x float> poison, <4 x i32> zeroinitializer
%149 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %129, <4 x float> %148, <4 x float> %126)
%150 = getelementptr inbounds float, float* %100, i64 24
%151 = bitcast float* %150 to <4 x float>*
%152 = load <4 x float>, <4 x float>* %151
%153 = getelementptr inbounds float, float* %101, i64 24
%154 = load float, float* %153
%155 = getelementptr inbounds float, float* %101, i64 25
%156 = load float, float* %155
%157 = getelementptr inbounds float, float* %101, i64 26
%158 = load float, float* %157
%159 = getelementptr inbounds float, float* %101, i64 27
%160 = load float, float* %159
%161 = insertelement <4 x float> poison, float %154, i64 0
%162 = shufflevector <4 x float> %161, <4 x float> poison, <4 x i32> zeroinitializer
%163 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %152, <4 x float> %162, <4 x float> %140)
%164 = insertelement <4 x float> poison, float %156, i64 0
%165 = shufflevector <4 x float> %164, <4 x float> poison, <4 x i32> zeroinitializer
%166 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %152, <4 x float> %165, <4 x float> %143)
%167 = insertelement <4 x float> poison, float %158, i64 0
%168 = shufflevector <4 x float> %167, <4 x float> poison, <4 x i32> zeroinitializer
%169 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %152, <4 x float> %168, <4 x float> %146)
%170 = insertelement <4 x float> poison, float %160, i64 0
%171 = shufflevector <4 x float> %170, <4 x float> poison, <4 x i32> zeroinitializer
%172 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %152, <4 x float> %171, <4 x float> %149)
%173 = getelementptr inbounds float, float* %100, i64 28
%174 = bitcast float* %173 to <4 x float>*
%175 = load <4 x float>, <4 x float>* %174
%176 = getelementptr inbounds float, float* %101, i64 28
%177 = load float, float* %176
%178 = getelementptr inbounds float, float* %101, i64 29
%179 = load float, float* %178
%180 = getelementptr inbounds float, float* %101, i64 30
%181 = load float, float* %180
%182 = getelementptr inbounds float, float* %101, i64 31
%183 = load float, float* %182
%184 = insertelement <4 x float> poison, float %177, i64 0
%185 = shufflevector <4 x float> %184, <4 x float> poison, <4 x i32> zeroinitializer
%186 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %175, <4 x float> %185, <4 x float> %163)
%187 = insertelement <4 x float> poison, float %179, i64 0
%188 = shufflevector <4 x float> %187, <4 x float> poison, <4 x i32> zeroinitializer
%189 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %175, <4 x float> %188, <4 x float> %166)
%190 = insertelement <4 x float> poison, float %181, i64 0
%191 = shufflevector <4 x float> %190, <4 x float> poison, <4 x i32> zeroinitializer
%192 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %175, <4 x float> %191, <4 x float> %169)
%193 = insertelement <4 x float> poison, float %183, i64 0
%194 = shufflevector <4 x float> %193, <4 x float> poison, <4 x i32> zeroinitializer
%195 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %175, <4 x float> %194, <4 x float> %172)
%196 = add nuw nsw i32 %99, 4
%197 = getelementptr inbounds float, float* %98, i64 16
%198 = getelementptr inbounds float, float* %97, i64 16
%199 = icmp slt i32 %196, %65
br i1 %199, label %96, label %69
200: ; preds = %87, %200
%201 = phi i32 [ %231, %200 ], [ %88, %87 ]
%202 = phi float* [ %229, %200 ], [ %89, %87 ]
%203 = phi float* [ %230, %200 ], [ %90, %87 ]
%204 = phi <4 x float> [ %219, %200 ], [ %91, %87 ]
%205 = phi <4 x float> [ %222, %200 ], [ %92, %87 ]
%206 = phi <4 x float> [ %225, %200 ], [ %93, %87 ]
%207 = phi <4 x float> [ %228, %200 ], [ %94, %87 ]
%208 = bitcast float* %202 to <4 x float>*
%209 = load <4 x float>, <4 x float>* %208
%210 = load float, float* %203
%211 = getelementptr inbounds float, float* %203, i64 1
%212 = load float, float* %211
%213 = getelementptr inbounds float, float* %203, i64 2
%214 = load float, float* %213
%215 = getelementptr inbounds float, float* %203, i64 3
%216 = load float, float* %215
%217 = insertelement <4 x float> poison, float %210, i64 0
%218 = shufflevector <4 x float> %217, <4 x float> poison, <4 x i32> zeroinitializer
%219 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %209, <4 x float> %218, <4 x float> %204)
%220 = insertelement <4 x float> poison, float %212, i64 0
%221 = shufflevector <4 x float> %220, <4 x float> poison, <4 x i32> zeroinitializer
%222 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %209, <4 x float> %221, <4 x float> %205)
%223 = insertelement <4 x float> poison, float %214, i64 0
%224 = shufflevector <4 x float> %223, <4 x float> poison, <4 x i32> zeroinitializer
%225 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %209, <4 x float> %224, <4 x float> %206)
%226 = insertelement <4 x float> poison, float %216, i64 0
%227 = shufflevector <4 x float> %226, <4 x float> poison, <4 x i32> zeroinitializer
%228 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %209, <4 x float> %227, <4 x float> %207)
%229 = getelementptr inbounds float, float* %202, i64 4
%230 = getelementptr inbounds float, float* %203, i64 4
%231 = add nuw nsw i32 %201, 1
%232 = icmp eq i32 %231, %0
br i1 %232, label %233, label %200
233: ; preds = %200
%234 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %209, <4 x float> %227, <4 x float> %207)
%235 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %209, <4 x float> %224, <4 x float> %206)
%236 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %209, <4 x float> %221, <4 x float> %205)
%237 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %209, <4 x float> %218, <4 x float> %204)
br label %238
238: ; preds = %233, %87
%239 = phi <4 x float> [ %91, %87 ], [ %237, %233 ]
%240 = phi <4 x float> [ %92, %87 ], [ %236, %233 ]
%241 = phi <4 x float> [ %93, %87 ], [ %235, %233 ]
%242 = phi <4 x float> [ %94, %87 ], [ %234, %233 ]
%243 = bitcast float* %3 to <4 x float>*
store <4 x float> %239, <4 x float>* %243
%244 = getelementptr inbounds float, float* %3, i64 4
%245 = bitcast float* %244 to <4 x float>*
store <4 x float> %240, <4 x float>* %245
%246 = getelementptr inbounds float, float* %3, i64 8
%247 = bitcast float* %246 to <4 x float>*
store <4 x float> %241, <4 x float>* %247
%248 = getelementptr inbounds float, float* %3, i64 12
%249 = bitcast float* %248 to <4 x float>*
store <4 x float> %242, <4 x float>* %249
ret void
}