// File: /workspace/github_cpp_makefile_star2_O3/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:
subq $0x118, %rsp            # imm = 0x118
movsd 0x1936d3(%rip), %xmm3   # 0x2b2130
movsd 0x193613(%rip), %xmm5   # 0x2b2078
movsd 0x193613(%rip), %xmm6   # 0x2b2080
xorpd %xmm0, %xmm0
movapd %xmm3, %xmm1
addsd %xmm3, %xmm1
movapd %xmm1, 0x50(%rsp)
movapd %xmm3, %xmm1
mulsd %xmm3, %xmm1
movapd %xmm1, 0xd0(%rsp)
mulsd 0x193598(%rip), %xmm1   # 0x2b2030
movapd %xmm3, %xmm2
addsd 0x1935ac(%rip), %xmm2   # 0x2b2050
movapd %xmm2, 0xc0(%rsp)
movapd %xmm3, %xmm2
divsd 0x19359f(%rip), %xmm2   # 0x2b2058
movapd %xmm2, 0xb0(%rsp)
movapd %xmm3, %xmm2
mulsd 0x193622(%rip), %xmm2   # 0x2b20f0
movapd %xmm2, 0xa0(%rsp)
movsd 0x193609(%rip), %xmm2   # 0x2b20e8
divsd %xmm3, %xmm2
mulsd 0x1935d5(%rip), %xmm2   # 0x2b20c0
movsd %xmm2, 0x78(%rsp)
movapd %xmm3, %xmm4
movsd 0x1935db(%rip), %xmm2   # 0x2b20d8
mulsd %xmm2, %xmm4
movapd %xmm4, 0x90(%rsp)
divsd %xmm3, %xmm2
movsd %xmm2, 0x70(%rsp)
movapd %xmm3, %xmm2
unpcklpd %xmm1, %xmm2            # xmm2 = xmm2[0],xmm1[0]
movapd %xmm2, 0x80(%rsp)
movsd 0x193603(%rip), %xmm4   # 0x2b2130
movapd %xmm3, 0x60(%rsp)
movapd %xmm3, %xmm7
addsd %xmm4, %xmm7
addsd %xmm7, %xmm0
movapd %xmm7, %xmm1
addsd %xmm7, %xmm1
addsd %xmm0, %xmm1
movapd %xmm4, %xmm0
addsd %xmm4, %xmm0
movapd %xmm0, 0x30(%rsp)
movapd 0x50(%rsp), %xmm2
addsd %xmm2, %xmm0
movapd %xmm2, %xmm8
addsd %xmm1, %xmm0
movapd %xmm4, %xmm1
unpcklpd %xmm4, %xmm1            # xmm1 = xmm1[0],xmm4[0]
movapd 0x80(%rsp), %xmm2
divpd %xmm1, %xmm2
movapd %xmm4, %xmm1
divsd %xmm3, %xmm1
movapd %xmm3, %xmm10
subsd %xmm1, %xmm3
movapd %xmm4, %xmm9
movhpd 0x193499(%rip), %xmm4   # xmm4 = xmm4[0],mem[0]
addpd %xmm2, %xmm4
mulsd %xmm4, %xmm3
unpckhpd %xmm4, %xmm4            # xmm4 = xmm4[1,1]
addsd %xmm0, %xmm4
addsd %xmm3, %xmm4
movapd %xmm10, %xmm2
subsd %xmm9, %xmm2
movapd %xmm7, 0x100(%rsp)
movapd %xmm7, %xmm0
movapd %xmm2, 0xf0(%rsp)
addsd %xmm2, %xmm0
movapd %xmm10, %xmm2
divsd %xmm0, %xmm2
divsd %xmm9, %xmm2
addsd %xmm4, %xmm2
movapd %xmm10, %xmm0
mulsd %xmm9, %xmm0
movapd %xmm0, 0xe0(%rsp)
addsd %xmm0, %xmm1
movsd 0x193438(%rip), %xmm0   # 0x2b2040
subsd %xmm1, %xmm0
movapd %xmm9, %xmm1
mulsd 0x193447(%rip), %xmm1   # 0x2b2060
addsd %xmm8, %xmm1
movapd %xmm9, %xmm3
mulsd 0x19343d(%rip), %xmm3   # 0x2b2068
addsd 0xb0(%rsp), %xmm3
mulsd %xmm1, %xmm3
addsd 0xc0(%rsp), %xmm3
unpcklpd %xmm2, %xmm3            # xmm3 = xmm3[0],xmm2[0]
movapd %xmm9, 0x10(%rsp)
movapd %xmm9, %xmm1
unpcklpd %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0]
addpd 0x193593(%rip), %xmm1   # 0x2b21f0
addpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movapd %xmm0, 0x40(%rsp)
movapd %xmm9, %xmm0
mulsd %xmm9, %xmm0
mulsd %xmm5, %xmm0
movapd %xmm10, %xmm1
mulsd %xmm6, %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, (%rsp)
movapd %xmm10, %xmm0
movsd 0x1933b8(%rip), %xmm1   # 0x2b2058
callq 0x1181c0
mulsd 0x1933db(%rip), %xmm0   # 0x2b2088
addsd (%rsp), %xmm0
movsd %xmm0, (%rsp)
movapd 0x10(%rsp), %xmm0
movsd 0x1933cb(%rip), %xmm1   # 0x2b2090
callq 0x1181c0
mulsd 0x1933c6(%rip), %xmm0   # 0x2b2098
addsd (%rsp), %xmm0
movsd %xmm0, (%rsp)
movapd 0x60(%rsp), %xmm0
movsd 0x1933b6(%rip), %xmm1   # 0x2b20a0
callq 0x1181c0
mulsd 0x1933b1(%rip), %xmm0   # 0x2b20a8
addsd (%rsp), %xmm0
movsd %xmm0, (%rsp)
movapd 0x10(%rsp), %xmm0
movsd 0x1933a1(%rip), %xmm1   # 0x2b20b0
callq 0x1181c0
mulsd 0x19339c(%rip), %xmm0   # 0x2b20b8
addsd (%rsp), %xmm0
addsd 0x40(%rsp), %xmm0
movsd %xmm0, (%rsp)
movaps 0x50(%rsp), %xmm0
callq 0x1181e0
movsd %xmm0, 0x20(%rsp)
movsd 0x19337c(%rip), %xmm0   # 0x2b20c0
divsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x40(%rsp)
callq 0x1184e0
addsd 0x20(%rsp), %xmm0
addsd (%rsp), %xmm0
movsd %xmm0, (%rsp)
movapd 0x50(%rsp), %xmm0
callq 0x1181e0
movsd 0x1932c8(%rip), %xmm1   # 0x2b2040
subsd %xmm0, %xmm1
movsd %xmm1, 0x20(%rsp)
movsd 0x40(%rsp), %xmm0
callq 0x1184e0
addsd 0x20(%rsp), %xmm0
addsd (%rsp), %xmm0
movsd %xmm0, (%rsp)
movapd 0x50(%rsp), %xmm0
callq 0x1181e0
movsd 0x193318(%rip), %xmm1   # 0x2b20c8
subsd %xmm0, %xmm1
movsd %xmm1, 0x20(%rsp)
movsd 0x40(%rsp), %xmm0
callq 0x1184e0
divsd 0x193303(%rip), %xmm0   # 0x2b20d0
addsd 0x20(%rsp), %xmm0
ucomisd 0x193335(%rip), %xmm0   # 0x2b2110
jb 0x11ede3
sqrtsd %xmm0, %xmm0
jmp 0x11ede8
callq 0x118270
movsd (%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
movsd 0x1932da(%rip), %xmm0   # 0x2b20d8
divsd 0x10(%rsp), %xmm0
callq 0x1181e0
movapd 0xd0(%rsp), %xmm1
divsd %xmm0, %xmm1
subsd 0xa0(%rsp), %xmm1
addsd (%rsp), %xmm1
movapd %xmm1, 0x20(%rsp)
movsd 0x78(%rsp), %xmm0
callq 0x1181e0
movapd 0x10(%rsp), %xmm1
subsd %xmm0, %xmm1
movapd %xmm1, %xmm0
callq 0x1184e0
movsd %xmm0, (%rsp)
movsd 0x19326b(%rip), %xmm1   # 0x2b20c0
movapd 0x30(%rsp), %xmm0
divsd %xmm1, %xmm0
callq 0x1184e0
movapd 0x60(%rsp), %xmm1
subsd %xmm0, %xmm1
movapd %xmm1, %xmm0
callq 0x1181e0
movsd (%rsp), %xmm1
subsd %xmm0, %xmm1
addsd 0x60(%rsp), %xmm1
subsd 0x10(%rsp), %xmm1
addsd 0x20(%rsp), %xmm1
movsd %xmm1, (%rsp)
movaps 0x90(%rsp), %xmm0
callq 0x1181e0
movsd %xmm0, 0x30(%rsp)
movapd 0x10(%rsp), %xmm0
mulsd 0x193238(%rip), %xmm0   # 0x2b20f0
mulsd 0x193200(%rip), %xmm0   # 0x2b20c0
callq 0x1184e0
movapd %xmm0, %xmm3
addsd 0x30(%rsp), %xmm3
movsd 0x193169(%rip), %xmm0   # 0x2b2040
minsd %xmm3, %xmm0
movsd 0x193215(%rip), %xmm2   # 0x2b20f8
cmpltsd %xmm2, %xmm3
movapd %xmm3, %xmm1
andnpd %xmm0, %xmm1
andpd %xmm2, %xmm3
orpd %xmm1, %xmm3
addsd (%rsp), %xmm3
movapd %xmm3, (%rsp)
movapd 0x50(%rsp), %xmm0
callq 0x1181e0
movsd 0x19312b(%rip), %xmm1   # 0x2b2040
subsd %xmm0, %xmm1
movsd %xmm1, 0x30(%rsp)
movsd 0x40(%rsp), %xmm0
callq 0x1184e0
divsd 0x193126(%rip), %xmm0   # 0x2b2058
addsd 0x30(%rsp), %xmm0
ucomisd 0x1931d0(%rip), %xmm0   # 0x2b2110
jb 0x11ef48
sqrtsd %xmm0, %xmm0
jmp 0x11ef4d
callq 0x118270
movsd 0x193123(%rip), %xmm5   # 0x2b2078
movsd 0x193123(%rip), %xmm6   # 0x2b2080
movsd 0x19319b(%rip), %xmm1   # 0x2b2100
minsd %xmm0, %xmm1
maxsd 0x193197(%rip), %xmm1   # 0x2b2108
movapd (%rsp), %xmm2
addsd %xmm1, %xmm2
movapd 0x60(%rsp), %xmm3
movapd %xmm3, %xmm0
mulsd %xmm5, %xmm0
movapd 0x10(%rsp), %xmm4
addsd %xmm4, %xmm0
movapd 0x100(%rsp), %xmm1
addsd %xmm6, %xmm1
cmpnlesd %xmm1, %xmm0
movapd 0xe0(%rsp), %xmm1
andpd %xmm0, %xmm1
andnpd 0xf0(%rsp), %xmm0
orpd %xmm1, %xmm0
addsd 0x70(%rsp), %xmm0
addsd %xmm2, %xmm0
addsd 0x193168(%rip), %xmm4   # 0x2b2138
movsd 0x193168(%rip), %xmm1   # 0x2b2140
ucomisd %xmm4, %xmm1
jae 0x11eb33
addsd 0x19314e(%rip), %xmm3   # 0x2b2138
movsd 0x19314e(%rip), %xmm1   # 0x2b2140
ucomisd %xmm3, %xmm1
jae 0x11ea71
addq $0x118, %rsp            # imm = 0x118
retq