void dct2dTestFlt(float (*dctBlock)[8]) {
  static const float c1 = 0.98078528040323044912;
  static const float s1 = 0.19509032201612826784;
  static const float c3 = 0.83146961230254523708;
  static const float s3 = 0.55557023301960222473;
  static const float r2c6 = 0.54119610014619698441;
  static const float r2s6 = 1.30656296487637652784;
  static const float r2 = 1.41421356237309504880;
  int row, col;
  for (row = 0; row < 8; row++) {
    float x0 = dctBlock[row][0], x1 = dctBlock[row][1], x2 = dctBlock[row][2],
          x3 = dctBlock[row][3], x4 = dctBlock[row][4], x5 = dctBlock[row][5],
          x6 = dctBlock[row][6], x7 = dctBlock[row][7], x8;
    x8 = x7 + x0;
    x0 -= x7;
    x7 = x1 + x6;
    x1 -= x6;
    x6 = x2 + x5;
    x2 -= x5;
    x5 = x3 + x4;
    x3 -= x4;
    x4 = x8 + x5;
    x8 -= x5;
    x5 = x7 + x6;
    x7 -= x6;
    x6 = c1 * (x1 + x2);
    x2 = (-s1 - c1) * x2 + x6;
    x1 = (s1 - c1) * x1 + x6;
    x6 = c3 * (x0 + x3);
    x3 = (-s3 - c3) * x3 + x6;
    x0 = (s3 - c3) * x0 + x6;
    x6 = x4 + x5;
    x4 -= x5;
    x5 = x0 + x2;
    x0 -= x2;
    x2 = x3 + x1;
    x3 -= x1;
    x1 = r2c6 * (x7 + x8);
    x7 = (-r2s6 - r2c6) * x7 + x1;
    x8 = (r2s6 - r2c6) * x8 + x1;
    dctBlock[row][0] = x6;
    dctBlock[row][4] = x4;
    dctBlock[row][2] = x8;
    dctBlock[row][6] = x7;
    dctBlock[row][7] = x2 - x5;
    dctBlock[row][1] = x2 + x5;
    dctBlock[row][3] = x3 * r2;
    dctBlock[row][5] = x0 * r2;
  }
  for (col = 0; col < 8; col++) {
    float x0 = dctBlock[0][col], x1 = dctBlock[1][col], x2 = dctBlock[2][col],
          x3 = dctBlock[3][col], x4 = dctBlock[4][col], x5 = dctBlock[5][col],
          x6 = dctBlock[6][col], x7 = dctBlock[7][col], x8;
    x8 = x7 + x0;
    x0 -= x7;
    x7 = x1 + x6;
    x1 -= x6;
    x6 = x2 + x5;
    x2 -= x5;
    x5 = x3 + x4;
    x3 -= x4;
    x4 = x8 + x5;
    x8 -= x5;
    x5 = x7 + x6;
    x7 -= x6;
    x6 = c1 * (x1 + x2);
    x2 = (-s1 - c1) * x2 + x6;
    x1 = (s1 - c1) * x1 + x6;
    x6 = c3 * (x0 + x3);
    x3 = (-s3 - c3) * x3 + x6;
    x0 = (s3 - c3) * x0 + x6;
    x6 = x4 + x5;
    x4 -= x5;
    x5 = x0 + x2;
    x0 -= x2;
    x2 = x3 + x1;
    x3 -= x1;
    x1 = r2c6 * (x7 + x8);
    x7 = (-r2s6 - r2c6) * x7 + x1;
    x8 = (r2s6 - r2c6) * x8 + x1;
    dctBlock[0][col] = x6;
    dctBlock[4][col] = x4;
    dctBlock[2][col] = x8;
    dctBlock[6][col] = x7;
    dctBlock[7][col] = (x2 - x5);
    dctBlock[1][col] = (x2 + x5);
    dctBlock[3][col] = (x3 * r2);
    dctBlock[5][col] = (x0 * r2);
  }
}


