#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 */
double exp(double);
double log(double);
double log10(double);
double pow(double, double);
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ scanf(char *, double *);
double sqrt(double);
int main(void) {
  double q1, q2, q3, q4, q5, q6, q7, q8, q9, IQA, o2, CF, DBO, T, FT, NT, pH,
      RT, TU;
  printf("O2:");
  scanf("%lf", &o2);
  if (o2 == 140) {
    q9 = 47;
  } else {
    q9 = 100.8 * exp(pow(o2 + (-106), 2) / -3745);
  }
  printf("CF:");
  scanf("%lf", &CF);
  if (CF > 100000) {
    q1 = 3.0;
  } else {
    q1 = 98.03 + (-36.45 * log(CF)) + (3.138 * pow(log10(CF), 2)) +
         (0.06776 * pow(log10(CF), 3));
  }
  printf("pH:");
  scanf("%lf", &pH);
  if (pH > 12) {
    q2 = 3.0;
  }
  if (pH < 2) {
    q2 = 2.0;
  } else {
    q2 = 0.05421 * pow(pH, (1.23 * pH) + (-0.09873 * pow(pH, 2))) + 5.213;
  }
  printf("DBO:");
  scanf("%lf", &DBO);
  if (DBO > 30) {
    q3 = 2.0;
  } else {
    q3 = 102.6 * exp(-0.01101 * DBO);
  }
  printf("NT:");
  scanf("%lf", &NT);
  if (NT > 100) {
    q4 = 1.0;
  } else {
    q4 = 98.96 * pow(NT, (-0.2232) + (-0.006457) * NT);
  }
  printf("FT:");
  scanf("%lf", &FT);
  if (FT > 10) {
    q5 = 1.0;
  } else {
    q5 = 213.7 * exp(-1.680 * pow(FT, 0.3325));
  }
  printf("T:");
  scanf("%lf", &T);
  if (T > 15) {
    q6 = 9.0;
  } else {
    q6 = 1 / (0.0003869 * pow(T + 0.1815, 2) + 0.01081);
  }
  printf("TU:");
  scanf("%lf", &TU);
  if (TU > 100) {
    q7 = 5.0;
  } else {
    q7 = 97.34 * exp(-0.01139 * TU) + (-0.04917 * sqrt(TU));
  }
  printf("RT:");
  scanf("%lf", &RT);
  if (RT > 500) {
    q8 = 32.0;
  } else {
    q8 = 80.26 * exp(-0.00107 * RT) + (0.03009 * sqrt(RT) + (-0.1185 * RT));
  }
  IQA = pow(q9, 0.17) * pow(q1, 0.15) * pow(q2, 0.12) * pow(q3, 0.10) *
        pow(q4, 0.10) * pow(q5, 0.10) * pow(q6, 0.1) * pow(q7, 0.08) *
        pow(q8, 0.08);
  if (IQA > 79 && IQA <= 100) {
    printf("%lf  = Qualidade Otima!\n", IQA);
  }
  if (IQA > 50 && IQA <= 79) {
    printf("%lf  = Qualidade Boa!\n", IQA);
  }
  if (IQA > 36 && IQA <= 50) {
    printf("%lf  = Qualidade Aceitável\n", IQA);
  }
  if (IQA > 19 && IQA <= 36) {
    printf("%lf  = Qualidade Ruim\n", IQA);
  }
  if (IQA > 0 && IQA <= 19) {
    printf("%lf  = Qualidade Péssima\n", IQA);
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x110,%rsp
movl   $0x0,-0x4(%rbp)
lea    0x101f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1015(%rip),%rdi
lea    -0x60(%rbp),%rsi
call   1050 <scanf@plt>
movsd  -0x60(%rbp),%xmm0
movsd  0xe53(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    11cf <main+0x5f>
jp     11cf <main+0x5f>
movsd  0xe63(%rip),%xmm0
movsd  %xmm0,-0x50(%rbp)
jmp    120e <main+0x9e>
movsd  0xe49(%rip),%xmm0
addsd  -0x60(%rbp),%xmm0
movsd  0xe34(%rip),%xmm1
call   1070 <pow@plt>
movsd  0xe1f(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  0xe03(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
lea    0xf9b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf89(%rip),%rdi
lea    -0x68(%rbp),%rsi
call   1050 <scanf@plt>
movsd  -0x68(%rbp),%xmm0
movsd  0xdf7(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1255 <main+0xe5>
movsd  0xdf5(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    12ea <main+0x17a>
movsd  -0x68(%rbp),%xmm0
call   1060 <log@plt>
movsd  0xde9(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xde5(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
call   1080 <log10@plt>
movsd  0xd87(%rip),%xmm1
call   1070 <pow@plt>
movsd  -0xb0(%rbp),%xmm1
ff
movsd  0xda2(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
call   1080 <log10@plt>
movsd  0xd78(%rip),%xmm1
call   1070 <pow@plt>
movsd  -0xa8(%rbp),%xmm1
ff
movsd  0xd5b(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
lea    0xec3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xead(%rip),%rdi
lea    -0x90(%rbp),%rsi
call   1050 <scanf@plt>
movsd  -0x90(%rbp),%xmm0
ff
movsd  0xd45(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1332 <main+0x1c2>
movsd  0xd13(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  0xcde(%rip),%xmm0
ucomisd -0x90(%rbp),%xmm0
ff
jbe    135a <main+0x1ea>
movsd  0xcc8(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    13e0 <main+0x270>
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  0xc8e(%rip),%xmm1
call   1070 <pow@plt>
movsd  -0xc0(%rbp),%xmm1
ff
movaps %xmm0,%xmm3
movsd  -0xb8(%rbp),%xmm0
ff
movsd  0xcd6(%rip),%xmm2
mulsd  %xmm3,%xmm2
movsd  0xcc2(%rip),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
call   1070 <pow@plt>
movsd  0xc9d(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc99(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x18(%rbp)
lea    0xdd1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xdb7(%rip),%rdi
lea    -0x70(%rbp),%rsi
call   1050 <scanf@plt>
movsd  -0x70(%rbp),%xmm0
movsd  0xc7d(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1427 <main+0x2b7>
movsd  0xbfb(%rip),%xmm0
movsd  %xmm0,-0x20(%rbp)
jmp    144d <main+0x2dd>
movsd  0xc69(%rip),%xmm0
mulsd  -0x70(%rbp),%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  0xc4c(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
lea    0xd69(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xd4a(%rip),%rdi
lea    -0x88(%rbp),%rsi
call   1050 <scanf@plt>
movsd  -0x88(%rbp),%xmm0
ff
movsd  0xc22(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    149a <main+0x32a>
movsd  0xc30(%rip),%xmm0
movsd  %xmm0,-0x28(%rbp)
jmp    14db <main+0x36b>
movsd  -0x88(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm1
ff
movsd  0xbfe(%rip),%xmm2
mulsd  %xmm2,%xmm1
movsd  0xbfa(%rip),%xmm2
addsd  %xmm2,%xmm1
call   1070 <pow@plt>
movaps %xmm0,%xmm1
movsd  0xbd6(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
lea    0xcdf(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xcbc(%rip),%rdi
lea    -0x80(%rbp),%rsi
call   1050 <scanf@plt>
movsd  -0x80(%rbp),%xmm0
movsd  0xbc2(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1522 <main+0x3b2>
movsd  0xba8(%rip),%xmm0
movsd  %xmm0,-0x30(%rbp)
jmp    155c <main+0x3ec>
movsd  -0x80(%rbp),%xmm0
movsd  0xbb1(%rip),%xmm1
call   1070 <pow@plt>
movaps %xmm0,%xmm1
movsd  0xb99(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  0xb7d(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
lea    0xc5f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xc3b(%rip),%rdi
lea    -0x78(%rbp),%rsi
call   1050 <scanf@plt>
movsd  -0x78(%rbp),%xmm0
movsd  0xb61(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    15a3 <main+0x433>
movsd  0xb6f(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
jmp    15e9 <main+0x479>
movsd  0xb55(%rip),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  0xa60(%rip),%xmm1
call   1070 <pow@plt>
movaps %xmm0,%xmm1
movsd  0xb28(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0xb24(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  0xae0(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
lea    0xbd5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xbae(%rip),%rdi
lea    -0xa0(%rbp),%rsi
call   1050 <scanf@plt>
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0xa86(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1636 <main+0x4c6>
movsd  0xafc(%rip),%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    168c <main+0x51c>
movsd  0xae2(%rip),%xmm0
mulsd  -0xa0(%rbp),%xmm0
ff
call   1040 <exp@plt>
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
call   1090 <sqrt@plt>
movaps %xmm0,%xmm2
movsd  -0xc8(%rbp),%xmm0
ff
movsd  0xaa5(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0xa91(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
lea    0xb36(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xb0b(%rip),%rdi
lea    -0x98(%rbp),%rsi
call   1050 <scanf@plt>
movsd  -0x98(%rbp),%xmm0
ff
movsd  0xa73(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    16d9 <main+0x569>
movsd  0xa89(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    1743 <main+0x5d3>
movsd  0xa6f(%rip),%xmm0
mulsd  -0x98(%rbp),%xmm0
ff
call   1040 <exp@plt>
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
call   1090 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0xd0(%rbp),%xmm0
ff
movsd  0xa32(%rip),%xmm2
mulsd  -0x98(%rbp),%xmm2
ff
movsd  0xa1a(%rip),%xmm3
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
movsd  0xa02(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  0xa38(%rip),%xmm1
call   1070 <pow@plt>
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0xa16(%rip),%xmm1
call   1070 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x110(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  0x9e5(%rip),%xmm1
call   1070 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x108(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
movsd  0x9b4(%rip),%xmm1
call   1070 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x100(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
movsd  0x98b(%rip),%xmm1
call   1070 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xf8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0x962(%rip),%xmm1
call   1070 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xf0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  0x939(%rip),%xmm1
call   1070 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xe8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  0x908(%rip),%xmm1
call   1070 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xe0(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  0x8df(%rip),%xmm1
call   1070 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xd8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  0x8b1(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    18df <main+0x76f>
movsd  0x7df(%rip),%xmm0
ucomisd -0x58(%rbp),%xmm0
jb     18df <main+0x76f>
movsd  -0x58(%rbp),%xmm0
lea    0x8f5(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x58(%rbp),%xmm0
movsd  0x8a4(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    191c <main+0x7ac>
movsd  0x862(%rip),%xmm0
ucomisd -0x58(%rbp),%xmm0
jb     191c <main+0x7ac>
movsd  -0x58(%rbp),%xmm0
lea    0x8d1(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x58(%rbp),%xmm0
movsd  0x86f(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1959 <main+0x7e9>
movsd  0x855(%rip),%xmm0
ucomisd -0x58(%rbp),%xmm0
jb     1959 <main+0x7e9>
movsd  -0x58(%rbp),%xmm0
lea    0x8ab(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x58(%rbp),%xmm0
movsd  0x83a(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1996 <main+0x826>
movsd  0x820(%rip),%xmm0
ucomisd -0x58(%rbp),%xmm0
jb     1996 <main+0x826>
movsd  -0x58(%rbp),%xmm0
lea    0x88b(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    19ce <main+0x85e>
movsd  0x7f0(%rip),%xmm0
ucomisd -0x58(%rbp),%xmm0
jb     19ce <main+0x85e>
movsd  -0x58(%rbp),%xmm0
lea    0x86a(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x110,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
sub    $0x98,%rsp
lea    0x1022(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x1018(%rip),%rdi
lea    0x90(%rsp),%rsi
call   1050 <scanf@plt>
movsd  0x90(%rsp),%xmm0
ucomisd 0xe5e(%rip),%xmm0
jne    11b8 <main+0x48>
jp     11b8 <main+0x48>
movsd  0xe4a(%rip),%xmm0
jmp    11d9 <main+0x69>
addsd  0xe50(%rip),%xmm0
mulsd  %xmm0,%xmm0
divsd  0xe4c(%rip),%xmm0
call   1040 <exp@plt>
mulsd  0xe47(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
lea    0xfc2(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xfb0(%rip),%rdi
lea    0x30(%rsp),%rsi
call   1050 <scanf@plt>
movsd  0x30(%rsp),%xmm0
ucomisd 0xe24(%rip),%xmm0
jbe    1218 <main+0xa8>
movsd  0xe12(%rip),%xmm0
jmp    127c <main+0x10c>
call   1060 <log@plt>
mulsd  0xe13(%rip),%xmm0
addsd  0xe13(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x30(%rsp),%xmm0
call   1080 <log10@plt>
mulsd  %xmm0,%xmm0
mulsd  0xdfe(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x30(%rsp),%xmm0
call   1080 <log10@plt>
movsd  0xdbf(%rip),%xmm1
call   1070 <pow@plt>
mulsd  0xdda(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x40(%rsp)
lea    0xf23(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xf0d(%rip),%rdi
lea    0x68(%rsp),%rsi
call   1050 <scanf@plt>
movsd  0x68(%rsp),%xmm0
movsd  0xda9(%rip),%xmm1
ucomisd %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
ja     12f4 <main+0x184>
movapd %xmm0,%xmm2
mulsd  %xmm0,%xmm2
mulsd  0xd95(%rip),%xmm2
movsd  0xd95(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
call   1070 <pow@plt>
movapd %xmm0,%xmm1
mulsd  0xd84(%rip),%xmm1
addsd  0xd84(%rip),%xmm1
movsd  %xmm1,0x60(%rsp)
lea    0xeaf(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xe95(%rip),%rdi
lea    0x88(%rsp),%rsi
call   1050 <scanf@plt>
movsd  0x88(%rsp),%xmm0
ucomisd 0xd53(%rip),%xmm0
ja     134a <main+0x1da>
mulsd  0xd51(%rip),%xmm0
call   1040 <exp@plt>
mulsd  0xd4c(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
lea    0xe64(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xe45(%rip),%rdi
lea    0x70(%rsp),%rsi
call   1050 <scanf@plt>
movsd  0x70(%rsp),%xmm0
movsd  0xd21(%rip),%xmm1
ucomisd 0xd21(%rip),%xmm0
movsd  %xmm1,0x48(%rsp)
ja     13ac <main+0x23c>
movsd  0xd19(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  0xd15(%rip),%xmm1
call   1070 <pow@plt>
movapd %xmm0,%xmm1
mulsd  0xd0c(%rip),%xmm1
movsd  %xmm1,0x58(%rsp)
lea    0xe00(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xddd(%rip),%rdi
lea    0x78(%rsp),%rsi
call   1050 <scanf@plt>
movsd  0x78(%rsp),%xmm0
ucomisd 0xce1(%rip),%xmm0
ja     1409 <main+0x299>
movsd  0xcdf(%rip),%xmm1
call   1070 <pow@plt>
mulsd  0xcda(%rip),%xmm0
call   1040 <exp@plt>
mulsd  0xcd5(%rip),%xmm0
movsd  %xmm0,0x48(%rsp)
lea    0xdaa(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xd86(%rip),%rdi
lea    0x80(%rsp),%rsi
call   1050 <scanf@plt>
movsd  0x80(%rsp),%xmm0
ucomisd 0xcac(%rip),%xmm0
jbe    144e <main+0x2de>
movsd  0xc9a(%rip),%xmm0
movsd  %xmm0,0x38(%rsp)
jmp    147c <main+0x30c>
addsd  0xc9a(%rip),%xmm0
mulsd  %xmm0,%xmm0
mulsd  0xc96(%rip),%xmm0
addsd  0xc96(%rip),%xmm0
movsd  0xc26(%rip),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x38(%rsp)
lea    0xd3a(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xd13(%rip),%rdi
lea    0x50(%rsp),%rsi
call   1050 <scanf@plt>
movsd  0x50(%rsp),%xmm0
ucomisd 0xbf7(%rip),%xmm0
jbe    14bb <main+0x34b>
movsd  0xc55(%rip),%xmm0
movsd  %xmm0,0x20(%rsp)
jmp    150d <main+0x39d>
mulsd  0xc4d(%rip),%xmm0
call   1040 <exp@plt>
movapd %xmm0,%xmm2
movsd  0x50(%rsp),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     14e2 <main+0x372>
sqrtsd %xmm0,%xmm0
jmp    14f3 <main+0x383>
movsd  %xmm2,0x20(%rsp)
call   1090 <sqrt@plt>
movsd  0x20(%rsp),%xmm2
mulsd  0xc1d(%rip),%xmm0
mulsd  0xc1d(%rip),%xmm2
addsd  %xmm0,%xmm2
movsd  %xmm2,0x20(%rsp)
lea    0xcad(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xc82(%rip),%rdi
lea    0x28(%rsp),%rsi
call   1050 <scanf@plt>
movsd  0x28(%rsp),%xmm0
ucomisd 0xbf6(%rip),%xmm0
jbe    154c <main+0x3dc>
movsd  0xbe4(%rip),%xmm0
movsd  %xmm0,0x18(%rsp)
jmp    15b0 <main+0x440>
mulsd  0xbe4(%rip),%xmm0
call   1040 <exp@plt>
movapd %xmm0,%xmm2
movsd  0x28(%rsp),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1573 <main+0x403>
sqrtsd %xmm0,%xmm0
jmp    1584 <main+0x414>
movsd  %xmm2,0x18(%rsp)
call   1090 <sqrt@plt>
movsd  0x18(%rsp),%xmm2
movsd  0x28(%rsp),%xmm1
mulsd  0xbae(%rip),%xmm1
mulsd  0xbae(%rip),%xmm0
addsd  %xmm1,%xmm0
mulsd  0xbaa(%rip),%xmm2
addsd  %xmm0,%xmm2
movsd  %xmm2,0x18(%rsp)
movsd  0xba0(%rip),%xmm1
movsd  0x10(%rsp),%xmm0
call   1070 <pow@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0xb8f(%rip),%xmm1
movsd  0x40(%rsp),%xmm0
call   1070 <pow@plt>
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xb78(%rip),%xmm1
movsd  0x60(%rsp),%xmm0
call   1070 <pow@plt>
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xb61(%rip),%xmm1
movsd  0x8(%rsp),%xmm0
call   1070 <pow@plt>
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x58(%rsp),%xmm0
movsd  0xb3c(%rip),%xmm1
call   1070 <pow@plt>
mulsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x48(%rsp),%xmm0
movsd  0xb1d(%rip),%xmm1
call   1070 <pow@plt>
mulsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x38(%rsp),%xmm0
movsd  0xafe(%rip),%xmm1
call   1070 <pow@plt>
mulsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0xaed(%rip),%xmm1
movsd  0x20(%rsp),%xmm0
call   1070 <pow@plt>
mulsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x18(%rsp),%xmm0
movsd  0xac8(%rip),%xmm1
call   1070 <pow@plt>
mulsd  0x8(%rsp),%xmm0
ucomisd 0xabd(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
jbe    16ed <main+0x57d>
movsd  0x9cd(%rip),%xmm1
ucomisd %xmm0,%xmm1
jb     16ed <main+0x57d>
lea    0xae5(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  0x8(%rsp),%xmm0
ucomisd 0xa93(%rip),%xmm0
jbe    1719 <main+0x5a9>
movsd  0xa81(%rip),%xmm1
ucomisd %xmm0,%xmm1
jb     1719 <main+0x5a9>
lea    0xad2(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  0x8(%rsp),%xmm0
ucomisd 0xa6f(%rip),%xmm0
jbe    1745 <main+0x5d5>
movsd  0xa5d(%rip),%xmm1
ucomisd %xmm0,%xmm1
jb     1745 <main+0x5d5>
lea    0xabd(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  0x8(%rsp),%xmm0
ucomisd 0xa4b(%rip),%xmm0
jbe    1771 <main+0x601>
movsd  0xa39(%rip),%xmm1
ucomisd %xmm0,%xmm1
jb     1771 <main+0x601>
lea    0xaae(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movsd  0x8(%rsp),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1797 <main+0x627>
movsd  0xa15(%rip),%xmm1
ucomisd %xmm0,%xmm1
jb     1797 <main+0x627>
lea    0xa99(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x98,%rsp
ret

LLVM IR (-O0):
@.str = [4 x i8] c"O2:\00"
@.str.1 = [4 x i8] c"%lf\00"
@.str.2 = [4 x i8] c"CF:\00"
@.str.3 = [4 x i8] c"pH:\00"
@.str.4 = [5 x i8] c"DBO:\00"
@.str.5 = [4 x i8] c"NT:\00"
@.str.6 = [4 x i8] c"FT:\00"
@.str.7 = [3 x i8] c"T:\00"
@.str.8 = [4 x i8] c"TU:\00"
@.str.9 = [4 x i8] c"RT:\00"
@.str.10 = [25 x i8] c"%lf = Qualidade Otima!\0A\00"
@.str.11 = [23 x i8] c"%lf = Qualidade Boa!\0A\00"
@.str.12 = [29 x i8] c"%lf = Qualidade Aceit\C3\A1vel\0A\00"
@.str.13 = [23 x i8] c"%lf = Qualidade Ruim\0A\00"
@.str.14 = [27 x i8] c"%lf = Qualidade P\C3\A9ssima\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca double
%3 = alloca double
%4 = alloca double
%5 = alloca double
%6 = alloca double
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca double
store i32 0, i32* %1
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%22 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %12)
%23 = load double, double* %12
%24 = fcmp oeq double %23, 1.400000e+02
br i1 %24, label %25, label %26
25: ; preds = %0
store double 4.700000e+01, double* %10
br label %33
26: ; preds = %0
%27 = load double, double* %12
%28 = fadd double %27, -1.060000e+02
%29 = call double @pow(double %28, double 2.000000e+00)
%30 = fdiv double %29, -3.745000e+03
%31 = call double @exp(double %30)
%32 = fmul double 1.008000e+02, %31
store double %32, double* %10
br label %33
33: ; preds = %26, %25
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
%35 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %13)
%36 = load double, double* %13
%37 = fcmp ogt double %36, 1.000000e+05
br i1 %37, label %38, label %39
38: ; preds = %33
store double 3.000000e+00, double* %2
br label %51
39: ; preds = %33
%40 = load double, double* %13
%41 = call double @log(double %40)
%42 = call double @llvm.fmuladd.f64(double -3.645000e+01, double %41, double 9.803000e+01)
%43 = load double, double* %13
%44 = call double @log10(double %43)
%45 = call double @pow(double %44, double 2.000000e+00)
%46 = call double @llvm.fmuladd.f64(double 3.138000e+00, double %45, double %42)
%47 = load double, double* %13
%48 = call double @log10(double %47)
%49 = call double @pow(double %48, double 3.000000e+00)
%50 = call double @llvm.fmuladd.f64(double 6.776000e-02, double %49, double %46)
store double %50, double* %2
br label %51
51: ; preds = %39, %38
%52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0))
%53 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %18)
%54 = load double, double* %18
%55 = fcmp ogt double %54, 1.200000e+01
br i1 %55, label %56, label %57
56: ; preds = %51
store double 3.000000e+00, double* %3
br label %57
57: ; preds = %56, %51
%58 = load double, double* %18
%59 = fcmp olt double %58, 2.000000e+00
br i1 %59, label %60, label %61
60: ; preds = %57
store double 2.000000e+00, double* %3
br label %70
61: ; preds = %57
%62 = load double, double* %18
%63 = load double, double* %18
%64 = load double, double* %18
%65 = call double @pow(double %64, double 2.000000e+00)
%66 = fmul double 0xBFB9465E89225311, %65
%67 = call double @llvm.fmuladd.f64(double 1.230000e+00, double %63, double %66)
%68 = call double @pow(double %62, double %67)
%69 = call double @llvm.fmuladd.f64(double 5.421000e-02, double %68, double 5.213000e+00)
store double %69, double* %3
br label %70
70: ; preds = %61, %60
%71 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%72 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %14)
%73 = load double, double* %14
%74 = fcmp ogt double %73, 3.000000e+01
br i1 %74, label %75, label %76
75: ; preds = %70
store double 2.000000e+00, double* %4
br label %81
76: ; preds = %70
%77 = load double, double* %14
%78 = fmul double -1.101000e-02, %77
%79 = call double @exp(double %78)
%80 = fmul double 1.026000e+02, %79
store double %80, double* %4
br label %81
81: ; preds = %76, %75
%82 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0))
%83 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %17)
%84 = load double, double* %17
%85 = fcmp ogt double %84, 1.000000e+02
br i1 %85, label %86, label %87
86: ; preds = %81
store double 1.000000e+00, double* %5
br label %93
87: ; preds = %81
%88 = load double, double* %17
%89 = load double, double* %17
%90 = call double @llvm.fmuladd.f64(double -6.457000e-03, double %89, double -2.232000e-01)
%91 = call double @pow(double %88, double %90)
%92 = fmul double 0x4058BD70A3D70A3D, %91
store double %92, double* %5
br label %93
93: ; preds = %87, %86
%94 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0))
%95 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %16)
%96 = load double, double* %16
%97 = fcmp ogt double %96, 1.000000e+01
br i1 %97, label %98, label %99
98: ; preds = %93
store double 1.000000e+00, double* %6
br label %105
99: ; preds = %93
%100 = load double, double* %16
%101 = call double @pow(double %100, double 3.325000e-01)
%102 = fmul double -1.680000e+00, %101
%103 = call double @exp(double %102)
%104 = fmul double 2.137000e+02, %103
store double %104, double* %6
br label %105
105: ; preds = %99, %98
%106 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0))
%107 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %15)
%108 = load double, double* %15
%109 = fcmp ogt double %108, 1.500000e+01
br i1 %109, label %110, label %111
110: ; preds = %105
store double 9.000000e+00, double* %7
br label %117
111: ; preds = %105
%112 = load double, double* %15
%113 = fadd double %112, 1.815000e-01
%114 = call double @pow(double %113, double 2.000000e+00)
%115 = call double @llvm.fmuladd.f64(double 3.869000e-04, double %114, double 1.081000e-02)
%116 = fdiv double 1.000000e+00, %115
store double %116, double* %7
br label %117
117: ; preds = %111, %110
%118 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
%119 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %20)
%120 = load double, double* %20
%121 = fcmp ogt double %120, 1.000000e+02
br i1 %121, label %122, label %123
122: ; preds = %117
store double 5.000000e+00, double* %8
br label %131
123: ; preds = %117
%124 = load double, double* %20
%125 = fmul double -1.139000e-02, %124
%126 = call double @exp(double %125)
%127 = load double, double* %20
%128 = call double @sqrt(double %127)
%129 = fmul double -4.917000e-02, %128
%130 = call double @llvm.fmuladd.f64(double 9.734000e+01, double %126, double %129)
store double %130, double* %8
br label %131
131: ; preds = %123, %122
%132 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0))
%133 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %19)
%134 = load double, double* %19
%135 = fcmp ogt double %134, 5.000000e+02
br i1 %135, label %136, label %137
136: ; preds = %131
store double 3.200000e+01, double* %9
br label %147
137: ; preds = %131
%138 = load double, double* %19
%139 = fmul double -1.070000e-03, %138
%140 = call double @exp(double %139)
%141 = load double, double* %19
%142 = call double @sqrt(double %141)
%143 = load double, double* %19
%144 = fmul double -1.185000e-01, %143
%145 = call double @llvm.fmuladd.f64(double 3.009000e-02, double %142, double %144)
%146 = call double @llvm.fmuladd.f64(double 8.026000e+01, double %140, double %145)
store double %146, double* %9
br label %147
147: ; preds = %137, %136
%148 = load double, double* %10
%149 = call double @pow(double %148, double 1.700000e-01)
%150 = load double, double* %2
%151 = call double @pow(double %150, double 1.500000e-01)
%152 = fmul double %149, %151
%153 = load double, double* %3
%154 = call double @pow(double %153, double 1.200000e-01)
%155 = fmul double %152, %154
%156 = load double, double* %4
%157 = call double @pow(double %156, double 1.000000e-01)
%158 = fmul double %155, %157
%159 = load double, double* %5
%160 = call double @pow(double %159, double 1.000000e-01)
%161 = fmul double %158, %160
%162 = load double, double* %6
%163 = call double @pow(double %162, double 1.000000e-01)
%164 = fmul double %161, %163
%165 = load double, double* %7
%166 = call double @pow(double %165, double 1.000000e-01)
%167 = fmul double %164, %166
%168 = load double, double* %8
%169 = call double @pow(double %168, double 8.000000e-02)
%170 = fmul double %167, %169
%171 = load double, double* %9
%172 = call double @pow(double %171, double 8.000000e-02)
%173 = fmul double %170, %172
store double %173, double* %11
%174 = load double, double* %11
%175 = fcmp ogt double %174, 7.900000e+01
br i1 %175, label %176, label %182
176: ; preds = %147
%177 = load double, double* %11
%178 = fcmp ole double %177, 1.000000e+02
br i1 %178, label %179, label %182
179: ; preds = %176
%180 = load double, double* %11
%181 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.10, i64 0, i64 0), double %180)
br label %182
182: ; preds = %179, %176, %147
%183 = load double, double* %11
%184 = fcmp ogt double %183, 5.000000e+01
br i1 %184, label %185, label %191
185: ; preds = %182
%186 = load double, double* %11
%187 = fcmp ole double %186, 7.900000e+01
br i1 %187, label %188, label %191
188: ; preds = %185
%189 = load double, double* %11
%190 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.11, i64 0, i64 0), double %189)
br label %191
191: ; preds = %188, %185, %182
%192 = load double, double* %11
%193 = fcmp ogt double %192, 3.600000e+01
br i1 %193, label %194, label %200
194: ; preds = %191
%195 = load double, double* %11
%196 = fcmp ole double %195, 5.000000e+01
br i1 %196, label %197, label %200
197: ; preds = %194
%198 = load double, double* %11
%199 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double %198)
br label %200
200: ; preds = %197, %194, %191
%201 = load double, double* %11
%202 = fcmp ogt double %201, 1.900000e+01
br i1 %202, label %203, label %209
203: ; preds = %200
%204 = load double, double* %11
%205 = fcmp ole double %204, 3.600000e+01
br i1 %205, label %206, label %209
206: ; preds = %203
%207 = load double, double* %11
%208 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.13, i64 0, i64 0), double %207)
br label %209
209: ; preds = %206, %203, %200
%210 = load double, double* %11
%211 = fcmp ogt double %210, 0.000000e+00
br i1 %211, label %212, label %218
212: ; preds = %209
%213 = load double, double* %11
%214 = fcmp ole double %213, 1.900000e+01
br i1 %214, label %215, label %218
215: ; preds = %212
%216 = load double, double* %11
%217 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.14, i64 0, i64 0), double %216)
br label %218
218: ; preds = %215, %212, %209
ret i32 0
}

LLVM IR (-O2):
@.str = [4 x i8] c"O2:\00"
@.str.1 = [4 x i8] c"%lf\00"
@.str.2 = [4 x i8] c"CF:\00"
@.str.3 = [4 x i8] c"pH:\00"
@.str.4 = [5 x i8] c"DBO:\00"
@.str.5 = [4 x i8] c"NT:\00"
@.str.6 = [4 x i8] c"FT:\00"
@.str.7 = [3 x i8] c"T:\00"
@.str.8 = [4 x i8] c"TU:\00"
@.str.9 = [4 x i8] c"RT:\00"
@.str.10 = [25 x i8] c"%lf = Qualidade Otima!\0A\00"
@.str.11 = [23 x i8] c"%lf = Qualidade Boa!\0A\00"
@.str.12 = [29 x i8] c"%lf = Qualidade Aceit\C3\A1vel\0A\00"
@.str.13 = [23 x i8] c"%lf = Qualidade Ruim\0A\00"
@.str.14 = [27 x i8] c"%lf = Qualidade P\C3\A9ssima\0A\00"
define i32 @main() {
%1 = alloca double
%2 = alloca double
%3 = alloca double
%4 = alloca double
%5 = alloca double
%6 = alloca double
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = bitcast double* %1 to i8*
%11 = bitcast double* %2 to i8*
%12 = bitcast double* %3 to i8*
%13 = bitcast double* %4 to i8*
%14 = bitcast double* %5 to i8*
%15 = bitcast double* %6 to i8*
%16 = bitcast double* %7 to i8*
%17 = bitcast double* %8 to i8*
%18 = bitcast double* %9 to i8*
%19 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%20 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %1)
%21 = load double, double* %1
%22 = fcmp oeq double %21, 1.400000e+02
br i1 %22, label %29, label %23
23: ; preds = %0
%24 = fadd double %21, -1.060000e+02
%25 = fmul double %24, %24
%26 = fdiv double %25, -3.745000e+03
%27 = call double @exp(double %26)
%28 = fmul double %27, 1.008000e+02
br label %29
29: ; preds = %0, %23
%30 = phi double [ %28, %23 ], [ 4.700000e+01, %0 ]
%31 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
%32 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %2)
%33 = load double, double* %2
%34 = fcmp ogt double %33, 1.000000e+05
br i1 %34, label %46, label %35
35: ; preds = %29
%36 = call double @log(double %33)
%37 = call double @llvm.fmuladd.f64(double %36, double -3.645000e+01, double 9.803000e+01)
%38 = load double, double* %2
%39 = call double @log10(double %38)
%40 = fmul double %39, %39
%41 = call double @llvm.fmuladd.f64(double %40, double 3.138000e+00, double %37)
%42 = load double, double* %2
%43 = call double @log10(double %42)
%44 = call double @pow(double %43, double 3.000000e+00)
%45 = call double @llvm.fmuladd.f64(double %44, double 6.776000e-02, double %41)
br label %46
46: ; preds = %29, %35
%47 = phi double [ %45, %35 ], [ 3.000000e+00, %29 ]
%48 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0))
%49 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %7)
%50 = load double, double* %7
%51 = fcmp olt double %50, 2.000000e+00
br i1 %51, label %58, label %52
52: ; preds = %46
%53 = fmul double %50, %50
%54 = fmul double %53, 0xBFB9465E89225311
%55 = call double @llvm.fmuladd.f64(double %50, double 1.230000e+00, double %54)
%56 = call double @pow(double %50, double %55)
%57 = call double @llvm.fmuladd.f64(double %56, double 5.421000e-02, double 5.213000e+00)
br label %58
58: ; preds = %46, %52
%59 = phi double [ %57, %52 ], [ 2.000000e+00, %46 ]
%60 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0))
%61 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %3)
%62 = load double, double* %3
%63 = fcmp ogt double %62, 3.000000e+01
br i1 %63, label %68, label %64
64: ; preds = %58
%65 = fmul double %62, -1.101000e-02
%66 = call double @exp(double %65)
%67 = fmul double %66, 1.026000e+02
br label %68
68: ; preds = %58, %64
%69 = phi double [ %67, %64 ], [ 2.000000e+00, %58 ]
%70 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0))
%71 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %6)
%72 = load double, double* %6
%73 = fcmp ogt double %72, 1.000000e+02
br i1 %73, label %78, label %74
74: ; preds = %68
%75 = call double @llvm.fmuladd.f64(double %72, double -6.457000e-03, double -2.232000e-01)
%76 = call double @pow(double %72, double %75)
%77 = fmul double %76, 0x4058BD70A3D70A3D
br label %78
78: ; preds = %68, %74
%79 = phi double [ %77, %74 ], [ 1.000000e+00, %68 ]
%80 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0))
%81 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %5)
%82 = load double, double* %5
%83 = fcmp ogt double %82, 1.000000e+01
br i1 %83, label %89, label %84
84: ; preds = %78
%85 = call double @pow(double %82, double 3.325000e-01)
%86 = fmul double %85, -1.680000e+00
%87 = call double @exp(double %86)
%88 = fmul double %87, 2.137000e+02
br label %89
89: ; preds = %78, %84
%90 = phi double [ %88, %84 ], [ 1.000000e+00, %78 ]
%91 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0))
%92 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %4)
%93 = load double, double* %4
%94 = fcmp ogt double %93, 1.500000e+01
br i1 %94, label %100, label %95
95: ; preds = %89
%96 = fadd double %93, 1.815000e-01
%97 = fmul double %96, %96
%98 = call double @llvm.fmuladd.f64(double %97, double 3.869000e-04, double 1.081000e-02)
%99 = fdiv double 1.000000e+00, %98
br label %100
100: ; preds = %89, %95
%101 = phi double [ %99, %95 ], [ 9.000000e+00, %89 ]
%102 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
%103 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %9)
%104 = load double, double* %9
%105 = fcmp ogt double %104, 1.000000e+02
br i1 %105, label %113, label %106
106: ; preds = %100
%107 = fmul double %104, -1.139000e-02
%108 = call double @exp(double %107)
%109 = load double, double* %9
%110 = call double @sqrt(double %109)
%111 = fmul double %110, -4.917000e-02
%112 = call double @llvm.fmuladd.f64(double %108, double 9.734000e+01, double %111)
br label %113
113: ; preds = %100, %106
%114 = phi double [ %112, %106 ], [ 5.000000e+00, %100 ]
%115 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0))
%116 = call i32 @scanf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double* %8)
%117 = load double, double* %8
%118 = fcmp ogt double %117, 5.000000e+02
br i1 %118, label %128, label %119
119: ; preds = %113
%120 = fmul double %117, -1.070000e-03
%121 = call double @exp(double %120)
%122 = load double, double* %8
%123 = call double @sqrt(double %122)
%124 = load double, double* %8
%125 = fmul double %124, -1.185000e-01
%126 = call double @llvm.fmuladd.f64(double %123, double 3.009000e-02, double %125)
%127 = call double @llvm.fmuladd.f64(double %121, double 8.026000e+01, double %126)
br label %128
128: ; preds = %113, %119
%129 = phi double [ %127, %119 ], [ 3.200000e+01, %113 ]
%130 = call double @pow(double %30, double 1.700000e-01)
%131 = call double @pow(double %47, double 1.500000e-01)
%132 = fmul double %130, %131
%133 = call double @pow(double %59, double 1.200000e-01)
%134 = fmul double %132, %133
%135 = call double @pow(double %69, double 1.000000e-01)
%136 = fmul double %134, %135
%137 = call double @pow(double %79, double 1.000000e-01)
%138 = fmul double %136, %137
%139 = call double @pow(double %90, double 1.000000e-01)
%140 = fmul double %138, %139
%141 = call double @pow(double %101, double 1.000000e-01)
%142 = fmul double %140, %141
%143 = call double @pow(double %114, double 8.000000e-02)
%144 = fmul double %142, %143
%145 = call double @pow(double %129, double 8.000000e-02)
%146 = fmul double %144, %145
%147 = fcmp ogt double %146, 7.900000e+01
%148 = fcmp ole double %146, 1.000000e+02
%149 = and i1 %147, %148
br i1 %149, label %150, label %152
150: ; preds = %128
%151 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.10, i64 0, i64 0), double %146)
br label %152
152: ; preds = %150, %128
%153 = fcmp ogt double %146, 5.000000e+01
%154 = fcmp ole double %146, 7.900000e+01
%155 = and i1 %153, %154
br i1 %155, label %156, label %158
156: ; preds = %152
%157 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.11, i64 0, i64 0), double %146)
br label %158
158: ; preds = %156, %152
%159 = fcmp ogt double %146, 3.600000e+01
%160 = fcmp ole double %146, 5.000000e+01
%161 = and i1 %159, %160
br i1 %161, label %162, label %164
162: ; preds = %158
%163 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double %146)
br label %164
164: ; preds = %162, %158
%165 = fcmp ogt double %146, 1.900000e+01
%166 = fcmp ole double %146, 3.600000e+01
%167 = and i1 %165, %166
br i1 %167, label %168, label %170
168: ; preds = %164
%169 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.13, i64 0, i64 0), double %146)
br label %170
170: ; preds = %168, %164
%171 = fcmp ogt double %146, 0.000000e+00
%172 = fcmp ole double %146, 1.900000e+01
%173 = and i1 %171, %172
br i1 %173, label %174, label %176
174: ; preds = %170
%175 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.14, i64 0, i64 0), double %146)
br label %176
176: ; preds = %174, %170
ret i32 0
}