int get_box(float theta, float theta_dot, float omega, float omega_dot,
            float omega_d_dot, float psi_goal) {
  int box;
  if (theta < -1)
    box = 0;
  else if (theta < -0.2)
    box = 1;
  else if (theta < 0)
    box = 2;
  else if (theta < 0.2)
    box = 3;
  else if (theta < 1)
    box = 4;
  else
    box = 5;
  if (theta_dot < -2)
    ;
  else if (theta_dot < 0)
    box += 6;
  else if (theta_dot < 2)
    box += 12;
  else
    box += 18;
  if (omega < -0.15)
    ;
  else if (omega < -0.06)
    box += 24;
  else if (omega < 0)
    box += 48;
  else if (omega < 0.06)
    box += 72;
  else if (omega < 0.15)
    box += 96;
  else
    box += 120;
  if (omega_dot < -0.45)
    ;
  else if (omega_dot < -0.24)
    box += 144;
  else if (omega_dot < 0)
    box += 288;
  else if (omega_dot < 0.24)
    box += 432;
  else if (omega_dot < 0.45)
    box += 576;
  else
    box += 720;
  if (omega_d_dot < -1.8)
    ;
  else if (omega_d_dot < 0)
    box += 864;
  else if (omega_d_dot < 1.8)
    box += 1728;
  else
    box += 2592;
  return (box);
}


