void bcucof(float y[], float y1[], float y2[], float y12[], float d1, float d2,
            float **c) {
  static int wt[16][16] = {
      1,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0,  0,  0, 0,  0,  0,  0,  0,  0,
      0,  0,  0,  0,  0,  1,  0, 0,  0,  0,  0,  0,  0, -3, 0,  0,  3,  0,  0,
      0,  0,  -2, 0,  0,  -1, 0, 0,  0,  0,  2,  0,  0, -2, 0,  0,  0,  0,  1,
      0,  0,  1,  0,  0,  0,  0, 0,  0,  0,  0,  1,  0, 0,  0,  0,  0,  0,  0,
      0,  0,  0,  0,  0,  0,  0, 0,  0,  0,  0,  0,  0, 0,  0,  0,  1,  0,  0,
      0,  0,  0,  0,  0,  -3, 0, 0,  3,  0,  0,  0,  0, -2, 0,  0,  -1, 0,  0,
      0,  0,  2,  0,  0,  -2, 0, 0,  0,  0,  1,  0,  0, 1,  -3, 3,  0,  0,  -2,
      -1, 0,  0,  0,  0,  0,  0, 0,  0,  0,  0,  0,  0, 0,  0,  0,  0,  0,  0,
      -3, 3,  0,  0,  -2, -1, 0, 0,  9,  -9, 9,  -9, 6, 3,  -3, -6, 6,  -6, -3,
      3,  4,  2,  1,  2,  -6, 6, -6, 6,  -4, -2, 2,  4, -3, 3,  3,  -3, -2, -1,
      -1, -2, 2,  -2, 0,  0,  1, 1,  0,  0,  0,  0,  0, 0,  0,  0,  0,  0,  0,
      0,  0,  0,  0,  0,  0,  0, 2,  -2, 0,  0,  1,  1, 0,  0,  -6, 6,  -6, 6,
      -3, -3, 3,  3,  -4, 4,  2, -2, -2, -2, -1, -1, 4, -4, 4,  -4, 2,  2,  -2,
      -2, 2,  -2, -2, 2,  1,  1, 1,  1};
  int l, k, j, i;
  float xx, d1d2, cl[16], x[16];
  d1d2 = d1 * d2;
  for (i = 1; i <= 4; i++) {
    x[i - 1] = y[i];
    x[i + 3] = y1[i] * d1;
    x[i + 7] = y2[i] * d2;
    x[i + 11] = y12[i] * d1d2;
  }
  for (i = 0; i <= 15; i++) {
    xx = 0.0;
    for (k = 0; k <= 15; k++)
      xx += wt[i][k] * x[k];
    cl[i] = xx;
  }
  l = 0;
  for (i = 1; i <= 4; i++)
    for (j = 1; j <= 4; j++)
      c[i][j] = cl[l++];
}


