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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ clrscr();
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ scanf(char *, ...);
int main() {
  clrscr();
  int k1, k2, k3;
  float MM, NN, v, u, w;
  printf("k1=");
  scanf("%d", &k1);
  printf("\033[31m");
  printf("k2=");
  scanf("%d", &k2);
  printf("\033[32m");
  printf("k3=");
  scanf("%d", &k3);
  printf("\033[33m");
  printf("m=");
  scanf("%f", &MM);
  printf("\033[34m");
  printf("n=");
  scanf("%f", &NN);
  printf("\033[35m");
  clrscr();
  if (k3 + k2 != 0) {
    if (k2 != 0) {
      w = 6 / 7 + k1 / (k2 + k3) + (MM + NN) / k2;
      printf("\033[36m");
      printf("w=%f\n", w);
    } else
      printf("infinity error in W\n");
  } else
    printf("infinity error in W\n");
  if (k3 != 0) {
    if (MM + k2 / k3 != 0) {
      u = (10e-2 + 1 / k3) / 10e2 + (MM + k1 / k3) / (MM + k2 / k3);
      printf("u=%f\n", u);
    } else
      printf("infinity error in U\n");
  } else
    printf("infinity error in U\n");
  if (k3 != -13) {
    if (k3 != -20) {
      v = (((13 - k1) / (13 + k3)) - ((10e-7 + k1) / (20 + k3))) * 10e-3;
      printf("v=%f\n", v);
    } else
      printf("infinite error in V\n");
  } else
    printf("infinite error in V\n");
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
movl   $0x0,-0x4(%rbp)
mov    $0x0,%al
call   1030 <clrscr@plt>
lea    0xed3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xec9(%rip),%rdi
lea    -0x8(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
lea    0xeba(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xeb2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe9b(%rip),%rdi
lea    -0xc(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
lea    0xe96(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe8e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe6d(%rip),%rdi
lea    -0x10(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
lea    0xe72(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe6a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe5f(%rip),%rdi
lea    -0x14(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
lea    0xe50(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe48(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe31(%rip),%rdi
lea    -0x18(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
lea    0xe2b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    $0x0,%al
call   1030 <clrscr@plt>
mov    -0x10(%rbp),%eax
add    -0xc(%rbp),%eax
cmp    $0x0,%eax
je     12b8 <main+0x188>
cmpl   $0x0,-0xc(%rbp)
je     12a5 <main+0x175>
mov    -0x8(%rbp),%eax
mov    -0xc(%rbp),%ecx
add    -0x10(%rbp),%ecx
cltd
idiv   %ecx
add    $0x0,%eax
cvtsi2ss %eax,%xmm0
movss  -0x14(%rbp),%xmm1
addss  -0x18(%rbp),%xmm1
cvtsi2ssl -0xc(%rbp),%xmm2
divss  %xmm2,%xmm1
addss  %xmm1,%xmm0
movss  %xmm0,-0x24(%rbp)
lea    0xdd4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xdc3(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
jmp    12b3 <main+0x183>
lea    0xdb6(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    12c6 <main+0x196>
lea    0xda3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
cmpl   $0x0,-0x10(%rbp)
je     138c <main+0x25c>
movss  -0x14(%rbp),%xmm0
mov    -0xc(%rbp),%eax
cltd
idivl  -0x10(%rbp)
cvtsi2ss %eax,%xmm1
addss  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    12fb <main+0x1cb>
jp     12fb <main+0x1cb>
jmp    1379 <main+0x249>
mov    $0x1,%eax
cltd
idivl  -0x10(%rbp)
cvtsi2sd %eax,%xmm1
movsd  0xcf8(%rip),%xmm0
addsd  %xmm1,%xmm0
movsd  0xce4(%rip),%xmm1
divsd  %xmm1,%xmm0
movss  -0x14(%rbp),%xmm1
mov    -0x8(%rbp),%eax
cltd
idivl  -0x10(%rbp)
cvtsi2ss %eax,%xmm2
addss  %xmm2,%xmm1
movss  -0x14(%rbp),%xmm2
mov    -0xc(%rbp),%eax
cltd
idivl  -0x10(%rbp)
cvtsi2ss %eax,%xmm3
addss  %xmm3,%xmm2
divss  %xmm2,%xmm1
cvtss2sd %xmm1,%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x20(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xd0a(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
jmp    1387 <main+0x257>
lea    0xcfd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    139a <main+0x26a>
lea    0xcea(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
cmpl   $0xfffffff3,-0x10(%rbp)
je     142a <main+0x2fa>
cmpl   $0xffffffec,-0x10(%rbp)
je     1417 <main+0x2e7>
mov    $0xd,%eax
sub    -0x8(%rbp),%eax
mov    -0x10(%rbp),%ecx
add    $0xd,%ecx
cltd
idiv   %ecx
cvtsi2sd %eax,%xmm0
cvtsi2sdl -0x8(%rbp),%xmm2
movsd  0xc48(%rip),%xmm1
addsd  %xmm2,%xmm1
mov    -0x10(%rbp),%eax
add    $0x14,%eax
cvtsi2sd %eax,%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movsd  0xc22(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  -0x1c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xc87(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
jmp    1425 <main+0x2f5>
lea    0xc7a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1438 <main+0x308>
lea    0xc67(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x4(%rbp),%eax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0x20,%rsp
xor    %eax,%eax
call   1030 <clrscr@plt>
lea    0xecd(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xec3(%rip),%rbx
lea    0xc(%rsp),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <scanf@plt>
lea    0xeb0(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xea8(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x14(%rsp),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <scanf@plt>
lea    0xe8f(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xe87(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x8(%rsp),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <scanf@plt>
lea    0xe6e(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xe66(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xe5b(%rip),%rbx
lea    0x10(%rsp),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <scanf@plt>
lea    0xe48(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xe40(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x1c(%rsp),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <scanf@plt>
lea    0xe26(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
xor    %eax,%eax
call   1030 <clrscr@plt>
mov    0x14(%rsp),%ecx
mov    0x8(%rsp),%esi
add    %ecx,%esi
je     1299 <main+0x159>
test   %ecx,%ecx
je     1299 <main+0x159>
mov    0xc(%rsp),%eax
cltd
idiv   %esi
cvtsi2ss %eax,%xmm0
movss  0x10(%rsp),%xmm2
cvtsi2ss %ecx,%xmm1
addss  0x1c(%rsp),%xmm2
divss  %xmm1,%xmm2
addss  %xmm0,%xmm2
movss  %xmm2,0x18(%rsp)
lea    0xdde(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movss  0x18(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xdcc(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
jmp    12a5 <main+0x165>
lea    0xdf6(%rip),%rdi
call   1040 <puts@plt>
mov    0x8(%rsp),%ecx
test   %ecx,%ecx
je     1324 <main+0x1e4>
movss  0x10(%rsp),%xmm0
mov    0x14(%rsp),%eax
cltd
idiv   %ecx
xorps  %xmm1,%xmm1
cvtsi2ss %eax,%xmm1
addss  %xmm0,%xmm1
xorps  %xmm2,%xmm2
ucomiss %xmm2,%xmm1
jne    12cf <main+0x18f>
jnp    1324 <main+0x1e4>
lea    0x1(%rcx),%eax
xor    %edx,%edx
cmp    $0x3,%eax
cmovb  %ecx,%edx
xorps  %xmm2,%xmm2
cvtsi2sd %edx,%xmm2
addsd  0xd17(%rip),%xmm2
divsd  0xd17(%rip),%xmm2
mov    0xc(%rsp),%eax
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm3
addss  %xmm3,%xmm0
divss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
addsd  %xmm2,%xmm0
cvtsd2ss %xmm0,%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xd47(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
jmp    1330 <main+0x1f0>
lea    0xd57(%rip),%rdi
call   1040 <puts@plt>
mov    0x8(%rsp),%ecx
cmp    $0xffffffec,%ecx
je     133e <main+0x1fe>
cmp    $0xfffffff3,%ecx
jne    134c <main+0x20c>
lea    0xd29(%rip),%rdi
call   1040 <puts@plt>
jmp    13a3 <main+0x263>
mov    0xc(%rsp),%esi
mov    $0xd,%eax
sub    %esi,%eax
lea    0xd(%rcx),%edi
cltd
idiv   %edi
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
xorps  %xmm1,%xmm1
cvtsi2sd %esi,%xmm1
addsd  0xc9d(%rip),%xmm1
add    $0x14,%ecx
xorps  %xmm2,%xmm2
cvtsi2sd %ecx,%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
mulsd  0xc8b(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xccc(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
xor    %eax,%eax
add    $0x20,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [4 x i8] c"k1=\00"
@.str.1 = [3 x i8] c"%d\00"
@.str.2 = [6 x i8] c"\1B[31m\00"
@.str.3 = [4 x i8] c"k2=\00"
@.str.4 = [6 x i8] c"\1B[32m\00"
@.str.5 = [4 x i8] c"k3=\00"
@.str.6 = [6 x i8] c"\1B[33m\00"
@.str.7 = [3 x i8] c"m=\00"
@.str.8 = [3 x i8] c"%f\00"
@.str.9 = [6 x i8] c"\1B[34m\00"
@.str.10 = [3 x i8] c"n=\00"
@.str.11 = [6 x i8] c"\1B[35m\00"
@.str.12 = [6 x i8] c"\1B[36m\00"
@.str.13 = [6 x i8] c"w=%f\0A\00"
@.str.14 = [21 x i8] c"infinity error in W\0A\00"
@.str.15 = [6 x i8] c"u=%f\0A\00"
@.str.16 = [21 x i8] c"infinity error in U\0A\00"
@.str.17 = [6 x i8] c"v=%f\0A\00"
@.str.18 = [21 x i8] c"infinite error in V\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca float
%6 = alloca float
%7 = alloca float
%8 = alloca float
%9 = alloca float
store i32 0, i32* %1
%10 = call i32 (...) @clrscr()
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%12 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %2)
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0))
%15 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %3)
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0))
%18 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %4)
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i64 0, i64 0))
%20 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0))
%21 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.8, i64 0, i64 0), float* %5)
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0))
%24 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.8, i64 0, i64 0), float* %6)
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.11, i64 0, i64 0))
%26 = call i32 (...) @clrscr()
%27 = load i32, i32* %4
%28 = load i32, i32* %3
%29 = add nsw i32 %27, %28
%30 = icmp ne i32 %29, 0
br i1 %30, label %31, label %56
31: ; preds = %0
%32 = load i32, i32* %3
%33 = icmp ne i32 %32, 0
br i1 %33, label %34, label %53
34: ; preds = %31
%35 = load i32, i32* %2
%36 = load i32, i32* %3
%37 = load i32, i32* %4
%38 = add nsw i32 %36, %37
%39 = sdiv i32 %35, %38
%40 = add nsw i32 0, %39
%41 = sitofp i32 %40 to float
%42 = load float, float* %5
%43 = load float, float* %6
%44 = fadd float %42, %43
%45 = load i32, i32* %3
%46 = sitofp i32 %45 to float
%47 = fdiv float %44, %46
%48 = fadd float %41, %47
store float %48, float* %9
%49 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0))
%50 = load float, float* %9
%51 = fpext float %50 to double
%52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), double %51)
br label %55
53: ; preds = %31
%54 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.14, i64 0, i64 0))
br label %55
55: ; preds = %53, %34
br label %58
56: ; preds = %0
%57 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.14, i64 0, i64 0))
br label %58
58: ; preds = %56, %55
%59 = load i32, i32* %4
%60 = icmp ne i32 %59, 0
br i1 %60, label %61, label %97
61: ; preds = %58
%62 = load float, float* %5
%63 = load i32, i32* %3
%64 = load i32, i32* %4
%65 = sdiv i32 %63, %64
%66 = sitofp i32 %65 to float
%67 = fadd float %62, %66
%68 = fcmp une float %67, 0.000000e+00
br i1 %68, label %69, label %94
69: ; preds = %61
%70 = load i32, i32* %4
%71 = sdiv i32 1, %70
%72 = sitofp i32 %71 to double
%73 = fadd double 1.000000e-01, %72
%74 = fdiv double %73, 1.000000e+03
%75 = load float, float* %5
%76 = load i32, i32* %2
%77 = load i32, i32* %4
%78 = sdiv i32 %76, %77
%79 = sitofp i32 %78 to float
%80 = fadd float %75, %79
%81 = load float, float* %5
%82 = load i32, i32* %3
%83 = load i32, i32* %4
%84 = sdiv i32 %82, %83
%85 = sitofp i32 %84 to float
%86 = fadd float %81, %85
%87 = fdiv float %80, %86
%88 = fpext float %87 to double
%89 = fadd double %74, %88
%90 = fptrunc double %89 to float
store float %90, float* %8
%91 = load float, float* %8
%92 = fpext float %91 to double
%93 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0), double %92)
br label %96
94: ; preds = %61
%95 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.16, i64 0, i64 0))
br label %96
96: ; preds = %94, %69
br label %99
97: ; preds = %58
%98 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.16, i64 0, i64 0))
br label %99
99: ; preds = %97, %96
%100 = load i32, i32* %4
%101 = icmp ne i32 %100, -13
br i1 %101, label %102, label %128
102: ; preds = %99
%103 = load i32, i32* %4
%104 = icmp ne i32 %103, -20
br i1 %104, label %105, label %125
105: ; preds = %102
%106 = load i32, i32* %2
%107 = sub nsw i32 13, %106
%108 = load i32, i32* %4
%109 = add nsw i32 13, %108
%110 = sdiv i32 %107, %109
%111 = sitofp i32 %110 to double
%112 = load i32, i32* %2
%113 = sitofp i32 %112 to double
%114 = fadd double 0x3EB0C6F7A0B5ED8D, %113
%115 = load i32, i32* %4
%116 = add nsw i32 20, %115
%117 = sitofp i32 %116 to double
%118 = fdiv double %114, %117
%119 = fsub double %111, %118
%120 = fmul double %119, 1.000000e-02
%121 = fptrunc double %120 to float
store float %121, float* %7
%122 = load float, float* %7
%123 = fpext float %122 to double
%124 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %123)
br label %127
125: ; preds = %102
%126 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.18, i64 0, i64 0))
br label %127
127: ; preds = %125, %105
br label %130
128: ; preds = %99
%129 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.18, i64 0, i64 0))
br label %130
130: ; preds = %128, %127
%131 = load i32, i32* %1
ret i32 %131
}

