void s_init_lam_mhe(int N, int nu, int nbu, int nb, float **t, float **lam) {
  int jj, ll;
  for (jj = 0; jj < N; jj++) {
    for (ll = 0; ll < 2 * nb; ll++)
      lam[jj][ll] = 1 / t[jj][ll];
  }
  for (ll = 0; ll < 2 * nu; ll++)
    lam[N][ll] = 1.0;
  for (ll = 2 * nu; ll < 2 * nb; ll++)
    lam[N][ll] = 1 / t[jj][ll];
}


x86 assembly (clang, -O0):
<s_init_lam_mhe>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    %r8,-0x18(%rbp)
mov    %r9,-0x20(%rbp)
movl   $0x0,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    1196 <s_init_lam_mhe+0x96>
movl   $0x0,-0x28(%rbp)
mov    -0x28(%rbp),%eax
mov    -0x10(%rbp),%ecx
shl    $0x1,%ecx
cmp    %ecx,%eax
jge    1183 <s_init_lam_mhe+0x83>
mov    -0x18(%rbp),%rax
movslq -0x24(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x28(%rbp),%rcx
movss  0xea5(%rip),%xmm0
divss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x24(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x28(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    1132 <s_init_lam_mhe+0x32>
jmp    1188 <s_init_lam_mhe+0x88>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    111f <s_init_lam_mhe+0x1f>
movl   $0x0,-0x28(%rbp)
mov    -0x28(%rbp),%eax
mov    -0x8(%rbp),%ecx
shl    $0x1,%ecx
cmp    %ecx,%eax
jge    11d9 <s_init_lam_mhe+0xd9>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x28(%rbp),%rcx
movss  0xe3a(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    119d <s_init_lam_mhe+0x9d>
mov    -0x8(%rbp),%eax
shl    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
mov    -0x10(%rbp),%ecx
shl    $0x1,%ecx
cmp    %ecx,%eax
jge    1233 <s_init_lam_mhe+0x133>
mov    -0x18(%rbp),%rax
movslq -0x24(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x28(%rbp),%rcx
movss  0xdf5(%rip),%xmm0
divss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x28(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    11e2 <s_init_lam_mhe+0xe2>
pop    %rbp
ret

x86 assembly (clang, -O2):
<s_init_lam_mhe>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
test   %edi,%edi
jle    127b <s_init_lam_mhe+0x17b>
mov    %rsi,-0x10(%rsp)
lea    (%rcx,%rcx,1),%eax
cmp    $0x2,%eax
mov    $0x1,%edx
cmovge %eax,%edx
mov    %edi,-0x14(%rsp)
mov    %edi,%r12d
mov    %edx,%r10d
and    $0x7ffffffc,%r10d
lea    -0x4(%r10),%r11
mov    %r11,%r15
shr    $0x2,%r15
add    $0x1,%r15
mov    %r15,%rax
and    $0xfffffffffffffffe,%rax
mov    %rax,-0x8(%rsp)
mov    %rdx,%r13
neg    %r13
xor    %eax,%eax
movss  0xeaf(%rip),%xmm0
movaps 0xe98(%rip),%xmm1
jmp    117d <s_init_lam_mhe+0x7d>
nopw   0x0(%rax,%rax,1)
add    $0x1,%rax
cmp    %r12,%rax
je     1270 <s_init_lam_mhe+0x170>
test   %ecx,%ecx
jle    1170 <s_init_lam_mhe+0x70>
mov    (%r8,%rax,8),%rbx
mov    (%r9,%rax,8),%rbp
cmp    $0x4,%edx
jb     11a7 <s_init_lam_mhe+0xa7>
lea    (%rbx,%rdx,4),%rsi
cmp    %rsi,%rbp
jae    11fb <s_init_lam_mhe+0xfb>
lea    0x0(,%rdx,4),%rsi
add    %rbp,%rsi
cmp    %rsi,%rbx
jae    11fb <s_init_lam_mhe+0xfb>
xor    %edi,%edi
mov    %rdi,%rsi
test   $0x1,%dl
je     11c6 <s_init_lam_mhe+0xc6>
movaps %xmm0,%xmm2
divss  (%rbx,%rdi,4),%xmm2
movss  %xmm2,0x0(%rbp,%rdi,4)
mov    %rdi,%rsi
or     $0x1,%rsi
not    %rdi
cmp    %r13,%rdi
je     1170 <s_init_lam_mhe+0x70>
xchg   %ax,%ax
movaps %xmm0,%xmm2
divss  (%rbx,%rsi,4),%xmm2
movss  %xmm2,0x0(%rbp,%rsi,4)
movaps %xmm0,%xmm2
divss  0x4(%rbx,%rsi,4),%xmm2
movss  %xmm2,0x4(%rbp,%rsi,4)
add    $0x2,%rsi
cmp    %rsi,%rdx
jne    11d0 <s_init_lam_mhe+0xd0>
jmp    1170 <s_init_lam_mhe+0x70>
test   %r11,%r11
je     1265 <s_init_lam_mhe+0x165>
mov    -0x8(%rsp),%rsi
xor    %r14d,%r14d
nopl   0x0(%rax,%rax,1)
movups (%rbx,%r14,4),%xmm2
movaps %xmm1,%xmm3
divps  %xmm2,%xmm3
movups %xmm3,0x0(%rbp,%r14,4)
movups 0x10(%rbx,%r14,4),%xmm2
movaps %xmm1,%xmm3
divps  %xmm2,%xmm3
movups %xmm3,0x10(%rbp,%r14,4)
add    $0x8,%r14
add    $0xfffffffffffffffe,%rsi
jne    1210 <s_init_lam_mhe+0x110>
test   $0x1,%r15b
je     1254 <s_init_lam_mhe+0x154>
movups (%rbx,%r14,4),%xmm2
movaps %xmm1,%xmm3
divps  %xmm2,%xmm3
movups %xmm3,0x0(%rbp,%r14,4)
mov    %r10,%rdi
cmp    %rdx,%r10
je     1170 <s_init_lam_mhe+0x70>
jmp    11a9 <s_init_lam_mhe+0xa9>
xor    %r14d,%r14d
test   $0x1,%r15b
jne    1243 <s_init_lam_mhe+0x143>
jmp    1254 <s_init_lam_mhe+0x154>
mov    -0x10(%rsp),%rsi
mov    -0x14(%rsp),%edi
jmp    127e <s_init_lam_mhe+0x17e>
xor    %r12d,%r12d
lea    (%rsi,%rsi,1),%r11d
movslq %edi,%r10
test   %esi,%esi
jle    13a0 <s_init_lam_mhe+0x2a0>
mov    (%r9,%r10,8),%rax
cmp    $0x2,%r11d
mov    $0x1,%esi
cmovge %r11d,%esi
cmp    $0x8,%esi
jae    12aa <s_init_lam_mhe+0x1aa>
xor    %edi,%edi
jmp    1390 <s_init_lam_mhe+0x290>
mov    %esi,%edi
and    $0x7ffffff8,%edi
lea    -0x8(%rdi),%rbx
mov    %rbx,%rbp
shr    $0x3,%rbp
add    $0x1,%rbp
mov    %ebp,%edx
and    $0x7,%edx
cmp    $0x38,%rbx
jae    12d3 <s_init_lam_mhe+0x1d3>
xor    %ebx,%ebx
jmp    1351 <s_init_lam_mhe+0x251>
and    $0xfffffffffffffff8,%rbp
xor    %ebx,%ebx
movaps 0xd20(%rip),%xmm0
movups %xmm0,(%rax,%rbx,4)
movups %xmm0,0x10(%rax,%rbx,4)
movups %xmm0,0x20(%rax,%rbx,4)
movups %xmm0,0x30(%rax,%rbx,4)
movups %xmm0,0x40(%rax,%rbx,4)
movups %xmm0,0x50(%rax,%rbx,4)
movups %xmm0,0x60(%rax,%rbx,4)
movups %xmm0,0x70(%rax,%rbx,4)
movups %xmm0,0x80(%rax,%rbx,4)
movups %xmm0,0x90(%rax,%rbx,4)
movups %xmm0,0xa0(%rax,%rbx,4)
movups %xmm0,0xb0(%rax,%rbx,4)
movups %xmm0,0xc0(%rax,%rbx,4)
movups %xmm0,0xd0(%rax,%rbx,4)
movups %xmm0,0xe0(%rax,%rbx,4)
movups %xmm0,0xf0(%rax,%rbx,4)
add    $0x40,%rbx
add    $0xfffffffffffffff8,%rbp
jne    12e0 <s_init_lam_mhe+0x1e0>
test   %rdx,%rdx
je     1382 <s_init_lam_mhe+0x282>
lea    (%rax,%rbx,4),%rbx
add    $0x10,%rbx
shl    $0x5,%rdx
xor    %ebp,%ebp
movaps 0xc95(%rip),%xmm0
nopl   0x0(%rax,%rax,1)
movups %xmm0,-0x10(%rbx,%rbp,1)
movups %xmm0,(%rbx,%rbp,1)
add    $0x20,%rbp
cmp    %rbp,%rdx
jne    1370 <s_init_lam_mhe+0x270>
cmp    %rsi,%rdi
je     13a0 <s_init_lam_mhe+0x2a0>
nopw   0x0(%rax,%rax,1)
movl   $0x3f800000,(%rax,%rdi,4)
add    $0x1,%rdi
cmp    %rdi,%rsi
jne    1390 <s_init_lam_mhe+0x290>
add    %ecx,%ecx
cmp    %ecx,%r11d
jge    14d5 <s_init_lam_mhe+0x3d5>
mov    (%r8,%r12,8),%rax
mov    (%r9,%r10,8),%rdx
movslq %r11d,%rsi
movslq %ecx,%r11
mov    %r11,%r10
sub    %rsi,%r10
cmp    $0x4,%r10
jb     147b <s_init_lam_mhe+0x37b>
lea    (%rdx,%rsi,4),%rcx
lea    (%rax,%r11,4),%rdi
cmp    %rdi,%rcx
jae    13e7 <s_init_lam_mhe+0x2e7>
lea    (%rdx,%r11,4),%rcx
lea    (%rax,%rsi,4),%rdi
cmp    %rcx,%rdi
jb     147b <s_init_lam_mhe+0x37b>
mov    %r10,%r8
and    $0xfffffffffffffffc,%r8
lea    -0x4(%r8),%rcx
mov    %rcx,%r9
shr    $0x2,%r9
add    $0x1,%r9
test   %rcx,%rcx
je     14e0 <s_init_lam_mhe+0x3e0>
mov    %r9,%rbx
and    $0xfffffffffffffffe,%rbx
lea    (%rdx,%rsi,4),%rdi
add    $0x10,%rdi
lea    (%rax,%rsi,4),%rcx
add    $0x10,%rcx
xor    %ebp,%ebp
movaps 0xbda(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
movups -0x10(%rcx,%rbp,4),%xmm1
movaps %xmm0,%xmm2
divps  %xmm1,%xmm2
movups %xmm2,-0x10(%rdi,%rbp,4)
movups (%rcx,%rbp,4),%xmm1
movaps %xmm0,%xmm2
divps  %xmm1,%xmm2
movups %xmm2,(%rdi,%rbp,4)
add    $0x8,%rbp
add    $0xfffffffffffffffe,%rbx
jne    1430 <s_init_lam_mhe+0x330>
test   $0x1,%r9b
je     1473 <s_init_lam_mhe+0x373>
add    %rsi,%rbp
movups (%rax,%rbp,4),%xmm0
movaps 0xb94(%rip),%xmm1
divps  %xmm0,%xmm1
movups %xmm1,(%rdx,%rbp,4)
cmp    %r8,%r10
je     14d5 <s_init_lam_mhe+0x3d5>
add    %r8,%rsi
mov    %rsi,%rcx
not    %rcx
test   $0x1,%sil
je     149d <s_init_lam_mhe+0x39d>
movss  0xb81(%rip),%xmm0
divss  (%rax,%rsi,4),%xmm0
movss  %xmm0,(%rdx,%rsi,4)
add    $0x1,%rsi
add    %r11,%rcx
je     14d5 <s_init_lam_mhe+0x3d5>
movss  0xb66(%rip),%xmm0
nopw   0x0(%rax,%rax,1)
movaps %xmm0,%xmm1
divss  (%rax,%rsi,4),%xmm1
movss  %xmm1,(%rdx,%rsi,4)
movaps %xmm0,%xmm1
divss  0x4(%rax,%rsi,4),%xmm1
movss  %xmm1,0x4(%rdx,%rsi,4)
add    $0x2,%rsi
cmp    %rsi,%r11
jne    14b0 <s_init_lam_mhe+0x3b0>
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
xor    %ebp,%ebp
test   $0x1,%r9b
jne    145e <s_init_lam_mhe+0x35e>
jmp    1473 <s_init_lam_mhe+0x373>

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

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