void scalars_minv_fts_poly(double r, double aa, double ab, double *scalar_fts) {
  double scalar[44];
  scalars_nonewald_poly_full(2, r, aa, ab, scalar);
  double xa11 = scalar[0];
  double xa12 = scalar[1];
  double xa21 = scalar[2];
  double xa22 = scalar[3];
  double ya11 = scalar[4];
  double ya12 = scalar[5];
  double ya21 = scalar[6];
  double ya22 = scalar[7];
  double yb11 = scalar[8];
  double yb12 = scalar[9];
  double yb21 = scalar[10];
  double yb22 = scalar[11];
  double xc11 = scalar[12];
  double xc12 = scalar[13];
  double xc21 = scalar[14];
  double xc22 = scalar[15];
  double yc11 = scalar[16];
  double yc12 = scalar[17];
  double yc21 = scalar[18];
  double yc22 = scalar[19];
  double xg11 = scalar[20];
  double xg12 = scalar[21];
  double xg21 = scalar[22];
  double xg22 = scalar[23];
  double yg11 = scalar[24];
  double yg12 = scalar[25];
  double yg21 = scalar[26];
  double yg22 = scalar[27];
  double yh11 = scalar[28];
  double yh12 = scalar[29];
  double yh21 = scalar[30];
  double yh22 = scalar[31];
  double xm11 = scalar[32];
  double xm12 = scalar[33];
  double xm21 = scalar[34];
  double xm22 = scalar[35];
  double ym11 = scalar[36];
  double ym12 = scalar[37];
  double ym21 = scalar[38];
  double ym22 = scalar[39];
  double zm11 = scalar[40];
  double zm12 = scalar[41];
  double zm21 = scalar[42];
  double zm22 = scalar[43];
  double mat[36];
  double det;
  double XC11, XC12, XC21, XC22;
  det = xc11 * xc22 - xc12 * xc21;
  XC11 = xc22 / det;
  XC12 = -xc12 / det;
  XC21 = -xc21 / det;
  XC22 = xc11 / det;
  double ZM11, ZM12, ZM21, ZM22;
  det = zm11 * zm22 - zm12 * zm21;
  ZM11 = zm22 / det;
  ZM12 = -zm12 / det;
  ZM21 = -zm21 / det;
  ZM22 = zm11 / det;
  double YA11, YA12, YA21, YA22;
  double YB11, YB12, YB21, YB22;
  double YC11, YC12, YC21, YC22;
  double YG11, YG12, YG21, YG22;
  double YH11, YH12, YH21, YH22;
  double YM11, YM12, YM21, YM22;
  mat[0] = ya11;
  mat[1] = ya12;
  mat[2] = -yb11;
  mat[3] = yb21;
  mat[4] = 2.0 * yg11;
  mat[5] = -2.0 * yg21;
  mat[6] = ya21;
  mat[7] = ya22;
  mat[8] = -yb12;
  mat[9] = yb22;
  mat[10] = 2.0 * yg12;
  mat[11] = -2.0 * yg22;
  mat[12] = -yb11;
  mat[13] = -yb12;
  mat[14] = yc11;
  mat[15] = yc12;
  mat[16] = 2.0 * yh11;
  mat[17] = 2.0 * yh21;
  mat[18] = yb21;
  mat[19] = yb22;
  mat[20] = yc21;
  mat[21] = yc22;
  mat[22] = 2.0 * yh12;
  mat[23] = 2.0 * yh22;
  mat[24] = yg11;
  mat[25] = yg12;
  mat[26] = yh11;
  mat[27] = yh12;
  mat[28] = ym11;
  mat[29] = ym12;
  mat[30] = -yg21;
  mat[31] = -yg22;
  mat[32] = yh21;
  mat[33] = yh22;
  mat[34] = ym21;
  mat[35] = ym22;
  lapack_inv_(6, mat);
  YA11 = mat[0];
  YA12 = mat[1];
  YA21 = mat[6];
  YA22 = mat[7];
  YB11 = -mat[12];
  YB12 = -mat[13];
  YB21 = mat[18];
  YB22 = mat[19];
  YC11 = mat[14];
  YC12 = mat[15];
  YC21 = mat[20];
  YC22 = mat[21];
  YG11 = mat[24];
  YG12 = mat[25];
  YG21 = -mat[30];
  YG22 = -mat[31];
  YH11 = mat[26];
  YH12 = mat[27];
  YH21 = mat[32];
  YH22 = mat[33];
  YM11 = mat[28];
  YM12 = mat[29];
  YM21 = mat[34];
  YM22 = mat[35];
  double XA11, XA12, XA21, XA22;
  double XG11, XG12, XG21, XG22;
  double XM11, XM12, XM21, XM22;
  double mp11 = 0.5 * (xm11 + zm11);
  double mp12 = 0.5 * (xm12 + zm12);
  double mm11 = 0.5 * (xm11 - zm11);
  double mm12 = 0.5 * (xm12 - zm12);
  double mp21 = 0.5 * (xm21 + zm21);
  double mp22 = 0.5 * (xm22 + zm22);
  double mm21 = 0.5 * (xm21 - zm21);
  double mm22 = 0.5 * (xm22 - zm22);
  mat[0] = xa11;
  mat[1] = xa12;
  mat[2] = -xg11;
  mat[3] = xg21;
  mat[4] = -xg11;
  mat[5] = xg21;
  mat[6] = xa21;
  mat[7] = xa22;
  mat[8] = -xg12;
  mat[9] = xg22;
  mat[10] = -xg12;
  mat[11] = xg22;
  mat[12] = -xg11 / 3.0;
  mat[13] = -xg12 / 3.0;
  mat[14] = mp11;
  mat[15] = mp12;
  mat[16] = mm11;
  mat[17] = mm12;
  mat[18] = xg21 / 3.0;
  mat[19] = xg22 / 3.0;
  mat[20] = mp21;
  mat[21] = mp22;
  mat[22] = mm21;
  mat[23] = mm22;
  mat[24] = -xg11 / 3.0;
  mat[25] = -xg12 / 3.0;
  mat[26] = mm11;
  mat[27] = mm12;
  mat[28] = mp11;
  mat[29] = mp12;
  mat[30] = xg21 / 3.0;
  mat[31] = xg22 / 3.0;
  mat[32] = mm21;
  mat[33] = mm22;
  mat[34] = mp21;
  mat[35] = mp22;
  lapack_inv_(6, mat);
  XA11 = mat[0];
  XA12 = mat[1];
  XA21 = mat[6];
  XA22 = mat[7];
  XG11 = -3.0 * mat[12];
  XG12 = -3.0 * mat[13];
  XG21 = 3.0 * mat[18];
  XG22 = 3.0 * mat[19];
  XM11 = 2.0 * mat[14] - ZM11;
  XM12 = 2.0 * mat[15] - ZM12;
  XM21 = 2.0 * mat[20] - ZM21;
  XM22 = 2.0 * mat[21] - ZM22;
  scalar_fts[0] = XA11;
  scalar_fts[1] = XA12;
  scalar_fts[2] = XA21;
  scalar_fts[3] = XA22;
  scalar_fts[4] = YA11;
  scalar_fts[5] = YA12;
  scalar_fts[6] = YA21;
  scalar_fts[7] = YA22;
  scalar_fts[8] = YB11;
  scalar_fts[9] = YB12;
  scalar_fts[10] = YB21;
  scalar_fts[11] = YB22;
  scalar_fts[12] = XC11;
  scalar_fts[13] = XC12;
  scalar_fts[14] = XC21;
  scalar_fts[15] = XC22;
  scalar_fts[16] = YC11;
  scalar_fts[17] = YC12;
  scalar_fts[18] = YC21;
  scalar_fts[19] = YC22;
  scalar_fts[20] = XG11;
  scalar_fts[21] = XG12;
  scalar_fts[22] = XG21;
  scalar_fts[23] = XG22;
  scalar_fts[24] = YG11;
  scalar_fts[25] = YG12;
  scalar_fts[26] = YG21;
  scalar_fts[27] = YG22;
  scalar_fts[28] = YH11;
  scalar_fts[29] = YH12;
  scalar_fts[30] = YH21;
  scalar_fts[31] = YH22;
  scalar_fts[32] = XM11;
  scalar_fts[33] = XM12;
  scalar_fts[34] = XM21;
  scalar_fts[35] = XM22;
  scalar_fts[36] = YM11;
  scalar_fts[37] = YM12;
  scalar_fts[38] = YM21;
  scalar_fts[39] = YM22;
  scalar_fts[40] = ZM11;
  scalar_fts[41] = ZM12;
  scalar_fts[42] = ZM21;
  scalar_fts[43] = ZM22;
}


