int ubbf3(a1, a2, a3)
double *a1, *a2, *a3;
{
  double s[10], aa2, aa3;
  int ic, ik;
  double d5(), Pi2;
  int i_min();
  Pi2 = 3.141592654 * 2.;
l1:
  ik = 1;
  for (aa2 = *a2 - Pi2; aa2 <= *a2 + Pi2 + 0.1; aa2 += Pi2) {
    for (aa3 = *a3 - Pi2; aa3 <= *a3 + Pi2 + 0.1; aa3 += Pi2) {
      s[ik] = d5(*a1, aa2, aa3);
      ik++;
    }
  }
  ic = i_min(s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9]);
  if (ic == 1) {
    *a2 -= Pi2;
    *a3 -= Pi2;
    goto l1;
  }
  if (ic == 2) {
    *a2 -= Pi2;
    goto l1;
  }
  if (ic == 3) {
    *a2 -= Pi2;
    *a3 += Pi2;
    goto l1;
  }
  if (ic == 4) {
    *a3 -= Pi2;
    goto l1;
  }
  if (ic == 5) {
    goto l2;
  }
  if (ic == 6) {
    *a3 += Pi2;
    goto l1;
  }
  if (ic == 7) {
    *a2 += Pi2;
    *a3 -= Pi2;
    goto l1;
  }
  if (ic == 8) {
    *a2 += Pi2;
    goto l1;
  }
  if (ic == 9) {
    *a2 += Pi2;
    *a3 += Pi2;
    goto l1;
  }
l2:
  return ic;
}


