void kernel_dtrtri_4x4_lib4(int kmax, double *A, double *B, double *C,
                            double *E, int use_inv_diag_E, double *inv_diag_E) {
  const int bs = 4;
  int k;
  double 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 + bs * 0];
  b_0 = B[0 + bs * 0];
  b_1 = B[1 + bs * 0];
  b_2 = B[2 + bs * 0];
  b_3 = B[3 + bs * 0];
  c_00 -= a_0 * b_0;
  c_01 -= a_0 * b_1;
  c_02 -= a_0 * b_2;
  c_03 -= a_0 * b_3;
  a_0 = A[0 + bs * 1];
  a_1 = A[1 + bs * 1];
  b_0 = B[0 + bs * 1];
  b_1 = B[1 + bs * 1];
  b_2 = B[2 + bs * 1];
  b_3 = B[3 + bs * 1];
  c_00 -= a_0 * b_0;
  c_10 -= a_1 * b_0;
  c_01 -= a_0 * b_1;
  c_11 -= a_1 * b_1;
  c_02 -= a_0 * b_2;
  c_12 -= a_1 * b_2;
  c_03 -= a_0 * b_3;
  c_13 -= a_1 * b_3;
  a_0 = A[0 + bs * 2];
  a_1 = A[1 + bs * 2];
  a_2 = A[2 + bs * 2];
  b_0 = B[0 + bs * 2];
  b_1 = B[1 + bs * 2];
  b_2 = B[2 + bs * 2];
  b_3 = B[3 + bs * 2];
  c_00 -= a_0 * b_0;
  c_10 -= a_1 * b_0;
  c_20 -= a_2 * b_0;
  c_01 -= a_0 * b_1;
  c_11 -= a_1 * b_1;
  c_21 -= a_2 * b_1;
  c_02 -= a_0 * b_2;
  c_12 -= a_1 * b_2;
  c_22 -= a_2 * b_2;
  c_03 -= a_0 * b_3;
  c_13 -= a_1 * b_3;
  c_23 -= a_2 * b_3;
  a_0 = A[0 + bs * 3];
  a_1 = A[1 + bs * 3];
  a_2 = A[2 + bs * 3];
  a_3 = A[3 + bs * 3];
  b_0 = B[0 + bs * 3];
  b_1 = B[1 + bs * 3];
  b_2 = B[2 + bs * 3];
  b_3 = B[3 + bs * 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;
  k = 4;
  for (; k < kmax - 3; k += 4) {
    a_0 = A[0 + bs * 0];
    a_1 = A[1 + bs * 0];
    a_2 = A[2 + bs * 0];
    a_3 = A[3 + bs * 0];
    b_0 = B[0 + bs * 0];
    b_1 = B[1 + bs * 0];
    b_2 = B[2 + bs * 0];
    b_3 = B[3 + bs * 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 + bs * 1];
    a_1 = A[1 + bs * 1];
    a_2 = A[2 + bs * 1];
    a_3 = A[3 + bs * 1];
    b_0 = B[0 + bs * 1];
    b_1 = B[1 + bs * 1];
    b_2 = B[2 + bs * 1];
    b_3 = B[3 + bs * 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 + bs * 2];
    a_1 = A[1 + bs * 2];
    a_2 = A[2 + bs * 2];
    a_3 = A[3 + bs * 2];
    b_0 = B[0 + bs * 2];
    b_1 = B[1 + bs * 2];
    b_2 = B[2 + bs * 2];
    b_3 = B[3 + bs * 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 + bs * 3];
    a_1 = A[1 + bs * 3];
    a_2 = A[2 + bs * 3];
    a_3 = A[3 + bs * 3];
    b_0 = B[0 + bs * 3];
    b_1 = B[1 + bs * 3];
    b_2 = B[2 + bs * 3];
    b_3 = B[3 + bs * 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;
  }
  double a_00, a_10, a_20, a_30, a_11, a_21, a_31, a_22, a_32, a_33;
  if (use_inv_diag_E) {
    a_00 = inv_diag_E[0];
    a_11 = inv_diag_E[1];
    a_22 = inv_diag_E[2];
    a_33 = inv_diag_E[3];
  } else {
    a_00 = 1.0 / E[0 + bs * 0];
    a_11 = 1.0 / E[1 + bs * 1];
    a_22 = 1.0 / E[2 + bs * 2];
    a_33 = 1.0 / E[3 + bs * 3];
  }
  c_00 *= a_00;
  c_10 *= a_00;
  c_20 *= a_00;
  c_30 *= a_00;
  C[0 + bs * 0] = c_00;
  C[1 + bs * 0] = c_10;
  C[2 + bs * 0] = c_20;
  C[3 + bs * 0] = c_30;
  a_10 = E[1 + bs * 0];
  c_01 -= c_00 * a_10;
  c_11 -= c_10 * a_10;
  c_21 -= c_20 * a_10;
  c_31 -= c_30 * a_10;
  c_01 *= a_11;
  c_11 *= a_11;
  c_21 *= a_11;
  c_31 *= a_11;
  C[0 + bs * 1] = c_01;
  C[1 + bs * 1] = c_11;
  C[2 + bs * 1] = c_21;
  C[3 + bs * 1] = c_31;
  a_20 = E[2 + bs * 0];
  a_21 = E[2 + bs * 1];
  c_02 -= c_00 * a_20;
  c_12 -= c_10 * a_20;
  c_22 -= c_20 * a_20;
  c_32 -= c_30 * a_20;
  c_02 -= c_01 * a_21;
  c_12 -= c_11 * a_21;
  c_22 -= c_21 * a_21;
  c_32 -= c_31 * a_21;
  c_02 *= a_22;
  c_12 *= a_22;
  c_22 *= a_22;
  c_32 *= a_22;
  C[0 + bs * 2] = c_02;
  C[1 + bs * 2] = c_12;
  C[2 + bs * 2] = c_22;
  C[3 + bs * 2] = c_32;
  a_30 = E[3 + bs * 0];
  a_31 = E[3 + bs * 1];
  a_32 = E[3 + bs * 2];
  c_03 -= c_00 * a_30;
  c_13 -= c_10 * a_30;
  c_23 -= c_20 * a_30;
  c_33 -= c_30 * a_30;
  c_03 -= c_01 * a_31;
  c_13 -= c_11 * a_31;
  c_23 -= c_21 * a_31;
  c_33 -= c_31 * a_31;
  c_03 -= c_02 * a_32;
  c_13 -= c_12 * a_32;
  c_23 -= c_22 * a_32;
  c_33 -= c_32 * a_32;
  c_03 *= a_33;
  c_13 *= a_33;
  c_23 *= a_33;
  c_33 *= a_33;
  C[0 + bs * 3] = c_03;
  C[1 + bs * 3] = c_13;
  C[2 + bs * 3] = c_23;
  C[3 + bs * 3] = c_33;
}


x86 assembly (clang, -O0):
<kernel_dtrtri_4x4_lib4>:
push   %rbp
mov    %rsp,%rbp
sub    $0xc8,%rsp
mov    0x10(%rbp),%rax
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9d,-0x2c(%rbp)
movl   $0x4,-0x30(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x80(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x10(%rbp)
mov    -0x18(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x18(%rbp)
movl   $0x4,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jge    2c58 <kernel_dtrtri_4x4_lib4+0x1b58>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x10(%rbp)
mov    -0x18(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x18(%rbp)
mov    -0x34(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x34(%rbp)
jmp    1c37 <kernel_dtrtri_4x4_lib4+0xb37>
cmpl   $0x0,-0x2c(%rbp)
je     2caa <kernel_dtrtri_4x4_lib4+0x1baa>
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
mov    0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
jmp    2d0d <kernel_dtrtri_4x4_lib4+0x1c0d>
mov    -0x28(%rbp),%rax
movsd  0x134a(%rip),%xmm0
divsd  (%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x1332(%rip),%xmm0
divsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x1319(%rip),%xmm0
divsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x1300(%rip),%xmm0
divsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xa0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0xe0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
mulsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
mulsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
mulsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0xa8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x110(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm2
ff
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0xb0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x50(%rax)
movsd  -0xf0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x58(%rax)
mov    -0x28(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm2
ff
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
movsd  -0x130(%rbp),%xmm2
ff
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm2
ff
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm2
ff
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
mulsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
mulsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
mulsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
mulsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0xb8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x70(%rax)
movsd  -0xf8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x78(%rax)
add    $0xc8,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<kernel_dtrtri_4x4_lib4>:
sub    $0x128,%rsp
movsd  (%rsi),%xmm0
movsd  (%rdx),%xmm1
mulsd  %xmm0,%xmm1
xorpd  %xmm9,%xmm9
xorpd  %xmm2,%xmm2
subsd  %xmm1,%xmm2
movsd  0x8(%rdx),%xmm1
mulsd  %xmm0,%xmm1
xorpd  %xmm3,%xmm3
subsd  %xmm1,%xmm3
movsd  0x10(%rdx),%xmm1
mulsd  %xmm0,%xmm1
xorpd  %xmm10,%xmm10
mulsd  0x18(%rdx),%xmm0
subsd  %xmm1,%xmm10
xorpd  %xmm8,%xmm8
subsd  %xmm0,%xmm8
movupd 0x20(%rsi),%xmm0
movsd  0x20(%rdx),%xmm6
movsd  0x28(%rdx),%xmm7
movsd  0x30(%rdx),%xmm1
movsd  0x38(%rdx),%xmm5
unpcklpd %xmm6,%xmm6
movq   %xmm2,%xmm4
mulpd  %xmm0,%xmm6
subpd  %xmm6,%xmm4
unpcklpd %xmm7,%xmm7
movq   %xmm3,%xmm3
mulpd  %xmm0,%xmm7
subpd  %xmm7,%xmm3
unpcklpd %xmm1,%xmm1
movq   %xmm10,%xmm13
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm13
unpcklpd %xmm5,%xmm5
movq   %xmm8,%xmm14
mulpd  %xmm0,%xmm5
subpd  %xmm5,%xmm14
movupd 0x40(%rsi),%xmm11
movsd  0x50(%rsi),%xmm0
movsd  0x40(%rdx),%xmm2
movsd  0x48(%rdx),%xmm5
movsd  0x50(%rdx),%xmm6
movsd  0x58(%rdx),%xmm7
movapd %xmm0,%xmm1
mulsd  %xmm2,%xmm1
unpcklpd %xmm2,%xmm2
mulpd  %xmm11,%xmm2
subpd  %xmm2,%xmm4
xorpd  %xmm2,%xmm2
subsd  %xmm1,%xmm2
movapd %xmm0,%xmm1
mulsd  %xmm5,%xmm1
unpcklpd %xmm5,%xmm5
mulpd  %xmm11,%xmm5
subpd  %xmm5,%xmm3
xorpd  %xmm5,%xmm5
subsd  %xmm1,%xmm5
movapd %xmm0,%xmm1
mulsd  %xmm6,%xmm1
unpcklpd %xmm6,%xmm6
mulpd  %xmm11,%xmm6
subpd  %xmm6,%xmm13
xorpd  %xmm10,%xmm10
subsd  %xmm1,%xmm10
mulsd  %xmm7,%xmm0
unpcklpd %xmm7,%xmm7
mulpd  %xmm11,%xmm7
subpd  %xmm7,%xmm14
subsd  %xmm0,%xmm9
movupd 0x60(%rsi),%xmm0
movupd 0x70(%rsi),%xmm1
movsd  0x60(%rdx),%xmm7
unpcklpd %xmm7,%xmm7
movapd %xmm0,%xmm6
mulpd  %xmm7,%xmm6
subpd  %xmm6,%xmm4
movapd %xmm4,%xmm6
movq   %xmm2,%xmm15
mulpd  %xmm1,%xmm7
subpd  %xmm7,%xmm15
movsd  0x68(%rdx),%xmm2
unpcklpd %xmm2,%xmm2
movapd %xmm0,%xmm7
mulpd  %xmm2,%xmm7
subpd  %xmm7,%xmm3
movapd %xmm3,%xmm7
movq   %xmm5,%xmm12
mulpd  %xmm1,%xmm2
subpd  %xmm2,%xmm12
movsd  0x70(%rdx),%xmm2
unpcklpd %xmm2,%xmm2
movapd %xmm0,%xmm5
mulpd  %xmm2,%xmm5
subpd  %xmm5,%xmm13
movq   %xmm10,%xmm8
mulpd  %xmm1,%xmm2
subpd  %xmm2,%xmm8
movsd  0x78(%rdx),%xmm2
unpcklpd %xmm2,%xmm2
mulpd  %xmm2,%xmm0
subpd  %xmm0,%xmm14
movq   %xmm9,%xmm10
mulpd  %xmm1,%xmm2
subpd  %xmm2,%xmm10
cmp    $0x8,%edi
jl     1920 <kernel_dtrtri_4x4_lib4+0x820>
add    $0xfffffffd,%edi
mov    $0x4,%r10d
xor    %eax,%eax
movapd %xmm10,0x20(%rsp)
movapd %xmm14,0x50(%rsp)
movapd %xmm8,0x70(%rsp)
movapd %xmm13,0xa0(%rsp)
movapd %xmm12,0xb0(%rsp)
movapd %xmm7,0xd0(%rsp)
movapd %xmm15,0xf0(%rsp)
movapd %xmm6,0x110(%rsp)
movupd 0x80(%rsi,%rax,1),%xmm2
movupd 0x90(%rsi,%rax,1),%xmm5
movupd 0xa0(%rsi,%rax,1),%xmm9
movsd  0x80(%rdx,%rax,1),%xmm3
movsd  0x88(%rdx,%rax,1),%xmm0
movapd %xmm7,%xmm11
movapd %xmm6,%xmm7
movsd  0x90(%rdx,%rax,1),%xmm6
movsd  0x98(%rdx,%rax,1),%xmm4
unpcklpd %xmm3,%xmm3
movapd %xmm2,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm1,%xmm7
movapd %xmm5,%xmm1
movapd %xmm3,0x100(%rsp)
mulpd  %xmm3,%xmm1
subpd  %xmm1,%xmm15
unpcklpd %xmm0,%xmm0
movapd %xmm2,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm11
movapd %xmm5,%xmm1
movapd %xmm0,0xc0(%rsp)
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm12
unpcklpd %xmm6,%xmm6
movapd %xmm2,%xmm1
mulpd  %xmm6,%xmm1
subpd  %xmm1,%xmm13
movapd %xmm5,%xmm1
movapd %xmm6,0x80(%rsp)
mulpd  %xmm6,%xmm1
movapd %xmm7,%xmm6
movapd %xmm11,%xmm7
subpd  %xmm1,%xmm8
unpcklpd %xmm4,%xmm4
movapd %xmm2,-0x60(%rsp)
movapd %xmm2,%xmm1
mulpd  %xmm4,%xmm1
subpd  %xmm1,%xmm14
movapd %xmm5,0xe0(%rsp)
movapd %xmm5,%xmm1
movapd %xmm4,0x30(%rsp)
mulpd  %xmm4,%xmm1
subpd  %xmm1,%xmm10
movsd  0xa0(%rdx,%rax,1),%xmm2
unpcklpd %xmm2,%xmm2
movapd %xmm9,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm6
movupd 0xb0(%rsi,%rax,1),%xmm0
movapd %xmm0,%xmm1
movapd %xmm2,-0x20(%rsp)
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm15
movsd  0xa8(%rdx,%rax,1),%xmm2
unpcklpd %xmm2,%xmm2
movapd %xmm9,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm7
movapd %xmm0,%xmm1
movapd %xmm2,0x60(%rsp)
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm12
movsd  0xb0(%rdx,%rax,1),%xmm2
unpcklpd %xmm2,%xmm2
movapd %xmm9,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm13
movapd %xmm0,%xmm1
movapd %xmm2,-0x10(%rsp)
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm8
movsd  0xb8(%rdx,%rax,1),%xmm4
unpcklpd %xmm4,%xmm4
movapd %xmm9,-0x50(%rsp)
movapd %xmm9,%xmm1
mulpd  %xmm4,%xmm1
subpd  %xmm1,%xmm14
movapd %xmm0,0x90(%rsp)
movapd %xmm0,%xmm1
mulpd  %xmm4,%xmm1
subpd  %xmm1,%xmm10
movsd  0xc0(%rdx,%rax,1),%xmm2
unpcklpd %xmm2,%xmm2
movupd 0xc0(%rsi,%rax,1),%xmm0
movapd %xmm0,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm6
movupd 0xd0(%rsi,%rax,1),%xmm3
movapd %xmm3,%xmm1
movapd %xmm2,0x40(%rsp)
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm15
movsd  0xc8(%rdx,%rax,1),%xmm2
unpcklpd %xmm2,%xmm2
movapd %xmm0,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm7
movapd %xmm3,%xmm1
movapd %xmm2,(%rsp)
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm12
movsd  0xd0(%rdx,%rax,1),%xmm5
unpcklpd %xmm5,%xmm5
movapd %xmm0,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm1,%xmm13
movapd %xmm3,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm1,%xmm8
movsd  0xd8(%rdx,%rax,1),%xmm9
unpcklpd %xmm9,%xmm9
movapd %xmm0,-0x70(%rsp)
movapd %xmm0,%xmm1
mulpd  %xmm9,%xmm1
subpd  %xmm1,%xmm14
movapd %xmm3,0x10(%rsp)
movapd %xmm3,%xmm1
mulpd  %xmm9,%xmm1
subpd  %xmm1,%xmm10
movsd  0xe0(%rdx,%rax,1),%xmm0
unpcklpd %xmm0,%xmm0
movupd 0xe0(%rsi,%rax,1),%xmm11
movapd %xmm11,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm6
movupd 0xf0(%rsi,%rax,1),%xmm3
movapd %xmm3,%xmm1
movapd %xmm0,-0x30(%rsp)
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm15
movsd  0xe8(%rdx,%rax,1),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm11,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm7
movapd %xmm3,%xmm1
movapd %xmm0,-0x40(%rsp)
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm12
movsd  0xf0(%rdx,%rax,1),%xmm2
unpcklpd %xmm2,%xmm2
movapd %xmm11,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm13
movapd %xmm3,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm8
movsd  0xf8(%rdx,%rax,1),%xmm1
unpcklpd %xmm1,%xmm1
movapd %xmm11,-0x80(%rsp)
mulpd  %xmm1,%xmm11
subpd  %xmm11,%xmm14
movapd %xmm3,%xmm11
mulpd  %xmm1,%xmm3
subpd  %xmm3,%xmm10
add    $0x4,%r10d
sub    $0xffffffffffffff80,%rax
cmp    %edi,%r10d
jl     12f0 <kernel_dtrtri_4x4_lib4+0x1f0>
movapd -0x60(%rsp),%xmm12
movapd 0x961(%rip),%xmm0
xorpd  %xmm0,%xmm12
movapd %xmm12,-0x60(%rsp)
movapd 0xe0(%rsp),%xmm6
xorpd  %xmm0,%xmm6
movapd -0x50(%rsp),%xmm3
xorpd  %xmm0,%xmm3
movapd %xmm3,-0x50(%rsp)
movapd 0x90(%rsp),%xmm14
xorpd  %xmm0,%xmm14
movapd -0x70(%rsp),%xmm3
xorpd  %xmm0,%xmm3
movapd %xmm3,%xmm13
movapd %xmm3,-0x70(%rsp)
movapd 0x10(%rsp),%xmm3
xorpd  %xmm0,%xmm3
movapd -0x80(%rsp),%xmm7
xorpd  %xmm0,%xmm7
movapd %xmm7,-0x80(%rsp)
movapd %xmm11,%xmm15
xorpd  %xmm0,%xmm15
movapd %xmm6,%xmm0
movapd 0x30(%rsp),%xmm8
mulpd  %xmm8,%xmm0
addpd  0x20(%rsp),%xmm0
movapd %xmm14,%xmm7
mulpd  %xmm4,%xmm7
addpd  %xmm0,%xmm7
movapd %xmm3,%xmm0
mulpd  %xmm9,%xmm0
addpd  %xmm7,%xmm0
movapd %xmm15,%xmm10
mulpd  %xmm1,%xmm10
addpd  %xmm0,%xmm10
mulpd  %xmm12,%xmm8
addpd  0x50(%rsp),%xmm8
movapd -0x50(%rsp),%xmm11
mulpd  %xmm11,%xmm4
addpd  %xmm8,%xmm4
mulpd  %xmm13,%xmm9
addpd  %xmm4,%xmm9
movapd -0x80(%rsp),%xmm13
mulpd  %xmm13,%xmm1
addpd  %xmm9,%xmm1
movapd %xmm6,%xmm0
movapd 0x80(%rsp),%xmm7
mulpd  %xmm7,%xmm0
addpd  0x70(%rsp),%xmm0
movapd %xmm14,%xmm4
movapd -0x10(%rsp),%xmm12
mulpd  %xmm12,%xmm4
addpd  %xmm0,%xmm4
movapd %xmm3,%xmm0
mulpd  %xmm5,%xmm0
addpd  %xmm4,%xmm0
movapd %xmm15,%xmm8
mulpd  %xmm2,%xmm8
addpd  %xmm0,%xmm8
movapd -0x60(%rsp),%xmm9
mulpd  %xmm9,%xmm7
addpd  0xa0(%rsp),%xmm7
mulpd  %xmm11,%xmm12
addpd  %xmm7,%xmm12
movapd -0x70(%rsp),%xmm11
mulpd  %xmm11,%xmm5
addpd  %xmm12,%xmm5
mulpd  %xmm13,%xmm2
addpd  %xmm5,%xmm2
movapd %xmm6,%xmm0
movapd 0xc0(%rsp),%xmm5
mulpd  %xmm5,%xmm0
addpd  0xb0(%rsp),%xmm0
movapd %xmm14,%xmm7
movapd 0x60(%rsp),%xmm4
mulpd  %xmm4,%xmm7
addpd  %xmm0,%xmm7
movapd %xmm3,%xmm0
movapd (%rsp),%xmm13
mulpd  %xmm13,%xmm0
addpd  %xmm7,%xmm0
movapd %xmm15,%xmm12
movapd -0x40(%rsp),%xmm7
mulpd  %xmm7,%xmm12
addpd  %xmm0,%xmm12
mulpd  %xmm9,%xmm5
addpd  0xd0(%rsp),%xmm5
movapd -0x50(%rsp),%xmm9
mulpd  %xmm9,%xmm4
addpd  %xmm5,%xmm4
mulpd  %xmm11,%xmm13
addpd  %xmm4,%xmm13
movapd -0x80(%rsp),%xmm11
mulpd  %xmm11,%xmm7
addpd  %xmm13,%xmm7
movapd 0x100(%rsp),%xmm0
mulpd  %xmm0,%xmm6
addpd  0xf0(%rsp),%xmm6
movapd -0x20(%rsp),%xmm13
mulpd  %xmm13,%xmm14
addpd  %xmm6,%xmm14
movapd 0x40(%rsp),%xmm4
mulpd  %xmm4,%xmm3
addpd  %xmm14,%xmm3
movapd -0x30(%rsp),%xmm5
mulpd  %xmm5,%xmm15
addpd  %xmm3,%xmm15
movapd -0x60(%rsp),%xmm3
mulpd  %xmm0,%xmm3
addpd  0x110(%rsp),%xmm3
mulpd  %xmm13,%xmm9
addpd  %xmm3,%xmm9
movapd -0x70(%rsp),%xmm3
mulpd  %xmm4,%xmm3
addpd  %xmm9,%xmm3
mulpd  %xmm5,%xmm11
addpd  %xmm3,%xmm11
movapd %xmm11,%xmm6
movapd %xmm2,%xmm13
movapd %xmm1,%xmm14
test   %r9d,%r9d
je     1938 <kernel_dtrtri_4x4_lib4+0x838>
mov    0x130(%rsp),%rax
movupd (%rax),%xmm2
movupd 0x10(%rax),%xmm1
jmp    1964 <kernel_dtrtri_4x4_lib4+0x864>
movsd  (%r8),%xmm9
movsd  0x50(%r8),%xmm0
movhpd 0x28(%r8),%xmm9
movhpd 0x78(%r8),%xmm0
movapd 0x6b9(%rip),%xmm2
movapd %xmm2,%xmm1
divpd  %xmm0,%xmm1
divpd  %xmm9,%xmm2
movapd %xmm2,%xmm0
unpcklpd %xmm2,%xmm0
mulpd  %xmm0,%xmm6
mulpd  %xmm0,%xmm15
movupd %xmm6,(%rcx)
movupd %xmm15,0x10(%rcx)
movsd  0x8(%r8),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm6,%xmm4
mulpd  %xmm0,%xmm4
subpd  %xmm4,%xmm7
mulpd  %xmm15,%xmm0
subpd  %xmm0,%xmm12
unpckhpd %xmm2,%xmm2
mulpd  %xmm2,%xmm7
mulpd  %xmm12,%xmm2
movupd %xmm7,0x20(%rcx)
movupd %xmm2,0x30(%rcx)
movsd  0x10(%r8),%xmm0
movsd  0x30(%r8),%xmm4
unpcklpd %xmm0,%xmm0
movapd %xmm7,%xmm3
movapd %xmm6,%xmm7
mulpd  %xmm0,%xmm7
subpd  %xmm7,%xmm13
mulpd  %xmm15,%xmm0
subpd  %xmm0,%xmm8
unpcklpd %xmm4,%xmm4
movapd %xmm3,%xmm0
mulpd  %xmm4,%xmm0
subpd  %xmm0,%xmm13
mulpd  %xmm2,%xmm4
subpd  %xmm4,%xmm8
movapd %xmm1,%xmm7
unpcklpd %xmm1,%xmm7
mulpd  %xmm7,%xmm13
mulpd  %xmm8,%xmm7
movupd %xmm13,0x40(%rcx)
movupd %xmm7,0x50(%rcx)
movsd  0x18(%r8),%xmm0
movsd  0x38(%r8),%xmm4
movsd  0x58(%r8),%xmm5
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm6
subpd  %xmm6,%xmm14
mulpd  %xmm15,%xmm0
subpd  %xmm0,%xmm10
unpcklpd %xmm4,%xmm4
mulpd  %xmm4,%xmm3
subpd  %xmm3,%xmm14
mulpd  %xmm2,%xmm4
subpd  %xmm4,%xmm10
unpcklpd %xmm5,%xmm5
mulpd  %xmm5,%xmm13
subpd  %xmm13,%xmm14
mulpd  %xmm7,%xmm5
subpd  %xmm5,%xmm10
unpckhpd %xmm1,%xmm1
mulpd  %xmm1,%xmm14
mulpd  %xmm10,%xmm1
movupd %xmm14,0x60(%rcx)
movupd %xmm1,0x70(%rcx)
add    $0x128,%rsp
ret

LLVM IR (-O0):
define void @kernel_dtrtri_4x4_lib4(i32 %0, double* %1, double* %2, double* %3, double* %4, i32 %5, double* %6) {
%8 = alloca i32
%9 = alloca double*
%10 = alloca double*
%11 = alloca double*
%12 = alloca double*
%13 = alloca i32
%14 = alloca double*
%15 = alloca i32
%16 = alloca i32
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca double
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca double
%31 = alloca double
%32 = alloca double
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca double
%38 = alloca double
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
%43 = alloca double
%44 = alloca double
%45 = alloca double
%46 = alloca double
%47 = alloca double
%48 = alloca double
%49 = alloca double
%50 = alloca double
store i32 %0, i32* %8
store double* %1, double** %9
store double* %2, double** %10
store double* %3, double** %11
store double* %4, double** %12
store i32 %5, i32* %13
store double* %6, double** %14
store i32 4, i32* %15
store double 0.000000e+00, double* %25
store double 0.000000e+00, double* %26
store double 0.000000e+00, double* %27
store double 0.000000e+00, double* %28
store double 0.000000e+00, double* %29
store double 0.000000e+00, double* %30
store double 0.000000e+00, double* %31
store double 0.000000e+00, double* %32
store double 0.000000e+00, double* %33
store double 0.000000e+00, double* %34
store double 0.000000e+00, double* %35
store double 0.000000e+00, double* %36
store double 0.000000e+00, double* %37
store double 0.000000e+00, double* %38
store double 0.000000e+00, double* %39
store double 0.000000e+00, double* %40
%51 = load double*, double** %9
%52 = getelementptr inbounds double, double* %51, i64 0
%53 = load double, double* %52
store double %53, double* %17
%54 = load double*, double** %10
%55 = getelementptr inbounds double, double* %54, i64 0
%56 = load double, double* %55
store double %56, double* %21
%57 = load double*, double** %10
%58 = getelementptr inbounds double, double* %57, i64 1
%59 = load double, double* %58
store double %59, double* %22
%60 = load double*, double** %10
%61 = getelementptr inbounds double, double* %60, i64 2
%62 = load double, double* %61
store double %62, double* %23
%63 = load double*, double** %10
%64 = getelementptr inbounds double, double* %63, i64 3
%65 = load double, double* %64
store double %65, double* %24
%66 = load double, double* %17
%67 = load double, double* %21
%68 = load double, double* %25
%69 = fneg double %66
%70 = call double @llvm.fmuladd.f64(double %69, double %67, double %68)
store double %70, double* %25
%71 = load double, double* %17
%72 = load double, double* %22
%73 = load double, double* %26
%74 = fneg double %71
%75 = call double @llvm.fmuladd.f64(double %74, double %72, double %73)
store double %75, double* %26
%76 = load double, double* %17
%77 = load double, double* %23
%78 = load double, double* %27
%79 = fneg double %76
%80 = call double @llvm.fmuladd.f64(double %79, double %77, double %78)
store double %80, double* %27
%81 = load double, double* %17
%82 = load double, double* %24
%83 = load double, double* %28
%84 = fneg double %81
%85 = call double @llvm.fmuladd.f64(double %84, double %82, double %83)
store double %85, double* %28
%86 = load double*, double** %9
%87 = getelementptr inbounds double, double* %86, i64 4
%88 = load double, double* %87
store double %88, double* %17
%89 = load double*, double** %9
%90 = getelementptr inbounds double, double* %89, i64 5
%91 = load double, double* %90
store double %91, double* %18
%92 = load double*, double** %10
%93 = getelementptr inbounds double, double* %92, i64 4
%94 = load double, double* %93
store double %94, double* %21
%95 = load double*, double** %10
%96 = getelementptr inbounds double, double* %95, i64 5
%97 = load double, double* %96
store double %97, double* %22
%98 = load double*, double** %10
%99 = getelementptr inbounds double, double* %98, i64 6
%100 = load double, double* %99
store double %100, double* %23
%101 = load double*, double** %10
%102 = getelementptr inbounds double, double* %101, i64 7
%103 = load double, double* %102
store double %103, double* %24
%104 = load double, double* %17
%105 = load double, double* %21
%106 = load double, double* %25
%107 = fneg double %104
%108 = call double @llvm.fmuladd.f64(double %107, double %105, double %106)
store double %108, double* %25
%109 = load double, double* %18
%110 = load double, double* %21
%111 = load double, double* %29
%112 = fneg double %109
%113 = call double @llvm.fmuladd.f64(double %112, double %110, double %111)
store double %113, double* %29
%114 = load double, double* %17
%115 = load double, double* %22
%116 = load double, double* %26
%117 = fneg double %114
%118 = call double @llvm.fmuladd.f64(double %117, double %115, double %116)
store double %118, double* %26
%119 = load double, double* %18
%120 = load double, double* %22
%121 = load double, double* %30
%122 = fneg double %119
%123 = call double @llvm.fmuladd.f64(double %122, double %120, double %121)
store double %123, double* %30
%124 = load double, double* %17
%125 = load double, double* %23
%126 = load double, double* %27
%127 = fneg double %124
%128 = call double @llvm.fmuladd.f64(double %127, double %125, double %126)
store double %128, double* %27
%129 = load double, double* %18
%130 = load double, double* %23
%131 = load double, double* %31
%132 = fneg double %129
%133 = call double @llvm.fmuladd.f64(double %132, double %130, double %131)
store double %133, double* %31
%134 = load double, double* %17
%135 = load double, double* %24
%136 = load double, double* %28
%137 = fneg double %134
%138 = call double @llvm.fmuladd.f64(double %137, double %135, double %136)
store double %138, double* %28
%139 = load double, double* %18
%140 = load double, double* %24
%141 = load double, double* %32
%142 = fneg double %139
%143 = call double @llvm.fmuladd.f64(double %142, double %140, double %141)
store double %143, double* %32
%144 = load double*, double** %9
%145 = getelementptr inbounds double, double* %144, i64 8
%146 = load double, double* %145
store double %146, double* %17
%147 = load double*, double** %9
%148 = getelementptr inbounds double, double* %147, i64 9
%149 = load double, double* %148
store double %149, double* %18
%150 = load double*, double** %9
%151 = getelementptr inbounds double, double* %150, i64 10
%152 = load double, double* %151
store double %152, double* %19
%153 = load double*, double** %10
%154 = getelementptr inbounds double, double* %153, i64 8
%155 = load double, double* %154
store double %155, double* %21
%156 = load double*, double** %10
%157 = getelementptr inbounds double, double* %156, i64 9
%158 = load double, double* %157
store double %158, double* %22
%159 = load double*, double** %10
%160 = getelementptr inbounds double, double* %159, i64 10
%161 = load double, double* %160
store double %161, double* %23
%162 = load double*, double** %10
%163 = getelementptr inbounds double, double* %162, i64 11
%164 = load double, double* %163
store double %164, double* %24
%165 = load double, double* %17
%166 = load double, double* %21
%167 = load double, double* %25
%168 = fneg double %165
%169 = call double @llvm.fmuladd.f64(double %168, double %166, double %167)
store double %169, double* %25
%170 = load double, double* %18
%171 = load double, double* %21
%172 = load double, double* %29
%173 = fneg double %170
%174 = call double @llvm.fmuladd.f64(double %173, double %171, double %172)
store double %174, double* %29
%175 = load double, double* %19
%176 = load double, double* %21
%177 = load double, double* %33
%178 = fneg double %175
%179 = call double @llvm.fmuladd.f64(double %178, double %176, double %177)
store double %179, double* %33
%180 = load double, double* %17
%181 = load double, double* %22
%182 = load double, double* %26
%183 = fneg double %180
%184 = call double @llvm.fmuladd.f64(double %183, double %181, double %182)
store double %184, double* %26
%185 = load double, double* %18
%186 = load double, double* %22
%187 = load double, double* %30
%188 = fneg double %185
%189 = call double @llvm.fmuladd.f64(double %188, double %186, double %187)
store double %189, double* %30
%190 = load double, double* %19
%191 = load double, double* %22
%192 = load double, double* %34
%193 = fneg double %190
%194 = call double @llvm.fmuladd.f64(double %193, double %191, double %192)
store double %194, double* %34
%195 = load double, double* %17
%196 = load double, double* %23
%197 = load double, double* %27
%198 = fneg double %195
%199 = call double @llvm.fmuladd.f64(double %198, double %196, double %197)
store double %199, double* %27
%200 = load double, double* %18
%201 = load double, double* %23
%202 = load double, double* %31
%203 = fneg double %200
%204 = call double @llvm.fmuladd.f64(double %203, double %201, double %202)
store double %204, double* %31
%205 = load double, double* %19
%206 = load double, double* %23
%207 = load double, double* %35
%208 = fneg double %205
%209 = call double @llvm.fmuladd.f64(double %208, double %206, double %207)
store double %209, double* %35
%210 = load double, double* %17
%211 = load double, double* %24
%212 = load double, double* %28
%213 = fneg double %210
%214 = call double @llvm.fmuladd.f64(double %213, double %211, double %212)
store double %214, double* %28
%215 = load double, double* %18
%216 = load double, double* %24
%217 = load double, double* %32
%218 = fneg double %215
%219 = call double @llvm.fmuladd.f64(double %218, double %216, double %217)
store double %219, double* %32
%220 = load double, double* %19
%221 = load double, double* %24
%222 = load double, double* %36
%223 = fneg double %220
%224 = call double @llvm.fmuladd.f64(double %223, double %221, double %222)
store double %224, double* %36
%225 = load double*, double** %9
%226 = getelementptr inbounds double, double* %225, i64 12
%227 = load double, double* %226
store double %227, double* %17
%228 = load double*, double** %9
%229 = getelementptr inbounds double, double* %228, i64 13
%230 = load double, double* %229
store double %230, double* %18
%231 = load double*, double** %9
%232 = getelementptr inbounds double, double* %231, i64 14
%233 = load double, double* %232
store double %233, double* %19
%234 = load double*, double** %9
%235 = getelementptr inbounds double, double* %234, i64 15
%236 = load double, double* %235
store double %236, double* %20
%237 = load double*, double** %10
%238 = getelementptr inbounds double, double* %237, i64 12
%239 = load double, double* %238
store double %239, double* %21
%240 = load double*, double** %10
%241 = getelementptr inbounds double, double* %240, i64 13
%242 = load double, double* %241
store double %242, double* %22
%243 = load double*, double** %10
%244 = getelementptr inbounds double, double* %243, i64 14
%245 = load double, double* %244
store double %245, double* %23
%246 = load double*, double** %10
%247 = getelementptr inbounds double, double* %246, i64 15
%248 = load double, double* %247
store double %248, double* %24
%249 = load double, double* %17
%250 = load double, double* %21
%251 = load double, double* %25
%252 = fneg double %249
%253 = call double @llvm.fmuladd.f64(double %252, double %250, double %251)
store double %253, double* %25
%254 = load double, double* %18
%255 = load double, double* %21
%256 = load double, double* %29
%257 = fneg double %254
%258 = call double @llvm.fmuladd.f64(double %257, double %255, double %256)
store double %258, double* %29
%259 = load double, double* %19
%260 = load double, double* %21
%261 = load double, double* %33
%262 = fneg double %259
%263 = call double @llvm.fmuladd.f64(double %262, double %260, double %261)
store double %263, double* %33
%264 = load double, double* %20
%265 = load double, double* %21
%266 = load double, double* %37
%267 = fneg double %264
%268 = call double @llvm.fmuladd.f64(double %267, double %265, double %266)
store double %268, double* %37
%269 = load double, double* %17
%270 = load double, double* %22
%271 = load double, double* %26
%272 = fneg double %269
%273 = call double @llvm.fmuladd.f64(double %272, double %270, double %271)
store double %273, double* %26
%274 = load double, double* %18
%275 = load double, double* %22
%276 = load double, double* %30
%277 = fneg double %274
%278 = call double @llvm.fmuladd.f64(double %277, double %275, double %276)
store double %278, double* %30
%279 = load double, double* %19
%280 = load double, double* %22
%281 = load double, double* %34
%282 = fneg double %279
%283 = call double @llvm.fmuladd.f64(double %282, double %280, double %281)
store double %283, double* %34
%284 = load double, double* %20
%285 = load double, double* %22
%286 = load double, double* %38
%287 = fneg double %284
%288 = call double @llvm.fmuladd.f64(double %287, double %285, double %286)
store double %288, double* %38
%289 = load double, double* %17
%290 = load double, double* %23
%291 = load double, double* %27
%292 = fneg double %289
%293 = call double @llvm.fmuladd.f64(double %292, double %290, double %291)
store double %293, double* %27
%294 = load double, double* %18
%295 = load double, double* %23
%296 = load double, double* %31
%297 = fneg double %294
%298 = call double @llvm.fmuladd.f64(double %297, double %295, double %296)
store double %298, double* %31
%299 = load double, double* %19
%300 = load double, double* %23
%301 = load double, double* %35
%302 = fneg double %299
%303 = call double @llvm.fmuladd.f64(double %302, double %300, double %301)
store double %303, double* %35
%304 = load double, double* %20
%305 = load double, double* %23
%306 = load double, double* %39
%307 = fneg double %304
%308 = call double @llvm.fmuladd.f64(double %307, double %305, double %306)
store double %308, double* %39
%309 = load double, double* %17
%310 = load double, double* %24
%311 = load double, double* %28
%312 = fneg double %309
%313 = call double @llvm.fmuladd.f64(double %312, double %310, double %311)
store double %313, double* %28
%314 = load double, double* %18
%315 = load double, double* %24
%316 = load double, double* %32
%317 = fneg double %314
%318 = call double @llvm.fmuladd.f64(double %317, double %315, double %316)
store double %318, double* %32
%319 = load double, double* %19
%320 = load double, double* %24
%321 = load double, double* %36
%322 = fneg double %319
%323 = call double @llvm.fmuladd.f64(double %322, double %320, double %321)
store double %323, double* %36
%324 = load double, double* %20
%325 = load double, double* %24
%326 = load double, double* %40
%327 = fneg double %324
%328 = call double @llvm.fmuladd.f64(double %327, double %325, double %326)
store double %328, double* %40
%329 = load double*, double** %9
%330 = getelementptr inbounds double, double* %329, i64 16
store double* %330, double** %9
%331 = load double*, double** %10
%332 = getelementptr inbounds double, double* %331, i64 16
store double* %332, double** %10
store i32 4, i32* %16
br label %333
333: ; preds = %759, %7
%334 = load i32, i32* %16
%335 = load i32, i32* %8
%336 = sub nsw i32 %335, 3
%337 = icmp slt i32 %334, %336
br i1 %337, label %338, label %762
338: ; preds = %333
%339 = load double*, double** %9
%340 = getelementptr inbounds double, double* %339, i64 0
%341 = load double, double* %340
store double %341, double* %17
%342 = load double*, double** %9
%343 = getelementptr inbounds double, double* %342, i64 1
%344 = load double, double* %343
store double %344, double* %18
%345 = load double*, double** %9
%346 = getelementptr inbounds double, double* %345, i64 2
%347 = load double, double* %346
store double %347, double* %19
%348 = load double*, double** %9
%349 = getelementptr inbounds double, double* %348, i64 3
%350 = load double, double* %349
store double %350, double* %20
%351 = load double*, double** %10
%352 = getelementptr inbounds double, double* %351, i64 0
%353 = load double, double* %352
store double %353, double* %21
%354 = load double*, double** %10
%355 = getelementptr inbounds double, double* %354, i64 1
%356 = load double, double* %355
store double %356, double* %22
%357 = load double*, double** %10
%358 = getelementptr inbounds double, double* %357, i64 2
%359 = load double, double* %358
store double %359, double* %23
%360 = load double*, double** %10
%361 = getelementptr inbounds double, double* %360, i64 3
%362 = load double, double* %361
store double %362, double* %24
%363 = load double, double* %17
%364 = load double, double* %21
%365 = load double, double* %25
%366 = fneg double %363
%367 = call double @llvm.fmuladd.f64(double %366, double %364, double %365)
store double %367, double* %25
%368 = load double, double* %18
%369 = load double, double* %21
%370 = load double, double* %29
%371 = fneg double %368
%372 = call double @llvm.fmuladd.f64(double %371, double %369, double %370)
store double %372, double* %29
%373 = load double, double* %19
%374 = load double, double* %21
%375 = load double, double* %33
%376 = fneg double %373
%377 = call double @llvm.fmuladd.f64(double %376, double %374, double %375)
store double %377, double* %33
%378 = load double, double* %20
%379 = load double, double* %21
%380 = load double, double* %37
%381 = fneg double %378
%382 = call double @llvm.fmuladd.f64(double %381, double %379, double %380)
store double %382, double* %37
%383 = load double, double* %17
%384 = load double, double* %22
%385 = load double, double* %26
%386 = fneg double %383
%387 = call double @llvm.fmuladd.f64(double %386, double %384, double %385)
store double %387, double* %26
%388 = load double, double* %18
%389 = load double, double* %22
%390 = load double, double* %30
%391 = fneg double %388
%392 = call double @llvm.fmuladd.f64(double %391, double %389, double %390)
store double %392, double* %30
%393 = load double, double* %19
%394 = load double, double* %22
%395 = load double, double* %34
%396 = fneg double %393
%397 = call double @llvm.fmuladd.f64(double %396, double %394, double %395)
store double %397, double* %34
%398 = load double, double* %20
%399 = load double, double* %22
%400 = load double, double* %38
%401 = fneg double %398
%402 = call double @llvm.fmuladd.f64(double %401, double %399, double %400)
store double %402, double* %38
%403 = load double, double* %17
%404 = load double, double* %23
%405 = load double, double* %27
%406 = fneg double %403
%407 = call double @llvm.fmuladd.f64(double %406, double %404, double %405)
store double %407, double* %27
%408 = load double, double* %18
%409 = load double, double* %23
%410 = load double, double* %31
%411 = fneg double %408
%412 = call double @llvm.fmuladd.f64(double %411, double %409, double %410)
store double %412, double* %31
%413 = load double, double* %19
%414 = load double, double* %23
%415 = load double, double* %35
%416 = fneg double %413
%417 = call double @llvm.fmuladd.f64(double %416, double %414, double %415)
store double %417, double* %35
%418 = load double, double* %20
%419 = load double, double* %23
%420 = load double, double* %39
%421 = fneg double %418
%422 = call double @llvm.fmuladd.f64(double %421, double %419, double %420)
store double %422, double* %39
%423 = load double, double* %17
%424 = load double, double* %24
%425 = load double, double* %28
%426 = fneg double %423
%427 = call double @llvm.fmuladd.f64(double %426, double %424, double %425)
store double %427, double* %28
%428 = load double, double* %18
%429 = load double, double* %24
%430 = load double, double* %32
%431 = fneg double %428
%432 = call double @llvm.fmuladd.f64(double %431, double %429, double %430)
store double %432, double* %32
%433 = load double, double* %19
%434 = load double, double* %24
%435 = load double, double* %36
%436 = fneg double %433
%437 = call double @llvm.fmuladd.f64(double %436, double %434, double %435)
store double %437, double* %36
%438 = load double, double* %20
%439 = load double, double* %24
%440 = load double, double* %40
%441 = fneg double %438
%442 = call double @llvm.fmuladd.f64(double %441, double %439, double %440)
store double %442, double* %40
%443 = load double*, double** %9
%444 = getelementptr inbounds double, double* %443, i64 4
%445 = load double, double* %444
store double %445, double* %17
%446 = load double*, double** %9
%447 = getelementptr inbounds double, double* %446, i64 5
%448 = load double, double* %447
store double %448, double* %18
%449 = load double*, double** %9
%450 = getelementptr inbounds double, double* %449, i64 6
%451 = load double, double* %450
store double %451, double* %19
%452 = load double*, double** %9
%453 = getelementptr inbounds double, double* %452, i64 7
%454 = load double, double* %453
store double %454, double* %20
%455 = load double*, double** %10
%456 = getelementptr inbounds double, double* %455, i64 4
%457 = load double, double* %456
store double %457, double* %21
%458 = load double*, double** %10
%459 = getelementptr inbounds double, double* %458, i64 5
%460 = load double, double* %459
store double %460, double* %22
%461 = load double*, double** %10
%462 = getelementptr inbounds double, double* %461, i64 6
%463 = load double, double* %462
store double %463, double* %23
%464 = load double*, double** %10
%465 = getelementptr inbounds double, double* %464, i64 7
%466 = load double, double* %465
store double %466, double* %24
%467 = load double, double* %17
%468 = load double, double* %21
%469 = load double, double* %25
%470 = fneg double %467
%471 = call double @llvm.fmuladd.f64(double %470, double %468, double %469)
store double %471, double* %25
%472 = load double, double* %18
%473 = load double, double* %21
%474 = load double, double* %29
%475 = fneg double %472
%476 = call double @llvm.fmuladd.f64(double %475, double %473, double %474)
store double %476, double* %29
%477 = load double, double* %19
%478 = load double, double* %21
%479 = load double, double* %33
%480 = fneg double %477
%481 = call double @llvm.fmuladd.f64(double %480, double %478, double %479)
store double %481, double* %33
%482 = load double, double* %20
%483 = load double, double* %21
%484 = load double, double* %37
%485 = fneg double %482
%486 = call double @llvm.fmuladd.f64(double %485, double %483, double %484)
store double %486, double* %37
%487 = load double, double* %17
%488 = load double, double* %22
%489 = load double, double* %26
%490 = fneg double %487
%491 = call double @llvm.fmuladd.f64(double %490, double %488, double %489)
store double %491, double* %26
%492 = load double, double* %18
%493 = load double, double* %22
%494 = load double, double* %30
%495 = fneg double %492
%496 = call double @llvm.fmuladd.f64(double %495, double %493, double %494)
store double %496, double* %30
%497 = load double, double* %19
%498 = load double, double* %22
%499 = load double, double* %34
%500 = fneg double %497
%501 = call double @llvm.fmuladd.f64(double %500, double %498, double %499)
store double %501, double* %34
%502 = load double, double* %20
%503 = load double, double* %22
%504 = load double, double* %38
%505 = fneg double %502
%506 = call double @llvm.fmuladd.f64(double %505, double %503, double %504)
store double %506, double* %38
%507 = load double, double* %17
%508 = load double, double* %23
%509 = load double, double* %27
%510 = fneg double %507
%511 = call double @llvm.fmuladd.f64(double %510, double %508, double %509)
store double %511, double* %27
%512 = load double, double* %18
%513 = load double, double* %23
%514 = load double, double* %31
%515 = fneg double %512
%516 = call double @llvm.fmuladd.f64(double %515, double %513, double %514)
store double %516, double* %31
%517 = load double, double* %19
%518 = load double, double* %23
%519 = load double, double* %35
%520 = fneg double %517
%521 = call double @llvm.fmuladd.f64(double %520, double %518, double %519)
store double %521, double* %35
%522 = load double, double* %20
%523 = load double, double* %23
%524 = load double, double* %39
%525 = fneg double %522
%526 = call double @llvm.fmuladd.f64(double %525, double %523, double %524)
store double %526, double* %39
%527 = load double, double* %17
%528 = load double, double* %24
%529 = load double, double* %28
%530 = fneg double %527
%531 = call double @llvm.fmuladd.f64(double %530, double %528, double %529)
store double %531, double* %28
%532 = load double, double* %18
%533 = load double, double* %24
%534 = load double, double* %32
%535 = fneg double %532
%536 = call double @llvm.fmuladd.f64(double %535, double %533, double %534)
store double %536, double* %32
%537 = load double, double* %19
%538 = load double, double* %24
%539 = load double, double* %36
%540 = fneg double %537
%541 = call double @llvm.fmuladd.f64(double %540, double %538, double %539)
store double %541, double* %36
%542 = load double, double* %20
%543 = load double, double* %24
%544 = load double, double* %40
%545 = fneg double %542
%546 = call double @llvm.fmuladd.f64(double %545, double %543, double %544)
store double %546, double* %40
%547 = load double*, double** %9
%548 = getelementptr inbounds double, double* %547, i64 8
%549 = load double, double* %548
store double %549, double* %17
%550 = load double*, double** %9
%551 = getelementptr inbounds double, double* %550, i64 9
%552 = load double, double* %551
store double %552, double* %18
%553 = load double*, double** %9
%554 = getelementptr inbounds double, double* %553, i64 10
%555 = load double, double* %554
store double %555, double* %19
%556 = load double*, double** %9
%557 = getelementptr inbounds double, double* %556, i64 11
%558 = load double, double* %557
store double %558, double* %20
%559 = load double*, double** %10
%560 = getelementptr inbounds double, double* %559, i64 8
%561 = load double, double* %560
store double %561, double* %21
%562 = load double*, double** %10
%563 = getelementptr inbounds double, double* %562, i64 9
%564 = load double, double* %563
store double %564, double* %22
%565 = load double*, double** %10
%566 = getelementptr inbounds double, double* %565, i64 10
%567 = load double, double* %566
store double %567, double* %23
%568 = load double*, double** %10
%569 = getelementptr inbounds double, double* %568, i64 11
%570 = load double, double* %569
store double %570, double* %24
%571 = load double, double* %17
%572 = load double, double* %21
%573 = load double, double* %25
%574 = fneg double %571
%575 = call double @llvm.fmuladd.f64(double %574, double %572, double %573)
store double %575, double* %25
%576 = load double, double* %18
%577 = load double, double* %21
%578 = load double, double* %29
%579 = fneg double %576
%580 = call double @llvm.fmuladd.f64(double %579, double %577, double %578)
store double %580, double* %29
%581 = load double, double* %19
%582 = load double, double* %21
%583 = load double, double* %33
%584 = fneg double %581
%585 = call double @llvm.fmuladd.f64(double %584, double %582, double %583)
store double %585, double* %33
%586 = load double, double* %20
%587 = load double, double* %21
%588 = load double, double* %37
%589 = fneg double %586
%590 = call double @llvm.fmuladd.f64(double %589, double %587, double %588)
store double %590, double* %37
%591 = load double, double* %17
%592 = load double, double* %22
%593 = load double, double* %26
%594 = fneg double %591
%595 = call double @llvm.fmuladd.f64(double %594, double %592, double %593)
store double %595, double* %26
%596 = load double, double* %18
%597 = load double, double* %22
%598 = load double, double* %30
%599 = fneg double %596
%600 = call double @llvm.fmuladd.f64(double %599, double %597, double %598)
store double %600, double* %30
%601 = load double, double* %19
%602 = load double, double* %22
%603 = load double, double* %34
%604 = fneg double %601
%605 = call double @llvm.fmuladd.f64(double %604, double %602, double %603)
store double %605, double* %34
%606 = load double, double* %20
%607 = load double, double* %22
%608 = load double, double* %38
%609 = fneg double %606
%610 = call double @llvm.fmuladd.f64(double %609, double %607, double %608)
store double %610, double* %38
%611 = load double, double* %17
%612 = load double, double* %23
%613 = load double, double* %27
%614 = fneg double %611
%615 = call double @llvm.fmuladd.f64(double %614, double %612, double %613)
store double %615, double* %27
%616 = load double, double* %18
%617 = load double, double* %23
%618 = load double, double* %31
%619 = fneg double %616
%620 = call double @llvm.fmuladd.f64(double %619, double %617, double %618)
store double %620, double* %31
%621 = load double, double* %19
%622 = load double, double* %23
%623 = load double, double* %35
%624 = fneg double %621
%625 = call double @llvm.fmuladd.f64(double %624, double %622, double %623)
store double %625, double* %35
%626 = load double, double* %20
%627 = load double, double* %23
%628 = load double, double* %39
%629 = fneg double %626
%630 = call double @llvm.fmuladd.f64(double %629, double %627, double %628)
store double %630, double* %39
%631 = load double, double* %17
%632 = load double, double* %24
%633 = load double, double* %28
%634 = fneg double %631
%635 = call double @llvm.fmuladd.f64(double %634, double %632, double %633)
store double %635, double* %28
%636 = load double, double* %18
%637 = load double, double* %24
%638 = load double, double* %32
%639 = fneg double %636
%640 = call double @llvm.fmuladd.f64(double %639, double %637, double %638)
store double %640, double* %32
%641 = load double, double* %19
%642 = load double, double* %24
%643 = load double, double* %36
%644 = fneg double %641
%645 = call double @llvm.fmuladd.f64(double %644, double %642, double %643)
store double %645, double* %36
%646 = load double, double* %20
%647 = load double, double* %24
%648 = load double, double* %40
%649 = fneg double %646
%650 = call double @llvm.fmuladd.f64(double %649, double %647, double %648)
store double %650, double* %40
%651 = load double*, double** %9
%652 = getelementptr inbounds double, double* %651, i64 12
%653 = load double, double* %652
store double %653, double* %17
%654 = load double*, double** %9
%655 = getelementptr inbounds double, double* %654, i64 13
%656 = load double, double* %655
store double %656, double* %18
%657 = load double*, double** %9
%658 = getelementptr inbounds double, double* %657, i64 14
%659 = load double, double* %658
store double %659, double* %19
%660 = load double*, double** %9
%661 = getelementptr inbounds double, double* %660, i64 15
%662 = load double, double* %661
store double %662, double* %20
%663 = load double*, double** %10
%664 = getelementptr inbounds double, double* %663, i64 12
%665 = load double, double* %664
store double %665, double* %21
%666 = load double*, double** %10
%667 = getelementptr inbounds double, double* %666, i64 13
%668 = load double, double* %667
store double %668, double* %22
%669 = load double*, double** %10
%670 = getelementptr inbounds double, double* %669, i64 14
%671 = load double, double* %670
store double %671, double* %23
%672 = load double*, double** %10
%673 = getelementptr inbounds double, double* %672, i64 15
%674 = load double, double* %673
store double %674, double* %24
%675 = load double, double* %17
%676 = load double, double* %21
%677 = load double, double* %25
%678 = fneg double %675
%679 = call double @llvm.fmuladd.f64(double %678, double %676, double %677)
store double %679, double* %25
%680 = load double, double* %18
%681 = load double, double* %21
%682 = load double, double* %29
%683 = fneg double %680
%684 = call double @llvm.fmuladd.f64(double %683, double %681, double %682)
store double %684, double* %29
%685 = load double, double* %19
%686 = load double, double* %21
%687 = load double, double* %33
%688 = fneg double %685
%689 = call double @llvm.fmuladd.f64(double %688, double %686, double %687)
store double %689, double* %33
%690 = load double, double* %20
%691 = load double, double* %21
%692 = load double, double* %37
%693 = fneg double %690
%694 = call double @llvm.fmuladd.f64(double %693, double %691, double %692)
store double %694, double* %37
%695 = load double, double* %17
%696 = load double, double* %22
%697 = load double, double* %26
%698 = fneg double %695
%699 = call double @llvm.fmuladd.f64(double %698, double %696, double %697)
store double %699, double* %26
%700 = load double, double* %18
%701 = load double, double* %22
%702 = load double, double* %30
%703 = fneg double %700
%704 = call double @llvm.fmuladd.f64(double %703, double %701, double %702)
store double %704, double* %30
%705 = load double, double* %19
%706 = load double, double* %22
%707 = load double, double* %34
%708 = fneg double %705
%709 = call double @llvm.fmuladd.f64(double %708, double %706, double %707)
store double %709, double* %34
%710 = load double, double* %20
%711 = load double, double* %22
%712 = load double, double* %38
%713 = fneg double %710
%714 = call double @llvm.fmuladd.f64(double %713, double %711, double %712)
store double %714, double* %38
%715 = load double, double* %17
%716 = load double, double* %23
%717 = load double, double* %27
%718 = fneg double %715
%719 = call double @llvm.fmuladd.f64(double %718, double %716, double %717)
store double %719, double* %27
%720 = load double, double* %18
%721 = load double, double* %23
%722 = load double, double* %31
%723 = fneg double %720
%724 = call double @llvm.fmuladd.f64(double %723, double %721, double %722)
store double %724, double* %31
%725 = load double, double* %19
%726 = load double, double* %23
%727 = load double, double* %35
%728 = fneg double %725
%729 = call double @llvm.fmuladd.f64(double %728, double %726, double %727)
store double %729, double* %35
%730 = load double, double* %20
%731 = load double, double* %23
%732 = load double, double* %39
%733 = fneg double %730
%734 = call double @llvm.fmuladd.f64(double %733, double %731, double %732)
store double %734, double* %39
%735 = load double, double* %17
%736 = load double, double* %24
%737 = load double, double* %28
%738 = fneg double %735
%739 = call double @llvm.fmuladd.f64(double %738, double %736, double %737)
store double %739, double* %28
%740 = load double, double* %18
%741 = load double, double* %24
%742 = load double, double* %32
%743 = fneg double %740
%744 = call double @llvm.fmuladd.f64(double %743, double %741, double %742)
store double %744, double* %32
%745 = load double, double* %19
%746 = load double, double* %24
%747 = load double, double* %36
%748 = fneg double %745
%749 = call double @llvm.fmuladd.f64(double %748, double %746, double %747)
store double %749, double* %36
%750 = load double, double* %20
%751 = load double, double* %24
%752 = load double, double* %40
%753 = fneg double %750
%754 = call double @llvm.fmuladd.f64(double %753, double %751, double %752)
store double %754, double* %40
%755 = load double*, double** %9
%756 = getelementptr inbounds double, double* %755, i64 16
store double* %756, double** %9
%757 = load double*, double** %10
%758 = getelementptr inbounds double, double* %757, i64 16
store double* %758, double** %10
br label %759
759: ; preds = %338
%760 = load i32, i32* %16
%761 = add nsw i32 %760, 4
store i32 %761, i32* %16
br label %333
762: ; preds = %333
%763 = load i32, i32* %13
%764 = icmp ne i32 %763, 0
br i1 %764, label %765, label %778
765: ; preds = %762
%766 = load double*, double** %14
%767 = getelementptr inbounds double, double* %766, i64 0
%768 = load double, double* %767
store double %768, double* %41
%769 = load double*, double** %14
%770 = getelementptr inbounds double, double* %769, i64 1
%771 = load double, double* %770
store double %771, double* %45
%772 = load double*, double** %14
%773 = getelementptr inbounds double, double* %772, i64 2
%774 = load double, double* %773
store double %774, double* %48
%775 = load double*, double** %14
%776 = getelementptr inbounds double, double* %775, i64 3
%777 = load double, double* %776
store double %777, double* %50
br label %795
778: ; preds = %762
%779 = load double*, double** %12
%780 = getelementptr inbounds double, double* %779, i64 0
%781 = load double, double* %780
%782 = fdiv double 1.000000e+00, %781
store double %782, double* %41
%783 = load double*, double** %12
%784 = getelementptr inbounds double, double* %783, i64 5
%785 = load double, double* %784
%786 = fdiv double 1.000000e+00, %785
store double %786, double* %45
%787 = load double*, double** %12
%788 = getelementptr inbounds double, double* %787, i64 10
%789 = load double, double* %788
%790 = fdiv double 1.000000e+00, %789
store double %790, double* %48
%791 = load double*, double** %12
%792 = getelementptr inbounds double, double* %791, i64 15
%793 = load double, double* %792
%794 = fdiv double 1.000000e+00, %793
store double %794, double* %50
br label %795
795: ; preds = %778, %765
%796 = load double, double* %41
%797 = load double, double* %25
%798 = fmul double %797, %796
store double %798, double* %25
%799 = load double, double* %41
%800 = load double, double* %29
%801 = fmul double %800, %799
store double %801, double* %29
%802 = load double, double* %41
%803 = load double, double* %33
%804 = fmul double %803, %802
store double %804, double* %33
%805 = load double, double* %41
%806 = load double, double* %37
%807 = fmul double %806, %805
store double %807, double* %37
%808 = load double, double* %25
%809 = load double*, double** %11
%810 = getelementptr inbounds double, double* %809, i64 0
store double %808, double* %810
%811 = load double, double* %29
%812 = load double*, double** %11
%813 = getelementptr inbounds double, double* %812, i64 1
store double %811, double* %813
%814 = load double, double* %33
%815 = load double*, double** %11
%816 = getelementptr inbounds double, double* %815, i64 2
store double %814, double* %816
%817 = load double, double* %37
%818 = load double*, double** %11
%819 = getelementptr inbounds double, double* %818, i64 3
store double %817, double* %819
%820 = load double*, double** %12
%821 = getelementptr inbounds double, double* %820, i64 1
%822 = load double, double* %821
store double %822, double* %42
%823 = load double, double* %25
%824 = load double, double* %42
%825 = load double, double* %26
%826 = fneg double %823
%827 = call double @llvm.fmuladd.f64(double %826, double %824, double %825)
store double %827, double* %26
%828 = load double, double* %29
%829 = load double, double* %42
%830 = load double, double* %30
%831 = fneg double %828
%832 = call double @llvm.fmuladd.f64(double %831, double %829, double %830)
store double %832, double* %30
%833 = load double, double* %33
%834 = load double, double* %42
%835 = load double, double* %34
%836 = fneg double %833
%837 = call double @llvm.fmuladd.f64(double %836, double %834, double %835)
store double %837, double* %34
%838 = load double, double* %37
%839 = load double, double* %42
%840 = load double, double* %38
%841 = fneg double %838
%842 = call double @llvm.fmuladd.f64(double %841, double %839, double %840)
store double %842, double* %38
%843 = load double, double* %45
%844 = load double, double* %26
%845 = fmul double %844, %843
store double %845, double* %26
%846 = load double, double* %45
%847 = load double, double* %30
%848 = fmul double %847, %846
store double %848, double* %30
%849 = load double, double* %45
%850 = load double, double* %34
%851 = fmul double %850, %849
store double %851, double* %34
%852 = load double, double* %45
%853 = load double, double* %38
%854 = fmul double %853, %852
store double %854, double* %38
%855 = load double, double* %26
%856 = load double*, double** %11
%857 = getelementptr inbounds double, double* %856, i64 4
store double %855, double* %857
%858 = load double, double* %30
%859 = load double*, double** %11
%860 = getelementptr inbounds double, double* %859, i64 5
store double %858, double* %860
%861 = load double, double* %34
%862 = load double*, double** %11
%863 = getelementptr inbounds double, double* %862, i64 6
store double %861, double* %863
%864 = load double, double* %38
%865 = load double*, double** %11
%866 = getelementptr inbounds double, double* %865, i64 7
store double %864, double* %866
%867 = load double*, double** %12
%868 = getelementptr inbounds double, double* %867, i64 2
%869 = load double, double* %868
store double %869, double* %43
%870 = load double*, double** %12
%871 = getelementptr inbounds double, double* %870, i64 6
%872 = load double, double* %871
store double %872, double* %46
%873 = load double, double* %25
%874 = load double, double* %43
%875 = load double, double* %27
%876 = fneg double %873
%877 = call double @llvm.fmuladd.f64(double %876, double %874, double %875)
store double %877, double* %27
%878 = load double, double* %29
%879 = load double, double* %43
%880 = load double, double* %31
%881 = fneg double %878
%882 = call double @llvm.fmuladd.f64(double %881, double %879, double %880)
store double %882, double* %31
%883 = load double, double* %33
%884 = load double, double* %43
%885 = load double, double* %35
%886 = fneg double %883
%887 = call double @llvm.fmuladd.f64(double %886, double %884, double %885)
store double %887, double* %35
%888 = load double, double* %37
%889 = load double, double* %43
%890 = load double, double* %39
%891 = fneg double %888
%892 = call double @llvm.fmuladd.f64(double %891, double %889, double %890)
store double %892, double* %39
%893 = load double, double* %26
%894 = load double, double* %46
%895 = load double, double* %27
%896 = fneg double %893
%897 = call double @llvm.fmuladd.f64(double %896, double %894, double %895)
store double %897, double* %27
%898 = load double, double* %30
%899 = load double, double* %46
%900 = load double, double* %31
%901 = fneg double %898
%902 = call double @llvm.fmuladd.f64(double %901, double %899, double %900)
store double %902, double* %31
%903 = load double, double* %34
%904 = load double, double* %46
%905 = load double, double* %35
%906 = fneg double %903
%907 = call double @llvm.fmuladd.f64(double %906, double %904, double %905)
store double %907, double* %35
%908 = load double, double* %38
%909 = load double, double* %46
%910 = load double, double* %39
%911 = fneg double %908
%912 = call double @llvm.fmuladd.f64(double %911, double %909, double %910)
store double %912, double* %39
%913 = load double, double* %48
%914 = load double, double* %27
%915 = fmul double %914, %913
store double %915, double* %27
%916 = load double, double* %48
%917 = load double, double* %31
%918 = fmul double %917, %916
store double %918, double* %31
%919 = load double, double* %48
%920 = load double, double* %35
%921 = fmul double %920, %919
store double %921, double* %35
%922 = load double, double* %48
%923 = load double, double* %39
%924 = fmul double %923, %922
store double %924, double* %39
%925 = load double, double* %27
%926 = load double*, double** %11
%927 = getelementptr inbounds double, double* %926, i64 8
store double %925, double* %927
%928 = load double, double* %31
%929 = load double*, double** %11
%930 = getelementptr inbounds double, double* %929, i64 9
store double %928, double* %930
%931 = load double, double* %35
%932 = load double*, double** %11
%933 = getelementptr inbounds double, double* %932, i64 10
store double %931, double* %933
%934 = load double, double* %39
%935 = load double*, double** %11
%936 = getelementptr inbounds double, double* %935, i64 11
store double %934, double* %936
%937 = load double*, double** %12
%938 = getelementptr inbounds double, double* %937, i64 3
%939 = load double, double* %938
store double %939, double* %44
%940 = load double*, double** %12
%941 = getelementptr inbounds double, double* %940, i64 7
%942 = load double, double* %941
store double %942, double* %47
%943 = load double*, double** %12
%944 = getelementptr inbounds double, double* %943, i64 11
%945 = load double, double* %944
store double %945, double* %49
%946 = load double, double* %25
%947 = load double, double* %44
%948 = load double, double* %28
%949 = fneg double %946
%950 = call double @llvm.fmuladd.f64(double %949, double %947, double %948)
store double %950, double* %28
%951 = load double, double* %29
%952 = load double, double* %44
%953 = load double, double* %32
%954 = fneg double %951
%955 = call double @llvm.fmuladd.f64(double %954, double %952, double %953)
store double %955, double* %32
%956 = load double, double* %33
%957 = load double, double* %44
%958 = load double, double* %36
%959 = fneg double %956
%960 = call double @llvm.fmuladd.f64(double %959, double %957, double %958)
store double %960, double* %36
%961 = load double, double* %37
%962 = load double, double* %44
%963 = load double, double* %40
%964 = fneg double %961
%965 = call double @llvm.fmuladd.f64(double %964, double %962, double %963)
store double %965, double* %40
%966 = load double, double* %26
%967 = load double, double* %47
%968 = load double, double* %28
%969 = fneg double %966
%970 = call double @llvm.fmuladd.f64(double %969, double %967, double %968)
store double %970, double* %28
%971 = load double, double* %30
%972 = load double, double* %47
%973 = load double, double* %32
%974 = fneg double %971
%975 = call double @llvm.fmuladd.f64(double %974, double %972, double %973)
store double %975, double* %32
%976 = load double, double* %34
%977 = load double, double* %47
%978 = load double, double* %36
%979 = fneg double %976
%980 = call double @llvm.fmuladd.f64(double %979, double %977, double %978)
store double %980, double* %36
%981 = load double, double* %38
%982 = load double, double* %47
%983 = load double, double* %40
%984 = fneg double %981
%985 = call double @llvm.fmuladd.f64(double %984, double %982, double %983)
store double %985, double* %40
%986 = load double, double* %27
%987 = load double, double* %49
%988 = load double, double* %28
%989 = fneg double %986
%990 = call double @llvm.fmuladd.f64(double %989, double %987, double %988)
store double %990, double* %28
%991 = load double, double* %31
%992 = load double, double* %49
%993 = load double, double* %32
%994 = fneg double %991
%995 = call double @llvm.fmuladd.f64(double %994, double %992, double %993)
store double %995, double* %32
%996 = load double, double* %35
%997 = load double, double* %49
%998 = load double, double* %36
%999 = fneg double %996
%1000 = call double @llvm.fmuladd.f64(double %999, double %997, double %998)
store double %1000, double* %36
%1001 = load double, double* %39
%1002 = load double, double* %49
%1003 = load double, double* %40
%1004 = fneg double %1001
%1005 = call double @llvm.fmuladd.f64(double %1004, double %1002, double %1003)
store double %1005, double* %40
%1006 = load double, double* %50
%1007 = load double, double* %28
%1008 = fmul double %1007, %1006
store double %1008, double* %28
%1009 = load double, double* %50
%1010 = load double, double* %32
%1011 = fmul double %1010, %1009
store double %1011, double* %32
%1012 = load double, double* %50
%1013 = load double, double* %36
%1014 = fmul double %1013, %1012
store double %1014, double* %36
%1015 = load double, double* %50
%1016 = load double, double* %40
%1017 = fmul double %1016, %1015
store double %1017, double* %40
%1018 = load double, double* %28
%1019 = load double*, double** %11
%1020 = getelementptr inbounds double, double* %1019, i64 12
store double %1018, double* %1020
%1021 = load double, double* %32
%1022 = load double*, double** %11
%1023 = getelementptr inbounds double, double* %1022, i64 13
store double %1021, double* %1023
%1024 = load double, double* %36
%1025 = load double*, double** %11
%1026 = getelementptr inbounds double, double* %1025, i64 14
store double %1024, double* %1026
%1027 = load double, double* %40
%1028 = load double*, double** %11
%1029 = getelementptr inbounds double, double* %1028, i64 15
store double %1027, double* %1029
ret void
}

LLVM IR (-O2):
define void @kernel_dtrtri_4x4_lib4(i32 %0, double* nocapture %1, double* nocapture %2, double* nocapture writeonly %3, double* nocapture %4, i32 %5, double* nocapture %6) {
%8 = load double, double* %1
%9 = load double, double* %2
%10 = getelementptr inbounds double, double* %2, i64 1
%11 = load double, double* %10
%12 = getelementptr inbounds double, double* %2, i64 2
%13 = load double, double* %12
%14 = getelementptr inbounds double, double* %2, i64 3
%15 = load double, double* %14
%16 = fneg double %8
%17 = tail call double @llvm.fmuladd.f64(double %16, double %9, double 0.000000e+00)
%18 = tail call double @llvm.fmuladd.f64(double %16, double %11, double 0.000000e+00)
%19 = tail call double @llvm.fmuladd.f64(double %16, double %13, double 0.000000e+00)
%20 = tail call double @llvm.fmuladd.f64(double %16, double %15, double 0.000000e+00)
%21 = getelementptr inbounds double, double* %1, i64 4
%22 = bitcast double* %21 to <2 x double>*
%23 = load <2 x double>, <2 x double>* %22
%24 = getelementptr inbounds double, double* %2, i64 4
%25 = load double, double* %24
%26 = getelementptr inbounds double, double* %2, i64 5
%27 = load double, double* %26
%28 = getelementptr inbounds double, double* %2, i64 6
%29 = load double, double* %28
%30 = getelementptr inbounds double, double* %2, i64 7
%31 = load double, double* %30
%32 = fneg <2 x double> %23
%33 = insertelement <2 x double> poison, double %25, i64 0
%34 = shufflevector <2 x double> %33, <2 x double> poison, <2 x i32> zeroinitializer
%35 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %17, i64 0
%36 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %32, <2 x double> %34, <2 x double> %35)
%37 = insertelement <2 x double> poison, double %27, i64 0
%38 = shufflevector <2 x double> %37, <2 x double> poison, <2 x i32> zeroinitializer
%39 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %18, i64 0
%40 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %32, <2 x double> %38, <2 x double> %39)
%41 = insertelement <2 x double> poison, double %29, i64 0
%42 = shufflevector <2 x double> %41, <2 x double> poison, <2 x i32> zeroinitializer
%43 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %19, i64 0
%44 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %32, <2 x double> %42, <2 x double> %43)
%45 = insertelement <2 x double> poison, double %31, i64 0
%46 = shufflevector <2 x double> %45, <2 x double> poison, <2 x i32> zeroinitializer
%47 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %20, i64 0
%48 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %32, <2 x double> %46, <2 x double> %47)
%49 = getelementptr inbounds double, double* %1, i64 8
%50 = bitcast double* %49 to <2 x double>*
%51 = load <2 x double>, <2 x double>* %50
%52 = getelementptr inbounds double, double* %1, i64 10
%53 = load double, double* %52
%54 = getelementptr inbounds double, double* %2, i64 8
%55 = load double, double* %54
%56 = getelementptr inbounds double, double* %2, i64 9
%57 = load double, double* %56
%58 = getelementptr inbounds double, double* %2, i64 10
%59 = load double, double* %58
%60 = getelementptr inbounds double, double* %2, i64 11
%61 = load double, double* %60
%62 = fneg <2 x double> %51
%63 = insertelement <2 x double> poison, double %55, i64 0
%64 = shufflevector <2 x double> %63, <2 x double> poison, <2 x i32> zeroinitializer
%65 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %62, <2 x double> %64, <2 x double> %36)
%66 = fneg double %53
%67 = tail call double @llvm.fmuladd.f64(double %66, double %55, double 0.000000e+00)
%68 = insertelement <2 x double> poison, double %57, i64 0
%69 = shufflevector <2 x double> %68, <2 x double> poison, <2 x i32> zeroinitializer
%70 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %62, <2 x double> %69, <2 x double> %40)
%71 = tail call double @llvm.fmuladd.f64(double %66, double %57, double 0.000000e+00)
%72 = insertelement <2 x double> poison, double %59, i64 0
%73 = shufflevector <2 x double> %72, <2 x double> poison, <2 x i32> zeroinitializer
%74 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %62, <2 x double> %73, <2 x double> %44)
%75 = tail call double @llvm.fmuladd.f64(double %66, double %59, double 0.000000e+00)
%76 = insertelement <2 x double> poison, double %61, i64 0
%77 = shufflevector <2 x double> %76, <2 x double> poison, <2 x i32> zeroinitializer
%78 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %62, <2 x double> %77, <2 x double> %48)
%79 = tail call double @llvm.fmuladd.f64(double %66, double %61, double 0.000000e+00)
%80 = getelementptr inbounds double, double* %1, i64 12
%81 = bitcast double* %80 to <2 x double>*
%82 = load <2 x double>, <2 x double>* %81
%83 = getelementptr inbounds double, double* %1, i64 14
%84 = bitcast double* %83 to <2 x double>*
%85 = load <2 x double>, <2 x double>* %84
%86 = getelementptr inbounds double, double* %2, i64 12
%87 = load double, double* %86
%88 = getelementptr inbounds double, double* %2, i64 13
%89 = load double, double* %88
%90 = getelementptr inbounds double, double* %2, i64 14
%91 = load double, double* %90
%92 = getelementptr inbounds double, double* %2, i64 15
%93 = load double, double* %92
%94 = fneg <2 x double> %82
%95 = insertelement <2 x double> poison, double %87, i64 0
%96 = shufflevector <2 x double> %95, <2 x double> poison, <2 x i32> zeroinitializer
%97 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %94, <2 x double> %96, <2 x double> %65)
%98 = fneg <2 x double> %85
%99 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %67, i64 0
%100 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %98, <2 x double> %96, <2 x double> %99)
%101 = insertelement <2 x double> poison, double %89, i64 0
%102 = shufflevector <2 x double> %101, <2 x double> poison, <2 x i32> zeroinitializer
%103 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %94, <2 x double> %102, <2 x double> %70)
%104 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %71, i64 0
%105 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %98, <2 x double> %102, <2 x double> %104)
%106 = insertelement <2 x double> poison, double %91, i64 0
%107 = shufflevector <2 x double> %106, <2 x double> poison, <2 x i32> zeroinitializer
%108 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %94, <2 x double> %107, <2 x double> %74)
%109 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %75, i64 0
%110 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %98, <2 x double> %107, <2 x double> %109)
%111 = insertelement <2 x double> poison, double %93, i64 0
%112 = shufflevector <2 x double> %111, <2 x double> poison, <2 x i32> zeroinitializer
%113 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %94, <2 x double> %112, <2 x double> %78)
%114 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %79, i64 0
%115 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %98, <2 x double> %112, <2 x double> %114)
%116 = add nsw i32 %0, -3
%117 = icmp sgt i32 %0, 7
br i1 %117, label %118, label %293
118: ; preds = %7, %118
%119 = phi double* [ %130, %118 ], [ %1, %7 ]
%120 = phi double* [ %131, %118 ], [ %2, %7 ]
%121 = phi i32 [ %258, %118 ], [ 4, %7 ]
%122 = phi <2 x double> [ %243, %118 ], [ %97, %7 ]
%123 = phi <2 x double> [ %245, %118 ], [ %100, %7 ]
%124 = phi <2 x double> [ %248, %118 ], [ %103, %7 ]
%125 = phi <2 x double> [ %249, %118 ], [ %105, %7 ]
%126 = phi <2 x double> [ %252, %118 ], [ %108, %7 ]
%127 = phi <2 x double> [ %253, %118 ], [ %110, %7 ]
%128 = phi <2 x double> [ %256, %118 ], [ %113, %7 ]
%129 = phi <2 x double> [ %257, %118 ], [ %115, %7 ]
%130 = getelementptr inbounds double, double* %119, i64 16
%131 = getelementptr inbounds double, double* %120, i64 16
%132 = bitcast double* %130 to <2 x double>*
%133 = load <2 x double>, <2 x double>* %132
%134 = getelementptr inbounds double, double* %119, i64 18
%135 = bitcast double* %134 to <2 x double>*
%136 = load <2 x double>, <2 x double>* %135
%137 = load double, double* %131
%138 = getelementptr inbounds double, double* %120, i64 17
%139 = load double, double* %138
%140 = getelementptr inbounds double, double* %120, i64 18
%141 = load double, double* %140
%142 = getelementptr inbounds double, double* %120, i64 19
%143 = load double, double* %142
%144 = fneg <2 x double> %133
%145 = insertelement <2 x double> poison, double %137, i64 0
%146 = shufflevector <2 x double> %145, <2 x double> poison, <2 x i32> zeroinitializer
%147 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %146, <2 x double> %122)
%148 = fneg <2 x double> %136
%149 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %148, <2 x double> %146, <2 x double> %123)
%150 = insertelement <2 x double> poison, double %139, i64 0
%151 = shufflevector <2 x double> %150, <2 x double> poison, <2 x i32> zeroinitializer
%152 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %151, <2 x double> %124)
%153 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %148, <2 x double> %151, <2 x double> %125)
%154 = insertelement <2 x double> poison, double %141, i64 0
%155 = shufflevector <2 x double> %154, <2 x double> poison, <2 x i32> zeroinitializer
%156 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %155, <2 x double> %126)
%157 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %148, <2 x double> %155, <2 x double> %127)
%158 = insertelement <2 x double> poison, double %143, i64 0
%159 = shufflevector <2 x double> %158, <2 x double> poison, <2 x i32> zeroinitializer
%160 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %159, <2 x double> %128)
%161 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %148, <2 x double> %159, <2 x double> %129)
%162 = getelementptr inbounds double, double* %119, i64 20
%163 = bitcast double* %162 to <2 x double>*
%164 = load <2 x double>, <2 x double>* %163
%165 = getelementptr inbounds double, double* %119, i64 22
%166 = bitcast double* %165 to <2 x double>*
%167 = load <2 x double>, <2 x double>* %166
%168 = getelementptr inbounds double, double* %120, i64 20
%169 = load double, double* %168
%170 = getelementptr inbounds double, double* %120, i64 21
%171 = load double, double* %170
%172 = getelementptr inbounds double, double* %120, i64 22
%173 = load double, double* %172
%174 = getelementptr inbounds double, double* %120, i64 23
%175 = load double, double* %174
%176 = fneg <2 x double> %164
%177 = insertelement <2 x double> poison, double %169, i64 0
%178 = shufflevector <2 x double> %177, <2 x double> poison, <2 x i32> zeroinitializer
%179 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %176, <2 x double> %178, <2 x double> %147)
%180 = fneg <2 x double> %167
%181 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %180, <2 x double> %178, <2 x double> %149)
%182 = insertelement <2 x double> poison, double %171, i64 0
%183 = shufflevector <2 x double> %182, <2 x double> poison, <2 x i32> zeroinitializer
%184 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %176, <2 x double> %183, <2 x double> %152)
%185 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %180, <2 x double> %183, <2 x double> %153)
%186 = insertelement <2 x double> poison, double %173, i64 0
%187 = shufflevector <2 x double> %186, <2 x double> poison, <2 x i32> zeroinitializer
%188 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %176, <2 x double> %187, <2 x double> %156)
%189 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %180, <2 x double> %187, <2 x double> %157)
%190 = insertelement <2 x double> poison, double %175, i64 0
%191 = shufflevector <2 x double> %190, <2 x double> poison, <2 x i32> zeroinitializer
%192 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %176, <2 x double> %191, <2 x double> %160)
%193 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %180, <2 x double> %191, <2 x double> %161)
%194 = getelementptr inbounds double, double* %119, i64 24
%195 = bitcast double* %194 to <2 x double>*
%196 = load <2 x double>, <2 x double>* %195
%197 = getelementptr inbounds double, double* %119, i64 26
%198 = bitcast double* %197 to <2 x double>*
%199 = load <2 x double>, <2 x double>* %198
%200 = getelementptr inbounds double, double* %120, i64 24
%201 = load double, double* %200
%202 = getelementptr inbounds double, double* %120, i64 25
%203 = load double, double* %202
%204 = getelementptr inbounds double, double* %120, i64 26
%205 = load double, double* %204
%206 = getelementptr inbounds double, double* %120, i64 27
%207 = load double, double* %206
%208 = fneg <2 x double> %196
%209 = insertelement <2 x double> poison, double %201, i64 0
%210 = shufflevector <2 x double> %209, <2 x double> poison, <2 x i32> zeroinitializer
%211 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %208, <2 x double> %210, <2 x double> %179)
%212 = fneg <2 x double> %199
%213 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %212, <2 x double> %210, <2 x double> %181)
%214 = insertelement <2 x double> poison, double %203, i64 0
%215 = shufflevector <2 x double> %214, <2 x double> poison, <2 x i32> zeroinitializer
%216 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %208, <2 x double> %215, <2 x double> %184)
%217 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %212, <2 x double> %215, <2 x double> %185)
%218 = insertelement <2 x double> poison, double %205, i64 0
%219 = shufflevector <2 x double> %218, <2 x double> poison, <2 x i32> zeroinitializer
%220 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %208, <2 x double> %219, <2 x double> %188)
%221 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %212, <2 x double> %219, <2 x double> %189)
%222 = insertelement <2 x double> poison, double %207, i64 0
%223 = shufflevector <2 x double> %222, <2 x double> poison, <2 x i32> zeroinitializer
%224 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %208, <2 x double> %223, <2 x double> %192)
%225 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %212, <2 x double> %223, <2 x double> %193)
%226 = getelementptr inbounds double, double* %119, i64 28
%227 = bitcast double* %226 to <2 x double>*
%228 = load <2 x double>, <2 x double>* %227
%229 = getelementptr inbounds double, double* %119, i64 30
%230 = bitcast double* %229 to <2 x double>*
%231 = load <2 x double>, <2 x double>* %230
%232 = getelementptr inbounds double, double* %120, i64 28
%233 = load double, double* %232
%234 = getelementptr inbounds double, double* %120, i64 29
%235 = load double, double* %234
%236 = getelementptr inbounds double, double* %120, i64 30
%237 = load double, double* %236
%238 = getelementptr inbounds double, double* %120, i64 31
%239 = load double, double* %238
%240 = fneg <2 x double> %228
%241 = insertelement <2 x double> poison, double %233, i64 0
%242 = shufflevector <2 x double> %241, <2 x double> poison, <2 x i32> zeroinitializer
%243 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %240, <2 x double> %242, <2 x double> %211)
%244 = fneg <2 x double> %231
%245 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %244, <2 x double> %242, <2 x double> %213)
%246 = insertelement <2 x double> poison, double %235, i64 0
%247 = shufflevector <2 x double> %246, <2 x double> poison, <2 x i32> zeroinitializer
%248 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %240, <2 x double> %247, <2 x double> %216)
%249 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %244, <2 x double> %247, <2 x double> %217)
%250 = insertelement <2 x double> poison, double %237, i64 0
%251 = shufflevector <2 x double> %250, <2 x double> poison, <2 x i32> zeroinitializer
%252 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %240, <2 x double> %251, <2 x double> %220)
%253 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %244, <2 x double> %251, <2 x double> %221)
%254 = insertelement <2 x double> poison, double %239, i64 0
%255 = shufflevector <2 x double> %254, <2 x double> poison, <2 x i32> zeroinitializer
%256 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %240, <2 x double> %255, <2 x double> %224)
%257 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %244, <2 x double> %255, <2 x double> %225)
%258 = add nuw nsw i32 %121, 4
%259 = icmp slt i32 %258, %116
br i1 %259, label %118, label %260
260: ; preds = %118
%261 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %148, <2 x double> %159, <2 x double> %129)
%262 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %180, <2 x double> %191, <2 x double> %261)
%263 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %212, <2 x double> %223, <2 x double> %262)
%264 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %244, <2 x double> %255, <2 x double> %263)
%265 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %159, <2 x double> %128)
%266 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %176, <2 x double> %191, <2 x double> %265)
%267 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %208, <2 x double> %223, <2 x double> %266)
%268 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %240, <2 x double> %255, <2 x double> %267)
%269 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %148, <2 x double> %155, <2 x double> %127)
%270 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %180, <2 x double> %187, <2 x double> %269)
%271 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %212, <2 x double> %219, <2 x double> %270)
%272 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %244, <2 x double> %251, <2 x double> %271)
%273 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %155, <2 x double> %126)
%274 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %176, <2 x double> %187, <2 x double> %273)
%275 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %208, <2 x double> %219, <2 x double> %274)
%276 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %240, <2 x double> %251, <2 x double> %275)
%277 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %148, <2 x double> %151, <2 x double> %125)
%278 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %180, <2 x double> %183, <2 x double> %277)
%279 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %212, <2 x double> %215, <2 x double> %278)
%280 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %244, <2 x double> %247, <2 x double> %279)
%281 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %151, <2 x double> %124)
%282 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %176, <2 x double> %183, <2 x double> %281)
%283 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %208, <2 x double> %215, <2 x double> %282)
%284 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %240, <2 x double> %247, <2 x double> %283)
%285 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %148, <2 x double> %146, <2 x double> %123)
%286 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %180, <2 x double> %178, <2 x double> %285)
%287 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %212, <2 x double> %210, <2 x double> %286)
%288 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %244, <2 x double> %242, <2 x double> %287)
%289 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %146, <2 x double> %122)
%290 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %176, <2 x double> %178, <2 x double> %289)
%291 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %208, <2 x double> %210, <2 x double> %290)
%292 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %240, <2 x double> %242, <2 x double> %291)
br label %293
293: ; preds = %260, %7
%294 = phi <2 x double> [ %97, %7 ], [ %292, %260 ]
%295 = phi <2 x double> [ %100, %7 ], [ %288, %260 ]
%296 = phi <2 x double> [ %103, %7 ], [ %284, %260 ]
%297 = phi <2 x double> [ %105, %7 ], [ %280, %260 ]
%298 = phi <2 x double> [ %108, %7 ], [ %276, %260 ]
%299 = phi <2 x double> [ %110, %7 ], [ %272, %260 ]
%300 = phi <2 x double> [ %113, %7 ], [ %268, %260 ]
%301 = phi <2 x double> [ %115, %7 ], [ %264, %260 ]
%302 = icmp eq i32 %5, 0
br i1 %302, label %306, label %303
303: ; preds = %293
%304 = bitcast double* %6 to <4 x double>*
%305 = load <4 x double>, <4 x double>* %304
br label %319
306: ; preds = %293
%307 = load double, double* %4
%308 = getelementptr inbounds double, double* %4, i64 5
%309 = load double, double* %308
%310 = getelementptr inbounds double, double* %4, i64 10
%311 = load double, double* %310
%312 = getelementptr inbounds double, double* %4, i64 15
%313 = load double, double* %312
%314 = insertelement <4 x double> poison, double %307, i64 0
%315 = insertelement <4 x double> %314, double %309, i64 1
%316 = insertelement <4 x double> %315, double %311, i64 2
%317 = insertelement <4 x double> %316, double %313, i64 3
%318 = fdiv <4 x double> <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>, %317
br label %319
319: ; preds = %306, %303
%320 = phi <4 x double> [ %305, %303 ], [ %318, %306 ]
%321 = shufflevector <4 x double> %320, <4 x double> undef, <2 x i32> zeroinitializer
%322 = fmul <2 x double> %294, %321
%323 = fmul <2 x double> %295, %321
%324 = bitcast double* %3 to <2 x double>*
store <2 x double> %322, <2 x double>* %324
%325 = getelementptr inbounds double, double* %3, i64 2
%326 = bitcast double* %325 to <2 x double>*
store <2 x double> %323, <2 x double>* %326
%327 = getelementptr inbounds double, double* %4, i64 1
%328 = load double, double* %327
%329 = fneg <2 x double> %322
%330 = insertelement <2 x double> poison, double %328, i64 0
%331 = shufflevector <2 x double> %330, <2 x double> poison, <2 x i32> zeroinitializer
%332 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %329, <2 x double> %331, <2 x double> %296)
%333 = fneg <2 x double> %323
%334 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %333, <2 x double> %331, <2 x double> %297)
%335 = shufflevector <4 x double> %320, <4 x double> undef, <2 x i32> <i32 1, i32 1>
%336 = fmul <2 x double> %335, %332
%337 = fmul <2 x double> %335, %334
%338 = getelementptr inbounds double, double* %3, i64 4
%339 = bitcast double* %338 to <2 x double>*
store <2 x double> %336, <2 x double>* %339
%340 = getelementptr inbounds double, double* %3, i64 6
%341 = bitcast double* %340 to <2 x double>*
store <2 x double> %337, <2 x double>* %341
%342 = getelementptr inbounds double, double* %4, i64 2
%343 = load double, double* %342
%344 = getelementptr inbounds double, double* %4, i64 6
%345 = load double, double* %344
%346 = insertelement <2 x double> poison, double %343, i64 0
%347 = shufflevector <2 x double> %346, <2 x double> poison, <2 x i32> zeroinitializer
%348 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %329, <2 x double> %347, <2 x double> %298)
%349 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %333, <2 x double> %347, <2 x double> %299)
%350 = fneg <2 x double> %336
%351 = insertelement <2 x double> poison, double %345, i64 0
%352 = shufflevector <2 x double> %351, <2 x double> poison, <2 x i32> zeroinitializer
%353 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %350, <2 x double> %352, <2 x double> %348)
%354 = fneg <2 x double> %337
%355 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %354, <2 x double> %352, <2 x double> %349)
%356 = shufflevector <4 x double> %320, <4 x double> undef, <2 x i32> <i32 2, i32 2>
%357 = fmul <2 x double> %356, %353
%358 = fmul <2 x double> %356, %355
%359 = getelementptr inbounds double, double* %3, i64 8
%360 = bitcast double* %359 to <2 x double>*
store <2 x double> %357, <2 x double>* %360
%361 = getelementptr inbounds double, double* %3, i64 10
%362 = bitcast double* %361 to <2 x double>*
store <2 x double> %358, <2 x double>* %362
%363 = getelementptr inbounds double, double* %4, i64 3
%364 = load double, double* %363
%365 = getelementptr inbounds double, double* %4, i64 7
%366 = load double, double* %365
%367 = getelementptr inbounds double, double* %4, i64 11
%368 = load double, double* %367
%369 = insertelement <2 x double> poison, double %364, i64 0
%370 = shufflevector <2 x double> %369, <2 x double> poison, <2 x i32> zeroinitializer
%371 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %329, <2 x double> %370, <2 x double> %300)
%372 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %333, <2 x double> %370, <2 x double> %301)
%373 = insertelement <2 x double> poison, double %366, i64 0
%374 = shufflevector <2 x double> %373, <2 x double> poison, <2 x i32> zeroinitializer
%375 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %350, <2 x double> %374, <2 x double> %371)
%376 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %354, <2 x double> %374, <2 x double> %372)
%377 = fneg <2 x double> %357
%378 = insertelement <2 x double> poison, double %368, i64 0
%379 = shufflevector <2 x double> %378, <2 x double> poison, <2 x i32> zeroinitializer
%380 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %377, <2 x double> %379, <2 x double> %375)
%381 = fneg <2 x double> %358
%382 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %381, <2 x double> %379, <2 x double> %376)
%383 = shufflevector <4 x double> %320, <4 x double> undef, <2 x i32> <i32 3, i32 3>
%384 = fmul <2 x double> %383, %380
%385 = fmul <2 x double> %383, %382
%386 = getelementptr inbounds double, double* %3, i64 12
%387 = bitcast double* %386 to <2 x double>*
store <2 x double> %384, <2 x double>* %387
%388 = getelementptr inbounds double, double* %3, i64 14
%389 = bitcast double* %388 to <2 x double>*
store <2 x double> %385, <2 x double>* %389
ret void
}