#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 pow(int, int);
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ scanf(char *, float *);
int main() {
  float a, b, c, e, f, K, L, M;
  {
    printf("Программа вычисляет значение выражений таких как 'K' 'L' 'M'\n");
    printf("K = (a+(b/c))/((c/a)+b)+(e*f)\n");
    printf("L = 10^3*((a/(b*c))+((e*f)/a))+(10^4*((b*c)/a))\n");
    printf("M = (1/a)+(2/b)+(3/c)+(4/e)+(5/f)\n");
    printf("Значения a, b, c являются целыми числами\n");
    printf("Значения e, f являются действительными числами\n");
  }
a:
  printf("a=");
  scanf("%f", &a);
  {
    if (a == 0)
      printf("При a=0 выражение 'K','L'И'M' не имеет смысла\n");
    if (a == 0)
      goto a;
  }
b:
  printf("b=");
  scanf("%f", &b);
  {
    if (b == 0)
      printf("При b=0 выражение 'L'И'M' не имеет смысла\n");
    if (b == 0)
      goto b;
  }
c:
  printf("c=");
  scanf("%f", &c);
  {
    if (c == 0)
      printf("При c=0 выражения'K'И'M' не имеют смысла\n");
    if (c == 0)
      goto c;
  }
e:
  printf("e=");
  scanf("%f", &e);
  {
    if (e == 0)
      printf("При e=0 выражение 'M' не имеет смысла\n");
    if (e == 0)
      goto e;
  }
f:
  printf("f=");
  scanf("%f", &f);
  {
    if (f == 0)
      printf("При f=0 выражение 'M' не имеет смысла\n");
    if (f == 0)
      goto f;
  }
  K = (a + (b / c)) / ((c / a) + b) + (e * f);
  L = pow(10, 3) * ((a / (b * c)) + ((e * f) / a)) +
      (pow(10, 4) * ((b * c) / a));
  M = (1 / a) + (2 / b) + (3 / c) + (4 / e) + (5 / f);
  printf("K=%f\n", K);
  printf("L=%f\n", L);
  printf("M=%f\n", M);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xece(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf29(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf3a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf5d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf72(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfab(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xff3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfe8(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <scanf@plt>
movss  -0x8(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    11d6 <main+0xa6>
jp     11d6 <main+0xa6>
lea    0xfc4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movss  -0x8(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    11f2 <main+0xc2>
jp     11f2 <main+0xc2>
jmp    1193 <main+0x63>
jmp    11f7 <main+0xc7>
lea    0xfde(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf84(%rip),%rdi
lea    -0xc(%rbp),%rsi
call   1040 <scanf@plt>
movss  -0xc(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    123a <main+0x10a>
jp     123a <main+0x10a>
lea    0xfac(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movss  -0xc(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    1256 <main+0x126>
jp     1256 <main+0x126>
jmp    11f7 <main+0xc7>
jmp    125b <main+0x12b>
lea    0xfc2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf20(%rip),%rdi
lea    -0x10(%rbp),%rsi
call   1040 <scanf@plt>
movss  -0x10(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    129e <main+0x16e>
jp     129e <main+0x16e>
lea    0xf90(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movss  -0x10(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    12ba <main+0x18a>
jp     12ba <main+0x18a>
jmp    125b <main+0x12b>
jmp    12bf <main+0x18f>
lea    0xfa5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xebc(%rip),%rdi
lea    -0x14(%rbp),%rsi
call   1040 <scanf@plt>
movss  -0x14(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    1302 <main+0x1d2>
jp     1302 <main+0x1d2>
lea    0xf73(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movss  -0x14(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    131e <main+0x1ee>
jp     131e <main+0x1ee>
jmp    12bf <main+0x18f>
jmp    1323 <main+0x1f3>
lea    0xf84(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe58(%rip),%rdi
lea    -0x18(%rbp),%rsi
call   1040 <scanf@plt>
movss  -0x18(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    1366 <main+0x236>
jp     1366 <main+0x236>
lea    0xf52(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movss  -0x18(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    1382 <main+0x252>
jp     1382 <main+0x252>
jmp    1323 <main+0x1f3>
movss  -0x8(%rbp),%xmm1
movss  -0xc(%rbp),%xmm0
divss  -0x10(%rbp),%xmm0
addss  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
divss  -0x8(%rbp),%xmm0
addss  -0xc(%rbp),%xmm0
divss  %xmm0,%xmm1
movss  -0x14(%rbp),%xmm0
movss  -0x18(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    $0xa,%edi
mov    $0x3,%esi
call   1050 <pow@plt>
movss  %xmm0,-0x28(%rbp)
movss  -0x8(%rbp),%xmm0
movss  -0xc(%rbp),%xmm1
mulss  -0x10(%rbp),%xmm1
divss  %xmm1,%xmm0
movss  -0x14(%rbp),%xmm1
mulss  -0x18(%rbp),%xmm1
divss  -0x8(%rbp),%xmm1
addss  %xmm1,%xmm0
movss  %xmm0,-0x2c(%rbp)
mov    $0xa,%edi
mov    $0x4,%esi
call   1050 <pow@plt>
movss  -0x2c(%rbp),%xmm2
movaps %xmm0,%xmm1
movss  -0x28(%rbp),%xmm0
movss  -0xc(%rbp),%xmm3
mulss  -0x10(%rbp),%xmm3
divss  -0x8(%rbp),%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  0xbce(%rip),%xmm0
divss  -0x8(%rbp),%xmm0
movss  0xbbd(%rip),%xmm1
divss  -0xc(%rbp),%xmm1
addss  %xmm1,%xmm0
movss  0xba8(%rip),%xmm1
divss  -0x10(%rbp),%xmm1
addss  %xmm1,%xmm0
movss  0xb93(%rip),%xmm1
divss  -0x14(%rbp),%xmm1
addss  %xmm1,%xmm0
movss  0xb7e(%rip),%xmm1
divss  -0x18(%rbp),%xmm1
addss  %xmm1,%xmm0
movss  %xmm0,-0x24(%rbp)
movss  -0x1c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xe51(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  -0x20(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xe40(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xe2f(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x48,%rsp
lea    0xf02(%rip),%rdi
call   1030 <puts@plt>
lea    0xf5e(%rip),%rdi
call   1030 <puts@plt>
lea    0xf70(%rip),%rdi
call   1030 <puts@plt>
lea    0xf94(%rip),%rdi
call   1030 <puts@plt>
lea    0xfaa(%rip),%rdi
call   1030 <puts@plt>
lea    0xfe4(%rip),%rdi
call   1030 <puts@plt>
lea    0xe96(%rip),%r14
lea    0xe92(%rip),%r15
lea    0x14(%rsp),%rbx
lea    0x111f(%rip),%r12
jmp    11b7 <main+0x77>
nop
ucomiss %xmm1,%xmm0
jne    11ef <main+0xaf>
jp     11ef <main+0xaf>
mov    %r14,%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15,%rdi
mov    %rbx,%rsi
call   1050 <scanf@plt>
xorps  %xmm1,%xmm1
movss  0x14(%rsp),%xmm0
ucomiss %xmm1,%xmm0
jne    11b0 <main+0x70>
jp     11b0 <main+0x70>
mov    %r12,%rdi
call   1030 <puts@plt>
xorps  %xmm1,%xmm1
movss  0x14(%rsp),%xmm0
jmp    11b0 <main+0x70>
lea    0xe40(%rip),%r14
lea    0xe36(%rip),%r15
lea    0x10(%rsp),%rbx
lea    0x107f(%rip),%r12
jmp    1217 <main+0xd7>
nopl   0x0(%rax,%rax,1)
ucomiss %xmm1,%xmm0
jne    124f <main+0x10f>
jp     124f <main+0x10f>
mov    %r14,%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15,%rdi
mov    %rbx,%rsi
call   1050 <scanf@plt>
xorps  %xmm1,%xmm1
movss  0x10(%rsp),%xmm0
ucomiss %xmm1,%xmm0
jne    1210 <main+0xd0>
jp     1210 <main+0xd0>
mov    %r12,%rdi
call   1030 <puts@plt>
xorps  %xmm1,%xmm1
movss  0x10(%rsp),%xmm0
jmp    1210 <main+0xd0>
lea    0xde3(%rip),%r14
lea    0xdd6(%rip),%r15
lea    0xc(%rsp),%rbx
lea    0xfdc(%rip),%r12
jmp    1277 <main+0x137>
nopl   0x0(%rax,%rax,1)
ucomiss %xmm1,%xmm0
jne    12af <main+0x16f>
jp     12af <main+0x16f>
mov    %r14,%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15,%rdi
mov    %rbx,%rsi
call   1050 <scanf@plt>
xorps  %xmm1,%xmm1
movss  0xc(%rsp),%xmm0
ucomiss %xmm1,%xmm0
jne    1270 <main+0x130>
jp     1270 <main+0x130>
mov    %r12,%rdi
call   1030 <puts@plt>
xorps  %xmm1,%xmm1
movss  0xc(%rsp),%xmm0
jmp    1270 <main+0x130>
lea    0xd86(%rip),%r14
lea    0xd76(%rip),%r15
lea    0x8(%rsp),%rbx
lea    0xf3d(%rip),%r12
jmp    12d7 <main+0x197>
nopl   0x0(%rax,%rax,1)
ucomiss %xmm1,%xmm0
jne    130f <main+0x1cf>
jp     130f <main+0x1cf>
mov    %r14,%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15,%rdi
mov    %rbx,%rsi
call   1050 <scanf@plt>
xorps  %xmm1,%xmm1
movss  0x8(%rsp),%xmm0
ucomiss %xmm1,%xmm0
jne    12d0 <main+0x190>
jp     12d0 <main+0x190>
mov    %r12,%rdi
call   1030 <puts@plt>
xorps  %xmm1,%xmm1
movss  0x8(%rsp),%xmm0
jmp    12d0 <main+0x190>
lea    0xd29(%rip),%r14
lea    0xd16(%rip),%r15
lea    0x18(%rsp),%rbx
lea    0xe9e(%rip),%r12
jmp    1337 <main+0x1f7>
nopl   0x0(%rax,%rax,1)
ucomiss %xmm0,%xmm4
jne    136f <main+0x22f>
jp     136f <main+0x22f>
mov    %r14,%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15,%rdi
mov    %rbx,%rsi
call   1050 <scanf@plt>
xorps  %xmm0,%xmm0
movss  0x18(%rsp),%xmm4
ucomiss %xmm0,%xmm4
jne    1330 <main+0x1f0>
jp     1330 <main+0x1f0>
mov    %r12,%rdi
call   1030 <puts@plt>
xorps  %xmm0,%xmm0
movss  0x18(%rsp),%xmm4
jmp    1330 <main+0x1f0>
movss  0xc(%rsp),%xmm0
movss  0x10(%rsp),%xmm1
movaps %xmm1,%xmm2
unpcklps %xmm0,%xmm2
movss  0x14(%rsp),%xmm3
unpcklps %xmm3,%xmm0
divps  %xmm0,%xmm2
unpcklps %xmm1,%xmm3
addps  %xmm2,%xmm3
movaps %xmm3,%xmm0
shufps $0x55,%xmm3,%xmm0
divss  %xmm0,%xmm3
mulss  0x8(%rsp),%xmm4
addss  %xmm3,%xmm4
movss  %xmm4,0x1c(%rsp)
mov    $0xa,%edi
mov    $0x3,%esi
call   1060 <pow@plt>
movss  %xmm0,0x20(%rsp)
movss  0x10(%rsp),%xmm0
mulss  0xc(%rsp),%xmm0
movss  0x8(%rsp),%xmm1
mulss  0x18(%rsp),%xmm1
movss  0x14(%rsp),%xmm2
unpcklps %xmm2,%xmm0
unpcklps %xmm1,%xmm2
divps  %xmm0,%xmm2
movaps %xmm2,%xmm0
shufps $0x55,%xmm2,%xmm0
addss  %xmm2,%xmm0
movaps %xmm0,0x30(%rsp)
mov    $0xa,%edi
mov    $0x4,%esi
call   1060 <pow@plt>
movss  0x10(%rsp),%xmm1
movss  0xc(%rsp),%xmm2
movaps %xmm1,%xmm3
mulss  %xmm2,%xmm3
movss  0x14(%rsp),%xmm4
divss  %xmm4,%xmm3
mulss  %xmm0,%xmm3
movaps 0x30(%rsp),%xmm0
mulss  0x20(%rsp),%xmm0
addss  %xmm3,%xmm0
movaps %xmm0,0x30(%rsp)
movss  0xbba(%rip),%xmm0
divss  %xmm4,%xmm0
unpcklps %xmm1,%xmm2
movaps 0xbbc(%rip),%xmm1
divps  %xmm2,%xmm1
movaps %xmm1,%xmm2
shufps $0x55,%xmm1,%xmm2
addss  %xmm0,%xmm2
addss  %xmm1,%xmm2
movss  0x8(%rsp),%xmm0
movss  0x18(%rsp),%xmm1
unpcklps %xmm0,%xmm1
movaps 0xba4(%rip),%xmm0
divps  %xmm1,%xmm0
movaps %xmm0,%xmm1
shufps $0x55,%xmm0,%xmm1
addss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movaps %xmm1,0x20(%rsp)
movss  0x1c(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xb9e(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
movaps 0x30(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xb8d(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
movaps 0x20(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xb7c(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
xor    %eax,%eax
add    $0x48,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
@.str = [105 x i8] c"\D0\9F\D1\80\D0\BE\D0\B3\D1\80\D0\B0\D0\BC\D0\BC\D0\B0 \D0\B2\D1\8B\D1\87\D0\B8\D1\81\D0\BB\D1\8F\D0\B5\D1\82 \D0\B7\D0\BD\D0\B0\D1\87\D0\B5\D0\BD\D0\B8\D0\B5 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D0\B9 \D1\82\D0\B0\D0\BA\D0\B8\D1\85 \D0\BA\D0\B0\D0\BA 'K' 'L' 'M'\0A\00"
@.str.1 = [31 x i8] c"K = (a+(b/c))/((c/a)+b)+(e*f)\0A\00"
@.str.2 = [49 x i8] c"L = 10^3*((a/(b*c))+((e*f)/a))+(10^4*((b*c)/a))\0A\00"
@.str.3 = [35 x i8] c"M = (1/a)+(2/b)+(3/c)+(4/e)+(5/f)\0A\00"
@.str.4 = [71 x i8] c"\D0\97\D0\BD\D0\B0\D1\87\D0\B5\D0\BD\D0\B8\D1\8F a, b, c \D1\8F\D0\B2\D0\BB\D1\8F\D1\8E\D1\82\D1\81\D1\8F \D1\86\D0\B5\D0\BB\D1\8B\D0\BC\D0\B8 \D1\87\D0\B8\D1\81\D0\BB\D0\B0\D0\BC\D0\B8\0A\00"
@.str.5 = [86 x i8] c"\D0\97\D0\BD\D0\B0\D1\87\D0\B5\D0\BD\D0\B8\D1\8F e, f \D1\8F\D0\B2\D0\BB\D1\8F\D1\8E\D1\82\D1\81\D1\8F \D0\B4\D0\B5\D0\B9\D1\81\D1\82\D0\B2\D0\B8\D1\82\D0\B5\D0\BB\D1\8C\D0\BD\D1\8B\D0\BC\D0\B8 \D1\87\D0\B8\D1\81\D0\BB\D0\B0\D0\BC\D0\B8\0A\00"
@.str.6 = [3 x i8] c"a=\00"
@.str.7 = [3 x i8] c"%f\00"
@.str.8 = [73 x i8] c"\D0\9F\D1\80\D0\B8 a=0 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D0\B5 'K','L'\D0\98'M' \D0\BD\D0\B5 \D0\B8\D0\BC\D0\B5\D0\B5\D1\82 \D1\81\D0\BC\D1\8B\D1\81\D0\BB\D0\B0\0A\00"
@.str.9 = [3 x i8] c"b=\00"
@.str.10 = [69 x i8] c"\D0\9F\D1\80\D0\B8 b=0 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D0\B5 'L'\D0\98'M' \D0\BD\D0\B5 \D0\B8\D0\BC\D0\B5\D0\B5\D1\82 \D1\81\D0\BC\D1\8B\D1\81\D0\BB\D0\B0\0A\00"
@.str.11 = [3 x i8] c"c=\00"
@.str.12 = [68 x i8] c"\D0\9F\D1\80\D0\B8 c=0 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D1\8F'K'\D0\98'M' \D0\BD\D0\B5 \D0\B8\D0\BC\D0\B5\D1\8E\D1\82 \D1\81\D0\BC\D1\8B\D1\81\D0\BB\D0\B0\0A\00"
@.str.13 = [3 x i8] c"e=\00"
@.str.14 = [64 x i8] c"\D0\9F\D1\80\D0\B8 e=0 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D0\B5 'M' \D0\BD\D0\B5 \D0\B8\D0\BC\D0\B5\D0\B5\D1\82 \D1\81\D0\BC\D1\8B\D1\81\D0\BB\D0\B0\0A\00"
@.str.15 = [3 x i8] c"f=\00"
@.str.16 = [64 x i8] c"\D0\9F\D1\80\D0\B8 f=0 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D0\B5 'M' \D0\BD\D0\B5 \D0\B8\D0\BC\D0\B5\D0\B5\D1\82 \D1\81\D0\BC\D1\8B\D1\81\D0\BB\D0\B0\0A\00"
@.str.17 = [6 x i8] c"K=%f\0A\00"
@.str.18 = [6 x i8] c"L=%f\0A\00"
@.str.19 = [6 x i8] c"M=%f\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca float
%3 = alloca float
%4 = alloca float
%5 = alloca float
%6 = alloca float
%7 = alloca float
%8 = alloca float
%9 = alloca float
store i32 0, i32* %1
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([105 x i8], [105 x i8]* @.str, i64 0, i64 0))
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.1, i64 0, i64 0))
%12 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.2, i64 0, i64 0))
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.3, i64 0, i64 0))
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.4, i64 0, i64 0))
%15 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.str.5, i64 0, i64 0))
br label %16
16: ; preds = %26, %0
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0))
%18 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %2)
%19 = load float, float* %2
%20 = fcmp oeq float %19, 0.000000e+00
br i1 %20, label %21, label %23
21: ; preds = %16
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.8, i64 0, i64 0))
br label %23
23: ; preds = %21, %16
%24 = load float, float* %2
%25 = fcmp oeq float %24, 0.000000e+00
br i1 %25, label %26, label %27
26: ; preds = %23
br label %16
27: ; preds = %23
br label %28
28: ; preds = %38, %27
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0))
%30 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %3)
%31 = load float, float* %3
%32 = fcmp oeq float %31, 0.000000e+00
br i1 %32, label %33, label %35
33: ; preds = %28
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.10, i64 0, i64 0))
br label %35
35: ; preds = %33, %28
%36 = load float, float* %3
%37 = fcmp oeq float %36, 0.000000e+00
br i1 %37, label %38, label %39
38: ; preds = %35
br label %28
39: ; preds = %35
br label %40
40: ; preds = %50, %39
%41 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%42 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %4)
%43 = load float, float* %4
%44 = fcmp oeq float %43, 0.000000e+00
br i1 %44, label %45, label %47
45: ; preds = %40
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.12, i64 0, i64 0))
br label %47
47: ; preds = %45, %40
%48 = load float, float* %4
%49 = fcmp oeq float %48, 0.000000e+00
br i1 %49, label %50, label %51
50: ; preds = %47
br label %40
51: ; preds = %47
br label %52
52: ; preds = %62, %51
%53 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i64 0, i64 0))
%54 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %5)
%55 = load float, float* %5
%56 = fcmp oeq float %55, 0.000000e+00
br i1 %56, label %57, label %59
57: ; preds = %52
%58 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.14, i64 0, i64 0))
br label %59
59: ; preds = %57, %52
%60 = load float, float* %5
%61 = fcmp oeq float %60, 0.000000e+00
br i1 %61, label %62, label %63
62: ; preds = %59
br label %52
63: ; preds = %59
br label %64
64: ; preds = %74, %63
%65 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
%66 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %6)
%67 = load float, float* %6
%68 = fcmp oeq float %67, 0.000000e+00
br i1 %68, label %69, label %71
69: ; preds = %64
%70 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.16, i64 0, i64 0))
br label %71
71: ; preds = %69, %64
%72 = load float, float* %6
%73 = fcmp oeq float %72, 0.000000e+00
br i1 %73, label %74, label %75
74: ; preds = %71
br label %64
75: ; preds = %71
%76 = load float, float* %2
%77 = load float, float* %3
%78 = load float, float* %4
%79 = fdiv float %77, %78
%80 = fadd float %76, %79
%81 = load float, float* %4
%82 = load float, float* %2
%83 = fdiv float %81, %82
%84 = load float, float* %3
%85 = fadd float %83, %84
%86 = fdiv float %80, %85
%87 = load float, float* %5
%88 = load float, float* %6
%89 = call float @llvm.fmuladd.f32(float %87, float %88, float %86)
store float %89, float* %7
%90 = call float @pow(i32 10, i32 3)
%91 = load float, float* %2
%92 = load float, float* %3
%93 = load float, float* %4
%94 = fmul float %92, %93
%95 = fdiv float %91, %94
%96 = load float, float* %5
%97 = load float, float* %6
%98 = fmul float %96, %97
%99 = load float, float* %2
%100 = fdiv float %98, %99
%101 = fadd float %95, %100
%102 = call float @pow(i32 10, i32 4)
%103 = load float, float* %3
%104 = load float, float* %4
%105 = fmul float %103, %104
%106 = load float, float* %2
%107 = fdiv float %105, %106
%108 = fmul float %102, %107
%109 = call float @llvm.fmuladd.f32(float %90, float %101, float %108)
store float %109, float* %8
%110 = load float, float* %2
%111 = fdiv float 1.000000e+00, %110
%112 = load float, float* %3
%113 = fdiv float 2.000000e+00, %112
%114 = fadd float %111, %113
%115 = load float, float* %4
%116 = fdiv float 3.000000e+00, %115
%117 = fadd float %114, %116
%118 = load float, float* %5
%119 = fdiv float 4.000000e+00, %118
%120 = fadd float %117, %119
%121 = load float, float* %6
%122 = fdiv float 5.000000e+00, %121
%123 = fadd float %120, %122
store float %123, float* %9
%124 = load float, float* %7
%125 = fpext float %124 to double
%126 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %125)
%127 = load float, float* %8
%128 = fpext float %127 to double
%129 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.18, i64 0, i64 0), double %128)
%130 = load float, float* %9
%131 = fpext float %130 to double
%132 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.19, i64 0, i64 0), double %131)
ret i32 0
}

