#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 */
scalar_t__ floor(double);
void hsv2rgb(double h, double s, double v, unsigned int *r, unsigned int *b,
             unsigned int *g) {
  if (s == 0.0) {
    *r = (unsigned int)floor(v * 256);
    *g = (unsigned int)floor(v * 256);
    *b = (unsigned int)floor(v * 256);
    return;
  }
  int i = (int)floor(h * 6);
  double f = h * 6 - i;
  double p = v * (1 - s);
  double q = v * (1 - s * f);
  double t = v * (1 - s * (1 - f));
  if (i == 0) {
    *r = (unsigned int)floor(v * 256);
    *g = (unsigned int)floor(t * 256);
    *b = (unsigned int)floor(p * 256);
  } else if (i == 1) {
    *r = (unsigned int)floor(q * 256);
    *g = (unsigned int)floor(v * 256);
    *b = (unsigned int)floor(p * 256);
  } else if (i == 2) {
    *r = (unsigned int)floor(p * 256);
    *g = (unsigned int)floor(v * 256);
    *b = (unsigned int)floor(t * 256);
  } else if (i == 3) {
    *r = (unsigned int)floor(p * 256);
    *g = (unsigned int)floor(q * 256);
    *b = (unsigned int)floor(v * 256);
  } else if (i == 4) {
    *r = (unsigned int)floor(t * 256);
    *g = (unsigned int)floor(p * 256);
    *b = (unsigned int)floor(v * 256);
  } else {
    *r = (unsigned int)floor(v * 256);
    *g = (unsigned int)floor(p * 256);
    *b = (unsigned int)floor(q * 256);
  }
}


