#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ EquatorialToHorizontal(double, double, double *, double *);
int /*<<< orphan*/ HorizontalToEquatorial(double, double, double *, double *);
double tan(double);
void Refraction(double *ha, double *dec, int dirflag) {
  double altitude, azimuth, dalt, arg;
  double hourangle, declination;
  extern double SiteTemperature;
  extern double SitePressure;
  hourangle = *ha;
  declination = *dec;
  EquatorialToHorizontal(hourangle, declination, &azimuth, &altitude);
  if (dirflag >= 0) {
    if (altitude >= 15.) {
      arg = (90.0 - altitude) * 3.14159265358 / 180.0;
      dalt = tan(arg);
      dalt = 58.276 * dalt - 0.0824 * dalt * dalt * dalt;
      dalt = dalt / 3600.;
      dalt = dalt * (SitePressure / (760. * 1.01)) *
             (283. / (273. + SiteTemperature));
    } else {
      arg = (90.0 - 15.0) * 3.14159265358 / 180.0;
      dalt = tan(arg);
      dalt = 58.276 * dalt - 0.0824 * dalt * dalt * dalt;
      dalt = dalt / 3600.;
      dalt = dalt * (SitePressure / (760. * 1.01)) *
             (283. / (273. + SiteTemperature));
    }
    altitude = altitude + dalt;
  } else if (dirflag < 0) {
    if (altitude >= 15.) {
      arg = (90.0 - altitude) * 3.14159265358 / 180.0;
      dalt = tan(arg);
      dalt = 58.294 * dalt - 0.0668 * dalt * dalt * dalt;
      dalt = dalt / 3600.;
      dalt = dalt * (SitePressure / (760. * 1.01)) *
             (283. / (273. + SiteTemperature));
    } else {
      arg = (90.0 - 15.0) * 3.14159265358 / 180.0;
      dalt = tan(arg);
      dalt = 58.294 * dalt - 0.0668 * dalt * dalt * dalt;
      dalt = dalt / 3600.;
      dalt = dalt * (SitePressure / (760. * 1.01)) *
             (283. / (273. + SiteTemperature));
    }
    altitude = altitude - dalt;
  }
  HorizontalToEquatorial(azimuth, altitude, &hourangle, &declination);
  *ha = hourangle;
  *dec = declination;
}


