// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/exprtk_benchmark.cpp
// Function: pgo_primer()
double pgo_primer()
{
   static const double lower_bound_x = -50.0;
   static const double lower_bound_y = -50.0;
   static const double upper_bound_x = +50.0;
   static const double upper_bound_y = +50.0;
   static const double delta = 0.07;

   double total = 0.0;

   for (double x = lower_bound_x; x <= upper_bound_x; x += delta)
   {
      for (double y = lower_bound_y; y <= upper_bound_y; y += delta)
      {
         total += native<double>::func00(x,y);
         total += native<double>::func01(x,y);
         total += native<double>::func02(x,y);
         total += native<double>::func03(x,y);
         total += native<double>::func04(x,y);
         total += native<double>::func05(x,y);
         total += native<double>::func06(x,y);
         total += native<double>::func07(x,y);
         total += native<double>::func08(x,y);
         total += native<double>::func09(x,y);
         total += native<double>::func10(x,y);
         total += native<double>::func11(x,y);
         total += native<double>::func12(x,y);
         total += native<double>::func13(x,y);
         total += native<double>::func14(x,y);
         total += native<double>::func15(x,y);
         total += native<double>::func16(x,y);
      }
   }

   return total;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x78, %rsp
movsd 0x12c94a(%rip), %xmm0   # 0x242080
leaq 0x8(%rsp), %rbx
leaq 0x10(%rsp), %r14
xorpd %xmm2, %xmm2
movsd %xmm0, 0x8(%rsp)
movsd 0x12c936(%rip), %xmm1   # 0x242088
ucomisd %xmm0, %xmm1
jb 0x115a44
movsd 0x12c91c(%rip), %xmm1   # 0x242080
movsd %xmm1, 0x10(%rsp)
movsd 0x12c916(%rip), %xmm0   # 0x242088
ucomisd %xmm1, %xmm0
jb 0x115a31
movsd %xmm2, (%rsp)
movsd 0x8(%rsp), %xmm0
movapd %xmm0, %xmm2
mulsd %xmm0, %xmm2
mulsd 0x12c8f9(%rip), %xmm2   # 0x242090
divsd %xmm1, %xmm2
addsd 0x12c8f5(%rip), %xmm2   # 0x242098
movsd %xmm2, 0x60(%rsp)
movapd %xmm1, %xmm2
divsd %xmm0, %xmm2
movsd %xmm0, 0x70(%rsp)
movsd %xmm1, 0x18(%rsp)
mulsd %xmm1, %xmm0
movsd %xmm2, 0x50(%rsp)
addsd %xmm2, %xmm0
movsd 0x12c8cd(%rip), %xmm1   # 0x2420a0
subsd %xmm0, %xmm1
addsd 0x12c8c9(%rip), %xmm1   # 0x2420a8
movsd %xmm1, 0x68(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x11606c
movsd %xmm0, 0x58(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1160c6
movsd %xmm0, 0x48(%rsp)
movsd 0x8(%rsp), %xmm0
addsd %xmm0, %xmm0
callq 0x1121d0
movsd %xmm0, 0x40(%rsp)
movsd 0x12c88c(%rip), %xmm0   # 0x2420b0
divsd 0x10(%rsp), %xmm0
callq 0x112500
movsd %xmm0, 0x38(%rsp)
movsd 0x8(%rsp), %xmm0
addsd %xmm0, %xmm0
callq 0x1121d0
movsd %xmm0, 0x30(%rsp)
movsd 0x12c85e(%rip), %xmm0   # 0x2420b0
divsd 0x10(%rsp), %xmm0
callq 0x112500
movsd %xmm0, 0x28(%rsp)
movsd 0x8(%rsp), %xmm0
addsd %xmm0, %xmm0
callq 0x1121d0
movsd 0x12c83e(%rip), %xmm1   # 0x2420b8
subsd %xmm0, %xmm1
movsd %xmm1, 0x20(%rsp)
movsd 0x12c824(%rip), %xmm0   # 0x2420b0
divsd 0x10(%rsp), %xmm0
callq 0x112500
divsd 0x12c821(%rip), %xmm0   # 0x2420c0
addsd 0x20(%rsp), %xmm0
ucomisd 0x12c833(%rip), %xmm0   # 0x2420e0
jb 0x1158b5
sqrtsd %xmm0, %xmm0
jmp 0x1158ba
callq 0x112280
movsd (%rsp), %xmm3
movsd 0x18(%rsp), %xmm5
movapd %xmm5, %xmm1
movsd 0x70(%rsp), %xmm6
addsd %xmm6, %xmm1
addsd %xmm1, %xmm3
movapd %xmm6, %xmm2
subsd %xmm5, %xmm2
addsd %xmm1, %xmm2
addsd %xmm1, %xmm1
addsd %xmm3, %xmm1
movapd %xmm6, %xmm3
addsd %xmm6, %xmm3
movapd %xmm5, %xmm4
addsd %xmm5, %xmm4
addsd %xmm3, %xmm4
addsd %xmm1, %xmm4
addsd 0x60(%rsp), %xmm4
movapd %xmm6, %xmm1
subsd 0x50(%rsp), %xmm1
movapd %xmm6, %xmm3
divsd %xmm5, %xmm3
addsd %xmm5, %xmm3
mulsd %xmm3, %xmm1
addsd %xmm4, %xmm1
divsd %xmm2, %xmm6
divsd %xmm5, %xmm6
addsd %xmm1, %xmm6
movsd 0x68(%rsp), %xmm1
addsd %xmm6, %xmm1
movsd 0x58(%rsp), %xmm2
addsd %xmm1, %xmm2
movsd 0x48(%rsp), %xmm1
addsd %xmm2, %xmm1
movsd 0x40(%rsp), %xmm2
addsd 0x38(%rsp), %xmm2
addsd %xmm1, %xmm2
movsd 0x12c737(%rip), %xmm1   # 0x2420a0
subsd 0x30(%rsp), %xmm1
addsd 0x28(%rsp), %xmm1
addsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
movsd 0x8(%rsp), %xmm0
mulsd %xmm0, %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x12c72e(%rip), %xmm0   # 0x2420c8
divsd 0x10(%rsp), %xmm0
callq 0x1121d0
movsd 0x18(%rsp), %xmm1
divsd %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
mulsd 0x12c713(%rip), %xmm0   # 0x2420d0
addsd %xmm1, %xmm0
addsd (%rsp), %xmm0
movsd %xmm0, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1162ae
addsd (%rsp), %xmm0
movsd %xmm0, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x116350
addsd (%rsp), %xmm0
movsd %xmm0, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1163be
addsd (%rsp), %xmm0
movsd %xmm0, (%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x116438
movapd %xmm0, %xmm2
addsd (%rsp), %xmm2
movsd 0x10(%rsp), %xmm1
addsd 0x12c6ac(%rip), %xmm1   # 0x2420d8
jmp 0x115764
movsd 0x8(%rsp), %xmm0
addsd 0x12c699(%rip), %xmm0   # 0x2420d8
jmp 0x115744
movapd %xmm2, %xmm0
addq $0x78, %rsp
popq %rbx
popq %r14
retq