x86 assembly (clang, -O0):
<dct2dTestFlt>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
movl   $0x0,-0xc(%rbp)
cmpl   $0x8,-0xc(%rbp)
jge    150c <dct2dTestFlt+0x40c>
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  0x4(%rax),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  0x8(%rax),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  0xc(%rax),%xmm0
movss  %xmm0,-0x20(%rbp)
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  0x10(%rax),%xmm0
movss  %xmm0,-0x24(%rbp)
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  0x14(%rax),%xmm0
movss  %xmm0,-0x28(%rbp)
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  0x18(%rax),%xmm0
movss  %xmm0,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  0x1c(%rax),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
addss  -0x14(%rbp),%xmm0
movss  %xmm0,-0x34(%rbp)
movss  -0x30(%rbp),%xmm1
movss  -0x14(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x14(%rbp)
movss  -0x18(%rbp),%xmm0
addss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x2c(%rbp),%xmm1
movss  -0x18(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x1c(%rbp),%xmm0
addss  -0x28(%rbp),%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x28(%rbp),%xmm1
movss  -0x1c(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  -0x20(%rbp),%xmm0
addss  -0x24(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x24(%rbp),%xmm1
movss  -0x20(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x34(%rbp),%xmm0
addss  -0x28(%rbp),%xmm0
movss  %xmm0,-0x24(%rbp)
movss  -0x28(%rbp),%xmm1
movss  -0x34(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x34(%rbp)
movss  -0x30(%rbp),%xmm0
addss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x2c(%rbp),%xmm1
movss  -0x30(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x18(%rbp),%xmm1
addss  -0x1c(%rbp),%xmm1
movss  0xd66(%rip),%xmm0
mulss  %xmm1,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x1c(%rbp),%xmm0
movss  -0x2c(%rbp),%xmm1
movss  0xd47(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  -0x18(%rbp),%xmm0
movss  -0x2c(%rbp),%xmm1
movss  0xd24(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x14(%rbp),%xmm1
addss  -0x20(%rbp),%xmm1
movss  0xd01(%rip),%xmm0
mulss  %xmm1,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x20(%rbp),%xmm0
movss  -0x2c(%rbp),%xmm1
movss  0xce2(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x14(%rbp),%xmm0
movss  -0x2c(%rbp),%xmm1
movss  0xcbf(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x14(%rbp)
movss  -0x24(%rbp),%xmm0
addss  -0x28(%rbp),%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x28(%rbp),%xmm1
movss  -0x24(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x24(%rbp)
movss  -0x14(%rbp),%xmm0
addss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x1c(%rbp),%xmm1
movss  -0x14(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x14(%rbp)
movss  -0x20(%rbp),%xmm0
addss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  -0x18(%rbp),%xmm1
movss  -0x20(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x30(%rbp),%xmm1
addss  -0x34(%rbp),%xmm1
movss  0xc36(%rip),%xmm0
mulss  %xmm1,%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x30(%rbp),%xmm0
movss  -0x18(%rbp),%xmm1
movss  0xc17(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x34(%rbp),%xmm0
movss  -0x18(%rbp),%xmm1
movss  0xbf4(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x34(%rbp)
movss  -0x2c(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  %xmm0,(%rax)
movss  -0x24(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  %xmm0,0x10(%rax)
movss  -0x34(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  %xmm0,0x8(%rax)
movss  -0x30(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  %xmm0,0x18(%rax)
movss  -0x1c(%rbp),%xmm0
subss  -0x28(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  %xmm0,0x1c(%rax)
movss  -0x1c(%rbp),%xmm0
addss  -0x28(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  %xmm0,0x4(%rax)
movss  0xb3c(%rip),%xmm0
mulss  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  %xmm0,0xc(%rax)
movss  0xb1b(%rip),%xmm0
mulss  -0x14(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movss  %xmm0,0x14(%rax)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    110f <dct2dTestFlt+0xf>
movl   $0x0,-0x10(%rbp)
cmpl   $0x8,-0x10(%rbp)
jge    18c8 <dct2dTestFlt+0x7c8>
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  0x20(%rax,%rcx,4),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  0x40(%rax,%rcx,4),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  0x60(%rax,%rcx,4),%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  0x80(%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  0xa0(%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  0xc0(%rax,%rcx,4),%xmm0
movss  %xmm0,-0x50(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  0xe0(%rax,%rcx,4),%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x54(%rbp),%xmm0
addss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x54(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0x3c(%rbp),%xmm0
addss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x50(%rbp),%xmm1
movss  -0x3c(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x40(%rbp),%xmm0
addss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x4c(%rbp),%xmm1
movss  -0x40(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x44(%rbp),%xmm0
addss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x44(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x58(%rbp),%xmm0
addss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x4c(%rbp),%xmm1
movss  -0x58(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x54(%rbp),%xmm0
addss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x50(%rbp),%xmm1
movss  -0x54(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x3c(%rbp),%xmm1
addss  -0x40(%rbp),%xmm1
movss  0x986(%rip),%xmm0
mulss  %xmm1,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x40(%rbp),%xmm0
movss  -0x50(%rbp),%xmm1
movss  0x967(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x50(%rbp),%xmm1
movss  0x944(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x38(%rbp),%xmm1
addss  -0x44(%rbp),%xmm1
movss  0x921(%rip),%xmm0
mulss  %xmm1,%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x44(%rbp),%xmm0
movss  -0x50(%rbp),%xmm1
movss  0x902(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x38(%rbp),%xmm0
movss  -0x50(%rbp),%xmm1
movss  0x8df(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0x48(%rbp),%xmm0
addss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x4c(%rbp),%xmm1
movss  -0x48(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x38(%rbp),%xmm0
addss  -0x40(%rbp),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x40(%rbp),%xmm1
movss  -0x38(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0x44(%rbp),%xmm0
addss  -0x3c(%rbp),%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x3c(%rbp),%xmm1
movss  -0x44(%rbp),%xmm0
subss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x54(%rbp),%xmm1
addss  -0x58(%rbp),%xmm1
movss  0x856(%rip),%xmm0
mulss  %xmm1,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x54(%rbp),%xmm0
movss  -0x3c(%rbp),%xmm1
movss  0x837(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x58(%rbp),%xmm0
movss  -0x3c(%rbp),%xmm1
movss  0x814(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x50(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  -0x48(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  %xmm0,0x80(%rax,%rcx,4)
movss  -0x58(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  %xmm0,0x40(%rax,%rcx,4)
movss  -0x54(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  %xmm0,0xc0(%rax,%rcx,4)
movss  -0x40(%rbp),%xmm0
subss  -0x4c(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  %xmm0,0xe0(%rax,%rcx,4)
movss  -0x40(%rbp),%xmm0
addss  -0x4c(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  %xmm0,0x20(%rax,%rcx,4)
movss  0x777(%rip),%xmm0
mulss  -0x44(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  %xmm0,0x60(%rax,%rcx,4)
movss  0x75c(%rip),%xmm0
mulss  -0x38(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movss  %xmm0,0xa0(%rax,%rcx,4)
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    1513 <dct2dTestFlt+0x413>
pop    %rbp
ret

x86 assembly (clang, -O2):
<dct2dTestFlt>:
xor    %eax,%eax
movaps 0xf86(%rip),%xmm13
nopw   0x0(%rax,%rax,1)
movss  0x60(%rdi,%rax,1),%xmm0
movss  0x40(%rdi,%rax,1),%xmm2
unpcklps %xmm0,%xmm2
movss  0x20(%rdi,%rax,1),%xmm0
movss  (%rdi,%rax,1),%xmm1
unpcklps %xmm0,%xmm1
movlhps %xmm2,%xmm1
movss  0x4(%rdi,%rax,1),%xmm12
movss  0x8(%rdi,%rax,1),%xmm6
movss  0xc(%rdi,%rax,1),%xmm4
movss  0x64(%rdi,%rax,1),%xmm0
movss  0x44(%rdi,%rax,1),%xmm2
unpcklps %xmm0,%xmm2
movss  0x24(%rdi,%rax,1),%xmm0
unpcklps %xmm0,%xmm12
movlhps %xmm2,%xmm12
movss  0x68(%rdi,%rax,1),%xmm0
movss  0x48(%rdi,%rax,1),%xmm2
unpcklps %xmm0,%xmm2
movss  0x28(%rdi,%rax,1),%xmm0
unpcklps %xmm0,%xmm6
movlhps %xmm2,%xmm6
movss  0x6c(%rdi,%rax,1),%xmm0
movss  0x4c(%rdi,%rax,1),%xmm2
unpcklps %xmm0,%xmm2
movss  0x2c(%rdi,%rax,1),%xmm0
unpcklps %xmm0,%xmm4
movlhps %xmm2,%xmm4
movss  0x70(%rdi,%rax,1),%xmm0
movss  0x50(%rdi,%rax,1),%xmm3
unpcklps %xmm0,%xmm3
movss  0x30(%rdi,%rax,1),%xmm0
movss  0x10(%rdi,%rax,1),%xmm8
unpcklps %xmm0,%xmm8
movlhps %xmm3,%xmm8
movss  0x74(%rdi,%rax,1),%xmm0
movss  0x54(%rdi,%rax,1),%xmm3
unpcklps %xmm0,%xmm3
movss  0x34(%rdi,%rax,1),%xmm5
movss  0x14(%rdi,%rax,1),%xmm0
unpcklps %xmm5,%xmm0
movlhps %xmm3,%xmm0
movss  0x78(%rdi,%rax,1),%xmm3
movss  0x58(%rdi,%rax,1),%xmm5
unpcklps %xmm3,%xmm5
movss  0x38(%rdi,%rax,1),%xmm3
movss  0x18(%rdi,%rax,1),%xmm2
unpcklps %xmm3,%xmm2
movlhps %xmm5,%xmm2
movss  0x7c(%rdi,%rax,1),%xmm3
movss  0x5c(%rdi,%rax,1),%xmm5
unpcklps %xmm3,%xmm5
movss  0x3c(%rdi,%rax,1),%xmm3
movss  0x1c(%rdi,%rax,1),%xmm7
unpcklps %xmm3,%xmm7
movlhps %xmm5,%xmm7
movaps %xmm1,%xmm3
addps  %xmm7,%xmm3
subps  %xmm7,%xmm1
movaps %xmm12,%xmm5
addps  %xmm2,%xmm5
subps  %xmm2,%xmm12
movaps %xmm6,%xmm2
addps  %xmm0,%xmm2
subps  %xmm0,%xmm6
movaps %xmm4,%xmm0
addps  %xmm8,%xmm0
subps  %xmm8,%xmm4
movaps %xmm0,%xmm10
addps  %xmm3,%xmm10
subps  %xmm0,%xmm3
movaps %xmm2,%xmm0
addps  %xmm5,%xmm0
subps  %xmm2,%xmm5
movaps %xmm6,%xmm2
addps  %xmm12,%xmm2
mulps  0xd99(%rip),%xmm2
mulps  0xda2(%rip),%xmm6
addps  %xmm2,%xmm6
mulps  0xda7(%rip),%xmm12
addps  %xmm2,%xmm12
movaps %xmm4,%xmm2
addps  %xmm1,%xmm2
mulps  0xda6(%rip),%xmm2
mulps  0xdaf(%rip),%xmm4
addps  %xmm2,%xmm4
mulps  0xdb5(%rip),%xmm1
addps  %xmm2,%xmm1
movaps %xmm0,%xmm15
addps  %xmm10,%xmm15
subps  %xmm0,%xmm10
movaps %xmm6,%xmm0
addps  %xmm1,%xmm0
subps  %xmm6,%xmm1
movaps %xmm12,%xmm6
addps  %xmm4,%xmm6
subps  %xmm12,%xmm4
movaps %xmm5,%xmm2
addps  %xmm3,%xmm2
mulps  0xd95(%rip),%xmm2
mulps  0xd9e(%rip),%xmm5
addps  %xmm2,%xmm5
mulps  0xda4(%rip),%xmm3
addps  %xmm2,%xmm3
movaps %xmm6,%xmm7
subps  %xmm0,%xmm7
addps  %xmm0,%xmm6
mulps  %xmm13,%xmm4
mulps  %xmm13,%xmm1
movaps %xmm4,%xmm0
movlhps %xmm3,%xmm0
movaps %xmm15,%xmm2
unpcklps %xmm6,%xmm2
shufps $0x24,%xmm0,%xmm2
movaps %xmm7,%xmm0
movlhps %xmm5,%xmm0
movaps %xmm10,%xmm8
unpcklps %xmm1,%xmm8
shufps $0x24,%xmm0,%xmm8
movaps %xmm3,%xmm0
unpcklps %xmm4,%xmm0
movaps %xmm6,%xmm12
shufps $0x11,%xmm15,%xmm12
shufps $0xe2,%xmm0,%xmm12
movaps %xmm5,%xmm0
unpcklps %xmm7,%xmm0
movaps %xmm1,%xmm14
shufps $0x11,%xmm10,%xmm14
shufps $0xe2,%xmm0,%xmm14
movaps %xmm4,%xmm0
unpckhpd %xmm3,%xmm0
movaps %xmm15,%xmm9
unpckhps %xmm6,%xmm9
shufps $0x24,%xmm0,%xmm9
movaps %xmm7,%xmm0
unpckhpd %xmm5,%xmm0
movaps %xmm10,%xmm11
unpckhps %xmm1,%xmm11
shufps $0x24,%xmm0,%xmm11
unpckhps %xmm4,%xmm3
shufps $0x33,%xmm15,%xmm6
shufps $0xe2,%xmm3,%xmm6
unpckhps %xmm7,%xmm5
shufps $0x33,%xmm10,%xmm1
shufps $0xe2,%xmm5,%xmm1
movups %xmm1,0x70(%rdi,%rax,1)
movups %xmm6,0x60(%rdi,%rax,1)
movups %xmm11,0x50(%rdi,%rax,1)
movups %xmm9,0x40(%rdi,%rax,1)
movups %xmm14,0x30(%rdi,%rax,1)
movups %xmm12,0x20(%rdi,%rax,1)
movups %xmm8,0x10(%rdi,%rax,1)
movups %xmm2,(%rdi,%rax,1)
sub    $0xffffffffffffff80,%rax
cmp    $0x100,%rax
jne    1110 <dct2dTestFlt+0x10>
movups 0x40(%rdi),%xmm2
movups 0xc0(%rdi),%xmm0
movups 0xe0(%rdi),%xmm1
movups (%rdi),%xmm3
movups 0x20(%rdi),%xmm4
movaps %xmm3,%xmm5
addps  %xmm1,%xmm5
subps  %xmm1,%xmm3
movaps %xmm4,%xmm7
addps  %xmm0,%xmm7
subps  %xmm0,%xmm4
movups 0xa0(%rdi),%xmm0
movaps %xmm2,%xmm1
addps  %xmm0,%xmm1
subps  %xmm0,%xmm2
movups 0x60(%rdi),%xmm0
movups 0x80(%rdi),%xmm8
movaps %xmm0,%xmm6
addps  %xmm8,%xmm6
subps  %xmm8,%xmm0
movaps %xmm6,%xmm8
addps  %xmm5,%xmm8
subps  %xmm6,%xmm5
movaps %xmm1,%xmm10
addps  %xmm7,%xmm10
subps  %xmm1,%xmm7
movaps %xmm2,%xmm1
addps  %xmm4,%xmm1
movaps 0xbd3(%rip),%xmm6
mulps  %xmm6,%xmm1
movaps 0xbd9(%rip),%xmm6
mulps  %xmm6,%xmm2
addps  %xmm1,%xmm2
movaps 0xbdc(%rip),%xmm6
mulps  %xmm6,%xmm4
addps  %xmm1,%xmm4
movaps %xmm0,%xmm1
addps  %xmm3,%xmm1
movaps 0xbd9(%rip),%xmm6
mulps  %xmm6,%xmm1
movaps 0xbdf(%rip),%xmm6
mulps  %xmm6,%xmm0
addps  %xmm1,%xmm0
movaps 0xbe1(%rip),%xmm15
mulps  %xmm15,%xmm3
addps  %xmm1,%xmm3
movaps %xmm10,%xmm9
addps  %xmm8,%xmm9
subps  %xmm10,%xmm8
movaps %xmm2,%xmm6
addps  %xmm3,%xmm6
subps  %xmm2,%xmm3
movaps %xmm4,%xmm2
addps  %xmm0,%xmm2
subps  %xmm4,%xmm0
movaps %xmm7,%xmm1
addps  %xmm5,%xmm1
movaps 0xbbe(%rip),%xmm14
mulps  %xmm14,%xmm1
movaps 0xbc2(%rip),%xmm12
mulps  %xmm12,%xmm7
addps  %xmm1,%xmm7
movaps 0xbc3(%rip),%xmm11
mulps  %xmm11,%xmm5
addps  %xmm1,%xmm5
movups 0x10(%rdi),%xmm1
movups 0x30(%rdi),%xmm10
movups %xmm9,(%rdi)
movups %xmm8,0x80(%rdi)
movups %xmm5,0x40(%rdi)
movups %xmm7,0xc0(%rdi)
movaps %xmm2,%xmm5
subps  %xmm6,%xmm5
movups %xmm5,0xe0(%rdi)
addps  %xmm6,%xmm2
movups %xmm2,0x20(%rdi)
mulps  %xmm13,%xmm0
movups %xmm0,0x60(%rdi)
mulps  %xmm13,%xmm3
movups %xmm3,0xa0(%rdi)
movups 0x50(%rdi),%xmm7
movups 0xd0(%rdi),%xmm4
movups 0xf0(%rdi),%xmm2
movaps %xmm1,%xmm3
addps  %xmm2,%xmm3
subps  %xmm2,%xmm1
movaps %xmm10,%xmm0
addps  %xmm4,%xmm0
subps  %xmm4,%xmm10
movups 0xb0(%rdi),%xmm4
movaps %xmm7,%xmm2
addps  %xmm4,%xmm2
subps  %xmm4,%xmm7
movups 0x70(%rdi),%xmm4
movups 0x90(%rdi),%xmm6
movaps %xmm4,%xmm5
addps  %xmm6,%xmm5
subps  %xmm6,%xmm4
movaps %xmm5,%xmm8
addps  %xmm3,%xmm8
subps  %xmm5,%xmm3
movaps %xmm2,%xmm5
addps  %xmm0,%xmm5
subps  %xmm2,%xmm0
movaps %xmm7,%xmm2
addps  %xmm10,%xmm2
mulps  0xa89(%rip),%xmm2
mulps  0xa92(%rip),%xmm7
mulps  0xa9a(%rip),%xmm10
addps  %xmm2,%xmm7
addps  %xmm2,%xmm10
movaps %xmm4,%xmm2
addps  %xmm1,%xmm2
mulps  0xa96(%rip),%xmm2
mulps  0xa9f(%rip),%xmm4
mulps  %xmm15,%xmm1
addps  %xmm2,%xmm4
addps  %xmm2,%xmm1
movaps %xmm5,%xmm2
addps  %xmm8,%xmm2
subps  %xmm5,%xmm8
movaps %xmm7,%xmm5
addps  %xmm1,%xmm5
subps  %xmm7,%xmm1
movaps %xmm10,%xmm7
addps  %xmm4,%xmm7
subps  %xmm10,%xmm4
movaps %xmm0,%xmm6
addps  %xmm3,%xmm6
mulps  %xmm14,%xmm6
mulps  %xmm12,%xmm0
mulps  %xmm11,%xmm3
addps  %xmm6,%xmm0
addps  %xmm6,%xmm3
movups %xmm2,0x10(%rdi)
movups %xmm8,0x90(%rdi)
movups %xmm3,0x50(%rdi)
movups %xmm0,0xd0(%rdi)
movaps %xmm7,%xmm0
subps  %xmm5,%xmm0
movups %xmm0,0xf0(%rdi)
addps  %xmm5,%xmm7
movups %xmm7,0x30(%rdi)
mulps  %xmm13,%xmm4
movups %xmm4,0x70(%rdi)
mulps  %xmm13,%xmm1
movups %xmm1,0xb0(%rdi)
ret

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

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