void kernel(float *g1, float *g2) {
  int x, y, z;
  for (z = 0; z < 32; ++z) {
    int zp = ((z - 1) + 32) % 32;
    int zn = (z + 1) % 32;
    for (y = 0; y < 32; ++y) {
      int yp = ((y - 1) + 32) % 32;
      int yn = (y + 1) % 32;
      for (x = 0; x < 32; ++x) {
        int xp = ((x - 1) + 32) % 32;
        int xn = (x + 1) % 32;
        float v = g1[((x) + (y)*32 + (z)*32 * 32)] +
                  g1[((x) + (y)*32 + (zn)*32 * 32)] +
                  g1[((x) + (y)*32 + (zp)*32 * 32)];
        g2[((x) + (y)*32 + (z)*32 * 32)] = v;
      }
    }
  }
  return;
}


x86 assembly (clang, -O0):
<kernel>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0x0,-0x1c(%rbp)
cmpl   $0x20,-0x1c(%rbp)
jge    1274 <kernel+0x174>
mov    -0x1c(%rbp),%eax
sub    $0x1,%eax
add    $0x20,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %edx,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %edx,-0x24(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x20,-0x18(%rbp)
jge    1261 <kernel+0x161>
mov    -0x18(%rbp),%eax
sub    $0x1,%eax
add    $0x20,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %edx,-0x28(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %edx,-0x2c(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x20,-0x14(%rbp)
jge    124e <kernel+0x14e>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
add    $0x20,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %edx,-0x30(%rbp)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %edx,-0x34(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
shl    $0x5,%edx
add    %edx,%ecx
mov    -0x1c(%rbp),%edx
shl    $0x5,%edx
shl    $0x5,%edx
add    %edx,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
shl    $0x5,%edx
add    %edx,%ecx
mov    -0x24(%rbp),%edx
shl    $0x5,%edx
shl    $0x5,%edx
add    %edx,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x8(%rbp),%rax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
shl    $0x5,%edx
add    %edx,%ecx
mov    -0x20(%rbp),%edx
shl    $0x5,%edx
shl    $0x5,%edx
add    %edx,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
shl    $0x5,%edx
add    %edx,%ecx
mov    -0x1c(%rbp),%edx
shl    $0x5,%edx
shl    $0x5,%edx
add    %edx,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    117f <kernel+0x7f>
jmp    1253 <kernel+0x153>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1149 <kernel+0x49>
jmp    1266 <kernel+0x166>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1113 <kernel+0x13>
pop    %rbp
ret

x86 assembly (clang, -O2):
<kernel>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
lea    0x4(%rdi),%r15
mov    %rsi,-0x70(%rsp)
lea    0x4(%rsi),%r14
mov    $0x1f,%cl
mov    $0x1,%dl
xor    %esi,%esi
mov    %r15,-0x58(%rsp)
jmp    1165 <kernel+0x65>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    -0x71(%rsp),%cl
add    $0x1,%cl
mov    -0x72(%rsp),%dl
add    $0x1,%dl
mov    -0x40(%rsp),%r14
add    $0x1000,%r14
mov    -0x50(%rsp),%r15
add    $0x1000,%r15
mov    -0x48(%rsp),%rsi
cmp    $0x20,%rsi
je     1462 <kernel+0x362>
mov    %cl,-0x71(%rsp)
movzbl %cl,%eax
and    $0x1f,%eax
shl    $0xc,%rax
mov    -0x58(%rsp),%rcx
add    %rcx,%rax
mov    %dl,-0x72(%rsp)
movzbl %dl,%ebx
and    $0x1f,%ebx
shl    $0xc,%rbx
add    %rcx,%rbx
mov    %rsi,%rcx
shl    $0xa,%rcx
lea    0x20(%rcx),%rdx
mov    %rdx,-0x18(%rsp)
lea    0x7c00(%rcx),%edx
and    $0x7c00,%edx
mov    %rdx,-0x68(%rsp)
add    $0x20,%rdx
mov    %rdx,-0x20(%rsp)
mov    %rcx,-0x60(%rsp)
add    $0x400,%ecx
and    $0x7c00,%ecx
mov    %rcx,-0x28(%rsp)
add    $0x20,%rcx
mov    %rcx,-0x30(%rsp)
add    $0x1,%rsi
mov    %rsi,-0x48(%rsp)
and    $0x1f,%esi
shl    $0xa,%rsi
mov    %rsi,-0x38(%rsp)
mov    %r15,-0x50(%rsp)
mov    %r14,-0x40(%rsp)
xor    %r11d,%r11d
jmp    1375 <kernel+0x275>
nopl   0x0(%rax)
movups (%rdi,%r12,4),%xmm0
mov    -0x38(%rsp),%rbp
lea    (%r11,%rbp,1),%rcx
movups (%rdi,%rcx,4),%xmm1
addps  %xmm0,%xmm1
mov    -0x10(%rsp),%rcx
movups (%rdi,%rcx,4),%xmm0
addps  %xmm1,%xmm0
mov    -0x70(%rsp),%r8
movups %xmm0,(%r8,%r12,4)
mov    %r11,%rcx
or     $0x4,%rcx
mov    -0x60(%rsp),%r10
lea    (%rcx,%r10,1),%rdx
movups (%rdi,%rdx,4),%xmm0
lea    (%rcx,%rbp,1),%rsi
movups (%rdi,%rsi,4),%xmm1
addps  %xmm0,%xmm1
mov    -0x68(%rsp),%r9
add    %r9,%rcx
movups (%rdi,%rcx,4),%xmm0
addps  %xmm1,%xmm0
movups %xmm0,(%r8,%rdx,4)
mov    %r11,%rcx
or     $0x8,%rcx
lea    (%rcx,%r10,1),%rdx
movups (%rdi,%rdx,4),%xmm0
lea    (%rcx,%rbp,1),%rsi
movups (%rdi,%rsi,4),%xmm1
addps  %xmm0,%xmm1
add    %r9,%rcx
movups (%rdi,%rcx,4),%xmm0
addps  %xmm1,%xmm0
movups %xmm0,(%r8,%rdx,4)
mov    %r11,%rcx
or     $0xc,%rcx
lea    (%rcx,%r10,1),%rdx
movups (%rdi,%rdx,4),%xmm0
lea    (%rcx,%rbp,1),%rsi
movups (%rdi,%rsi,4),%xmm1
addps  %xmm0,%xmm1
add    %r9,%rcx
movups (%rdi,%rcx,4),%xmm0
addps  %xmm1,%xmm0
movups %xmm0,(%r8,%rdx,4)
mov    %r11,%rcx
or     $0x10,%rcx
lea    (%rcx,%r10,1),%rdx
movups (%rdi,%rdx,4),%xmm0
lea    (%rcx,%rbp,1),%rsi
movups (%rdi,%rsi,4),%xmm1
addps  %xmm0,%xmm1
add    %r9,%rcx
movups (%rdi,%rcx,4),%xmm0
addps  %xmm1,%xmm0
movups %xmm0,(%r8,%rdx,4)
mov    %r11,%rcx
or     $0x14,%rcx
lea    (%rcx,%r10,1),%rdx
movups (%rdi,%rdx,4),%xmm0
lea    (%rcx,%rbp,1),%rsi
movups (%rdi,%rsi,4),%xmm1
addps  %xmm0,%xmm1
add    %r9,%rcx
movups (%rdi,%rcx,4),%xmm0
addps  %xmm1,%xmm0
movups %xmm0,(%r8,%rdx,4)
mov    %r11,%rcx
or     $0x18,%rcx
lea    (%rcx,%r10,1),%rdx
movups (%rdi,%rdx,4),%xmm0
lea    (%rcx,%rbp,1),%rsi
movups (%rdi,%rsi,4),%xmm1
addps  %xmm0,%xmm1
add    %r9,%rcx
movups (%rdi,%rcx,4),%xmm0
addps  %xmm1,%xmm0
movups %xmm0,(%r8,%rdx,4)
or     $0x1c,%r11
lea    (%r11,%r10,1),%rcx
movups (%rdi,%rcx,4),%xmm0
lea    (%r11,%rbp,1),%rdx
movups (%rdi,%rdx,4),%xmm1
addps  %xmm0,%xmm1
add    %r9,%r11
movups (%rdi,%r11,4),%xmm0
addps  %xmm1,%xmm0
movups %xmm0,(%r8,%rcx,4)
mov    -0x8(%rsp),%r11
add    $0x1,%r11
sub    $0xffffffffffffff80,%rax
sub    $0xffffffffffffff80,%rbx
sub    $0xffffffffffffff80,%r14
sub    $0xffffffffffffff80,%r15
cmp    $0x20,%r11
je     1130 <kernel+0x30>
mov    %r11,-0x8(%rsp)
shl    $0x5,%r11
mov    -0x60(%rsp),%rcx
lea    (%rcx,%r11,1),%r12
mov    -0x70(%rsp),%rcx
lea    (%rcx,%r12,4),%rdx
mov    -0x18(%rsp),%rsi
lea    (%rsi,%r11,1),%rbp
lea    (%rcx,%rbp,4),%r9
mov    -0x30(%rsp),%rcx
add    %r11,%rcx
lea    (%rdi,%rcx,4),%r8
mov    -0x20(%rsp),%rcx
add    %r11,%rcx
lea    (%rdi,%rcx,4),%rcx
mov    -0x68(%rsp),%rsi
add    %r11,%rsi
cmp    %rcx,%rdx
mov    %rsi,-0x10(%rsp)
lea    (%rdi,%rsi,4),%rcx
setb   %r10b
cmp    %r9,%rcx
setb   %sil
cmp    %r8,%rdx
mov    -0x28(%rsp),%rcx
lea    (%rcx,%r11,1),%rcx
lea    (%rdi,%rcx,4),%rcx
setb   %r13b
cmp    %r9,%rcx
lea    (%rdi,%rbp,4),%rcx
setb   %r8b
cmp    %rcx,%rdx
lea    (%rdi,%r12,4),%rcx
setb   %dl
cmp    %r9,%rcx
setb   %bpl
test   %sil,%r10b
jne    1417 <kernel+0x317>
and    %r8b,%r13b
jne    1417 <kernel+0x317>
and    %bpl,%dl
je     1200 <kernel+0x100>
xor    %ebp,%ebp
nopl   0x0(%rax)
movss  -0x4(%r15,%rbp,1),%xmm0
addss  -0x4(%rbx,%rbp,1),%xmm0
addss  -0x4(%rax,%rbp,1),%xmm0
movss  %xmm0,-0x4(%r14,%rbp,1)
movss  (%r15,%rbp,1),%xmm0
addss  (%rbx,%rbp,1),%xmm0
addss  (%rax,%rbp,1),%xmm0
movss  %xmm0,(%r14,%rbp,1)
add    $0x8,%rbp
cmp    $0x80,%rbp
jne    1420 <kernel+0x320>
jmp    1352 <kernel+0x252>
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @kernel(float* %0, float* %1) {
%3 = alloca float*
%4 = alloca float*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca float
store float* %0, float** %3
store float* %1, float** %4
store i32 0, i32* %7
br label %15
15: ; preds = %106, %2
%16 = load i32, i32* %7
%17 = icmp slt i32 %16, 32
br i1 %17, label %18, label %109
18: ; preds = %15
%19 = load i32, i32* %7
%20 = sub nsw i32 %19, 1
%21 = add nsw i32 %20, 32
%22 = srem i32 %21, 32
store i32 %22, i32* %8
%23 = load i32, i32* %7
%24 = add nsw i32 %23, 1
%25 = srem i32 %24, 32
store i32 %25, i32* %9
store i32 0, i32* %6
br label %26
26: ; preds = %102, %18
%27 = load i32, i32* %6
%28 = icmp slt i32 %27, 32
br i1 %28, label %29, label %105
29: ; preds = %26
%30 = load i32, i32* %6
%31 = sub nsw i32 %30, 1
%32 = add nsw i32 %31, 32
%33 = srem i32 %32, 32
store i32 %33, i32* %10
%34 = load i32, i32* %6
%35 = add nsw i32 %34, 1
%36 = srem i32 %35, 32
store i32 %36, i32* %11
store i32 0, i32* %5
br label %37
37: ; preds = %98, %29
%38 = load i32, i32* %5
%39 = icmp slt i32 %38, 32
br i1 %39, label %40, label %101
40: ; preds = %37
%41 = load i32, i32* %5
%42 = sub nsw i32 %41, 1
%43 = add nsw i32 %42, 32
%44 = srem i32 %43, 32
store i32 %44, i32* %12
%45 = load i32, i32* %5
%46 = add nsw i32 %45, 1
%47 = srem i32 %46, 32
store i32 %47, i32* %13
%48 = load float*, float** %3
%49 = load i32, i32* %5
%50 = load i32, i32* %6
%51 = mul nsw i32 %50, 32
%52 = add nsw i32 %49, %51
%53 = load i32, i32* %7
%54 = mul nsw i32 %53, 32
%55 = mul nsw i32 %54, 32
%56 = add nsw i32 %52, %55
%57 = sext i32 %56 to i64
%58 = getelementptr inbounds float, float* %48, i64 %57
%59 = load float, float* %58
%60 = load float*, float** %3
%61 = load i32, i32* %5
%62 = load i32, i32* %6
%63 = mul nsw i32 %62, 32
%64 = add nsw i32 %61, %63
%65 = load i32, i32* %9
%66 = mul nsw i32 %65, 32
%67 = mul nsw i32 %66, 32
%68 = add nsw i32 %64, %67
%69 = sext i32 %68 to i64
%70 = getelementptr inbounds float, float* %60, i64 %69
%71 = load float, float* %70
%72 = fadd float %59, %71
%73 = load float*, float** %3
%74 = load i32, i32* %5
%75 = load i32, i32* %6
%76 = mul nsw i32 %75, 32
%77 = add nsw i32 %74, %76
%78 = load i32, i32* %8
%79 = mul nsw i32 %78, 32
%80 = mul nsw i32 %79, 32
%81 = add nsw i32 %77, %80
%82 = sext i32 %81 to i64
%83 = getelementptr inbounds float, float* %73, i64 %82
%84 = load float, float* %83
%85 = fadd float %72, %84
store float %85, float* %14
%86 = load float, float* %14
%87 = load float*, float** %4
%88 = load i32, i32* %5
%89 = load i32, i32* %6
%90 = mul nsw i32 %89, 32
%91 = add nsw i32 %88, %90
%92 = load i32, i32* %7
%93 = mul nsw i32 %92, 32
%94 = mul nsw i32 %93, 32
%95 = add nsw i32 %91, %94
%96 = sext i32 %95 to i64
%97 = getelementptr inbounds float, float* %87, i64 %96
store float %86, float* %97
br label %98
98: ; preds = %40
%99 = load i32, i32* %5
%100 = add nsw i32 %99, 1
store i32 %100, i32* %5
br label %37
101: ; preds = %37
br label %102
102: ; preds = %101
%103 = load i32, i32* %6
%104 = add nsw i32 %103, 1
store i32 %104, i32* %6
br label %26
105: ; preds = %26
br label %106
106: ; preds = %105
%107 = load i32, i32* %7
%108 = add nsw i32 %107, 1
store i32 %108, i32* %7
br label %15
109: ; preds = %15
ret void
}

LLVM IR (-O2):
define void @kernel(float* nocapture %0, float* nocapture writeonly %1) {
br label %5
3: ; preds = %23
%4 = icmp eq i64 %17, 32
br i1 %4, label %222, label %5
5: ; preds = %2, %3
%6 = phi i64 [ 0, %2 ], [ %17, %3 ]
%7 = shl nuw nsw i64 %6, 10
%8 = or i64 %7, 32
%9 = shl i64 %6, 10
%10 = add i64 %9, 31744
%11 = and i64 %10, 31744
%12 = or i64 %11, 32
%13 = shl i64 %6, 10
%14 = add i64 %13, 1024
%15 = and i64 %14, 31744
%16 = or i64 %15, 32
%17 = add nuw nsw i64 %6, 1
%18 = shl nsw i64 %6, 10
%19 = shl i64 %17, 10
%20 = and i64 %19, 31744
%21 = add nuw i64 %18, 31744
%22 = and i64 %21, 31744
br label %26
23: ; preds = %191, %55
%24 = add nuw nsw i64 %27, 1
%25 = icmp eq i64 %24, 32
br i1 %25, label %3, label %26
26: ; preds = %5, %23
%27 = phi i64 [ 0, %5 ], [ %24, %23 ]
%28 = shl nuw nsw i64 %27, 5
%29 = add nuw i64 %7, %28
%30 = getelementptr float, float* %1, i64 %29
%31 = add nuw i64 %8, %28
%32 = getelementptr float, float* %1, i64 %31
%33 = shl nsw i64 %27, 5
%34 = getelementptr float, float* %0, i64 %31
%35 = getelementptr float, float* %0, i64 %29
%36 = add nuw i64 %16, %28
%37 = getelementptr float, float* %0, i64 %36
%38 = add nuw i64 %15, %28
%39 = getelementptr float, float* %0, i64 %38
%40 = add nuw i64 %12, %28
%41 = getelementptr float, float* %0, i64 %40
%42 = add nuw i64 %11, %28
%43 = getelementptr float, float* %0, i64 %42
%44 = icmp ult float* %30, %41
%45 = icmp ult float* %43, %32
%46 = and i1 %44, %45
%47 = icmp ult float* %30, %37
%48 = icmp ult float* %39, %32
%49 = and i1 %47, %48
%50 = or i1 %46, %49
%51 = icmp ult float* %30, %34
%52 = icmp ult float* %35, %32
%53 = and i1 %51, %52
%54 = or i1 %50, %53
br i1 %54, label %191, label %55
55: ; preds = %26
%56 = add nuw nsw i64 %33, %18
%57 = getelementptr inbounds float, float* %0, i64 %56
%58 = bitcast float* %57 to <4 x float>*
%59 = load <4 x float>, <4 x float>* %58
%60 = add nuw nsw i64 %33, %20
%61 = getelementptr inbounds float, float* %0, i64 %60
%62 = bitcast float* %61 to <4 x float>*
%63 = load <4 x float>, <4 x float>* %62
%64 = fadd <4 x float> %59, %63
%65 = add nuw nsw i64 %33, %22
%66 = getelementptr inbounds float, float* %0, i64 %65
%67 = bitcast float* %66 to <4 x float>*
%68 = load <4 x float>, <4 x float>* %67
%69 = fadd <4 x float> %64, %68
%70 = getelementptr inbounds float, float* %1, i64 %56
%71 = bitcast float* %70 to <4 x float>*
store <4 x float> %69, <4 x float>* %71
%72 = or i64 %33, 4
%73 = add nuw nsw i64 %72, %18
%74 = getelementptr inbounds float, float* %0, i64 %73
%75 = bitcast float* %74 to <4 x float>*
%76 = load <4 x float>, <4 x float>* %75
%77 = add nuw nsw i64 %72, %20
%78 = getelementptr inbounds float, float* %0, i64 %77
%79 = bitcast float* %78 to <4 x float>*
%80 = load <4 x float>, <4 x float>* %79
%81 = fadd <4 x float> %76, %80
%82 = add nuw nsw i64 %72, %22
%83 = getelementptr inbounds float, float* %0, i64 %82
%84 = bitcast float* %83 to <4 x float>*
%85 = load <4 x float>, <4 x float>* %84
%86 = fadd <4 x float> %81, %85
%87 = getelementptr inbounds float, float* %1, i64 %73
%88 = bitcast float* %87 to <4 x float>*
store <4 x float> %86, <4 x float>* %88
%89 = or i64 %33, 8
%90 = add nuw nsw i64 %89, %18
%91 = getelementptr inbounds float, float* %0, i64 %90
%92 = bitcast float* %91 to <4 x float>*
%93 = load <4 x float>, <4 x float>* %92
%94 = add nuw nsw i64 %89, %20
%95 = getelementptr inbounds float, float* %0, i64 %94
%96 = bitcast float* %95 to <4 x float>*
%97 = load <4 x float>, <4 x float>* %96
%98 = fadd <4 x float> %93, %97
%99 = add nuw nsw i64 %89, %22
%100 = getelementptr inbounds float, float* %0, i64 %99
%101 = bitcast float* %100 to <4 x float>*
%102 = load <4 x float>, <4 x float>* %101
%103 = fadd <4 x float> %98, %102
%104 = getelementptr inbounds float, float* %1, i64 %90
%105 = bitcast float* %104 to <4 x float>*
store <4 x float> %103, <4 x float>* %105
%106 = or i64 %33, 12
%107 = add nuw nsw i64 %106, %18
%108 = getelementptr inbounds float, float* %0, i64 %107
%109 = bitcast float* %108 to <4 x float>*
%110 = load <4 x float>, <4 x float>* %109
%111 = add nuw nsw i64 %106, %20
%112 = getelementptr inbounds float, float* %0, i64 %111
%113 = bitcast float* %112 to <4 x float>*
%114 = load <4 x float>, <4 x float>* %113
%115 = fadd <4 x float> %110, %114
%116 = add nuw nsw i64 %106, %22
%117 = getelementptr inbounds float, float* %0, i64 %116
%118 = bitcast float* %117 to <4 x float>*
%119 = load <4 x float>, <4 x float>* %118
%120 = fadd <4 x float> %115, %119
%121 = getelementptr inbounds float, float* %1, i64 %107
%122 = bitcast float* %121 to <4 x float>*
store <4 x float> %120, <4 x float>* %122
%123 = or i64 %33, 16
%124 = add nuw nsw i64 %123, %18
%125 = getelementptr inbounds float, float* %0, i64 %124
%126 = bitcast float* %125 to <4 x float>*
%127 = load <4 x float>, <4 x float>* %126
%128 = add nuw nsw i64 %123, %20
%129 = getelementptr inbounds float, float* %0, i64 %128
%130 = bitcast float* %129 to <4 x float>*
%131 = load <4 x float>, <4 x float>* %130
%132 = fadd <4 x float> %127, %131
%133 = add nuw nsw i64 %123, %22
%134 = getelementptr inbounds float, float* %0, i64 %133
%135 = bitcast float* %134 to <4 x float>*
%136 = load <4 x float>, <4 x float>* %135
%137 = fadd <4 x float> %132, %136
%138 = getelementptr inbounds float, float* %1, i64 %124
%139 = bitcast float* %138 to <4 x float>*
store <4 x float> %137, <4 x float>* %139
%140 = or i64 %33, 20
%141 = add nuw nsw i64 %140, %18
%142 = getelementptr inbounds float, float* %0, i64 %141
%143 = bitcast float* %142 to <4 x float>*
%144 = load <4 x float>, <4 x float>* %143
%145 = add nuw nsw i64 %140, %20
%146 = getelementptr inbounds float, float* %0, i64 %145
%147 = bitcast float* %146 to <4 x float>*
%148 = load <4 x float>, <4 x float>* %147
%149 = fadd <4 x float> %144, %148
%150 = add nuw nsw i64 %140, %22
%151 = getelementptr inbounds float, float* %0, i64 %150
%152 = bitcast float* %151 to <4 x float>*
%153 = load <4 x float>, <4 x float>* %152
%154 = fadd <4 x float> %149, %153
%155 = getelementptr inbounds float, float* %1, i64 %141
%156 = bitcast float* %155 to <4 x float>*
store <4 x float> %154, <4 x float>* %156
%157 = or i64 %33, 24
%158 = add nuw nsw i64 %157, %18
%159 = getelementptr inbounds float, float* %0, i64 %158
%160 = bitcast float* %159 to <4 x float>*
%161 = load <4 x float>, <4 x float>* %160
%162 = add nuw nsw i64 %157, %20
%163 = getelementptr inbounds float, float* %0, i64 %162
%164 = bitcast float* %163 to <4 x float>*
%165 = load <4 x float>, <4 x float>* %164
%166 = fadd <4 x float> %161, %165
%167 = add nuw nsw i64 %157, %22
%168 = getelementptr inbounds float, float* %0, i64 %167
%169 = bitcast float* %168 to <4 x float>*
%170 = load <4 x float>, <4 x float>* %169
%171 = fadd <4 x float> %166, %170
%172 = getelementptr inbounds float, float* %1, i64 %158
%173 = bitcast float* %172 to <4 x float>*
store <4 x float> %171, <4 x float>* %173
%174 = or i64 %33, 28
%175 = add nuw nsw i64 %174, %18
%176 = getelementptr inbounds float, float* %0, i64 %175
%177 = bitcast float* %176 to <4 x float>*
%178 = load <4 x float>, <4 x float>* %177
%179 = add nuw nsw i64 %174, %20
%180 = getelementptr inbounds float, float* %0, i64 %179
%181 = bitcast float* %180 to <4 x float>*
%182 = load <4 x float>, <4 x float>* %181
%183 = fadd <4 x float> %178, %182
%184 = add nuw nsw i64 %174, %22
%185 = getelementptr inbounds float, float* %0, i64 %184
%186 = bitcast float* %185 to <4 x float>*
%187 = load <4 x float>, <4 x float>* %186
%188 = fadd <4 x float> %183, %187
%189 = getelementptr inbounds float, float* %1, i64 %175
%190 = bitcast float* %189 to <4 x float>*
store <4 x float> %188, <4 x float>* %190
br label %23
191: ; preds = %26, %191
%192 = phi i64 [ %207, %191 ], [ 0, %26 ]
%193 = or i64 %192, 1
%194 = add nuw nsw i64 %192, %33
%195 = add nuw nsw i64 %194, %18
%196 = getelementptr inbounds float, float* %0, i64 %195
%197 = load float, float* %196
%198 = add nuw nsw i64 %194, %20
%199 = getelementptr inbounds float, float* %0, i64 %198
%200 = load float, float* %199
%201 = fadd float %197, %200
%202 = add nuw nsw i64 %194, %22
%203 = getelementptr inbounds float, float* %0, i64 %202
%204 = load float, float* %203
%205 = fadd float %201, %204
%206 = getelementptr inbounds float, float* %1, i64 %195
store float %205, float* %206
%207 = add nuw nsw i64 %192, 2
%208 = add nuw nsw i64 %193, %33
%209 = add nuw nsw i64 %208, %18
%210 = getelementptr inbounds float, float* %0, i64 %209
%211 = load float, float* %210
%212 = add nuw nsw i64 %208, %20
%213 = getelementptr inbounds float, float* %0, i64 %212
%214 = load float, float* %213
%215 = fadd float %211, %214
%216 = add nuw nsw i64 %208, %22
%217 = getelementptr inbounds float, float* %0, i64 %216
%218 = load float, float* %217
%219 = fadd float %215, %218
%220 = getelementptr inbounds float, float* %1, i64 %209
store float %219, float* %220
%221 = icmp eq i64 %207, 32
br i1 %221, label %23, label %191
222: ; preds = %3
ret void
}