x86 assembly (clang, -O0):
<hsv2rgb>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
mov    %rdi,-0x20(%rbp)
mov    %rsi,-0x28(%rbp)
mov    %rdx,-0x30(%rbp)
movsd  -0x10(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    119e <hsv2rgb+0x8e>
jp     119e <hsv2rgb+0x8e>
movsd  0xebd(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xea3(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xe89(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
jmp    14bd <hsv2rgb+0x3ad>
movsd  0xe62(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,-0x34(%rbp)
movsd  -0x8(%rbp),%xmm0
cvtsi2sdl -0x34(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xe2c(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  0xe0a(%rip),%xmm1
subsd  -0x10(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
movsd  0xdca(%rip),%xmm2
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
movsd  0xdab(%rip),%xmm2
subsd  -0x40(%rbp),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
movsd  0xd83(%rip),%xmm2
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
cmpl   $0x0,-0x34(%rbp)
jne    12e7 <hsv2rgb+0x1d7>
movsd  0xd74(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xd5a(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xd40(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
jmp    14bd <hsv2rgb+0x3ad>
cmpl   $0x1,-0x34(%rbp)
jne    1344 <hsv2rgb+0x234>
movsd  0xd17(%rip),%xmm0
mulsd  -0x50(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xcfd(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xce3(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
jmp    14b8 <hsv2rgb+0x3a8>
cmpl   $0x2,-0x34(%rbp)
jne    13a1 <hsv2rgb+0x291>
movsd  0xcba(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xca0(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xc86(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
jmp    14b3 <hsv2rgb+0x3a3>
cmpl   $0x3,-0x34(%rbp)
jne    13fe <hsv2rgb+0x2ee>
movsd  0xc5d(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xc43(%rip),%xmm0
mulsd  -0x50(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xc29(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
jmp    14ae <hsv2rgb+0x39e>
cmpl   $0x4,-0x34(%rbp)
jne    145b <hsv2rgb+0x34b>
movsd  0xc00(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xbe6(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xbcc(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
jmp    14a9 <hsv2rgb+0x399>
movsd  0xbad(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xb93(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %ecx,(%rax)
movsd  0xb79(%rip),%xmm0
mulsd  -0x50(%rbp),%xmm0
call   1030 <floor@plt>
mov    %eax,%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
jmp    14ae <hsv2rgb+0x39e>
jmp    14b3 <hsv2rgb+0x3a3>
jmp    14b8 <hsv2rgb+0x3a8>
jmp    14bd <hsv2rgb+0x3ad>
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<hsv2rgb>:
push   %r15
push   %r14
push   %rbx
sub    $0x20,%rsp
mov    %rdx,%r15
mov    %rsi,%r14
mov    %rdi,%rbx
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm1
jne    1160 <hsv2rgb+0x50>
jp     1160 <hsv2rgb+0x50>
mulsd  0xeda(%rip),%xmm2
movsd  %xmm2,0x18(%rsp)
movapd %xmm2,%xmm0
call   1030 <floor@plt>
mov    %eax,(%rbx)
movsd  0x18(%rsp),%xmm0
call   1030 <floor@plt>
movsd  0x18(%rsp),%xmm0
mov    %eax,(%r15)
jmp    130c <hsv2rgb+0x1fc>
mulsd  0xe98(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  %xmm2,0x18(%rsp)
movsd  %xmm1,0x10(%rsp)
call   1030 <floor@plt>
movsd  0x8(%rsp),%xmm6
movsd  0x10(%rsp),%xmm5
movsd  0x18(%rsp),%xmm1
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
subsd  %xmm0,%xmm6
movsd  0xe64(%rip),%xmm3
movapd %xmm3,%xmm2
subsd  %xmm5,%xmm2
mulsd  %xmm1,%xmm2
movapd %xmm5,%xmm0
mulsd  %xmm6,%xmm0
movapd %xmm3,%xmm4
subsd  %xmm0,%xmm4
mulsd  %xmm1,%xmm4
cmp    $0x4,%eax
ja     1216 <hsv2rgb+0x106>
movapd %xmm3,%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm3
mulsd  %xmm1,%xmm3
mov    %eax,%eax
lea    0xe32(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mulsd  0xe19(%rip),%xmm1
movapd %xmm1,%xmm0
movsd  %xmm2,0x10(%rsp)
movsd  %xmm3,0x8(%rsp)
call   1030 <floor@plt>
mov    %eax,(%rbx)
movsd  0x8(%rsp),%xmm0
jmp    125c <hsv2rgb+0x14c>
mulsd  0xdf2(%rip),%xmm1
movapd %xmm1,%xmm0
movsd  %xmm2,0x10(%rsp)
movsd  %xmm4,0x8(%rsp)
call   1030 <floor@plt>
mov    %eax,(%rbx)
movsd  0x10(%rsp),%xmm0
jmp    1296 <hsv2rgb+0x186>
mulsd  0xdcb(%rip),%xmm4
movapd %xmm4,%xmm0
movsd  %xmm2,0x10(%rsp)
call   1030 <floor@plt>
mov    %eax,(%rbx)
movsd  0x18(%rsp),%xmm0
mulsd  0xdac(%rip),%xmm0
call   1030 <floor@plt>
mov    %eax,(%r15)
movsd  0x10(%rsp),%xmm0
jmp    1304 <hsv2rgb+0x1f4>
mulsd  0xd91(%rip),%xmm2
movapd %xmm2,%xmm0
movsd  %xmm3,0x8(%rsp)
call   1030 <floor@plt>
mov    %eax,(%rbx)
movsd  0x18(%rsp),%xmm0
mulsd  0xd72(%rip),%xmm0
call   1030 <floor@plt>
mov    %eax,(%r15)
movsd  0x8(%rsp),%xmm0
jmp    1304 <hsv2rgb+0x1f4>
mulsd  0xd5a(%rip),%xmm2
movapd %xmm2,%xmm0
movsd  %xmm4,0x8(%rsp)
call   1030 <floor@plt>
mov    %eax,(%rbx)
movsd  0x8(%rsp),%xmm0
jmp    12ee <hsv2rgb+0x1de>
mulsd  0xd39(%rip),%xmm3
movapd %xmm3,%xmm0
movsd  %xmm2,0x10(%rsp)
call   1030 <floor@plt>
mov    %eax,(%rbx)
movsd  0x10(%rsp),%xmm0
mulsd  0xd1a(%rip),%xmm0
call   1030 <floor@plt>
movsd  0x18(%rsp),%xmm0
mov    %eax,(%r15)
mulsd  0xd04(%rip),%xmm0
call   1030 <floor@plt>
mov    %eax,(%r14)
add    $0x20,%rsp
pop    %rbx
pop    %r14
pop    %r15
ret

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

LLVM IR (-O2):
define void @hsv2rgb(double %0, double %1, double %2, i32* nocapture writeonly %3, i32* nocapture writeonly %4, i32* nocapture writeonly %5) {
%7 = fcmp oeq double %1, 0.000000e+00
br i1 %7, label %8, label %14
8: ; preds = %6
%9 = fmul double %2, 2.560000e+02
%10 = tail call i64 @floor(double %9)
%11 = trunc i64 %10 to i32
store i32 %11, i32* %3
%12 = tail call i64 @floor(double %9)
%13 = trunc i64 %12 to i32
store i32 %13, i32* %5
br label %77
14: ; preds = %6
%15 = fmul double %0, 6.000000e+00
%16 = tail call i64 @floor(double %15)
%17 = trunc i64 %16 to i32
%18 = sitofp i32 %17 to double
%19 = fneg double %18
%20 = tail call double @llvm.fmuladd.f64(double %0, double 6.000000e+00, double %19)
%21 = fsub double 1.000000e+00, %1
%22 = fmul double %21, %2
%23 = fneg double %1
%24 = tail call double @llvm.fmuladd.f64(double %23, double %20, double 1.000000e+00)
%25 = fmul double %24, %2
%26 = fsub double 1.000000e+00, %20
%27 = tail call double @llvm.fmuladd.f64(double %23, double %26, double 1.000000e+00)
%28 = fmul double %27, %2
switch i32 %17, label %69 [
i32 0, label %29
i32 1, label %37
i32 2, label %45
i32 3, label %53
i32 4, label %61
]
29: ; preds = %14
%30 = fmul double %2, 2.560000e+02
%31 = tail call i64 @floor(double %30)
%32 = trunc i64 %31 to i32
store i32 %32, i32* %3
%33 = fmul double %28, 2.560000e+02
%34 = tail call i64 @floor(double %33)
%35 = trunc i64 %34 to i32
store i32 %35, i32* %5
%36 = fmul double %22, 2.560000e+02
br label %77
37: ; preds = %14
%38 = fmul double %25, 2.560000e+02
%39 = tail call i64 @floor(double %38)
%40 = trunc i64 %39 to i32
store i32 %40, i32* %3
%41 = fmul double %2, 2.560000e+02
%42 = tail call i64 @floor(double %41)
%43 = trunc i64 %42 to i32
store i32 %43, i32* %5
%44 = fmul double %22, 2.560000e+02
br label %77
45: ; preds = %14
%46 = fmul double %22, 2.560000e+02
%47 = tail call i64 @floor(double %46)
%48 = trunc i64 %47 to i32
store i32 %48, i32* %3
%49 = fmul double %2, 2.560000e+02
%50 = tail call i64 @floor(double %49)
%51 = trunc i64 %50 to i32
store i32 %51, i32* %5
%52 = fmul double %28, 2.560000e+02
br label %77
53: ; preds = %14
%54 = fmul double %22, 2.560000e+02
%55 = tail call i64 @floor(double %54)
%56 = trunc i64 %55 to i32
store i32 %56, i32* %3
%57 = fmul double %25, 2.560000e+02
%58 = tail call i64 @floor(double %57)
%59 = trunc i64 %58 to i32
store i32 %59, i32* %5
%60 = fmul double %2, 2.560000e+02
br label %77
61: ; preds = %14
%62 = fmul double %28, 2.560000e+02
%63 = tail call i64 @floor(double %62)
%64 = trunc i64 %63 to i32
store i32 %64, i32* %3
%65 = fmul double %22, 2.560000e+02
%66 = tail call i64 @floor(double %65)
%67 = trunc i64 %66 to i32
store i32 %67, i32* %5
%68 = fmul double %2, 2.560000e+02
br label %77
69: ; preds = %14
%70 = fmul double %2, 2.560000e+02
%71 = tail call i64 @floor(double %70)
%72 = trunc i64 %71 to i32
store i32 %72, i32* %3
%73 = fmul double %22, 2.560000e+02
%74 = tail call i64 @floor(double %73)
%75 = trunc i64 %74 to i32
store i32 %75, i32* %5
%76 = fmul double %25, 2.560000e+02
br label %77
77: ; preds = %29, %45, %61, %69, %53, %37, %8
%78 = phi double [ %36, %29 ], [ %52, %45 ], [ %68, %61 ], [ %76, %69 ], [ %60, %53 ], [ %44, %37 ], [ %9, %8 ]
%79 = tail call i64 @floor(double %78)
%80 = trunc i64 %79 to i32
store i32 %80, i32* %4
ret void
}