void kernel_dtrsv_n_8_lib4(int kmax, int inverted_diag, double *A0, int sda,
                           double *x, double *y) {
  double *A1 = A0 + 4 * sda;
  __builtin_prefetch(A0);
  __builtin_prefetch(A1);
  __builtin_prefetch(A0 + 8);
  __builtin_prefetch(A1 + 8);
  const int lda = 4;
  int k;
  double x_0, x_1, x_2, x_3, y_0 = 0, y_1 = 0, y_2 = 0, y_3 = 0, y_4 = 0,
                             y_5 = 0, y_6 = 0, y_7 = 0;
  k = 0;
  for (; k < kmax - 7; k += 8) {
    __builtin_prefetch(A0 + 4 * lda);
    __builtin_prefetch(A1 + 4 * lda);
    __builtin_prefetch(A0 + 4 * lda + 8);
    __builtin_prefetch(A1 + 4 * lda + 8);
    x_0 = x[0];
    x_1 = x[1];
    x_2 = x[2];
    x_3 = x[3];
    y_0 += A0[0 + lda * 0] * x_0;
    y_1 += A0[1 + lda * 0] * x_0;
    y_2 += A0[2 + lda * 0] * x_0;
    y_3 += A0[3 + lda * 0] * x_0;
    y_4 += A1[0 + lda * 0] * x_0;
    y_5 += A1[1 + lda * 0] * x_0;
    y_6 += A1[2 + lda * 0] * x_0;
    y_7 += A1[3 + lda * 0] * x_0;
    y_0 += A0[0 + lda * 1] * x_1;
    y_1 += A0[1 + lda * 1] * x_1;
    y_2 += A0[2 + lda * 1] * x_1;
    y_3 += A0[3 + lda * 1] * x_1;
    y_4 += A1[0 + lda * 1] * x_1;
    y_5 += A1[1 + lda * 1] * x_1;
    y_6 += A1[2 + lda * 1] * x_1;
    y_7 += A1[3 + lda * 1] * x_1;
    y_0 += A0[0 + lda * 2] * x_2;
    y_1 += A0[1 + lda * 2] * x_2;
    y_2 += A0[2 + lda * 2] * x_2;
    y_3 += A0[3 + lda * 2] * x_2;
    y_4 += A1[0 + lda * 2] * x_2;
    y_5 += A1[1 + lda * 2] * x_2;
    y_6 += A1[2 + lda * 2] * x_2;
    y_7 += A1[3 + lda * 2] * x_2;
    y_0 += A0[0 + lda * 3] * x_3;
    y_1 += A0[1 + lda * 3] * x_3;
    y_2 += A0[2 + lda * 3] * x_3;
    y_3 += A0[3 + lda * 3] * x_3;
    y_4 += A1[0 + lda * 3] * x_3;
    y_5 += A1[1 + lda * 3] * x_3;
    y_6 += A1[2 + lda * 3] * x_3;
    y_7 += A1[3 + lda * 3] * x_3;
    A0 += 4 * lda;
    A1 += 4 * lda;
    x += 4;
    __builtin_prefetch(A0 + 4 * lda);
    __builtin_prefetch(A1 + 4 * lda);
    __builtin_prefetch(A0 + 4 * lda + 8);
    __builtin_prefetch(A1 + 4 * lda + 8);
    x_0 = x[0];
    x_1 = x[1];
    x_2 = x[2];
    x_3 = x[3];
    y_0 += A0[0 + lda * 0] * x_0;
    y_1 += A0[1 + lda * 0] * x_0;
    y_2 += A0[2 + lda * 0] * x_0;
    y_3 += A0[3 + lda * 0] * x_0;
    y_4 += A1[0 + lda * 0] * x_0;
    y_5 += A1[1 + lda * 0] * x_0;
    y_6 += A1[2 + lda * 0] * x_0;
    y_7 += A1[3 + lda * 0] * x_0;
    y_0 += A0[0 + lda * 1] * x_1;
    y_1 += A0[1 + lda * 1] * x_1;
    y_2 += A0[2 + lda * 1] * x_1;
    y_3 += A0[3 + lda * 1] * x_1;
    y_4 += A1[0 + lda * 1] * x_1;
    y_5 += A1[1 + lda * 1] * x_1;
    y_6 += A1[2 + lda * 1] * x_1;
    y_7 += A1[3 + lda * 1] * x_1;
    y_0 += A0[0 + lda * 2] * x_2;
    y_1 += A0[1 + lda * 2] * x_2;
    y_2 += A0[2 + lda * 2] * x_2;
    y_3 += A0[3 + lda * 2] * x_2;
    y_4 += A1[0 + lda * 2] * x_2;
    y_5 += A1[1 + lda * 2] * x_2;
    y_6 += A1[2 + lda * 2] * x_2;
    y_7 += A1[3 + lda * 2] * x_2;
    y_0 += A0[0 + lda * 3] * x_3;
    y_1 += A0[1 + lda * 3] * x_3;
    y_2 += A0[2 + lda * 3] * x_3;
    y_3 += A0[3 + lda * 3] * x_3;
    y_4 += A1[0 + lda * 3] * x_3;
    y_5 += A1[1 + lda * 3] * x_3;
    y_6 += A1[2 + lda * 3] * x_3;
    y_7 += A1[3 + lda * 3] * x_3;
    A0 += 4 * lda;
    A1 += 4 * lda;
    x += 4;
  }
  y_0 = y[0] - y_0;
  y_1 = y[1] - y_1;
  y_2 = y[2] - y_2;
  y_3 = y[3] - y_3;
  y_4 = y[4] - y_4;
  y_5 = y[5] - y_5;
  y_6 = y[6] - y_6;
  y_7 = y[7] - y_7;
  double a_00, a_10, a_20, a_30, a_40, a_50, a_60, a_70, a_11, a_21, a_31, a_41,
      a_51, a_61, a_71;
  if (inverted_diag) {
    a_00 = A0[0 + lda * 0];
    a_10 = A0[1 + lda * 0];
    a_11 = A0[1 + lda * 1];
    y_0 *= a_00;
    y_1 -= a_10 * y_0;
    y_1 *= a_11;
    y[0] = y_0;
    y[1] = y_1;
    a_20 = A0[2 + lda * 0];
    a_30 = A0[3 + lda * 0];
    a_21 = A0[2 + lda * 1];
    a_31 = A0[3 + lda * 1];
    y_2 -= a_20 * y_0;
    y_3 -= a_30 * y_0;
    y_2 -= a_21 * y_1;
    y_3 -= a_31 * y_1;
    a_40 = A1[0 + lda * 0];
    a_50 = A1[1 + lda * 0];
    a_60 = A1[2 + lda * 0];
    a_70 = A1[3 + lda * 0];
    a_41 = A1[0 + lda * 1];
    a_51 = A1[1 + lda * 1];
    a_61 = A1[2 + lda * 1];
    a_71 = A1[3 + lda * 1];
    y_4 -= a_40 * y_0;
    y_5 -= a_50 * y_0;
    y_6 -= a_60 * y_0;
    y_7 -= a_70 * y_0;
    y_4 -= a_41 * y_1;
    y_5 -= a_51 * y_1;
    y_6 -= a_61 * y_1;
    y_7 -= a_71 * y_1;
    a_00 = A0[2 + lda * 2];
    a_10 = A0[3 + lda * 2];
    a_11 = A0[3 + lda * 3];
    y_2 *= a_00;
    y_3 -= a_10 * y_2;
    y_3 *= a_11;
    y[2] = y_2;
    y[3] = y_3;
    a_40 = A1[0 + lda * 2];
    a_50 = A1[1 + lda * 2];
    a_60 = A1[2 + lda * 2];
    a_70 = A1[3 + lda * 2];
    a_41 = A1[0 + lda * 3];
    a_51 = A1[1 + lda * 3];
    a_61 = A1[2 + lda * 3];
    a_71 = A1[3 + lda * 3];
    y_4 -= a_40 * y_2;
    y_5 -= a_50 * y_2;
    y_6 -= a_60 * y_2;
    y_7 -= a_70 * y_2;
    y_4 -= a_41 * y_3;
    y_5 -= a_51 * y_3;
    y_6 -= a_61 * y_3;
    y_7 -= a_71 * y_3;
    a_00 = A1[0 + lda * 4];
    a_10 = A1[1 + lda * 4];
    a_11 = A1[1 + lda * 5];
    y_4 *= a_00;
    y_5 -= a_10 * y_4;
    y_5 *= a_11;
    y[4] = y_4;
    y[5] = y_5;
    a_20 = A1[2 + lda * 4];
    a_30 = A1[3 + lda * 4];
    a_21 = A1[2 + lda * 5];
    a_31 = A1[3 + lda * 5];
    y_6 -= a_20 * y_4;
    y_7 -= a_30 * y_4;
    y_6 -= a_21 * y_5;
    y_7 -= a_31 * y_5;
    a_00 = A1[2 + lda * 6];
    a_10 = A1[3 + lda * 6];
    a_11 = A1[3 + lda * 7];
    y_6 *= a_00;
    y_7 -= a_10 * y_6;
    y_7 *= a_11;
    y[6] = y_6;
    y[7] = y_7;
  } else {
    a_00 = 1.0 / A0[0 + lda * 0];
    a_10 = A0[1 + lda * 0];
    a_11 = 1.0 / A0[1 + lda * 1];
    y_0 *= a_00;
    y_1 -= a_10 * y_0;
    y_1 *= a_11;
    y[0] = y_0;
    y[1] = y_1;
    a_20 = A0[2 + lda * 0];
    a_30 = A0[3 + lda * 0];
    a_21 = A0[2 + lda * 1];
    a_31 = A0[3 + lda * 1];
    y_2 -= a_20 * y_0;
    y_3 -= a_30 * y_0;
    y_2 -= a_21 * y_1;
    y_3 -= a_31 * y_1;
    a_40 = A1[0 + lda * 0];
    a_50 = A1[1 + lda * 0];
    a_60 = A1[2 + lda * 0];
    a_70 = A1[3 + lda * 0];
    a_41 = A1[0 + lda * 1];
    a_51 = A1[1 + lda * 1];
    a_61 = A1[2 + lda * 1];
    a_71 = A1[3 + lda * 1];
    y_4 -= a_40 * y_0;
    y_5 -= a_50 * y_0;
    y_6 -= a_60 * y_0;
    y_7 -= a_70 * y_0;
    y_4 -= a_41 * y_1;
    y_5 -= a_51 * y_1;
    y_6 -= a_61 * y_1;
    y_7 -= a_71 * y_1;
    a_00 = 1.0 / A0[2 + lda * 2];
    a_10 = A0[3 + lda * 2];
    a_11 = 1.0 / A0[3 + lda * 3];
    y_2 *= a_00;
    y_3 -= a_10 * y_2;
    y_3 *= a_11;
    y[2] = y_2;
    y[3] = y_3;
    a_40 = A1[0 + lda * 2];
    a_50 = A1[1 + lda * 2];
    a_60 = A1[2 + lda * 2];
    a_70 = A1[3 + lda * 2];
    a_41 = A1[0 + lda * 3];
    a_51 = A1[1 + lda * 3];
    a_61 = A1[2 + lda * 3];
    a_71 = A1[3 + lda * 3];
    y_4 -= a_40 * y_2;
    y_5 -= a_50 * y_2;
    y_6 -= a_60 * y_2;
    y_7 -= a_70 * y_2;
    y_4 -= a_41 * y_3;
    y_5 -= a_51 * y_3;
    y_6 -= a_61 * y_3;
    y_7 -= a_71 * y_3;
    a_00 = 1.0 / A1[0 + lda * 4];
    a_10 = A1[1 + lda * 4];
    a_11 = 1.0 / A1[1 + lda * 5];
    y_4 *= a_00;
    y_5 -= a_10 * y_4;
    y_5 *= a_11;
    y[4] = y_4;
    y[5] = y_5;
    a_20 = A1[2 + lda * 4];
    a_30 = A1[3 + lda * 4];
    a_21 = A1[2 + lda * 5];
    a_31 = A1[3 + lda * 5];
    y_6 -= a_20 * y_4;
    y_7 -= a_30 * y_4;
    y_6 -= a_21 * y_5;
    y_7 -= a_31 * y_5;
    a_00 = 1.0 / A1[2 + lda * 6];
    a_10 = A1[3 + lda * 6];
    a_11 = 1.0 / A1[3 + lda * 7];
    y_6 *= a_00;
    y_7 -= a_10 * y_6;
    y_7 *= a_11;
    y[6] = y_6;
    y[7] = y_7;
  }
}


