void I_combine_LR(sb_sample, joint_sample) double sb_sample[2][3][12][32];
double joint_sample[3][12][32];
{
  int sb, smp;
  for (sb = 0; sb < 32; ++sb)
    for (smp = 0; smp < 12; ++smp)
      joint_sample[0][smp][sb] =
          .5 * (sb_sample[0][0][smp][sb] + sb_sample[1][0][smp][sb]);
}


x86 assembly (clang, -O0):
<I_combine_LR>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x20,-0x14(%rbp)
jge    11a9 <I_combine_LR+0xa9>
movl   $0x0,-0x18(%rbp)
cmpl   $0xc,-0x18(%rbp)
jge    1196 <I_combine_LR+0x96>
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
shl    $0x8,%rcx
add    %rcx,%rax
movslq -0x14(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    -0x8(%rbp),%rax
add    $0x2400,%rax
movslq -0x18(%rbp),%rcx
shl    $0x8,%rcx
add    %rcx,%rax
movslq -0x14(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm1
movsd  0xe94(%rip),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
shl    $0x8,%rcx
add    %rcx,%rax
movslq -0x14(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1124 <I_combine_LR+0x24>
jmp    119b <I_combine_LR+0x9b>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1113 <I_combine_LR+0x13>
pop    %rbp
ret

x86 assembly (clang, -O2):
<I_combine_LR>:
lea    0x3000(%rdi),%rax
cmp    %rsi,%rax
jbe    12be <I_combine_LR+0x1be>
lea    0xc00(%rsi),%rax
cmp    %rdi,%rax
jbe    12be <I_combine_LR+0x1be>
add    $0x2f00,%rdi
mov    $0xffffffffffffffe0,%rax
movsd  0xeda(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
movsd  -0x2e00(%rdi,%rax,8),%xmm1
ff ff
addsd  -0xa00(%rdi,%rax,8),%xmm1
ff ff
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x100(%rsi,%rax,8)
movsd  -0x2d00(%rdi,%rax,8),%xmm1
ff ff
addsd  -0x900(%rdi,%rax,8),%xmm1
ff ff
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x200(%rsi,%rax,8)
movsd  -0x2c00(%rdi,%rax,8),%xmm1
ff ff
addsd  -0x800(%rdi,%rax,8),%xmm1
ff ff
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x300(%rsi,%rax,8)
movsd  -0x2b00(%rdi,%rax,8),%xmm1
ff ff
addsd  -0x700(%rdi,%rax,8),%xmm1
ff ff
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x400(%rsi,%rax,8)
movsd  -0x2a00(%rdi,%rax,8),%xmm1
ff ff
addsd  -0x600(%rdi,%rax,8),%xmm1
ff ff
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x500(%rsi,%rax,8)
movsd  -0x2900(%rdi,%rax,8),%xmm1
ff ff
addsd  -0x500(%rdi,%rax,8),%xmm1
ff ff
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x600(%rsi,%rax,8)
movsd  -0x2800(%rdi,%rax,8),%xmm1
ff ff
addsd  -0x400(%rdi,%rax,8),%xmm1
ff ff
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x700(%rsi,%rax,8)
movsd  -0x2700(%rdi,%rax,8),%xmm1
ff ff
addsd  -0x300(%rdi,%rax,8),%xmm1
ff ff
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x800(%rsi,%rax,8)
movsd  -0x2600(%rdi,%rax,8),%xmm1
ff ff
addsd  -0x200(%rdi,%rax,8),%xmm1
ff ff
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x900(%rsi,%rax,8)
movsd  -0x2500(%rdi,%rax,8),%xmm1
ff ff
addsd  -0x100(%rdi,%rax,8),%xmm1
ff ff
mulsd  %xmm0,%xmm1
movsd  %xmm1,0xa00(%rsi,%rax,8)
movsd  -0x2400(%rdi,%rax,8),%xmm1
ff ff
addsd  (%rdi,%rax,8),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0xb00(%rsi,%rax,8)
movsd  -0x2300(%rdi,%rax,8),%xmm1
ff ff
addsd  0x100(%rdi,%rax,8),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0xc00(%rsi,%rax,8)
inc    %rax
jne    1140 <I_combine_LR+0x40>
jmp    148a <I_combine_LR+0x38a>
add    $0x2f00,%rdi
mov    $0xffffffffffffffe0,%rax
movapd 0xd2c(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movupd -0x2e00(%rdi,%rax,8),%xmm1
ff ff
movupd -0xa00(%rdi,%rax,8),%xmm2
ff ff
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0x100(%rsi,%rax,8)
movupd -0x2d00(%rdi,%rax,8),%xmm1
ff ff
movupd -0x900(%rdi,%rax,8),%xmm2
ff ff
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0x200(%rsi,%rax,8)
movupd -0x2c00(%rdi,%rax,8),%xmm1
ff ff
movupd -0x800(%rdi,%rax,8),%xmm2
ff ff
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0x300(%rsi,%rax,8)
movupd -0x2b00(%rdi,%rax,8),%xmm1
ff ff
movupd -0x700(%rdi,%rax,8),%xmm2
ff ff
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0x400(%rsi,%rax,8)
movupd -0x2a00(%rdi,%rax,8),%xmm1
ff ff
movupd -0x600(%rdi,%rax,8),%xmm2
ff ff
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0x500(%rsi,%rax,8)
movupd -0x2900(%rdi,%rax,8),%xmm1
ff ff
movupd -0x500(%rdi,%rax,8),%xmm2
ff ff
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0x600(%rsi,%rax,8)
movupd -0x2800(%rdi,%rax,8),%xmm1
ff ff
movupd -0x400(%rdi,%rax,8),%xmm2
ff ff
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0x700(%rsi,%rax,8)
movupd -0x2700(%rdi,%rax,8),%xmm1
ff ff
movupd -0x300(%rdi,%rax,8),%xmm2
ff ff
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0x800(%rsi,%rax,8)
movupd -0x2600(%rdi,%rax,8),%xmm1
ff ff
movupd -0x200(%rdi,%rax,8),%xmm2
ff ff
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0x900(%rsi,%rax,8)
movupd -0x2500(%rdi,%rax,8),%xmm1
ff ff
movupd -0x100(%rdi,%rax,8),%xmm2
ff ff
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0xa00(%rsi,%rax,8)
movupd -0x2400(%rdi,%rax,8),%xmm1
ff ff
movupd (%rdi,%rax,8),%xmm2
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0xb00(%rsi,%rax,8)
movupd -0x2300(%rdi,%rax,8),%xmm1
ff ff
movupd 0x100(%rdi,%rax,8),%xmm2
addpd  %xmm1,%xmm2
mulpd  %xmm0,%xmm2
movupd %xmm2,0xc00(%rsi,%rax,8)
add    $0x2,%rax
jne    12e0 <I_combine_LR+0x1e0>
ret

LLVM IR (-O0):
define void @I_combine_LR([3 x [12 x [32 x double]]]* %0, [12 x [32 x double]]* %1) {
%3 = alloca [3 x [12 x [32 x double]]]*
%4 = alloca [12 x [32 x double]]*
%5 = alloca i32
%6 = alloca i32
store [3 x [12 x [32 x double]]]* %0, [3 x [12 x [32 x double]]]** %3
store [12 x [32 x double]]* %1, [12 x [32 x double]]** %4
store i32 0, i32* %5
br label %7
7: ; preds = %49, %2
%8 = load i32, i32* %5
%9 = icmp slt i32 %8, 32
br i1 %9, label %10, label %52
10: ; preds = %7
store i32 0, i32* %6
br label %11
11: ; preds = %45, %10
%12 = load i32, i32* %6
%13 = icmp slt i32 %12, 12
br i1 %13, label %14, label %48
14: ; preds = %11
%15 = load [3 x [12 x [32 x double]]]*, [3 x [12 x [32 x double]]]** %3
%16 = getelementptr inbounds [3 x [12 x [32 x double]]], [3 x [12 x [32 x double]]]* %15, i64 0
%17 = getelementptr inbounds [3 x [12 x [32 x double]]], [3 x [12 x [32 x double]]]* %16, i64 0, i64 0
%18 = load i32, i32* %6
%19 = sext i32 %18 to i64
%20 = getelementptr inbounds [12 x [32 x double]], [12 x [32 x double]]* %17, i64 0, i64 %19
%21 = load i32, i32* %5
%22 = sext i32 %21 to i64
%23 = getelementptr inbounds [32 x double], [32 x double]* %20, i64 0, i64 %22
%24 = load double, double* %23
%25 = load [3 x [12 x [32 x double]]]*, [3 x [12 x [32 x double]]]** %3
%26 = getelementptr inbounds [3 x [12 x [32 x double]]], [3 x [12 x [32 x double]]]* %25, i64 1
%27 = getelementptr inbounds [3 x [12 x [32 x double]]], [3 x [12 x [32 x double]]]* %26, i64 0, i64 0
%28 = load i32, i32* %6
%29 = sext i32 %28 to i64
%30 = getelementptr inbounds [12 x [32 x double]], [12 x [32 x double]]* %27, i64 0, i64 %29
%31 = load i32, i32* %5
%32 = sext i32 %31 to i64
%33 = getelementptr inbounds [32 x double], [32 x double]* %30, i64 0, i64 %32
%34 = load double, double* %33
%35 = fadd double %24, %34
%36 = fmul double 5.000000e-01, %35
%37 = load [12 x [32 x double]]*, [12 x [32 x double]]** %4
%38 = getelementptr inbounds [12 x [32 x double]], [12 x [32 x double]]* %37, i64 0
%39 = load i32, i32* %6
%40 = sext i32 %39 to i64
%41 = getelementptr inbounds [12 x [32 x double]], [12 x [32 x double]]* %38, i64 0, i64 %40
%42 = load i32, i32* %5
%43 = sext i32 %42 to i64
%44 = getelementptr inbounds [32 x double], [32 x double]* %41, i64 0, i64 %43
store double %36, double* %44
br label %45
45: ; preds = %14
%46 = load i32, i32* %6
%47 = add nsw i32 %46, 1
store i32 %47, i32* %6
br label %11
48: ; preds = %11
br label %49
49: ; preds = %48
%50 = load i32, i32* %5
%51 = add nsw i32 %50, 1
store i32 %51, i32* %5
br label %7
52: ; preds = %7
ret void
}

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