x86 assembly (clang, -O0):
<ubbf3>:
push   %rbp
mov    %rsp,%rbp
sub    $0xa0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
movsd  0xec1(%rip),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movl   $0x1,-0x88(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
subsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x78(%rbp)
movsd  -0x78(%rbp),%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x90(%rbp),%xmm0
ff
movsd  0xe85(%rip),%xmm2
addsd  %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jb     1239 <ubbf3+0x119>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
subsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x80(%rbp)
movsd  -0x80(%rbp),%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x90(%rbp),%xmm0
ff
movsd  0xe45(%rip),%xmm2
addsd  %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jb     121d <ubbf3+0xfd>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x78(%rbp),%xmm1
movsd  -0x80(%rbp),%xmm2
mov    $0x3,%al
call   1030 <d5@plt>
movslq -0x88(%rbp),%rax
movsd  %xmm0,-0x70(%rbp,%rax,8)
mov    -0x88(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x88(%rbp)
movsd  -0x90(%rbp),%xmm0
ff
addsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
jmp    11a6 <ubbf3+0x86>
jmp    1222 <ubbf3+0x102>
movsd  -0x90(%rbp),%xmm0
ff
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
jmp    1166 <ubbf3+0x46>
movsd  -0x68(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm1
movsd  -0x58(%rbp),%xmm2
movsd  -0x50(%rbp),%xmm3
movsd  -0x48(%rbp),%xmm4
movsd  -0x40(%rbp),%xmm5
movsd  -0x38(%rbp),%xmm6
movsd  -0x30(%rbp),%xmm7
movsd  -0x28(%rbp),%xmm8
movsd  %xmm8,(%rsp)
mov    $0x8,%al
call   1040 <i_min@plt>
mov    %eax,-0x84(%rbp)
cmpl   $0x1,-0x84(%rbp)
jne    12bc <ubbf3+0x19c>
movsd  -0x90(%rbp),%xmm1
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
movsd  -0x90(%rbp),%xmm1
ff
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
jmp    1147 <ubbf3+0x27>
cmpl   $0x2,-0x84(%rbp)
jne    12e6 <ubbf3+0x1c6>
movsd  -0x90(%rbp),%xmm1
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
jmp    1147 <ubbf3+0x27>
cmpl   $0x3,-0x84(%rbp)
jne    1324 <ubbf3+0x204>
movsd  -0x90(%rbp),%xmm1
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
movsd  -0x90(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1147 <ubbf3+0x27>
cmpl   $0x4,-0x84(%rbp)
jne    134e <ubbf3+0x22e>
movsd  -0x90(%rbp),%xmm1
ff
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
jmp    1147 <ubbf3+0x27>
cmpl   $0x5,-0x84(%rbp)
jne    1360 <ubbf3+0x240>
jmp    1429 <ubbf3+0x309>
cmpl   $0x6,-0x84(%rbp)
jne    1386 <ubbf3+0x266>
movsd  -0x90(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1147 <ubbf3+0x27>
cmpl   $0x7,-0x84(%rbp)
jne    13c4 <ubbf3+0x2a4>
movsd  -0x90(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
movsd  -0x90(%rbp),%xmm1
ff
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
jmp    1147 <ubbf3+0x27>
cmpl   $0x8,-0x84(%rbp)
jne    13ea <ubbf3+0x2ca>
movsd  -0x90(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1147 <ubbf3+0x27>
cmpl   $0x9,-0x84(%rbp)
jne    1424 <ubbf3+0x304>
movsd  -0x90(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
movsd  -0x90(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1147 <ubbf3+0x27>
jmp    1429 <ubbf3+0x309>
mov    -0x84(%rbp),%eax
add    $0xa0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<ubbf3>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xa8,%rsp
mov    %rdx,%r15
mov    %rsi,%r14
mov    %rdi,%r13
movsd  0xebe(%rip),%xmm3
movsd  0xebe(%rip),%xmm4
movsd  0xebe(%rip),%xmm5
lea    0xebf(%rip),%r12
jmp    1180 <ubbf3+0x60>
movsd  (%r14),%xmm0
addsd  %xmm3,%xmm0
movsd  %xmm0,(%r14)
mov    %r15,%rcx
movapd %xmm3,%xmm0
addsd  (%rcx),%xmm0
movsd  %xmm0,(%rcx)
movsd  0xe90(%rip),%xmm5
movsd  (%r14),%xmm0
movapd %xmm0,%xmm1
addsd  %xmm3,%xmm1
movapd %xmm0,%xmm2
addsd  %xmm4,%xmm2
addsd  %xmm5,%xmm2
ucomisd %xmm1,%xmm2
jb     12e8 <ubbf3+0x1c8>
movsd  (%r15),%xmm6
mov    $0x1,%ebp
jmp    11ca <ubbf3+0xaa>
nop
addsd  %xmm4,%xmm1
movapd %xmm0,%xmm2
addsd  %xmm4,%xmm2
addsd  %xmm5,%xmm2
ucomisd %xmm1,%xmm2
jb     1270 <ubbf3+0x150>
movapd %xmm6,%xmm2
addsd  %xmm3,%xmm2
movapd %xmm6,%xmm7
addsd  %xmm4,%xmm7
addsd  %xmm5,%xmm7
ucomisd %xmm2,%xmm7
jb     11b0 <ubbf3+0x90>
movslq %ebp,%rax
lea    (%rsp,%rax,8),%rbx
add    $0x50,%rbx
movsd  %xmm1,0x8(%rsp)
cs nopw 0x0(%rax,%rax,1)
nop
movsd  %xmm2,0x10(%rsp)
movsd  0x0(%r13),%xmm0
mov    $0x3,%al
call   1030 <d5@plt>
movsd  0x10(%rsp),%xmm2
movsd  0x8(%rsp),%xmm1
movsd  0xde9(%rip),%xmm5
movsd  0xdd9(%rip),%xmm4
movsd  %xmm0,(%rbx)
addsd  %xmm4,%xmm2
movsd  (%r15),%xmm6
movapd %xmm6,%xmm0
addsd  %xmm4,%xmm0
addsd  %xmm5,%xmm0
add    $0x8,%rbx
add    $0x1,%ebp
ucomisd %xmm2,%xmm0
jae    1200 <ubbf3+0xe0>
movsd  (%r14),%xmm0
movsd  0xd9e(%rip),%xmm3
jmp    11b0 <ubbf3+0x90>
nopw   0x0(%rax,%rax,1)
movsd  0x58(%rsp),%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x60(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x68(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0x70(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x78(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
movsd  0x80(%rsp),%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  0x88(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x90(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x98(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x10(%rsp),%xmm0
movsd  %xmm0,(%rsp)
movsd  0x18(%rsp),%xmm0
movsd  0x20(%rsp),%xmm1
movsd  0x28(%rsp),%xmm2
movsd  0x30(%rsp),%xmm3
movsd  0x38(%rsp),%xmm4
movsd  0x40(%rsp),%xmm5
movsd  0x48(%rsp),%xmm6
movsd  0x8(%rsp),%xmm7
mov    $0x8,%al
call   1040 <i_min@plt>
movsd  0xcd6(%rip),%xmm4
movsd  0xcc6(%rip),%xmm3
lea    -0x1(%rax),%ecx
cmp    $0x8,%ecx
ja     1391 <ubbf3+0x271>
movslq (%r12,%rcx,4),%rdx
add    %r12,%rdx
mov    %r14,%rcx
movapd %xmm3,%xmm0
jmp    *%rdx
movsd  (%r14),%xmm0
addsd  %xmm3,%xmm0
jmp    1380 <ubbf3+0x260>
movsd  (%r14),%xmm0
addsd  %xmm4,%xmm0
jmp    1164 <ubbf3+0x44>
mov    %r14,%rcx
movapd %xmm4,%xmm0
jmp    1170 <ubbf3+0x50>
movsd  (%r14),%xmm0
addsd  %xmm4,%xmm0
movsd  %xmm0,(%r14)
mov    %r15,%rcx
movapd %xmm4,%xmm0
jmp    1170 <ubbf3+0x50>
add    $0xa8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define i32 @ubbf3(double* nocapture %0, double* nocapture %1, double* nocapture %2) {
%4 = alloca [10 x double]
%5 = bitcast [10 x double]* %4 to i8*
%6 = getelementptr inbounds [10 x double], [10 x double]* %4, i64 0, i64 1
%7 = getelementptr inbounds [10 x double], [10 x double]* %4, i64 0, i64 2
%8 = getelementptr inbounds [10 x double], [10 x double]* %4, i64 0, i64 3
%9 = getelementptr inbounds [10 x double], [10 x double]* %4, i64 0, i64 4
%10 = getelementptr inbounds [10 x double], [10 x double]* %4, i64 0, i64 5
%11 = getelementptr inbounds [10 x double], [10 x double]* %4, i64 0, i64 6
%12 = getelementptr inbounds [10 x double], [10 x double]* %4, i64 0, i64 7
%13 = getelementptr inbounds [10 x double], [10 x double]* %4, i64 0, i64 8
%14 = getelementptr inbounds [10 x double], [10 x double]* %4, i64 0, i64 9
br label %15
15: ; preds = %90, %3
%16 = phi double [ %77, %90 ], [ undef, %3 ]
%17 = phi double [ %78, %90 ], [ undef, %3 ]
%18 = phi double [ %79, %90 ], [ undef, %3 ]
%19 = phi double [ %80, %90 ], [ undef, %3 ]
%20 = phi double [ %81, %90 ], [ undef, %3 ]
%21 = phi double [ %82, %90 ], [ undef, %3 ]
%22 = phi double [ %83, %90 ], [ undef, %3 ]
%23 = phi double [ %84, %90 ], [ undef, %3 ]
%24 = phi double [ %85, %90 ], [ undef, %3 ]
%25 = load double, double* %1
%26 = fadd double %25, 0xC01921FB54524550
%27 = fadd double %25, 0x401921FB54524550
%28 = fadd double %27, 1.000000e-01
%29 = fcmp ugt double %26, %28
br i1 %29, label %76, label %30
30: ; preds = %15
%31 = load double, double* %2
br label %32
32: ; preds = %30, %58
%33 = phi double [ %59, %58 ], [ %25, %30 ]
%34 = phi double [ %60, %58 ], [ %31, %30 ]
%35 = phi double [ %62, %58 ], [ %26, %30 ]
%36 = phi i32 [ %61, %58 ], [ 1, %30 ]
%37 = fadd double %34, 0xC01921FB54524550
%38 = fadd double %34, 0x401921FB54524550
%39 = fadd double %38, 1.000000e-01
%40 = fcmp ugt double %37, %39
br i1 %40, label %58, label %41
41: ; preds = %32
%42 = sext i32 %36 to i64
br label %43
43: ; preds = %41, %43
%44 = phi i64 [ %42, %41 ], [ %49, %43 ]
%45 = phi double [ %37, %41 ], [ %50, %43 ]
%46 = load double, double* %0
%47 = tail call double (double, double, double, ...) bitcast (double (...)* @d5 to double (double, double, double, ...)*)(double %46, double %35, double %45)
%48 = getelementptr inbounds [10 x double], [10 x double]* %4, i64 0, i64 %44
store double %47, double* %48
%49 = add i64 %44, 1
%50 = fadd double %45, 0x401921FB54524550
%51 = load double, double* %2
%52 = fadd double %51, 0x401921FB54524550
%53 = fadd double %52, 1.000000e-01
%54 = fcmp ugt double %50, %53
br i1 %54, label %55, label %43
55: ; preds = %43
%56 = trunc i64 %49 to i32
%57 = load double, double* %1
br label %58
58: ; preds = %55, %32
%59 = phi double [ %33, %32 ], [ %57, %55 ]
%60 = phi double [ %34, %32 ], [ %51, %55 ]
%61 = phi i32 [ %36, %32 ], [ %56, %55 ]
%62 = fadd double %35, 0x401921FB54524550
%63 = fadd double %59, 0x401921FB54524550
%64 = fadd double %63, 1.000000e-01
%65 = fcmp ugt double %62, %64
br i1 %65, label %66, label %32
66: ; preds = %58
%67 = load double, double* %6
%68 = load double, double* %7
%69 = load double, double* %8
%70 = load double, double* %9
%71 = load double, double* %10
%72 = load double, double* %11
%73 = load double, double* %12
%74 = load double, double* %13
%75 = load double, double* %14
br label %76
76: ; preds = %66, %15
%77 = phi double [ %75, %66 ], [ %16, %15 ]
%78 = phi double [ %74, %66 ], [ %17, %15 ]
%79 = phi double [ %73, %66 ], [ %18, %15 ]
%80 = phi double [ %72, %66 ], [ %19, %15 ]
%81 = phi double [ %71, %66 ], [ %20, %15 ]
%82 = phi double [ %70, %66 ], [ %21, %15 ]
%83 = phi double [ %69, %66 ], [ %22, %15 ]
%84 = phi double [ %68, %66 ], [ %23, %15 ]
%85 = phi double [ %67, %66 ], [ %24, %15 ]
%86 = tail call i32 (double, double, double, double, double, double, double, double, double, ...) bitcast (i32 (...)* @i_min to i32 (double, double, double, double, double, double, double, double, double, ...)*)(double %85, double %84, double %83, double %82, double %81, double %80, double %79, double %78, double %77)
switch i32 %86, label %107 [
i32 1, label %87
i32 2, label %90
i32 3, label %95
i32 4, label %98
i32 9, label %104
i32 6, label %99
i32 7, label %100
i32 8, label %103
]
87: ; preds = %76
%88 = load double, double* %1
%89 = fadd double %88, 0xC01921FB54524550
store double %89, double* %1
br label %90
90: ; preds = %76, %87, %95, %98, %99, %100, %103, %104
%91 = phi double* [ %2, %87 ], [ %2, %95 ], [ %2, %98 ], [ %2, %99 ], [ %2, %100 ], [ %1, %103 ], [ %2, %104 ], [ %1, %76 ]
%92 = phi double [ 0xC01921FB54524550, %87 ], [ 0x401921FB54524550, %95 ], [ 0xC01921FB54524550, %98 ], [ 0x401921FB54524550, %99 ], [ 0xC01921FB54524550, %100 ], [ 0x401921FB54524550, %103 ], [ 0x401921FB54524550, %104 ], [ 0xC01921FB54524550, %76 ]
%93 = load double, double* %91
%94 = fadd double %93, %92
store double %94, double* %91
br label %15
95: ; preds = %76
%96 = load double, double* %1
%97 = fadd double %96, 0xC01921FB54524550
store double %97, double* %1
br label %90
98: ; preds = %76
br label %90
99: ; preds = %76
br label %90
100: ; preds = %76
%101 = load double, double* %1
%102 = fadd double %101, 0x401921FB54524550
store double %102, double* %1
br label %90
103: ; preds = %76
br label %90
104: ; preds = %76
%105 = load double, double* %1
%106 = fadd double %105, 0x401921FB54524550
store double %106, double* %1
br label %90
107: ; preds = %76
ret i32 %86
}