x86 assembly (clang, -O0):
<scalars_minv_fts_poly>:
push   %rbp
mov    %rsp,%rbp
sub    $0x5b0,%rsp
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
mov    %rdi,-0x20(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
lea    -0x180(%rbp),%rsi
mov    $0x2,%edi
mov    $0x3,%al
call   1040 <scalars_nonewald_poly_full@plt>
movsd  -0x180(%rbp),%xmm0
ff
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0x178(%rbp),%xmm0
ff
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0x170(%rbp),%xmm0
ff
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0x168(%rbp),%xmm0
ff
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  -0x140(%rbp),%xmm0
ff
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
ff
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  -0x118(%rbp),%xmm0
ff
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  -0x108(%rbp),%xmm0
ff
movsd  %xmm0,-0x200(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0x220(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x230(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0x238(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0x240(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0x248(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x250(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x258(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0x260(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0x268(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x270(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x278(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x280(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x288(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x290(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x298(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x2a0(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x2a8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x2b0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x2b8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x2c0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x2c8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x2d0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x2d8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x2e0(%rbp)
ff
movsd  -0x1e8(%rbp),%xmm0
ff
movsd  -0x200(%rbp),%xmm2
ff
movsd  -0x1f0(%rbp),%xmm1
ff
mulsd  -0x1f8(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x408(%rbp)
ff
movsd  -0x200(%rbp),%xmm0
ff
divsd  -0x408(%rbp),%xmm0
ff
movsd  %xmm0,-0x410(%rbp)
ff
movsd  -0x1f0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x408(%rbp),%xmm0
ff
movsd  %xmm0,-0x418(%rbp)
ff
movsd  -0x1f8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x408(%rbp),%xmm0
ff
movsd  %xmm0,-0x420(%rbp)
ff
movsd  -0x1e8(%rbp),%xmm0
ff
divsd  -0x408(%rbp),%xmm0
ff
movsd  %xmm0,-0x428(%rbp)
ff
movsd  -0x2c8(%rbp),%xmm0
ff
movsd  -0x2e0(%rbp),%xmm2
ff
movsd  -0x2d0(%rbp),%xmm1
ff
mulsd  -0x2d8(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x408(%rbp)
ff
movsd  -0x2e0(%rbp),%xmm0
ff
divsd  -0x408(%rbp),%xmm0
ff
movsd  %xmm0,-0x430(%rbp)
ff
movsd  -0x2d0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x408(%rbp),%xmm0
ff
movsd  %xmm0,-0x438(%rbp)
ff
movsd  -0x2d8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
divsd  -0x408(%rbp),%xmm0
ff
movsd  %xmm0,-0x440(%rbp)
ff
movsd  -0x2c8(%rbp),%xmm0
ff
divsd  -0x408(%rbp),%xmm0
ff
movsd  %xmm0,-0x448(%rbp)
ff
movsd  -0x1a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x400(%rbp)
ff
movsd  -0x1b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3f8(%rbp)
ff
movsd  -0x1c8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x3f0(%rbp)
ff
movsd  -0x1d8(%rbp),%xmm0
ff
movsd  %xmm0,-0x3e8(%rbp)
ff
movsd  0x1a13(%rip),%xmm0
mulsd  -0x248(%rbp),%xmm0
ff
movsd  %xmm0,-0x3e0(%rbp)
ff
movsd  0x1a03(%rip),%xmm0
mulsd  -0x258(%rbp),%xmm0
ff
movsd  %xmm0,-0x3d8(%rbp)
ff
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x3d0(%rbp)
ff
movsd  -0x1c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3c8(%rbp)
ff
movsd  -0x1d0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x3c0(%rbp)
ff
movsd  -0x1e0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3b8(%rbp)
ff
movsd  0x198c(%rip),%xmm0
mulsd  -0x250(%rbp),%xmm0
ff
movsd  %xmm0,-0x3b0(%rbp)
ff
movsd  0x197c(%rip),%xmm0
mulsd  -0x260(%rbp),%xmm0
ff
movsd  %xmm0,-0x3a8(%rbp)
ff
movsd  -0x1c8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x3a0(%rbp)
ff
movsd  -0x1d0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x398(%rbp)
ff
movsd  -0x208(%rbp),%xmm0
ff
movsd  %xmm0,-0x390(%rbp)
ff
movsd  -0x210(%rbp),%xmm0
ff
movsd  %xmm0,-0x388(%rbp)
ff
movsd  0x18ee(%rip),%xmm0
mulsd  -0x268(%rbp),%xmm0
ff
movsd  %xmm0,-0x380(%rbp)
ff
movsd  0x18d6(%rip),%xmm0
mulsd  -0x278(%rbp),%xmm0
ff
movsd  %xmm0,-0x378(%rbp)
ff
movsd  -0x1d8(%rbp),%xmm0
ff
movsd  %xmm0,-0x370(%rbp)
ff
movsd  -0x1e0(%rbp),%xmm0
ff
movsd  %xmm0,-0x368(%rbp)
ff
movsd  -0x218(%rbp),%xmm0
ff
movsd  %xmm0,-0x360(%rbp)
ff
movsd  -0x220(%rbp),%xmm0
ff
movsd  %xmm0,-0x358(%rbp)
ff
movsd  0x187e(%rip),%xmm0
mulsd  -0x270(%rbp),%xmm0
ff
movsd  %xmm0,-0x350(%rbp)
ff
movsd  0x1866(%rip),%xmm0
mulsd  -0x280(%rbp),%xmm0
ff
movsd  %xmm0,-0x348(%rbp)
ff
movsd  -0x248(%rbp),%xmm0
ff
movsd  %xmm0,-0x340(%rbp)
ff
movsd  -0x250(%rbp),%xmm0
ff
movsd  %xmm0,-0x338(%rbp)
ff
movsd  -0x268(%rbp),%xmm0
ff
movsd  %xmm0,-0x330(%rbp)
ff
movsd  -0x270(%rbp),%xmm0
ff
movsd  %xmm0,-0x328(%rbp)
ff
movsd  -0x2a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x320(%rbp)
ff
movsd  -0x2b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x318(%rbp)
ff
movsd  -0x258(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x310(%rbp)
ff
movsd  -0x260(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x308(%rbp)
ff
movsd  -0x278(%rbp),%xmm0
ff
movsd  %xmm0,-0x300(%rbp)
ff
movsd  -0x280(%rbp),%xmm0
ff
movsd  %xmm0,-0x2f8(%rbp)
ff
movsd  -0x2b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x2f0(%rbp)
ff
movsd  -0x2c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x2e8(%rbp)
ff
lea    -0x400(%rbp),%rsi
mov    $0x6,%edi
mov    $0x0,%al
call   1030 <lapack_inv_@plt>
movsd  -0x400(%rbp),%xmm0
ff
movsd  %xmm0,-0x450(%rbp)
ff
movsd  -0x3f8(%rbp),%xmm0
ff
movsd  %xmm0,-0x458(%rbp)
ff
movsd  -0x3d0(%rbp),%xmm0
ff
movsd  %xmm0,-0x460(%rbp)
ff
movsd  -0x3c8(%rbp),%xmm0
ff
movsd  %xmm0,-0x468(%rbp)
ff
movsd  -0x3a0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x470(%rbp)
ff
movsd  -0x398(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x478(%rbp)
ff
movsd  -0x370(%rbp),%xmm0
ff
movsd  %xmm0,-0x480(%rbp)
ff
movsd  -0x368(%rbp),%xmm0
ff
movsd  %xmm0,-0x488(%rbp)
ff
movsd  -0x390(%rbp),%xmm0
ff
movsd  %xmm0,-0x490(%rbp)
ff
movsd  -0x388(%rbp),%xmm0
ff
movsd  %xmm0,-0x498(%rbp)
ff
movsd  -0x360(%rbp),%xmm0
ff
movsd  %xmm0,-0x4a0(%rbp)
ff
movsd  -0x358(%rbp),%xmm0
ff
movsd  %xmm0,-0x4a8(%rbp)
ff
movsd  -0x340(%rbp),%xmm0
ff
movsd  %xmm0,-0x4b0(%rbp)
ff
movsd  -0x338(%rbp),%xmm0
ff
movsd  %xmm0,-0x4b8(%rbp)
ff
movsd  -0x310(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x4c0(%rbp)
ff
movsd  -0x308(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x4c8(%rbp)
ff
movsd  -0x330(%rbp),%xmm0
ff
movsd  %xmm0,-0x4d0(%rbp)
ff
movsd  -0x328(%rbp),%xmm0
ff
movsd  %xmm0,-0x4d8(%rbp)
ff
movsd  -0x300(%rbp),%xmm0
ff
movsd  %xmm0,-0x4e0(%rbp)
ff
movsd  -0x2f8(%rbp),%xmm0
ff
movsd  %xmm0,-0x4e8(%rbp)
ff
movsd  -0x320(%rbp),%xmm0
ff
movsd  %xmm0,-0x4f0(%rbp)
ff
movsd  -0x318(%rbp),%xmm0
ff
movsd  %xmm0,-0x4f8(%rbp)
ff
movsd  -0x2f0(%rbp),%xmm0
ff
movsd  %xmm0,-0x500(%rbp)
ff
movsd  -0x2e8(%rbp),%xmm0
ff
movsd  %xmm0,-0x508(%rbp)
ff
movsd  -0x288(%rbp),%xmm1
ff
addsd  -0x2c8(%rbp),%xmm1
ff
movsd  0x1559(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x570(%rbp)
ff
movsd  -0x290(%rbp),%xmm1
ff
addsd  -0x2d0(%rbp),%xmm1
ff
movsd  0x1535(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x578(%rbp)
ff
movsd  -0x288(%rbp),%xmm1
ff
subsd  -0x2c8(%rbp),%xmm1
ff
movsd  0x1511(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x580(%rbp)
ff
movsd  -0x290(%rbp),%xmm1
ff
subsd  -0x2d0(%rbp),%xmm1
ff
movsd  0x14ed(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x588(%rbp)
ff
movsd  -0x298(%rbp),%xmm1
ff
addsd  -0x2d8(%rbp),%xmm1
ff
movsd  0x14c9(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x590(%rbp)
ff
movsd  -0x2a0(%rbp),%xmm1
ff
addsd  -0x2e0(%rbp),%xmm1
ff
movsd  0x14a5(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x598(%rbp)
ff
movsd  -0x298(%rbp),%xmm1
ff
subsd  -0x2d8(%rbp),%xmm1
ff
movsd  0x1481(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x5a0(%rbp)
ff
movsd  -0x2a0(%rbp),%xmm1
ff
subsd  -0x2e0(%rbp),%xmm1
ff
movsd  0x145d(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x5a8(%rbp)
ff
movsd  -0x188(%rbp),%xmm0
ff
movsd  %xmm0,-0x400(%rbp)
ff
movsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x3f8(%rbp)
ff
movsd  -0x228(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x3f0(%rbp)
ff
movsd  -0x238(%rbp),%xmm0
ff
movsd  %xmm0,-0x3e8(%rbp)
ff
movsd  -0x228(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x3e0(%rbp)
ff
movsd  -0x238(%rbp),%xmm0
ff
movsd  %xmm0,-0x3d8(%rbp)
ff
movsd  -0x198(%rbp),%xmm0
ff
movsd  %xmm0,-0x3d0(%rbp)
ff
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3c8(%rbp)
ff
movsd  -0x230(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x3c0(%rbp)
ff
movsd  -0x240(%rbp),%xmm0
ff
movsd  %xmm0,-0x3b8(%rbp)
ff
movsd  -0x230(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x3b0(%rbp)
ff
movsd  -0x240(%rbp),%xmm0
ff
movsd  %xmm0,-0x3a8(%rbp)
ff
movsd  -0x228(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x12fe(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x3a0(%rbp)
ff
movsd  -0x230(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x12cb(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x398(%rbp)
ff
movsd  -0x570(%rbp),%xmm0
ff
movsd  %xmm0,-0x390(%rbp)
ff
movsd  -0x578(%rbp),%xmm0
ff
movsd  %xmm0,-0x388(%rbp)
ff
movsd  -0x580(%rbp),%xmm0
ff
movsd  %xmm0,-0x380(%rbp)
ff
movsd  -0x588(%rbp),%xmm0
ff
movsd  %xmm0,-0x378(%rbp)
ff
movsd  -0x238(%rbp),%xmm0
ff
movsd  0x126f(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x370(%rbp)
ff
movsd  -0x240(%rbp),%xmm0
ff
movsd  0x1253(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x368(%rbp)
ff
movsd  -0x590(%rbp),%xmm0
ff
movsd  %xmm0,-0x360(%rbp)
ff
movsd  -0x598(%rbp),%xmm0
ff
movsd  %xmm0,-0x358(%rbp)
ff
movsd  -0x5a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x350(%rbp)
ff
movsd  -0x5a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x348(%rbp)
ff
movsd  -0x228(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x11e0(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x340(%rbp)
ff
movsd  -0x230(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0x11ad(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x338(%rbp)
ff
movsd  -0x580(%rbp),%xmm0
ff
movsd  %xmm0,-0x330(%rbp)
ff
movsd  -0x588(%rbp),%xmm0
ff
movsd  %xmm0,-0x328(%rbp)
ff
movsd  -0x570(%rbp),%xmm0
ff
movsd  %xmm0,-0x320(%rbp)
ff
movsd  -0x578(%rbp),%xmm0
ff
movsd  %xmm0,-0x318(%rbp)
ff
movsd  -0x238(%rbp),%xmm0
ff
movsd  0x1151(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x310(%rbp)
ff
movsd  -0x240(%rbp),%xmm0
ff
movsd  0x1135(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x308(%rbp)
ff
movsd  -0x5a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x300(%rbp)
ff
movsd  -0x5a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x2f8(%rbp)
ff
movsd  -0x590(%rbp),%xmm0
ff
movsd  %xmm0,-0x2f0(%rbp)
ff
movsd  -0x598(%rbp),%xmm0
ff
movsd  %xmm0,-0x2e8(%rbp)
ff
lea    -0x400(%rbp),%rsi
mov    $0x6,%edi
mov    $0x0,%al
call   1030 <lapack_inv_@plt>
movsd  -0x400(%rbp),%xmm0
ff
movsd  %xmm0,-0x510(%rbp)
ff
movsd  -0x3f8(%rbp),%xmm0
ff
movsd  %xmm0,-0x518(%rbp)
ff
movsd  -0x3d0(%rbp),%xmm0
ff
movsd  %xmm0,-0x520(%rbp)
ff
movsd  -0x3c8(%rbp),%xmm0
ff
movsd  %xmm0,-0x528(%rbp)
ff
movsd  0x1096(%rip),%xmm0
mulsd  -0x3a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x530(%rbp)
ff
movsd  0x107e(%rip),%xmm0
mulsd  -0x398(%rbp),%xmm0
ff
movsd  %xmm0,-0x538(%rbp)
ff
movsd  0x105e(%rip),%xmm0
mulsd  -0x370(%rbp),%xmm0
ff
movsd  %xmm0,-0x540(%rbp)
ff
movsd  0x1046(%rip),%xmm0
mulsd  -0x368(%rbp),%xmm0
ff
movsd  %xmm0,-0x548(%rbp)
ff
movsd  -0x390(%rbp),%xmm0
ff
movsd  -0x430(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x550(%rbp)
movsd  -0x388(%rbp),%xmm0
movsd  -0x438(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x558(%rbp)
ff
movsd  -0x360(%rbp),%xmm0
ff
movsd  -0x440(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x560(%rbp)
ff
movsd  -0x358(%rbp),%xmm0
ff
movsd  -0x448(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x568(%rbp)
ff
movsd  -0x510(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x518(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x520(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x528(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0x450(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x458(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0x460(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0x468(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x38(%rax)
movsd  -0x470(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0x478(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0x480(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x50(%rax)
movsd  -0x488(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x58(%rax)
movsd  -0x410(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0x418(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  -0x420(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x70(%rax)
movsd  -0x428(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x78(%rax)
movsd  -0x490(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x80(%rax)
movsd  -0x498(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x88(%rax)
movsd  -0x4a0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x90(%rax)
movsd  -0x4a8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x98(%rax)
movsd  -0x530(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xa0(%rax)
movsd  -0x538(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xa8(%rax)
movsd  -0x540(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xb0(%rax)
movsd  -0x548(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xb8(%rax)
movsd  -0x4b0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xc0(%rax)
movsd  -0x4b8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xc8(%rax)
movsd  -0x4c0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xd0(%rax)
movsd  -0x4c8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xd8(%rax)
movsd  -0x4d0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xe0(%rax)
movsd  -0x4d8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xe8(%rax)
movsd  -0x4e0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xf0(%rax)
movsd  -0x4e8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0xf8(%rax)
movsd  -0x550(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x100(%rax)
movsd  -0x558(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x108(%rax)
movsd  -0x560(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x110(%rax)
movsd  -0x568(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x118(%rax)
movsd  -0x4f0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x120(%rax)
movsd  -0x4f8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x128(%rax)
movsd  -0x500(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x130(%rax)
movsd  -0x508(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x138(%rax)
movsd  -0x430(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x140(%rax)
movsd  -0x438(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x148(%rax)
movsd  -0x440(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x150(%rax)
movsd  -0x448(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x158(%rax)
add    $0x5b0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<scalars_minv_fts_poly>:
push   %r14
push   %rbx
sub    $0x3a8,%rsp
mov    %rdi,%rbx
lea    0x240(%rsp),%rsi
mov    $0x2,%edi
mov    $0x3,%al
call   1040 <scalars_nonewald_poly_full@plt>
movaps 0x260(%rsp),%xmm8
movapd 0x290(%rsp),%xmm11
movsd  0x2a0(%rsp),%xmm6
movsd  0x2a8(%rsp),%xmm5
movsd  0x2b0(%rsp),%xmm7
movsd  0x2b8(%rsp),%xmm9
movapd 0x300(%rsp),%xmm10
movapd 0x310(%rsp),%xmm0
movapd 0x380(%rsp),%xmm13
movapd 0x390(%rsp),%xmm2
movapd 0xe59(%rip),%xmm1
movapd 0x280(%rsp),%xmm4
xorpd  %xmm1,%xmm4
movapd %xmm7,%xmm3
mulsd  %xmm5,%xmm3
xorpd  %xmm1,%xmm5
movapd %xmm1,%xmm12
xorpd  %xmm1,%xmm7
unpcklpd %xmm6,%xmm7
mulsd  %xmm9,%xmm6
subsd  %xmm3,%xmm6
unpcklpd %xmm5,%xmm9
unpcklpd %xmm6,%xmm6
divpd  %xmm6,%xmm9
movapd %xmm9,0x220(%rsp)
divpd  %xmm6,%xmm7
movapd %xmm7,0x230(%rsp)
movapd %xmm13,%xmm5
unpckhpd %xmm13,%xmm5
movapd %xmm2,0x50(%rsp)
movapd %xmm2,%xmm6
mulsd  %xmm5,%xmm6
xorpd  %xmm12,%xmm5
movapd %xmm2,%xmm7
unpckhpd %xmm2,%xmm7
mulsd  %xmm13,%xmm7
movapd %xmm13,0x40(%rsp)
subsd  %xmm6,%xmm7
movapd %xmm2,%xmm3
shufpd $0x1,%xmm5,%xmm3
unpcklpd %xmm7,%xmm7
divpd  %xmm7,%xmm3
movapd %xmm3,0x210(%rsp)
movapd %xmm2,%xmm3
xorpd  %xmm12,%xmm3
unpcklpd %xmm13,%xmm3
divpd  %xmm7,%xmm3
movapd %xmm3,0x200(%rsp)
movaps %xmm8,0x60(%rsp)
movapd %xmm4,%xmm3
unpcklpd %xmm11,%xmm3
movapd %xmm3,0x70(%rsp)
movapd %xmm10,%xmm3
unpcklpd %xmm0,%xmm3
movapd 0xd85(%rip),%xmm5
mulpd  %xmm5,%xmm3
movapd %xmm3,0x80(%rsp)
movaps 0x270(%rsp),%xmm3
movaps %xmm3,0x90(%rsp)
movapd %xmm4,%xmm3
unpckhpd %xmm11,%xmm3
movapd %xmm3,0xa0(%rsp)
movapd %xmm10,%xmm3
unpckhpd %xmm0,%xmm3
mulpd  %xmm5,%xmm3
movaps 0x2c0(%rsp),%xmm5
movapd %xmm3,0xb0(%rsp)
movapd 0x320(%rsp),%xmm3
movapd %xmm4,0xc0(%rsp)
movapd 0x330(%rsp),%xmm4
movaps %xmm5,0xd0(%rsp)
movapd %xmm3,%xmm5
addsd  %xmm3,%xmm5
movsd  %xmm5,0xe0(%rsp)
movapd %xmm4,%xmm5
addsd  %xmm4,%xmm5
movsd  %xmm5,0xe8(%rsp)
movaps 0x240(%rsp),%xmm1
movaps %xmm1,0x10(%rsp)
movapd %xmm11,0xf0(%rsp)
movaps 0x2d0(%rsp),%xmm2
movaps %xmm2,0x100(%rsp)
movapd %xmm3,%xmm2
unpckhpd %xmm3,%xmm2
addsd  %xmm2,%xmm2
movsd  %xmm2,0x110(%rsp)
movapd %xmm4,%xmm2
unpckhpd %xmm4,%xmm2
addsd  %xmm2,%xmm2
movsd  %xmm2,0x118(%rsp)
movaps 0x250(%rsp),%xmm1
movaps %xmm1,(%rsp)
movapd %xmm10,0x120(%rsp)
movaps 0x2e0(%rsp),%xmm1
movaps %xmm1,0x190(%rsp)
movapd %xmm3,0x130(%rsp)
movaps 0x360(%rsp),%xmm1
movaps %xmm1,0x140(%rsp)
movaps 0x2f0(%rsp),%xmm1
movaps %xmm1,0x180(%rsp)
xorpd  %xmm12,%xmm0
movapd %xmm0,0x150(%rsp)
movaps 0x340(%rsp),%xmm0
movaps %xmm0,0x20(%rsp)
movapd %xmm4,0x160(%rsp)
movaps 0x370(%rsp),%xmm0
movaps %xmm0,0x170(%rsp)
movaps 0x350(%rsp),%xmm0
movaps %xmm0,0x30(%rsp)
lea    0x60(%rsp),%r14
mov    $0x6,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1030 <lapack_inv_@plt>
movapd 0xc0(%rsp),%xmm4
movaps 0x60(%rsp),%xmm0
movaps %xmm0,0x1d0(%rsp)
movaps 0x90(%rsp),%xmm0
movaps %xmm0,0x1c0(%rsp)
movaps 0xd0(%rsp),%xmm0
movaps %xmm0,0x1f0(%rsp)
movaps 0xf0(%rsp),%xmm0
movaps %xmm0,0x1b0(%rsp)
movaps 0x100(%rsp),%xmm0
movaps %xmm0,0x1e0(%rsp)
movapd 0x20(%rsp),%xmm5
movapd %xmm5,%xmm0
movapd 0x40(%rsp),%xmm1
addpd  %xmm1,%xmm0
subpd  %xmm1,%xmm5
movapd 0x30(%rsp),%xmm3
movapd %xmm3,%xmm1
movapd 0x50(%rsp),%xmm2
addpd  %xmm2,%xmm1
subpd  %xmm2,%xmm3
movapd 0xb80(%rip),%xmm2
mulpd  %xmm2,%xmm0
mulpd  %xmm2,%xmm5
movapd %xmm5,%xmm9
mulpd  %xmm2,%xmm1
mulpd  %xmm2,%xmm3
movapd %xmm3,%xmm8
movaps 0x120(%rsp),%xmm2
movaps %xmm2,0x1a0(%rsp)
movapd 0x150(%rsp),%xmm7
movaps 0x130(%rsp),%xmm2
movaps %xmm2,0x20(%rsp)
movaps 0x160(%rsp),%xmm2
movaps %xmm2,0x30(%rsp)
movaps 0x140(%rsp),%xmm2
movaps %xmm2,0x40(%rsp)
movaps 0x170(%rsp),%xmm2
movaps %xmm2,0x50(%rsp)
movaps 0x10(%rsp),%xmm2
movaps %xmm2,0x60(%rsp)
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm2
movapd 0xada(%rip),%xmm3
xorpd  %xmm3,%xmm2
movapd 0x180(%rsp),%xmm6
unpcklpd %xmm6,%xmm2
movapd %xmm2,0x70(%rsp)
movapd %xmm2,0x80(%rsp)
movaps (%rsp),%xmm2
movaps %xmm2,0x90(%rsp)
xorpd  %xmm3,%xmm4
movapd %xmm4,(%rsp)
xorpd  %xmm3,%xmm7
movapd %xmm7,0x10(%rsp)
movapd %xmm5,%xmm2
unpckhpd %xmm5,%xmm2
xorpd  %xmm3,%xmm2
shufpd $0x2,%xmm6,%xmm2
movapd %xmm2,0xa0(%rsp)
movapd %xmm2,0xb0(%rsp)
divpd  0xaa0(%rip),%xmm5
movapd %xmm5,0xc0(%rsp)
movapd %xmm0,0xd0(%rsp)
movapd %xmm9,0xe0(%rsp)
movapd %xmm6,%xmm2
divpd  0xa88(%rip),%xmm2
movapd %xmm2,0xf0(%rsp)
movapd %xmm1,0x100(%rsp)
movapd %xmm8,0x110(%rsp)
movapd %xmm5,0x120(%rsp)
movapd %xmm9,0x130(%rsp)
movapd %xmm0,0x140(%rsp)
movapd %xmm2,0x150(%rsp)
movapd %xmm8,0x160(%rsp)
movapd %xmm1,0x170(%rsp)
mov    $0x6,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1030 <lapack_inv_@plt>
movapd 0xa0d(%rip),%xmm4
mulpd  0xc0(%rsp),%xmm4
movapd 0xa0c(%rip),%xmm5
mulpd  0xf0(%rsp),%xmm5
movaps 0x60(%rsp),%xmm0
movaps 0x90(%rsp),%xmm1
movapd 0xd0(%rsp),%xmm2
movapd 0x100(%rsp),%xmm3
movups %xmm0,(%rbx)
movups %xmm1,0x10(%rbx)
movaps 0x1d0(%rsp),%xmm0
movups %xmm0,0x20(%rbx)
movaps 0x1c0(%rsp),%xmm0
movups %xmm0,0x30(%rbx)
movaps (%rsp),%xmm0
movups %xmm0,0x40(%rbx)
movaps 0x1b0(%rsp),%xmm0
movups %xmm0,0x50(%rbx)
movaps 0x220(%rsp),%xmm0
movups %xmm0,0x60(%rbx)
movaps 0x230(%rsp),%xmm0
movups %xmm0,0x70(%rbx)
movaps 0x1f0(%rsp),%xmm0
movups %xmm0,0x80(%rbx)
movaps 0x1e0(%rsp),%xmm0
movups %xmm0,0x90(%rbx)
movupd %xmm4,0xa0(%rbx)
movupd %xmm5,0xb0(%rbx)
movaps 0x1a0(%rsp),%xmm0
movups %xmm0,0xc0(%rbx)
movaps 0x10(%rsp),%xmm0
movups %xmm0,0xd0(%rbx)
movaps 0x20(%rsp),%xmm0
movups %xmm0,0xe0(%rbx)
movaps 0x30(%rsp),%xmm0
movups %xmm0,0xf0(%rbx)
addpd  %xmm2,%xmm2
movapd 0x210(%rsp),%xmm0
subpd  %xmm0,%xmm2
movupd %xmm2,0x100(%rbx)
addpd  %xmm3,%xmm3
movapd 0x200(%rsp),%xmm1
subpd  %xmm1,%xmm3
movupd %xmm3,0x110(%rbx)
movaps 0x40(%rsp),%xmm2
movups %xmm2,0x120(%rbx)
movaps 0x50(%rsp),%xmm2
movups %xmm2,0x130(%rbx)
movupd %xmm0,0x140(%rbx)
movupd %xmm1,0x150(%rbx)
add    $0x3a8,%rsp
pop    %rbx
pop    %r14
ret

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

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