#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 */
typedef int int32_t;

/* Variables and functions */
void double_to_fixed(double f_input, int32_t *pValue, int32_t *pBase) {
  if (f_input < 1.0) {
    (*pBase) = 15;
    (*pValue) = (int32_t)(32768.0 * f_input);
  } else if (f_input < 2.0) {
    (*pBase) = 14;
    (*pValue) = (int32_t)(16384.0 * f_input);
  } else if (f_input < 4.0) {
    (*pBase) = 13;
    (*pValue) = (int32_t)(8192.0 * f_input);
  } else if (f_input < 8.0) {
    (*pBase) = 12;
    (*pValue) = (int32_t)(4096.0 * f_input);
  } else if (f_input < 16.0) {
    (*pBase) = 11;
    (*pValue) = (int32_t)(2048.0 * f_input);
  } else if (f_input < 32.0) {
    (*pBase) = 10;
    (*pValue) = (int32_t)(1024.0 * f_input);
  } else if (f_input < 64.0) {
    (*pBase) = 9;
    (*pValue) = (int32_t)(512.0 * f_input);
  } else if (f_input < 128.0) {
    (*pBase) = 8;
    (*pValue) = (int32_t)(256.0 * f_input);
  } else if (f_input < 256.0) {
    (*pBase) = 7;
    (*pValue) = (int32_t)(128.0 * f_input);
  } else if (f_input < 512.0) {
    (*pBase) = 6;
    (*pValue) = (int32_t)(64.0 * f_input);
  } else if (f_input < 1024.0) {
    (*pBase) = 5;
    (*pValue) = (int32_t)(32.0 * f_input);
  } else if (f_input < 2048.0) {
    (*pBase) = 4;
    (*pValue) = (int32_t)(16.0 * f_input);
  } else if (f_input < 4096.0) {
    (*pBase) = 3;
    (*pValue) = (int32_t)(8.0 * f_input);
  } else if (f_input < 81928.0) {
    (*pBase) = 2;
    (*pValue) = (int32_t)(4.0 * f_input);
  } else if (f_input < 16384.0) {
    (*pBase) = 1;
    (*pValue) = (int32_t)(2.0 * f_input);
  } else if (f_input < 32768.0) {
    (*pBase) = 0;
    (*pValue) = (int32_t)(1.0 * f_input);
  }
}