LLVM IR (-O2):
@.str = [4 x i8] c"k1=\00"
@.str.1 = [3 x i8] c"%d\00"
@.str.2 = [6 x i8] c"\1B[31m\00"
@.str.3 = [4 x i8] c"k2=\00"
@.str.4 = [6 x i8] c"\1B[32m\00"
@.str.5 = [4 x i8] c"k3=\00"
@.str.6 = [6 x i8] c"\1B[33m\00"
@.str.7 = [3 x i8] c"m=\00"
@.str.8 = [3 x i8] c"%f\00"
@.str.9 = [6 x i8] c"\1B[34m\00"
@.str.10 = [3 x i8] c"n=\00"
@.str.11 = [6 x i8] c"\1B[35m\00"
@.str.12 = [6 x i8] c"\1B[36m\00"
@.str.13 = [6 x i8] c"w=%f\0A\00"
@.str.15 = [6 x i8] c"u=%f\0A\00"
@.str.17 = [6 x i8] c"v=%f\0A\00"
@str.21 = [20 x i8] c"infinite error in V\00"
@str.22 = [20 x i8] c"infinity error in U\00"
@str.23 = [20 x i8] c"infinity error in W\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca float
%5 = alloca float
%6 = tail call i32 (...) @clrscr()
%7 = bitcast i32* %1 to i8*
%8 = bitcast i32* %2 to i8*
%9 = bitcast i32* %3 to i8*
%10 = bitcast float* %4 to i8*
%11 = bitcast float* %5 to i8*
%12 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%13 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %1)
%14 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%15 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0))
%16 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %2)
%17 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
%18 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0))
%19 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i32* %3)
%20 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.6, i64 0, i64 0))
%21 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0))
%22 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.8, i64 0, i64 0), float* %4)
%23 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0))
%25 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.8, i64 0, i64 0), float* %5)
%26 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.11, i64 0, i64 0))
%27 = call i32 (...) @clrscr()
%28 = load i32, i32* %3
%29 = load i32, i32* %2
%30 = add nsw i32 %29, %28
%31 = icmp eq i32 %30, 0
br i1 %31, label %49, label %32
32: ; preds = %0
%33 = icmp eq i32 %29, 0
br i1 %33, label %47, label %34
34: ; preds = %32
%35 = load i32, i32* %1
%36 = sdiv i32 %35, %30
%37 = sitofp i32 %36 to float
%38 = load float, float* %4
%39 = load float, float* %5
%40 = fadd float %38, %39
%41 = sitofp i32 %29 to float
%42 = fdiv float %40, %41
%43 = fadd float %42, %37
%44 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0))
%45 = fpext float %43 to double
%46 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), double %45)
br label %51
47: ; preds = %32
%48 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.23, i64 0, i64 0))
br label %51
49: ; preds = %0
%50 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.23, i64 0, i64 0))
br label %51
51: ; preds = %34, %47, %49
%52 = load i32, i32* %3
%53 = icmp eq i32 %52, 0
br i1 %53, label %80, label %54
54: ; preds = %51
%55 = load float, float* %4
%56 = load i32, i32* %2
%57 = sdiv i32 %56, %52
%58 = sitofp i32 %57 to float
%59 = fadd float %55, %58
%60 = fcmp une float %59, 0.000000e+00
br i1 %60, label %61, label %78
61: ; preds = %54
%62 = add i32 %52, 1
%63 = icmp ult i32 %62, 3
%64 = select i1 %63, i32 %52, i32 0
%65 = sitofp i32 %64 to double
%66 = fadd double %65, 1.000000e-01
%67 = fdiv double %66, 1.000000e+03
%68 = load i32, i32* %1
%69 = sdiv i32 %68, %52
%70 = sitofp i32 %69 to float
%71 = fadd float %55, %70
%72 = fdiv float %71, %59
%73 = fpext float %72 to double
%74 = fadd double %67, %73
%75 = fptrunc double %74 to float
%76 = fpext float %75 to double
%77 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0), double %76)
br label %82
78: ; preds = %54
%79 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.22, i64 0, i64 0))
br label %82
80: ; preds = %51
%81 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.22, i64 0, i64 0))
br label %82
82: ; preds = %61, %78, %80
%83 = load i32, i32* %3
switch i32 %83, label %84 [
i32 -13, label %102
i32 -20, label %100
]
84: ; preds = %82
%85 = load i32, i32* %1
%86 = sub nsw i32 13, %85
%87 = add nsw i32 %83, 13
%88 = sdiv i32 %86, %87
%89 = sitofp i32 %88 to double
%90 = sitofp i32 %85 to double
%91 = fadd double %90, 0x3EB0C6F7A0B5ED8D
%92 = add nsw i32 %83, 20
%93 = sitofp i32 %92 to double
%94 = fdiv double %91, %93
%95 = fsub double %89, %94
%96 = fmul double %95, 1.000000e-02
%97 = fptrunc double %96 to float
%98 = fpext float %97 to double
%99 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %98)
br label %104
100: ; preds = %82
%101 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.21, i64 0, i64 0))
br label %104
102: ; preds = %82
%103 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.21, i64 0, i64 0))
br label %104
104: ; preds = %84, %100, %102
ret i32 0
}