#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 atof(char *);
int /*<<< orphan*/ chooseEquation(float, float, float, float, float, float,
                                  short *);
int /*<<< orphan*/ printf(char *);
int /*<<< orphan*/ scanf(char *, char *);
int main() {
  float a;
  char str[10];
  short u[10];
  printf("If you don't know a value, enter u.\n");
  printf("Please enter the acceleration: ");
  scanf("%s", str);
  printf("\n");
  if (str[0] == 'u') {
    u[0] = 0;
  } else {
    u[0] = 1;
    a = atof(str);
  }
  float x;
  float va;
  float vi;
  float vf;
  float t;
  printf("Please enter the displacement: ");
  scanf("%s", str);
  printf("\n");
  if (str[0] == 'u') {
    u[1] = 0;
  } else {
    u[1] = 1;
    x = atof(str);
  }
  printf("Please enter the average velocity: ");
  scanf("%s", str);
  printf("\n");
  if (str[0] == 'u') {
    u[2] = 0;
  } else {
    u[2] = 1;
    va = atof(str);
  }
  printf("Please enter the initial velocity: ");
  scanf("%s", str);
  printf("\n");
  if (str[0] == 'u') {
    u[3] = 0;
  } else {
    u[3] = 1;
    vi = atof(str);
  }
  printf("Please enter the final velocity: ");
  scanf("%s", str);
  printf("\n");
  if (str[0] == 'u') {
    u[4] = 0;
  } else {
    u[4] = 1;
    vf = atof(str);
  }
  printf("Please enter the time: ");
  scanf("%s", str);
  printf("\n");
  if (str[0] == 'u') {
    u[5] = 0;
  } else {
    u[5] = 1;
    t = atof(str);
  }
  chooseEquation(a, x, va, vi, vf, t, u);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xeaa(%rip),%rdi
call   1040 <printf@plt>
lea    0xec3(%rip),%rdi
call   1040 <printf@plt>
lea    -0x12(%rbp),%rsi
lea    0xed3(%rip),%rdi
call   1050 <scanf@plt>
lea    0xea5(%rip),%rdi
call   1040 <printf@plt>
movsbl -0x12(%rbp),%eax
cmp    $0x75,%eax
jne    119b <main+0x5b>
movw   $0x0,-0x30(%rbp)
jmp    11af <main+0x6f>
movw   $0x1,-0x30(%rbp)
lea    -0x12(%rbp),%rdi
call   1030 <atof@plt>
movss  %xmm0,-0x8(%rbp)
lea    0xe92(%rip),%rdi
call   1040 <printf@plt>
lea    -0x12(%rbp),%rsi
lea    0xe7f(%rip),%rdi
call   1050 <scanf@plt>
lea    0xe51(%rip),%rdi
call   1040 <printf@plt>
movsbl -0x12(%rbp),%eax
cmp    $0x75,%eax
jne    11ef <main+0xaf>
movw   $0x0,-0x2e(%rbp)
jmp    1203 <main+0xc3>
movw   $0x1,-0x2e(%rbp)
lea    -0x12(%rbp),%rdi
call   1030 <atof@plt>
movss  %xmm0,-0x34(%rbp)
lea    0xe5e(%rip),%rdi
call   1040 <printf@plt>
lea    -0x12(%rbp),%rsi
lea    0xe2b(%rip),%rdi
call   1050 <scanf@plt>
lea    0xdfd(%rip),%rdi
call   1040 <printf@plt>
movsbl -0x12(%rbp),%eax
cmp    $0x75,%eax
jne    1243 <main+0x103>
movw   $0x0,-0x2c(%rbp)
jmp    1257 <main+0x117>
movw   $0x1,-0x2c(%rbp)
lea    -0x12(%rbp),%rdi
call   1030 <atof@plt>
movss  %xmm0,-0x38(%rbp)
lea    0xe2e(%rip),%rdi
call   1040 <printf@plt>
lea    -0x12(%rbp),%rsi
lea    0xdd7(%rip),%rdi
call   1050 <scanf@plt>
lea    0xda9(%rip),%rdi
call   1040 <printf@plt>
movsbl -0x12(%rbp),%eax
cmp    $0x75,%eax
jne    1297 <main+0x157>
movw   $0x0,-0x2a(%rbp)
jmp    12ab <main+0x16b>
movw   $0x1,-0x2a(%rbp)
lea    -0x12(%rbp),%rdi
call   1030 <atof@plt>
movss  %xmm0,-0x3c(%rbp)
lea    0xdfe(%rip),%rdi
call   1040 <printf@plt>
lea    -0x12(%rbp),%rsi
lea    0xd83(%rip),%rdi
call   1050 <scanf@plt>
lea    0xd55(%rip),%rdi
call   1040 <printf@plt>
movsbl -0x12(%rbp),%eax
cmp    $0x75,%eax
jne    12eb <main+0x1ab>
movw   $0x0,-0x28(%rbp)
jmp    12ff <main+0x1bf>
movw   $0x1,-0x28(%rbp)
lea    -0x12(%rbp),%rdi
call   1030 <atof@plt>
movss  %xmm0,-0x40(%rbp)
lea    0xdcc(%rip),%rdi
call   1040 <printf@plt>
lea    -0x12(%rbp),%rsi
lea    0xd2f(%rip),%rdi
call   1050 <scanf@plt>
lea    0xd01(%rip),%rdi
call   1040 <printf@plt>
movsbl -0x12(%rbp),%eax
cmp    $0x75,%eax
jne    133f <main+0x1ff>
movw   $0x0,-0x26(%rbp)
jmp    1353 <main+0x213>
movw   $0x1,-0x26(%rbp)
lea    -0x12(%rbp),%rdi
call   1030 <atof@plt>
movss  %xmm0,-0x44(%rbp)
movss  -0x8(%rbp),%xmm0
movss  -0x34(%rbp),%xmm1
movss  -0x38(%rbp),%xmm2
movss  -0x3c(%rbp),%xmm3
movss  -0x40(%rbp),%xmm4
movss  -0x44(%rbp),%xmm5
lea    -0x30(%rbp),%rdi
call   1060 <chooseEquation@plt>
xor    %eax,%eax
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0x40,%rsp
lea    0xf59(%rip),%rdi
call   1040 <puts@plt>
lea    0xe88(%rip),%rdi
call   1060 <printf@plt>
lea    0xe9c(%rip),%rdi
lea    0x6(%rsp),%rsi
call   1070 <scanf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
cmpb   $0x75,0x6(%rsp)
jne    11a8 <main+0x48>
movw   $0x0,0x10(%rsp)
jmp    11bf <main+0x5f>
movw   $0x1,0x10(%rsp)
lea    0x6(%rsp),%rdi
call   1050 <atof@plt>
movss  %xmm0,0x3c(%rsp)
lea    0xe5d(%rip),%rdi
call   1060 <printf@plt>
lea    0xe4e(%rip),%rdi
lea    0x6(%rsp),%rsi
call   1070 <scanf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
cmpb   $0x75,0x6(%rsp)
jne    11f6 <main+0x96>
movw   $0x0,0x12(%rsp)
jmp    120d <main+0xad>
movw   $0x1,0x12(%rsp)
lea    0x6(%rsp),%rdi
call   1050 <atof@plt>
movss  %xmm0,0x38(%rsp)
lea    0xe2f(%rip),%rdi
call   1060 <printf@plt>
lea    0xe00(%rip),%rdi
lea    0x6(%rsp),%rsi
call   1070 <scanf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
cmpb   $0x75,0x6(%rsp)
jne    1244 <main+0xe4>
movw   $0x0,0x14(%rsp)
jmp    125b <main+0xfb>
movw   $0x1,0x14(%rsp)
lea    0x6(%rsp),%rdi
call   1050 <atof@plt>
movss  %xmm0,0x34(%rsp)
lea    0xe05(%rip),%rdi
call   1060 <printf@plt>
lea    0xdb2(%rip),%rdi
lea    0x6(%rsp),%rsi
call   1070 <scanf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
cmpb   $0x75,0x6(%rsp)
jne    1292 <main+0x132>
movw   $0x0,0x16(%rsp)
jmp    12a9 <main+0x149>
movw   $0x1,0x16(%rsp)
lea    0x6(%rsp),%rdi
call   1050 <atof@plt>
movss  %xmm0,0x30(%rsp)
lea    0xddb(%rip),%rdi
call   1060 <printf@plt>
lea    0xd64(%rip),%rdi
lea    0x6(%rsp),%rsi
call   1070 <scanf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
cmpb   $0x75,0x6(%rsp)
jne    12e0 <main+0x180>
movw   $0x0,0x18(%rsp)
jmp    12f7 <main+0x197>
movw   $0x1,0x18(%rsp)
lea    0x6(%rsp),%rdi
call   1050 <atof@plt>
movss  %xmm0,0x2c(%rsp)
lea    0xdaf(%rip),%rdi
call   1060 <printf@plt>
lea    0xd16(%rip),%rdi
lea    0x6(%rsp),%rbx
mov    %rbx,%rsi
call   1070 <scanf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
movw   $0x1,0x1a(%rsp)
mov    %rbx,%rdi
call   1050 <atof@plt>
movaps %xmm0,%xmm5
lea    0x10(%rsp),%rdi
movss  0x3c(%rsp),%xmm0
movss  0x38(%rsp),%xmm1
movss  0x34(%rsp),%xmm2
movss  0x30(%rsp),%xmm3
movss  0x2c(%rsp),%xmm4
call   1080 <chooseEquation@plt>
xor    %eax,%eax
add    $0x40,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [37 x i8] c"If you don't know a value, enter u.\0A\00"
@.str.1 = [32 x i8] c"Please enter the acceleration: \00"
@.str.2 = [3 x i8] c"%s\00"
@.str.3 = [2 x i8] c"\0A\00"
@.str.4 = [32 x i8] c"Please enter the displacement: \00"
@.str.5 = [36 x i8] c"Please enter the average velocity: \00"
@.str.6 = [36 x i8] c"Please enter the initial velocity: \00"
@.str.7 = [34 x i8] c"Please enter the final velocity: \00"
@.str.8 = [24 x i8] c"Please enter the time: \00"
define i32 @main() {
%1 = alloca i32
%2 = alloca float
%3 = alloca [10 x i8]
%4 = alloca [10 x i16]
%5 = alloca float
%6 = alloca float
%7 = alloca float
%8 = alloca float
%9 = alloca float
store i32 0, i32* %1
%10 = call i32 @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str, i64 0, i64 0))
%11 = call i32 @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.1, i64 0, i64 0))
%12 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%13 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %12)
%14 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%15 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%16 = load i8, i8* %15
%17 = sext i8 %16 to i32
%18 = icmp eq i32 %17, 117
br i1 %18, label %19, label %21
19: ; preds = %0
%20 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 0
store i16 0, i16* %20
br label %25
21: ; preds = %0
%22 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 0
store i16 1, i16* %22
%23 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%24 = call float @atof(i8* %23)
store float %24, float* %2
br label %25
25: ; preds = %21, %19
%26 = call i32 @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.4, i64 0, i64 0))
%27 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%28 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %27)
%29 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%30 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%31 = load i8, i8* %30
%32 = sext i8 %31 to i32
%33 = icmp eq i32 %32, 117
br i1 %33, label %34, label %36
34: ; preds = %25
%35 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 1
store i16 0, i16* %35
br label %40
36: ; preds = %25
%37 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 1
store i16 1, i16* %37
%38 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%39 = call float @atof(i8* %38)
store float %39, float* %5
br label %40
40: ; preds = %36, %34
%41 = call i32 @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.5, i64 0, i64 0))
%42 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%43 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %42)
%44 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%45 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%46 = load i8, i8* %45
%47 = sext i8 %46 to i32
%48 = icmp eq i32 %47, 117
br i1 %48, label %49, label %51
49: ; preds = %40
%50 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 2
store i16 0, i16* %50
br label %55
51: ; preds = %40
%52 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 2
store i16 1, i16* %52
%53 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%54 = call float @atof(i8* %53)
store float %54, float* %6
br label %55
55: ; preds = %51, %49
%56 = call i32 @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.6, i64 0, i64 0))
%57 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%58 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %57)
%59 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%60 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%61 = load i8, i8* %60
%62 = sext i8 %61 to i32
%63 = icmp eq i32 %62, 117
br i1 %63, label %64, label %66
64: ; preds = %55
%65 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 3
store i16 0, i16* %65
br label %70
66: ; preds = %55
%67 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 3
store i16 1, i16* %67
%68 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%69 = call float @atof(i8* %68)
store float %69, float* %7
br label %70
70: ; preds = %66, %64
%71 = call i32 @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.7, i64 0, i64 0))
%72 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%73 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %72)
%74 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%75 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%76 = load i8, i8* %75
%77 = sext i8 %76 to i32
%78 = icmp eq i32 %77, 117
br i1 %78, label %79, label %81
79: ; preds = %70
%80 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 4
store i16 0, i16* %80
br label %85
81: ; preds = %70
%82 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 4
store i16 1, i16* %82
%83 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%84 = call float @atof(i8* %83)
store float %84, float* %8
br label %85
85: ; preds = %81, %79
%86 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.8, i64 0, i64 0))
%87 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%88 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %87)
%89 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%90 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%91 = load i8, i8* %90
%92 = sext i8 %91 to i32
%93 = icmp eq i32 %92, 117
br i1 %93, label %94, label %96
94: ; preds = %85
%95 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 5
store i16 0, i16* %95
br label %100
96: ; preds = %85
%97 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 5
store i16 1, i16* %97
%98 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
%99 = call float @atof(i8* %98)
store float %99, float* %9
br label %100
100: ; preds = %96, %94
%101 = load float, float* %2
%102 = load float, float* %5
%103 = load float, float* %6
%104 = load float, float* %7
%105 = load float, float* %8
%106 = load float, float* %9
%107 = getelementptr inbounds [10 x i16], [10 x i16]* %4, i64 0, i64 0
%108 = call i32 @chooseEquation(float %101, float %102, float %103, float %104, float %105, float %106, i16* %107)
ret i32 0
}

