int precess_1(double *R, double J, int direction, int prec_method) {
  double T, Z = 0, z = 0, TH = 0;
  int i;
  double x[3];
  double sinth, costh, sinZ, cosZ, sinz, cosz, A, B;
  if (J == 2451545.0)
    return (0);
  T = (J - 2451545.0) / 36525.0;
  if (prec_method == 1) {
    Z = ((0.017998 * T + 0.30188) * T + 2306.2181) * T *
        (3.14159265358979323846 / 180.0) / 3600;
    z = ((0.018203 * T + 1.09468) * T + 2306.2181) * T *
        (3.14159265358979323846 / 180.0) / 3600;
    TH = ((-0.041833 * T - 0.42665) * T + 2004.3109) * T *
         (3.14159265358979323846 / 180.0) / 3600;
  } else if (prec_method == 6) {
    Z = (((((-0.0000002 * T - 0.0000327) * T + 0.0179663) * T + 0.3019015) * T +
          2306.0809506) *
             T +
         2.5976176) *
        (3.14159265358979323846 / 180.0) / 3600;
    z = (((((-0.0000003 * T - 0.000047) * T + 0.0182237) * T + 1.0947790) * T +
          2306.0803226) *
             T -
         2.5976176) *
        (3.14159265358979323846 / 180.0) / 3600;
    TH = ((((-0.0000001 * T - 0.0000601) * T - 0.0418251) * T - 0.4269353) * T +
          2004.1917476) *
         T * (3.14159265358979323846 / 180.0) / 3600;
  } else if (prec_method == 8) {
    T = (J - 2451545.0) / 36525.0;
    Z = (((((-0.0000003173 * T - 0.000005971) * T + 0.01801828) * T +
           0.2988499) *
              T +
          2306.083227) *
             T +
         2.650545) *
        (3.14159265358979323846 / 180.0) / 3600;
    z = (((((-0.0000002904 * T - 0.000028596) * T + 0.01826837) * T +
           1.0927348) *
              T +
          2306.077181) *
             T -
         2.650545) *
        (3.14159265358979323846 / 180.0) / 3600;
    TH = ((((-0.00000011274 * T - 0.000007089) * T - 0.04182264) * T -
           0.4294934) *
              T +
          2004.191903) *
         T * (3.14159265358979323846 / 180.0) / 3600;
  } else if (prec_method == 7) {
    Z = ((((((-0.00000000013 * T - 0.0000003040) * T - 0.000005708) * T +
            0.01801752) *
               T +
           0.3023262) *
              T +
          2306.080472) *
             T +
         2.72767) *
        (3.14159265358979323846 / 180.0) / 3600;
    z = ((((((-0.00000000005 * T - 0.0000002486) * T - 0.000028276) * T +
            0.01826676) *
               T +
           1.0956768) *
              T +
          2306.076070) *
             T -
         2.72767) *
        (3.14159265358979323846 / 180.0) / 3600;
    TH = ((((((0.000000000009 * T + 0.00000000036) * T - 0.0000001127) * T -
             0.000007291) *
                T -
            0.04182364) *
               T -
           0.4266980) *
              T +
          2004.190936) *
         T * (3.14159265358979323846 / 180.0) / 3600;
  } else if (prec_method == 11) {
    double mills = 365242.198782;
    double t1 = (2451545.0 - 2396758.2035810) / mills;
    double t2 = (J - 2396758.2035810) / mills;
    double T = t2 - t1;
    double T2 = T * T;
    double T3 = T2 * T;
    double Z1 = 23035.5548 + 139.720 * t1 + 0.069 * t1 * t1;
    Z = Z1 * T + (30.242 - 0.269 * t1) * T2 + 17.996 * T3;
    z = Z1 * T + (109.478 - 0.387 * t1) * T2 + 18.324 * T3;
    TH = (20051.125 - 85.294 * t1 - 0.365 * t1 * t1) * T +
         (-42.647 - 0.365 * t1) * T2 - 41.802 * T3;
    Z *= ((3.14159265358979323846 / 180.0) / 3600.0);
    z *= ((3.14159265358979323846 / 180.0) / 3600.0);
    TH *= ((3.14159265358979323846 / 180.0) / 3600.0);
  } else {
    return 0;
  }
  sinth = sin(TH);
  costh = cos(TH);
  sinZ = sin(Z);
  cosZ = cos(Z);
  sinz = sin(z);
  cosz = cos(z);
  A = cosZ * costh;
  B = sinZ * costh;
  if (direction < 0) {
    x[0] = (A * cosz - sinZ * sinz) * R[0] - (B * cosz + cosZ * sinz) * R[1] -
           sinth * cosz * R[2];
    x[1] = (A * sinz + sinZ * cosz) * R[0] - (B * sinz - cosZ * cosz) * R[1] -
           sinth * sinz * R[2];
    x[2] = cosZ * sinth * R[0] - sinZ * sinth * R[1] + costh * R[2];
  } else {
    x[0] = (A * cosz - sinZ * sinz) * R[0] + (A * sinz + sinZ * cosz) * R[1] +
           cosZ * sinth * R[2];
    x[1] = -(B * cosz + cosZ * sinz) * R[0] - (B * sinz - cosZ * cosz) * R[1] -
           sinZ * sinth * R[2];
    x[2] = -sinth * cosz * R[0] - sinth * sinz * R[1] + costh * R[2];
  }
  for (i = 0; i < 3; i++)
    R[i] = x[i];
  return (0);
}


