#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__ malloc(int);
int *injectionCounter2Steps(float numNodeOnlyPoints, float maxTimeToComplete,
                            float timeStep) {
  int first = 0;
  int second = 0;
  int third = 0;
  float oldPointsTotal = 0;
  int *ret = (int *)malloc(3 * sizeof(int));
  float totalPoints = maxTimeToComplete / timeStep;
  if (totalPoints < 100) {
    float pointsFirst;
    float pointsTotal;
    for (int i = 4; i <= 6; i++) {
      for (int j = 1; j <= 8; j++) {
        pointsFirst = i * (numNodeOnlyPoints - 1) + numNodeOnlyPoints;
        pointsTotal = (j * (pointsFirst - 1) + pointsFirst);
        if (pointsTotal <= totalPoints && pointsTotal > oldPointsTotal) {
          first = i;
          second = j;
          oldPointsTotal = pointsTotal;
        }
      }
    }
  } else {
    float pointsFirst;
    float pointsSecond;
    float pointsTotal;
    for (int i = 1; i <= 5; i++) {
      for (int j = 1; j <= 8; j++) {
        for (int k = 1; k < 8; k++) {
          pointsFirst = i * (numNodeOnlyPoints - 1) + numNodeOnlyPoints;
          pointsSecond = (j * (pointsFirst - 1) + pointsFirst);
          pointsTotal = (k * (pointsSecond - 1) + pointsSecond);
          if (pointsTotal <= totalPoints) {
            first = i;
            second = j;
            third = k;
          }
        }
      }
    }
  }
  ret[0] = first;
  ret[1] = second;
  ret[2] = third;
  return ret;
}