x86 assembly (clang, -O0):
<kernel_dtrsv_n_8_lib4>:
push   %rbp
mov    %rsp,%rbp
sub    $0x90,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %rdx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
mov    %r8,-0x20(%rbp)
mov    %r9,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x14(%rbp),%ecx
shl    $0x2,%ecx
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
prefetcht0 (%rax)
mov    -0x30(%rbp),%rax
prefetcht0 (%rax)
mov    -0x10(%rbp),%rax
add    $0x40,%rax
prefetcht0 (%rax)
mov    -0x30(%rbp),%rax
add    $0x40,%rax
prefetcht0 (%rax)
movl   $0x4,-0x34(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x60(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x68(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x70(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x78(%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
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x7,%ecx
cmp    %ecx,%eax
jge    1b94 <kernel_dtrsv_n_8_lib4+0xa94>
mov    -0x10(%rbp),%rax
add    $0x80,%rax
prefetcht0 (%rax)
mov    -0x30(%rbp),%rax
add    $0x80,%rax
prefetcht0 (%rax)
mov    -0x10(%rbp),%rax
add    $0x80,%rax
add    $0x40,%rax
prefetcht0 (%rax)
mov    -0x30(%rbp),%rax
add    $0x80,%rax
add    $0x40,%rax
prefetcht0 (%rax)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x10(%rbp)
mov    -0x30(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x30(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0x20(%rbp)
mov    -0x10(%rbp),%rax
add    $0x80,%rax
prefetcht0 (%rax)
mov    -0x30(%rbp),%rax
add    $0x80,%rax
prefetcht0 (%rax)
mov    -0x10(%rbp),%rax
add    $0x80,%rax
add    $0x40,%rax
prefetcht0 (%rax)
mov    -0x30(%rbp),%rax
add    $0x80,%rax
add    $0x40,%rax
prefetcht0 (%rax)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  -0x40(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  -0x48(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x60(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x10(%rbp)
mov    -0x30(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x30(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    $0x8,%eax
mov    %eax,-0x38(%rbp)
jmp    11b3 <kernel_dtrsv_n_8_lib4+0xb3>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
subsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
subsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
subsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x18(%rax),%xmm0
subsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x20(%rax),%xmm0
subsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x28(%rax),%xmm0
subsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x30(%rax),%xmm0
subsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x38(%rax),%xmm0
subsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
cmpl   $0x0,-0x8(%rbp)
je     2643 <kernel_dtrsv_n_8_lib4+0x1543>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x60(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0xe0(%rbp),%xmm0
ff
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x60(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x68(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x60(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0xb8(%rbp),%xmm0
ff
movsd  -0x60(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0xe8(%rbp),%xmm0
ff
movsd  -0x68(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x68(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
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  -0xc8(%rbp),%xmm0
ff
movsd  -0x60(%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  -0xd0(%rbp),%xmm0
ff
movsd  -0x60(%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  -0xd8(%rbp),%xmm0
ff
movsd  -0x60(%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  -0xf8(%rbp),%xmm0
ff
movsd  -0x68(%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  -0x100(%rbp),%xmm0
ff
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  -0x108(%rbp),%xmm0
ff
movsd  -0x68(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x68(%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  0x50(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x70(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0xe0(%rbp),%xmm0
ff
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x70(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x78(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x30(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x70(%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  -0xc8(%rbp),%xmm0
ff
movsd  -0x70(%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  -0xd0(%rbp),%xmm0
ff
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  -0xd8(%rbp),%xmm0
ff
movsd  -0x70(%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  -0xf8(%rbp),%xmm0
ff
movsd  -0x78(%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  -0x100(%rbp),%xmm0
ff
movsd  -0x78(%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  -0x108(%rbp),%xmm0
ff
movsd  -0x78(%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  -0x110(%rbp),%xmm0
ff
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    -0x30(%rbp),%rax
movsd  0x80(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x88(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0xa8(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x80(%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  -0xe0(%rbp),%xmm0
ff
mulsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x88(%rbp),%xmm0
ff
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x30(%rbp),%rax
movsd  0x90(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x98(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0xb0(%rax),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0xb8(%rax),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x80(%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  -0xb8(%rbp),%xmm0
ff
movsd  -0x80(%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  -0xe8(%rbp),%xmm0
ff
movsd  -0x88(%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  -0xf0(%rbp),%xmm0
ff
movsd  -0x88(%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
mov    -0x30(%rbp),%rax
movsd  0xd0(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0xd8(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0xf8(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x90(%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  -0xe0(%rbp),%xmm0
ff
mulsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0x98(%rbp),%xmm0
ff
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x38(%rax)
jmp    307a <kernel_dtrsv_n_8_lib4+0x1f7a>
mov    -0x10(%rbp),%rax
movsd  0x19b1(%rip),%xmm0
divsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x1988(%rip),%xmm0
divsd  0x28(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x60(%rbp),%xmm2
movsd  -0x68(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0xe0(%rbp),%xmm0
ff
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x60(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x68(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x60(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0xb8(%rbp),%xmm0
ff
movsd  -0x60(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0xe8(%rbp),%xmm0
ff
movsd  -0x68(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x68(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
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  -0xc8(%rbp),%xmm0
ff
movsd  -0x60(%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  -0xd0(%rbp),%xmm0
ff
movsd  -0x60(%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  -0xd8(%rbp),%xmm0
ff
movsd  -0x60(%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  -0xf8(%rbp),%xmm0
ff
movsd  -0x68(%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  -0x100(%rbp),%xmm0
ff
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  -0x108(%rbp),%xmm0
movsd  -0x68(%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  -0x110(%rbp),%xmm0
ff
movsd  -0x68(%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  0x1583(%rip),%xmm0
divsd  0x50(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x1559(%rip),%xmm0
divsd  0x78(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x70(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0xe0(%rbp),%xmm0
ff
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x70(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x78(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x30(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x70(%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  -0xc8(%rbp),%xmm0
ff
movsd  -0x70(%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  -0xd0(%rbp),%xmm0
ff
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  -0xd8(%rbp),%xmm0
ff
movsd  -0x70(%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  -0xf8(%rbp),%xmm0
ff
movsd  -0x78(%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  -0x100(%rbp),%xmm0
ff
movsd  -0x78(%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  -0x108(%rbp),%xmm0
ff
movsd  -0x78(%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  -0x110(%rbp),%xmm0
ff
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    -0x30(%rbp),%rax
movsd  0x126e(%rip),%xmm0
divsd  0x80(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x88(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x123e(%rip),%xmm0
divsd  0xa8(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x80(%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  -0xe0(%rbp),%xmm0
ff
mulsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x88(%rbp),%xmm0
ff
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x30(%rbp),%rax
movsd  0x90(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x98(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0xb0(%rax),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0xb8(%rax),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x80(%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  -0xb8(%rbp),%xmm0
ff
movsd  -0x80(%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  -0xe8(%rbp),%xmm0
ff
movsd  -0x88(%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  -0xf0(%rbp),%xmm0
ff
movsd  -0x88(%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
mov    -0x30(%rbp),%rax
movsd  0x1057(%rip),%xmm0
divsd  0xd0(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0xd8(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x1027(%rip),%xmm0
divsd  0xf8(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
movsd  -0xa8(%rbp),%xmm0
movsd  -0x90(%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  -0xe0(%rbp),%xmm0
ff
mulsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0x98(%rbp),%xmm0
ff
mov    -0x28(%rbp),%rax
movsd  %xmm0,0x38(%rax)
add    $0x90,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<kernel_dtrsv_n_8_lib4>:
shl    $0x2,%ecx
movslq %ecx,%r10
prefetcht0 (%rdx)
prefetcht0 (%rdx,%r10,8)
prefetcht0 0x40(%rdx)
prefetcht0 0x40(%rdx,%r10,8)
cmp    $0x8,%edi
jl     1432 <kernel_dtrsv_n_8_lib4+0x332>
add    $0xfffffff9,%edi
lea    0x0(,%r10,8),%rcx
xorpd  %xmm11,%xmm11
xor    %eax,%eax
xorpd  %xmm5,%xmm5
xorpd  %xmm0,%xmm0
xorpd  %xmm2,%xmm2
nop
prefetcht0 0x80(%rdx)
prefetcht0 0x80(%rdx,%rcx,1)
prefetcht0 0xc0(%rdx)
prefetcht0 0xc0(%rdx,%rcx,1)
movupd (%rdx,%rcx,1),%xmm14
movupd 0x10(%rdx,%rcx,1),%xmm6
movupd 0x20(%rdx,%rcx,1),%xmm10
movupd 0x30(%rdx,%rcx,1),%xmm9
movupd (%rdx),%xmm12
movupd 0x10(%rdx),%xmm7
movupd 0x20(%rdx),%xmm15
movupd 0x30(%rdx),%xmm8
movsd  (%r8,%rax,8),%xmm3
movsd  0x8(%r8,%rax,8),%xmm4
movsd  0x10(%r8,%rax,8),%xmm1
movsd  0x18(%r8,%rax,8),%xmm13
unpcklpd %xmm3,%xmm3
mulpd  %xmm3,%xmm14
addpd  %xmm0,%xmm14
mulpd  %xmm3,%xmm6
addpd  %xmm2,%xmm6
mulpd  %xmm3,%xmm12
addpd  %xmm11,%xmm12
mulpd  %xmm7,%xmm3
addpd  %xmm5,%xmm3
unpcklpd %xmm4,%xmm4
mulpd  %xmm4,%xmm9
addpd  %xmm6,%xmm9
mulpd  %xmm4,%xmm10
addpd  %xmm14,%xmm10
mulpd  %xmm4,%xmm8
addpd  %xmm3,%xmm8
mulpd  %xmm15,%xmm4
addpd  %xmm12,%xmm4
movupd 0x50(%rdx),%xmm0
movupd 0x40(%rdx),%xmm2
movupd 0x40(%rdx,%rcx,1),%xmm3
movupd 0x50(%rdx,%rcx,1),%xmm6
unpcklpd %xmm1,%xmm1
mulpd  %xmm1,%xmm3
addpd  %xmm10,%xmm3
mulpd  %xmm1,%xmm6
addpd  %xmm9,%xmm6
mulpd  %xmm1,%xmm2
addpd  %xmm4,%xmm2
mulpd  %xmm0,%xmm1
addpd  %xmm8,%xmm1
movupd 0x60(%rdx),%xmm7
movupd 0x70(%rdx),%xmm4
movupd 0x60(%rdx,%rcx,1),%xmm5
movupd 0x70(%rdx,%rcx,1),%xmm0
unpcklpd %xmm13,%xmm13
mulpd  %xmm13,%xmm0
addpd  %xmm6,%xmm0
mulpd  %xmm13,%xmm5
addpd  %xmm3,%xmm5
mulpd  %xmm13,%xmm4
addpd  %xmm1,%xmm4
mulpd  %xmm7,%xmm13
addpd  %xmm2,%xmm13
prefetcht0 0x100(%rdx)
prefetcht0 0x100(%rdx,%rcx,1)
prefetcht0 0x140(%rdx)
prefetcht0 0x140(%rdx,%rcx,1)
movupd 0x80(%rdx,%rcx,1),%xmm12
movupd 0x90(%rdx,%rcx,1),%xmm1
movupd 0xa0(%rdx,%rcx,1),%xmm10
movupd 0xb0(%rdx,%rcx,1),%xmm9
movupd 0x80(%rdx),%xmm8
movupd 0x90(%rdx),%xmm6
movups 0xa0(%rdx),%xmm2
movaps %xmm2,-0x18(%rsp)
movupd 0xb0(%rdx),%xmm11
movsd  0x20(%r8,%rax,8),%xmm3
movsd  0x28(%r8,%rax,8),%xmm2
unpcklpd %xmm3,%xmm3
mulpd  %xmm3,%xmm12
addpd  %xmm5,%xmm12
mulpd  %xmm3,%xmm1
addpd  %xmm0,%xmm1
mulpd  %xmm3,%xmm8
addpd  %xmm13,%xmm8
mulpd  %xmm6,%xmm3
addpd  %xmm4,%xmm3
unpcklpd %xmm2,%xmm2
mulpd  %xmm2,%xmm9
addpd  %xmm1,%xmm9
movupd 0xd0(%rdx),%xmm0
movupd 0xc0(%rdx),%xmm1
movupd 0xc0(%rdx,%rcx,1),%xmm6
movupd 0xd0(%rdx,%rcx,1),%xmm4
movups 0xe0(%rdx),%xmm5
movaps %xmm5,-0x28(%rsp)
movupd 0xf0(%rdx),%xmm15
movupd 0xe0(%rdx,%rcx,1),%xmm14
movupd 0xf0(%rdx,%rcx,1),%xmm13
lea    0x100(%rdx),%rdx
mulpd  %xmm2,%xmm10
addpd  %xmm12,%xmm10
movsd  0x30(%r8,%rax,8),%xmm7
mulpd  %xmm2,%xmm11
addpd  %xmm3,%xmm11
movsd  0x38(%r8,%rax,8),%xmm3
mulpd  -0x18(%rsp),%xmm2
addpd  %xmm8,%xmm2
unpcklpd %xmm7,%xmm7
mulpd  %xmm7,%xmm6
addpd  %xmm10,%xmm6
mulpd  %xmm7,%xmm4
addpd  %xmm9,%xmm4
mulpd  %xmm7,%xmm1
addpd  %xmm2,%xmm1
mulpd  %xmm0,%xmm7
addpd  %xmm11,%xmm7
unpcklpd %xmm3,%xmm3
mulpd  %xmm3,%xmm13
movapd %xmm13,%xmm2
addpd  %xmm4,%xmm2
mulpd  %xmm3,%xmm14
movapd %xmm14,%xmm0
addpd  %xmm6,%xmm0
mulpd  %xmm3,%xmm15
movapd %xmm15,%xmm5
addpd  %xmm7,%xmm5
mulpd  -0x28(%rsp),%xmm3
movapd %xmm3,%xmm11
addpd  %xmm1,%xmm11
add    $0x8,%rax
cmp    %edi,%eax
jl     1140 <kernel_dtrsv_n_8_lib4+0x40>
addpd  %xmm1,%xmm3
addpd  %xmm7,%xmm15
addpd  %xmm6,%xmm14
addpd  %xmm4,%xmm13
lea    (%rdx,%r10,8),%rax
jmp    1449 <kernel_dtrsv_n_8_lib4+0x349>
lea    (%rdx,%r10,8),%rax
xorpd  %xmm3,%xmm3
xorpd  %xmm15,%xmm15
xorpd  %xmm14,%xmm14
xorpd  %xmm13,%xmm13
movsd  (%r9),%xmm7
movsd  0x8(%r9),%xmm6
subsd  %xmm3,%xmm7
unpckhpd %xmm3,%xmm3
subsd  %xmm3,%xmm6
movsd  0x10(%r9),%xmm3
subsd  %xmm15,%xmm3
movsd  0x18(%r9),%xmm4
unpckhpd %xmm15,%xmm15
subsd  %xmm15,%xmm4
movsd  0x20(%r9),%xmm5
subsd  %xmm14,%xmm5
movsd  0x28(%r9),%xmm2
unpckhpd %xmm14,%xmm14
subsd  %xmm14,%xmm2
movsd  0x30(%r9),%xmm9
subsd  %xmm13,%xmm9
movsd  0x38(%r9),%xmm1
unpckhpd %xmm13,%xmm13
subsd  %xmm13,%xmm1
movsd  (%rdx),%xmm0
test   %esi,%esi
je     1685 <kernel_dtrsv_n_8_lib4+0x585>
mulsd  %xmm0,%xmm7
movsd  0x8(%rdx),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm6
mulsd  0x28(%rdx),%xmm6
movsd  %xmm7,(%r9)
movsd  %xmm6,0x8(%r9)
movsd  0x10(%rdx),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm3
movsd  0x18(%rdx),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm4
movsd  0x30(%rdx),%xmm0
mulsd  %xmm6,%xmm0
subsd  %xmm0,%xmm3
movsd  0x38(%rdx),%xmm0
mulsd  %xmm6,%xmm0
subsd  %xmm0,%xmm4
movsd  (%rax),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm5
movsd  0x8(%rax),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm2
movsd  0x10(%rax),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm9
mulsd  0x18(%rax),%xmm7
subsd  %xmm7,%xmm1
movsd  0x20(%rax),%xmm0
mulsd  %xmm6,%xmm0
subsd  %xmm0,%xmm5
movsd  0x28(%rax),%xmm0
mulsd  %xmm6,%xmm0
subsd  %xmm0,%xmm2
movsd  0x30(%rax),%xmm0
mulsd  %xmm6,%xmm0
subsd  %xmm0,%xmm9
mulsd  0x38(%rax),%xmm6
mulsd  0x50(%rdx),%xmm3
subsd  %xmm6,%xmm1
movsd  0x58(%rdx),%xmm0
mulsd  %xmm3,%xmm0
subsd  %xmm0,%xmm4
mulsd  0x78(%rdx),%xmm4
movsd  %xmm3,0x10(%r9)
movsd  %xmm4,0x18(%r9)
movsd  0x40(%rax),%xmm0
mulsd  %xmm3,%xmm0
subsd  %xmm0,%xmm5
movsd  0x48(%rax),%xmm0
mulsd  %xmm3,%xmm0
subsd  %xmm0,%xmm2
movsd  0x50(%rax),%xmm0
mulsd  %xmm3,%xmm0
subsd  %xmm0,%xmm9
mulsd  0x58(%rax),%xmm3
subsd  %xmm3,%xmm1
movsd  0x60(%rax),%xmm0
mulsd  %xmm4,%xmm0
subsd  %xmm0,%xmm5
movsd  0x68(%rax),%xmm0
mulsd  %xmm4,%xmm0
subsd  %xmm0,%xmm2
movsd  0x70(%rax),%xmm0
mulsd  %xmm4,%xmm0
subsd  %xmm0,%xmm9
mulsd  0x78(%rax),%xmm4
subsd  %xmm4,%xmm1
mulsd  0x80(%rax),%xmm5
movsd  0x88(%rax),%xmm0
mulsd  %xmm5,%xmm0
subsd  %xmm0,%xmm2
mulsd  0xa8(%rax),%xmm2
movsd  %xmm5,0x20(%r9)
movsd  %xmm2,0x28(%r9)
movsd  0x90(%rax),%xmm0
mulsd  %xmm5,%xmm0
subsd  %xmm0,%xmm9
mulsd  0x98(%rax),%xmm5
subsd  %xmm5,%xmm1
movsd  0xb0(%rax),%xmm0
mulsd  %xmm2,%xmm0
subsd  %xmm0,%xmm9
mulsd  0xb8(%rax),%xmm2
subsd  %xmm2,%xmm1
mulsd  0xd0(%rax),%xmm9
movsd  0xd8(%rax),%xmm0
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm1
mulsd  0xf8(%rax),%xmm1
jmp    189a <kernel_dtrsv_n_8_lib4+0x79a>
movsd  0x972(%rip),%xmm8
movapd %xmm8,%xmm10
divsd  %xmm0,%xmm10
movapd %xmm8,%xmm11
divsd  0x28(%rdx),%xmm11
mulsd  %xmm10,%xmm7
movsd  0x8(%rdx),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm6
mulsd  %xmm11,%xmm6
movsd  %xmm7,(%r9)
movsd  %xmm6,0x8(%r9)
movsd  0x10(%rdx),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm3
movsd  0x18(%rdx),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm4
movsd  0x30(%rdx),%xmm0
mulsd  %xmm6,%xmm0
subsd  %xmm0,%xmm3
movsd  0x38(%rdx),%xmm0
mulsd  %xmm6,%xmm0
subsd  %xmm0,%xmm4
movsd  (%rax),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm5
movsd  0x8(%rax),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm2
movsd  0x10(%rax),%xmm0
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm9
mulsd  0x18(%rax),%xmm7
subsd  %xmm7,%xmm1
movsd  0x20(%rax),%xmm0
mulsd  %xmm6,%xmm0
subsd  %xmm0,%xmm5
movsd  0x28(%rax),%xmm0
mulsd  %xmm6,%xmm0
subsd  %xmm0,%xmm2
movsd  0x30(%rax),%xmm0
mulsd  %xmm6,%xmm0
subsd  %xmm0,%xmm9
mulsd  0x38(%rax),%xmm6
subsd  %xmm6,%xmm1
movapd %xmm8,%xmm0
divsd  0x50(%rdx),%xmm0
mulsd  %xmm3,%xmm0
movapd %xmm8,%xmm3
divsd  0x78(%rdx),%xmm3
movsd  0x58(%rdx),%xmm6
mulsd  %xmm0,%xmm6
subsd  %xmm6,%xmm4
mulsd  %xmm3,%xmm4
movsd  %xmm0,0x10(%r9)
movsd  %xmm4,0x18(%r9)
movsd  0x40(%rax),%xmm3
mulsd  %xmm0,%xmm3
subsd  %xmm3,%xmm5
movsd  0x48(%rax),%xmm3
mulsd  %xmm0,%xmm3
subsd  %xmm3,%xmm2
movsd  0x50(%rax),%xmm3
mulsd  %xmm0,%xmm3
subsd  %xmm3,%xmm9
mulsd  0x58(%rax),%xmm0
subsd  %xmm0,%xmm1
movsd  0x60(%rax),%xmm0
mulsd  %xmm4,%xmm0
subsd  %xmm0,%xmm5
movsd  0x68(%rax),%xmm0
mulsd  %xmm4,%xmm0
subsd  %xmm0,%xmm2
movsd  0x70(%rax),%xmm0
mulsd  %xmm4,%xmm0
subsd  %xmm0,%xmm9
mulsd  0x78(%rax),%xmm4
subsd  %xmm4,%xmm1
movapd %xmm8,%xmm0
divsd  0x80(%rax),%xmm0
movapd %xmm8,%xmm3
divsd  0xa8(%rax),%xmm3
mulsd  %xmm5,%xmm0
movsd  0x88(%rax),%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm4,%xmm2
mulsd  %xmm3,%xmm2
movsd  %xmm0,0x20(%r9)
movsd  %xmm2,0x28(%r9)
movsd  0x90(%rax),%xmm3
mulsd  %xmm0,%xmm3
subsd  %xmm3,%xmm9
mulsd  0x98(%rax),%xmm0
subsd  %xmm0,%xmm1
movsd  0xb0(%rax),%xmm0
mulsd  %xmm2,%xmm0
subsd  %xmm0,%xmm9
mulsd  0xb8(%rax),%xmm2
movapd %xmm8,%xmm0
divsd  0xd0(%rax),%xmm0
subsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm9
divsd  0xf8(%rax),%xmm8
movsd  0xd8(%rax),%xmm0
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm1
mulsd  %xmm8,%xmm1
movsd  %xmm9,0x30(%r9)
movsd  %xmm1,0x38(%r9)
ret

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

LLVM IR (-O2):
define void @kernel_dtrsv_n_8_lib4(i32 %0, i32 %1, double* %2, i32 %3, double* nocapture %4, double* nocapture %5) {
%7 = shl nsw i32 %3, 2
%8 = sext i32 %7 to i64
%9 = getelementptr inbounds double, double* %2, i64 %8
%10 = bitcast double* %2 to i8*
tail call void @llvm.prefetch.p0i8(i8* %10, i32 0, i32 3, i32 1)
%11 = bitcast double* %9 to i8*
tail call void @llvm.prefetch.p0i8(i8* %11, i32 0, i32 3, i32 1)
%12 = getelementptr inbounds double, double* %2, i64 8
%13 = bitcast double* %12 to i8*
tail call void @llvm.prefetch.p0i8(i8* %13, i32 0, i32 3, i32 1)
%14 = getelementptr inbounds double, double* %9, i64 8
%15 = bitcast double* %14 to i8*
tail call void @llvm.prefetch.p0i8(i8* %15, i32 0, i32 3, i32 1)
%16 = add nsw i32 %0, -7
%17 = icmp sgt i32 %0, 7
br i1 %17, label %18, label %213
18: ; preds = %6, %18
%19 = phi double* [ %114, %18 ], [ %2, %6 ]
%20 = phi double* [ %201, %18 ], [ %4, %6 ]
%21 = phi double* [ %116, %18 ], [ %9, %6 ]
%22 = phi i32 [ %202, %18 ], [ 0, %6 ]
%23 = phi <8 x double> [ %200, %18 ], [ zeroinitializer, %6 ]
%24 = getelementptr inbounds double, double* %19, i64 16
%25 = bitcast double* %24 to i8*
tail call void @llvm.prefetch.p0i8(i8* %25, i32 0, i32 3, i32 1)
%26 = getelementptr inbounds double, double* %21, i64 16
%27 = bitcast double* %26 to i8*
tail call void @llvm.prefetch.p0i8(i8* %27, i32 0, i32 3, i32 1)
%28 = getelementptr inbounds double, double* %19, i64 24
%29 = bitcast double* %28 to i8*
tail call void @llvm.prefetch.p0i8(i8* %29, i32 0, i32 3, i32 1)
%30 = getelementptr inbounds double, double* %21, i64 24
%31 = bitcast double* %30 to i8*
tail call void @llvm.prefetch.p0i8(i8* %31, i32 0, i32 3, i32 1)
%32 = load double, double* %20
%33 = getelementptr inbounds double, double* %20, i64 1
%34 = load double, double* %33
%35 = getelementptr inbounds double, double* %20, i64 2
%36 = load double, double* %35
%37 = getelementptr inbounds double, double* %20, i64 3
%38 = load double, double* %37
%39 = bitcast double* %19 to <4 x double>*
%40 = load <4 x double>, <4 x double>* %39
%41 = load double, double* %21
%42 = getelementptr inbounds double, double* %21, i64 1
%43 = load double, double* %42
%44 = getelementptr inbounds double, double* %21, i64 2
%45 = load double, double* %44
%46 = getelementptr inbounds double, double* %21, i64 3
%47 = load double, double* %46
%48 = shufflevector <4 x double> %40, <4 x double> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
%49 = insertelement <8 x double> %48, double %41, i64 4
%50 = insertelement <8 x double> %49, double %43, i64 5
%51 = insertelement <8 x double> %50, double %45, i64 6
%52 = insertelement <8 x double> %51, double %47, i64 7
%53 = insertelement <8 x double> poison, double %32, i64 0
%54 = shufflevector <8 x double> %53, <8 x double> poison, <8 x i32> zeroinitializer
%55 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %52, <8 x double> %54, <8 x double> %23)
%56 = getelementptr inbounds double, double* %19, i64 4
%57 = bitcast double* %56 to <4 x double>*
%58 = load <4 x double>, <4 x double>* %57
%59 = getelementptr inbounds double, double* %21, i64 4
%60 = load double, double* %59
%61 = getelementptr inbounds double, double* %21, i64 5
%62 = load double, double* %61
%63 = getelementptr inbounds double, double* %21, i64 6
%64 = load double, double* %63
%65 = getelementptr inbounds double, double* %21, i64 7
%66 = load double, double* %65
%67 = shufflevector <4 x double> %58, <4 x double> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
%68 = insertelement <8 x double> %67, double %60, i64 4
%69 = insertelement <8 x double> %68, double %62, i64 5
%70 = insertelement <8 x double> %69, double %64, i64 6
%71 = insertelement <8 x double> %70, double %66, i64 7
%72 = insertelement <8 x double> poison, double %34, i64 0
%73 = shufflevector <8 x double> %72, <8 x double> poison, <8 x i32> zeroinitializer
%74 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %71, <8 x double> %73, <8 x double> %55)
%75 = getelementptr inbounds double, double* %19, i64 8
%76 = bitcast double* %75 to <4 x double>*
%77 = load <4 x double>, <4 x double>* %76
%78 = getelementptr inbounds double, double* %21, i64 8
%79 = load double, double* %78
%80 = getelementptr inbounds double, double* %21, i64 9
%81 = load double, double* %80
%82 = getelementptr inbounds double, double* %21, i64 10
%83 = load double, double* %82
%84 = getelementptr inbounds double, double* %21, i64 11
%85 = load double, double* %84
%86 = shufflevector <4 x double> %77, <4 x double> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
%87 = insertelement <8 x double> %86, double %79, i64 4
%88 = insertelement <8 x double> %87, double %81, i64 5
%89 = insertelement <8 x double> %88, double %83, i64 6
%90 = insertelement <8 x double> %89, double %85, i64 7
%91 = insertelement <8 x double> poison, double %36, i64 0
%92 = shufflevector <8 x double> %91, <8 x double> poison, <8 x i32> zeroinitializer
%93 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %90, <8 x double> %92, <8 x double> %74)
%94 = getelementptr inbounds double, double* %19, i64 12
%95 = bitcast double* %94 to <4 x double>*
%96 = load <4 x double>, <4 x double>* %95
%97 = getelementptr inbounds double, double* %21, i64 12
%98 = load double, double* %97
%99 = getelementptr inbounds double, double* %21, i64 13
%100 = load double, double* %99
%101 = getelementptr inbounds double, double* %21, i64 14
%102 = load double, double* %101
%103 = getelementptr inbounds double, double* %21, i64 15
%104 = load double, double* %103
%105 = shufflevector <4 x double> %96, <4 x double> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
%106 = insertelement <8 x double> %105, double %98, i64 4
%107 = insertelement <8 x double> %106, double %100, i64 5
%108 = insertelement <8 x double> %107, double %102, i64 6
%109 = insertelement <8 x double> %108, double %104, i64 7
%110 = insertelement <8 x double> poison, double %38, i64 0
%111 = shufflevector <8 x double> %110, <8 x double> poison, <8 x i32> zeroinitializer
%112 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %109, <8 x double> %111, <8 x double> %93)
%113 = getelementptr inbounds double, double* %20, i64 4
%114 = getelementptr inbounds double, double* %19, i64 32
%115 = bitcast double* %114 to i8*
tail call void @llvm.prefetch.p0i8(i8* %115, i32 0, i32 3, i32 1)
%116 = getelementptr inbounds double, double* %21, i64 32
%117 = bitcast double* %116 to i8*
tail call void @llvm.prefetch.p0i8(i8* %117, i32 0, i32 3, i32 1)
%118 = getelementptr inbounds double, double* %19, i64 40
%119 = bitcast double* %118 to i8*
tail call void @llvm.prefetch.p0i8(i8* %119, i32 0, i32 3, i32 1)
%120 = getelementptr inbounds double, double* %21, i64 40
%121 = bitcast double* %120 to i8*
tail call void @llvm.prefetch.p0i8(i8* %121, i32 0, i32 3, i32 1)
%122 = load double, double* %113
%123 = getelementptr inbounds double, double* %20, i64 5
%124 = load double, double* %123
%125 = getelementptr inbounds double, double* %20, i64 6
%126 = load double, double* %125
%127 = getelementptr inbounds double, double* %20, i64 7
%128 = load double, double* %127
%129 = bitcast double* %24 to <4 x double>*
%130 = load <4 x double>, <4 x double>* %129
%131 = load double, double* %26
%132 = getelementptr inbounds double, double* %21, i64 17
%133 = load double, double* %132
%134 = getelementptr inbounds double, double* %21, i64 18
%135 = load double, double* %134
%136 = getelementptr inbounds double, double* %21, i64 19
%137 = load double, double* %136
%138 = shufflevector <4 x double> %130, <4 x double> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
%139 = insertelement <8 x double> %138, double %131, i64 4
%140 = insertelement <8 x double> %139, double %133, i64 5
%141 = insertelement <8 x double> %140, double %135, i64 6
%142 = insertelement <8 x double> %141, double %137, i64 7
%143 = insertelement <8 x double> poison, double %122, i64 0
%144 = shufflevector <8 x double> %143, <8 x double> poison, <8 x i32> zeroinitializer
%145 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %142, <8 x double> %144, <8 x double> %112)
%146 = getelementptr inbounds double, double* %19, i64 20
%147 = bitcast double* %146 to <4 x double>*
%148 = load <4 x double>, <4 x double>* %147
%149 = getelementptr inbounds double, double* %21, i64 20
%150 = load double, double* %149
%151 = getelementptr inbounds double, double* %21, i64 21
%152 = load double, double* %151
%153 = getelementptr inbounds double, double* %21, i64 22
%154 = load double, double* %153
%155 = getelementptr inbounds double, double* %21, i64 23
%156 = load double, double* %155
%157 = shufflevector <4 x double> %148, <4 x double> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
%158 = insertelement <8 x double> %157, double %150, i64 4
%159 = insertelement <8 x double> %158, double %152, i64 5
%160 = insertelement <8 x double> %159, double %154, i64 6
%161 = insertelement <8 x double> %160, double %156, i64 7
%162 = insertelement <8 x double> poison, double %124, i64 0
%163 = shufflevector <8 x double> %162, <8 x double> poison, <8 x i32> zeroinitializer
%164 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %161, <8 x double> %163, <8 x double> %145)
%165 = bitcast double* %28 to <4 x double>*
%166 = load <4 x double>, <4 x double>* %165
%167 = load double, double* %30
%168 = getelementptr inbounds double, double* %21, i64 25
%169 = load double, double* %168
%170 = getelementptr inbounds double, double* %21, i64 26
%171 = load double, double* %170
%172 = getelementptr inbounds double, double* %21, i64 27
%173 = load double, double* %172
%174 = shufflevector <4 x double> %166, <4 x double> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
%175 = insertelement <8 x double> %174, double %167, i64 4
%176 = insertelement <8 x double> %175, double %169, i64 5
%177 = insertelement <8 x double> %176, double %171, i64 6
%178 = insertelement <8 x double> %177, double %173, i64 7
%179 = insertelement <8 x double> poison, double %126, i64 0
%180 = shufflevector <8 x double> %179, <8 x double> poison, <8 x i32> zeroinitializer
%181 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %178, <8 x double> %180, <8 x double> %164)
%182 = getelementptr inbounds double, double* %19, i64 28
%183 = bitcast double* %182 to <4 x double>*
%184 = load <4 x double>, <4 x double>* %183
%185 = getelementptr inbounds double, double* %21, i64 28
%186 = load double, double* %185
%187 = getelementptr inbounds double, double* %21, i64 29
%188 = load double, double* %187
%189 = getelementptr inbounds double, double* %21, i64 30
%190 = load double, double* %189
%191 = getelementptr inbounds double, double* %21, i64 31
%192 = load double, double* %191
%193 = shufflevector <4 x double> %184, <4 x double> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
%194 = insertelement <8 x double> %193, double %186, i64 4
%195 = insertelement <8 x double> %194, double %188, i64 5
%196 = insertelement <8 x double> %195, double %190, i64 6
%197 = insertelement <8 x double> %196, double %192, i64 7
%198 = insertelement <8 x double> poison, double %128, i64 0
%199 = shufflevector <8 x double> %198, <8 x double> poison, <8 x i32> zeroinitializer
%200 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %197, <8 x double> %199, <8 x double> %181)
%201 = getelementptr inbounds double, double* %20, i64 8
%202 = add nuw nsw i32 %22, 8
%203 = icmp slt i32 %202, %16
br i1 %203, label %18, label %204
204: ; preds = %18
%205 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %52, <8 x double> %54, <8 x double> %23)
%206 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %71, <8 x double> %73, <8 x double> %205)
%207 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %90, <8 x double> %92, <8 x double> %206)
%208 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %109, <8 x double> %111, <8 x double> %207)
%209 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %142, <8 x double> %144, <8 x double> %208)
%210 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %161, <8 x double> %163, <8 x double> %209)
%211 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %178, <8 x double> %180, <8 x double> %210)
%212 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %197, <8 x double> %199, <8 x double> %211)
br label %213
213: ; preds = %204, %6
%214 = phi double* [ %9, %6 ], [ %116, %204 ]
%215 = phi double* [ %2, %6 ], [ %114, %204 ]
%216 = phi <8 x double> [ zeroinitializer, %6 ], [ %212, %204 ]
%217 = load double, double* %5
%218 = extractelement <8 x double> %216, i64 0
%219 = fsub double %217, %218
%220 = getelementptr inbounds double, double* %5, i64 1
%221 = load double, double* %220
%222 = extractelement <8 x double> %216, i64 1
%223 = fsub double %221, %222
%224 = getelementptr inbounds double, double* %5, i64 2
%225 = load double, double* %224
%226 = extractelement <8 x double> %216, i64 2
%227 = fsub double %225, %226
%228 = getelementptr inbounds double, double* %5, i64 3
%229 = load double, double* %228
%230 = extractelement <8 x double> %216, i64 3
%231 = fsub double %229, %230
%232 = getelementptr inbounds double, double* %5, i64 4
%233 = load double, double* %232
%234 = extractelement <8 x double> %216, i64 4
%235 = fsub double %233, %234
%236 = getelementptr inbounds double, double* %5, i64 5
%237 = load double, double* %236
%238 = extractelement <8 x double> %216, i64 5
%239 = fsub double %237, %238
%240 = getelementptr inbounds double, double* %5, i64 6
%241 = load double, double* %240
%242 = extractelement <8 x double> %216, i64 6
%243 = fsub double %241, %242
%244 = getelementptr inbounds double, double* %5, i64 7
%245 = load double, double* %244
%246 = extractelement <8 x double> %216, i64 7
%247 = fsub double %245, %246
%248 = icmp eq i32 %1, 0
%249 = load double, double* %215
br i1 %248, label %384, label %250
250: ; preds = %213
%251 = getelementptr inbounds double, double* %215, i64 1
%252 = load double, double* %251
%253 = getelementptr inbounds double, double* %215, i64 5
%254 = load double, double* %253
%255 = fmul double %219, %249
%256 = fneg double %252
%257 = tail call double @llvm.fmuladd.f64(double %256, double %255, double %223)
%258 = fmul double %257, %254
store double %255, double* %5
store double %258, double* %220
%259 = getelementptr inbounds double, double* %215, i64 2
%260 = load double, double* %259
%261 = getelementptr inbounds double, double* %215, i64 3
%262 = load double, double* %261
%263 = getelementptr inbounds double, double* %215, i64 6
%264 = load double, double* %263
%265 = getelementptr inbounds double, double* %215, i64 7
%266 = load double, double* %265
%267 = fneg double %260
%268 = tail call double @llvm.fmuladd.f64(double %267, double %255, double %227)
%269 = fneg double %262
%270 = tail call double @llvm.fmuladd.f64(double %269, double %255, double %231)
%271 = fneg double %264
%272 = tail call double @llvm.fmuladd.f64(double %271, double %258, double %268)
%273 = fneg double %266
%274 = tail call double @llvm.fmuladd.f64(double %273, double %258, double %270)
%275 = load double, double* %214
%276 = getelementptr inbounds double, double* %214, i64 1
%277 = load double, double* %276
%278 = getelementptr inbounds double, double* %214, i64 2
%279 = load double, double* %278
%280 = getelementptr inbounds double, double* %214, i64 3
%281 = load double, double* %280
%282 = getelementptr inbounds double, double* %214, i64 4
%283 = load double, double* %282
%284 = getelementptr inbounds double, double* %214, i64 5
%285 = load double, double* %284
%286 = getelementptr inbounds double, double* %214, i64 6
%287 = load double, double* %286
%288 = getelementptr inbounds double, double* %214, i64 7
%289 = load double, double* %288
%290 = fneg double %275
%291 = tail call double @llvm.fmuladd.f64(double %290, double %255, double %235)
%292 = fneg double %277
%293 = tail call double @llvm.fmuladd.f64(double %292, double %255, double %239)
%294 = fneg double %279
%295 = tail call double @llvm.fmuladd.f64(double %294, double %255, double %243)
%296 = fneg double %281
%297 = tail call double @llvm.fmuladd.f64(double %296, double %255, double %247)
%298 = fneg double %283
%299 = tail call double @llvm.fmuladd.f64(double %298, double %258, double %291)
%300 = fneg double %285
%301 = tail call double @llvm.fmuladd.f64(double %300, double %258, double %293)
%302 = fneg double %287
%303 = tail call double @llvm.fmuladd.f64(double %302, double %258, double %295)
%304 = fneg double %289
%305 = tail call double @llvm.fmuladd.f64(double %304, double %258, double %297)
%306 = getelementptr inbounds double, double* %215, i64 10
%307 = load double, double* %306
%308 = getelementptr inbounds double, double* %215, i64 11
%309 = load double, double* %308
%310 = getelementptr inbounds double, double* %215, i64 15
%311 = load double, double* %310
%312 = fmul double %272, %307
%313 = fneg double %309
%314 = tail call double @llvm.fmuladd.f64(double %313, double %312, double %274)
%315 = fmul double %314, %311
store double %312, double* %224
store double %315, double* %228
%316 = getelementptr inbounds double, double* %214, i64 8
%317 = load double, double* %316
%318 = getelementptr inbounds double, double* %214, i64 9
%319 = load double, double* %318
%320 = getelementptr inbounds double, double* %214, i64 10
%321 = load double, double* %320
%322 = getelementptr inbounds double, double* %214, i64 11
%323 = load double, double* %322
%324 = getelementptr inbounds double, double* %214, i64 12
%325 = load double, double* %324
%326 = getelementptr inbounds double, double* %214, i64 13
%327 = load double, double* %326
%328 = getelementptr inbounds double, double* %214, i64 14
%329 = load double, double* %328
%330 = getelementptr inbounds double, double* %214, i64 15
%331 = load double, double* %330
%332 = fneg double %317
%333 = tail call double @llvm.fmuladd.f64(double %332, double %312, double %299)
%334 = fneg double %319
%335 = tail call double @llvm.fmuladd.f64(double %334, double %312, double %301)
%336 = fneg double %321
%337 = tail call double @llvm.fmuladd.f64(double %336, double %312, double %303)
%338 = fneg double %323
%339 = tail call double @llvm.fmuladd.f64(double %338, double %312, double %305)
%340 = fneg double %325
%341 = tail call double @llvm.fmuladd.f64(double %340, double %315, double %333)
%342 = fneg double %327
%343 = tail call double @llvm.fmuladd.f64(double %342, double %315, double %335)
%344 = fneg double %329
%345 = tail call double @llvm.fmuladd.f64(double %344, double %315, double %337)
%346 = fneg double %331
%347 = tail call double @llvm.fmuladd.f64(double %346, double %315, double %339)
%348 = getelementptr inbounds double, double* %214, i64 16
%349 = load double, double* %348
%350 = getelementptr inbounds double, double* %214, i64 17
%351 = load double, double* %350
%352 = getelementptr inbounds double, double* %214, i64 21
%353 = load double, double* %352
%354 = fmul double %341, %349
%355 = fneg double %351
%356 = tail call double @llvm.fmuladd.f64(double %355, double %354, double %343)
%357 = fmul double %356, %353
store double %354, double* %232
store double %357, double* %236
%358 = getelementptr inbounds double, double* %214, i64 18
%359 = load double, double* %358
%360 = getelementptr inbounds double, double* %214, i64 19
%361 = load double, double* %360
%362 = getelementptr inbounds double, double* %214, i64 22
%363 = load double, double* %362
%364 = getelementptr inbounds double, double* %214, i64 23
%365 = load double, double* %364
%366 = fneg double %359
%367 = tail call double @llvm.fmuladd.f64(double %366, double %354, double %345)
%368 = fneg double %361
%369 = tail call double @llvm.fmuladd.f64(double %368, double %354, double %347)
%370 = fneg double %363
%371 = tail call double @llvm.fmuladd.f64(double %370, double %357, double %367)
%372 = fneg double %365
%373 = tail call double @llvm.fmuladd.f64(double %372, double %357, double %369)
%374 = getelementptr inbounds double, double* %214, i64 26
%375 = load double, double* %374
%376 = getelementptr inbounds double, double* %214, i64 27
%377 = load double, double* %376
%378 = getelementptr inbounds double, double* %214, i64 31
%379 = load double, double* %378
%380 = fmul double %371, %375
%381 = fneg double %377
%382 = tail call double @llvm.fmuladd.f64(double %381, double %380, double %373)
%383 = fmul double %382, %379
br label %526
384: ; preds = %213
%385 = fdiv double 1.000000e+00, %249
%386 = getelementptr inbounds double, double* %215, i64 1
%387 = load double, double* %386
%388 = getelementptr inbounds double, double* %215, i64 5
%389 = load double, double* %388
%390 = fdiv double 1.000000e+00, %389
%391 = fmul double %219, %385
%392 = fneg double %387
%393 = tail call double @llvm.fmuladd.f64(double %392, double %391, double %223)
%394 = fmul double %393, %390
store double %391, double* %5
store double %394, double* %220
%395 = getelementptr inbounds double, double* %215, i64 2
%396 = load double, double* %395
%397 = getelementptr inbounds double, double* %215, i64 3
%398 = load double, double* %397
%399 = getelementptr inbounds double, double* %215, i64 6
%400 = load double, double* %399
%401 = getelementptr inbounds double, double* %215, i64 7
%402 = load double, double* %401
%403 = fneg double %396
%404 = tail call double @llvm.fmuladd.f64(double %403, double %391, double %227)
%405 = fneg double %398
%406 = tail call double @llvm.fmuladd.f64(double %405, double %391, double %231)
%407 = fneg double %400
%408 = tail call double @llvm.fmuladd.f64(double %407, double %394, double %404)
%409 = fneg double %402
%410 = tail call double @llvm.fmuladd.f64(double %409, double %394, double %406)
%411 = load double, double* %214
%412 = getelementptr inbounds double, double* %214, i64 1
%413 = load double, double* %412
%414 = getelementptr inbounds double, double* %214, i64 2
%415 = load double, double* %414
%416 = getelementptr inbounds double, double* %214, i64 3
%417 = load double, double* %416
%418 = getelementptr inbounds double, double* %214, i64 4
%419 = load double, double* %418
%420 = getelementptr inbounds double, double* %214, i64 5
%421 = load double, double* %420
%422 = getelementptr inbounds double, double* %214, i64 6
%423 = load double, double* %422
%424 = getelementptr inbounds double, double* %214, i64 7
%425 = load double, double* %424
%426 = fneg double %411
%427 = tail call double @llvm.fmuladd.f64(double %426, double %391, double %235)
%428 = fneg double %413
%429 = tail call double @llvm.fmuladd.f64(double %428, double %391, double %239)
%430 = fneg double %415
%431 = tail call double @llvm.fmuladd.f64(double %430, double %391, double %243)
%432 = fneg double %417
%433 = tail call double @llvm.fmuladd.f64(double %432, double %391, double %247)
%434 = fneg double %419
%435 = tail call double @llvm.fmuladd.f64(double %434, double %394, double %427)
%436 = fneg double %421
%437 = tail call double @llvm.fmuladd.f64(double %436, double %394, double %429)
%438 = fneg double %423
%439 = tail call double @llvm.fmuladd.f64(double %438, double %394, double %431)
%440 = fneg double %425
%441 = tail call double @llvm.fmuladd.f64(double %440, double %394, double %433)
%442 = getelementptr inbounds double, double* %215, i64 10
%443 = load double, double* %442
%444 = fdiv double 1.000000e+00, %443
%445 = getelementptr inbounds double, double* %215, i64 11
%446 = load double, double* %445
%447 = getelementptr inbounds double, double* %215, i64 15
%448 = load double, double* %447
%449 = fdiv double 1.000000e+00, %448
%450 = fmul double %408, %444
%451 = fneg double %446
%452 = tail call double @llvm.fmuladd.f64(double %451, double %450, double %410)
%453 = fmul double %452, %449
store double %450, double* %224
store double %453, double* %228
%454 = getelementptr inbounds double, double* %214, i64 8
%455 = load double, double* %454
%456 = getelementptr inbounds double, double* %214, i64 9
%457 = load double, double* %456
%458 = getelementptr inbounds double, double* %214, i64 10
%459 = load double, double* %458
%460 = getelementptr inbounds double, double* %214, i64 11
%461 = load double, double* %460
%462 = getelementptr inbounds double, double* %214, i64 12
%463 = load double, double* %462
%464 = getelementptr inbounds double, double* %214, i64 13
%465 = load double, double* %464
%466 = getelementptr inbounds double, double* %214, i64 14
%467 = load double, double* %466
%468 = getelementptr inbounds double, double* %214, i64 15
%469 = load double, double* %468
%470 = fneg double %455
%471 = tail call double @llvm.fmuladd.f64(double %470, double %450, double %435)
%472 = fneg double %457
%473 = tail call double @llvm.fmuladd.f64(double %472, double %450, double %437)
%474 = fneg double %459
%475 = tail call double @llvm.fmuladd.f64(double %474, double %450, double %439)
%476 = fneg double %461
%477 = tail call double @llvm.fmuladd.f64(double %476, double %450, double %441)
%478 = fneg double %463
%479 = tail call double @llvm.fmuladd.f64(double %478, double %453, double %471)
%480 = fneg double %465
%481 = tail call double @llvm.fmuladd.f64(double %480, double %453, double %473)
%482 = fneg double %467
%483 = tail call double @llvm.fmuladd.f64(double %482, double %453, double %475)
%484 = fneg double %469
%485 = tail call double @llvm.fmuladd.f64(double %484, double %453, double %477)
%486 = getelementptr inbounds double, double* %214, i64 16
%487 = load double, double* %486
%488 = fdiv double 1.000000e+00, %487
%489 = getelementptr inbounds double, double* %214, i64 17
%490 = load double, double* %489
%491 = getelementptr inbounds double, double* %214, i64 21
%492 = load double, double* %491
%493 = fdiv double 1.000000e+00, %492
%494 = fmul double %479, %488
%495 = fneg double %490
%496 = tail call double @llvm.fmuladd.f64(double %495, double %494, double %481)
%497 = fmul double %496, %493
store double %494, double* %232
store double %497, double* %236
%498 = getelementptr inbounds double, double* %214, i64 18
%499 = load double, double* %498
%500 = getelementptr inbounds double, double* %214, i64 19
%501 = load double, double* %500
%502 = getelementptr inbounds double, double* %214, i64 22
%503 = load double, double* %502
%504 = getelementptr inbounds double, double* %214, i64 23
%505 = load double, double* %504
%506 = fneg double %499
%507 = tail call double @llvm.fmuladd.f64(double %506, double %494, double %483)
%508 = fneg double %501
%509 = tail call double @llvm.fmuladd.f64(double %508, double %494, double %485)
%510 = fneg double %503
%511 = tail call double @llvm.fmuladd.f64(double %510, double %497, double %507)
%512 = fneg double %505
%513 = tail call double @llvm.fmuladd.f64(double %512, double %497, double %509)
%514 = getelementptr inbounds double, double* %214, i64 26
%515 = load double, double* %514
%516 = fdiv double 1.000000e+00, %515
%517 = getelementptr inbounds double, double* %214, i64 27
%518 = load double, double* %517
%519 = getelementptr inbounds double, double* %214, i64 31
%520 = load double, double* %519
%521 = fdiv double 1.000000e+00, %520
%522 = fmul double %511, %516
%523 = fneg double %518
%524 = tail call double @llvm.fmuladd.f64(double %523, double %522, double %513)
%525 = fmul double %524, %521
br label %526
526: ; preds = %384, %250
%527 = phi double [ %522, %384 ], [ %380, %250 ]
%528 = phi double [ %525, %384 ], [ %383, %250 ]
store double %527, double* %240
store double %528, double* %244
ret void
}