#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*/ Assert(char *, char *, int);
double GetTKelvinFromTCelsius(double);
double GetTRankineFromTFahrenheit(double);
double exp(double);
scalar_t__ isIP();
double log(double);
double pow(double, int);
double GetSatVapPres(double TDryBulb) {
  double LnPws, T;
  if (isIP()) {
    if (!(TDryBulb >= -148. && TDryBulb <= 392.)) {
      Assert("Dry bulb temperature is outside range [-148, 392]",
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/psychrometrics/psychrolib/refs/heads/"
             "master/src/c/psychrolib.c",
             755);
    }
    T = GetTRankineFromTFahrenheit(TDryBulb);
    if (TDryBulb <= 32.018)
      LnPws = (-1.0214165E+04 / T - 4.8932428 - 5.3765794E-03 * T +
               1.9202377E-07 * T * T + 3.5575832E-10 * pow(T, 3) -
               9.0344688E-14 * pow(T, 4) + 4.1635019 * log(T));
    else
      LnPws = -1.0440397E+04 / T - 1.1294650E+01 - 2.7022355E-02 * T +
              1.2890360E-05 * T * T - 2.4780681E-09 * pow(T, 3) +
              6.5459673 * log(T);
  } else {
    if (!(TDryBulb >= -100. && TDryBulb <= 200.)) {
      Assert("Dry bulb temperature is outside range [-100, 200]",
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/psychrometrics/psychrolib/refs/heads/"
             "master/src/c/psychrolib.c",
             768);
    }
    T = GetTKelvinFromTCelsius(TDryBulb);
    if (TDryBulb <= 0.01)
      LnPws = -5.6745359E+03 / T + 6.3925247 - 9.677843E-03 * T +
              6.2215701E-07 * T * T + 2.0747825E-09 * pow(T, 3) -
              9.484024E-13 * pow(T, 4) + 4.1635019 * log(T);
    else
      LnPws = -5.8002206E+03 / T + 1.3914993 - 4.8640239E-02 * T +
              4.1764768E-05 * T * T - 1.4452093E-08 * pow(T, 3) +
              6.5459673 * log(T);
  }
  return exp(LnPws);
}


