void g12(double *x, double *f, double *g, double *h, int nx, int nf, int ng,
         int nh) {
  double gt;
  int i, j, k;
  f[0] = (100. - (x[0] - 5.) * (x[0] - 5.) - (x[1] - 5.) * (x[1] - 5.) -
          (x[2] - 5.) * (x[2] - 5.)) /
         100.;
  f[0] = -f[0];
  g[0] = (x[0] - 1.) * (x[0] - 1.) + (x[1] - 1.) * (x[1] - 1.) +
         (x[2] - 1.) * (x[2] - 1.) - 0.0625;
  for (i = 1; i <= 9; i++) {
    for (j = 1; j <= 9; j++) {
      for (k = 1; k <= 9; k++) {
        gt = (x[0] - i) * (x[0] - i) + (x[1] - j) * (x[1] - j) +
             (x[2] - k) * (x[2] - k) - 0.0625;
        if (gt < g[0])
          g[0] = gt;
      }
    }
  }
}


x86 assembly (clang, -O0):
<g12>:
push   %rbp
mov    %rsp,%rbp
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%eax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8d,-0x24(%rbp)
mov    %r9d,-0x28(%rbp)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xee6(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
movsd  0xed2(%rip),%xmm2
subsd  %xmm2,%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0xea3(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm1
movsd  0xe96(%rip),%xmm2
subsd  %xmm2,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm2
movsd  0xe81(%rip),%xmm3
subsd  %xmm3,%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  0xe4d(%rip),%xmm2
subsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm2
movsd  0xe38(%rip),%xmm3
subsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xe05(%rip),%xmm1
divsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
movsd  0xdba(%rip),%xmm0
subsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm2
movsd  0xda6(%rip),%xmm0
subsd  %xmm0,%xmm2
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  0xd91(%rip),%xmm3
subsd  %xmm3,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm3
movsd  0xd7c(%rip),%xmm4
subsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  0xd5b(%rip),%xmm2
subsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm2
movsd  0xd46(%rip),%xmm3
subsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xd2a(%rip),%xmm1
subsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movl   $0x1,-0x34(%rbp)
cmpl   $0x9,-0x34(%rbp)
jg     1401 <g12+0x301>
movl   $0x1,-0x38(%rbp)
cmpl   $0x9,-0x38(%rbp)
jg     13ee <g12+0x2ee>
movl   $0x1,-0x3c(%rbp)
cmpl   $0x9,-0x3c(%rbp)
jg     13db <g12+0x2db>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
cvtsi2sdl -0x34(%rbp),%xmm0
subsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm2
cvtsi2sdl -0x34(%rbp),%xmm0
subsd  %xmm0,%xmm2
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
cvtsi2sdl -0x38(%rbp),%xmm3
subsd  %xmm3,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm3
cvtsi2sdl -0x38(%rbp),%xmm4
subsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
cvtsi2sdl -0x3c(%rbp),%xmm2
subsd  %xmm2,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm2
cvtsi2sdl -0x3c(%rbp),%xmm3
subsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xc65(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    13c8 <g12+0x2c8>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    13cd <g12+0x2cd>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    130b <g12+0x20b>
jmp    13e0 <g12+0x2e0>
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    12fa <g12+0x1fa>
jmp    13f3 <g12+0x2f3>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    12e9 <g12+0x1e9>
pop    %rbp
ret

x86 assembly (clang, -O2):
<g12>:
movsd  0xef8(%rip),%xmm2
movsd  (%rdi),%xmm0
addsd  %xmm2,%xmm0
mulsd  %xmm0,%xmm0
movsd  0xeec(%rip),%xmm1
subsd  %xmm0,%xmm1
movsd  0x8(%rdi),%xmm0
addsd  %xmm2,%xmm0
mulsd  %xmm0,%xmm0
subsd  %xmm0,%xmm1
movsd  0x10(%rdi),%xmm0
addsd  %xmm2,%xmm0
mulsd  %xmm0,%xmm0
subsd  %xmm0,%xmm1
divsd  0xec6(%rip),%xmm1
movsd  %xmm1,(%rsi)
movsd  0xec2(%rip),%xmm2
movsd  (%rdi),%xmm0
addsd  %xmm2,%xmm0
movsd  0x8(%rdi),%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm1
mulsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
movsd  0x10(%rdi),%xmm9
addsd  %xmm2,%xmm9
mulsd  %xmm9,%xmm9
addsd  %xmm0,%xmm9
addsd  0xe8f(%rip),%xmm9
movsd  %xmm9,(%rdx)
movsd  (%rdi),%xmm1
mov    $0x1,%eax
movsd  0xe81(%rip),%xmm7
movsd  0xe71(%rip),%xmm3
movsd  0xe80(%rip),%xmm11
movsd  0xe7f(%rip),%xmm12
movsd  0xe7e(%rip),%xmm13
movsd  0xe7d(%rip),%xmm14
movsd  0xe7c(%rip),%xmm15
movsd  0xe7b(%rip),%xmm10
movapd %xmm7,%xmm2
jmp    1200 <g12+0x100>
nopl   0x0(%rax,%rax,1)
addsd  %xmm7,%xmm2
add    $0x1,%eax
cmp    $0xa,%eax
je     14df <g12+0x3df>
mov    $0x9,%ecx
movapd %xmm7,%xmm5
jmp    1219 <g12+0x119>
nopl   0x0(%rax,%rax,1)
addsd  %xmm7,%xmm5
add    $0xffffffff,%ecx
je     11f0 <g12+0xf0>
movapd %xmm1,%xmm6
subsd  %xmm2,%xmm6
movsd  0x8(%rdi),%xmm0
movsd  0x10(%rdi),%xmm8
subsd  %xmm5,%xmm0
mulsd  %xmm0,%xmm0
mulsd  %xmm6,%xmm6
addsd  %xmm0,%xmm6
movapd %xmm8,%xmm0
addsd  0xdcf(%rip),%xmm0
mulsd  %xmm0,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm0,%xmm9
jbe    128c <g12+0x18c>
movsd  %xmm0,(%rdx)
movsd  (%rdi),%xmm1
movsd  0x8(%rdi),%xmm4
movsd  0x10(%rdi),%xmm8
movapd %xmm1,%xmm6
subsd  %xmm2,%xmm6
subsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm4
mulsd  %xmm6,%xmm6
addsd  %xmm4,%xmm6
movapd %xmm0,%xmm9
movapd %xmm8,%xmm0
addsd  0xd97(%rip),%xmm0
mulsd  %xmm0,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm0,%xmm9
jbe    12dc <g12+0x1dc>
movsd  %xmm0,(%rdx)
movsd  (%rdi),%xmm1
movsd  0x8(%rdi),%xmm4
movsd  0x10(%rdi),%xmm8
movapd %xmm1,%xmm6
subsd  %xmm2,%xmm6
subsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm4
mulsd  %xmm6,%xmm6
addsd  %xmm4,%xmm6
movapd %xmm0,%xmm9
movapd %xmm8,%xmm0
addsd  %xmm11,%xmm0
mulsd  %xmm0,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm0,%xmm9
jbe    1329 <g12+0x229>
movsd  %xmm0,(%rdx)
movsd  (%rdi),%xmm1
movsd  0x8(%rdi),%xmm4
movsd  0x10(%rdi),%xmm8
movapd %xmm1,%xmm6
subsd  %xmm2,%xmm6
subsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm4
mulsd  %xmm6,%xmm6
addsd  %xmm4,%xmm6
movapd %xmm0,%xmm9
movapd %xmm8,%xmm0
addsd  %xmm12,%xmm0
mulsd  %xmm0,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm0,%xmm9
jbe    1376 <g12+0x276>
movsd  %xmm0,(%rdx)
movsd  (%rdi),%xmm1
movsd  0x8(%rdi),%xmm4
movsd  0x10(%rdi),%xmm8
movapd %xmm1,%xmm6
subsd  %xmm2,%xmm6
subsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm4
mulsd  %xmm6,%xmm6
addsd  %xmm4,%xmm6
movapd %xmm0,%xmm9
movapd %xmm8,%xmm0
addsd  0xc7d(%rip),%xmm0
mulsd  %xmm0,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm0,%xmm9
jbe    13c6 <g12+0x2c6>
movsd  %xmm0,(%rdx)
movsd  (%rdi),%xmm1
movsd  0x8(%rdi),%xmm4
movsd  0x10(%rdi),%xmm8
movapd %xmm1,%xmm6
subsd  %xmm2,%xmm6
subsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm4
mulsd  %xmm6,%xmm6
addsd  %xmm4,%xmm6
movapd %xmm0,%xmm9
movapd %xmm8,%xmm0
addsd  %xmm13,%xmm0
mulsd  %xmm0,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm0,%xmm9
jbe    1413 <g12+0x313>
movsd  %xmm0,(%rdx)
movsd  (%rdi),%xmm1
movsd  0x8(%rdi),%xmm4
movsd  0x10(%rdi),%xmm8
movapd %xmm1,%xmm6
subsd  %xmm2,%xmm6
subsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm4
mulsd  %xmm6,%xmm6
addsd  %xmm4,%xmm6
movapd %xmm0,%xmm9
movapd %xmm8,%xmm0
addsd  %xmm14,%xmm0
mulsd  %xmm0,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm0,%xmm9
jbe    1460 <g12+0x360>
movsd  %xmm0,(%rdx)
movsd  (%rdi),%xmm1
movsd  0x8(%rdi),%xmm4
movsd  0x10(%rdi),%xmm8
movapd %xmm1,%xmm6
subsd  %xmm2,%xmm6
subsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm4
mulsd  %xmm6,%xmm6
addsd  %xmm4,%xmm6
movapd %xmm0,%xmm9
movapd %xmm8,%xmm0
addsd  %xmm15,%xmm0
mulsd  %xmm0,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm0,%xmm9
jbe    14ad <g12+0x3ad>
movsd  %xmm0,(%rdx)
movsd  (%rdi),%xmm1
movsd  0x8(%rdi),%xmm4
movsd  0x10(%rdi),%xmm8
movapd %xmm1,%xmm6
subsd  %xmm2,%xmm6
subsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm4
mulsd  %xmm6,%xmm6
addsd  %xmm4,%xmm6
movapd %xmm0,%xmm9
addsd  %xmm10,%xmm8
mulsd  %xmm8,%xmm8
addsd  %xmm6,%xmm8
addsd  %xmm3,%xmm8
ucomisd %xmm8,%xmm9
jbe    1210 <g12+0x110>
movsd  %xmm8,(%rdx)
movsd  (%rdi),%xmm1
movapd %xmm8,%xmm9
jmp    1210 <g12+0x110>
ret

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

LLVM IR (-O2):
define void @g12(double* nocapture %0, double* nocapture writeonly %1, double* nocapture %2, double* nocapture readnone %3, i32 %4, i32 %5, i32 %6, i32 %7) {
%9 = load double, double* %0
%10 = fadd double %9, -5.000000e+00
%11 = fneg double %10
%12 = tail call double @llvm.fmuladd.f64(double %11, double %10, double 1.000000e+02)
%13 = getelementptr inbounds double, double* %0, i64 1
%14 = load double, double* %13
%15 = fadd double %14, -5.000000e+00
%16 = fneg double %15
%17 = tail call double @llvm.fmuladd.f64(double %16, double %15, double %12)
%18 = getelementptr inbounds double, double* %0, i64 2
%19 = load double, double* %18
%20 = fadd double %19, -5.000000e+00
%21 = fneg double %20
%22 = tail call double @llvm.fmuladd.f64(double %21, double %20, double %17)
%23 = fdiv double %22, -1.000000e+02
store double %23, double* %1
%24 = load double, double* %0
%25 = fadd double %24, -1.000000e+00
%26 = load double, double* %13
%27 = fadd double %26, -1.000000e+00
%28 = fmul double %27, %27
%29 = tail call double @llvm.fmuladd.f64(double %25, double %25, double %28)
%30 = load double, double* %18
%31 = fadd double %30, -1.000000e+00
%32 = tail call double @llvm.fmuladd.f64(double %31, double %31, double %29)
%33 = fadd double %32, -6.250000e-02
store double %33, double* %2
%34 = load double, double* %0
br label %35
35: ; preds = %8, %208
%36 = phi double [ %34, %8 ], [ %203, %208 ]
%37 = phi double [ %33, %8 ], [ %204, %208 ]
%38 = phi i32 [ 1, %8 ], [ %209, %208 ]
%39 = sitofp i32 %38 to double
br label %40
40: ; preds = %35, %202
%41 = phi double [ %36, %35 ], [ %203, %202 ]
%42 = phi double [ %37, %35 ], [ %204, %202 ]
%43 = phi double [ %36, %35 ], [ %205, %202 ]
%44 = phi i32 [ 1, %35 ], [ %206, %202 ]
%45 = sitofp i32 %44 to double
%46 = fsub double %43, %39
%47 = load double, double* %13
%48 = fsub double %47, %45
%49 = fmul double %48, %48
%50 = tail call double @llvm.fmuladd.f64(double %46, double %46, double %49)
%51 = load double, double* %18
%52 = fadd double %51, -1.000000e+00
%53 = tail call double @llvm.fmuladd.f64(double %52, double %52, double %50)
%54 = fadd double %53, -6.250000e-02
%55 = fcmp olt double %54, %42
br i1 %55, label %56, label %64
56: ; preds = %40
store double %54, double* %2
%57 = load double, double* %0
%58 = load double, double* %13
%59 = load double, double* %18
%60 = fsub double %57, %39
%61 = fsub double %58, %45
%62 = fmul double %61, %61
%63 = tail call double @llvm.fmuladd.f64(double %60, double %60, double %62)
br label %64
64: ; preds = %40, %56
%65 = phi double [ %50, %40 ], [ %63, %56 ]
%66 = phi double [ %41, %40 ], [ %57, %56 ]
%67 = phi double [ %42, %40 ], [ %54, %56 ]
%68 = phi double [ %43, %40 ], [ %57, %56 ]
%69 = phi double [ %51, %40 ], [ %59, %56 ]
%70 = fadd double %69, -2.000000e+00
%71 = tail call double @llvm.fmuladd.f64(double %70, double %70, double %65)
%72 = fadd double %71, -6.250000e-02
%73 = fcmp olt double %72, %67
br i1 %73, label %74, label %82
74: ; preds = %64
store double %72, double* %2
%75 = load double, double* %0
%76 = load double, double* %13
%77 = load double, double* %18
%78 = fsub double %75, %39
%79 = fsub double %76, %45
%80 = fmul double %79, %79
%81 = tail call double @llvm.fmuladd.f64(double %78, double %78, double %80)
br label %82
82: ; preds = %74, %64
%83 = phi double [ %81, %74 ], [ %65, %64 ]
%84 = phi double [ %75, %74 ], [ %66, %64 ]
%85 = phi double [ %72, %74 ], [ %67, %64 ]
%86 = phi double [ %75, %74 ], [ %68, %64 ]
%87 = phi double [ %77, %74 ], [ %69, %64 ]
%88 = fadd double %87, -3.000000e+00
%89 = tail call double @llvm.fmuladd.f64(double %88, double %88, double %83)
%90 = fadd double %89, -6.250000e-02
%91 = fcmp olt double %90, %85
br i1 %91, label %92, label %100
92: ; preds = %82
store double %90, double* %2
%93 = load double, double* %0
%94 = load double, double* %13
%95 = load double, double* %18
%96 = fsub double %93, %39
%97 = fsub double %94, %45
%98 = fmul double %97, %97
%99 = tail call double @llvm.fmuladd.f64(double %96, double %96, double %98)
br label %100
100: ; preds = %92, %82
%101 = phi double [ %99, %92 ], [ %83, %82 ]
%102 = phi double [ %93, %92 ], [ %84, %82 ]
%103 = phi double [ %90, %92 ], [ %85, %82 ]
%104 = phi double [ %93, %92 ], [ %86, %82 ]
%105 = phi double [ %95, %92 ], [ %87, %82 ]
%106 = fadd double %105, -4.000000e+00
%107 = tail call double @llvm.fmuladd.f64(double %106, double %106, double %101)
%108 = fadd double %107, -6.250000e-02
%109 = fcmp olt double %108, %103
br i1 %109, label %110, label %118
110: ; preds = %100
store double %108, double* %2
%111 = load double, double* %0
%112 = load double, double* %13
%113 = load double, double* %18
%114 = fsub double %111, %39
%115 = fsub double %112, %45
%116 = fmul double %115, %115
%117 = tail call double @llvm.fmuladd.f64(double %114, double %114, double %116)
br label %118
118: ; preds = %110, %100
%119 = phi double [ %117, %110 ], [ %101, %100 ]
%120 = phi double [ %111, %110 ], [ %102, %100 ]
%121 = phi double [ %108, %110 ], [ %103, %100 ]
%122 = phi double [ %111, %110 ], [ %104, %100 ]
%123 = phi double [ %113, %110 ], [ %105, %100 ]
%124 = fadd double %123, -5.000000e+00
%125 = tail call double @llvm.fmuladd.f64(double %124, double %124, double %119)
%126 = fadd double %125, -6.250000e-02
%127 = fcmp olt double %126, %121
br i1 %127, label %128, label %136
128: ; preds = %118
store double %126, double* %2
%129 = load double, double* %0
%130 = load double, double* %13
%131 = load double, double* %18
%132 = fsub double %129, %39
%133 = fsub double %130, %45
%134 = fmul double %133, %133
%135 = tail call double @llvm.fmuladd.f64(double %132, double %132, double %134)
br label %136
136: ; preds = %128, %118
%137 = phi double [ %135, %128 ], [ %119, %118 ]
%138 = phi double [ %129, %128 ], [ %120, %118 ]
%139 = phi double [ %126, %128 ], [ %121, %118 ]
%140 = phi double [ %129, %128 ], [ %122, %118 ]
%141 = phi double [ %131, %128 ], [ %123, %118 ]
%142 = fadd double %141, -6.000000e+00
%143 = tail call double @llvm.fmuladd.f64(double %142, double %142, double %137)
%144 = fadd double %143, -6.250000e-02
%145 = fcmp olt double %144, %139
br i1 %145, label %146, label %154
146: ; preds = %136
store double %144, double* %2
%147 = load double, double* %0
%148 = load double, double* %13
%149 = load double, double* %18
%150 = fsub double %147, %39
%151 = fsub double %148, %45
%152 = fmul double %151, %151
%153 = tail call double @llvm.fmuladd.f64(double %150, double %150, double %152)
br label %154
154: ; preds = %146, %136
%155 = phi double [ %153, %146 ], [ %137, %136 ]
%156 = phi double [ %147, %146 ], [ %138, %136 ]
%157 = phi double [ %144, %146 ], [ %139, %136 ]
%158 = phi double [ %147, %146 ], [ %140, %136 ]
%159 = phi double [ %149, %146 ], [ %141, %136 ]
%160 = fadd double %159, -7.000000e+00
%161 = tail call double @llvm.fmuladd.f64(double %160, double %160, double %155)
%162 = fadd double %161, -6.250000e-02
%163 = fcmp olt double %162, %157
br i1 %163, label %164, label %172
164: ; preds = %154
store double %162, double* %2
%165 = load double, double* %0
%166 = load double, double* %13
%167 = load double, double* %18
%168 = fsub double %165, %39
%169 = fsub double %166, %45
%170 = fmul double %169, %169
%171 = tail call double @llvm.fmuladd.f64(double %168, double %168, double %170)
br label %172
172: ; preds = %164, %154
%173 = phi double [ %171, %164 ], [ %155, %154 ]
%174 = phi double [ %165, %164 ], [ %156, %154 ]
%175 = phi double [ %162, %164 ], [ %157, %154 ]
%176 = phi double [ %165, %164 ], [ %158, %154 ]
%177 = phi double [ %167, %164 ], [ %159, %154 ]
%178 = fadd double %177, -8.000000e+00
%179 = tail call double @llvm.fmuladd.f64(double %178, double %178, double %173)
%180 = fadd double %179, -6.250000e-02
%181 = fcmp olt double %180, %175
br i1 %181, label %182, label %190
182: ; preds = %172
store double %180, double* %2
%183 = load double, double* %0
%184 = load double, double* %13
%185 = load double, double* %18
%186 = fsub double %183, %39
%187 = fsub double %184, %45
%188 = fmul double %187, %187
%189 = tail call double @llvm.fmuladd.f64(double %186, double %186, double %188)
br label %190
190: ; preds = %182, %172
%191 = phi double [ %189, %182 ], [ %173, %172 ]
%192 = phi double [ %183, %182 ], [ %174, %172 ]
%193 = phi double [ %180, %182 ], [ %175, %172 ]
%194 = phi double [ %185, %182 ], [ %177, %172 ]
%195 = phi double [ %183, %182 ], [ %176, %172 ]
%196 = fadd double %194, -9.000000e+00
%197 = tail call double @llvm.fmuladd.f64(double %196, double %196, double %191)
%198 = fadd double %197, -6.250000e-02
%199 = fcmp olt double %198, %193
br i1 %199, label %200, label %202
200: ; preds = %190
store double %198, double* %2
%201 = load double, double* %0
br label %202
202: ; preds = %200, %190
%203 = phi double [ %201, %200 ], [ %192, %190 ]
%204 = phi double [ %198, %200 ], [ %193, %190 ]
%205 = phi double [ %201, %200 ], [ %195, %190 ]
%206 = add nuw nsw i32 %44, 1
%207 = icmp eq i32 %206, 10
br i1 %207, label %208, label %40
208: ; preds = %202
%209 = add nuw nsw i32 %38, 1
%210 = icmp eq i32 %209, 10
br i1 %210, label %211, label %35
211: ; preds = %208
ret void
}