#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int gcd(int, int);
int /*<<< orphan*/ printf(char *, float);
float timeit();
int main(int argc, char *argv[]) {
  float start = timeit();
  int numerator_prod_sum = 1;
  int denominator_prod_sum = 1;
  for (int numerator = 12; numerator < 99; numerator++) {
    for (int denominator = numerator + 1; denominator < 100; denominator++) {
      if (numerator % 10 == 0 || numerator % 11 == 0 || denominator % 10 == 0 ||
          denominator % 11 == 0)
        continue;
      float reduced_numerator;
      float reduced_denominator;
      if (numerator % 10 == denominator % 10) {
        reduced_numerator = (float)(numerator / 10);
        reduced_denominator /= (float)(denominator / 10);
      } else if (numerator / 10 == denominator % 10) {
        reduced_numerator = (float)(numerator % 10);
        reduced_denominator = (float)(denominator / 10);
      } else if (numerator % 10 == denominator / 10) {
        reduced_numerator = (float)(numerator / 10);
        reduced_denominator = (float)(denominator % 10);
      } else if (numerator / 10 == denominator / 10) {
        reduced_numerator = (float)(numerator % 10);
        reduced_denominator = (float)(denominator % 10);
      } else
        continue;
      if ((reduced_numerator / reduced_denominator) ==
          ((float)numerator / denominator)) {
        numerator_prod_sum *= numerator;
        denominator_prod_sum *= denominator;
      }
    }
  }
  float stop = timeit();
  printf("Answer: %d\n",
         denominator_prod_sum / gcd(denominator_prod_sum, numerator_prod_sum));
  printf("Time: %f\n", stop - start);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    $0x0,%al
call   1050 <timeit@plt>
movss  %xmm0,-0x14(%rbp)
movl   $0x1,-0x18(%rbp)
movl   $0x1,-0x1c(%rbp)
movl   $0xc,-0x20(%rbp)
cmpl   $0x63,-0x20(%rbp)
jge    139f <main+0x26f>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
cmpl   $0x64,-0x24(%rbp)
jge    138c <main+0x25c>
mov    -0x20(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
je     11d4 <main+0xa4>
mov    -0x20(%rbp),%eax
mov    $0xb,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
je     11d4 <main+0xa4>
mov    -0x24(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
je     11d4 <main+0xa4>
mov    -0x24(%rbp),%eax
mov    $0xb,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    11d9 <main+0xa9>
jmp    137e <main+0x24e>
mov    -0x20(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x34(%rbp)
mov    -0x24(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,%eax
mov    -0x34(%rbp),%edx
cmp    %eax,%edx
jne    1235 <main+0x105>
mov    -0x20(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm0
movss  %xmm0,-0x28(%rbp)
mov    -0x24(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm1
movss  -0x2c(%rbp),%xmm0
divss  %xmm1,%xmm0
movss  %xmm0,-0x2c(%rbp)
jmp    133e <main+0x20e>
mov    -0x20(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,-0x38(%rbp)
mov    -0x24(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    -0x38(%rbp),%eax
cmp    %edx,%eax
jne    1286 <main+0x156>
mov    -0x20(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cvtsi2ss %edx,%xmm0
movss  %xmm0,-0x28(%rbp)
mov    -0x24(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm0
movss  %xmm0,-0x2c(%rbp)
jmp    1339 <main+0x209>
mov    -0x20(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x3c(%rbp)
mov    -0x24(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    -0x3c(%rbp),%edx
cmp    %eax,%edx
jne    12d7 <main+0x1a7>
mov    -0x20(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm0
movss  %xmm0,-0x28(%rbp)
mov    -0x24(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cvtsi2ss %edx,%xmm0
movss  %xmm0,-0x2c(%rbp)
jmp    1334 <main+0x204>
mov    -0x20(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,-0x40(%rbp)
mov    -0x24(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x40(%rbp),%eax
cmp    %ecx,%eax
jne    132a <main+0x1fa>
mov    -0x20(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cvtsi2ss %edx,%xmm0
movss  %xmm0,-0x28(%rbp)
mov    -0x24(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cvtsi2ss %edx,%xmm0
movss  %xmm0,-0x2c(%rbp)
jmp    132f <main+0x1ff>
jmp    137e <main+0x24e>
jmp    1334 <main+0x204>
jmp    1339 <main+0x209>
jmp    133e <main+0x20e>
movss  -0x28(%rbp),%xmm0
divss  -0x2c(%rbp),%xmm0
cvtsi2ssl -0x20(%rbp),%xmm1
cvtsi2ssl -0x24(%rbp),%xmm2
divss  %xmm2,%xmm1
ucomiss %xmm1,%xmm0
jne    1379 <main+0x249>
jp     1379 <main+0x249>
mov    -0x20(%rbp),%eax
imul   -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x24(%rbp),%eax
imul   -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
jmp    137e <main+0x24e>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    117a <main+0x4a>
jmp    1391 <main+0x261>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1167 <main+0x37>
mov    $0x0,%al
call   1050 <timeit@plt>
movss  %xmm0,-0x30(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x1c(%rbp),%edi
mov    -0x18(%rbp),%esi
call   1040 <gcd@plt>
mov    %eax,%ecx
mov    -0x44(%rbp),%eax
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm0
lea    0xc31(%rip),%rdi
call   1030 <printf@plt>
movss  -0x30(%rbp),%xmm0
subss  -0x14(%rbp),%xmm0
lea    0xc27(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
xor    %ebx,%ebx
xor    %eax,%eax
call   1050 <timeit@plt>
movss  %xmm0,0x14(%rsp)
mov    $0xc,%eax
mov    $0xd,%r14b
mov    $0x1,%r13d
mov    $0x1,%r15d
jmp    1184 <main+0x54>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0x1,%ebx
add    $0x1,%r14b
mov    0x18(%rsp),%eax
cmp    $0x63,%eax
je     1331 <main+0x201>
mov    %eax,%ecx
lea    0x1(%rcx),%edi
mov    %eax,%r11d
mov    $0xcccccccd,%eax
imul   %rax,%r11
shr    $0x23,%r11
lea    (%r11,%r11,1),%eax
lea    (%rax,%rax,4),%esi
mov    %ecx,%eax
sub    %esi,%eax
mov    %eax,0x4(%rsp)
sete   %al
imul   $0xba2e8ba3,%ecx,%edx
cmp    $0x1745d175,%edx
setb   %r12b
or     %al,%r12b
mov    %rcx,0x20(%rsp)
xorps  %xmm1,%xmm1
cvtsi2ss %ecx,%xmm1
shufps $0x0,%xmm1,%xmm1
mov    $0xd,%eax
sub    %r11d,%eax
mov    %eax,0x1c(%rsp)
not    %esi
mov    %rsi,0x8(%rsp)
xor    %eax,%eax
mov    %edi,0x18(%rsp)
jmp    125e <main+0x12e>
movzbl %r10b,%ecx
imul   $0xcd,%ecx,%ecx
shr    $0xb,%ecx
xorps  %xmm2,%xmm2
cvtsi2ss %ecx,%xmm2
divss  %xmm2,%xmm0
mov    %r11d,%ebp
lea    (%rbx,%rax,1),%ecx
add    $0xd,%ecx
xorps  %xmm2,%xmm2
cvtsi2ss %ecx,%xmm2
movaps %xmm1,%xmm3
cvtsi2ss %ebp,%xmm3
movaps %xmm0,%xmm4
unpcklps %xmm2,%xmm4
divps  %xmm4,%xmm3
movaps %xmm3,%xmm2
shufps $0x55,%xmm3,%xmm2
ucomiss %xmm2,%xmm3
mov    0x20(%rsp),%rdx
mov    $0x1,%esi
cmovne %esi,%edx
cmovp  %esi,%edx
cmovne %esi,%ecx
cmovp  %esi,%ecx
imul   %edx,%r15d
imul   %ecx,%r13d
add    $0x1,%edi
lea    (%rbx,%rax,1),%ecx
add    $0x1,%ecx
add    $0x1,%eax
cmp    $0x57,%ecx
je     1170 <main+0x40>
test   %r12b,%r12b
jne    1249 <main+0x119>
movzbl %dil,%ebp
imul   $0xcd,%ebp,%esi
shr    $0xa,%esi
and    $0xfffffffe,%esi
lea    (%rsi,%rsi,4),%esi
mov    %r14d,%ecx
sub    %sil,%cl
movzbl %cl,%r8d
add    %eax,%r8d
test   %r8b,%r8b
je     1249 <main+0x119>
imul   $0x75,%ebp,%ecx
shr    $0x8,%ecx
sub    %cl,%bpl
shr    %bpl
add    %cl,%bpl
shr    $0x3,%bpl
movzbl %bpl,%ecx
lea    (%rcx,%rcx,4),%esi
lea    (%rcx,%rsi,2),%ecx
mov    $0xd,%dl
sub    %cl,%dl
movzbl %dl,%ecx
lea    (%rbx,%rax,1),%r9d
add    %r9d,%ecx
test   %cl,%cl
je     1249 <main+0x119>
mov    %edi,%ecx
mov    $0xcccccccd,%edx
imul   %rdx,%rcx
shr    $0x23,%rcx
add    %ecx,%ecx
lea    (%rcx,%rcx,4),%ebp
mov    0x8(%rsp),%rcx
add    %ebp,%ecx
lea    (%rbx,%rax,1),%r10d
add    $0xd,%r10d
cmp    %eax,%ecx
je     11e9 <main+0xb9>
mov    0x1c(%rsp),%ecx
sub    %ebp,%ecx
movzbl %r10b,%edx
imul   $0xcd,%edx,%ebp
shr    $0xb,%ebp
add    %ecx,%r9d
je     1311 <main+0x1e1>
movzbl %bpl,%ebp
cmp    %ebp,0x4(%rsp)
jne    1317 <main+0x1e7>
movzbl %r8b,%ecx
cvtsi2ss %ecx,%xmm0
jmp    1201 <main+0xd1>
movzbl %bpl,%ecx
jmp    1324 <main+0x1f4>
cmp    %ebp,%r11d
jne    1249 <main+0x119>
movzbl %r8b,%ecx
cvtsi2ss %ecx,%xmm0
mov    0x4(%rsp),%ebp
jmp    1204 <main+0xd4>
xor    %eax,%eax
call   1050 <timeit@plt>
movss  %xmm0,0x8(%rsp)
mov    %r13d,%edi
mov    %r15d,%esi
call   1040 <gcd@plt>
mov    %eax,%ecx
mov    %r13d,%eax
cltd
idiv   %ecx
xorps  %xmm0,%xmm0
cvtsi2ss %eax,%xmm0
lea    0xca1(%rip),%rdi
call   1030 <printf@plt>
movss  0x8(%rsp),%xmm0
subss  0x14(%rsp),%xmm0
lea    0xc95(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@.str = [12 x i8] c"Answer: %d\0A\00"
@.str.1 = [10 x i8] c"Time: %f\0A\00"
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = tail call float (...) @timeit()
br label %14
4: ; preds = %77
%5 = icmp eq i32 %19, 99
br i1 %5, label %6, label %14
6: ; preds = %4
%7 = tail call float (...) @timeit()
%8 = tail call i32 @gcd(i32 %79, i32 %78)
%9 = sdiv i32 %79, %8
%10 = sitofp i32 %9 to float
%11 = tail call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0), float %10)
%12 = fsub float %7, %3
%13 = tail call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0), float %12)
ret i32 0
14: ; preds = %4, %2
%15 = phi float [ undef, %2 ], [ %80, %4 ]
%16 = phi i32 [ 12, %2 ], [ %19, %4 ]
%17 = phi i32 [ 1, %2 ], [ %79, %4 ]
%18 = phi i32 [ 1, %2 ], [ %78, %4 ]
%19 = add nuw nsw i32 %16, 1
%20 = urem i32 %16, 10
%21 = icmp eq i32 %20, 0
%22 = urem i32 %16, 11
%23 = icmp eq i32 %22, 0
%24 = or i1 %21, %23
%25 = udiv i32 %16, 10
%26 = sitofp i32 %16 to float
%27 = insertelement <2 x float> poison, float %26, i64 1
br label %28
28: ; preds = %14, %77
%29 = phi float [ %15, %14 ], [ %80, %77 ]
%30 = phi i32 [ %19, %14 ], [ %81, %77 ]
%31 = phi i32 [ %17, %14 ], [ %79, %77 ]
%32 = phi i32 [ %18, %14 ], [ %78, %77 ]
br i1 %24, label %77, label %33
33: ; preds = %28
%34 = trunc i32 %30 to i8
%35 = urem i8 %34, 10
%36 = udiv i8 %34, 10
%37 = zext i8 %35 to i32
%38 = icmp eq i8 %35, 0
%39 = urem i8 %34, 11
%40 = icmp eq i8 %39, 0
%41 = or i1 %38, %40
br i1 %41, label %77, label %42
42: ; preds = %33
%43 = icmp eq i32 %20, %37
br i1 %43, label %44, label %48
44: ; preds = %42
%45 = udiv i8 %34, 10
%46 = uitofp i8 %45 to float
%47 = fdiv float %29, %46
br label %61
48: ; preds = %42
%49 = icmp eq i32 %25, %37
br i1 %49, label %50, label %52
50: ; preds = %48
%51 = uitofp i8 %36 to float
br label %61
52: ; preds = %48
%53 = zext i8 %36 to i32
%54 = icmp eq i32 %20, %53
br i1 %54, label %55, label %57
55: ; preds = %52
%56 = uitofp i8 %35 to float
br label %61
57: ; preds = %52
%58 = icmp eq i32 %25, %53
br i1 %58, label %59, label %77
59: ; preds = %57
%60 = uitofp i8 %35 to float
br label %61
61: ; preds = %50, %59, %55, %44
%62 = phi i32 [ %25, %44 ], [ %20, %50 ], [ %25, %55 ], [ %20, %59 ]
%63 = phi float [ %47, %44 ], [ %51, %50 ], [ %56, %55 ], [ %60, %59 ]
%64 = sitofp i32 %62 to float
%65 = sitofp i32 %30 to float
%66 = insertelement <2 x float> %27, float %64, i64 0
%67 = insertelement <2 x float> poison, float %63, i64 0
%68 = insertelement <2 x float> %67, float %65, i64 1
%69 = fdiv <2 x float> %66, %68
%70 = extractelement <2 x float> %69, i64 0
%71 = extractelement <2 x float> %69, i64 1
%72 = fcmp oeq float %70, %71
%73 = select i1 %72, i32 %16, i32 1
%74 = mul nsw i32 %73, %32
%75 = select i1 %72, i32 %30, i32 1
%76 = mul nsw i32 %75, %31
br label %77
77: ; preds = %61, %57, %28, %33
%78 = phi i32 [ %32, %28 ], [ %32, %33 ], [ %74, %61 ], [ %32, %57 ]
%79 = phi i32 [ %31, %28 ], [ %31, %33 ], [ %76, %61 ], [ %31, %57 ]
%80 = phi float [ %29, %28 ], [ %29, %33 ], [ %63, %61 ], [ %29, %57 ]
%81 = add nuw nsw i32 %30, 1
%82 = icmp eq i32 %81, 100
br i1 %82, label %4, label %28
}