LLVM IR (-O2):
@.str.1 = [32 x i8] c"Please enter the acceleration: \00"
@.str.2 = [3 x i8] c"%s\00"
@.str.4 = [32 x i8] c"Please enter the displacement: \00"
@.str.5 = [36 x i8] c"Please enter the average velocity: \00"
@.str.6 = [36 x i8] c"Please enter the initial velocity: \00"
@.str.7 = [34 x i8] c"Please enter the final velocity: \00"
@.str.8 = [24 x i8] c"Please enter the time: \00"
@str = [36 x i8] c"If you don't know a value, enter u.\00"
define i32 @main() {
%1 = alloca [10 x i8]
%2 = alloca [10 x i16]
%3 = getelementptr inbounds [10 x i8], [10 x i8]* %1, i64 0, i64 0
%4 = bitcast [10 x i16]* %2 to i8*
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @str, i64 0, i64 0))
%6 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.1, i64 0, i64 0))
%7 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %3)
%8 = call i32 @putchar(i32 10)
%9 = load i8, i8* %3
%10 = icmp eq i8 %9, 117
%11 = getelementptr inbounds [10 x i16], [10 x i16]* %2, i64 0, i64 0
br i1 %10, label %12, label %13
12: ; preds = %0
store i16 0, i16* %11
br label %15
13: ; preds = %0
store i16 1, i16* %11
%14 = call float @atof(i8* %3)
br label %15
15: ; preds = %13, %12
%16 = phi float [ undef, %12 ], [ %14, %13 ]
%17 = call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.4, i64 0, i64 0))
%18 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %3)
%19 = call i32 @putchar(i32 10)
%20 = load i8, i8* %3
%21 = icmp eq i8 %20, 117
%22 = getelementptr inbounds [10 x i16], [10 x i16]* %2, i64 0, i64 1
br i1 %21, label %23, label %24
23: ; preds = %15
store i16 0, i16* %22
br label %26
24: ; preds = %15
store i16 1, i16* %22
%25 = call float @atof(i8* %3)
br label %26
26: ; preds = %24, %23
%27 = phi float [ undef, %23 ], [ %25, %24 ]
%28 = call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @.str.5, i64 0, i64 0))
%29 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %3)
%30 = call i32 @putchar(i32 10)
%31 = load i8, i8* %3
%32 = icmp eq i8 %31, 117
%33 = getelementptr inbounds [10 x i16], [10 x i16]* %2, i64 0, i64 2
br i1 %32, label %34, label %35
34: ; preds = %26
store i16 0, i16* %33
br label %37
35: ; preds = %26
store i16 1, i16* %33
%36 = call float @atof(i8* %3)
br label %37
37: ; preds = %35, %34
%38 = phi float [ undef, %34 ], [ %36, %35 ]
%39 = call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @.str.6, i64 0, i64 0))
%40 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %3)
%41 = call i32 @putchar(i32 10)
%42 = load i8, i8* %3
%43 = icmp eq i8 %42, 117
%44 = getelementptr inbounds [10 x i16], [10 x i16]* %2, i64 0, i64 3
br i1 %43, label %45, label %46
45: ; preds = %37
store i16 0, i16* %44
br label %48
46: ; preds = %37
store i16 1, i16* %44
%47 = call float @atof(i8* %3)
br label %48
48: ; preds = %46, %45
%49 = phi float [ undef, %45 ], [ %47, %46 ]
%50 = call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @.str.7, i64 0, i64 0))
%51 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %3)
%52 = call i32 @putchar(i32 10)
%53 = load i8, i8* %3
%54 = icmp eq i8 %53, 117
%55 = getelementptr inbounds [10 x i16], [10 x i16]* %2, i64 0, i64 4
br i1 %54, label %56, label %57
56: ; preds = %48
store i16 0, i16* %55
br label %59
57: ; preds = %48
store i16 1, i16* %55
%58 = call float @atof(i8* %3)
br label %59
59: ; preds = %57, %56
%60 = phi float [ undef, %56 ], [ %58, %57 ]
%61 = call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.8, i64 0, i64 0))
%62 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i8* %3)
%63 = call i32 @putchar(i32 10)
%64 = load i8, i8* %3
%65 = icmp ne i8 %64, 117
%66 = getelementptr inbounds [10 x i16], [10 x i16]* %2, i64 0, i64 5
store i16 1, i16* %66
%67 = call float @atof(i8* %3)
%68 = getelementptr inbounds [10 x i16], [10 x i16]* %2, i64 0, i64 0
%69 = call i32 @chooseEquation(float %16, float %27, float %38, float %49, float %60, float %67, i16* %68)
ret i32 0
}