#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 */
float GCI_gammap(float, float);
float fabsf(float);
int GCI_chisq(int nu, float chisq, float *root) {
  int j;
  float x1, x2, val1, val2, mid, mid_val;
  x1 = 0.1f;
  x2 = 40.0f;
  if (chisq <= 0.0f || chisq >= 1.0f)
    return -1;
  if ((val1 = GCI_gammap(0.5f * (float)nu, 0.5f * x1)) < 0)
    return -3;
  j = 0;
  while ((val1 > chisq) && (++j <= 40)) {
    x1 /= 2;
    if ((val1 = GCI_gammap(0.5f * (float)nu, 0.5f * x1)) < 0)
      return -3;
  }
  if (j > 40)
    return -1;
  if ((val2 = GCI_gammap(0.5f * (float)nu, 0.5f * x2)) < 0)
    return -4;
  j = 0;
  while ((val2 < chisq) && (++j <= 40)) {
    x2 *= 2;
    if ((val2 = GCI_gammap(0.5f * (float)nu, 0.5f * x2)) < 0)
      return -4;
  }
  if (j > 40)
    return -2;
  for (j = 0; j < 40; ++j) {
    mid = (x1 + x2) / 2;
    mid_val = GCI_gammap(0.5f * (float)nu, 0.5f * mid);
    if (mid_val < 0.0f) {
      return -4;
    }
    if (mid_val == chisq) {
      *root = mid;
      return 0;
    }
    if (mid_val * val1 > 0.0f) {
      x1 = mid;
      val1 = mid_val;
    } else {
      x2 = mid;
      val2 = mid_val;
    }
    if (fabsf(x2 - x1) < 0.0002f && fabsf((x2 - x1) / mid) < 0.0002f) {
      *root = mid;
      return 0;
    }
  }
  return -5;
}


