#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 */
float celsius_to_fahr(float);
float fahr_to_celsius(float);
int /*<<< orphan*/ printf(char *, ...);
int main() {
  float fahr, celsius;
  printf("Fahrenheit\tCelsius\n");
  for (fahr = 0.0; fahr <= 300.0; fahr += 20.0) {
    celsius = fahr_to_celsius(fahr);
    printf("%3.0f\t\t%5.1f\n", fahr, celsius);
  }
  printf("\n");
  printf("Fahrenheit\tCelsius\n");
  for (fahr = 300.0; fahr >= 0.0; fahr -= 20.0) {
    celsius = fahr_to_celsius(fahr);
    printf("%3.0f\t\t%5.1f\n", fahr, celsius);
  }
  printf("\n");
  printf("Celsius\t\tFahrenheit\n");
  for (celsius = 0.0; celsius <= 150.0; celsius += 10.0) {
    fahr = celsius_to_fahr(celsius);
    printf("%3.0f\t\t%5.1f\n", celsius, fahr);
  }
  printf("\n");
  printf("Celsius\t\tFahrenheit\n");
  for (celsius = 150.0; celsius >= 0.0; celsius -= 10.0) {
    fahr = celsius_to_fahr(celsius);
    printf("%3.0f\t\t%5.1f\n", celsius, fahr);
  }
  printf("\n");
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xee2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x8(%rbp)
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xe9a(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     11c2 <main+0x92>
movss  -0x8(%rbp),%xmm0
call   1040 <fahr_to_celsius@plt>
movss  %xmm0,-0xc(%rbp)
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movss  -0xc(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
lea    0xea4(%rip),%rdi
mov    $0x2,%al
call   1030 <printf@plt>
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe68(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x8(%rbp)
jmp    1155 <main+0x25>
lea    0xe7f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe51(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movss  0xe3a(%rip),%xmm0
movss  %xmm0,-0x8(%rbp)
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1253 <main+0x123>
movss  -0x8(%rbp),%xmm0
call   1040 <fahr_to_celsius@plt>
movss  %xmm0,-0xc(%rbp)
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movss  -0xc(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
lea    0xe13(%rip),%rdi
mov    $0x2,%al
call   1030 <printf@plt>
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xdd7(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x8(%rbp)
jmp    11eb <main+0xbb>
lea    0xdee(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xde2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
xorps  %xmm0,%xmm0
movss  %xmm0,-0xc(%rbp)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xd80(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     12e4 <main+0x1b4>
movss  -0xc(%rbp),%xmm0
call   1050 <celsius_to_fahr@plt>
movss  %xmm0,-0x8(%rbp)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
lea    0xd82(%rip),%rdi
mov    $0x2,%al
call   1030 <printf@plt>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xd3e(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xc(%rbp)
jmp    1277 <main+0x147>
lea    0xd5d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xd51(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movss  0xd1c(%rip),%xmm0
movss  %xmm0,-0xc(%rbp)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1375 <main+0x245>
movss  -0xc(%rbp),%xmm0
call   1050 <celsius_to_fahr@plt>
movss  %xmm0,-0x8(%rbp)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
lea    0xcf1(%rip),%rdi
mov    $0x2,%al
call   1030 <printf@plt>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xcad(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xc(%rbp)
jmp    130d <main+0x1dd>
lea    0xccc(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %r14
push   %rbx
push   %rax
lea    0xfcb(%rip),%r14
mov    %r14,%rdi
call   1040 <puts@plt>
xorps  %xmm0,%xmm0
call   1060 <fahr_to_celsius@plt>
cvtss2sd %xmm0,%xmm1
lea    0xfa2(%rip),%rbx
xorps  %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xe75(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xec1(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xe53(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xea3(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xe31(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xe85(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xe0f(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xe67(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xded(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xe49(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xdcb(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xe2b(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xda9(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xe0d(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xd87(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xdef(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xd65(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xdd1(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xd43(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xdb3(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xd21(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xd95(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xcff(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xd77(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xcdd(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xd59(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xcbb(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xd3b(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xc99(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xd1d(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    %r14,%rdi
call   1040 <puts@plt>
movss  0xc61(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xce2(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xc37(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xcb4(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xc0d(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xc86(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xbe3(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xc58(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xbb9(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xc2a(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xb8f(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xbfc(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xb65(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xbce(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xb3b(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xba0(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xb11(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xb72(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xae7(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xb44(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xabd(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xb16(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xa93(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xae8(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xa69(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xaba(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xa3f(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xa8c(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0xa15(%rip),%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0xa5e(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
xorps  %xmm0,%xmm0
call   1060 <fahr_to_celsius@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xb03(%rip),%r14
mov    %r14,%rdi
call   1040 <puts@plt>
xorps  %xmm0,%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x9da(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xa62(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x978(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x9c1(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x992(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0xa1e(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x930(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x97d(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x94a(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0x9da(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x8e8(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x939(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x902(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0x996(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x8a0(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x8f5(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x8ba(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0x952(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x858(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x8b1(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x872(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0x90e(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x810(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x86d(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x82a(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0x8ca(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x7c8(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x829(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x7e2(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  0x886(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    %r14,%rdi
call   1040 <puts@plt>
movss  0x7aa(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x84b(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x744(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x7a5(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x75a(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x7f7(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x6f4(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x751(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x70a(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x7a3(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x6a4(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x6fd(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x6ba(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x74f(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x654(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x6a9(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x66a(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x6fb(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x604(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x655(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x61a(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x6a7(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x5b4(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x601(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x5ca(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x653(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x564(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x5ad(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
movss  0x57a(%rip),%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  0x5ff(%rip),%xmm0
mov    $0x2,%al
call   1050 <printf@plt>
xorps  %xmm0,%xmm0
call   1070 <celsius_to_fahr@plt>
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1050 <printf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r14
ret

LLVM IR (-O0):
@.str = [20 x i8] c"Fahrenheit\09Celsius\0A\00"
@.str.1 = [14 x i8] c"%3.0f\09\09%5.1f\0A\00"
@.str.2 = [2 x i8] c"\0A\00"
@.str.3 = [21 x i8] c"Celsius\09\09Fahrenheit\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca float
%3 = alloca float
store i32 0, i32* %1
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0))
store float 0.000000e+00, float* %2
br label %5
5: ; preds = %17, %0
%6 = load float, float* %2
%7 = fpext float %6 to double
%8 = fcmp ole double %7, 3.000000e+02
br i1 %8, label %9, label %22
9: ; preds = %5
%10 = load float, float* %2
%11 = call float @fahr_to_celsius(float %10)
store float %11, float* %3
%12 = load float, float* %2
%13 = fpext float %12 to double
%14 = load float, float* %3
%15 = fpext float %14 to double
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double %13, double %15)
br label %17
17: ; preds = %9
%18 = load float, float* %2
%19 = fpext float %18 to double
%20 = fadd double %19, 2.000000e+01
%21 = fptrunc double %20 to float
store float %21, float* %2
br label %5
22: ; preds = %5
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0))
store float 3.000000e+02, float* %2
br label %25
25: ; preds = %37, %22
%26 = load float, float* %2
%27 = fpext float %26 to double
%28 = fcmp oge double %27, 0.000000e+00
br i1 %28, label %29, label %42
29: ; preds = %25
%30 = load float, float* %2
%31 = call float @fahr_to_celsius(float %30)
store float %31, float* %3
%32 = load float, float* %2
%33 = fpext float %32 to double
%34 = load float, float* %3
%35 = fpext float %34 to double
%36 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double %33, double %35)
br label %37
37: ; preds = %29
%38 = load float, float* %2
%39 = fpext float %38 to double
%40 = fsub double %39, 2.000000e+01
%41 = fptrunc double %40 to float
store float %41, float* %2
br label %25
42: ; preds = %25
%43 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%44 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.3, i64 0, i64 0))
store float 0.000000e+00, float* %3
br label %45
45: ; preds = %57, %42
%46 = load float, float* %3
%47 = fpext float %46 to double
%48 = fcmp ole double %47, 1.500000e+02
br i1 %48, label %49, label %62
49: ; preds = %45
%50 = load float, float* %3
%51 = call float @celsius_to_fahr(float %50)
store float %51, float* %2
%52 = load float, float* %3
%53 = fpext float %52 to double
%54 = load float, float* %2
%55 = fpext float %54 to double
%56 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double %53, double %55)
br label %57
57: ; preds = %49
%58 = load float, float* %3
%59 = fpext float %58 to double
%60 = fadd double %59, 1.000000e+01
%61 = fptrunc double %60 to float
store float %61, float* %3
br label %45
62: ; preds = %45
%63 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%64 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.3, i64 0, i64 0))
store float 1.500000e+02, float* %3
br label %65
65: ; preds = %77, %62
%66 = load float, float* %3
%67 = fpext float %66 to double
%68 = fcmp oge double %67, 0.000000e+00
br i1 %68, label %69, label %82
69: ; preds = %65
%70 = load float, float* %3
%71 = call float @celsius_to_fahr(float %70)
store float %71, float* %2
%72 = load float, float* %3
%73 = fpext float %72 to double
%74 = load float, float* %2
%75 = fpext float %74 to double
%76 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double %73, double %75)
br label %77
77: ; preds = %69
%78 = load float, float* %3
%79 = fpext float %78 to double
%80 = fsub double %79, 1.000000e+01
%81 = fptrunc double %80 to float
store float %81, float* %3
br label %65
82: ; preds = %65
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
ret i32 0
}

LLVM IR (-O2):
@.str.1 = [14 x i8] c"%3.0f\09\09%5.1f\0A\00"
@str.4 = [19 x i8] c"Fahrenheit\09Celsius\00"
@str.6 = [20 x i8] c"Celsius\09\09Fahrenheit\00"
define i32 @main() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.4, i64 0, i64 0))
%2 = tail call float @fahr_to_celsius(float 0.000000e+00)
%3 = fpext float %2 to double
%4 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 0.000000e+00, double %3)
%5 = tail call float @fahr_to_celsius(float 2.000000e+01)
%6 = fpext float %5 to double
%7 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.000000e+01, double %6)
%8 = tail call float @fahr_to_celsius(float 4.000000e+01)
%9 = fpext float %8 to double
%10 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 4.000000e+01, double %9)
%11 = tail call float @fahr_to_celsius(float 6.000000e+01)
%12 = fpext float %11 to double
%13 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 6.000000e+01, double %12)
%14 = tail call float @fahr_to_celsius(float 8.000000e+01)
%15 = fpext float %14 to double
%16 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 8.000000e+01, double %15)
%17 = tail call float @fahr_to_celsius(float 1.000000e+02)
%18 = fpext float %17 to double
%19 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.000000e+02, double %18)
%20 = tail call float @fahr_to_celsius(float 1.200000e+02)
%21 = fpext float %20 to double
%22 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.200000e+02, double %21)
%23 = tail call float @fahr_to_celsius(float 1.400000e+02)
%24 = fpext float %23 to double
%25 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.400000e+02, double %24)
%26 = tail call float @fahr_to_celsius(float 1.600000e+02)
%27 = fpext float %26 to double
%28 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.600000e+02, double %27)
%29 = tail call float @fahr_to_celsius(float 1.800000e+02)
%30 = fpext float %29 to double
%31 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.800000e+02, double %30)
%32 = tail call float @fahr_to_celsius(float 2.000000e+02)
%33 = fpext float %32 to double
%34 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.000000e+02, double %33)
%35 = tail call float @fahr_to_celsius(float 2.200000e+02)
%36 = fpext float %35 to double
%37 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.200000e+02, double %36)
%38 = tail call float @fahr_to_celsius(float 2.400000e+02)
%39 = fpext float %38 to double
%40 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.400000e+02, double %39)
%41 = tail call float @fahr_to_celsius(float 2.600000e+02)
%42 = fpext float %41 to double
%43 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.600000e+02, double %42)
%44 = tail call float @fahr_to_celsius(float 2.800000e+02)
%45 = fpext float %44 to double
%46 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.800000e+02, double %45)
%47 = tail call float @fahr_to_celsius(float 3.000000e+02)
%48 = fpext float %47 to double
%49 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 3.000000e+02, double %48)
%50 = tail call i32 @putchar(i32 10)
%51 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.4, i64 0, i64 0))
%52 = tail call float @fahr_to_celsius(float 3.000000e+02)
%53 = fpext float %52 to double
%54 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 3.000000e+02, double %53)
%55 = tail call float @fahr_to_celsius(float 2.800000e+02)
%56 = fpext float %55 to double
%57 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.800000e+02, double %56)
%58 = tail call float @fahr_to_celsius(float 2.600000e+02)
%59 = fpext float %58 to double
%60 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.600000e+02, double %59)
%61 = tail call float @fahr_to_celsius(float 2.400000e+02)
%62 = fpext float %61 to double
%63 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.400000e+02, double %62)
%64 = tail call float @fahr_to_celsius(float 2.200000e+02)
%65 = fpext float %64 to double
%66 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.200000e+02, double %65)
%67 = tail call float @fahr_to_celsius(float 2.000000e+02)
%68 = fpext float %67 to double
%69 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.000000e+02, double %68)
%70 = tail call float @fahr_to_celsius(float 1.800000e+02)
%71 = fpext float %70 to double
%72 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.800000e+02, double %71)
%73 = tail call float @fahr_to_celsius(float 1.600000e+02)
%74 = fpext float %73 to double
%75 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.600000e+02, double %74)
%76 = tail call float @fahr_to_celsius(float 1.400000e+02)
%77 = fpext float %76 to double
%78 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.400000e+02, double %77)
%79 = tail call float @fahr_to_celsius(float 1.200000e+02)
%80 = fpext float %79 to double
%81 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.200000e+02, double %80)
%82 = tail call float @fahr_to_celsius(float 1.000000e+02)
%83 = fpext float %82 to double
%84 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.000000e+02, double %83)
%85 = tail call float @fahr_to_celsius(float 8.000000e+01)
%86 = fpext float %85 to double
%87 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 8.000000e+01, double %86)
%88 = tail call float @fahr_to_celsius(float 6.000000e+01)
%89 = fpext float %88 to double
%90 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 6.000000e+01, double %89)
%91 = tail call float @fahr_to_celsius(float 4.000000e+01)
%92 = fpext float %91 to double
%93 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 4.000000e+01, double %92)
%94 = tail call float @fahr_to_celsius(float 2.000000e+01)
%95 = fpext float %94 to double
%96 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.000000e+01, double %95)
%97 = tail call float @fahr_to_celsius(float 0.000000e+00)
%98 = fpext float %97 to double
%99 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 0.000000e+00, double %98)
%100 = tail call i32 @putchar(i32 10)
%101 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.6, i64 0, i64 0))
%102 = tail call float @celsius_to_fahr(float 0.000000e+00)
%103 = fpext float %102 to double
%104 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 0.000000e+00, double %103)
%105 = tail call float @celsius_to_fahr(float 1.000000e+01)
%106 = fpext float %105 to double
%107 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.000000e+01, double %106)
%108 = tail call float @celsius_to_fahr(float 2.000000e+01)
%109 = fpext float %108 to double
%110 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.000000e+01, double %109)
%111 = tail call float @celsius_to_fahr(float 3.000000e+01)
%112 = fpext float %111 to double
%113 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 3.000000e+01, double %112)
%114 = tail call float @celsius_to_fahr(float 4.000000e+01)
%115 = fpext float %114 to double
%116 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 4.000000e+01, double %115)
%117 = tail call float @celsius_to_fahr(float 5.000000e+01)
%118 = fpext float %117 to double
%119 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 5.000000e+01, double %118)
%120 = tail call float @celsius_to_fahr(float 6.000000e+01)
%121 = fpext float %120 to double
%122 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 6.000000e+01, double %121)
%123 = tail call float @celsius_to_fahr(float 7.000000e+01)
%124 = fpext float %123 to double
%125 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 7.000000e+01, double %124)
%126 = tail call float @celsius_to_fahr(float 8.000000e+01)
%127 = fpext float %126 to double
%128 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 8.000000e+01, double %127)
%129 = tail call float @celsius_to_fahr(float 9.000000e+01)
%130 = fpext float %129 to double
%131 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 9.000000e+01, double %130)
%132 = tail call float @celsius_to_fahr(float 1.000000e+02)
%133 = fpext float %132 to double
%134 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.000000e+02, double %133)
%135 = tail call float @celsius_to_fahr(float 1.100000e+02)
%136 = fpext float %135 to double
%137 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.100000e+02, double %136)
%138 = tail call float @celsius_to_fahr(float 1.200000e+02)
%139 = fpext float %138 to double
%140 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.200000e+02, double %139)
%141 = tail call float @celsius_to_fahr(float 1.300000e+02)
%142 = fpext float %141 to double
%143 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.300000e+02, double %142)
%144 = tail call float @celsius_to_fahr(float 1.400000e+02)
%145 = fpext float %144 to double
%146 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.400000e+02, double %145)
%147 = tail call float @celsius_to_fahr(float 1.500000e+02)
%148 = fpext float %147 to double
%149 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.500000e+02, double %148)
%150 = tail call i32 @putchar(i32 10)
%151 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.6, i64 0, i64 0))
%152 = tail call float @celsius_to_fahr(float 1.500000e+02)
%153 = fpext float %152 to double
%154 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.500000e+02, double %153)
%155 = tail call float @celsius_to_fahr(float 1.400000e+02)
%156 = fpext float %155 to double
%157 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.400000e+02, double %156)
%158 = tail call float @celsius_to_fahr(float 1.300000e+02)
%159 = fpext float %158 to double
%160 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.300000e+02, double %159)
%161 = tail call float @celsius_to_fahr(float 1.200000e+02)
%162 = fpext float %161 to double
%163 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.200000e+02, double %162)
%164 = tail call float @celsius_to_fahr(float 1.100000e+02)
%165 = fpext float %164 to double
%166 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.100000e+02, double %165)
%167 = tail call float @celsius_to_fahr(float 1.000000e+02)
%168 = fpext float %167 to double
%169 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.000000e+02, double %168)
%170 = tail call float @celsius_to_fahr(float 9.000000e+01)
%171 = fpext float %170 to double
%172 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 9.000000e+01, double %171)
%173 = tail call float @celsius_to_fahr(float 8.000000e+01)
%174 = fpext float %173 to double
%175 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 8.000000e+01, double %174)
%176 = tail call float @celsius_to_fahr(float 7.000000e+01)
%177 = fpext float %176 to double
%178 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 7.000000e+01, double %177)
%179 = tail call float @celsius_to_fahr(float 6.000000e+01)
%180 = fpext float %179 to double
%181 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 6.000000e+01, double %180)
%182 = tail call float @celsius_to_fahr(float 5.000000e+01)
%183 = fpext float %182 to double
%184 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 5.000000e+01, double %183)
%185 = tail call float @celsius_to_fahr(float 4.000000e+01)
%186 = fpext float %185 to double
%187 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 4.000000e+01, double %186)
%188 = tail call float @celsius_to_fahr(float 3.000000e+01)
%189 = fpext float %188 to double
%190 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 3.000000e+01, double %189)
%191 = tail call float @celsius_to_fahr(float 2.000000e+01)
%192 = fpext float %191 to double
%193 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 2.000000e+01, double %192)
%194 = tail call float @celsius_to_fahr(float 1.000000e+01)
%195 = fpext float %194 to double
%196 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 1.000000e+01, double %195)
%197 = tail call float @celsius_to_fahr(float 0.000000e+00)
%198 = fpext float %197 to double
%199 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), double 0.000000e+00, double %198)
%200 = tail call i32 @putchar(i32 10)
ret i32 0
}