x86 assembly (clang, -O0):
<GetSatVapPres>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
movsd  %xmm0,-0x8(%rbp)
mov    $0x0,%al
call   1080 <isIP@plt>
cmp    $0x0,%rax
je     1359 <GetSatVapPres+0x1e9>
movsd  -0x8(%rbp),%xmm0
movsd  0xee5(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     11b8 <GetSatVapPres+0x48>
movsd  0xedb(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jae    11d0 <GetSatVapPres+0x60>
lea    0xf31(%rip),%rdi
lea    0xf5c(%rip),%rsi
mov    $0x2f3,%edx
call   1040 <Assert@plt>
movsd  -0x8(%rbp),%xmm0
call   1090 <GetTRankineFromTFahrenheit@plt>
movsd  %xmm0,-0x18(%rbp)
movsd  0xea9(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jb     12ba <GetSatVapPres+0x14a>
movsd  0xeee(%rip),%xmm0
divsd  -0x18(%rbp),%xmm0
movsd  0xed9(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  -0x18(%rbp),%xmm1
movsd  0xec0(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xea8(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x18(%rbp),%xmm0
mov    $0x3,%edi
call   1070 <pow@plt>
movsd  -0x30(%rbp),%xmm1
movsd  0xe6d(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x18(%rbp),%xmm0
mov    $0x4,%edi
call   1070 <pow@plt>
movsd  -0x28(%rbp),%xmm1
movsd  0xe3c(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  -0x18(%rbp),%xmm0
call   1060 <log@plt>
movsd  -0x20(%rbp),%xmm1
movsd  0xda0(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1354 <GetSatVapPres+0x1e4>
movsd  0xdf6(%rip),%xmm0
divsd  -0x18(%rbp),%xmm0
movsd  0xde1(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  -0x18(%rbp),%xmm1
movsd  0xdc8(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xdb0(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x18(%rbp),%xmm0
mov    $0x3,%edi
call   1070 <pow@plt>
movsd  -0x40(%rbp),%xmm1
movsd  0xd75(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x18(%rbp),%xmm0
call   1060 <log@plt>
movsd  -0x38(%rbp),%xmm1
movsd  0xcd1(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1524 <GetSatVapPres+0x3b4>
movsd  -0x8(%rbp),%xmm0
movsd  0xc9a(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1383 <GetSatVapPres+0x213>
movsd  0xc90(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jae    139b <GetSatVapPres+0x22b>
lea    0xe31(%rip),%rdi
lea    0xd91(%rip),%rsi
mov    $0x300,%edx
call   1040 <Assert@plt>
movsd  -0x8(%rbp),%xmm0
call   1030 <GetTKelvinFromTCelsius@plt>
movsd  %xmm0,-0x18(%rbp)
movsd  0xc5e(%rip),%xmm0
ucomisd -0x8(%rbp),%xmm0
jb     1485 <GetSatVapPres+0x315>
movsd  0xcb3(%rip),%xmm0
divsd  -0x18(%rbp),%xmm0
movsd  0xc9e(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x18(%rbp),%xmm1
movsd  0xc85(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xc6d(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x18(%rbp),%xmm0
mov    $0x3,%edi
call   1070 <pow@plt>
movsd  -0x58(%rbp),%xmm1
movsd  0xc32(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x18(%rbp),%xmm0
mov    $0x4,%edi
call   1070 <pow@plt>
movsd  -0x50(%rbp),%xmm1
movsd  0xc01(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x18(%rbp),%xmm0
call   1060 <log@plt>
movsd  -0x48(%rbp),%xmm1
movsd  0xbd5(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    151f <GetSatVapPres+0x3af>
movsd  0xbb3(%rip),%xmm0
divsd  -0x18(%rbp),%xmm0
movsd  0xb9e(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x18(%rbp),%xmm1
movsd  0xb85(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xb6d(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x18(%rbp),%xmm0
mov    $0x3,%edi
call   1070 <pow@plt>
movsd  -0x68(%rbp),%xmm1
movsd  0xb32(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x18(%rbp),%xmm0
call   1060 <log@plt>
movsd  -0x60(%rbp),%xmm1
movsd  0xb06(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1524 <GetSatVapPres+0x3b4>
movsd  -0x10(%rbp),%xmm0
call   1050 <exp@plt>
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<GetSatVapPres>:
sub    $0x18,%rsp
movsd  %xmm0,0x8(%rsp)
xor    %eax,%eax
call   1080 <isIP@plt>
test   %rax,%rax
je     123a <GetSatVapPres+0xca>
movsd  0x8(%rsp),%xmm0
ucomisd 0xe68(%rip),%xmm0
jb     11a8 <GetSatVapPres+0x38>
movsd  0xe66(%rip),%xmm1
ucomisd %xmm0,%xmm1
jae    11c6 <GetSatVapPres+0x56>
lea    0xf41(%rip),%rdi
lea    0xf6c(%rip),%rsi
mov    $0x2f3,%edx
call   1040 <Assert@plt>
movsd  0x8(%rsp),%xmm0
call   1090 <GetTRankineFromTFahrenheit@plt>
movsd  0xe3d(%rip),%xmm1
ucomisd 0x8(%rsp),%xmm1
movsd  %xmm0,0x10(%rsp)
jae    1309 <GetSatVapPres+0x199>
movsd  0xe63(%rip),%xmm2
divsd  %xmm0,%xmm2
addsd  0xe5f(%rip),%xmm2
movsd  0xe5f(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
movsd  0xe57(%rip),%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
movsd  %xmm2,0x8(%rsp)
mov    $0x3,%edi
call   1070 <pow@plt>
mulsd  0xe3b(%rip),%xmm0
jmp    12e5 <GetSatVapPres+0x175>
movsd  0x8(%rsp),%xmm0
ucomisd 0xe38(%rip),%xmm0
jb     1258 <GetSatVapPres+0xe8>
movsd  0xe36(%rip),%xmm1
ucomisd %xmm0,%xmm1
jae    1276 <GetSatVapPres+0x106>
lea    0xf5c(%rip),%rdi
lea    0xebc(%rip),%rsi
mov    $0x300,%edx
call   1040 <Assert@plt>
movsd  0x8(%rsp),%xmm0
call   1030 <GetTKelvinFromTCelsius@plt>
movsd  0xe0d(%rip),%xmm1
ucomisd 0x8(%rsp),%xmm1
movsd  %xmm0,0x10(%rsp)
jae    137f <GetSatVapPres+0x20f>
movsd  0xe2b(%rip),%xmm2
divsd  %xmm0,%xmm2
addsd  0xe27(%rip),%xmm2
movsd  0xe27(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
movsd  0xe1f(%rip),%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
movsd  %xmm2,0x8(%rsp)
mov    $0x3,%edi
call   1070 <pow@plt>
mulsd  0xe03(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
call   1060 <log@plt>
mulsd  0xd74(%rip),%xmm0
jmp    1412 <GetSatVapPres+0x2a2>
movsd  0xd07(%rip),%xmm2
divsd  %xmm0,%xmm2
addsd  0xd03(%rip),%xmm2
movsd  0xd03(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
movsd  0xcfb(%rip),%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
movsd  %xmm2,0x8(%rsp)
mov    $0x3,%edi
call   1070 <pow@plt>
mulsd  0xcdf(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
mov    $0x4,%edi
call   1070 <pow@plt>
mulsd  0xcc3(%rip),%xmm0
jmp    13f3 <GetSatVapPres+0x283>
movsd  0xd11(%rip),%xmm2
divsd  %xmm0,%xmm2
addsd  0xd0d(%rip),%xmm2
movsd  0xd0d(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
movsd  0xd05(%rip),%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
movsd  %xmm2,0x8(%rsp)
mov    $0x3,%edi
call   1070 <pow@plt>
mulsd  0xce9(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
mov    $0x4,%edi
call   1070 <pow@plt>
mulsd  0xccd(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
call   1060 <log@plt>
mulsd  0xc36(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
add    $0x18,%rsp
jmp    1050 <exp@plt>

LLVM IR (-O0):
@.str = [50 x i8] c"Dry bulb temperature is outside range [-148, 392]\00"
@.str.1 = [153 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/psychrometrics/psychrolib/refs/heads/master/src/c/psychrolib.c\00"
@.str.2 = [50 x i8] c"Dry bulb temperature is outside range [-100, 200]\00"
define double @GetSatVapPres(double %0) {
%2 = alloca double
%3 = alloca double
%4 = alloca double
store double %0, double* %2
%5 = call i64 (...) @isIP()
%6 = icmp ne i64 %5, 0
br i1 %6, label %7, label %56
7: ; preds = %1
%8 = load double, double* %2
%9 = fcmp oge double %8, -1.480000e+02
br i1 %9, label %10, label %13
10: ; preds = %7
%11 = load double, double* %2
%12 = fcmp ole double %11, 3.920000e+02
br i1 %12, label %15, label %13
13: ; preds = %10, %7
%14 = call i32 @Assert(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([153 x i8], [153 x i8]* @.str.1, i64 0, i64 0), i32 755)
br label %15
15: ; preds = %13, %10
%16 = load double, double* %2
%17 = call double @GetTRankineFromTFahrenheit(double %16)
store double %17, double* %4
%18 = load double, double* %2
%19 = fcmp ole double %18, 3.201800e+01
br i1 %19, label %20, label %39
20: ; preds = %15
%21 = load double, double* %4
%22 = fdiv double 0xC0C3F3151EB851EC, %21
%23 = fsub double %22, 0x401392AE3D958CC5
%24 = load double, double* %4
%25 = call double @llvm.fmuladd.f64(double 0xBF7605C08AFF5FE3, double %24, double %23)
%26 = load double, double* %4
%27 = fmul double 0x3E89C5E2F18256EE, %26
%28 = load double, double* %4
%29 = call double @llvm.fmuladd.f64(double %27, double %28, double %25)
%30 = load double, double* %4
%31 = call double @pow(double %30, i32 3)
%32 = call double @llvm.fmuladd.f64(double 0x3DF8729109922038, double %31, double %29)
%33 = load double, double* %4
%34 = call double @pow(double %33, i32 4)
%35 = call double @llvm.fmuladd.f64(double 0xBD396E0556843A5B, double %34, double %32)
%36 = load double, double* %4
%37 = call double @log(double %36)
%38 = call double @llvm.fmuladd.f64(double 0x4010A76D0AC555E0, double %37, double %35)
store double %38, double* %3
br label %55
39: ; preds = %15
%40 = load double, double* %4
%41 = fdiv double 0xC0C46432D0E56042, %40
%42 = fsub double %41, 0x402696DC5D638866
%43 = load double, double* %4
%44 = call double @llvm.fmuladd.f64(double 0xBF9BABBF8BF19051, double %43, double %42)
%45 = load double, double* %4
%46 = fmul double 0x3EEB0875969957D5, %45
%47 = load double, double* %4
%48 = call double @llvm.fmuladd.f64(double %46, double %47, double %44)
%49 = load double, double* %4
%50 = call double @pow(double %49, i32 3)
%51 = call double @llvm.fmuladd.f64(double 0xBE254954524BD8EE, double %50, double %48)
%52 = load double, double* %4
%53 = call double @log(double %52)
%54 = call double @llvm.fmuladd.f64(double 0x401A2F120D48BDDF, double %53, double %51)
store double %54, double* %3
br label %55
55: ; preds = %39, %20
br label %105
56: ; preds = %1
%57 = load double, double* %2
%58 = fcmp oge double %57, -1.000000e+02
br i1 %58, label %59, label %62
59: ; preds = %56
%60 = load double, double* %2
%61 = fcmp ole double %60, 2.000000e+02
br i1 %61, label %64, label %62
62: ; preds = %59, %56
%63 = call i32 @Assert(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([153 x i8], [153 x i8]* @.str.1, i64 0, i64 0), i32 768)
br label %64
64: ; preds = %62, %59
%65 = load double, double* %2
%66 = call double @GetTKelvinFromTCelsius(double %65)
store double %66, double* %4
%67 = load double, double* %2
%68 = fcmp ole double %67, 1.000000e-02
br i1 %68, label %69, label %88
69: ; preds = %64
%70 = load double, double* %4
%71 = fdiv double 0xC0B62A8930BE0DED, %70
%72 = fadd double %71, 0x401991F1FEB57D25
%73 = load double, double* %4
%74 = call double @llvm.fmuladd.f64(double 0xBF83D1FA19725315, double %73, double %72)
%75 = load double, double* %4
%76 = fmul double 0x3EA4E049BBCCDCB5, %75
%77 = load double, double* %4
%78 = call double @llvm.fmuladd.f64(double %76, double %77, double %74)
%79 = load double, double* %4
%80 = call double @pow(double %79, i32 3)
%81 = call double @llvm.fmuladd.f64(double 0x3E21D27EB63438FB, double %80, double %78)
%82 = load double, double* %4
%83 = call double @pow(double %82, i32 4)
%84 = call double @llvm.fmuladd.f64(double 0xBD70AF3985A087B4, double %83, double %81)
%85 = load double, double* %4
%86 = call double @log(double %85)
%87 = call double @llvm.fmuladd.f64(double 0x4010A76D0AC555E0, double %86, double %84)
store double %87, double* %3
br label %104
88: ; preds = %64
%89 = load double, double* %4
%90 = fdiv double 0xC0B6A838793DD97F, %89
%91 = fadd double %90, 0x3FF64394C51E82A2
%92 = load double, double* %4
%93 = call double @llvm.fmuladd.f64(double 0xBFA8E75F978C9B7C, double %92, double %91)
%94 = load double, double* %4
%95 = fmul double 0x3F05E592806101F3, %94
%96 = load double, double* %4
%97 = call double @llvm.fmuladd.f64(double %95, double %96, double %93)
%98 = load double, double* %4
%99 = call double @pow(double %98, i32 3)
%100 = call double @llvm.fmuladd.f64(double 0xBE4F091F45323982, double %99, double %97)
%101 = load double, double* %4
%102 = call double @log(double %101)
%103 = call double @llvm.fmuladd.f64(double 0x401A2F120D48BDDF, double %102, double %100)
store double %103, double* %3
br label %104
104: ; preds = %88, %69
br label %105
105: ; preds = %104, %55
%106 = load double, double* %3
%107 = call double @exp(double %106)
ret double %107
}

LLVM IR (-O2):
@.str = [50 x i8] c"Dry bulb temperature is outside range [-148, 392]\00"
@.str.1 = [153 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/psychrometrics/psychrolib/refs/heads/master/src/c/psychrolib.c\00"
@.str.2 = [50 x i8] c"Dry bulb temperature is outside range [-100, 200]\00"
define double @GetSatVapPres(double %0) {
%2 = tail call i64 (...) @isIP()
%3 = icmp eq i64 %2, 0
br i1 %3, label %35, label %4
4: ; preds = %1
%5 = fcmp oge double %0, -1.480000e+02
%6 = fcmp ole double %0, 3.920000e+02
%7 = and i1 %5, %6
br i1 %7, label %10, label %8
8: ; preds = %4
%9 = tail call i32 @Assert(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([153 x i8], [153 x i8]* @.str.1, i64 0, i64 0), i32 755)
br label %10
10: ; preds = %4, %8
%11 = tail call double @GetTRankineFromTFahrenheit(double %0)
%12 = fcmp ugt double %0, 3.201800e+01
br i1 %12, label %25, label %13
13: ; preds = %10
%14 = fdiv double 0x40C3F3151EB851EC, %11
%15 = fsub double 0xC01392AE3D958CC5, %14
%16 = tail call double @llvm.fmuladd.f64(double %11, double 0xBF7605C08AFF5FE3, double %15)
%17 = fmul double %11, 0x3E89C5E2F18256EE
%18 = tail call double @llvm.fmuladd.f64(double %17, double %11, double %16)
%19 = tail call double @pow(double %11, i32 3)
%20 = tail call double @llvm.fmuladd.f64(double %19, double 0x3DF8729109922038, double %18)
%21 = tail call double @pow(double %11, i32 4)
%22 = tail call double @llvm.fmuladd.f64(double %21, double 0xBD396E0556843A5B, double %20)
%23 = tail call double @log(double %11)
%24 = tail call double @llvm.fmuladd.f64(double %23, double 0x4010A76D0AC555E0, double %22)
br label %66
25: ; preds = %10
%26 = fdiv double 0x40C46432D0E56042, %11
%27 = fsub double 0xC02696DC5D638866, %26
%28 = tail call double @llvm.fmuladd.f64(double %11, double 0xBF9BABBF8BF19051, double %27)
%29 = fmul double %11, 0x3EEB0875969957D5
%30 = tail call double @llvm.fmuladd.f64(double %29, double %11, double %28)
%31 = tail call double @pow(double %11, i32 3)
%32 = tail call double @llvm.fmuladd.f64(double %31, double 0xBE254954524BD8EE, double %30)
%33 = tail call double @log(double %11)
%34 = tail call double @llvm.fmuladd.f64(double %33, double 0x401A2F120D48BDDF, double %32)
br label %66
35: ; preds = %1
%36 = fcmp oge double %0, -1.000000e+02
%37 = fcmp ole double %0, 2.000000e+02
%38 = and i1 %36, %37
br i1 %38, label %41, label %39
39: ; preds = %35
%40 = tail call i32 @Assert(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([153 x i8], [153 x i8]* @.str.1, i64 0, i64 0), i32 768)
br label %41
41: ; preds = %35, %39
%42 = tail call double @GetTKelvinFromTCelsius(double %0)
%43 = fcmp ugt double %0, 1.000000e-02
br i1 %43, label %56, label %44
44: ; preds = %41
%45 = fdiv double 0x40B62A8930BE0DED, %42
%46 = fsub double 0x401991F1FEB57D25, %45
%47 = tail call double @llvm.fmuladd.f64(double %42, double 0xBF83D1FA19725315, double %46)
%48 = fmul double %42, 0x3EA4E049BBCCDCB5
%49 = tail call double @llvm.fmuladd.f64(double %48, double %42, double %47)
%50 = tail call double @pow(double %42, i32 3)
%51 = tail call double @llvm.fmuladd.f64(double %50, double 0x3E21D27EB63438FB, double %49)
%52 = tail call double @pow(double %42, i32 4)
%53 = tail call double @llvm.fmuladd.f64(double %52, double 0xBD70AF3985A087B4, double %51)
%54 = tail call double @log(double %42)
%55 = tail call double @llvm.fmuladd.f64(double %54, double 0x4010A76D0AC555E0, double %53)
br label %66
56: ; preds = %41
%57 = fdiv double 0x40B6A838793DD97F, %42
%58 = fsub double 0x3FF64394C51E82A2, %57
%59 = tail call double @llvm.fmuladd.f64(double %42, double 0xBFA8E75F978C9B7C, double %58)
%60 = fmul double %42, 0x3F05E592806101F3
%61 = tail call double @llvm.fmuladd.f64(double %60, double %42, double %59)
%62 = tail call double @pow(double %42, i32 3)
%63 = tail call double @llvm.fmuladd.f64(double %62, double 0xBE4F091F45323982, double %61)
%64 = tail call double @log(double %42)
%65 = tail call double @llvm.fmuladd.f64(double %64, double 0x401A2F120D48BDDF, double %63)
br label %66
66: ; preds = %44, %56, %13, %25
%67 = phi double [ %24, %13 ], [ %34, %25 ], [ %55, %44 ], [ %65, %56 ]
%68 = tail call double @exp(double %67)
ret double %68
}