x86 assembly (clang, -O0):
<GCI_chisq>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    %edi,-0x8(%rbp)
movss  %xmm0,-0xc(%rbp)
mov    %rsi,-0x18(%rbp)
movss  0xed8(%rip),%xmm0
movss  %xmm0,-0x20(%rbp)
movss  0xec7(%rip),%xmm0
movss  %xmm0,-0x24(%rbp)
xorps  %xmm0,%xmm0
ucomiss -0xc(%rbp),%xmm0
jae    1161 <GCI_chisq+0x51>
movss  -0xc(%rbp),%xmm0
movss  0xeb0(%rip),%xmm1
ucomiss %xmm1,%xmm0
jb     116d <GCI_chisq+0x5d>
movl   $0xffffffff,-0x4(%rbp)
jmp    14b7 <GCI_chisq+0x3a7>
cvtsi2ssl -0x8(%rbp),%xmm1
movss  0xe92(%rip),%xmm0
mulss  %xmm1,%xmm0
movss  0xe86(%rip),%xmm1
mulss  -0x20(%rbp),%xmm1
call   1030 <GCI_gammap@plt>
movaps %xmm0,%xmm1
movss  %xmm1,-0x28(%rbp)
xorps  %xmm0,%xmm0
ucomiss %xmm1,%xmm0
jbe    11b0 <GCI_chisq+0xa0>
movl   $0xfffffffd,-0x4(%rbp)
jmp    14b7 <GCI_chisq+0x3a7>
movl   $0x0,-0x1c(%rbp)
movss  -0x28(%rbp),%xmm0
xor    %eax,%eax
ucomiss -0xc(%rbp),%xmm0
mov    %al,-0x35(%rbp)
jbe    11dd <GCI_chisq+0xcd>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
cmp    $0x28,%eax
setle  %al
mov    %al,-0x35(%rbp)
mov    -0x35(%rbp),%al
test   $0x1,%al
jne    11ed <GCI_chisq+0xdd>
jmp    124b <GCI_chisq+0x13b>
movss  -0x20(%rbp),%xmm0
movss  0xe16(%rip),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x20(%rbp)
cvtsi2ssl -0x8(%rbp),%xmm1
movss  0xdfc(%rip),%xmm0
mulss  %xmm1,%xmm0
movss  0xdf0(%rip),%xmm1
mulss  -0x20(%rbp),%xmm1
call   1030 <GCI_gammap@plt>
movaps %xmm0,%xmm1
movss  %xmm1,-0x28(%rbp)
xorps  %xmm0,%xmm0
ucomiss %xmm1,%xmm0
jbe    1246 <GCI_chisq+0x136>
movl   $0xfffffffd,-0x4(%rbp)
jmp    14b7 <GCI_chisq+0x3a7>
jmp    11b7 <GCI_chisq+0xa7>
cmpl   $0x28,-0x1c(%rbp)
jle    1261 <GCI_chisq+0x151>
movl   $0xffffffff,-0x4(%rbp)
jmp    14b7 <GCI_chisq+0x3a7>
cvtsi2ssl -0x8(%rbp),%xmm1
movss  0xd9e(%rip),%xmm0
mulss  %xmm1,%xmm0
movss  0xd92(%rip),%xmm1
mulss  -0x24(%rbp),%xmm1
call   1030 <GCI_gammap@plt>
movaps %xmm0,%xmm1
movss  %xmm1,-0x2c(%rbp)
xorps  %xmm0,%xmm0
ucomiss %xmm1,%xmm0
jbe    12a4 <GCI_chisq+0x194>
movl   $0xfffffffc,-0x4(%rbp)
jmp    14b7 <GCI_chisq+0x3a7>
movl   $0x0,-0x1c(%rbp)
movss  -0x2c(%rbp),%xmm1
movss  -0xc(%rbp),%xmm0
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x36(%rbp)
jbe    12d5 <GCI_chisq+0x1c5>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
cmp    $0x28,%eax
setle  %al
mov    %al,-0x36(%rbp)
mov    -0x36(%rbp),%al
test   $0x1,%al
jne    12e5 <GCI_chisq+0x1d5>
jmp    133f <GCI_chisq+0x22f>
movss  0xd23(%rip),%xmm0
mulss  -0x24(%rbp),%xmm0
movss  %xmm0,-0x24(%rbp)
cvtsi2ssl -0x8(%rbp),%xmm1
movss  0xd08(%rip),%xmm0
mulss  %xmm1,%xmm0
movss  0xcfc(%rip),%xmm1
mulss  -0x24(%rbp),%xmm1
call   1030 <GCI_gammap@plt>
movaps %xmm0,%xmm1
movss  %xmm1,-0x2c(%rbp)
xorps  %xmm0,%xmm0
ucomiss %xmm1,%xmm0
jbe    133a <GCI_chisq+0x22a>
movl   $0xfffffffc,-0x4(%rbp)
jmp    14b7 <GCI_chisq+0x3a7>
jmp    12ab <GCI_chisq+0x19b>
cmpl   $0x28,-0x1c(%rbp)
jle    1355 <GCI_chisq+0x245>
movl   $0xfffffffe,-0x4(%rbp)
jmp    14b7 <GCI_chisq+0x3a7>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x28,-0x1c(%rbp)
jge    14b0 <GCI_chisq+0x3a0>
movss  -0x20(%rbp),%xmm0
addss  -0x24(%rbp),%xmm0
movss  0xc98(%rip),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x30(%rbp)
cvtsi2ssl -0x8(%rbp),%xmm1
movss  0xc7e(%rip),%xmm0
mulss  %xmm1,%xmm0
movss  0xc72(%rip),%xmm1
mulss  -0x30(%rbp),%xmm1
call   1030 <GCI_gammap@plt>
movss  %xmm0,-0x34(%rbp)
xorps  %xmm0,%xmm0
ucomiss -0x34(%rbp),%xmm0
jbe    13c2 <GCI_chisq+0x2b2>
movl   $0xfffffffc,-0x4(%rbp)
jmp    14b7 <GCI_chisq+0x3a7>
movss  -0x34(%rbp),%xmm0
ucomiss -0xc(%rbp),%xmm0
jne    13f0 <GCI_chisq+0x2e0>
jp     13f0 <GCI_chisq+0x2e0>
movss  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,(%rax)
movl   $0x0,-0x4(%rbp)
jmp    14b7 <GCI_chisq+0x3a7>
movss  -0x34(%rbp),%xmm0
mulss  -0x28(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    141f <GCI_chisq+0x30f>
movss  -0x30(%rbp),%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
jmp    1433 <GCI_chisq+0x323>
movss  -0x30(%rbp),%xmm0
movss  %xmm0,-0x24(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x24(%rbp),%xmm1
subss  -0x20(%rbp),%xmm1
movaps 0xbdc(%rip),%xmm0
pand   %xmm0,%xmm1
movss  0xbc4(%rip),%xmm0
ucomiss %xmm1,%xmm0
jbe    149d <GCI_chisq+0x38d>
movss  -0x24(%rbp),%xmm1
subss  -0x20(%rbp),%xmm1
divss  -0x30(%rbp),%xmm1
movaps 0xbb1(%rip),%xmm0
pand   %xmm0,%xmm1
movss  0xb99(%rip),%xmm0
ucomiss %xmm1,%xmm0
jbe    149d <GCI_chisq+0x38d>
movss  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,(%rax)
movl   $0x0,-0x4(%rbp)
jmp    14b7 <GCI_chisq+0x3a7>
jmp    14a2 <GCI_chisq+0x392>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    135c <GCI_chisq+0x24c>
movl   $0xfffffffb,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<GCI_chisq>:
push   %rbp
push   %r15
push   %r14
push   %rbx
sub    $0x38,%rsp
xorps  %xmm1,%xmm1
ucomiss %xmm0,%xmm1
mov    $0xffffffff,%ebp
jae    11c6 <GCI_chisq+0xb6>
ucomiss 0xece(%rip),%xmm0
jae    11c6 <GCI_chisq+0xb6>
mov    %rsi,%r15
movss  %xmm0,0x18(%rsp)
xorps  %xmm0,%xmm0
cvtsi2ss %edi,%xmm0
mulss  0xeb4(%rip),%xmm0
movss  0xeb0(%rip),%xmm1
movss  %xmm0,0x14(%rsp)
call   1030 <GCI_gammap@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm0,%xmm1
ja     11c1 <GCI_chisq+0xb1>
movss  0xe99(%rip),%xmm1
mov    $0x29,%ebx
nopl   0x0(%rax,%rax,1)
ucomiss 0x18(%rsp),%xmm0
jbe    11d3 <GCI_chisq+0xc3>
add    $0xffffffff,%ebx
je     11c6 <GCI_chisq+0xb6>
movss  0xe70(%rip),%xmm0
mulss  %xmm0,%xmm1
movss  %xmm1,0xc(%rsp)
movss  0xc(%rsp),%xmm1
mulss  %xmm0,%xmm1
movss  0x14(%rsp),%xmm0
call   1030 <GCI_gammap@plt>
movss  0xc(%rsp),%xmm1
xorps  %xmm2,%xmm2
ucomiss %xmm0,%xmm2
jbe    1180 <GCI_chisq+0x70>
mov    $0xfffffffd,%ebp
mov    %ebp,%eax
add    $0x38,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret
movss  %xmm1,0xc(%rsp)
movaps %xmm0,0x20(%rsp)
movss  0xe2a(%rip),%xmm1
movss  0x14(%rsp),%xmm0
call   1030 <GCI_gammap@plt>
mov    $0xfffffffc,%ebp
xorps  %xmm1,%xmm1
ucomiss %xmm0,%xmm1
jbe    1205 <GCI_chisq+0xf5>
mov    $0xfffffffc,%ebp
jmp    11c6 <GCI_chisq+0xb6>
xor    %ebx,%ebx
movss  0xe05(%rip),%xmm1
movss  %xmm1,0x10(%rsp)
cs nopw 0x0(%rax,%rax,1)
nop
movss  0x18(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jbe    1267 <GCI_chisq+0x157>
cmp    $0x28,%ebx
je     136e <GCI_chisq+0x25e>
add    $0x1,%ebx
movss  0x10(%rsp),%xmm1
addss  %xmm1,%xmm1
movss  %xmm1,0x10(%rsp)
mulss  0xdb5(%rip),%xmm1
movss  0x14(%rsp),%xmm0
call   1030 <GCI_gammap@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm0,%xmm1
jbe    1220 <GCI_chisq+0x110>
jmp    11c6 <GCI_chisq+0xb6>
mov    $0xfffffffe,%ebp
cmp    $0x28,%ebx
movss  0xc(%rsp),%xmm1
movss  0x10(%rsp),%xmm6
ja     11c6 <GCI_chisq+0xb6>
mov    $0x28,%r14d
mov    $0xfffffffb,%ebp
jmp    12b2 <GCI_chisq+0x1a2>
xorps  %xmm3,%xmm3
cmpltss %xmm2,%xmm3
andps  %xmm3,%xmm0
andnps %xmm5,%xmm3
orps   %xmm0,%xmm3
movaps %xmm3,0x20(%rsp)
movaps %xmm8,%xmm1
add    $0xffffffff,%r14d
je     11c6 <GCI_chisq+0xb6>
movss  %xmm1,0xc(%rsp)
movss  %xmm6,0x10(%rsp)
addss  %xmm6,%xmm1
movss  0xd3a(%rip),%xmm0
mulss  %xmm0,%xmm1
movss  %xmm1,0x1c(%rsp)
mulss  %xmm0,%xmm1
movss  0x14(%rsp),%xmm0
call   1030 <GCI_gammap@plt>
xorps  %xmm3,%xmm3
ucomiss %xmm0,%xmm3
ja     11fe <GCI_chisq+0xee>
ucomiss 0x18(%rsp),%xmm0
movaps 0x20(%rsp),%xmm5
movss  0x10(%rsp),%xmm6
movss  0x1c(%rsp),%xmm1
jne    1309 <GCI_chisq+0x1f9>
jnp    1362 <GCI_chisq+0x252>
movaps %xmm5,%xmm2
mulss  %xmm0,%xmm2
ucomiss %xmm3,%xmm2
movaps %xmm1,%xmm8
ja     1323 <GCI_chisq+0x213>
movss  0xc(%rsp),%xmm8
movaps %xmm1,%xmm6
movaps %xmm6,%xmm3
subss  %xmm8,%xmm3
movaps %xmm3,%xmm4
andps  0xceb(%rip),%xmm4
movss  0xcdb(%rip),%xmm7
ucomiss %xmm4,%xmm7
jbe    128e <GCI_chisq+0x17e>
divss  %xmm1,%xmm3
andps  0xccf(%rip),%xmm3
movss  0xcbf(%rip),%xmm4
ucomiss %xmm3,%xmm4
jbe    128e <GCI_chisq+0x17e>
movss  %xmm1,(%r15)
xor    %ebp,%ebp
jmp    11c6 <GCI_chisq+0xb6>
mov    $0xfffffffe,%ebp
jmp    11c6 <GCI_chisq+0xb6>

LLVM IR (-O0):
define i32 @GCI_chisq(i32 %0, float %1, float* %2) {
%4 = alloca i32
%5 = alloca i32
%6 = alloca float
%7 = alloca float*
%8 = alloca i32
%9 = alloca float
%10 = alloca float
%11 = alloca float
%12 = alloca float
%13 = alloca float
%14 = alloca float
store i32 %0, i32* %5
store float %1, float* %6
store float* %2, float** %7
store float 0x3FB99999A0000000, float* %9
store float 4.000000e+01, float* %10
%15 = load float, float* %6
%16 = fcmp ole float %15, 0.000000e+00
br i1 %16, label %20, label %17
17: ; preds = %3
%18 = load float, float* %6
%19 = fcmp oge float %18, 1.000000e+00
br i1 %19, label %20, label %21
20: ; preds = %17, %3
store i32 -1, i32* %4
br label %151
21: ; preds = %17
%22 = load i32, i32* %5
%23 = sitofp i32 %22 to float
%24 = fmul float 5.000000e-01, %23
%25 = load float, float* %9
%26 = fmul float 5.000000e-01, %25
%27 = call float @GCI_gammap(float %24, float %26)
store float %27, float* %11
%28 = fcmp olt float %27, 0.000000e+00
br i1 %28, label %29, label %30
29: ; preds = %21
store i32 -3, i32* %4
br label %151
30: ; preds = %21
store i32 0, i32* %8
br label %31
31: ; preds = %52, %30
%32 = load float, float* %11
%33 = load float, float* %6
%34 = fcmp ogt float %32, %33
br i1 %34, label %35, label %39
35: ; preds = %31
%36 = load i32, i32* %8
%37 = add nsw i32 %36, 1
store i32 %37, i32* %8
%38 = icmp sle i32 %37, 40
br label %39
39: ; preds = %35, %31
%40 = phi i1 [ false, %31 ], [ %38, %35 ]
br i1 %40, label %41, label %53
41: ; preds = %39
%42 = load float, float* %9
%43 = fdiv float %42, 2.000000e+00
store float %43, float* %9
%44 = load i32, i32* %5
%45 = sitofp i32 %44 to float
%46 = fmul float 5.000000e-01, %45
%47 = load float, float* %9
%48 = fmul float 5.000000e-01, %47
%49 = call float @GCI_gammap(float %46, float %48)
store float %49, float* %11
%50 = fcmp olt float %49, 0.000000e+00
br i1 %50, label %51, label %52
51: ; preds = %41
store i32 -3, i32* %4
br label %151
52: ; preds = %41
br label %31
53: ; preds = %39
%54 = load i32, i32* %8
%55 = icmp sgt i32 %54, 40
br i1 %55, label %56, label %57
56: ; preds = %53
store i32 -1, i32* %4
br label %151
57: ; preds = %53
%58 = load i32, i32* %5
%59 = sitofp i32 %58 to float
%60 = fmul float 5.000000e-01, %59
%61 = load float, float* %10
%62 = fmul float 5.000000e-01, %61
%63 = call float @GCI_gammap(float %60, float %62)
store float %63, float* %12
%64 = fcmp olt float %63, 0.000000e+00
br i1 %64, label %65, label %66
65: ; preds = %57
store i32 -4, i32* %4
br label %151
66: ; preds = %57
store i32 0, i32* %8
br label %67
67: ; preds = %88, %66
%68 = load float, float* %12
%69 = load float, float* %6
%70 = fcmp olt float %68, %69
br i1 %70, label %71, label %75
71: ; preds = %67
%72 = load i32, i32* %8
%73 = add nsw i32 %72, 1
store i32 %73, i32* %8
%74 = icmp sle i32 %73, 40
br label %75
75: ; preds = %71, %67
%76 = phi i1 [ false, %67 ], [ %74, %71 ]
br i1 %76, label %77, label %89
77: ; preds = %75
%78 = load float, float* %10
%79 = fmul float %78, 2.000000e+00
store float %79, float* %10
%80 = load i32, i32* %5
%81 = sitofp i32 %80 to float
%82 = fmul float 5.000000e-01, %81
%83 = load float, float* %10
%84 = fmul float 5.000000e-01, %83
%85 = call float @GCI_gammap(float %82, float %84)
store float %85, float* %12
%86 = fcmp olt float %85, 0.000000e+00
br i1 %86, label %87, label %88
87: ; preds = %77
store i32 -4, i32* %4
br label %151
88: ; preds = %77
br label %67
89: ; preds = %75
%90 = load i32, i32* %8
%91 = icmp sgt i32 %90, 40
br i1 %91, label %92, label %93
92: ; preds = %89
store i32 -2, i32* %4
br label %151
93: ; preds = %89
store i32 0, i32* %8
br label %94
94: ; preds = %147, %93
%95 = load i32, i32* %8
%96 = icmp slt i32 %95, 40
br i1 %96, label %97, label %150
97: ; preds = %94
%98 = load float, float* %9
%99 = load float, float* %10
%100 = fadd float %98, %99
%101 = fdiv float %100, 2.000000e+00
store float %101, float* %13
%102 = load i32, i32* %5
%103 = sitofp i32 %102 to float
%104 = fmul float 5.000000e-01, %103
%105 = load float, float* %13
%106 = fmul float 5.000000e-01, %105
%107 = call float @GCI_gammap(float %104, float %106)
store float %107, float* %14
%108 = load float, float* %14
%109 = fcmp olt float %108, 0.000000e+00
br i1 %109, label %110, label %111
110: ; preds = %97
store i32 -4, i32* %4
br label %151
111: ; preds = %97
%112 = load float, float* %14
%113 = load float, float* %6
%114 = fcmp oeq float %112, %113
br i1 %114, label %115, label %118
115: ; preds = %111
%116 = load float, float* %13
%117 = load float*, float** %7
store float %116, float* %117
store i32 0, i32* %4
br label %151
118: ; preds = %111
%119 = load float, float* %14
%120 = load float, float* %11
%121 = fmul float %119, %120
%122 = fcmp ogt float %121, 0.000000e+00
br i1 %122, label %123, label %126
123: ; preds = %118
%124 = load float, float* %13
store float %124, float* %9
%125 = load float, float* %14
store float %125, float* %11
br label %129
126: ; preds = %118
%127 = load float, float* %13
store float %127, float* %10
%128 = load float, float* %14
store float %128, float* %12
br label %129
129: ; preds = %126, %123
%130 = load float, float* %10
%131 = load float, float* %9
%132 = fsub float %130, %131
%133 = call float @llvm.fabs.f32(float %132)
%134 = fcmp olt float %133, 0x3F2A36E2E0000000
br i1 %134, label %135, label %146
135: ; preds = %129
%136 = load float, float* %10
%137 = load float, float* %9
%138 = fsub float %136, %137
%139 = load float, float* %13
%140 = fdiv float %138, %139
%141 = call float @llvm.fabs.f32(float %140)
%142 = fcmp olt float %141, 0x3F2A36E2E0000000
br i1 %142, label %143, label %146
143: ; preds = %135
%144 = load float, float* %13
%145 = load float*, float** %7
store float %144, float* %145
store i32 0, i32* %4
br label %151
146: ; preds = %135, %129
br label %147
147: ; preds = %146
%148 = load i32, i32* %8
%149 = add nsw i32 %148, 1
store i32 %149, i32* %8
br label %94
150: ; preds = %94
store i32 -5, i32* %4
br label %151
151: ; preds = %150, %143, %115, %110, %92, %87, %65, %56, %51, %29, %20
%152 = load i32, i32* %4
ret i32 %152
}

LLVM IR (-O2):
define i32 @GCI_chisq(i32 %0, float %1, float* nocapture writeonly %2) {
%4 = fcmp ole float %1, 0.000000e+00
%5 = fcmp oge float %1, 1.000000e+00
%6 = or i1 %4, %5
br i1 %6, label %72, label %7
7: ; preds = %3
%8 = sitofp i32 %0 to float
%9 = fmul float %8, 5.000000e-01
%10 = tail call float @GCI_gammap(float %9, float 0x3FA99999A0000000)
%11 = fcmp olt float %10, 0.000000e+00
br i1 %11, label %72, label %12
12: ; preds = %7, %19
%13 = phi float [ %21, %19 ], [ 0x3FB99999A0000000, %7 ]
%14 = phi float [ %23, %19 ], [ %10, %7 ]
%15 = phi i32 [ %20, %19 ], [ 0, %7 ]
%16 = fcmp ogt float %14, %1
br i1 %16, label %17, label %25
17: ; preds = %12
%18 = icmp eq i32 %15, 40
br i1 %18, label %72, label %19
19: ; preds = %17
%20 = add nuw nsw i32 %15, 1
%21 = fmul float %13, 5.000000e-01
%22 = fmul float %21, 5.000000e-01
%23 = tail call float @GCI_gammap(float %9, float %22)
%24 = fcmp olt float %23, 0.000000e+00
br i1 %24, label %72, label %12
25: ; preds = %12
%26 = tail call float @GCI_gammap(float %9, float 2.000000e+01)
%27 = fcmp olt float %26, 0.000000e+00
br i1 %27, label %72, label %28
28: ; preds = %25, %35
%29 = phi float [ %37, %35 ], [ 4.000000e+01, %25 ]
%30 = phi float [ %39, %35 ], [ %26, %25 ]
%31 = phi i32 [ %36, %35 ], [ 0, %25 ]
%32 = fcmp olt float %30, %1
br i1 %32, label %33, label %41
33: ; preds = %28
%34 = icmp eq i32 %31, 40
br i1 %34, label %72, label %35
35: ; preds = %33
%36 = add nuw nsw i32 %31, 1
%37 = fmul float %29, 2.000000e+00
%38 = fmul float %37, 5.000000e-01
%39 = tail call float @GCI_gammap(float %9, float %38)
%40 = fcmp olt float %39, 0.000000e+00
br i1 %40, label %72, label %28
41: ; preds = %28
%42 = icmp ugt i32 %31, 40
br i1 %42, label %72, label %43
43: ; preds = %41, %68
%44 = phi i32 [ %69, %68 ], [ 0, %41 ]
%45 = phi float [ %60, %68 ], [ %14, %41 ]
%46 = phi float [ %59, %68 ], [ %29, %41 ]
%47 = phi float [ %58, %68 ], [ %13, %41 ]
%48 = fadd float %47, %46
%49 = fmul float %48, 5.000000e-01
%50 = fmul float %49, 5.000000e-01
%51 = tail call float @GCI_gammap(float %9, float %50)
%52 = fcmp olt float %51, 0.000000e+00
br i1 %52, label %72, label %53
53: ; preds = %43
%54 = fcmp oeq float %51, %1
br i1 %54, label %71, label %55
55: ; preds = %53
%56 = fmul float %45, %51
%57 = fcmp ogt float %56, 0.000000e+00
%58 = select i1 %57, float %49, float %47
%59 = select i1 %57, float %46, float %49
%60 = select i1 %57, float %51, float %45
%61 = fsub float %59, %58
%62 = tail call float @llvm.fabs.f32(float %61)
%63 = fcmp olt float %62, 0x3F2A36E2E0000000
br i1 %63, label %64, label %68
64: ; preds = %55
%65 = fdiv float %61, %49
%66 = tail call float @llvm.fabs.f32(float %65)
%67 = fcmp olt float %66, 0x3F2A36E2E0000000
br i1 %67, label %71, label %68
68: ; preds = %55, %64
%69 = add nuw nsw i32 %44, 1
%70 = icmp eq i32 %69, 40
br i1 %70, label %72, label %43
71: ; preds = %64, %53
store float %49, float* %2
br label %72
72: ; preds = %17, %19, %33, %35, %68, %43, %71, %41, %25, %7, %3
%73 = phi i32 [ -1, %3 ], [ -3, %7 ], [ -4, %25 ], [ -2, %41 ], [ 0, %71 ], [ -5, %68 ], [ -4, %43 ], [ -2, %33 ], [ -4, %35 ], [ -1, %17 ], [ -3, %19 ]
ret i32 %73
}