x86 assembly (clang, -O0):
<double_to_fixed>:
push   %rbp
mov    %rsp,%rbp
movsd  %xmm0,-0x8(%rbp)
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
movsd  0xee7(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    114a <double_to_fixed+0x4a>
mov    -0x18(%rbp),%rax
movl   $0xf,(%rax)
movsd  0xf42(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14e7 <double_to_fixed+0x3e7>
movsd  0xeb6(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    1183 <double_to_fixed+0x83>
mov    -0x18(%rbp),%rax
movl   $0xe,(%rax)
movsd  0xf01(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14e2 <double_to_fixed+0x3e2>
movsd  0xe85(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    11bc <double_to_fixed+0xbc>
mov    -0x18(%rbp),%rax
movl   $0xd,(%rax)
movsd  0xed8(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14dd <double_to_fixed+0x3dd>
movsd  0xe54(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    11f5 <double_to_fixed+0xf5>
mov    -0x18(%rbp),%rax
movl   $0xc,(%rax)
movsd  0xe7f(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14d8 <double_to_fixed+0x3d8>
movsd  0xe23(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    122e <double_to_fixed+0x12e>
mov    -0x18(%rbp),%rax
movl   $0xb,(%rax)
movsd  0xe3e(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14d3 <double_to_fixed+0x3d3>
movsd  0xdf2(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    1267 <double_to_fixed+0x167>
mov    -0x18(%rbp),%rax
movl   $0xa,(%rax)
movsd  0xdfd(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14ce <double_to_fixed+0x3ce>
movsd  0xdc1(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    12a0 <double_to_fixed+0x1a0>
mov    -0x18(%rbp),%rax
movl   $0x9,(%rax)
movsd  0xdbc(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14c9 <double_to_fixed+0x3c9>
movsd  0xd90(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    12d9 <double_to_fixed+0x1d9>
mov    -0x18(%rbp),%rax
movl   $0x8,(%rax)
movsd  0xd7b(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14c4 <double_to_fixed+0x3c4>
movsd  0xd5f(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    1312 <double_to_fixed+0x212>
mov    -0x18(%rbp),%rax
movl   $0x7,(%rax)
movsd  0xd3a(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14bf <double_to_fixed+0x3bf>
movsd  0xd2e(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    134b <double_to_fixed+0x24b>
mov    -0x18(%rbp),%rax
movl   $0x6,(%rax)
movsd  0xcf9(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14ba <double_to_fixed+0x3ba>
movsd  0xcfd(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    1384 <double_to_fixed+0x284>
mov    -0x18(%rbp),%rax
movl   $0x5,(%rax)
movsd  0xcb8(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14b5 <double_to_fixed+0x3b5>
movsd  0xccc(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    13bd <double_to_fixed+0x2bd>
mov    -0x18(%rbp),%rax
movl   $0x4,(%rax)
movsd  0xc77(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14b0 <double_to_fixed+0x3b0>
movsd  0xc9b(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    13f6 <double_to_fixed+0x2f6>
mov    -0x18(%rbp),%rax
movl   $0x3,(%rax)
movsd  0xc36(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14ab <double_to_fixed+0x3ab>
movsd  0xc6a(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    142f <double_to_fixed+0x32f>
mov    -0x18(%rbp),%rax
movl   $0x2,(%rax)
movsd  0xbf5(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14a6 <double_to_fixed+0x3a6>
movsd  0xc39(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    1468 <double_to_fixed+0x368>
mov    -0x18(%rbp),%rax
movl   $0x1,(%rax)
movsd  0xbb4(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14a1 <double_to_fixed+0x3a1>
movsd  0xc08(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    149c <double_to_fixed+0x39c>
mov    -0x18(%rbp),%rax
movl   $0x0,(%rax)
movsd  0xb73(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
cvttsd2si %xmm0,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    14a1 <double_to_fixed+0x3a1>
jmp    14a6 <double_to_fixed+0x3a6>
jmp    14ab <double_to_fixed+0x3ab>
jmp    14b0 <double_to_fixed+0x3b0>
jmp    14b5 <double_to_fixed+0x3b5>
jmp    14ba <double_to_fixed+0x3ba>
jmp    14bf <double_to_fixed+0x3bf>
jmp    14c4 <double_to_fixed+0x3c4>
jmp    14c9 <double_to_fixed+0x3c9>
jmp    14ce <double_to_fixed+0x3ce>
jmp    14d3 <double_to_fixed+0x3d3>
jmp    14d8 <double_to_fixed+0x3d8>
jmp    14dd <double_to_fixed+0x3dd>
jmp    14e2 <double_to_fixed+0x3e2>
jmp    14e7 <double_to_fixed+0x3e7>
pop    %rbp
ret

x86 assembly (clang, -O2):
<double_to_fixed>:
movsd  0xef8(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    1121 <double_to_fixed+0x21>
movl   $0xf,(%rsi)
mulsd  0xf5c(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xedf(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    1142 <double_to_fixed+0x42>
movl   $0xe,(%rsi)
mulsd  0xf33(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xec6(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    1163 <double_to_fixed+0x63>
movl   $0xd,(%rsi)
mulsd  0xf22(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xead(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    1184 <double_to_fixed+0x84>
movl   $0xc,(%rsi)
mulsd  0xee1(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xe94(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    11a5 <double_to_fixed+0xa5>
movl   $0xb,(%rsi)
mulsd  0xeb8(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xe7b(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    11c6 <double_to_fixed+0xc6>
movl   $0xa,(%rsi)
mulsd  0xe8f(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xe62(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    11e7 <double_to_fixed+0xe7>
movl   $0x9,(%rsi)
mulsd  0xe66(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xe49(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    1208 <double_to_fixed+0x108>
movl   $0x8,(%rsi)
mulsd  0xe3d(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xe30(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    1229 <double_to_fixed+0x129>
movl   $0x7,(%rsi)
mulsd  0xe14(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xe17(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    124a <double_to_fixed+0x14a>
movl   $0x6,(%rsi)
mulsd  0xdeb(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xdfe(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    126b <double_to_fixed+0x16b>
movl   $0x5,(%rsi)
mulsd  0xdc2(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xde5(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    1289 <double_to_fixed+0x189>
movl   $0x4,(%rsi)
mulsd  0xd99(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xdcf(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    12a7 <double_to_fixed+0x1a7>
movl   $0x3,(%rsi)
mulsd  0xd73(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xdb9(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    12c5 <double_to_fixed+0x1c5>
movl   $0x2,(%rsi)
mulsd  0xd4d(%rip),%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xda3(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    12df <double_to_fixed+0x1df>
movl   $0x1,(%rsi)
addsd  %xmm0,%xmm0
jmp    12f3 <double_to_fixed+0x1f3>
movsd  0xd91(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    12f9 <double_to_fixed+0x1f9>
movl   $0x0,(%rsi)
cvttsd2si %xmm0,%eax
mov    %eax,(%rdi)
ret

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

LLVM IR (-O2):
define void @double_to_fixed(double %0, i32* nocapture writeonly %1, i32* nocapture writeonly %2) {
%4 = fcmp olt double %0, 1.000000e+00
br i1 %4, label %5, label %7
5: ; preds = %3
store i32 15, i32* %2
%6 = fmul double %0, 3.276800e+04
br label %66
7: ; preds = %3
%8 = fcmp olt double %0, 2.000000e+00
br i1 %8, label %9, label %11
9: ; preds = %7
store i32 14, i32* %2
%10 = fmul double %0, 1.638400e+04
br label %66
11: ; preds = %7
%12 = fcmp olt double %0, 4.000000e+00
br i1 %12, label %13, label %15
13: ; preds = %11
store i32 13, i32* %2
%14 = fmul double %0, 8.192000e+03
br label %66
15: ; preds = %11
%16 = fcmp olt double %0, 8.000000e+00
br i1 %16, label %17, label %19
17: ; preds = %15
store i32 12, i32* %2
%18 = fmul double %0, 4.096000e+03
br label %66
19: ; preds = %15
%20 = fcmp olt double %0, 1.600000e+01
br i1 %20, label %21, label %23
21: ; preds = %19
store i32 11, i32* %2
%22 = fmul double %0, 2.048000e+03
br label %66
23: ; preds = %19
%24 = fcmp olt double %0, 3.200000e+01
br i1 %24, label %25, label %27
25: ; preds = %23
store i32 10, i32* %2
%26 = fmul double %0, 1.024000e+03
br label %66
27: ; preds = %23
%28 = fcmp olt double %0, 6.400000e+01
br i1 %28, label %29, label %31
29: ; preds = %27
store i32 9, i32* %2
%30 = fmul double %0, 5.120000e+02
br label %66
31: ; preds = %27
%32 = fcmp olt double %0, 1.280000e+02
br i1 %32, label %33, label %35
33: ; preds = %31
store i32 8, i32* %2
%34 = fmul double %0, 2.560000e+02
br label %66
35: ; preds = %31
%36 = fcmp olt double %0, 2.560000e+02
br i1 %36, label %37, label %39
37: ; preds = %35
store i32 7, i32* %2
%38 = fmul double %0, 1.280000e+02
br label %66
39: ; preds = %35
%40 = fcmp olt double %0, 5.120000e+02
br i1 %40, label %41, label %43
41: ; preds = %39
store i32 6, i32* %2
%42 = fmul double %0, 6.400000e+01
br label %66
43: ; preds = %39
%44 = fcmp olt double %0, 1.024000e+03
br i1 %44, label %45, label %47
45: ; preds = %43
store i32 5, i32* %2
%46 = fmul double %0, 3.200000e+01
br label %66
47: ; preds = %43
%48 = fcmp olt double %0, 2.048000e+03
br i1 %48, label %49, label %51
49: ; preds = %47
store i32 4, i32* %2
%50 = fmul double %0, 1.600000e+01
br label %66
51: ; preds = %47
%52 = fcmp olt double %0, 4.096000e+03
br i1 %52, label %53, label %55
53: ; preds = %51
store i32 3, i32* %2
%54 = fmul double %0, 8.000000e+00
br label %66
55: ; preds = %51
%56 = fcmp olt double %0, 8.192800e+04
br i1 %56, label %57, label %59
57: ; preds = %55
store i32 2, i32* %2
%58 = fmul double %0, 4.000000e+00
br label %66
59: ; preds = %55
%60 = fcmp olt double %0, 1.638400e+04
br i1 %60, label %61, label %63
61: ; preds = %59
store i32 1, i32* %2
%62 = fmul double %0, 2.000000e+00
br label %66
63: ; preds = %59
%64 = fcmp olt double %0, 3.276800e+04
br i1 %64, label %65, label %69
65: ; preds = %63
store i32 0, i32* %2
br label %66
66: ; preds = %5, %13, %21, %29, %37, %45, %53, %61, %65, %57, %49, %41, %33, %25, %17, %9
%67 = phi double [ %10, %9 ], [ %18, %17 ], [ %26, %25 ], [ %34, %33 ], [ %42, %41 ], [ %50, %49 ], [ %58, %57 ], [ %0, %65 ], [ %62, %61 ], [ %54, %53 ], [ %46, %45 ], [ %38, %37 ], [ %30, %29 ], [ %22, %21 ], [ %14, %13 ], [ %6, %5 ]
%68 = fptosi double %67 to i32
store i32 %68, i32* %1
br label %69
69: ; preds = %66, %63
ret void
}