x86 assembly (clang, -O0):
<bcucof>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
movss  %xmm0,-0x24(%rbp)
movss  %xmm1,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
movss  -0x24(%rbp),%xmm0
mulss  -0x28(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movl   $0x1,-0x40(%rbp)
cmpl   $0x4,-0x40(%rbp)
jg     11db <bcucof+0xdb>
mov    -0x8(%rbp),%rax
movslq -0x40(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x40(%rbp),%eax
sub    $0x1,%eax
cltq
movss  %xmm0,-0xd0(%rbp,%rax,4)
ff ff
mov    -0x10(%rbp),%rax
movslq -0x40(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mulss  -0x24(%rbp),%xmm0
mov    -0x40(%rbp),%eax
add    $0x3,%eax
cltq
movss  %xmm0,-0xd0(%rbp,%rax,4)
ff ff
mov    -0x18(%rbp),%rax
movslq -0x40(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mulss  -0x28(%rbp),%xmm0
mov    -0x40(%rbp),%eax
add    $0x7,%eax
cltq
movss  %xmm0,-0xd0(%rbp,%rax,4)
ff ff
mov    -0x20(%rbp),%rax
movslq -0x40(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mulss  -0x48(%rbp),%xmm0
mov    -0x40(%rbp),%eax
add    $0xb,%eax
cltq
movss  %xmm0,-0xd0(%rbp,%rax,4)
ff ff
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    113c <bcucof+0x3c>
movl   $0x0,-0x40(%rbp)
cmpl   $0xf,-0x40(%rbp)
jg     126d <bcucof+0x16d>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x44(%rbp)
movl   $0x0,-0x38(%rbp)
cmpl   $0xf,-0x38(%rbp)
jg     124d <bcucof+0x14d>
movslq -0x40(%rbp),%rcx
lea    0x2e20(%rip),%rax
shl    $0x6,%rcx
add    %rcx,%rax
movslq -0x38(%rbp),%rcx
cvtsi2ssl (%rax,%rcx,4),%xmm0
movslq -0x38(%rbp),%rax
movss  -0xd0(%rbp,%rax,4),%xmm2
ff ff
movss  -0x44(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    11fb <bcucof+0xfb>
movss  -0x44(%rbp),%xmm0
movslq -0x40(%rbp),%rax
movss  %xmm0,-0x90(%rbp,%rax,4)
ff ff
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    11e2 <bcucof+0xe2>
movl   $0x0,-0x34(%rbp)
movl   $0x1,-0x40(%rbp)
cmpl   $0x4,-0x40(%rbp)
jg     12e2 <bcucof+0x1e2>
movl   $0x1,-0x3c(%rbp)
cmpl   $0x4,-0x3c(%rbp)
jg     12cf <bcucof+0x1cf>
mov    -0x34(%rbp),%eax
mov    %eax,%ecx
add    $0x1,%ecx
mov    %ecx,-0x34(%rbp)
cltq
movss  -0x90(%rbp,%rax,4),%xmm0
ff ff
mov    -0x30(%rbp),%rax
movslq -0x40(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x3c(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    128c <bcucof+0x18c>
jmp    12d4 <bcucof+0x1d4>
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    127b <bcucof+0x17b>
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<bcucof>:
sub    $0xb8,%rsp
movaps %xmm0,%xmm15
mulss  %xmm1,%xmm15
movss  0x10(%rcx),%xmm8
mulss  %xmm15,%xmm8
movss  0x10(%rdx),%xmm9
mulss  %xmm1,%xmm9
movss  0x10(%rsi),%xmm12
mulss  %xmm0,%xmm12
movss  0xc(%rcx),%xmm10
mulss  %xmm15,%xmm10
movss  0xc(%rdx),%xmm13
mulss  %xmm1,%xmm13
movss  0xc(%rsi),%xmm7
mulss  %xmm0,%xmm7
movss  0x8(%rcx),%xmm11
mulss  %xmm15,%xmm11
movss  0x8(%rdx),%xmm14
mulss  %xmm1,%xmm14
movss  0x8(%rsi),%xmm5
mulss  %xmm0,%xmm5
mulss  0x4(%rcx),%xmm15
mulss  0x4(%rdx),%xmm1
mulss  0x4(%rsi),%xmm0
movss  0x4(%rdi),%xmm2
movss  0x8(%rdi),%xmm4
movss  0xc(%rdi),%xmm6
movss  0x10(%rdi),%xmm3
shufps $0x0,%xmm2,%xmm2
movaps %xmm2,-0x50(%rsp)
shufps $0x0,%xmm4,%xmm4
movaps %xmm4,-0x60(%rsp)
shufps $0x0,%xmm6,%xmm6
movaps %xmm6,-0x70(%rsp)
shufps $0x0,%xmm3,%xmm3
movaps %xmm3,-0x80(%rsp)
shufps $0x0,%xmm0,%xmm0
movaps %xmm0,0x50(%rsp)
shufps $0x0,%xmm5,%xmm5
movaps %xmm5,-0x40(%rsp)
shufps $0x0,%xmm7,%xmm7
movaps %xmm7,-0x10(%rsp)
shufps $0x0,%xmm12,%xmm12
movaps %xmm12,0x20(%rsp)
shufps $0x0,%xmm1,%xmm1
movaps %xmm1,0x60(%rsp)
shufps $0x0,%xmm14,%xmm14
movaps %xmm14,-0x30(%rsp)
shufps $0x0,%xmm13,%xmm13
movaps %xmm13,(%rsp)
shufps $0x0,%xmm9,%xmm9
movaps %xmm9,0x30(%rsp)
shufps $0x0,%xmm15,%xmm15
shufps $0x0,%xmm11,%xmm11
movaps %xmm11,-0x20(%rsp)
shufps $0x0,%xmm10,%xmm10
movaps %xmm10,0x10(%rsp)
shufps $0x0,%xmm8,%xmm8
movaps %xmm8,0x40(%rsp)
lea    0xed9(%rip),%rax
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
nop
movss  -0x3c(%rax),%xmm2
movss  -0x7c(%rax),%xmm3
movss  -0xbc(%rax),%xmm4
ff
unpcklps %xmm2,%xmm3
movss  -0xfc(%rax),%xmm8
ff ff
movss  -0x38(%rax),%xmm2
movss  -0x78(%rax),%xmm13
unpcklps %xmm4,%xmm8
unpcklps %xmm2,%xmm13
movss  -0xb8(%rax),%xmm2
ff
movss  -0xf8(%rax),%xmm9
ff ff
unpcklps %xmm2,%xmm9
movss  -0x34(%rax),%xmm2
movss  -0x74(%rax),%xmm7
unpcklps %xmm2,%xmm7
movlhps %xmm3,%xmm8
movss  -0xb4(%rax),%xmm2
ff
movss  -0xf4(%rax),%xmm10
ff ff
movss  -0x30(%rax),%xmm3
unpcklps %xmm2,%xmm10
movss  -0x70(%rax),%xmm14
movss  -0xb0(%rax),%xmm2
ff
movss  -0xf0(%rax),%xmm12
ff ff
unpcklps %xmm3,%xmm14
unpcklps %xmm2,%xmm12
movss  -0x2c(%rax),%xmm2
movss  -0x6c(%rax),%xmm4
unpcklps %xmm2,%xmm4
movss  -0xac(%rax),%xmm2
ff
movss  -0xec(%rax),%xmm11
ff ff
movss  -0x28(%rax),%xmm3
unpcklps %xmm2,%xmm11
movss  -0x68(%rax),%xmm2
unpcklps %xmm3,%xmm2
movss  -0xa8(%rax),%xmm5
ff
movlhps %xmm13,%xmm9
movss  -0xe8(%rax),%xmm13
ff ff
unpcklps %xmm5,%xmm13
movss  -0x24(%rax),%xmm5
movlhps %xmm7,%xmm10
movss  -0x64(%rax),%xmm0
unpcklps %xmm5,%xmm0
movss  -0xa4(%rax),%xmm5
ff
movlhps %xmm14,%xmm12
movss  -0xe4(%rax),%xmm14
ff ff
unpcklps %xmm5,%xmm14
movss  -0x20(%rax),%xmm5
movlhps %xmm4,%xmm11
movss  -0x60(%rax),%xmm1
unpcklps %xmm5,%xmm1
movss  -0xa0(%rax),%xmm5
ff
movlhps %xmm2,%xmm13
movss  -0xe0(%rax),%xmm4
ff
unpcklps %xmm5,%xmm4
cvtdq2ps %xmm8,%xmm2
mulps  -0x50(%rsp),%xmm2
addps  0xc86(%rip),%xmm2
cvtdq2ps %xmm9,%xmm5
mulps  -0x60(%rsp),%xmm5
addps  %xmm2,%xmm5
cvtdq2ps %xmm10,%xmm3
mulps  -0x70(%rsp),%xmm3
cvtdq2ps %xmm12,%xmm6
movlhps %xmm0,%xmm14
movlhps %xmm1,%xmm4
movss  -0x1c(%rax),%xmm0
movss  -0x5c(%rax),%xmm1
addps  %xmm5,%xmm3
unpcklps %xmm0,%xmm1
movss  -0x9c(%rax),%xmm0
ff
movss  -0xdc(%rax),%xmm2
ff
mulps  -0x80(%rsp),%xmm6
unpcklps %xmm0,%xmm2
movlhps %xmm1,%xmm2
movss  -0x18(%rax),%xmm0
addps  %xmm3,%xmm6
movss  -0x58(%rax),%xmm1
unpcklps %xmm0,%xmm1
movss  -0x98(%rax),%xmm0
ff
movss  -0xd8(%rax),%xmm5
ff
unpcklps %xmm0,%xmm5
cvtdq2ps %xmm11,%xmm0
cvtdq2ps %xmm13,%xmm7
mulps  0x50(%rsp),%xmm0
mulps  -0x40(%rsp),%xmm7
movlhps %xmm1,%xmm5
movss  -0x14(%rax),%xmm1
addps  %xmm6,%xmm0
movss  -0x54(%rax),%xmm6
unpcklps %xmm1,%xmm6
movss  -0x94(%rax),%xmm1
ff
addps  %xmm0,%xmm7
movss  -0xd4(%rax),%xmm0
ff
unpcklps %xmm1,%xmm0
cvtdq2ps %xmm14,%xmm1
mulps  -0x10(%rsp),%xmm1
cvtdq2ps %xmm4,%xmm4
mulps  0x20(%rsp),%xmm4
cvtdq2ps %xmm2,%xmm3
addps  %xmm7,%xmm1
movlhps %xmm6,%xmm0
movss  -0x10(%rax),%xmm2
movss  -0x50(%rax),%xmm6
addps  %xmm1,%xmm4
unpcklps %xmm2,%xmm6
movss  -0x90(%rax),%xmm1
ff
movss  -0xd0(%rax),%xmm2
ff
mulps  0x60(%rsp),%xmm3
unpcklps %xmm1,%xmm2
movlhps %xmm6,%xmm2
movss  -0xc(%rax),%xmm1
addps  %xmm4,%xmm3
movss  -0x4c(%rax),%xmm4
unpcklps %xmm1,%xmm4
movss  -0x8c(%rax),%xmm1
ff
movss  -0xcc(%rax),%xmm6
ff
unpcklps %xmm1,%xmm6
cvtdq2ps %xmm5,%xmm1
cvtdq2ps %xmm0,%xmm0
mulps  -0x30(%rsp),%xmm1
mulps  (%rsp),%xmm0
movlhps %xmm4,%xmm6
movss  -0x8(%rax),%xmm4
addps  %xmm3,%xmm1
movss  -0x48(%rax),%xmm3
unpcklps %xmm4,%xmm3
movss  -0x88(%rax),%xmm4
ff
addps  %xmm1,%xmm0
movss  -0xc8(%rax),%xmm1
ff
unpcklps %xmm4,%xmm1
cvtdq2ps %xmm2,%xmm2
mulps  0x30(%rsp),%xmm2
cvtdq2ps %xmm6,%xmm4
mulps  %xmm15,%xmm4
movlhps %xmm3,%xmm1
addps  %xmm0,%xmm2
cvtdq2ps %xmm1,%xmm0
movss  -0x4(%rax),%xmm1
movss  -0x44(%rax),%xmm3
addps  %xmm2,%xmm4
unpcklps %xmm1,%xmm3
movss  -0x84(%rax),%xmm1
ff
movss  -0xc4(%rax),%xmm2
ff
mulps  -0x20(%rsp),%xmm0
unpcklps %xmm1,%xmm2
movlhps %xmm3,%xmm2
movss  (%rax),%xmm1
addps  %xmm4,%xmm0
movss  -0x40(%rax),%xmm3
unpcklps %xmm1,%xmm3
movss  -0x80(%rax),%xmm1
movss  -0xc0(%rax),%xmm4
ff
unpcklps %xmm1,%xmm4
cvtdq2ps %xmm2,%xmm1
mulps  0x10(%rsp),%xmm1
addps  %xmm0,%xmm1
movlhps %xmm3,%xmm4
cvtdq2ps %xmm4,%xmm0
mulps  0x40(%rsp),%xmm0
addps  %xmm1,%xmm0
movaps %xmm0,0x70(%rsp,%rcx,4)
add    $0x4,%rcx
add    $0x100,%rax
cmp    $0x10,%rcx
jne    1240 <bcucof+0x140>
mov    0x8(%r8),%rax
movaps 0x70(%rsp),%xmm0
movups %xmm0,0x4(%rax)
mov    0x10(%r8),%rax
movaps 0x80(%rsp),%xmm0
movups %xmm0,0x4(%rax)
mov    0x18(%r8),%rax
movaps 0x90(%rsp),%xmm0
movups %xmm0,0x4(%rax)
mov    0x20(%r8),%rax
movaps 0xa0(%rsp),%xmm0
movups %xmm0,0x4(%rax)
add    $0xb8,%rsp
ret

LLVM IR (-O0):
@bcucof.wt = internal global <{ <{ i32, [15 x i32] }>, [16 x i32], [16 x i32], [16 x i32], <{ i32, i32, i32, i32, i32, [11 x i32] }>, [16 x i32], [16 x i32], [16 x i32], <{ i32, i32, i32, i32, i32, i32, [10 x i32] }>, [16 x i32], [16 x i32], [16 x i32], <{ i32, i32, i32, i32, i32, i32, [10 x i32] }>, [16 x i32], [16 x i32], [16 x i32] }> <{ <{ i32, [15 x i32] }> <{ i32 1, [15 x i32] zeroinitializer }>, [16 x i32] [i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0], [16 x i32] [i32 -3, i32 0, i32 0, i32 3, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 0, i32 0, i32 -1, i32 0, i32 0, i32 0, i32 0], [16 x i32] [i32 2, i32 0, i32 0, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0], <{ i32, i32, i32, i32, i32, [11 x i32] }> <{ i32 0, i32 0, i32 0, i32 0, i32 1, [11 x i32] zeroinitializer }>, [16 x i32] [i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0], [16 x i32] [i32 0, i32 0, i32 0, i32 0, i32 -3, i32 0, i32 0, i32 3, i32 0, i32 0, i32 0, i32 0, i32 -2, i32 0, i32 0, i32 -1], [16 x i32] [i32 0, i32 0, i32 0, i32 0, i32 2, i32 0, i32 0, i32 -2, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 1], <{ i32, i32, i32, i32, i32, i32, [10 x i32] }> <{ i32 -3, i32 3, i32 0, i32 0, i32 -2, i32 -1, [10 x i32] zeroinitializer }>, [16 x i32] [i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 -3, i32 3, i32 0, i32 0, i32 -2, i32 -1, i32 0, i32 0], [16 x i32] [i32 9, i32 -9, i32 9, i32 -9, i32 6, i32 3, i32 -3, i32 -6, i32 6, i32 -6, i32 -3, i32 3, i32 4, i32 2, i32 1, i32 2], [16 x i32] [i32 -6, i32 6, i32 -6, i32 6, i32 -4, i32 -2, i32 2, i32 4, i32 -3, i32 3, i32 3, i32 -3, i32 -2, i32 -1, i32 -1, i32 -2], <{ i32, i32, i32, i32, i32, i32, [10 x i32] }> <{ i32 2, i32 -2, i32 0, i32 0, i32 1, i32 1, [10 x i32] zeroinitializer }>, [16 x i32] [i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 2, i32 -2, i32 0, i32 0, i32 1, i32 1, i32 0, i32 0], [16 x i32] [i32 -6, i32 6, i32 -6, i32 6, i32 -3, i32 -3, i32 3, i32 3, i32 -4, i32 4, i32 2, i32 -2, i32 -2, i32 -2, i32 -1, i32 -1], [16 x i32] [i32 4, i32 -4, i32 4, i32 -4, i32 2, i32 2, i32 -2, i32 -2, i32 2, i32 -2, i32 -2, i32 2, i32 1, i32 1, i32 1, i32 1] }>
define void @bcucof(float* %0, float* %1, float* %2, float* %3, float %4, float %5, float** %6) {
%8 = alloca float*
%9 = alloca float*
%10 = alloca float*
%11 = alloca float*
%12 = alloca float
%13 = alloca float
%14 = alloca float**
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca float
%20 = alloca float
%21 = alloca [16 x float]
%22 = alloca [16 x float]
store float* %0, float** %8
store float* %1, float** %9
store float* %2, float** %10
store float* %3, float** %11
store float %4, float* %12
store float %5, float* %13
store float** %6, float*** %14
%23 = load float, float* %12
%24 = load float, float* %13
%25 = fmul float %23, %24
store float %25, float* %20
store i32 1, i32* %18
br label %26
26: ; preds = %72, %7
%27 = load i32, i32* %18
%28 = icmp sle i32 %27, 4
br i1 %28, label %29, label %75
29: ; preds = %26
%30 = load float*, float** %8
%31 = load i32, i32* %18
%32 = sext i32 %31 to i64
%33 = getelementptr inbounds float, float* %30, i64 %32
%34 = load float, float* %33
%35 = load i32, i32* %18
%36 = sub nsw i32 %35, 1
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds [16 x float], [16 x float]* %22, i64 0, i64 %37
store float %34, float* %38
%39 = load float*, float** %9
%40 = load i32, i32* %18
%41 = sext i32 %40 to i64
%42 = getelementptr inbounds float, float* %39, i64 %41
%43 = load float, float* %42
%44 = load float, float* %12
%45 = fmul float %43, %44
%46 = load i32, i32* %18
%47 = add nsw i32 %46, 3
%48 = sext i32 %47 to i64
%49 = getelementptr inbounds [16 x float], [16 x float]* %22, i64 0, i64 %48
store float %45, float* %49
%50 = load float*, float** %10
%51 = load i32, i32* %18
%52 = sext i32 %51 to i64
%53 = getelementptr inbounds float, float* %50, i64 %52
%54 = load float, float* %53
%55 = load float, float* %13
%56 = fmul float %54, %55
%57 = load i32, i32* %18
%58 = add nsw i32 %57, 7
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds [16 x float], [16 x float]* %22, i64 0, i64 %59
store float %56, float* %60
%61 = load float*, float** %11
%62 = load i32, i32* %18
%63 = sext i32 %62 to i64
%64 = getelementptr inbounds float, float* %61, i64 %63
%65 = load float, float* %64
%66 = load float, float* %20
%67 = fmul float %65, %66
%68 = load i32, i32* %18
%69 = add nsw i32 %68, 11
%70 = sext i32 %69 to i64
%71 = getelementptr inbounds [16 x float], [16 x float]* %22, i64 0, i64 %70
store float %67, float* %71
br label %72
72: ; preds = %29
%73 = load i32, i32* %18
%74 = add nsw i32 %73, 1
store i32 %74, i32* %18
br label %26
75: ; preds = %26
store i32 0, i32* %18
br label %76
76: ; preds = %106, %75
%77 = load i32, i32* %18
%78 = icmp sle i32 %77, 15
br i1 %78, label %79, label %109
79: ; preds = %76
store float 0.000000e+00, float* %19
store i32 0, i32* %16
br label %80
80: ; preds = %98, %79
%81 = load i32, i32* %16
%82 = icmp sle i32 %81, 15
br i1 %82, label %83, label %101
83: ; preds = %80
%84 = load i32, i32* %18
%85 = sext i32 %84 to i64
%86 = getelementptr inbounds [16 x [16 x i32]], [16 x [16 x i32]]* bitcast (<{ <{ i32, [15 x i32] }>, [16 x i32], [16 x i32], [16 x i32], <{ i32, i32, i32, i32, i32, [11 x i32] }>, [16 x i32], [16 x i32], [16 x i32], <{ i32, i32, i32, i32, i32, i32, [10 x i32] }>, [16 x i32], [16 x i32], [16 x i32], <{ i32, i32, i32, i32, i32, i32, [10 x i32] }>, [16 x i32], [16 x i32], [16 x i32] }>* @bcucof.wt to [16 x [16 x i32]]*), i64 0, i64 %85
%87 = load i32, i32* %16
%88 = sext i32 %87 to i64
%89 = getelementptr inbounds [16 x i32], [16 x i32]* %86, i64 0, i64 %88
%90 = load i32, i32* %89
%91 = sitofp i32 %90 to float
%92 = load i32, i32* %16
%93 = sext i32 %92 to i64
%94 = getelementptr inbounds [16 x float], [16 x float]* %22, i64 0, i64 %93
%95 = load float, float* %94
%96 = load float, float* %19
%97 = call float @llvm.fmuladd.f32(float %91, float %95, float %96)
store float %97, float* %19
br label %98
98: ; preds = %83
%99 = load i32, i32* %16
%100 = add nsw i32 %99, 1
store i32 %100, i32* %16
br label %80
101: ; preds = %80
%102 = load float, float* %19
%103 = load i32, i32* %18
%104 = sext i32 %103 to i64
%105 = getelementptr inbounds [16 x float], [16 x float]* %21, i64 0, i64 %104
store float %102, float* %105
br label %106
106: ; preds = %101
%107 = load i32, i32* %18
%108 = add nsw i32 %107, 1
store i32 %108, i32* %18
br label %76
109: ; preds = %76
store i32 0, i32* %15
store i32 1, i32* %18
br label %110
110: ; preds = %135, %109
%111 = load i32, i32* %18
%112 = icmp sle i32 %111, 4
br i1 %112, label %113, label %138
113: ; preds = %110
store i32 1, i32* %17
br label %114
114: ; preds = %131, %113
%115 = load i32, i32* %17
%116 = icmp sle i32 %115, 4
br i1 %116, label %117, label %134
117: ; preds = %114
%118 = load i32, i32* %15
%119 = add nsw i32 %118, 1
store i32 %119, i32* %15
%120 = sext i32 %118 to i64
%121 = getelementptr inbounds [16 x float], [16 x float]* %21, i64 0, i64 %120
%122 = load float, float* %121
%123 = load float**, float*** %14
%124 = load i32, i32* %18
%125 = sext i32 %124 to i64
%126 = getelementptr inbounds float*, float** %123, i64 %125
%127 = load float*, float** %126
%128 = load i32, i32* %17
%129 = sext i32 %128 to i64
%130 = getelementptr inbounds float, float* %127, i64 %129
store float %122, float* %130
br label %131
131: ; preds = %117
%132 = load i32, i32* %17
%133 = add nsw i32 %132, 1
store i32 %133, i32* %17
br label %114
134: ; preds = %114
br label %135
135: ; preds = %134
%136 = load i32, i32* %18
%137 = add nsw i32 %136, 1
store i32 %137, i32* %18
br label %110
138: ; preds = %110
ret void
}

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