x86 assembly (clang, -O0):
<precess_1>:
push   %rbp
mov    %rsp,%rbp
sub    $0xe0,%rsp
mov    %rdi,-0x10(%rbp)
movsd  %xmm0,-0x18(%rbp)
mov    %esi,-0x1c(%rbp)
mov    %edx,-0x20(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x30(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x38(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  0xea1(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    117b <precess_1+0x5b>
jp     117b <precess_1+0x5b>
movl   $0x0,-0x4(%rbp)
jmp    1f77 <precess_1+0xe57>
movsd  -0x18(%rbp),%xmm0
movsd  0xe78(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0xe74(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
cmpl   $0x1,-0x20(%rbp)
jne    12a8 <precess_1+0x188>
movsd  -0x28(%rbp),%xmm0
movsd  0x10ec(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x10e8(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x10b3(%rip),%xmm1
addsd  %xmm1,%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  0xeca(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xeb6(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0x1088(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1084(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x105f(%rip),%xmm1
addsd  %xmm1,%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  0xe76(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe62(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0x101c(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1018(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xff3(%rip),%xmm1
addsd  %xmm1,%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  0xe22(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe0e(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    1abd <precess_1+0x99d>
cmpl   $0x6,-0x20(%rbp)
jne    1451 <precess_1+0x331>
movsd  -0x28(%rbp),%xmm0
movsd  0xfa1(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xf9d(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xf78(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xf5b(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xf3e(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xf21(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0xd85(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xd71(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0xee3(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xedf(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xeba(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe9d(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe80(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe63(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0xcf7(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xce3(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0xe25(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe21(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xdfc(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xddf(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xdc2(%rip),%xmm1
addsd  %xmm1,%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  0xc79(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc65(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    1ab8 <precess_1+0x998>
cmpl   $0x8,-0x20(%rbp)
jne    161c <precess_1+0x4fc>
movsd  -0x18(%rbp),%xmm0
movsd  0xb98(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0xb94(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0xd4e(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xd4a(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xd25(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xd08(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xceb(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xcce(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0xbba(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xba6(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0xc90(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc8c(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc67(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc4a(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc2d(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc10(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0xb2c(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xb18(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0xbd2(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xbce(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xba9(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xb8c(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xb6f(%rip),%xmm1
addsd  %xmm1,%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  0xaae(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xa9a(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    1ab3 <precess_1+0x993>
cmpl   $0x7,-0x20(%rbp)
jne    1819 <precess_1+0x6f9>
movsd  -0x28(%rbp),%xmm0
movsd  0xb1d(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xb19(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xaf4(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xad7(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xaba(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xa9d(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xa80(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0x9fc(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x9e8(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0xa42(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xa3e(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xa19(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x9fc(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x9df(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x9c2(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x9a5(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0x959(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x945(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0x967(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x963(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x93e(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x921(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x904(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x8e7(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x8ca(%rip),%xmm1
addsd  %xmm1,%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  0x8b1(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x89d(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    1aae <precess_1+0x98e>
cmpl   $0xb,-0x20(%rbp)
jne    1a9d <precess_1+0x97d>
movsd  0x875(%rip),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  0x85d(%rip),%xmm0
divsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  0x838(%rip),%xmm1
subsd  %xmm1,%xmm0
divsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
subsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
mulsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm1
ff
movsd  0x7bc(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0x7b8(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  0x79c(%rip),%xmm0
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xd8(%rbp),%xmm1
ff
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  0x74c(%rip),%xmm3
mulsd  %xmm3,%xmm0
movsd  0x748(%rip),%xmm3
addsd  %xmm3,%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xd0(%rbp),%xmm0
ff
movsd  0x714(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0xd8(%rbp),%xmm1
ff
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  0x6d7(%rip),%xmm3
mulsd  %xmm3,%xmm0
movsd  0x6d3(%rip),%xmm3
addsd  %xmm3,%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xd0(%rbp),%xmm0
ff
movsd  0x69f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0xb0(%rbp),%xmm0
ff
movsd  0x672(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x66e(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0x652(%rip),%xmm1
mulsd  -0xb0(%rbp),%xmm1
ff
movsd  -0xb0(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  0x5fb(%rip),%xmm3
mulsd  %xmm3,%xmm0
movsd  0x5f7(%rip),%xmm3
addsd  %xmm3,%xmm0
mulsd  -0xc8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xd0(%rbp),%xmm0
ff
movsd  0x5c3(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  0x5a6(%rip),%xmm0
mulsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  0x594(%rip),%xmm0
mulsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0x582(%rip),%xmm0
mulsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    1aa9 <precess_1+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1f77 <precess_1+0xe57>
jmp    1aae <precess_1+0x98e>
jmp    1ab3 <precess_1+0x993>
jmp    1ab8 <precess_1+0x998>
jmp    1abd <precess_1+0x99d>
movsd  -0x40(%rbp),%xmm0
call   1030 <sin@plt>
movsd  %xmm0,-0x68(%rbp)
movsd  -0x40(%rbp),%xmm0
call   1040 <cos@plt>
movsd  %xmm0,-0x70(%rbp)
movsd  -0x30(%rbp),%xmm0
call   1030 <sin@plt>
movsd  %xmm0,-0x78(%rbp)
movsd  -0x30(%rbp),%xmm0
call   1040 <cos@plt>
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
call   1030 <sin@plt>
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
call   1040 <cos@plt>
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
cmpl   $0x0,-0x1c(%rbp)
jge    1d45 <precess_1+0xc25>
movsd  -0x98(%rbp),%xmm1
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm4
ff
movsd  -0x80(%rbp),%xmm3
mulsd  -0x88(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
mov    -0x10(%rbp),%rax
mulsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x68(%rbp),%xmm0
mulsd  -0x90(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x98(%rbp),%xmm1
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0x90(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm4
ff
movsd  -0x80(%rbp),%xmm3
mulsd  -0x90(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
mov    -0x10(%rbp),%rax
mulsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x68(%rbp),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x80(%rbp),%xmm1
mulsd  -0x68(%rbp),%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movsd  -0x78(%rbp),%xmm0
mulsd  -0x68(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mulsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    1f3a <precess_1+0xe1a>
movsd  -0x98(%rbp),%xmm1
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm4
ff
movsd  -0x78(%rbp),%xmm3
mulsd  -0x90(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
mov    -0x10(%rbp),%rax
mulsd  0x8(%rax),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x80(%rbp),%xmm0
mulsd  -0x68(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm4
ff
movsd  -0x80(%rbp),%xmm3
mulsd  -0x90(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
mov    -0x10(%rbp),%rax
mulsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x78(%rbp),%xmm0
mulsd  -0x68(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movsd  -0x68(%rbp),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
mov    -0x10(%rbp),%rax
mulsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movl   $0x0,-0x44(%rbp)
cmpl   $0x3,-0x44(%rbp)
jge    1f70 <precess_1+0xe50>
movslq -0x44(%rbp),%rax
movsd  -0x60(%rbp,%rax,8),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    1f41 <precess_1+0xe21>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0xe0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<precess_1>:
push   %rbp
push   %rbx
sub    $0x68,%rsp
ucomisd 0xed2(%rip),%xmm0
jne    1136 <precess_1+0x16>
jnp    177c <precess_1+0x65c>
add    $0xffffffff,%edx
cmp    $0xa,%edx
ja     177c <precess_1+0x65c>
mov    %esi,%ebp
mov    %rdi,%rbx
movsd  0xeb9(%rip),%xmm1
addsd  %xmm0,%xmm1
divsd  0xeb5(%rip),%xmm1
lea    0x116e(%rip),%rax
movslq (%rax,%rdx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
movsd  0x10a5(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0x10a1(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0x109d(%rip),%xmm0
mulsd  %xmm1,%xmm0
mulsd  0xef1(%rip),%xmm0
divsd  0xef1(%rip),%xmm0
movsd  %xmm0,(%rsp)
unpcklpd %xmm1,%xmm1
movapd 0x10e0(%rip),%xmm4
mulpd  %xmm1,%xmm4
addpd  0x10e4(%rip),%xmm4
mulpd  %xmm1,%xmm4
addpd  0x10e8(%rip),%xmm4
mulpd  %xmm1,%xmm4
jmp    1492 <precess_1+0x372>
movsd  0xfb7(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xfb3(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xfaf(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xfab(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xfa7(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xfa3(%rip),%xmm0
mulsd  0xe6b(%rip),%xmm0
divsd  0xe6b(%rip),%xmm0
movsd  %xmm0,(%rsp)
movsd  0xf8e(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xf8a(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xf86(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xf82(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xf7e(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xf7a(%rip),%xmm0
movsd  0xf7a(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xf76(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xf72(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xf6e(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xf6a(%rip),%xmm4
jmp    148a <precess_1+0x36a>
movsd  0xd9d(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd99(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd95(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd91(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd8d(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd89(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd85(%rip),%xmm0
mulsd  0xd85(%rip),%xmm0
divsd  0xd85(%rip),%xmm0
movsd  %xmm0,(%rsp)
movsd  0xd80(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd7c(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd78(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd74(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd70(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd6c(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd68(%rip),%xmm0
movsd  0xd68(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd64(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd60(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd5c(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd58(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd54(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd50(%rip),%xmm4
jmp    148a <precess_1+0x36a>
movsd  0xd4b(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd47(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd43(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd3f(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd3b(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd37(%rip),%xmm0
mulsd  0xc87(%rip),%xmm0
divsd  0xc87(%rip),%xmm0
movsd  %xmm0,(%rsp)
movsd  0xd22(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd1e(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd1a(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd16(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd12(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xd0e(%rip),%xmm0
movsd  0xd0e(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd0a(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd06(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xd02(%rip),%xmm4
mulsd  %xmm1,%xmm4
addsd  0xcfe(%rip),%xmm4
mulsd  %xmm1,%xmm4
unpcklpd %xmm0,%xmm4
mulpd  0xdd6(%rip),%xmm4
divpd  0xdde(%rip),%xmm4
jmp    153c <precess_1+0x41c>
addsd  0xb69(%rip),%xmm0
divsd  0xb69(%rip),%xmm0
addsd  0xb69(%rip),%xmm0
movapd %xmm0,%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm0,%xmm4
mulsd  %xmm1,%xmm4
movsd  0xb59(%rip),%xmm2
mulsd  %xmm1,%xmm2
movsd  0xb55(%rip),%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm2,%xmm3
movsd  0xb4d(%rip),%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
unpcklpd %xmm1,%xmm1
mulpd  0xd29(%rip),%xmm1
unpcklpd %xmm0,%xmm0
mulpd  0xd2d(%rip),%xmm0
addpd  %xmm1,%xmm0
unpcklpd %xmm4,%xmm4
mulpd  0xd2d(%rip),%xmm4
addpd  %xmm0,%xmm4
mulsd  0xb19(%rip),%xmm2
movsd  %xmm2,(%rsp)
mulpd  0xd24(%rip),%xmm4
movapd %xmm4,0x10(%rsp)
movapd %xmm4,%xmm0
call   1030 <sin@plt>
movapd %xmm0,0x30(%rsp)
movaps 0x10(%rsp),%xmm0
call   1040 <cos@plt>
movsd  %xmm0,0x28(%rsp)
movsd  (%rsp),%xmm0
call   1030 <sin@plt>
movaps %xmm0,0x50(%rsp)
movsd  (%rsp),%xmm0
call   1040 <cos@plt>
movaps %xmm0,(%rsp)
movaps 0x10(%rsp),%xmm0
movhlps %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
call   1030 <sin@plt>
movaps %xmm0,0x40(%rsp)
movapd 0x10(%rsp),%xmm0
call   1040 <cos@plt>
movapd 0x50(%rsp),%xmm1
movapd 0x40(%rsp),%xmm14
movapd (%rsp),%xmm5
movsd  0x28(%rsp),%xmm12
movapd %xmm12,%xmm3
mulsd  %xmm5,%xmm3
movapd %xmm12,%xmm4
mulsd  %xmm1,%xmm4
movapd 0xcec(%rip),%xmm10
xorpd  %xmm1,%xmm10
movapd %xmm14,%xmm2
mulsd  %xmm1,%xmm2
movapd %xmm3,%xmm13
mulsd  %xmm0,%xmm13
subsd  %xmm2,%xmm13
movsd  (%rbx),%xmm8
test   %ebp,%ebp
js     16c8 <precess_1+0x5a8>
mulsd  %xmm0,%xmm1
mulsd  %xmm14,%xmm3
addsd  %xmm1,%xmm3
movsd  0x8(%rbx),%xmm9
movsd  0x10(%rbx),%xmm6
movapd %xmm0,%xmm1
mulsd  %xmm5,%xmm1
movapd %xmm5,%xmm7
mulsd  %xmm14,%xmm7
movapd %xmm4,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm7,%xmm2
movapd 0xc85(%rip),%xmm7
xorpd  %xmm7,%xmm2
mulsd  %xmm14,%xmm4
subsd  %xmm1,%xmm4
xorpd  %xmm7,%xmm4
unpcklpd %xmm9,%xmm3
movapd 0x30(%rsp),%xmm1
movapd %xmm1,%xmm11
xorpd  %xmm1,%xmm7
mulsd  %xmm14,%xmm1
mulsd  %xmm9,%xmm1
unpcklpd %xmm4,%xmm9
mulpd  %xmm3,%xmm9
unpcklpd %xmm2,%xmm13
movapd %xmm8,%xmm2
unpcklpd %xmm8,%xmm2
mulpd  %xmm13,%xmm2
addpd  %xmm9,%xmm2
unpcklpd %xmm11,%xmm11
unpcklpd %xmm10,%xmm5
mulpd  %xmm11,%xmm5
mulsd  %xmm6,%xmm12
unpcklpd %xmm6,%xmm6
mulpd  %xmm5,%xmm6
addpd  %xmm2,%xmm6
mulsd  %xmm0,%xmm7
mulsd  %xmm8,%xmm7
subsd  %xmm1,%xmm7
addsd  %xmm12,%xmm7
movapd %xmm7,%xmm5
jmp    1773 <precess_1+0x653>
movsd  0x8(%rbx),%xmm9
movsd  0x10(%rbx),%xmm7
mulsd  %xmm0,%xmm1
mulsd  %xmm14,%xmm3
addsd  %xmm1,%xmm3
movapd 0xbd8(%rip),%xmm6
xorpd  %xmm5,%xmm6
movapd %xmm5,%xmm2
unpcklpd %xmm0,%xmm2
unpcklpd %xmm14,%xmm0
unpcklpd %xmm6,%xmm14
mulpd  %xmm2,%xmm14
unpcklpd %xmm4,%xmm4
mulpd  %xmm0,%xmm4
addpd  %xmm14,%xmm4
movapd 0x30(%rsp),%xmm1
mulsd  %xmm1,%xmm10
mulsd  %xmm9,%xmm10
unpcklpd %xmm9,%xmm9
mulpd  %xmm4,%xmm9
unpcklpd %xmm3,%xmm13
movapd %xmm8,%xmm6
unpcklpd %xmm8,%xmm6
mulpd  %xmm13,%xmm6
subpd  %xmm9,%xmm6
movapd %xmm1,%xmm2
unpcklpd %xmm1,%xmm2
mulpd  %xmm0,%xmm2
mulsd  %xmm7,%xmm12
unpcklpd %xmm7,%xmm7
mulpd  %xmm2,%xmm7
subpd  %xmm7,%xmm6
mulsd  %xmm1,%xmm5
mulsd  %xmm8,%xmm5
addsd  %xmm10,%xmm5
addsd  %xmm12,%xmm5
movupd %xmm6,(%rbx)
movsd  %xmm5,0x10(%rbx)
xor    %eax,%eax
add    $0x68,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
define i32 @precess_1(double* %0, double %1, i32 %2, i32 %3) {
%5 = alloca i32
%6 = alloca double*
%7 = alloca double
%8 = alloca i32
%9 = alloca i32
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca i32
%15 = alloca [3 x double]
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca double
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca double
store double* %0, double** %6
store double %1, double* %7
store i32 %2, i32* %8
store i32 %3, i32* %9
store double 0.000000e+00, double* %11
store double 0.000000e+00, double* %12
store double 0.000000e+00, double* %13
%31 = load double, double* %7
%32 = fcmp oeq double %31, 0x4142B42C80000000
br i1 %32, label %33, label %34
33: ; preds = %4
store i32 0, i32* %5
br label %471
34: ; preds = %4
%35 = load double, double* %7
%36 = fsub double %35, 0x4142B42C80000000
%37 = fdiv double %36, 3.652500e+04
store double %37, double* %10
%38 = load i32, i32* %9
%39 = icmp eq i32 %38, 1
br i1 %39, label %40, label %65
40: ; preds = %34
%41 = load double, double* %10
%42 = call double @llvm.fmuladd.f64(double 1.799800e-02, double %41, double 3.018800e-01)
%43 = load double, double* %10
%44 = call double @llvm.fmuladd.f64(double %42, double %43, double 0x40A2046FAACD9E84)
%45 = load double, double* %10
%46 = fmul double %44, %45
%47 = fmul double %46, 0x3F91DF46A2529D39
%48 = fdiv double %47, 3.600000e+03
store double %48, double* %11
%49 = load double, double* %10
%50 = call double @llvm.fmuladd.f64(double 1.820300e-02, double %49, double 1.094680e+00)
%51 = load double, double* %10
%52 = call double @llvm.fmuladd.f64(double %50, double %51, double 0x40A2046FAACD9E84)
%53 = load double, double* %10
%54 = fmul double %52, %53
%55 = fmul double %54, 0x3F91DF46A2529D39
%56 = fdiv double %55, 3.600000e+03
store double %56, double* %12
%57 = load double, double* %10
%58 = call double @llvm.fmuladd.f64(double -4.183300e-02, double %57, double -4.266500e-01)
%59 = load double, double* %10
%60 = call double @llvm.fmuladd.f64(double %58, double %59, double 0x409F513E5C91D14E)
%61 = load double, double* %10
%62 = fmul double %60, %61
%63 = fmul double %62, 0x3F91DF46A2529D39
%64 = fdiv double %63, 3.600000e+03
store double %64, double* %13
br label %265
65: ; preds = %34
%66 = load i32, i32* %9
%67 = icmp eq i32 %66, 6
br i1 %67, label %68, label %105
68: ; preds = %65
%69 = load double, double* %10
%70 = call double @llvm.fmuladd.f64(double -2.000000e-07, double %69, double -3.270000e-05)
%71 = load double, double* %10
%72 = call double @llvm.fmuladd.f64(double %70, double %71, double 1.796630e-02)
%73 = load double, double* %10
%74 = call double @llvm.fmuladd.f64(double %72, double %73, double 0x3FD3525AAB474107)
%75 = load double, double* %10
%76 = call double @llvm.fmuladd.f64(double %74, double %75, double 0x40A20429725B672F)
%77 = load double, double* %10
%78 = call double @llvm.fmuladd.f64(double %76, double %77, double 0x4004C7EBBC7C1CB1)
%79 = fmul double %78, 0x3F91DF46A2529D39
%80 = fdiv double %79, 3.600000e+03
store double %80, double* %11
%81 = load double, double* %10
%82 = call double @llvm.fmuladd.f64(double -3.000000e-07, double %81, double -4.700000e-05)
%83 = load double, double* %10
%84 = call double @llvm.fmuladd.f64(double %82, double %83, double 1.822370e-02)
%85 = load double, double* %10
%86 = call double @llvm.fmuladd.f64(double %84, double %85, double 0x3FF18436FC158FB4)
%87 = load double, double* %10
%88 = call double @llvm.fmuladd.f64(double %86, double %87, double 0x40A20429200B3842)
%89 = load double, double* %10
%90 = call double @llvm.fmuladd.f64(double %88, double %89, double 0xC004C7EBBC7C1CB1)
%91 = fmul double %90, 0x3F91DF46A2529D39
%92 = fdiv double %91, 3.600000e+03
store double %92, double* %12
%93 = load double, double* %10
%94 = call double @llvm.fmuladd.f64(double 0xBE7AD7F29ABCAF48, double %93, double -6.010000e-05)
%95 = load double, double* %10
%96 = call double @llvm.fmuladd.f64(double %94, double %95, double -4.182510e-02)
%97 = load double, double* %10
%98 = call double @llvm.fmuladd.f64(double %96, double %97, double 0xBFDB52E86FC0823C)
%99 = load double, double* %10
%100 = call double @llvm.fmuladd.f64(double %98, double %99, double 0x409F50C4597B9C59)
%101 = load double, double* %10
%102 = fmul double %100, %101
%103 = fmul double %102, 0x3F91DF46A2529D39
%104 = fdiv double %103, 3.600000e+03
store double %104, double* %13
br label %264
105: ; preds = %65
%106 = load i32, i32* %9
%107 = icmp eq i32 %106, 8
br i1 %107, label %108, label %148
108: ; preds = %105
%109 = load double, double* %7
%110 = fsub double %109, 0x4142B42C80000000
%111 = fdiv double %110, 3.652500e+04
store double %111, double* %10
%112 = load double, double* %10
%113 = call double @llvm.fmuladd.f64(double -3.173000e-07, double %112, double -5.971000e-06)
%114 = load double, double* %10
%115 = call double @llvm.fmuladd.f64(double %113, double %114, double 0x3F9273624D521851)
%116 = load double, double* %10
%117 = call double @llvm.fmuladd.f64(double %115, double %116, double 0x3FD3205B54BA6C78)
%118 = load double, double* %10
%119 = call double @llvm.fmuladd.f64(double %117, double %118, double 0x40A2042A9CBAB64A)
%120 = load double, double* %10
%121 = call double @llvm.fmuladd.f64(double %119, double %120, double 0x40053450EFDC9C4E)
%122 = fmul double %121, 0x3F91DF46A2529D39
%123 = fdiv double %122, 3.600000e+03
store double %123, double* %11
%124 = load double, double* %10
%125 = call double @llvm.fmuladd.f64(double -2.904000e-07, double %124, double -2.859600e-05)
%126 = load double, double* %10
%127 = call double @llvm.fmuladd.f64(double %125, double %126, double 0x3F92B4F18ECE0E96)
%128 = load double, double* %10
%129 = call double @llvm.fmuladd.f64(double %127, double %128, double 0x3FF17BD77C5337B5)
%130 = load double, double* %10
%131 = call double @llvm.fmuladd.f64(double %129, double %130, double 0x40A2042784449DBF)
%132 = load double, double* %10
%133 = call double @llvm.fmuladd.f64(double %131, double %132, double 0xC0053450EFDC9C4E)
%134 = fmul double %133, 0x3F91DF46A2529D39
%135 = fdiv double %134, 3.600000e+03
store double %135, double* %12
%136 = load double, double* %10
%137 = call double @llvm.fmuladd.f64(double -1.127400e-07, double %136, double -7.089000e-06)
%138 = load double, double* %10
%139 = call double @llvm.fmuladd.f64(double %137, double %138, double 0xBFA569C6EE10944D)
%140 = load double, double* %10
%141 = call double @llvm.fmuladd.f64(double %139, double %140, double 0xBFDB7CD1E2B6431E)
%142 = load double, double* %10
%143 = call double @llvm.fmuladd.f64(double %141, double %142, double 0x409F50C482385404)
%144 = load double, double* %10
%145 = fmul double %143, %144
%146 = fmul double %145, 0x3F91DF46A2529D39
%147 = fdiv double %146, 3.600000e+03
store double %147, double* %13
br label %263
148: ; preds = %105
%149 = load i32, i32* %9
%150 = icmp eq i32 %149, 7
br i1 %150, label %151, label %196
151: ; preds = %148
%152 = load double, double* %10
%153 = call double @llvm.fmuladd.f64(double -1.300000e-10, double %152, double -3.040000e-07)
%154 = load double, double* %10
%155 = call double @llvm.fmuladd.f64(double %153, double %154, double -5.708000e-06)
%156 = load double, double* %10
%157 = call double @llvm.fmuladd.f64(double %155, double %156, double 0x3F92732F4C9EBF1D)
%158 = load double, double* %10
%159 = call double @llvm.fmuladd.f64(double %157, double %158, double 0x3FD3594FFD6E5548)
%160 = load double, double* %10
%161 = call double @llvm.fmuladd.f64(double %159, double %160, double 0x40A2042933A0407D)
%162 = load double, double* %10
%163 = call double @llvm.fmuladd.f64(double %161, double %162, double 2.727670e+00)
%164 = fmul double %163, 0x3F91DF46A2529D39
%165 = fdiv double %164, 3.600000e+03
store double %165, double* %11
%166 = load double, double* %10
%167 = call double @llvm.fmuladd.f64(double -5.000000e-11, double %166, double -2.486000e-07)
%168 = load double, double* %10
%169 = call double @llvm.fmuladd.f64(double %167, double %168, double -2.827600e-05)
%170 = load double, double* %10
%171 = call double @llvm.fmuladd.f64(double %169, double %170, double 0x3F92B48583372C92)
%172 = load double, double* %10
%173 = call double @llvm.fmuladd.f64(double %171, double %172, double 0x3FF187E4656FC661)
%174 = load double, double* %10
%175 = call double @llvm.fmuladd.f64(double %173, double %174, double 0x40A20426F2A5A46A)
%176 = load double, double* %10
%177 = call double @llvm.fmuladd.f64(double %175, double %176, double -2.727670e+00)
%178 = fmul double %177, 0x3F91DF46A2529D39
%179 = fdiv double %178, 3.600000e+03
store double %179, double* %12
%180 = load double, double* %10
%181 = call double @llvm.fmuladd.f64(double 9.000000e-12, double %180, double 3.600000e-10)
%182 = load double, double* %10
%183 = call double @llvm.fmuladd.f64(double %181, double %182, double -1.127000e-07)
%184 = load double, double* %10
%185 = call double @llvm.fmuladd.f64(double %183, double %184, double -7.291000e-06)
%186 = load double, double* %10
%187 = call double @llvm.fmuladd.f64(double %185, double %186, double 0xBFA569E87BFFD5B9)
%188 = load double, double* %10
%189 = call double @llvm.fmuladd.f64(double %187, double %188, double -4.266980e-01)
%190 = load double, double* %10
%191 = call double @llvm.fmuladd.f64(double %189, double %190, double 0x409F50C384BA0E84)
%192 = load double, double* %10
%193 = fmul double %191, %192
%194 = fmul double %193, 0x3F91DF46A2529D39
%195 = fdiv double %194, 3.600000e+03
store double %195, double* %13
br label %262
196: ; preds = %148
%197 = load i32, i32* %9
%198 = icmp eq i32 %197, 11
br i1 %198, label %199, label %260
199: ; preds = %196
store double 0x41164AE8CB8D8234, double* %24
%200 = load double, double* %24
%201 = fdiv double 0x40EAC0597C43B2C0, %200
store double %201, double* %25
%202 = load double, double* %7
%203 = fsub double %202, 0x4142492B1A0EF135
%204 = load double, double* %24
%205 = fdiv double %203, %204
store double %205, double* %26
%206 = load double, double* %26
%207 = load double, double* %25
%208 = fsub double %206, %207
store double %208, double* %27
%209 = load double, double* %27
%210 = load double, double* %27
%211 = fmul double %209, %210
store double %211, double* %28
%212 = load double, double* %28
%213 = load double, double* %27
%214 = fmul double %212, %213
store double %214, double* %29
%215 = load double, double* %25
%216 = call double @llvm.fmuladd.f64(double 1.397200e+02, double %215, double 0x40D67EE381D7DBF5)
%217 = load double, double* %25
%218 = fmul double 6.900000e-02, %217
%219 = load double, double* %25
%220 = call double @llvm.fmuladd.f64(double %218, double %219, double %216)
store double %220, double* %30
%221 = load double, double* %30
%222 = load double, double* %27
%223 = load double, double* %25
%224 = call double @llvm.fmuladd.f64(double -2.690000e-01, double %223, double 3.024200e+01)
%225 = load double, double* %28
%226 = fmul double %224, %225
%227 = call double @llvm.fmuladd.f64(double %221, double %222, double %226)
%228 = load double, double* %29
%229 = call double @llvm.fmuladd.f64(double 1.799600e+01, double %228, double %227)
store double %229, double* %11
%230 = load double, double* %30
%231 = load double, double* %27
%232 = load double, double* %25
%233 = call double @llvm.fmuladd.f64(double -3.870000e-01, double %232, double 1.094780e+02)
%234 = load double, double* %28
%235 = fmul double %233, %234
%236 = call double @llvm.fmuladd.f64(double %230, double %231, double %235)
%237 = load double, double* %29
%238 = call double @llvm.fmuladd.f64(double 1.832400e+01, double %237, double %236)
store double %238, double* %12
%239 = load double, double* %25
%240 = call double @llvm.fmuladd.f64(double 0xC05552D0E5604189, double %239, double 0x40D394C800000000)
%241 = load double, double* %25
%242 = fmul double 3.650000e-01, %241
%243 = load double, double* %25
%244 = fneg double %242
%245 = call double @llvm.fmuladd.f64(double %244, double %243, double %240)
%246 = load double, double* %27
%247 = load double, double* %25
%248 = call double @llvm.fmuladd.f64(double -3.650000e-01, double %247, double -4.264700e+01)
%249 = load double, double* %28
%250 = fmul double %248, %249
%251 = call double @llvm.fmuladd.f64(double %245, double %246, double %250)
%252 = load double, double* %29
%253 = call double @llvm.fmuladd.f64(double -4.180200e+01, double %252, double %251)
store double %253, double* %13
%254 = load double, double* %11
%255 = fmul double %254, 0x3ED455A5B2FF8F9D
store double %255, double* %11
%256 = load double, double* %12
%257 = fmul double %256, 0x3ED455A5B2FF8F9D
store double %257, double* %12
%258 = load double, double* %13
%259 = fmul double %258, 0x3ED455A5B2FF8F9D
store double %259, double* %13
br label %261
260: ; preds = %196
store i32 0, i32* %5
br label %471
261: ; preds = %199
br label %262
262: ; preds = %261, %151
br label %263
263: ; preds = %262, %108
br label %264
264: ; preds = %263, %68
br label %265
265: ; preds = %264, %40
%266 = load double, double* %13
%267 = call double @sin(double %266)
store double %267, double* %16
%268 = load double, double* %13
%269 = call double @cos(double %268)
store double %269, double* %17
%270 = load double, double* %11
%271 = call double @sin(double %270)
store double %271, double* %18
%272 = load double, double* %11
%273 = call double @cos(double %272)
store double %273, double* %19
%274 = load double, double* %12
%275 = call double @sin(double %274)
store double %275, double* %20
%276 = load double, double* %12
%277 = call double @cos(double %276)
store double %277, double* %21
%278 = load double, double* %19
%279 = load double, double* %17
%280 = fmul double %278, %279
store double %280, double* %22
%281 = load double, double* %18
%282 = load double, double* %17
%283 = fmul double %281, %282
store double %283, double* %23
%284 = load i32, i32* %8
%285 = icmp slt i32 %284, 0
br i1 %285, label %286, label %370
286: ; preds = %265
%287 = load double, double* %22
%288 = load double, double* %21
%289 = load double, double* %18
%290 = load double, double* %20
%291 = fmul double %289, %290
%292 = fneg double %291
%293 = call double @llvm.fmuladd.f64(double %287, double %288, double %292)
%294 = load double*, double** %6
%295 = getelementptr inbounds double, double* %294, i64 0
%296 = load double, double* %295
%297 = load double, double* %23
%298 = load double, double* %21
%299 = load double, double* %19
%300 = load double, double* %20
%301 = fmul double %299, %300
%302 = call double @llvm.fmuladd.f64(double %297, double %298, double %301)
%303 = load double*, double** %6
%304 = getelementptr inbounds double, double* %303, i64 1
%305 = load double, double* %304
%306 = fmul double %302, %305
%307 = fneg double %306
%308 = call double @llvm.fmuladd.f64(double %293, double %296, double %307)
%309 = load double, double* %16
%310 = load double, double* %21
%311 = fmul double %309, %310
%312 = load double*, double** %6
%313 = getelementptr inbounds double, double* %312, i64 2
%314 = load double, double* %313
%315 = fneg double %311
%316 = call double @llvm.fmuladd.f64(double %315, double %314, double %308)
%317 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 0
store double %316, double* %317
%318 = load double, double* %22
%319 = load double, double* %20
%320 = load double, double* %18
%321 = load double, double* %21
%322 = fmul double %320, %321
%323 = call double @llvm.fmuladd.f64(double %318, double %319, double %322)
%324 = load double*, double** %6
%325 = getelementptr inbounds double, double* %324, i64 0
%326 = load double, double* %325
%327 = load double, double* %23
%328 = load double, double* %20
%329 = load double, double* %19
%330 = load double, double* %21
%331 = fmul double %329, %330
%332 = fneg double %331
%333 = call double @llvm.fmuladd.f64(double %327, double %328, double %332)
%334 = load double*, double** %6
%335 = getelementptr inbounds double, double* %334, i64 1
%336 = load double, double* %335
%337 = fmul double %333, %336
%338 = fneg double %337
%339 = call double @llvm.fmuladd.f64(double %323, double %326, double %338)
%340 = load double, double* %16
%341 = load double, double* %20
%342 = fmul double %340, %341
%343 = load double*, double** %6
%344 = getelementptr inbounds double, double* %343, i64 2
%345 = load double, double* %344
%346 = fneg double %342
%347 = call double @llvm.fmuladd.f64(double %346, double %345, double %339)
%348 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 1
store double %347, double* %348
%349 = load double, double* %19
%350 = load double, double* %16
%351 = fmul double %349, %350
%352 = load double*, double** %6
%353 = getelementptr inbounds double, double* %352, i64 0
%354 = load double, double* %353
%355 = load double, double* %18
%356 = load double, double* %16
%357 = fmul double %355, %356
%358 = load double*, double** %6
%359 = getelementptr inbounds double, double* %358, i64 1
%360 = load double, double* %359
%361 = fmul double %357, %360
%362 = fneg double %361
%363 = call double @llvm.fmuladd.f64(double %351, double %354, double %362)
%364 = load double, double* %17
%365 = load double*, double** %6
%366 = getelementptr inbounds double, double* %365, i64 2
%367 = load double, double* %366
%368 = call double @llvm.fmuladd.f64(double %364, double %367, double %363)
%369 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 2
store double %368, double* %369
br label %454
370: ; preds = %265
%371 = load double, double* %22
%372 = load double, double* %21
%373 = load double, double* %18
%374 = load double, double* %20
%375 = fmul double %373, %374
%376 = fneg double %375
%377 = call double @llvm.fmuladd.f64(double %371, double %372, double %376)
%378 = load double*, double** %6
%379 = getelementptr inbounds double, double* %378, i64 0
%380 = load double, double* %379
%381 = load double, double* %22
%382 = load double, double* %20
%383 = load double, double* %18
%384 = load double, double* %21
%385 = fmul double %383, %384
%386 = call double @llvm.fmuladd.f64(double %381, double %382, double %385)
%387 = load double*, double** %6
%388 = getelementptr inbounds double, double* %387, i64 1
%389 = load double, double* %388
%390 = fmul double %386, %389
%391 = call double @llvm.fmuladd.f64(double %377, double %380, double %390)
%392 = load double, double* %19
%393 = load double, double* %16
%394 = fmul double %392, %393
%395 = load double*, double** %6
%396 = getelementptr inbounds double, double* %395, i64 2
%397 = load double, double* %396
%398 = call double @llvm.fmuladd.f64(double %394, double %397, double %391)
%399 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 0
store double %398, double* %399
%400 = load double, double* %23
%401 = load double, double* %21
%402 = load double, double* %19
%403 = load double, double* %20
%404 = fmul double %402, %403
%405 = call double @llvm.fmuladd.f64(double %400, double %401, double %404)
%406 = fneg double %405
%407 = load double*, double** %6
%408 = getelementptr inbounds double, double* %407, i64 0
%409 = load double, double* %408
%410 = load double, double* %23
%411 = load double, double* %20
%412 = load double, double* %19
%413 = load double, double* %21
%414 = fmul double %412, %413
%415 = fneg double %414
%416 = call double @llvm.fmuladd.f64(double %410, double %411, double %415)
%417 = load double*, double** %6
%418 = getelementptr inbounds double, double* %417, i64 1
%419 = load double, double* %418
%420 = fmul double %416, %419
%421 = fneg double %420
%422 = call double @llvm.fmuladd.f64(double %406, double %409, double %421)
%423 = load double, double* %18
%424 = load double, double* %16
%425 = fmul double %423, %424
%426 = load double*, double** %6
%427 = getelementptr inbounds double, double* %426, i64 2
%428 = load double, double* %427
%429 = fneg double %425
%430 = call double @llvm.fmuladd.f64(double %429, double %428, double %422)
%431 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 1
store double %430, double* %431
%432 = load double, double* %16
%433 = fneg double %432
%434 = load double, double* %21
%435 = fmul double %433, %434
%436 = load double*, double** %6
%437 = getelementptr inbounds double, double* %436, i64 0
%438 = load double, double* %437
%439 = load double, double* %16
%440 = load double, double* %20
%441 = fmul double %439, %440
%442 = load double*, double** %6
%443 = getelementptr inbounds double, double* %442, i64 1
%444 = load double, double* %443
%445 = fmul double %441, %444
%446 = fneg double %445
%447 = call double @llvm.fmuladd.f64(double %435, double %438, double %446)
%448 = load double, double* %17
%449 = load double*, double** %6
%450 = getelementptr inbounds double, double* %449, i64 2
%451 = load double, double* %450
%452 = call double @llvm.fmuladd.f64(double %448, double %451, double %447)
%453 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 2
store double %452, double* %453
br label %454
454: ; preds = %370, %286
store i32 0, i32* %14
br label %455
455: ; preds = %467, %454
%456 = load i32, i32* %14
%457 = icmp slt i32 %456, 3
br i1 %457, label %458, label %470
458: ; preds = %455
%459 = load i32, i32* %14
%460 = sext i32 %459 to i64
%461 = getelementptr inbounds [3 x double], [3 x double]* %15, i64 0, i64 %460
%462 = load double, double* %461
%463 = load double*, double** %6
%464 = load i32, i32* %14
%465 = sext i32 %464 to i64
%466 = getelementptr inbounds double, double* %463, i64 %465
store double %462, double* %466
br label %467
467: ; preds = %458
%468 = load i32, i32* %14
%469 = add nsw i32 %468, 1
store i32 %469, i32* %14
br label %455
470: ; preds = %455
store i32 0, i32* %5
br label %471
471: ; preds = %470, %260, %33
%472 = load i32, i32* %5
ret i32 %472
}

LLVM IR (-O2):
define i32 @precess_1(double* nocapture %0, double %1, i32 %2, i32 %3) {
%5 = fcmp oeq double %1, 0x4142B42C80000000
br i1 %5, label %212, label %6
6: ; preds = %4
%7 = fadd double %1, 0xC142B42C80000000
%8 = fdiv double %7, 3.652500e+04
switch i32 %3, label %212 [
i32 1, label %9
i32 6, label %22
i32 8, label %44
i32 7, label %66
i32 11, label %92
]
9: ; preds = %6
%10 = tail call double @llvm.fmuladd.f64(double %8, double 1.799800e-02, double 3.018800e-01)
%11 = tail call double @llvm.fmuladd.f64(double %10, double %8, double 0x40A2046FAACD9E84)
%12 = fmul double %8, %11
%13 = fmul double %12, 0x3F91DF46A2529D39
%14 = fdiv double %13, 3.600000e+03
%15 = insertelement <2 x double> poison, double %8, i64 0
%16 = shufflevector <2 x double> %15, <2 x double> poison, <2 x i32> zeroinitializer
%17 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %16, <2 x double> <double -4.183300e-02, double 1.820300e-02>, <2 x double> <double -4.266500e-01, double 1.094680e+00>)
%18 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %17, <2 x double> %16, <2 x double> <double 0x409F513E5C91D14E, double 0x40A2046FAACD9E84>)
%19 = fmul <2 x double> %16, %18
%20 = fmul <2 x double> %19, <double 0x3F91DF46A2529D39, double 0x3F91DF46A2529D39>
%21 = fdiv <2 x double> %20, <double 3.600000e+03, double 3.600000e+03>
br label %112
22: ; preds = %6
%23 = tail call double @llvm.fmuladd.f64(double %8, double -2.000000e-07, double -3.270000e-05)
%24 = tail call double @llvm.fmuladd.f64(double %23, double %8, double 1.796630e-02)
%25 = tail call double @llvm.fmuladd.f64(double %24, double %8, double 0x3FD3525AAB474107)
%26 = tail call double @llvm.fmuladd.f64(double %25, double %8, double 0x40A20429725B672F)
%27 = tail call double @llvm.fmuladd.f64(double %26, double %8, double 0x4004C7EBBC7C1CB1)
%28 = fmul double %27, 0x3F91DF46A2529D39
%29 = fdiv double %28, 3.600000e+03
%30 = tail call double @llvm.fmuladd.f64(double %8, double -3.000000e-07, double -4.700000e-05)
%31 = tail call double @llvm.fmuladd.f64(double %30, double %8, double 1.822370e-02)
%32 = tail call double @llvm.fmuladd.f64(double %31, double %8, double 0x3FF18436FC158FB4)
%33 = tail call double @llvm.fmuladd.f64(double %32, double %8, double 0x40A20429200B3842)
%34 = tail call double @llvm.fmuladd.f64(double %33, double %8, double 0xC004C7EBBC7C1CB1)
%35 = tail call double @llvm.fmuladd.f64(double %8, double 0xBE7AD7F29ABCAF48, double -6.010000e-05)
%36 = tail call double @llvm.fmuladd.f64(double %35, double %8, double -4.182510e-02)
%37 = tail call double @llvm.fmuladd.f64(double %36, double %8, double 0xBFDB52E86FC0823C)
%38 = tail call double @llvm.fmuladd.f64(double %37, double %8, double 0x409F50C4597B9C59)
%39 = fmul double %8, %38
%40 = insertelement <2 x double> poison, double %39, i64 0
%41 = insertelement <2 x double> %40, double %34, i64 1
%42 = fmul <2 x double> %41, <double 0x3F91DF46A2529D39, double 0x3F91DF46A2529D39>
%43 = fdiv <2 x double> %42, <double 3.600000e+03, double 3.600000e+03>
br label %112
44: ; preds = %6
%45 = tail call double @llvm.fmuladd.f64(double %8, double -3.173000e-07, double -5.971000e-06)
%46 = tail call double @llvm.fmuladd.f64(double %45, double %8, double 0x3F9273624D521851)
%47 = tail call double @llvm.fmuladd.f64(double %46, double %8, double 0x3FD3205B54BA6C78)
%48 = tail call double @llvm.fmuladd.f64(double %47, double %8, double 0x40A2042A9CBAB64A)
%49 = tail call double @llvm.fmuladd.f64(double %48, double %8, double 0x40053450EFDC9C4E)
%50 = fmul double %49, 0x3F91DF46A2529D39
%51 = fdiv double %50, 3.600000e+03
%52 = tail call double @llvm.fmuladd.f64(double %8, double -2.904000e-07, double -2.859600e-05)
%53 = tail call double @llvm.fmuladd.f64(double %52, double %8, double 0x3F92B4F18ECE0E96)
%54 = tail call double @llvm.fmuladd.f64(double %53, double %8, double 0x3FF17BD77C5337B5)
%55 = tail call double @llvm.fmuladd.f64(double %54, double %8, double 0x40A2042784449DBF)
%56 = tail call double @llvm.fmuladd.f64(double %55, double %8, double 0xC0053450EFDC9C4E)
%57 = tail call double @llvm.fmuladd.f64(double %8, double -1.127400e-07, double -7.089000e-06)
%58 = tail call double @llvm.fmuladd.f64(double %57, double %8, double 0xBFA569C6EE10944D)
%59 = tail call double @llvm.fmuladd.f64(double %58, double %8, double 0xBFDB7CD1E2B6431E)
%60 = tail call double @llvm.fmuladd.f64(double %59, double %8, double 0x409F50C482385404)
%61 = fmul double %8, %60
%62 = insertelement <2 x double> poison, double %61, i64 0
%63 = insertelement <2 x double> %62, double %56, i64 1
%64 = fmul <2 x double> %63, <double 0x3F91DF46A2529D39, double 0x3F91DF46A2529D39>
%65 = fdiv <2 x double> %64, <double 3.600000e+03, double 3.600000e+03>
br label %112
66: ; preds = %6
%67 = tail call double @llvm.fmuladd.f64(double %8, double -1.300000e-10, double -3.040000e-07)
%68 = tail call double @llvm.fmuladd.f64(double %67, double %8, double -5.708000e-06)
%69 = tail call double @llvm.fmuladd.f64(double %68, double %8, double 0x3F92732F4C9EBF1D)
%70 = tail call double @llvm.fmuladd.f64(double %69, double %8, double 0x3FD3594FFD6E5548)
%71 = tail call double @llvm.fmuladd.f64(double %70, double %8, double 0x40A2042933A0407D)
%72 = tail call double @llvm.fmuladd.f64(double %71, double %8, double 2.727670e+00)
%73 = fmul double %72, 0x3F91DF46A2529D39
%74 = fdiv double %73, 3.600000e+03
%75 = tail call double @llvm.fmuladd.f64(double %8, double -5.000000e-11, double -2.486000e-07)
%76 = tail call double @llvm.fmuladd.f64(double %75, double %8, double -2.827600e-05)
%77 = tail call double @llvm.fmuladd.f64(double %76, double %8, double 0x3F92B48583372C92)
%78 = tail call double @llvm.fmuladd.f64(double %77, double %8, double 0x3FF187E4656FC661)
%79 = tail call double @llvm.fmuladd.f64(double %78, double %8, double 0x40A20426F2A5A46A)
%80 = tail call double @llvm.fmuladd.f64(double %79, double %8, double -2.727670e+00)
%81 = tail call double @llvm.fmuladd.f64(double %8, double 9.000000e-12, double 3.600000e-10)
%82 = tail call double @llvm.fmuladd.f64(double %81, double %8, double -1.127000e-07)
%83 = tail call double @llvm.fmuladd.f64(double %82, double %8, double -7.291000e-06)
%84 = tail call double @llvm.fmuladd.f64(double %83, double %8, double 0xBFA569E87BFFD5B9)
%85 = tail call double @llvm.fmuladd.f64(double %84, double %8, double -4.266980e-01)
%86 = tail call double @llvm.fmuladd.f64(double %85, double %8, double 0x409F50C384BA0E84)
%87 = fmul double %8, %86
%88 = insertelement <2 x double> poison, double %87, i64 0
%89 = insertelement <2 x double> %88, double %80, i64 1
%90 = fmul <2 x double> %89, <double 0x3F91DF46A2529D39, double 0x3F91DF46A2529D39>
%91 = fdiv <2 x double> %90, <double 3.600000e+03, double 3.600000e+03>
br label %112
92: ; preds = %6
%93 = fadd double %1, 0xC142492B1A0EF135
%94 = fdiv double %93, 0x41164AE8CB8D8234
%95 = fadd double %94, 0xBFC3333DEAA3769D
%96 = fmul double %95, %95
%97 = fmul double %95, %96
%98 = fmul double %96, 0x403E339F4FD744BB
%99 = tail call double @llvm.fmuladd.f64(double %95, double 0x40D68420EE13848B, double %98)
%100 = tail call double @llvm.fmuladd.f64(double %97, double 1.799600e+01, double %99)
%101 = insertelement <2 x double> poison, double %96, i64 0
%102 = shufflevector <2 x double> %101, <2 x double> poison, <2 x i32> zeroinitializer
%103 = fmul <2 x double> %102, <double 0xC04559D2F59356CD, double 0x405B5AE073E42229>
%104 = insertelement <2 x double> poison, double %95, i64 0
%105 = shufflevector <2 x double> %104, <2 x double> poison, <2 x i32> zeroinitializer
%106 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %105, <2 x double> <double 0x40D39194A51FDB34, double 0x40D68420EE13848B>, <2 x double> %103)
%107 = insertelement <2 x double> poison, double %97, i64 0
%108 = shufflevector <2 x double> %107, <2 x double> poison, <2 x i32> zeroinitializer
%109 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %108, <2 x double> <double -4.180200e+01, double 1.832400e+01>, <2 x double> %106)
%110 = fmul double %100, 0x3ED455A5B2FF8F9D
%111 = fmul <2 x double> %109, <double 0x3ED455A5B2FF8F9D, double 0x3ED455A5B2FF8F9D>
br label %112
112: ; preds = %22, %66, %92, %44, %9
%113 = phi double [ %14, %9 ], [ %29, %22 ], [ %51, %44 ], [ %74, %66 ], [ %110, %92 ]
%114 = phi <2 x double> [ %21, %9 ], [ %43, %22 ], [ %65, %44 ], [ %91, %66 ], [ %111, %92 ]
%115 = extractelement <2 x double> %114, i64 0
%116 = tail call double @sin(double %115)
%117 = tail call double @cos(double %115)
%118 = tail call double @sin(double %113)
%119 = tail call double @cos(double %113)
%120 = extractelement <2 x double> %114, i64 1
%121 = tail call double @sin(double %120)
%122 = tail call double @cos(double %120)
%123 = fmul double %117, %119
%124 = fmul double %117, %118
%125 = icmp slt i32 %2, 0
%126 = fneg double %118
%127 = fmul double %121, %126
%128 = tail call double @llvm.fmuladd.f64(double %123, double %122, double %127)
%129 = load double, double* %0
br i1 %125, label %130, label %169
130: ; preds = %112
%131 = getelementptr inbounds double, double* %0, i64 1
%132 = load double, double* %131
%133 = getelementptr inbounds double, double* %0, i64 2
%134 = load double, double* %133
%135 = fneg double %116
%136 = fmul double %118, %122
%137 = tail call double @llvm.fmuladd.f64(double %123, double %121, double %136)
%138 = fneg double %119
%139 = insertelement <2 x double> poison, double %119, i64 0
%140 = insertelement <2 x double> %139, double %122, i64 1
%141 = insertelement <2 x double> poison, double %121, i64 0
%142 = insertelement <2 x double> %141, double %138, i64 1
%143 = fmul <2 x double> %140, %142
%144 = insertelement <2 x double> poison, double %124, i64 0
%145 = shufflevector <2 x double> %144, <2 x double> poison, <2 x i32> zeroinitializer
%146 = insertelement <2 x double> poison, double %122, i64 0
%147 = insertelement <2 x double> %146, double %121, i64 1
%148 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %145, <2 x double> %147, <2 x double> %143)
%149 = fneg <2 x double> %148
%150 = insertelement <2 x double> poison, double %132, i64 0
%151 = shufflevector <2 x double> %150, <2 x double> poison, <2 x i32> zeroinitializer
%152 = fmul <2 x double> %151, %149
%153 = insertelement <2 x double> poison, double %128, i64 0
%154 = insertelement <2 x double> %153, double %137, i64 1
%155 = insertelement <2 x double> poison, double %129, i64 0
%156 = shufflevector <2 x double> %155, <2 x double> poison, <2 x i32> zeroinitializer
%157 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %154, <2 x double> %156, <2 x double> %152)
%158 = insertelement <2 x double> poison, double %135, i64 0
%159 = shufflevector <2 x double> %158, <2 x double> poison, <2 x i32> zeroinitializer
%160 = fmul <2 x double> %147, %159
%161 = insertelement <2 x double> poison, double %134, i64 0
%162 = shufflevector <2 x double> %161, <2 x double> poison, <2 x i32> zeroinitializer
%163 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %160, <2 x double> %162, <2 x double> %157)
%164 = fmul double %116, %119
%165 = fmul double %116, %126
%166 = fmul double %165, %132
%167 = tail call double @llvm.fmuladd.f64(double %164, double %129, double %166)
%168 = tail call double @llvm.fmuladd.f64(double %117, double %134, double %167)
br label %207
169: ; preds = %112
%170 = fmul double %118, %122
%171 = tail call double @llvm.fmuladd.f64(double %123, double %121, double %170)
%172 = getelementptr inbounds double, double* %0, i64 1
%173 = load double, double* %172
%174 = getelementptr inbounds double, double* %0, i64 2
%175 = load double, double* %174
%176 = fmul double %119, %121
%177 = tail call double @llvm.fmuladd.f64(double %124, double %122, double %176)
%178 = fneg double %177
%179 = fneg double %119
%180 = fmul double %122, %179
%181 = tail call double @llvm.fmuladd.f64(double %124, double %121, double %180)
%182 = fneg double %181
%183 = insertelement <2 x double> poison, double %171, i64 0
%184 = insertelement <2 x double> %183, double %173, i64 1
%185 = insertelement <2 x double> poison, double %173, i64 0
%186 = insertelement <2 x double> %185, double %182, i64 1
%187 = fmul <2 x double> %184, %186
%188 = insertelement <2 x double> poison, double %128, i64 0
%189 = insertelement <2 x double> %188, double %178, i64 1
%190 = insertelement <2 x double> poison, double %129, i64 0
%191 = shufflevector <2 x double> %190, <2 x double> poison, <2 x i32> zeroinitializer
%192 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %189, <2 x double> %191, <2 x double> %187)
%193 = insertelement <2 x double> poison, double %116, i64 0
%194 = shufflevector <2 x double> %193, <2 x double> poison, <2 x i32> zeroinitializer
%195 = insertelement <2 x double> poison, double %119, i64 0
%196 = insertelement <2 x double> %195, double %126, i64 1
%197 = fmul <2 x double> %194, %196
%198 = insertelement <2 x double> poison, double %175, i64 0
%199 = shufflevector <2 x double> %198, <2 x double> poison, <2 x i32> zeroinitializer
%200 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %197, <2 x double> %199, <2 x double> %192)
%201 = fneg double %116
%202 = fmul double %122, %201
%203 = fmul double %121, %201
%204 = fmul double %203, %173
%205 = tail call double @llvm.fmuladd.f64(double %202, double %129, double %204)
%206 = tail call double @llvm.fmuladd.f64(double %117, double %175, double %205)
br label %207
207: ; preds = %169, %130
%208 = phi double [ %168, %130 ], [ %206, %169 ]
%209 = phi <2 x double> [ %163, %130 ], [ %200, %169 ]
%210 = bitcast double* %0 to <2 x double>*
store <2 x double> %209, <2 x double>* %210
%211 = getelementptr inbounds double, double* %0, i64 2
store double %208, double* %211
br label %212
212: ; preds = %207, %6, %4
ret i32 0
}