x86 assembly (clang, -O0):
<injectionCounter2Steps>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
movss  %xmm0,-0x4(%rbp)
movss  %xmm1,-0x8(%rbp)
movss  %xmm2,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    $0xc,%edi
call   1030 <malloc@plt>
mov    %rax,-0x28(%rbp)
movss  -0x8(%rbp),%xmm0
divss  -0xc(%rbp),%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  0xe97(%rip),%xmm0
ucomiss -0x2c(%rbp),%xmm0
jbe    1248 <injectionCounter2Steps+0x138>
movl   $0x4,-0x38(%rbp)
cmpl   $0x6,-0x38(%rbp)
jg     1243 <injectionCounter2Steps+0x133>
movl   $0x1,-0x3c(%rbp)
cmpl   $0x8,-0x3c(%rbp)
jg     1230 <injectionCounter2Steps+0x120>
cvtsi2ssl -0x38(%rbp),%xmm0
movss  -0x4(%rbp),%xmm2
movss  0xe5d(%rip),%xmm1
subss  %xmm1,%xmm2
movss  -0x4(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x30(%rbp)
cvtsi2ssl -0x3c(%rbp),%xmm0
movss  -0x30(%rbp),%xmm2
movss  0xe35(%rip),%xmm1
subss  %xmm1,%xmm2
movss  -0x30(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x34(%rbp)
movss  -0x34(%rbp),%xmm1
movss  -0x2c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     121d <injectionCounter2Steps+0x10d>
movss  -0x34(%rbp),%xmm0
ucomiss -0x1c(%rbp),%xmm0
jbe    121d <injectionCounter2Steps+0x10d>
mov    -0x38(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x3c(%rbp),%eax
mov    %eax,-0x14(%rbp)
movss  -0x34(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
jmp    1222 <injectionCounter2Steps+0x112>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    118b <injectionCounter2Steps+0x7b>
jmp    1235 <injectionCounter2Steps+0x125>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    117a <injectionCounter2Steps+0x6a>
jmp    1356 <injectionCounter2Steps+0x246>
movl   $0x1,-0x4c(%rbp)
cmpl   $0x5,-0x4c(%rbp)
jg     1351 <injectionCounter2Steps+0x241>
movl   $0x1,-0x50(%rbp)
cmpl   $0x8,-0x50(%rbp)
jg     133e <injectionCounter2Steps+0x22e>
movl   $0x1,-0x54(%rbp)
cmpl   $0x8,-0x54(%rbp)
jge    132b <injectionCounter2Steps+0x21b>
cvtsi2ssl -0x4c(%rbp),%xmm0
movss  -0x4(%rbp),%xmm2
movss  0xd77(%rip),%xmm1
subss  %xmm1,%xmm2
movss  -0x4(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x40(%rbp)
cvtsi2ssl -0x50(%rbp),%xmm0
movss  -0x40(%rbp),%xmm2
movss  0xd4f(%rip),%xmm1
subss  %xmm1,%xmm2
movss  -0x40(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x44(%rbp)
cvtsi2ssl -0x54(%rbp),%xmm0
movss  -0x44(%rbp),%xmm2
movss  0xd27(%rip),%xmm1
subss  %xmm1,%xmm2
movss  -0x44(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x2c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     1318 <injectionCounter2Steps+0x208>
mov    -0x4c(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x50(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x54(%rbp),%eax
mov    %eax,-0x18(%rbp)
jmp    131d <injectionCounter2Steps+0x20d>
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    1271 <injectionCounter2Steps+0x161>
jmp    1330 <injectionCounter2Steps+0x220>
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    1260 <injectionCounter2Steps+0x150>
jmp    1343 <injectionCounter2Steps+0x233>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    124f <injectionCounter2Steps+0x13f>
jmp    1356 <injectionCounter2Steps+0x246>
mov    -0x10(%rbp),%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x14(%rbp),%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x18(%rbp),%ecx
mov    -0x28(%rbp),%rax
mov    %ecx,0x8(%rax)
mov    -0x28(%rbp),%rax
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<injectionCounter2Steps>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
movss  %xmm2,(%rsp)
movaps %xmm1,0x10(%rsp)
movss  %xmm0,0x4(%rsp)
mov    $0xc,%edi
call   1030 <malloc@plt>
movss  0x4(%rsp),%xmm13
movaps 0x10(%rsp),%xmm1
mov    %rax,0x8(%rsp)
divss  (%rsp),%xmm1
movss  0xeaa(%rip),%xmm0
ucomiss %xmm1,%xmm0
movss  0xea2(%rip),%xmm11
addss  %xmm13,%xmm11
jbe    133c <injectionCounter2Steps+0x22c>
movaps %xmm1,%xmm5
shufps $0x0,%xmm1,%xmm5
xorps  %xmm6,%xmm6
movl   $0x0,(%rsp)
movss  0xe7d(%rip),%xmm8
mov    $0x1,%r9d
movss  0xe72(%rip),%xmm9
mov    $0x2,%r10d
movss  0xe67(%rip),%xmm10
mov    $0x3,%r11d
movaps 0xe6d(%rip),%xmm12
mov    $0x5,%r14d
mov    $0x6,%r12d
mov    $0x7,%r13d
mov    $0x8,%r15d
xor    %edi,%edi
mov    $0x4,%esi
jmp    11f9 <injectionCounter2Steps+0xe9>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
cmovne %r15d,%edi
cmovne %esi,%ebp
mov    %ebp,(%rsp)
add    $0x1,%esi
movaps %xmm4,%xmm6
cmp    $0x7,%esi
je     1485 <injectionCounter2Steps+0x375>
xorps  %xmm7,%xmm7
cvtsi2ss %esi,%xmm7
mulss  %xmm11,%xmm7
addss  %xmm13,%xmm7
movaps %xmm7,%xmm4
addss  %xmm8,%xmm4
movaps %xmm4,%xmm0
addss  %xmm7,%xmm0
ucomiss %xmm0,%xmm1
setae  %cl
ucomiss %xmm6,%xmm0
seta   %dl
movaps %xmm4,%xmm2
addss  %xmm4,%xmm2
addss  %xmm7,%xmm2
ucomiss %xmm2,%xmm1
setae  %al
test   %dl,%cl
jne    123d <injectionCounter2Steps+0x12d>
movaps %xmm6,%xmm0
cmovne %r9d,%edi
mov    (%rsp),%ebp
cmovne %esi,%ebp
ucomiss %xmm0,%xmm2
movaps %xmm4,%xmm3
mulss  %xmm9,%xmm3
addss  %xmm7,%xmm3
seta   %dl
ucomiss %xmm3,%xmm1
setae  %cl
test   %dl,%al
jne    1266 <injectionCounter2Steps+0x156>
movaps %xmm0,%xmm2
cmovne %r10d,%edi
cmovne %esi,%ebp
ucomiss %xmm2,%xmm3
movaps %xmm4,%xmm6
mulss  %xmm10,%xmm6
addss  %xmm7,%xmm6
seta   %dl
ucomiss %xmm6,%xmm1
setae  %al
test   %dl,%cl
jne    128c <injectionCounter2Steps+0x17c>
movaps %xmm2,%xmm3
cmovne %r11d,%edi
cmovne %esi,%ebp
ucomiss %xmm3,%xmm6
seta   %cl
test   %cl,%al
jne    12a0 <injectionCounter2Steps+0x190>
movaps %xmm3,%xmm6
mov    $0x4,%eax
cmovne %eax,%edi
shufps $0x0,%xmm4,%xmm4
shufps $0x0,%xmm7,%xmm7
mulps  %xmm12,%xmm4
addps  %xmm7,%xmm4
movaps %xmm4,%xmm2
shufps $0xff,%xmm4,%xmm2
cmovne %esi,%ebp
ucomiss %xmm6,%xmm2
movaps %xmm4,%xmm0
cmpleps %xmm5,%xmm0
movmskps %xmm0,%edx
seta   %bl
mov    %edx,%ecx
shr    %cl
mov    %edx,%eax
shr    $0x2,%al
mov    %edx,%r8d
shr    $0x3,%r8b
test   %bl,%r8b
jne    12e9 <injectionCounter2Steps+0x1d9>
movaps %xmm6,%xmm2
cmovne %r14d,%edi
movaps %xmm4,%xmm0
unpckhpd %xmm4,%xmm0
cmovne %esi,%ebp
ucomiss %xmm2,%xmm0
seta   %bl
test   %bl,%al
jne    1304 <injectionCounter2Steps+0x1f4>
movaps %xmm2,%xmm0
cmovne %r12d,%edi
movaps %xmm4,%xmm2
shufps $0x55,%xmm4,%xmm2
cmovne %esi,%ebp
ucomiss %xmm0,%xmm2
seta   %al
test   %al,%cl
jne    131f <injectionCounter2Steps+0x20f>
movaps %xmm0,%xmm2
cmovne %r13d,%edi
cmovne %esi,%ebp
ucomiss %xmm2,%xmm4
seta   %al
test   %al,%dl
jne    11e0 <injectionCounter2Steps+0xd0>
movaps %xmm2,%xmm4
jmp    11e0 <injectionCounter2Steps+0xd0>
movaps %xmm1,%xmm4
shufps $0x0,%xmm1,%xmm4
movl   $0x0,(%rsp)
movss  0xcb2(%rip),%xmm2
mov    $0x2,%r9d
movss  0xca7(%rip),%xmm8
mov    $0x3,%r10d
movaps 0xca1(%rip),%xmm9
mov    $0x4,%r11d
mov    $0x5,%r14d
mov    $0x6,%r12d
mov    $0x7,%r13d
mov    $0x1,%esi
xor    %edi,%edi
xor    %ebp,%ebp
jmp    13ac <injectionCounter2Steps+0x29c>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x1,%esi
cmp    $0x6,%esi
je     1487 <injectionCounter2Steps+0x377>
xorps  %xmm5,%xmm5
cvtsi2ss %esi,%xmm5
mulss  %xmm11,%xmm5
addss  %xmm13,%xmm5
movaps %xmm5,%xmm6
addss  %xmm2,%xmm6
mov    $0x1,%edx
jmp    13d8 <injectionCounter2Steps+0x2c8>
nopl   0x0(%rax,%rax,1)
add    $0x1,%edx
cmp    $0x9,%edx
je     13a0 <injectionCounter2Steps+0x290>
xorps  %xmm3,%xmm3
cvtsi2ss %edx,%xmm3
mulss  %xmm6,%xmm3
addss  %xmm5,%xmm3
movaps %xmm3,%xmm0
addss  %xmm2,%xmm0
movaps %xmm0,%xmm7
addss  %xmm3,%xmm7
ucomiss %xmm7,%xmm1
setb   %bl
mov    $0x1,%eax
cmovae %eax,%ebp
movaps %xmm0,%xmm7
addss  %xmm0,%xmm7
addss  %xmm3,%xmm7
ucomiss %xmm7,%xmm1
setb   %cl
cmovae %r9d,%ebp
movaps %xmm0,%xmm7
mulss  %xmm8,%xmm7
addss  %xmm3,%xmm7
ucomiss %xmm7,%xmm1
setb   %r8b
cmovae %r10d,%ebp
shufps $0x0,%xmm0,%xmm0
shufps $0x0,%xmm3,%xmm3
mulps  %xmm9,%xmm0
addps  %xmm3,%xmm0
cmpnleps %xmm4,%xmm0
movmskps %xmm0,%eax
mov    %eax,%r15d
shr    $0x3,%r15b
cmove  %r11d,%ebp
test   $0x4,%al
cmove  %r14d,%ebp
test   $0x2,%al
cmove  %r12d,%ebp
test   $0x1,%al
cmove  %r13d,%ebp
not    %al
test   $0x7,%al
sete   %al
and    %r8b,%r15b
and    %cl,%r15b
and    %al,%r15b
test   %bl,%r15b
jne    13d0 <injectionCounter2Steps+0x2c0>
mov    %edx,%edi
mov    %esi,(%rsp)
jmp    13d0 <injectionCounter2Steps+0x2c0>
xor    %ebp,%ebp
mov    0x8(%rsp),%rax
mov    (%rsp),%ecx
mov    %ecx,(%rax)
mov    %edi,0x4(%rax)
mov    %ebp,0x8(%rax)
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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