x86 assembly (clang, -O0):
<get_box>:
push   %rbp
mov    %rsp,%rbp
movss  %xmm0,-0x4(%rbp)
movss  %xmm1,-0x8(%rbp)
movss  %xmm2,-0xc(%rbp)
movss  %xmm3,-0x10(%rbp)
movss  %xmm4,-0x14(%rbp)
movss  %xmm5,-0x18(%rbp)
movss  0xed6(%rip),%xmm0
ucomiss -0x4(%rbp),%xmm0
jbe    1140 <get_box+0x40>
movl   $0x0,-0x1c(%rbp)
jmp    11e0 <get_box+0xe0>
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xebf(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1167 <get_box+0x67>
movl   $0x1,-0x1c(%rbp)
jmp    11db <get_box+0xdb>
xorps  %xmm0,%xmm0
ucomiss -0x4(%rbp),%xmm0
jbe    1180 <get_box+0x80>
movl   $0x2,-0x1c(%rbp)
jmp    11d6 <get_box+0xd6>
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xe87(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    11a7 <get_box+0xa7>
movl   $0x3,-0x1c(%rbp)
jmp    11d1 <get_box+0xd1>
movss  0xe55(%rip),%xmm0
ucomiss -0x4(%rbp),%xmm0
jbe    11c5 <get_box+0xc5>
movl   $0x4,-0x1c(%rbp)
jmp    11cc <get_box+0xcc>
movl   $0x5,-0x1c(%rbp)
jmp    11d1 <get_box+0xd1>
jmp    11d6 <get_box+0xd6>
jmp    11db <get_box+0xdb>
jmp    11e0 <get_box+0xe0>
movss  0xe20(%rip),%xmm0
ucomiss -0x8(%rbp),%xmm0
jbe    11f7 <get_box+0xf7>
jmp    1245 <get_box+0x145>
xorps  %xmm0,%xmm0
ucomiss -0x8(%rbp),%xmm0
jbe    1212 <get_box+0x112>
mov    -0x1c(%rbp),%eax
add    $0x6,%eax
mov    %eax,-0x1c(%rbp)
jmp    1240 <get_box+0x140>
movss  0xdf2(%rip),%xmm0
ucomiss -0x8(%rbp),%xmm0
jbe    1232 <get_box+0x132>
mov    -0x1c(%rbp),%eax
add    $0xc,%eax
mov    %eax,-0x1c(%rbp)
jmp    123b <get_box+0x13b>
mov    -0x1c(%rbp),%eax
add    $0x12,%eax
mov    %eax,-0x1c(%rbp)
jmp    1240 <get_box+0x140>
jmp    1245 <get_box+0x145>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xdca(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1265 <get_box+0x165>
jmp    1318 <get_box+0x218>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xdb2(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    128e <get_box+0x18e>
mov    -0x1c(%rbp),%eax
add    $0x18,%eax
mov    %eax,-0x1c(%rbp)
jmp    1313 <get_box+0x213>
xorps  %xmm0,%xmm0
ucomiss -0xc(%rbp),%xmm0
jbe    12a9 <get_box+0x1a9>
mov    -0x1c(%rbp),%eax
add    $0x30,%eax
mov    %eax,-0x1c(%rbp)
jmp    130e <get_box+0x20e>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xd76(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    12d2 <get_box+0x1d2>
mov    -0x1c(%rbp),%eax
add    $0x48,%eax
mov    %eax,-0x1c(%rbp)
jmp    1309 <get_box+0x209>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xd55(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    12fb <get_box+0x1fb>
mov    -0x1c(%rbp),%eax
add    $0x60,%eax
mov    %eax,-0x1c(%rbp)
jmp    1304 <get_box+0x204>
mov    -0x1c(%rbp),%eax
add    $0x78,%eax
mov    %eax,-0x1c(%rbp)
jmp    1309 <get_box+0x209>
jmp    130e <get_box+0x20e>
jmp    1313 <get_box+0x213>
jmp    1318 <get_box+0x218>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xd17(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1338 <get_box+0x238>
jmp    13f5 <get_box+0x2f5>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xcff(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1363 <get_box+0x263>
mov    -0x1c(%rbp),%eax
add    $0x90,%eax
mov    %eax,-0x1c(%rbp)
jmp    13f0 <get_box+0x2f0>
xorps  %xmm0,%xmm0
ucomiss -0x10(%rbp),%xmm0
jbe    1380 <get_box+0x280>
mov    -0x1c(%rbp),%eax
add    $0x120,%eax
mov    %eax,-0x1c(%rbp)
jmp    13eb <get_box+0x2eb>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xcbf(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    13ab <get_box+0x2ab>
mov    -0x1c(%rbp),%eax
add    $0x1b0,%eax
mov    %eax,-0x1c(%rbp)
jmp    13e6 <get_box+0x2e6>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xc9c(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    13d6 <get_box+0x2d6>
mov    -0x1c(%rbp),%eax
add    $0x240,%eax
mov    %eax,-0x1c(%rbp)
jmp    13e1 <get_box+0x2e1>
mov    -0x1c(%rbp),%eax
add    $0x2d0,%eax
mov    %eax,-0x1c(%rbp)
jmp    13e6 <get_box+0x2e6>
jmp    13eb <get_box+0x2eb>
jmp    13f0 <get_box+0x2f0>
jmp    13f5 <get_box+0x2f5>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xc5a(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    1415 <get_box+0x315>
jmp    1472 <get_box+0x372>
xorps  %xmm0,%xmm0
ucomiss -0x14(%rbp),%xmm0
jbe    1432 <get_box+0x332>
mov    -0x1c(%rbp),%eax
add    $0x360,%eax
mov    %eax,-0x1c(%rbp)
jmp    146d <get_box+0x36d>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xc25(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    145d <get_box+0x35d>
mov    -0x1c(%rbp),%eax
add    $0x6c0,%eax
mov    %eax,-0x1c(%rbp)
jmp    1468 <get_box+0x368>
mov    -0x1c(%rbp),%eax
add    $0xa20,%eax
mov    %eax,-0x1c(%rbp)
jmp    146d <get_box+0x36d>
jmp    1472 <get_box+0x372>
mov    -0x1c(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<get_box>:
xor    %eax,%eax
movss  0xef6(%rip),%xmm5
ucomiss %xmm0,%xmm5
ja     115d <get_box+0x5d>
xorps  %xmm5,%xmm5
cvtss2sd %xmm0,%xmm5
mov    $0x1,%eax
movsd  0xeed(%rip),%xmm6
ucomisd %xmm5,%xmm6
ja     115d <get_box+0x5d>
mov    $0x2,%eax
xorpd  %xmm6,%xmm6
ucomiss %xmm0,%xmm6
ja     115d <get_box+0x5d>
mov    $0x3,%eax
movsd  0xed4(%rip),%xmm6
ucomisd %xmm5,%xmm6
ja     115d <get_box+0x5d>
movss  0xeb2(%rip),%xmm5
xor    %eax,%eax
ucomiss %xmm0,%xmm5
seta   %al
xor    $0x5,%eax
movss  0xea3(%rip),%xmm0
ucomiss %xmm1,%xmm0
ja     118c <get_box+0x8c>
xorps  %xmm0,%xmm0
ucomiss %xmm1,%xmm0
jbe    1177 <get_box+0x77>
add    $0x6,%eax
jmp    118c <get_box+0x8c>
movss  0xe8d(%rip),%xmm0
ucomiss %xmm1,%xmm0
jbe    1189 <get_box+0x89>
add    $0xc,%eax
jmp    118c <get_box+0x8c>
add    $0x12,%eax
xorps  %xmm0,%xmm0
cvtss2sd %xmm2,%xmm0
movsd  0xe85(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     11eb <get_box+0xeb>
movsd  0xe7f(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    11b4 <get_box+0xb4>
add    $0x18,%eax
jmp    11eb <get_box+0xeb>
xorpd  %xmm1,%xmm1
ucomiss %xmm2,%xmm1
jbe    11c2 <get_box+0xc2>
add    $0x30,%eax
jmp    11eb <get_box+0xeb>
movsd  0xe66(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    11d5 <get_box+0xd5>
add    $0x48,%eax
jmp    11eb <get_box+0xeb>
movsd  0xe5b(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    11e8 <get_box+0xe8>
or     $0x60,%eax
jmp    11eb <get_box+0xeb>
add    $0x78,%eax
xorps  %xmm0,%xmm0
cvtss2sd %xmm3,%xmm0
movsd  0xe46(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     1254 <get_box+0x154>
movsd  0xe40(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    1215 <get_box+0x115>
add    $0x90,%eax
jmp    1254 <get_box+0x154>
xorpd  %xmm1,%xmm1
ucomiss %xmm3,%xmm1
jbe    1225 <get_box+0x125>
add    $0x120,%eax
jmp    1254 <get_box+0x154>
movsd  0xe23(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    123a <get_box+0x13a>
add    $0x1b0,%eax
jmp    1254 <get_box+0x154>
movsd  0xe16(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    124f <get_box+0x14f>
add    $0x240,%eax
jmp    1254 <get_box+0x154>
add    $0x2d0,%eax
xorps  %xmm0,%xmm0
cvtss2sd %xmm4,%xmm0
movsd  0xdfd(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     1291 <get_box+0x191>
xorpd  %xmm1,%xmm1
ucomiss %xmm4,%xmm1
jbe    1278 <get_box+0x178>
add    $0x360,%eax
ret
movsd  0xde8(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    128c <get_box+0x18c>
add    $0x6c0,%eax
ret
add    $0xa20,%eax
ret

LLVM IR (-O0):
define i32 @get_box(float %0, float %1, float %2, float %3, float %4, float %5) {
%7 = alloca float
%8 = alloca float
%9 = alloca float
%10 = alloca float
%11 = alloca float
%12 = alloca float
%13 = alloca i32
store float %0, float* %7
store float %1, float* %8
store float %2, float* %9
store float %3, float* %10
store float %4, float* %11
store float %5, float* %12
%14 = load float, float* %7
%15 = fcmp olt float %14, -1.000000e+00
br i1 %15, label %16, label %17
16: ; preds = %6
store i32 0, i32* %13
br label %40
17: ; preds = %6
%18 = load float, float* %7
%19 = fpext float %18 to double
%20 = fcmp olt double %19, -2.000000e-01
br i1 %20, label %21, label %22
21: ; preds = %17
store i32 1, i32* %13
br label %39
22: ; preds = %17
%23 = load float, float* %7
%24 = fcmp olt float %23, 0.000000e+00
br i1 %24, label %25, label %26
25: ; preds = %22
store i32 2, i32* %13
br label %38
26: ; preds = %22
%27 = load float, float* %7
%28 = fpext float %27 to double
%29 = fcmp olt double %28, 2.000000e-01
br i1 %29, label %30, label %31
30: ; preds = %26
store i32 3, i32* %13
br label %37
31: ; preds = %26
%32 = load float, float* %7
%33 = fcmp olt float %32, 1.000000e+00
br i1 %33, label %34, label %35
34: ; preds = %31
store i32 4, i32* %13
br label %36
35: ; preds = %31
store i32 5, i32* %13
br label %36
36: ; preds = %35, %34
br label %37
37: ; preds = %36, %30
br label %38
38: ; preds = %37, %25
br label %39
39: ; preds = %38, %21
br label %40
40: ; preds = %39, %16
%41 = load float, float* %8
%42 = fcmp olt float %41, -2.000000e+00
br i1 %42, label %43, label %44
43: ; preds = %40
br label %61
44: ; preds = %40
%45 = load float, float* %8
%46 = fcmp olt float %45, 0.000000e+00
br i1 %46, label %47, label %50
47: ; preds = %44
%48 = load i32, i32* %13
%49 = add nsw i32 %48, 6
store i32 %49, i32* %13
br label %60
50: ; preds = %44
%51 = load float, float* %8
%52 = fcmp olt float %51, 2.000000e+00
br i1 %52, label %53, label %56
53: ; preds = %50
%54 = load i32, i32* %13
%55 = add nsw i32 %54, 12
store i32 %55, i32* %13
br label %59
56: ; preds = %50
%57 = load i32, i32* %13
%58 = add nsw i32 %57, 18
store i32 %58, i32* %13
br label %59
59: ; preds = %56, %53
br label %60
60: ; preds = %59, %47
br label %61
61: ; preds = %60, %43
%62 = load float, float* %9
%63 = fpext float %62 to double
%64 = fcmp olt double %63, -1.500000e-01
br i1 %64, label %65, label %66
65: ; preds = %61
br label %100
66: ; preds = %61
%67 = load float, float* %9
%68 = fpext float %67 to double
%69 = fcmp olt double %68, -6.000000e-02
br i1 %69, label %70, label %73
70: ; preds = %66
%71 = load i32, i32* %13
%72 = add nsw i32 %71, 24
store i32 %72, i32* %13
br label %99
73: ; preds = %66
%74 = load float, float* %9
%75 = fcmp olt float %74, 0.000000e+00
br i1 %75, label %76, label %79
76: ; preds = %73
%77 = load i32, i32* %13
%78 = add nsw i32 %77, 48
store i32 %78, i32* %13
br label %98
79: ; preds = %73
%80 = load float, float* %9
%81 = fpext float %80 to double
%82 = fcmp olt double %81, 6.000000e-02
br i1 %82, label %83, label %86
83: ; preds = %79
%84 = load i32, i32* %13
%85 = add nsw i32 %84, 72
store i32 %85, i32* %13
br label %97
86: ; preds = %79
%87 = load float, float* %9
%88 = fpext float %87 to double
%89 = fcmp olt double %88, 1.500000e-01
br i1 %89, label %90, label %93
90: ; preds = %86
%91 = load i32, i32* %13
%92 = add nsw i32 %91, 96
store i32 %92, i32* %13
br label %96
93: ; preds = %86
%94 = load i32, i32* %13
%95 = add nsw i32 %94, 120
store i32 %95, i32* %13
br label %96
96: ; preds = %93, %90
br label %97
97: ; preds = %96, %83
br label %98
98: ; preds = %97, %76
br label %99
99: ; preds = %98, %70
br label %100
100: ; preds = %99, %65
%101 = load float, float* %10
%102 = fpext float %101 to double
%103 = fcmp olt double %102, -4.500000e-01
br i1 %103, label %104, label %105
104: ; preds = %100
br label %139
105: ; preds = %100
%106 = load float, float* %10
%107 = fpext float %106 to double
%108 = fcmp olt double %107, -2.400000e-01
br i1 %108, label %109, label %112
109: ; preds = %105
%110 = load i32, i32* %13
%111 = add nsw i32 %110, 144
store i32 %111, i32* %13
br label %138
112: ; preds = %105
%113 = load float, float* %10
%114 = fcmp olt float %113, 0.000000e+00
br i1 %114, label %115, label %118
115: ; preds = %112
%116 = load i32, i32* %13
%117 = add nsw i32 %116, 288
store i32 %117, i32* %13
br label %137
118: ; preds = %112
%119 = load float, float* %10
%120 = fpext float %119 to double
%121 = fcmp olt double %120, 2.400000e-01
br i1 %121, label %122, label %125
122: ; preds = %118
%123 = load i32, i32* %13
%124 = add nsw i32 %123, 432
store i32 %124, i32* %13
br label %136
125: ; preds = %118
%126 = load float, float* %10
%127 = fpext float %126 to double
%128 = fcmp olt double %127, 4.500000e-01
br i1 %128, label %129, label %132
129: ; preds = %125
%130 = load i32, i32* %13
%131 = add nsw i32 %130, 576
store i32 %131, i32* %13
br label %135
132: ; preds = %125
%133 = load i32, i32* %13
%134 = add nsw i32 %133, 720
store i32 %134, i32* %13
br label %135
135: ; preds = %132, %129
br label %136
136: ; preds = %135, %122
br label %137
137: ; preds = %136, %115
br label %138
138: ; preds = %137, %109
br label %139
139: ; preds = %138, %104
%140 = load float, float* %11
%141 = fpext float %140 to double
%142 = fcmp olt double %141, -1.800000e+00
br i1 %142, label %143, label %144
143: ; preds = %139
br label %162
144: ; preds = %139
%145 = load float, float* %11
%146 = fcmp olt float %145, 0.000000e+00
br i1 %146, label %147, label %150
147: ; preds = %144
%148 = load i32, i32* %13
%149 = add nsw i32 %148, 864
store i32 %149, i32* %13
br label %161
150: ; preds = %144
%151 = load float, float* %11
%152 = fpext float %151 to double
%153 = fcmp olt double %152, 1.800000e+00
br i1 %153, label %154, label %157
154: ; preds = %150
%155 = load i32, i32* %13
%156 = add nsw i32 %155, 1728
store i32 %156, i32* %13
br label %160
157: ; preds = %150
%158 = load i32, i32* %13
%159 = add nsw i32 %158, 2592
store i32 %159, i32* %13
br label %160
160: ; preds = %157, %154
br label %161
161: ; preds = %160, %147
br label %162
162: ; preds = %161, %143
%163 = load i32, i32* %13
ret i32 %163
}

LLVM IR (-O2):
define i32 @get_box(float %0, float %1, float %2, float %3, float %4, float %5) {
%7 = fcmp olt float %0, -1.000000e+00
br i1 %7, label %18, label %8
8: ; preds = %6
%9 = fpext float %0 to double
%10 = fcmp olt double %9, -2.000000e-01
br i1 %10, label %18, label %11
11: ; preds = %8
%12 = fcmp olt float %0, 0.000000e+00
br i1 %12, label %18, label %13
13: ; preds = %11
%14 = fcmp olt double %9, 2.000000e-01
br i1 %14, label %18, label %15
15: ; preds = %13
%16 = fcmp olt float %0, 1.000000e+00
%17 = select i1 %16, i32 4, i32 5
br label %18
18: ; preds = %15, %13, %11, %8, %6
%19 = phi i32 [ 0, %6 ], [ 1, %8 ], [ 2, %11 ], [ 3, %13 ], [ %17, %15 ]
%20 = fcmp olt float %1, -2.000000e+00
br i1 %20, label %31, label %21
21: ; preds = %18
%22 = fcmp olt float %1, 0.000000e+00
br i1 %22, label %23, label %25
23: ; preds = %21
%24 = add nuw nsw i32 %19, 6
br label %31
25: ; preds = %21
%26 = fcmp olt float %1, 2.000000e+00
br i1 %26, label %27, label %29
27: ; preds = %25
%28 = add nuw nsw i32 %19, 12
br label %31
29: ; preds = %25
%30 = add nuw nsw i32 %19, 18
br label %31
31: ; preds = %23, %29, %27, %18
%32 = phi i32 [ %19, %18 ], [ %24, %23 ], [ %28, %27 ], [ %30, %29 ]
%33 = fpext float %2 to double
%34 = fcmp olt double %33, -1.500000e-01
br i1 %34, label %53, label %35
35: ; preds = %31
%36 = fcmp olt double %33, -6.000000e-02
br i1 %36, label %37, label %39
37: ; preds = %35
%38 = add nuw nsw i32 %32, 24
br label %53
39: ; preds = %35
%40 = fcmp olt float %2, 0.000000e+00
br i1 %40, label %41, label %43
41: ; preds = %39
%42 = add nuw nsw i32 %32, 48
br label %53
43: ; preds = %39
%44 = fcmp olt double %33, 6.000000e-02
br i1 %44, label %45, label %47
45: ; preds = %43
%46 = add nuw nsw i32 %32, 72
br label %53
47: ; preds = %43
%48 = fcmp olt double %33, 1.500000e-01
br i1 %48, label %49, label %51
49: ; preds = %47
%50 = add nuw nsw i32 %32, 96
br label %53
51: ; preds = %47
%52 = add nuw nsw i32 %32, 120
br label %53
53: ; preds = %37, %45, %51, %49, %41, %31
%54 = phi i32 [ %32, %31 ], [ %38, %37 ], [ %42, %41 ], [ %46, %45 ], [ %50, %49 ], [ %52, %51 ]
%55 = fpext float %3 to double
%56 = fcmp olt double %55, -4.500000e-01
br i1 %56, label %75, label %57
57: ; preds = %53
%58 = fcmp olt double %55, -2.400000e-01
br i1 %58, label %59, label %61
59: ; preds = %57
%60 = add nuw nsw i32 %54, 144
br label %75
61: ; preds = %57
%62 = fcmp olt float %3, 0.000000e+00
br i1 %62, label %63, label %65
63: ; preds = %61
%64 = add nuw nsw i32 %54, 288
br label %75
65: ; preds = %61
%66 = fcmp olt double %55, 2.400000e-01
br i1 %66, label %67, label %69
67: ; preds = %65
%68 = add nuw nsw i32 %54, 432
br label %75
69: ; preds = %65
%70 = fcmp olt double %55, 4.500000e-01
br i1 %70, label %71, label %73
71: ; preds = %69
%72 = add nuw nsw i32 %54, 576
br label %75
73: ; preds = %69
%74 = add nuw nsw i32 %54, 720
br label %75
75: ; preds = %59, %67, %73, %71, %63, %53
%76 = phi i32 [ %54, %53 ], [ %60, %59 ], [ %64, %63 ], [ %68, %67 ], [ %72, %71 ], [ %74, %73 ]
%77 = fpext float %4 to double
%78 = fcmp olt double %77, -1.800000e+00
br i1 %78, label %89, label %79
79: ; preds = %75
%80 = fcmp olt float %4, 0.000000e+00
br i1 %80, label %81, label %83
81: ; preds = %79
%82 = add nuw nsw i32 %76, 864
br label %89
83: ; preds = %79
%84 = fcmp olt double %77, 1.800000e+00
br i1 %84, label %85, label %87
85: ; preds = %83
%86 = add nuw nsw i32 %76, 1728
br label %89
87: ; preds = %83
%88 = add nuw nsw i32 %76, 2592
br label %89
89: ; preds = %81, %87, %85, %75
%90 = phi i32 [ %76, %75 ], [ %82, %81 ], [ %86, %85 ], [ %88, %87 ]
ret i32 %90
}