LLVM IR (-O2):
@.str.6 = [3 x i8] c"a=\00"
@.str.7 = [3 x i8] c"%f\00"
@.str.9 = [3 x i8] c"b=\00"
@.str.11 = [3 x i8] c"c=\00"
@.str.13 = [3 x i8] c"e=\00"
@.str.15 = [3 x i8] c"f=\00"
@.str.17 = [6 x i8] c"K=%f\0A\00"
@.str.18 = [6 x i8] c"L=%f\0A\00"
@.str.19 = [6 x i8] c"M=%f\0A\00"
@str = [104 x i8] c"\D0\9F\D1\80\D0\BE\D0\B3\D1\80\D0\B0\D0\BC\D0\BC\D0\B0 \D0\B2\D1\8B\D1\87\D0\B8\D1\81\D0\BB\D1\8F\D0\B5\D1\82 \D0\B7\D0\BD\D0\B0\D1\87\D0\B5\D0\BD\D0\B8\D0\B5 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D0\B9 \D1\82\D0\B0\D0\BA\D0\B8\D1\85 \D0\BA\D0\B0\D0\BA 'K' 'L' 'M'\00"
@str.20 = [30 x i8] c"K = (a+(b/c))/((c/a)+b)+(e*f)\00"
@str.21 = [48 x i8] c"L = 10^3*((a/(b*c))+((e*f)/a))+(10^4*((b*c)/a))\00"
@str.22 = [34 x i8] c"M = (1/a)+(2/b)+(3/c)+(4/e)+(5/f)\00"
@str.23 = [70 x i8] c"\D0\97\D0\BD\D0\B0\D1\87\D0\B5\D0\BD\D0\B8\D1\8F a, b, c \D1\8F\D0\B2\D0\BB\D1\8F\D1\8E\D1\82\D1\81\D1\8F \D1\86\D0\B5\D0\BB\D1\8B\D0\BC\D0\B8 \D1\87\D0\B8\D1\81\D0\BB\D0\B0\D0\BC\D0\B8\00"
@str.24 = [85 x i8] c"\D0\97\D0\BD\D0\B0\D1\87\D0\B5\D0\BD\D0\B8\D1\8F e, f \D1\8F\D0\B2\D0\BB\D1\8F\D1\8E\D1\82\D1\81\D1\8F \D0\B4\D0\B5\D0\B9\D1\81\D1\82\D0\B2\D0\B8\D1\82\D0\B5\D0\BB\D1\8C\D0\BD\D1\8B\D0\BC\D0\B8 \D1\87\D0\B8\D1\81\D0\BB\D0\B0\D0\BC\D0\B8\00"
@str.25 = [63 x i8] c"\D0\9F\D1\80\D0\B8 f=0 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D0\B5 'M' \D0\BD\D0\B5 \D0\B8\D0\BC\D0\B5\D0\B5\D1\82 \D1\81\D0\BC\D1\8B\D1\81\D0\BB\D0\B0\00"
@str.26 = [63 x i8] c"\D0\9F\D1\80\D0\B8 e=0 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D0\B5 'M' \D0\BD\D0\B5 \D0\B8\D0\BC\D0\B5\D0\B5\D1\82 \D1\81\D0\BC\D1\8B\D1\81\D0\BB\D0\B0\00"
@str.27 = [67 x i8] c"\D0\9F\D1\80\D0\B8 c=0 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D1\8F'K'\D0\98'M' \D0\BD\D0\B5 \D0\B8\D0\BC\D0\B5\D1\8E\D1\82 \D1\81\D0\BC\D1\8B\D1\81\D0\BB\D0\B0\00"
@str.28 = [68 x i8] c"\D0\9F\D1\80\D0\B8 b=0 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D0\B5 'L'\D0\98'M' \D0\BD\D0\B5 \D0\B8\D0\BC\D0\B5\D0\B5\D1\82 \D1\81\D0\BC\D1\8B\D1\81\D0\BB\D0\B0\00"
@str.29 = [72 x i8] c"\D0\9F\D1\80\D0\B8 a=0 \D0\B2\D1\8B\D1\80\D0\B0\D0\B6\D0\B5\D0\BD\D0\B8\D0\B5 'K','L'\D0\98'M' \D0\BD\D0\B5 \D0\B8\D0\BC\D0\B5\D0\B5\D1\82 \D1\81\D0\BC\D1\8B\D1\81\D0\BB\D0\B0\00"
define i32 @main() {
%1 = alloca float
%2 = alloca float
%3 = alloca float
%4 = alloca float
%5 = alloca float
%6 = bitcast float* %1 to i8*
%7 = bitcast float* %2 to i8*
%8 = bitcast float* %3 to i8*
%9 = bitcast float* %4 to i8*
%10 = bitcast float* %5 to i8*
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([104 x i8], [104 x i8]* @str, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @str.20, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @str.21, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @str.22, i64 0, i64 0))
%15 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.23, i64 0, i64 0))
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([85 x i8], [85 x i8]* @str.24, i64 0, i64 0))
br label %17
17: ; preds = %25, %0
%18 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0))
%19 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %1)
%20 = load float, float* %1
%21 = fcmp oeq float %20, 0.000000e+00
br i1 %21, label %22, label %25
22: ; preds = %17
%23 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.29, i64 0, i64 0))
%24 = load float, float* %1
br label %25
25: ; preds = %22, %17
%26 = phi float [ %24, %22 ], [ %20, %17 ]
%27 = fcmp oeq float %26, 0.000000e+00
br i1 %27, label %17, label %28
28: ; preds = %25, %36
%29 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0))
%30 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %2)
%31 = load float, float* %2
%32 = fcmp oeq float %31, 0.000000e+00
br i1 %32, label %33, label %36
33: ; preds = %28
%34 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.28, i64 0, i64 0))
%35 = load float, float* %2
br label %36
36: ; preds = %33, %28
%37 = phi float [ %35, %33 ], [ %31, %28 ]
%38 = fcmp oeq float %37, 0.000000e+00
br i1 %38, label %28, label %39
39: ; preds = %36, %47
%40 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%41 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %3)
%42 = load float, float* %3
%43 = fcmp oeq float %42, 0.000000e+00
br i1 %43, label %44, label %47
44: ; preds = %39
%45 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.27, i64 0, i64 0))
%46 = load float, float* %3
br label %47
47: ; preds = %44, %39
%48 = phi float [ %46, %44 ], [ %42, %39 ]
%49 = fcmp oeq float %48, 0.000000e+00
br i1 %49, label %39, label %50
50: ; preds = %47, %58
%51 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i64 0, i64 0))
%52 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %4)
%53 = load float, float* %4
%54 = fcmp oeq float %53, 0.000000e+00
br i1 %54, label %55, label %58
55: ; preds = %50
%56 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.26, i64 0, i64 0))
%57 = load float, float* %4
br label %58
58: ; preds = %55, %50
%59 = phi float [ %57, %55 ], [ %53, %50 ]
%60 = fcmp oeq float %59, 0.000000e+00
br i1 %60, label %50, label %61
61: ; preds = %58, %69
%62 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
%63 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), float* %5)
%64 = load float, float* %5
%65 = fcmp oeq float %64, 0.000000e+00
br i1 %65, label %66, label %69
66: ; preds = %61
%67 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.25, i64 0, i64 0))
%68 = load float, float* %5
br label %69
69: ; preds = %66, %61
%70 = phi float [ %68, %66 ], [ %64, %61 ]
%71 = fcmp oeq float %70, 0.000000e+00
br i1 %71, label %61, label %72
72: ; preds = %69
%73 = load float, float* %1
%74 = load float, float* %2
%75 = load float, float* %3
%76 = insertelement <2 x float> poison, float %74, i64 0
%77 = insertelement <2 x float> %76, float %75, i64 1
%78 = insertelement <2 x float> poison, float %75, i64 0
%79 = insertelement <2 x float> %78, float %73, i64 1
%80 = fdiv <2 x float> %77, %79
%81 = insertelement <2 x float> poison, float %73, i64 0
%82 = insertelement <2 x float> %81, float %74, i64 1
%83 = fadd <2 x float> %82, %80
%84 = extractelement <2 x float> %83, i64 0
%85 = extractelement <2 x float> %83, i64 1
%86 = fdiv float %84, %85
%87 = load float, float* %4
%88 = call float @llvm.fmuladd.f32(float %87, float %70, float %86)
%89 = call float @pow(i32 10, i32 3)
%90 = load float, float* %1
%91 = load float, float* %2
%92 = load float, float* %3
%93 = fmul float %91, %92
%94 = load float, float* %4
%95 = load float, float* %5
%96 = fmul float %94, %95
%97 = insertelement <2 x float> poison, float %90, i64 0
%98 = insertelement <2 x float> %97, float %96, i64 1
%99 = insertelement <2 x float> poison, float %93, i64 0
%100 = insertelement <2 x float> %99, float %90, i64 1
%101 = fdiv <2 x float> %98, %100
%102 = shufflevector <2 x float> %101, <2 x float> poison, <2 x i32> <i32 1, i32 undef>
%103 = fadd <2 x float> %101, %102
%104 = extractelement <2 x float> %103, i64 0
%105 = call float @pow(i32 10, i32 4)
%106 = load float, float* %2
%107 = load float, float* %3
%108 = fmul float %106, %107
%109 = load float, float* %1
%110 = fdiv float %108, %109
%111 = fmul float %105, %110
%112 = call float @llvm.fmuladd.f32(float %89, float %104, float %111)
%113 = fdiv float 1.000000e+00, %109
%114 = insertelement <2 x float> poison, float %107, i64 0
%115 = insertelement <2 x float> %114, float %106, i64 1
%116 = fdiv <2 x float> <float 3.000000e+00, float 2.000000e+00>, %115
%117 = extractelement <2 x float> %116, i64 1
%118 = fadd float %117, %113
%119 = extractelement <2 x float> %116, i64 0
%120 = fadd float %119, %118
%121 = load float, float* %4
%122 = load float, float* %5
%123 = insertelement <2 x float> poison, float %122, i64 0
%124 = insertelement <2 x float> %123, float %121, i64 1
%125 = fdiv <2 x float> <float 5.000000e+00, float 4.000000e+00>, %124
%126 = extractelement <2 x float> %125, i64 1
%127 = fadd float %126, %120
%128 = extractelement <2 x float> %125, i64 0
%129 = fadd float %128, %127
%130 = fpext float %88 to double
%131 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), double %130)
%132 = fpext float %112 to double
%133 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.18, i64 0, i64 0), double %132)
%134 = fpext float %129 to double
%135 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.19, i64 0, i64 0), double %134)
ret i32 0
}