x86 assembly (clang, -O0):
<Refraction>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %edx,-0x14(%rbp)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
lea    -0x28(%rbp),%rdi
lea    -0x20(%rbp),%rsi
call   1050 <EquatorialToHorizontal@plt>
cmpl   $0x0,-0x14(%rbp)
jl     134f <Refraction+0x21f>
movsd  -0x20(%rbp),%xmm0
movsd  0xe75(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1279 <Refraction+0x149>
movsd  0xeb3(%rip),%xmm0
subsd  -0x20(%rbp),%xmm0
movsd  0xe9e(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe8a(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x38(%rbp),%xmm0
call   1040 <tan@plt>
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0xe85(%rip),%xmm1
mulsd  -0x30(%rbp),%xmm1
mulsd  -0x30(%rbp),%xmm1
mulsd  -0x30(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xe4f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0xdfd(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
mov    0x2da0(%rip),%rax
movsd  (%rax),%xmm1
movsd  0xdd4(%rip),%xmm2
divsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0xdbc(%rip),%xmm2
mov    0x2d8d(%rip),%rax
addsd  (%rax),%xmm2
movsd  0xda1(%rip),%xmm1
divsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
jmp    133b <Refraction+0x20b>
movsd  0xdb7(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x38(%rbp),%xmm0
call   1040 <tan@plt>
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0xdbe(%rip),%xmm1
mulsd  -0x30(%rbp),%xmm1
mulsd  -0x30(%rbp),%xmm1
mulsd  -0x30(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xd88(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0xd36(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
mov    0x2cd9(%rip),%rax
movsd  (%rax),%xmm1
movsd  0xd0d(%rip),%xmm2
divsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0xcf5(%rip),%xmm2
mov    0x2cc6(%rip),%rax
addsd  (%rax),%xmm2
movsd  0xcda(%rip),%xmm1
divsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x20(%rbp)
jmp    152a <Refraction+0x3fa>
cmpl   $0x0,-0x14(%rbp)
jge    1525 <Refraction+0x3f5>
movsd  -0x20(%rbp),%xmm0
movsd  0xc9a(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1454 <Refraction+0x324>
movsd  0xcd8(%rip),%xmm0
subsd  -0x20(%rbp),%xmm0
movsd  0xcc3(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xcaf(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x38(%rbp),%xmm0
call   1040 <tan@plt>
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0xc7a(%rip),%xmm1
mulsd  -0x30(%rbp),%xmm1
mulsd  -0x30(%rbp),%xmm1
mulsd  -0x30(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xc44(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0xc22(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
mov    0x2bc5(%rip),%rax
movsd  (%rax),%xmm1
movsd  0xbf9(%rip),%xmm2
divsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0xbe1(%rip),%xmm2
mov    0x2bb2(%rip),%rax
addsd  (%rax),%xmm2
movsd  0xbc6(%rip),%xmm1
divsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
jmp    1516 <Refraction+0x3e6>
movsd  0xbdc(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x38(%rbp),%xmm0
call   1040 <tan@plt>
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0xbb3(%rip),%xmm1
mulsd  -0x30(%rbp),%xmm1
mulsd  -0x30(%rbp),%xmm1
mulsd  -0x30(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xb7d(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0xb5b(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
mov    0x2afe(%rip),%rax
movsd  (%rax),%xmm1
movsd  0xb32(%rip),%xmm2
divsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0xb1a(%rip),%xmm2
mov    0x2aeb(%rip),%rax
addsd  (%rax),%xmm2
movsd  0xaff(%rip),%xmm1
divsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x20(%rbp)
jmp    152a <Refraction+0x3fa>
movsd  -0x28(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm1
lea    -0x40(%rbp),%rdi
lea    -0x48(%rbp),%rsi
call   1030 <HorizontalToEquatorial@plt>
movsd  -0x40(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x48(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Refraction>:
push   %rbp
push   %r14
push   %rbx
sub    $0x20,%rsp
mov    %edx,%ebp
mov    %rsi,%r14
mov    %rdi,%rbx
movsd  (%rdi),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  (%rsi),%xmm1
movsd  %xmm1,0x8(%rsp)
lea    0x18(%rsp),%rdi
mov    %rsp,%rsi
call   1050 <EquatorialToHorizontal@plt>
movsd  (%rsp),%xmm1
test   %ebp,%ebp
js     11cb <Refraction+0x9b>
ucomisd 0xe8e(%rip),%xmm1
jae    1228 <Refraction+0xf8>
mov    0x2e69(%rip),%rax
movsd  (%rax),%xmm0
addsd  0xead(%rip),%xmm0
mov    0x2e46(%rip),%rax
movapd 0xee6(%rip),%xmm2
movlpd (%rax),%xmm2
movapd 0xeea(%rip),%xmm3
unpcklpd %xmm0,%xmm3
divpd  %xmm3,%xmm2
movsd  0xea2(%rip),%xmm0
mulsd  %xmm2,%xmm0
unpckhpd %xmm2,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm2,%xmm1
jmp    1353 <Refraction+0x223>
ucomisd 0xe2d(%rip),%xmm1
jae    12be <Refraction+0x18e>
mov    0x2e08(%rip),%rax
movsd  (%rax),%xmm0
addsd  0xe4c(%rip),%xmm0
mov    0x2de5(%rip),%rax
movapd 0xe85(%rip),%xmm2
movlpd (%rax),%xmm2
movapd 0xe89(%rip),%xmm3
unpcklpd %xmm0,%xmm3
divpd  %xmm3,%xmm2
movsd  0xe29(%rip),%xmm0
mulsd  %xmm2,%xmm0
unpckhpd %xmm2,%xmm2
mulsd  %xmm0,%xmm2
jmp    134f <Refraction+0x21f>
movsd  0xdd8(%rip),%xmm0
subsd  %xmm1,%xmm0
mulsd  0xdd4(%rip),%xmm0
divsd  0xdd4(%rip),%xmm0
call   1040 <tan@plt>
movsd  0xdf7(%rip),%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
mulsd  0xdeb(%rip),%xmm0
addsd  %xmm1,%xmm0
divsd  0xdbf(%rip),%xmm0
mov    0x2d70(%rip),%rax
movsd  (%rax),%xmm1
addsd  0xdb4(%rip),%xmm1
mov    0x2d4d(%rip),%rax
movapd 0xdcd(%rip),%xmm2
movhpd (%rax),%xmm2
shufpd $0x2,0xdd0(%rip),%xmm1
divpd  %xmm1,%xmm2
movapd %xmm2,%xmm1
unpckhpd %xmm2,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm1
addsd  (%rsp),%xmm1
jmp    1353 <Refraction+0x223>
movsd  0xd42(%rip),%xmm0
subsd  %xmm1,%xmm0
mulsd  0xd3e(%rip),%xmm0
divsd  0xd3e(%rip),%xmm0
call   1040 <tan@plt>
movsd  0xd39(%rip),%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
mulsd  0xd2d(%rip),%xmm0
addsd  %xmm1,%xmm0
divsd  0xd29(%rip),%xmm0
mov    0x2cda(%rip),%rax
movsd  (%rax),%xmm1
addsd  0xd1e(%rip),%xmm1
mov    0x2cb7(%rip),%rax
movapd 0xd37(%rip),%xmm3
movhpd (%rax),%xmm3
shufpd $0x2,0xd3a(%rip),%xmm1
divpd  %xmm1,%xmm3
movapd %xmm3,%xmm2
unpckhpd %xmm3,%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm3,%xmm2
movsd  (%rsp),%xmm1
subsd  %xmm2,%xmm1
movsd  %xmm1,(%rsp)
movsd  0x18(%rsp),%xmm0
lea    0x10(%rsp),%rdi
lea    0x8(%rsp),%rsi
call   1030 <HorizontalToEquatorial@plt>
movsd  0x10(%rsp),%xmm0
movsd  %xmm0,(%rbx)
movsd  0x8(%rsp),%xmm0
movsd  %xmm0,(%r14)
add    $0x20,%rsp
pop    %rbx
pop    %r14
pop    %rbp
ret

LLVM IR (-O0):
@SitePressure = external global double
@SiteTemperature = external global double
define void @Refraction(double* %0, double* %1, i32 %2) {
%4 = alloca double*
%5 = alloca double*
%6 = alloca i32
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
store double* %0, double** %4
store double* %1, double** %5
store i32 %2, i32* %6
%13 = load double*, double** %4
%14 = load double, double* %13
store double %14, double* %11
%15 = load double*, double** %5
%16 = load double, double* %15
store double %16, double* %12
%17 = load double, double* %11
%18 = load double, double* %12
%19 = call i32 @EquatorialToHorizontal(double %17, double %18, double* %8, double* %7)
%20 = load i32, i32* %6
%21 = icmp sge i32 %20, 0
br i1 %21, label %22, label %77
22: ; preds = %3
%23 = load double, double* %7
%24 = fcmp oge double %23, 1.500000e+01
br i1 %24, label %25, label %51
25: ; preds = %22
%26 = load double, double* %7
%27 = fsub double 9.000000e+01, %26
%28 = fmul double %27, 0x400921FB5443D6F4
%29 = fdiv double %28, 1.800000e+02
store double %29, double* %10
%30 = load double, double* %10
%31 = call double @tan(double %30)
store double %31, double* %9
%32 = load double, double* %9
%33 = load double, double* %9
%34 = fmul double 8.240000e-02, %33
%35 = load double, double* %9
%36 = fmul double %34, %35
%37 = load double, double* %9
%38 = fmul double %36, %37
%39 = fneg double %38
%40 = call double @llvm.fmuladd.f64(double 5.827600e+01, double %32, double %39)
store double %40, double* %9
%41 = load double, double* %9
%42 = fdiv double %41, 3.600000e+03
store double %42, double* %9
%43 = load double, double* %9
%44 = load double, double* @SitePressure
%45 = fdiv double %44, 7.676000e+02
%46 = fmul double %43, %45
%47 = load double, double* @SiteTemperature
%48 = fadd double 2.730000e+02, %47
%49 = fdiv double 2.830000e+02, %48
%50 = fmul double %46, %49
store double %50, double* %9
br label %73
51: ; preds = %22
store double 0x3FF4F1A6C6388876, double* %10
%52 = load double, double* %10
%53 = call double @tan(double %52)
store double %53, double* %9
%54 = load double, double* %9
%55 = load double, double* %9
%56 = fmul double 8.240000e-02, %55
%57 = load double, double* %9
%58 = fmul double %56, %57
%59 = load double, double* %9
%60 = fmul double %58, %59
%61 = fneg double %60
%62 = call double @llvm.fmuladd.f64(double 5.827600e+01, double %54, double %61)
store double %62, double* %9
%63 = load double, double* %9
%64 = fdiv double %63, 3.600000e+03
store double %64, double* %9
%65 = load double, double* %9
%66 = load double, double* @SitePressure
%67 = fdiv double %66, 7.676000e+02
%68 = fmul double %65, %67
%69 = load double, double* @SiteTemperature
%70 = fadd double 2.730000e+02, %69
%71 = fdiv double 2.830000e+02, %70
%72 = fmul double %68, %71
store double %72, double* %9
br label %73
73: ; preds = %51, %25
%74 = load double, double* %7
%75 = load double, double* %9
%76 = fadd double %74, %75
store double %76, double* %7
br label %136
77: ; preds = %3
%78 = load i32, i32* %6
%79 = icmp slt i32 %78, 0
br i1 %79, label %80, label %135
80: ; preds = %77
%81 = load double, double* %7
%82 = fcmp oge double %81, 1.500000e+01
br i1 %82, label %83, label %109
83: ; preds = %80
%84 = load double, double* %7
%85 = fsub double 9.000000e+01, %84
%86 = fmul double %85, 0x400921FB5443D6F4
%87 = fdiv double %86, 1.800000e+02
store double %87, double* %10
%88 = load double, double* %10
%89 = call double @tan(double %88)
store double %89, double* %9
%90 = load double, double* %9
%91 = load double, double* %9
%92 = fmul double 6.680000e-02, %91
%93 = load double, double* %9
%94 = fmul double %92, %93
%95 = load double, double* %9
%96 = fmul double %94, %95
%97 = fneg double %96
%98 = call double @llvm.fmuladd.f64(double 5.829400e+01, double %90, double %97)
store double %98, double* %9
%99 = load double, double* %9
%100 = fdiv double %99, 3.600000e+03
store double %100, double* %9
%101 = load double, double* %9
%102 = load double, double* @SitePressure
%103 = fdiv double %102, 7.676000e+02
%104 = fmul double %101, %103
%105 = load double, double* @SiteTemperature
%106 = fadd double 2.730000e+02, %105
%107 = fdiv double 2.830000e+02, %106
%108 = fmul double %104, %107
store double %108, double* %9
br label %131
109: ; preds = %80
store double 0x3FF4F1A6C6388876, double* %10
%110 = load double, double* %10
%111 = call double @tan(double %110)
store double %111, double* %9
%112 = load double, double* %9
%113 = load double, double* %9
%114 = fmul double 6.680000e-02, %113
%115 = load double, double* %9
%116 = fmul double %114, %115
%117 = load double, double* %9
%118 = fmul double %116, %117
%119 = fneg double %118
%120 = call double @llvm.fmuladd.f64(double 5.829400e+01, double %112, double %119)
store double %120, double* %9
%121 = load double, double* %9
%122 = fdiv double %121, 3.600000e+03
store double %122, double* %9
%123 = load double, double* %9
%124 = load double, double* @SitePressure
%125 = fdiv double %124, 7.676000e+02
%126 = fmul double %123, %125
%127 = load double, double* @SiteTemperature
%128 = fadd double 2.730000e+02, %127
%129 = fdiv double 2.830000e+02, %128
%130 = fmul double %126, %129
store double %130, double* %9
br label %131
131: ; preds = %109, %83
%132 = load double, double* %7
%133 = load double, double* %9
%134 = fsub double %132, %133
store double %134, double* %7
br label %135
135: ; preds = %131, %77
br label %136
136: ; preds = %135, %73
%137 = load double, double* %8
%138 = load double, double* %7
%139 = call i32 @HorizontalToEquatorial(double %137, double %138, double* %11, double* %12)
%140 = load double, double* %11
%141 = load double*, double** %4
store double %140, double* %141
%142 = load double, double* %12
%143 = load double*, double** %5
store double %142, double* %143
ret void
}

LLVM IR (-O2):
@SitePressure = external global double
@SiteTemperature = external global double
define void @Refraction(double* nocapture %0, double* nocapture %1, i32 %2) {
%4 = alloca double
%5 = alloca double
%6 = alloca double
%7 = alloca double
%8 = bitcast double* %4 to i8*
%9 = bitcast double* %5 to i8*
%10 = bitcast double* %6 to i8*
%11 = bitcast double* %7 to i8*
%12 = load double, double* %0
store double %12, double* %6
%13 = load double, double* %1
store double %13, double* %7
%14 = call i32 @EquatorialToHorizontal(double %12, double %13, double* %5, double* %4)
%15 = icmp sgt i32 %2, -1
%16 = load double, double* %4
%17 = fcmp ult double %16, 1.500000e+01
br i1 %15, label %18, label %55
18: ; preds = %3
br i1 %17, label %40, label %19
19: ; preds = %18
%20 = fsub double 9.000000e+01, %16
%21 = fmul double %20, 0x400921FB5443D6F4
%22 = fdiv double %21, 1.800000e+02
%23 = call double @tan(double %22)
%24 = fmul double %23, -8.240000e-02
%25 = fmul double %23, %24
%26 = fmul double %23, %25
%27 = call double @llvm.fmuladd.f64(double %23, double 5.827600e+01, double %26)
%28 = fdiv double %27, 3.600000e+03
%29 = load double, double* @SitePressure
%30 = load double, double* @SiteTemperature
%31 = fadd double %30, 2.730000e+02
%32 = insertelement <2 x double> <double 2.830000e+02, double poison>, double %29, i64 1
%33 = insertelement <2 x double> <double poison, double 7.676000e+02>, double %31, i64 0
%34 = fdiv <2 x double> %32, %33
%35 = extractelement <2 x double> %34, i64 1
%36 = fmul double %35, %28
%37 = extractelement <2 x double> %34, i64 0
%38 = fmul double %37, %36
%39 = load double, double* %4
br label %51
40: ; preds = %18
%41 = load double, double* @SitePressure
%42 = load double, double* @SiteTemperature
%43 = fadd double %42, 2.730000e+02
%44 = insertelement <2 x double> <double poison, double 2.830000e+02>, double %41, i64 0
%45 = insertelement <2 x double> <double 7.676000e+02, double poison>, double %43, i64 1
%46 = fdiv <2 x double> %44, %45
%47 = extractelement <2 x double> %46, i64 0
%48 = fmul double %47, 0x3FAE5295E245591A
%49 = extractelement <2 x double> %46, i64 1
%50 = fmul double %48, %49
br label %51
51: ; preds = %40, %19
%52 = phi double [ %39, %19 ], [ %16, %40 ]
%53 = phi double [ %38, %19 ], [ %50, %40 ]
%54 = fadd double %53, %52
br label %92
55: ; preds = %3
br i1 %17, label %77, label %56
56: ; preds = %55
%57 = fsub double 9.000000e+01, %16
%58 = fmul double %57, 0x400921FB5443D6F4
%59 = fdiv double %58, 1.800000e+02
%60 = call double @tan(double %59)
%61 = fmul double %60, -6.680000e-02
%62 = fmul double %60, %61
%63 = fmul double %60, %62
%64 = call double @llvm.fmuladd.f64(double %60, double 5.829400e+01, double %63)
%65 = fdiv double %64, 3.600000e+03
%66 = load double, double* @SitePressure
%67 = load double, double* @SiteTemperature
%68 = fadd double %67, 2.730000e+02
%69 = insertelement <2 x double> <double 2.830000e+02, double poison>, double %66, i64 1
%70 = insertelement <2 x double> <double poison, double 7.676000e+02>, double %68, i64 0
%71 = fdiv <2 x double> %69, %70
%72 = extractelement <2 x double> %71, i64 1
%73 = fmul double %72, %65
%74 = extractelement <2 x double> %71, i64 0
%75 = fmul double %74, %73
%76 = load double, double* %4
br label %88
77: ; preds = %55
%78 = load double, double* @SitePressure
%79 = load double, double* @SiteTemperature
%80 = fadd double %79, 2.730000e+02
%81 = insertelement <2 x double> <double poison, double 2.830000e+02>, double %78, i64 0
%82 = insertelement <2 x double> <double 7.676000e+02, double poison>, double %80, i64 1
%83 = fdiv <2 x double> %81, %82
%84 = extractelement <2 x double> %83, i64 0
%85 = fmul double %84, 0x3FAE728E2722662A
%86 = extractelement <2 x double> %83, i64 1
%87 = fmul double %85, %86
br label %88
88: ; preds = %77, %56
%89 = phi double [ %76, %56 ], [ %16, %77 ]
%90 = phi double [ %75, %56 ], [ %87, %77 ]
%91 = fsub double %89, %90
br label %92
92: ; preds = %88, %51
%93 = phi double [ %91, %88 ], [ %54, %51 ]
store double %93, double* %4
%94 = load double, double* %5
%95 = call i32 @HorizontalToEquatorial(double %94, double %93, double* %6, double* %7)
%96 = load double, double* %6
store double %96, double* %0
%97 = load double, double* %7
store double %97, double* %1
ret void
}