#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 cos(float);
float log10(float);
float pow(int, float);
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ scanf(char *, ...);
int sin(float);
float sqrt(float);
int tan(float);
int main() {
  char reply;
  int choice, i, a, b, c, count = 1, var = 1;
  float x, y, result, check, store = -32768;
  do {
    printf("\nSelect your operation:\n");
    printf("1. Addition\t");
    printf("2. Subtraction\t");
    printf("3. Multiplication\t");
    printf("4. Division\n");
    printf("5. X ^ 2\t");
    printf("6. X ^ 3\t");
    printf("7. Square root\t \t");
    printf("8. X ^ (1 / 3)\n");
    printf("9. X ^ Y\t");
    printf("10. 1 / X\t");
    printf("11. e ^ X\t \t");
    printf("12. 10 ^ X\n");
    printf("13. X!\t \t");
    printf("14. Percentage \t");
    printf("15. log10(x)\t \t");
    printf("16. Modulus\n");
    printf("17. Sin(X)\t");
    printf("18. Cos(X)\t");
    printf("19. Tan(X)\t \t");
    printf("20. Cosec(X)\n");
    printf("21. Cot(X)\t");
    printf("22. Sec(X)\n");
    printf("Choice: ");
    scanf("%d", &choice);
    switch (choice) {
    case 1:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      printf("\nEnter Y: ");
      scanf("%f", &y);
      result = x + y;
      printf("\nResult: %f", result);
      break;
    case 2:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      printf("\nEnter Y: ");
      scanf("%f", &y);
      result = x - y;
      printf("\nResult: %f", result);
      break;
    case 3:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      printf("\nEnter Y: ");
      scanf("%f", &y);
      result = x * y;
      printf("\nResult: %f", result);
      break;
    case 4:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      printf("\nEnter Y: ");
      scanf("%f", &y);
      result = x / y;
      printf("\nResult: %f", result);
      break;
    case 5:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = pow(x, 2);
      printf("\nResult: %f", result);
      break;
    case 6:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = pow(x, 3);
      printf("\nResult: %f", result);
      break;
    case 7:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = sqrt(x);
      printf("\nResult: %f", result);
      break;
    case 8:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      y = 3;
      result = pow(x, (1 / y));
      printf("\nResult: %f", result);
      break;
    case 9:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      printf("Enter Y: ");
      scanf("%f", &y);
      result = pow(x, y);
      printf("\nResult: %f", result);
      break;
    case 10:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = 1 / x;
      printf("\nResult: %f", result);
      break;
    case 11:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      y = 1;
      result = 0;
      do {
        result = result + y;
        y = y * x / count;
        count++;
        if (y > 0)
          check = y;
        else
          check = -y;
      } while (check >= 0.0000001);
      printf("\nResult: %f", result);
      break;
    case 12:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = pow(10, x);
      printf("\nResult: %f", result);
      break;
    case 13:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = 1;
      for (i = 1; i <= x; i++) {
        result = result * i;
      }
      printf("\nResult: %f", result);
      break;
    case 14:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      printf("\nEnter Y: ");
      scanf("%f", &y);
      result = (x / y) * 100;
      printf("\nResult: %f", result);
      break;
    case 15:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = log10(x);
      printf("\nResult: %f", result);
      break;
    case 16:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%d", &a);
      } else
        a = store;
      printf("\nEnter Y: ");
      scanf("%d", &b);
      c = a % b;
      printf("\nResult: %d", c);
      result = c;
      break;
    case 17:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = sin(x * 3.14159 / 180);
      printf("\nResult: %f", result);
      break;
    case 18:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = cos(x * 3.14159 / 180);
      printf("\nResult: %f", result);
      break;
    case 19:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = tan(x * 3.14159 / 180);
      printf("\nResult: %f", result);
      break;
    case 20:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = 1 / (sin(x * 3.14159 / 180));
      printf("\nResult: %.2f", result);
      break;
    case 21:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = 1 / tan(x * 3.14159 / 180);
      printf("\nResult: %.2f", result);
      break;
    case 22:
      if (store == -32768) {
        printf("Enter X: ");
        scanf("%f", &x);
      } else
        x = store;
      result = 1 / cos(x * 3.14159 / 180);
      printf("\nResult: %.2f", result);
      break;
    default:
      printf("\nInvalid Choice!");
    }
    printf("\nTo continue with previous result press 2.");
    printf("\nTo continue without previous result press 1.");
    printf("\nTo discontinue press 0.");
    do {
      printf("  Press: ");
      scanf("%d", &var);
      if (var == 2)
        store = result;
      else if (var == 1)
        store = -32768;
      else if (var != 2 && var != 1 && var != 0) {
        printf("Invalid, re-enter!");
      }
    } while (var != 2 && var != 1 && var != 0);
  } while (var);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x1,-0x20(%rbp)
movl   $0x1,-0x24(%rbp)
movss  0x1e5b(%rip),%xmm0
movss  %xmm0,-0x38(%rbp)
lea    0x1ed7(%rip),%rdi
xor    %eax,%eax
mov    %al,-0x41(%rbp)
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1edc(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1eda(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1edb(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1edf(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1edd(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ed8(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ed3(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ed6(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ed7(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ed2(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ece(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ecc(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ec9(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ec4(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ec6(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ec7(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ec5(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ec2(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ebf(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ebe(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1ebd(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1eba(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1eb7(%rip),%rdi
call   1030 <printf@plt>
mov    -0x41(%rbp),%al
lea    0x1edb(%rip),%rdi
lea    -0xc(%rbp),%rsi
call   1060 <scanf@plt>
mov    -0xc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x40(%rbp)
sub    $0x15,%eax
ja     2050 <main+0xed0>
mov    -0x40(%rbp),%rax
lea    0x1ce9(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movss  -0x38(%rbp),%xmm0
movss  0x1ca3(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1391 <main+0x211>
jp     1391 <main+0x211>
lea    0x1e5c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1e6c(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    139b <main+0x21b>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
lea    0x1e37(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1e3d(%rip),%rdi
lea    -0x2c(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
movss  -0x28(%rbp),%xmm0
addss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1e0a(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x1c0d(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1427 <main+0x2a7>
jp     1427 <main+0x2a7>
lea    0x1dc6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1dd6(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1431 <main+0x2b1>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
lea    0x1da1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1da7(%rip),%rdi
lea    -0x2c(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
movss  -0x28(%rbp),%xmm0
subss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1d74(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x1b77(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    14bd <main+0x33d>
jp     14bd <main+0x33d>
lea    0x1d30(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1d40(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    14c7 <main+0x347>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
lea    0x1d0b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1d11(%rip),%rdi
lea    -0x2c(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
movss  -0x28(%rbp),%xmm0
mulss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1cde(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x1ae1(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1553 <main+0x3d3>
jp     1553 <main+0x3d3>
lea    0x1c9a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1caa(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    155d <main+0x3dd>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
lea    0x1c75(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1c7b(%rip),%rdi
lea    -0x2c(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
movss  -0x28(%rbp),%xmm0
divss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1c48(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x1a4b(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    15e9 <main+0x469>
jp     15e9 <main+0x469>
lea    0x1c04(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1c14(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    15f3 <main+0x473>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
cvttss2si -0x28(%rbp),%edi
movss  0x1a10(%rip),%xmm0
call   1080 <pow@plt>
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1bca(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x19cd(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1667 <main+0x4e7>
jp     1667 <main+0x4e7>
lea    0x1b86(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b96(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1671 <main+0x4f1>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
cvttss2si -0x28(%rbp),%edi
movss  0x198e(%rip),%xmm0
call   1080 <pow@plt>
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1b4c(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x194f(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    16e5 <main+0x565>
jp     16e5 <main+0x565>
lea    0x1b08(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b18(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    16ef <main+0x56f>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
call   10a0 <sqrt@plt>
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1ad6(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x18d9(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    175b <main+0x5db>
jp     175b <main+0x5db>
lea    0x1a92(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1aa2(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1765 <main+0x5e5>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  0x189f(%rip),%xmm0
movss  %xmm0,-0x2c(%rbp)
cvttss2si -0x28(%rbp),%edi
movss  0x1889(%rip),%xmm0
divss  -0x2c(%rbp),%xmm0
call   1080 <pow@plt>
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1a46(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x1849(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    17eb <main+0x66b>
jp     17eb <main+0x66b>
lea    0x1a02(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a12(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    17f5 <main+0x675>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
lea    0x19de(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x19e3(%rip),%rdi
lea    -0x2c(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
cvttss2si -0x28(%rbp),%edi
movss  -0x2c(%rbp),%xmm0
call   1080 <pow@plt>
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x19ab(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x17ae(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1886 <main+0x706>
jp     1886 <main+0x706>
lea    0x1967(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1977(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1890 <main+0x710>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  0x1770(%rip),%xmm0
divss  -0x28(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1932(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x1735(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    18ff <main+0x77f>
jp     18ff <main+0x77f>
lea    0x18ee(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x18fe(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1909 <main+0x789>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  0x16f7(%rip),%xmm0
movss  %xmm0,-0x2c(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
addss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x2c(%rbp),%xmm0
mulss  -0x28(%rbp),%xmm0
cvtsi2ssl -0x20(%rbp),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x2c(%rbp)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
movss  -0x2c(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    196e <main+0x7ee>
movss  -0x2c(%rbp),%xmm0
movss  %xmm0,-0x34(%rbp)
jmp    1985 <main+0x805>
movss  -0x2c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  %xmm0,-0x34(%rbp)
jmp    198a <main+0x80a>
movss  -0x34(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x168d(%rip),%xmm1
ucomisd %xmm1,%xmm0
jae    191e <main+0x79e>
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x182f(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x1632(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1a02 <main+0x882>
jp     1a02 <main+0x882>
lea    0x17eb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x17fb(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1a0c <main+0x88c>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
mov    $0xa,%edi
call   1080 <pow@plt>
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x17b4(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x15b7(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1a7d <main+0x8fd>
jp     1a7d <main+0x8fd>
lea    0x1770(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1780(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1a87 <main+0x907>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  0x1579(%rip),%xmm0
movss  %xmm0,-0x30(%rbp)
movl   $0x1,-0x10(%rbp)
cvtsi2ssl -0x10(%rbp),%xmm1
movss  -0x28(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     1acf <main+0x94f>
movss  -0x30(%rbp),%xmm0
cvtsi2ssl -0x10(%rbp),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    1a9b <main+0x91b>
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1705(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x1508(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1b2c <main+0x9ac>
jp     1b2c <main+0x9ac>
lea    0x16c1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16d1(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1b36 <main+0x9b6>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
lea    0x169c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16a2(%rip),%rdi
lea    -0x2c(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
movss  -0x28(%rbp),%xmm0
divss  -0x2c(%rbp),%xmm0
movss  0x149c(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1663(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x1466(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1bce <main+0xa4e>
jp     1bce <main+0xa4e>
lea    0x161f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x162f(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1bd8 <main+0xa58>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
call   1090 <log10@plt>
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x15ed(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x13f0(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1c44 <main+0xac4>
jp     1c44 <main+0xac4>
lea    0x15a9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x15c5(%rip),%rdi
lea    -0x14(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1c4c <main+0xacc>
cvttss2si -0x38(%rbp),%eax
mov    %eax,-0x14(%rbp)
lea    0x1586(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1598(%rip),%rdi
lea    -0x18(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
mov    -0x14(%rbp),%eax
cltd
idivl  -0x18(%rbp)
mov    %edx,-0x1c(%rbp)
mov    -0x1c(%rbp),%esi
lea    0x1570(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cvtsi2ssl -0x1c(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x135d(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1cd7 <main+0xb57>
jp     1cd7 <main+0xb57>
lea    0x1516(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1526(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1ce1 <main+0xb61>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x132e(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x131a(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1040 <sin@plt>
cvtsi2ss %eax,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x14c0(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x12c3(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1d71 <main+0xbf1>
jp     1d71 <main+0xbf1>
lea    0x147c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x148c(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1d7b <main+0xbfb>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1294(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1280(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1070 <cos@plt>
cvtsi2ss %eax,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1426(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x1229(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1e0b <main+0xc8b>
jp     1e0b <main+0xc8b>
lea    0x13e2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13f2(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1e15 <main+0xc95>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x11fa(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x11e6(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1050 <tan@plt>
cvtsi2ss %eax,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x138c(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x118f(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1ea5 <main+0xd25>
jp     1ea5 <main+0xd25>
lea    0x1348(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1358(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1eaf <main+0xd2f>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1160(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x114c(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1040 <sin@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x1300(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x10eb(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1f49 <main+0xdc9>
jp     1f49 <main+0xdc9>
lea    0x12a4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12b4(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1f53 <main+0xdd3>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x10bc(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x10a8(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1050 <tan@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x125c(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
movss  -0x38(%rbp),%xmm0
movss  0x1047(%rip),%xmm1
ucomiss %xmm1,%xmm0
jne    1fed <main+0xe6d>
jp     1fed <main+0xe6d>
lea    0x1200(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1210(%rip),%rdi
lea    -0x28(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
jmp    1ff7 <main+0xe77>
movss  -0x38(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1018(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1004(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1070 <cos@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0x11b8(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    205e <main+0xede>
lea    0x11b3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11b6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11d3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11f3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11fe(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x115c(%rip),%rdi
lea    -0x24(%rbp),%rsi
mov    $0x0,%al
call   1060 <scanf@plt>
cmpl   $0x2,-0x24(%rbp)
jne    20c1 <main+0xf41>
movss  -0x30(%rbp),%xmm0
movss  %xmm0,-0x38(%rbp)
jmp    2113 <main+0xf93>
cmpl   $0x1,-0x24(%rbp)
jne    20dd <main+0xf5d>
movss  0xf2d(%rip),%xmm0
movss  %xmm0,-0x38(%rbp)
jmp    210e <main+0xf8e>
cmpl   $0x2,-0x24(%rbp)
je     2109 <main+0xf89>
cmpl   $0x1,-0x24(%rbp)
je     2109 <main+0xf89>
cmpl   $0x0,-0x24(%rbp)
je     2109 <main+0xf89>
lea    0x1195(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    210e <main+0xf8e>
jmp    2113 <main+0xf93>
jmp    2118 <main+0xf98>
xor    %eax,%eax
cmpl   $0x2,-0x24(%rbp)
mov    %al,-0x42(%rbp)
je     2140 <main+0xfc0>
xor    %eax,%eax
cmpl   $0x1,-0x24(%rbp)
mov    %al,-0x42(%rbp)
je     2140 <main+0xfc0>
cmpl   $0x0,-0x24(%rbp)
setne  %al
mov    %al,-0x42(%rbp)
mov    -0x42(%rbp),%al
test   $0x1,%al
jne    2088 <main+0xf08>
jmp    2150 <main+0xfd0>
cmpl   $0x0,-0x24(%rbp)
jne    11aa <main+0x2a>
xor    %eax,%eax
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
movl   $0x1,0x18(%rsp)
movss  0xe52(%rip),%xmm0
mov    $0x1,%ebx
movss  %xmm0,0xc(%rsp)
lea    0xff0(%rip),%r14
lea    0x107d(%rip),%rbp
lea    0x18(%rsp),%r15
lea    0x107b(%rip),%r12
lea    0xfc1(%rip),%r13
jmp    11e8 <main+0x58>
nopl   0x0(%rax)
test   %eax,%eax
je     1e91 <main+0xd01>
lea    0x1072(%rip),%rdi
call   1030 <puts@plt>
lea    0xead(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xeac(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xeae(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1054(%rip),%rdi
call   1030 <puts@plt>
lea    0xea7(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xea3(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xe9f(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x102a(%rip),%rdi
call   1030 <puts@plt>
lea    0xe97(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xe93(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xe90(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1003(%rip),%rdi
call   1030 <puts@plt>
lea    0xe83(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xe7f(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xe82(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xfd8(%rip),%rdi
call   1030 <puts@plt>
lea    0xe78(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xe76(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xe74(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xfae(%rip),%rdi
call   1030 <puts@plt>
lea    0xe68(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xfa1(%rip),%rdi
call   1030 <puts@plt>
lea    0xe5a(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r14,%rdi
lea    0x24(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
mov    0x24(%rsp),%eax
add    $0xffffffff,%eax
cmp    $0x15,%eax
ja     1397 <main+0x207>
lea    0xd04(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movss  0xc(%rsp),%xmm0
ucomiss 0xc9e(%rip),%xmm0
jne    1950 <main+0x7c0>
jp     1950 <main+0x7c0>
lea    0xe11(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xe21(%rip),%r13
mov    %r13,%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
jmp    195d <main+0x7cd>
lea    0xe23(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
jmp    1d49 <main+0xbb9>
movss  0xc(%rsp),%xmm0
ucomiss 0xc49(%rip),%xmm0
jne    198b <main+0x7fb>
jp     198b <main+0x7fb>
lea    0xdbc(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xdcc(%rip),%r13
mov    %r13,%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
jmp    1998 <main+0x808>
movss  0xc(%rsp),%xmm0
ucomiss 0xc07(%rip),%xmm0
jne    19c6 <main+0x836>
jp     19c6 <main+0x836>
lea    0xd7a(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xd8a(%rip),%r13
mov    %r13,%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
jmp    19d3 <main+0x843>
movss  0xc(%rsp),%xmm0
ucomiss 0xbc5(%rip),%xmm0
jne    1a01 <main+0x871>
jp     1a01 <main+0x871>
lea    0xd38(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xd48(%rip),%r13
mov    %r13,%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
jmp    1a0e <main+0x87e>
movss  0xc(%rsp),%xmm0
ucomiss 0xb83(%rip),%xmm0
jne    1a3c <main+0x8ac>
jp     1a3c <main+0x8ac>
lea    0xcf6(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xd06(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1a42 <main+0x8b2>
movss  0xc(%rsp),%xmm0
ucomiss 0xb3e(%rip),%xmm0
jne    1a58 <main+0x8c8>
jp     1a58 <main+0x8c8>
lea    0xcb1(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xcc1(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1a5e <main+0x8ce>
movss  0xc(%rsp),%xmm0
ucomiss 0xaf9(%rip),%xmm0
jne    1a74 <main+0x8e4>
jp     1a74 <main+0x8e4>
lea    0xc6c(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xc7c(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
ucomiss 0xad7(%rip),%xmm0
jb     1a87 <main+0x8f7>
sqrtss %xmm0,%xmm0
jmp    1d35 <main+0xba5>
movss  0xc(%rsp),%xmm0
ucomiss 0xaa3(%rip),%xmm0
jne    1a91 <main+0x901>
jp     1a91 <main+0x901>
lea    0xc16(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xc26(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1a97 <main+0x907>
movss  0xc(%rsp),%xmm0
ucomiss 0xa5e(%rip),%xmm0
jne    1ab5 <main+0x925>
jp     1ab5 <main+0x925>
lea    0xbd1(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xbe1(%rip),%r13
mov    %r13,%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
jmp    1ac2 <main+0x932>
movss  0xc(%rsp),%xmm0
ucomiss 0xa1c(%rip),%xmm0
jne    1af5 <main+0x965>
jp     1af5 <main+0x965>
lea    0xb8f(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xb9f(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1afb <main+0x96b>
movss  0xc(%rsp),%xmm0
ucomiss 0x9d7(%rip),%xmm0
jne    1b19 <main+0x989>
jp     1b19 <main+0x989>
lea    0xb4a(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xb5a(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1b1f <main+0x98f>
movss  0xc(%rsp),%xmm0
ucomiss 0x992(%rip),%xmm0
jne    1b95 <main+0xa05>
jp     1b95 <main+0xa05>
lea    0xb05(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xb15(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1b9b <main+0xa0b>
movss  0xc(%rsp),%xmm0
ucomiss 0x94d(%rip),%xmm0
jne    1baa <main+0xa1a>
jp     1baa <main+0xa1a>
lea    0xac0(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xad0(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1bb0 <main+0xa20>
movss  0xc(%rsp),%xmm0
ucomiss 0x908(%rip),%xmm0
jne    1bf5 <main+0xa65>
jp     1bf5 <main+0xa65>
lea    0xa7b(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xa8b(%rip),%r13
mov    %r13,%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
jmp    1c02 <main+0xa72>
movss  0xc(%rsp),%xmm0
ucomiss 0x8c6(%rip),%xmm0
jne    1c56 <main+0xac6>
jp     1c56 <main+0xac6>
lea    0xa39(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xa49(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
call   10a0 <log10@plt>
jmp    1d35 <main+0xba5>
movss  0xc(%rsp),%xmm0
ucomiss 0x87c(%rip),%xmm0
jne    1c66 <main+0xad6>
jp     1c66 <main+0xad6>
lea    0x9ef(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r14,%rdi
lea    0x1c(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
jmp    1c6e <main+0xade>
movss  0xc(%rsp),%xmm0
ucomiss 0x841(%rip),%xmm0
jne    1cc1 <main+0xb31>
jp     1cc1 <main+0xb31>
lea    0x9b4(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x9c4(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1cc7 <main+0xb37>
movss  0xc(%rsp),%xmm0
ucomiss 0x7fc(%rip),%xmm0
jne    1ce6 <main+0xb56>
jp     1ce6 <main+0xb56>
lea    0x96f(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x97f(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1cec <main+0xb5c>
movss  0xc(%rsp),%xmm0
ucomiss 0x7b7(%rip),%xmm0
jne    1d0b <main+0xb7b>
jp     1d0b <main+0xb7b>
lea    0x92a(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x93a(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1d11 <main+0xb81>
movss  0xc(%rsp),%xmm0
ucomiss 0x772(%rip),%xmm0
jne    1df9 <main+0xc69>
jp     1df9 <main+0xc69>
lea    0x8e5(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x8f5(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1dff <main+0xc6f>
movss  0xc(%rsp),%xmm0
ucomiss 0x72d(%rip),%xmm0
jne    1e1e <main+0xc8e>
jp     1e1e <main+0xc8e>
lea    0x8a0(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x8b0(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1e24 <main+0xc94>
movss  0xc(%rsp),%xmm0
ucomiss 0x6e8(%rip),%xmm0
jne    1e43 <main+0xcb3>
jp     1e43 <main+0xcb3>
lea    0x85b(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x86b(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
jmp    1e49 <main+0xcb9>
movss  %xmm0,0x8(%rsp)
lea    0x847(%rip),%r13
lea    0x82c(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r13,%rdi
lea    0x14(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
addss  0x14(%rsp),%xmm0
jmp    1c40 <main+0xab0>
movss  %xmm0,0x8(%rsp)
lea    0x80c(%rip),%r13
lea    0x7f1(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r13,%rdi
lea    0x14(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
subss  0x14(%rsp),%xmm0
jmp    1c40 <main+0xab0>
movss  %xmm0,0x8(%rsp)
lea    0x7d1(%rip),%r13
lea    0x7b6(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r13,%rdi
lea    0x14(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
mulss  0x14(%rsp),%xmm0
jmp    1c40 <main+0xab0>
movss  %xmm0,0x8(%rsp)
lea    0x796(%rip),%r13
lea    0x77b(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r13,%rdi
lea    0x14(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
divss  0x14(%rsp),%xmm0
jmp    1c40 <main+0xab0>
movss  %xmm0,0x8(%rsp)
cvttss2si %xmm0,%edi
movss  0x5c6(%rip),%xmm0
call   1090 <pow@plt>
jmp    1d35 <main+0xba5>
movss  %xmm0,0x8(%rsp)
cvttss2si %xmm0,%edi
movss  0x5a6(%rip),%xmm0
call   1090 <pow@plt>
jmp    1d35 <main+0xba5>
movss  %xmm0,0x8(%rsp)
ucomiss 0x597(%rip),%xmm0
jae    1547 <main+0x3b7>
call   10b0 <sqrt@plt>
jmp    1d35 <main+0xba5>
movss  %xmm0,0x8(%rsp)
movl   $0x40400000,0x14(%rsp)
40
cvttss2si %xmm0,%edi
movss  0x561(%rip),%xmm0
call   1090 <pow@plt>
jmp    1d35 <main+0xba5>
movss  %xmm0,0x8(%rsp)
lea    0x6e2(%rip),%r13
lea    0x6c8(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r13,%rdi
lea    0x14(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
cvttss2si 0x8(%rsp),%edi
movss  0x14(%rsp),%xmm0
call   1090 <pow@plt>
jmp    1c40 <main+0xab0>
movss  %xmm0,0x8(%rsp)
movss  0x505(%rip),%xmm1
divss  %xmm0,%xmm1
movss  %xmm1,0x10(%rsp)
xorps  %xmm0,%xmm0
cvtss2sd %xmm1,%xmm0
jmp    1d3f <main+0xbaf>
movss  %xmm0,0x8(%rsp)
movaps 0x51a(%rip),%xmm5
movsd  0x502(%rip),%xmm6
xorps  %xmm7,%xmm7
movss  0x4cf(%rip),%xmm1
nopl   0x0(%rax)
addss  %xmm1,%xmm7
xorps  %xmm2,%xmm2
cvtsi2ss %ebx,%xmm2
mulss  %xmm0,%xmm1
divss  %xmm2,%xmm1
add    $0x1,%ebx
movaps %xmm1,%xmm2
xorps  %xmm5,%xmm2
xorps  %xmm3,%xmm3
cmpltss %xmm1,%xmm3
movaps %xmm3,%xmm4
andps  %xmm1,%xmm4
andnps %xmm2,%xmm3
orps   %xmm4,%xmm3
xorps  %xmm2,%xmm2
cvtss2sd %xmm3,%xmm2
ucomisd %xmm6,%xmm2
jae    1b40 <main+0x9b0>
movss  %xmm1,0x14(%rsp)
movss  %xmm7,0x10(%rsp)
xorps  %xmm0,%xmm0
cvtss2sd %xmm7,%xmm0
jmp    1d3f <main+0xbaf>
movss  %xmm0,0x8(%rsp)
mov    $0xa,%edi
call   1090 <pow@plt>
jmp    1d35 <main+0xba5>
movss  %xmm0,0x8(%rsp)
movss  0x450(%rip),%xmm1
ucomiss %xmm1,%xmm0
movaps %xmm1,%xmm2
jb     1be3 <main+0xa53>
mov    $0x2,%eax
movss  0x43b(%rip),%xmm2
movaps %xmm2,%xmm1
mulss  %xmm1,%xmm2
xorps  %xmm1,%xmm1
cvtsi2ss %eax,%xmm1
add    $0x1,%eax
ucomiss %xmm1,%xmm0
jae    1bd0 <main+0xa40>
movss  %xmm2,0x10(%rsp)
xorps  %xmm0,%xmm0
cvtss2sd %xmm2,%xmm0
jmp    1d3f <main+0xbaf>
movss  %xmm0,0x8(%rsp)
lea    0x5a2(%rip),%r13
lea    0x587(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r13,%rdi
lea    0x14(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
movss  0x8(%rsp),%xmm0
divss  0x14(%rsp),%xmm0
mulss  0x3d1(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movss  %xmm0,0x10(%rsp)
cvtss2sd %xmm0,%xmm0
lea    0x54a(%rip),%r13
jmp    1d3f <main+0xbaf>
movss  %xmm0,0x8(%rsp)
call   10a0 <log10@plt>
jmp    1d35 <main+0xba5>
cvttss2si %xmm0,%eax
mov    %eax,0x1c(%rsp)
lea    0x51b(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r14,%rdi
lea    0x20(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
mov    0x1c(%rsp),%eax
cltd
idivl  0x20(%rsp)
mov    %edx,%r13d
lea    0x509(%rip),%rdi
mov    %edx,%esi
xor    %eax,%eax
call   1040 <printf@plt>
xorps  %xmm0,%xmm0
cvtsi2ss %r13d,%xmm0
movss  %xmm0,0x10(%rsp)
lea    0x4df(%rip),%r13
jmp    1d49 <main+0xbb9>
movss  %xmm0,0x8(%rsp)
cvtss2sd %xmm0,%xmm0
mulsd  0x34d(%rip),%xmm0
divsd  0x34d(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
call   1050 <sin@plt>
jmp    1d2e <main+0xb9e>
movss  %xmm0,0x8(%rsp)
cvtss2sd %xmm0,%xmm0
mulsd  0x328(%rip),%xmm0
divsd  0x328(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
call   1080 <cos@plt>
jmp    1d2e <main+0xb9e>
movss  %xmm0,0x8(%rsp)
cvtss2sd %xmm0,%xmm0
mulsd  0x303(%rip),%xmm0
divsd  0x303(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
call   1060 <tan@plt>
xorps  %xmm0,%xmm0
cvtsi2ss %eax,%xmm0
movss  %xmm0,0x10(%rsp)
cvtss2sd %xmm0,%xmm0
mov    %r13,%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0x482(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x49f(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x4bf(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    %rbp,%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r14,%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
mov    0x18(%rsp),%eax
test   %eax,%eax
je     1e91 <main+0xd01>
cmp    $0x1,%eax
je     1dd0 <main+0xc40>
cmp    $0x2,%eax
je     1de0 <main+0xc50>
mov    %r12,%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    0x18(%rsp),%eax
cmp    $0x2,%eax
ja     1d80 <main+0xbf0>
jmp    11e0 <main+0x50>
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x2,%eax
movss  0x223(%rip),%xmm0
jmp    1de6 <main+0xc56>
nop
movss  0x10(%rsp),%xmm0
movss  %xmm0,0xc(%rsp)
test   %eax,%eax
jne    11e8 <main+0x58>
jmp    1e91 <main+0xd01>
movss  %xmm0,0x8(%rsp)
cvtss2sd %xmm0,%xmm0
mulsd  0x215(%rip),%xmm0
divsd  0x215(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
call   1050 <sin@plt>
jmp    1e66 <main+0xcd6>
movss  %xmm0,0x8(%rsp)
cvtss2sd %xmm0,%xmm0
mulsd  0x1f0(%rip),%xmm0
divsd  0x1f0(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
call   1060 <tan@plt>
jmp    1e66 <main+0xcd6>
movss  %xmm0,0x8(%rsp)
cvtss2sd %xmm0,%xmm0
mulsd  0x1cb(%rip),%xmm0
divsd  0x1cb(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
call   1080 <cos@plt>
lea    0x1(%rax),%ecx
cmp    $0x3,%ecx
mov    $0x0,%ecx
cmovae %ecx,%eax
xorps  %xmm0,%xmm0
cvtsi2ss %eax,%xmm0
movss  %xmm0,0x10(%rsp)
cvtss2sd %xmm0,%xmm0
lea    0x327(%rip),%rdi
jmp    1d42 <main+0xbb2>
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [25 x i8] c"\0ASelect your operation:\0A\00"
@.str.1 = [13 x i8] c"1. Addition\09\00"
@.str.2 = [16 x i8] c"2. Subtraction\09\00"
@.str.3 = [19 x i8] c"3. Multiplication\09\00"
@.str.4 = [13 x i8] c"4. Division\0A\00"
@.str.5 = [10 x i8] c"5. X ^ 2\09\00"
@.str.6 = [10 x i8] c"6. X ^ 3\09\00"
@.str.7 = [18 x i8] c"7. Square root\09 \09\00"
@.str.8 = [16 x i8] c"8. X ^ (1 / 3)\0A\00"
@.str.9 = [10 x i8] c"9. X ^ Y\09\00"
@.str.10 = [11 x i8] c"10. 1 / X\09\00"
@.str.11 = [13 x i8] c"11. e ^ X\09 \09\00"
@.str.12 = [12 x i8] c"12. 10 ^ X\0A\00"
@.str.13 = [10 x i8] c"13. X!\09 \09\00"
@.str.14 = [17 x i8] c"14. Percentage \09\00"
@.str.15 = [16 x i8] c"15. log10(x)\09 \09\00"
@.str.16 = [13 x i8] c"16. Modulus\0A\00"
@.str.17 = [12 x i8] c"17. Sin(X)\09\00"
@.str.18 = [12 x i8] c"18. Cos(X)\09\00"
@.str.19 = [14 x i8] c"19. Tan(X)\09 \09\00"
@.str.20 = [14 x i8] c"20. Cosec(X)\0A\00"
@.str.21 = [12 x i8] c"21. Cot(X)\09\00"
@.str.22 = [12 x i8] c"22. Sec(X)\0A\00"
@.str.23 = [9 x i8] c"Choice: \00"
@.str.24 = [3 x i8] c"%d\00"
@.str.25 = [10 x i8] c"Enter X: \00"
@.str.26 = [3 x i8] c"%f\00"
@.str.27 = [11 x i8] c"\0AEnter Y: \00"
@.str.28 = [12 x i8] c"\0AResult: %f\00"
@.str.29 = [10 x i8] c"Enter Y: \00"
@.str.30 = [12 x i8] c"\0AResult: %d\00"
@.str.31 = [14 x i8] c"\0AResult: %.2f\00"
@.str.32 = [17 x i8] c"\0AInvalid Choice!\00"
@.str.33 = [43 x i8] c"\0ATo continue with previous result press 2.\00"
@.str.34 = [46 x i8] c"\0ATo continue without previous result press 1.\00"
@.str.35 = [25 x i8] c"\0ATo discontinue press 0.\00"
@.str.36 = [10 x i8] c" Press: \00"
@.str.37 = [19 x i8] c"Invalid, re-enter!\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i8
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca float
%11 = alloca float
%12 = alloca float
%13 = alloca float
%14 = alloca float
store i32 0, i32* %1
store i32 1, i32* %8
store i32 1, i32* %9
store float -3.276800e+04, float* %14
br label %15
15: ; preds = %491, %0
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str, i64 0, i64 0))
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0))
%18 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0))
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3, i64 0, i64 0))
%20 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.4, i64 0, i64 0))
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.5, i64 0, i64 0))
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0))
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.7, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.8, i64 0, i64 0))
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.9, i64 0, i64 0))
%26 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0))
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0))
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.13, i64 0, i64 0))
%30 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.14, i64 0, i64 0))
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.15, i64 0, i64 0))
%32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.16, i64 0, i64 0))
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.17, i64 0, i64 0))
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.18, i64 0, i64 0))
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.19, i64 0, i64 0))
%36 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.20, i64 0, i64 0))
%37 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.21, i64 0, i64 0))
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.22, i64 0, i64 0))
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.23, i64 0, i64 0))
%40 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0), i32* %3)
%41 = load i32, i32* %3
switch i32 %41, label %448 [
i32 1, label %42
i32 2, label %59
i32 3, label %76
i32 4, label %93
i32 5, label %110
i32 6, label %125
i32 7, label %140
i32 8, label %154
i32 9, label %171
i32 10, label %189
i32 11, label %203
i32 12, label %240
i32 13, label %254
i32 14, label %280
i32 15, label %298
i32 16, label %312
i32 17, label %331
i32 18, label %350
i32 19, label %369
i32 20, label %388
i32 21, label %408
i32 22, label %428
]
42: ; preds = %15
%43 = load float, float* %14
%44 = fcmp oeq float %43, -3.276800e+04
br i1 %44, label %45, label %48
45: ; preds = %42
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%47 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %50
48: ; preds = %42
%49 = load float, float* %14
store float %49, float* %10
br label %50
50: ; preds = %48, %45
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%52 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %11)
%53 = load float, float* %10
%54 = load float, float* %11
%55 = fadd float %53, %54
store float %55, float* %12
%56 = load float, float* %12
%57 = fpext float %56 to double
%58 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %57)
br label %450
59: ; preds = %15
%60 = load float, float* %14
%61 = fcmp oeq float %60, -3.276800e+04
br i1 %61, label %62, label %65
62: ; preds = %59
%63 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%64 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %67
65: ; preds = %59
%66 = load float, float* %14
store float %66, float* %10
br label %67
67: ; preds = %65, %62
%68 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%69 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %11)
%70 = load float, float* %10
%71 = load float, float* %11
%72 = fsub float %70, %71
store float %72, float* %12
%73 = load float, float* %12
%74 = fpext float %73 to double
%75 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %74)
br label %450
76: ; preds = %15
%77 = load float, float* %14
%78 = fcmp oeq float %77, -3.276800e+04
br i1 %78, label %79, label %82
79: ; preds = %76
%80 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%81 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %84
82: ; preds = %76
%83 = load float, float* %14
store float %83, float* %10
br label %84
84: ; preds = %82, %79
%85 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%86 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %11)
%87 = load float, float* %10
%88 = load float, float* %11
%89 = fmul float %87, %88
store float %89, float* %12
%90 = load float, float* %12
%91 = fpext float %90 to double
%92 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %91)
br label %450
93: ; preds = %15
%94 = load float, float* %14
%95 = fcmp oeq float %94, -3.276800e+04
br i1 %95, label %96, label %99
96: ; preds = %93
%97 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%98 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %101
99: ; preds = %93
%100 = load float, float* %14
store float %100, float* %10
br label %101
101: ; preds = %99, %96
%102 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%103 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %11)
%104 = load float, float* %10
%105 = load float, float* %11
%106 = fdiv float %104, %105
store float %106, float* %12
%107 = load float, float* %12
%108 = fpext float %107 to double
%109 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %108)
br label %450
110: ; preds = %15
%111 = load float, float* %14
%112 = fcmp oeq float %111, -3.276800e+04
br i1 %112, label %113, label %116
113: ; preds = %110
%114 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%115 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %118
116: ; preds = %110
%117 = load float, float* %14
store float %117, float* %10
br label %118
118: ; preds = %116, %113
%119 = load float, float* %10
%120 = fptosi float %119 to i32
%121 = call float @pow(i32 %120, float 2.000000e+00)
store float %121, float* %12
%122 = load float, float* %12
%123 = fpext float %122 to double
%124 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %123)
br label %450
125: ; preds = %15
%126 = load float, float* %14
%127 = fcmp oeq float %126, -3.276800e+04
br i1 %127, label %128, label %131
128: ; preds = %125
%129 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%130 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %133
131: ; preds = %125
%132 = load float, float* %14
store float %132, float* %10
br label %133
133: ; preds = %131, %128
%134 = load float, float* %10
%135 = fptosi float %134 to i32
%136 = call float @pow(i32 %135, float 3.000000e+00)
store float %136, float* %12
%137 = load float, float* %12
%138 = fpext float %137 to double
%139 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %138)
br label %450
140: ; preds = %15
%141 = load float, float* %14
%142 = fcmp oeq float %141, -3.276800e+04
br i1 %142, label %143, label %146
143: ; preds = %140
%144 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%145 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %148
146: ; preds = %140
%147 = load float, float* %14
store float %147, float* %10
br label %148
148: ; preds = %146, %143
%149 = load float, float* %10
%150 = call float @sqrt(float %149)
store float %150, float* %12
%151 = load float, float* %12
%152 = fpext float %151 to double
%153 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %152)
br label %450
154: ; preds = %15
%155 = load float, float* %14
%156 = fcmp oeq float %155, -3.276800e+04
br i1 %156, label %157, label %160
157: ; preds = %154
%158 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%159 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %162
160: ; preds = %154
%161 = load float, float* %14
store float %161, float* %10
br label %162
162: ; preds = %160, %157
store float 3.000000e+00, float* %11
%163 = load float, float* %10
%164 = fptosi float %163 to i32
%165 = load float, float* %11
%166 = fdiv float 1.000000e+00, %165
%167 = call float @pow(i32 %164, float %166)
store float %167, float* %12
%168 = load float, float* %12
%169 = fpext float %168 to double
%170 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %169)
br label %450
171: ; preds = %15
%172 = load float, float* %14
%173 = fcmp oeq float %172, -3.276800e+04
br i1 %173, label %174, label %177
174: ; preds = %171
%175 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%176 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %179
177: ; preds = %171
%178 = load float, float* %14
store float %178, float* %10
br label %179
179: ; preds = %177, %174
%180 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.29, i64 0, i64 0))
%181 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %11)
%182 = load float, float* %10
%183 = fptosi float %182 to i32
%184 = load float, float* %11
%185 = call float @pow(i32 %183, float %184)
store float %185, float* %12
%186 = load float, float* %12
%187 = fpext float %186 to double
%188 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %187)
br label %450
189: ; preds = %15
%190 = load float, float* %14
%191 = fcmp oeq float %190, -3.276800e+04
br i1 %191, label %192, label %195
192: ; preds = %189
%193 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%194 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %197
195: ; preds = %189
%196 = load float, float* %14
store float %196, float* %10
br label %197
197: ; preds = %195, %192
%198 = load float, float* %10
%199 = fdiv float 1.000000e+00, %198
store float %199, float* %12
%200 = load float, float* %12
%201 = fpext float %200 to double
%202 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %201)
br label %450
203: ; preds = %15
%204 = load float, float* %14
%205 = fcmp oeq float %204, -3.276800e+04
br i1 %205, label %206, label %209
206: ; preds = %203
%207 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%208 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %211
209: ; preds = %203
%210 = load float, float* %14
store float %210, float* %10
br label %211
211: ; preds = %209, %206
store float 1.000000e+00, float* %11
store float 0.000000e+00, float* %12
br label %212
212: ; preds = %232, %211
%213 = load float, float* %12
%214 = load float, float* %11
%215 = fadd float %213, %214
store float %215, float* %12
%216 = load float, float* %11
%217 = load float, float* %10
%218 = fmul float %216, %217
%219 = load i32, i32* %8
%220 = sitofp i32 %219 to float
%221 = fdiv float %218, %220
store float %221, float* %11
%222 = load i32, i32* %8
%223 = add nsw i32 %222, 1
store i32 %223, i32* %8
%224 = load float, float* %11
%225 = fcmp ogt float %224, 0.000000e+00
br i1 %225, label %226, label %228
226: ; preds = %212
%227 = load float, float* %11
store float %227, float* %13
br label %231
228: ; preds = %212
%229 = load float, float* %11
%230 = fneg float %229
store float %230, float* %13
br label %231
231: ; preds = %228, %226
br label %232
232: ; preds = %231
%233 = load float, float* %13
%234 = fpext float %233 to double
%235 = fcmp oge double %234, 0x3E7AD7F29ABCAF48
br i1 %235, label %212, label %236
236: ; preds = %232
%237 = load float, float* %12
%238 = fpext float %237 to double
%239 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %238)
br label %450
240: ; preds = %15
%241 = load float, float* %14
%242 = fcmp oeq float %241, -3.276800e+04
br i1 %242, label %243, label %246
243: ; preds = %240
%244 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%245 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %248
246: ; preds = %240
%247 = load float, float* %14
store float %247, float* %10
br label %248
248: ; preds = %246, %243
%249 = load float, float* %10
%250 = call float @pow(i32 10, float %249)
store float %250, float* %12
%251 = load float, float* %12
%252 = fpext float %251 to double
%253 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %252)
br label %450
254: ; preds = %15
%255 = load float, float* %14
%256 = fcmp oeq float %255, -3.276800e+04
br i1 %256, label %257, label %260
257: ; preds = %254
%258 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%259 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %262
260: ; preds = %254
%261 = load float, float* %14
store float %261, float* %10
br label %262
262: ; preds = %260, %257
store float 1.000000e+00, float* %12
store i32 1, i32* %4
br label %263
263: ; preds = %273, %262
%264 = load i32, i32* %4
%265 = sitofp i32 %264 to float
%266 = load float, float* %10
%267 = fcmp ole float %265, %266
br i1 %267, label %268, label %276
268: ; preds = %263
%269 = load float, float* %12
%270 = load i32, i32* %4
%271 = sitofp i32 %270 to float
%272 = fmul float %269, %271
store float %272, float* %12
br label %273
273: ; preds = %268
%274 = load i32, i32* %4
%275 = add nsw i32 %274, 1
store i32 %275, i32* %4
br label %263
276: ; preds = %263
%277 = load float, float* %12
%278 = fpext float %277 to double
%279 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %278)
br label %450
280: ; preds = %15
%281 = load float, float* %14
%282 = fcmp oeq float %281, -3.276800e+04
br i1 %282, label %283, label %286
283: ; preds = %280
%284 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%285 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %288
286: ; preds = %280
%287 = load float, float* %14
store float %287, float* %10
br label %288
288: ; preds = %286, %283
%289 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%290 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %11)
%291 = load float, float* %10
%292 = load float, float* %11
%293 = fdiv float %291, %292
%294 = fmul float %293, 1.000000e+02
store float %294, float* %12
%295 = load float, float* %12
%296 = fpext float %295 to double
%297 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %296)
br label %450
298: ; preds = %15
%299 = load float, float* %14
%300 = fcmp oeq float %299, -3.276800e+04
br i1 %300, label %301, label %304
301: ; preds = %298
%302 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%303 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %306
304: ; preds = %298
%305 = load float, float* %14
store float %305, float* %10
br label %306
306: ; preds = %304, %301
%307 = load float, float* %10
%308 = call float @log10(float %307)
store float %308, float* %12
%309 = load float, float* %12
%310 = fpext float %309 to double
%311 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %310)
br label %450
312: ; preds = %15
%313 = load float, float* %14
%314 = fcmp oeq float %313, -3.276800e+04
br i1 %314, label %315, label %318
315: ; preds = %312
%316 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%317 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0), i32* %5)
br label %321
318: ; preds = %312
%319 = load float, float* %14
%320 = fptosi float %319 to i32
store i32 %320, i32* %5
br label %321
321: ; preds = %318, %315
%322 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%323 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0), i32* %6)
%324 = load i32, i32* %5
%325 = load i32, i32* %6
%326 = srem i32 %324, %325
store i32 %326, i32* %7
%327 = load i32, i32* %7
%328 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.30, i64 0, i64 0), i32 %327)
%329 = load i32, i32* %7
%330 = sitofp i32 %329 to float
store float %330, float* %12
br label %450
331: ; preds = %15
%332 = load float, float* %14
%333 = fcmp oeq float %332, -3.276800e+04
br i1 %333, label %334, label %337
334: ; preds = %331
%335 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%336 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %339
337: ; preds = %331
%338 = load float, float* %14
store float %338, float* %10
br label %339
339: ; preds = %337, %334
%340 = load float, float* %10
%341 = fpext float %340 to double
%342 = fmul double %341, 3.141590e+00
%343 = fdiv double %342, 1.800000e+02
%344 = fptrunc double %343 to float
%345 = call i32 @sin(float %344)
%346 = sitofp i32 %345 to float
store float %346, float* %12
%347 = load float, float* %12
%348 = fpext float %347 to double
%349 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %348)
br label %450
350: ; preds = %15
%351 = load float, float* %14
%352 = fcmp oeq float %351, -3.276800e+04
br i1 %352, label %353, label %356
353: ; preds = %350
%354 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%355 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %358
356: ; preds = %350
%357 = load float, float* %14
store float %357, float* %10
br label %358
358: ; preds = %356, %353
%359 = load float, float* %10
%360 = fpext float %359 to double
%361 = fmul double %360, 3.141590e+00
%362 = fdiv double %361, 1.800000e+02
%363 = fptrunc double %362 to float
%364 = call i32 @cos(float %363)
%365 = sitofp i32 %364 to float
store float %365, float* %12
%366 = load float, float* %12
%367 = fpext float %366 to double
%368 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %367)
br label %450
369: ; preds = %15
%370 = load float, float* %14
%371 = fcmp oeq float %370, -3.276800e+04
br i1 %371, label %372, label %375
372: ; preds = %369
%373 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%374 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %377
375: ; preds = %369
%376 = load float, float* %14
store float %376, float* %10
br label %377
377: ; preds = %375, %372
%378 = load float, float* %10
%379 = fpext float %378 to double
%380 = fmul double %379, 3.141590e+00
%381 = fdiv double %380, 1.800000e+02
%382 = fptrunc double %381 to float
%383 = call i32 @tan(float %382)
%384 = sitofp i32 %383 to float
store float %384, float* %12
%385 = load float, float* %12
%386 = fpext float %385 to double
%387 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %386)
br label %450
388: ; preds = %15
%389 = load float, float* %14
%390 = fcmp oeq float %389, -3.276800e+04
br i1 %390, label %391, label %394
391: ; preds = %388
%392 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%393 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %396
394: ; preds = %388
%395 = load float, float* %14
store float %395, float* %10
br label %396
396: ; preds = %394, %391
%397 = load float, float* %10
%398 = fpext float %397 to double
%399 = fmul double %398, 3.141590e+00
%400 = fdiv double %399, 1.800000e+02
%401 = fptrunc double %400 to float
%402 = call i32 @sin(float %401)
%403 = sdiv i32 1, %402
%404 = sitofp i32 %403 to float
store float %404, float* %12
%405 = load float, float* %12
%406 = fpext float %405 to double
%407 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.31, i64 0, i64 0), double %406)
br label %450
408: ; preds = %15
%409 = load float, float* %14
%410 = fcmp oeq float %409, -3.276800e+04
br i1 %410, label %411, label %414
411: ; preds = %408
%412 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%413 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %416
414: ; preds = %408
%415 = load float, float* %14
store float %415, float* %10
br label %416
416: ; preds = %414, %411
%417 = load float, float* %10
%418 = fpext float %417 to double
%419 = fmul double %418, 3.141590e+00
%420 = fdiv double %419, 1.800000e+02
%421 = fptrunc double %420 to float
%422 = call i32 @tan(float %421)
%423 = sdiv i32 1, %422
%424 = sitofp i32 %423 to float
store float %424, float* %12
%425 = load float, float* %12
%426 = fpext float %425 to double
%427 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.31, i64 0, i64 0), double %426)
br label %450
428: ; preds = %15
%429 = load float, float* %14
%430 = fcmp oeq float %429, -3.276800e+04
br i1 %430, label %431, label %434
431: ; preds = %428
%432 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%433 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %10)
br label %436
434: ; preds = %428
%435 = load float, float* %14
store float %435, float* %10
br label %436
436: ; preds = %434, %431
%437 = load float, float* %10
%438 = fpext float %437 to double
%439 = fmul double %438, 3.141590e+00
%440 = fdiv double %439, 1.800000e+02
%441 = fptrunc double %440 to float
%442 = call i32 @cos(float %441)
%443 = sdiv i32 1, %442
%444 = sitofp i32 %443 to float
store float %444, float* %12
%445 = load float, float* %12
%446 = fpext float %445 to double
%447 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.31, i64 0, i64 0), double %446)
br label %450
448: ; preds = %15
%449 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.32, i64 0, i64 0))
br label %450
450: ; preds = %448, %436, %416, %396, %377, %358, %339, %321, %306, %288, %276, %248, %236, %197, %179, %162, %148, %133, %118, %101, %84, %67, %50
%451 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.33, i64 0, i64 0))
%452 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.34, i64 0, i64 0))
%453 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.35, i64 0, i64 0))
br label %454
454: ; preds = %488, %450
%455 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.36, i64 0, i64 0))
%456 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0), i32* %9)
%457 = load i32, i32* %9
%458 = icmp eq i32 %457, 2
br i1 %458, label %459, label %461
459: ; preds = %454
%460 = load float, float* %12
store float %460, float* %14
br label %478
461: ; preds = %454
%462 = load i32, i32* %9
%463 = icmp eq i32 %462, 1
br i1 %463, label %464, label %465
464: ; preds = %461
store float -3.276800e+04, float* %14
br label %477
465: ; preds = %461
%466 = load i32, i32* %9
%467 = icmp ne i32 %466, 2
br i1 %467, label %468, label %476
468: ; preds = %465
%469 = load i32, i32* %9
%470 = icmp ne i32 %469, 1
br i1 %470, label %471, label %476
471: ; preds = %468
%472 = load i32, i32* %9
%473 = icmp ne i32 %472, 0
br i1 %473, label %474, label %476
474: ; preds = %471
%475 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.37, i64 0, i64 0))
br label %476
476: ; preds = %474, %471, %468, %465
br label %477
477: ; preds = %476, %464
br label %478
478: ; preds = %477, %459
br label %479
479: ; preds = %478
%480 = load i32, i32* %9
%481 = icmp ne i32 %480, 2
br i1 %481, label %482, label %488
482: ; preds = %479
%483 = load i32, i32* %9
%484 = icmp ne i32 %483, 1
br i1 %484, label %485, label %488
485: ; preds = %482
%486 = load i32, i32* %9
%487 = icmp ne i32 %486, 0
br label %488
488: ; preds = %485, %482, %479
%489 = phi i1 [ false, %482 ], [ false, %479 ], [ %487, %485 ]
br i1 %489, label %454, label %490
490: ; preds = %488
br label %491
491: ; preds = %490
%492 = load i32, i32* %9
%493 = icmp ne i32 %492, 0
br i1 %493, label %15, label %494
494: ; preds = %491
ret i32 0
}

LLVM IR (-O2):
@.str.1 = [13 x i8] c"1. Addition\09\00"
@.str.2 = [16 x i8] c"2. Subtraction\09\00"
@.str.3 = [19 x i8] c"3. Multiplication\09\00"
@.str.5 = [10 x i8] c"5. X ^ 2\09\00"
@.str.6 = [10 x i8] c"6. X ^ 3\09\00"
@.str.7 = [18 x i8] c"7. Square root\09 \09\00"
@.str.9 = [10 x i8] c"9. X ^ Y\09\00"
@.str.10 = [11 x i8] c"10. 1 / X\09\00"
@.str.11 = [13 x i8] c"11. e ^ X\09 \09\00"
@.str.13 = [10 x i8] c"13. X!\09 \09\00"
@.str.14 = [17 x i8] c"14. Percentage \09\00"
@.str.15 = [16 x i8] c"15. log10(x)\09 \09\00"
@.str.17 = [12 x i8] c"17. Sin(X)\09\00"
@.str.18 = [12 x i8] c"18. Cos(X)\09\00"
@.str.19 = [14 x i8] c"19. Tan(X)\09 \09\00"
@.str.21 = [12 x i8] c"21. Cot(X)\09\00"
@.str.23 = [9 x i8] c"Choice: \00"
@.str.24 = [3 x i8] c"%d\00"
@.str.25 = [10 x i8] c"Enter X: \00"
@.str.26 = [3 x i8] c"%f\00"
@.str.27 = [11 x i8] c"\0AEnter Y: \00"
@.str.28 = [12 x i8] c"\0AResult: %f\00"
@.str.29 = [10 x i8] c"Enter Y: \00"
@.str.30 = [12 x i8] c"\0AResult: %d\00"
@.str.31 = [14 x i8] c"\0AResult: %.2f\00"
@.str.32 = [17 x i8] c"\0AInvalid Choice!\00"
@.str.33 = [43 x i8] c"\0ATo continue with previous result press 2.\00"
@.str.34 = [46 x i8] c"\0ATo continue without previous result press 1.\00"
@.str.35 = [25 x i8] c"\0ATo discontinue press 0.\00"
@.str.36 = [10 x i8] c" Press: \00"
@.str.37 = [19 x i8] c"Invalid, re-enter!\00"
@str = [24 x i8] c"\0ASelect your operation:\00"
@str.38 = [12 x i8] c"4. Division\00"
@str.39 = [15 x i8] c"8. X ^ (1 / 3)\00"
@str.40 = [11 x i8] c"12. 10 ^ X\00"
@str.41 = [12 x i8] c"16. Modulus\00"
@str.42 = [13 x i8] c"20. Cosec(X)\00"
@str.43 = [11 x i8] c"22. Sec(X)\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca float
%6 = alloca float
%7 = bitcast i32* %1 to i8*
%8 = bitcast i32* %2 to i8*
%9 = bitcast i32* %3 to i8*
%10 = bitcast i32* %4 to i8*
store i32 1, i32* %4
%11 = bitcast float* %5 to i8*
%12 = bitcast float* %6 to i8*
br label %13
13: ; preds = %409, %0
%14 = phi i32 [ 1, %0 ], [ %393, %409 ]
%15 = phi float [ undef, %0 ], [ %394, %409 ]
%16 = phi float [ -3.276800e+04, %0 ], [ %410, %409 ]
%17 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @str, i64 0, i64 0))
%18 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0))
%19 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0))
%20 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3, i64 0, i64 0))
%21 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.38, i64 0, i64 0))
%22 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.5, i64 0, i64 0))
%23 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.7, i64 0, i64 0))
%25 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @str.39, i64 0, i64 0))
%26 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.9, i64 0, i64 0))
%27 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0))
%28 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0))
%29 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.40, i64 0, i64 0))
%30 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.13, i64 0, i64 0))
%31 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.14, i64 0, i64 0))
%32 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.15, i64 0, i64 0))
%33 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.41, i64 0, i64 0))
%34 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.17, i64 0, i64 0))
%35 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.18, i64 0, i64 0))
%36 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.19, i64 0, i64 0))
%37 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.42, i64 0, i64 0))
%38 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.21, i64 0, i64 0))
%39 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.43, i64 0, i64 0))
%40 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.23, i64 0, i64 0))
%41 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0), i32* %1)
%42 = load i32, i32* %1
switch i32 %42, label %390 [
i32 1, label %43
i32 2, label %57
i32 3, label %71
i32 4, label %85
i32 5, label %99
i32 6, label %112
i32 7, label %125
i32 8, label %137
i32 9, label %150
i32 10, label %165
i32 11, label %177
i32 12, label %203
i32 13, label %215
i32 14, label %237
i32 15, label %252
i32 16, label %264
i32 17, label %279
i32 18, label %296
i32 19, label %313
i32 20, label %330
i32 21, label %350
i32 22, label %370
]
43: ; preds = %13
%44 = fcmp oeq float %16, -3.276800e+04
br i1 %44, label %45, label %48
45: ; preds = %43
%46 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%47 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
br label %49
48: ; preds = %43
store float %16, float* %5
br label %49
49: ; preds = %48, %45
%50 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%51 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %6)
%52 = load float, float* %5
%53 = load float, float* %6
%54 = fadd float %52, %53
%55 = fpext float %54 to double
%56 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %55)
br label %392
57: ; preds = %13
%58 = fcmp oeq float %16, -3.276800e+04
br i1 %58, label %59, label %62
59: ; preds = %57
%60 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%61 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
br label %63
62: ; preds = %57
store float %16, float* %5
br label %63
63: ; preds = %62, %59
%64 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%65 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %6)
%66 = load float, float* %5
%67 = load float, float* %6
%68 = fsub float %66, %67
%69 = fpext float %68 to double
%70 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %69)
br label %392
71: ; preds = %13
%72 = fcmp oeq float %16, -3.276800e+04
br i1 %72, label %73, label %76
73: ; preds = %71
%74 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%75 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
br label %77
76: ; preds = %71
store float %16, float* %5
br label %77
77: ; preds = %76, %73
%78 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%79 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %6)
%80 = load float, float* %5
%81 = load float, float* %6
%82 = fmul float %80, %81
%83 = fpext float %82 to double
%84 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %83)
br label %392
85: ; preds = %13
%86 = fcmp oeq float %16, -3.276800e+04
br i1 %86, label %87, label %90
87: ; preds = %85
%88 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%89 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
br label %91
90: ; preds = %85
store float %16, float* %5
br label %91
91: ; preds = %90, %87
%92 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%93 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %6)
%94 = load float, float* %5
%95 = load float, float* %6
%96 = fdiv float %94, %95
%97 = fpext float %96 to double
%98 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %97)
br label %392
99: ; preds = %13
%100 = fcmp oeq float %16, -3.276800e+04
br i1 %100, label %101, label %105
101: ; preds = %99
%102 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%103 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%104 = load float, float* %5
br label %106
105: ; preds = %99
store float %16, float* %5
br label %106
106: ; preds = %105, %101
%107 = phi float [ %16, %105 ], [ %104, %101 ]
%108 = fptosi float %107 to i32
%109 = call float @pow(i32 %108, float 2.000000e+00)
%110 = fpext float %109 to double
%111 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %110)
br label %392
112: ; preds = %13
%113 = fcmp oeq float %16, -3.276800e+04
br i1 %113, label %114, label %118
114: ; preds = %112
%115 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%116 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%117 = load float, float* %5
br label %119
118: ; preds = %112
store float %16, float* %5
br label %119
119: ; preds = %118, %114
%120 = phi float [ %16, %118 ], [ %117, %114 ]
%121 = fptosi float %120 to i32
%122 = call float @pow(i32 %121, float 3.000000e+00)
%123 = fpext float %122 to double
%124 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %123)
br label %392
125: ; preds = %13
%126 = fcmp oeq float %16, -3.276800e+04
br i1 %126, label %127, label %131
127: ; preds = %125
%128 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%129 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%130 = load float, float* %5
br label %132
131: ; preds = %125
store float %16, float* %5
br label %132
132: ; preds = %131, %127
%133 = phi float [ %16, %131 ], [ %130, %127 ]
%134 = call float @sqrt(float %133)
%135 = fpext float %134 to double
%136 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %135)
br label %392
137: ; preds = %13
%138 = fcmp oeq float %16, -3.276800e+04
br i1 %138, label %139, label %143
139: ; preds = %137
%140 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%141 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%142 = load float, float* %5
br label %144
143: ; preds = %137
store float %16, float* %5
br label %144
144: ; preds = %143, %139
%145 = phi float [ %16, %143 ], [ %142, %139 ]
store float 3.000000e+00, float* %6
%146 = fptosi float %145 to i32
%147 = call float @pow(i32 %146, float 0x3FD5555560000000)
%148 = fpext float %147 to double
%149 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %148)
br label %392
150: ; preds = %13
%151 = fcmp oeq float %16, -3.276800e+04
br i1 %151, label %152, label %155
152: ; preds = %150
%153 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%154 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
br label %156
155: ; preds = %150
store float %16, float* %5
br label %156
156: ; preds = %155, %152
%157 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.29, i64 0, i64 0))
%158 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %6)
%159 = load float, float* %5
%160 = fptosi float %159 to i32
%161 = load float, float* %6
%162 = call float @pow(i32 %160, float %161)
%163 = fpext float %162 to double
%164 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %163)
br label %392
165: ; preds = %13
%166 = fcmp oeq float %16, -3.276800e+04
br i1 %166, label %167, label %171
167: ; preds = %165
%168 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%169 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%170 = load float, float* %5
br label %172
171: ; preds = %165
store float %16, float* %5
br label %172
172: ; preds = %171, %167
%173 = phi float [ %16, %171 ], [ %170, %167 ]
%174 = fdiv float 1.000000e+00, %173
%175 = fpext float %174 to double
%176 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %175)
br label %392
177: ; preds = %13
%178 = fcmp oeq float %16, -3.276800e+04
br i1 %178, label %179, label %183
179: ; preds = %177
%180 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%181 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%182 = load float, float* %5
br label %184
183: ; preds = %177
store float %16, float* %5
br label %184
184: ; preds = %183, %179
%185 = phi float [ %16, %183 ], [ %182, %179 ]
br label %186
186: ; preds = %186, %184
%187 = phi float [ 1.000000e+00, %184 ], [ %193, %186 ]
%188 = phi i32 [ %14, %184 ], [ %194, %186 ]
%189 = phi float [ 0.000000e+00, %184 ], [ %190, %186 ]
%190 = fadd float %189, %187
%191 = fmul float %187, %185
%192 = sitofp i32 %188 to float
%193 = fdiv float %191, %192
%194 = add nsw i32 %188, 1
%195 = fcmp ogt float %193, 0.000000e+00
%196 = fneg float %193
%197 = select i1 %195, float %193, float %196
%198 = fpext float %197 to double
%199 = fcmp ult double %198, 0x3E7AD7F29ABCAF48
br i1 %199, label %200, label %186
200: ; preds = %186
store float %193, float* %6
%201 = fpext float %190 to double
%202 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %201)
br label %392
203: ; preds = %13
%204 = fcmp oeq float %16, -3.276800e+04
br i1 %204, label %205, label %209
205: ; preds = %203
%206 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%207 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%208 = load float, float* %5
br label %210
209: ; preds = %203
store float %16, float* %5
br label %210
210: ; preds = %209, %205
%211 = phi float [ %16, %209 ], [ %208, %205 ]
%212 = call float @pow(i32 10, float %211)
%213 = fpext float %212 to double
%214 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %213)
br label %392
215: ; preds = %13
%216 = fcmp oeq float %16, -3.276800e+04
br i1 %216, label %217, label %221
217: ; preds = %215
%218 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%219 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%220 = load float, float* %5
br label %222
221: ; preds = %215
store float %16, float* %5
br label %222
222: ; preds = %221, %217
%223 = phi float [ %16, %221 ], [ %220, %217 ]
%224 = fcmp ult float %223, 1.000000e+00
br i1 %224, label %233, label %225
225: ; preds = %222, %225
%226 = phi float [ %231, %225 ], [ 1.000000e+00, %222 ]
%227 = phi float [ %229, %225 ], [ 1.000000e+00, %222 ]
%228 = phi i32 [ %230, %225 ], [ 1, %222 ]
%229 = fmul float %227, %226
%230 = add nuw nsw i32 %228, 1
%231 = sitofp i32 %230 to float
%232 = fcmp ult float %223, %231
br i1 %232, label %233, label %225
233: ; preds = %225, %222
%234 = phi float [ 1.000000e+00, %222 ], [ %229, %225 ]
%235 = fpext float %234 to double
%236 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %235)
br label %392
237: ; preds = %13
%238 = fcmp oeq float %16, -3.276800e+04
br i1 %238, label %239, label %242
239: ; preds = %237
%240 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%241 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
br label %243
242: ; preds = %237
store float %16, float* %5
br label %243
243: ; preds = %242, %239
%244 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%245 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %6)
%246 = load float, float* %5
%247 = load float, float* %6
%248 = fdiv float %246, %247
%249 = fmul float %248, 1.000000e+02
%250 = fpext float %249 to double
%251 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %250)
br label %392
252: ; preds = %13
%253 = fcmp oeq float %16, -3.276800e+04
br i1 %253, label %254, label %258
254: ; preds = %252
%255 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%256 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%257 = load float, float* %5
br label %259
258: ; preds = %252
store float %16, float* %5
br label %259
259: ; preds = %258, %254
%260 = phi float [ %16, %258 ], [ %257, %254 ]
%261 = call float @log10(float %260)
%262 = fpext float %261 to double
%263 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %262)
br label %392
264: ; preds = %13
%265 = fcmp oeq float %16, -3.276800e+04
br i1 %265, label %266, label %269
266: ; preds = %264
%267 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%268 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0), i32* %2)
br label %271
269: ; preds = %264
%270 = fptosi float %16 to i32
store i32 %270, i32* %2
br label %271
271: ; preds = %269, %266
%272 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%273 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0), i32* %3)
%274 = load i32, i32* %2
%275 = load i32, i32* %3
%276 = srem i32 %274, %275
%277 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.30, i64 0, i64 0), i32 %276)
%278 = sitofp i32 %276 to float
br label %392
279: ; preds = %13
%280 = fcmp oeq float %16, -3.276800e+04
br i1 %280, label %281, label %285
281: ; preds = %279
%282 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%283 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%284 = load float, float* %5
br label %286
285: ; preds = %279
store float %16, float* %5
br label %286
286: ; preds = %285, %281
%287 = phi float [ %16, %285 ], [ %284, %281 ]
%288 = fpext float %287 to double
%289 = fmul double %288, 3.141590e+00
%290 = fdiv double %289, 1.800000e+02
%291 = fptrunc double %290 to float
%292 = call i32 @sin(float %291)
%293 = sitofp i32 %292 to float
%294 = fpext float %293 to double
%295 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %294)
br label %392
296: ; preds = %13
%297 = fcmp oeq float %16, -3.276800e+04
br i1 %297, label %298, label %302
298: ; preds = %296
%299 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%300 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%301 = load float, float* %5
br label %303
302: ; preds = %296
store float %16, float* %5
br label %303
303: ; preds = %302, %298
%304 = phi float [ %16, %302 ], [ %301, %298 ]
%305 = fpext float %304 to double
%306 = fmul double %305, 3.141590e+00
%307 = fdiv double %306, 1.800000e+02
%308 = fptrunc double %307 to float
%309 = call i32 @cos(float %308)
%310 = sitofp i32 %309 to float
%311 = fpext float %310 to double
%312 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %311)
br label %392
313: ; preds = %13
%314 = fcmp oeq float %16, -3.276800e+04
br i1 %314, label %315, label %319
315: ; preds = %313
%316 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%317 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%318 = load float, float* %5
br label %320
319: ; preds = %313
store float %16, float* %5
br label %320
320: ; preds = %319, %315
%321 = phi float [ %16, %319 ], [ %318, %315 ]
%322 = fpext float %321 to double
%323 = fmul double %322, 3.141590e+00
%324 = fdiv double %323, 1.800000e+02
%325 = fptrunc double %324 to float
%326 = call i32 @tan(float %325)
%327 = sitofp i32 %326 to float
%328 = fpext float %327 to double
%329 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), double %328)
br label %392
330: ; preds = %13
%331 = fcmp oeq float %16, -3.276800e+04
br i1 %331, label %332, label %336
332: ; preds = %330
%333 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%334 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%335 = load float, float* %5
br label %337
336: ; preds = %330
store float %16, float* %5
br label %337
337: ; preds = %336, %332
%338 = phi float [ %16, %336 ], [ %335, %332 ]
%339 = fpext float %338 to double
%340 = fmul double %339, 3.141590e+00
%341 = fdiv double %340, 1.800000e+02
%342 = fptrunc double %341 to float
%343 = call i32 @sin(float %342)
%344 = add i32 %343, 1
%345 = icmp ult i32 %344, 3
%346 = select i1 %345, i32 %343, i32 0
%347 = sitofp i32 %346 to float
%348 = fpext float %347 to double
%349 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.31, i64 0, i64 0), double %348)
br label %392
350: ; preds = %13
%351 = fcmp oeq float %16, -3.276800e+04
br i1 %351, label %352, label %356
352: ; preds = %350
%353 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%354 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%355 = load float, float* %5
br label %357
356: ; preds = %350
store float %16, float* %5
br label %357
357: ; preds = %356, %352
%358 = phi float [ %16, %356 ], [ %355, %352 ]
%359 = fpext float %358 to double
%360 = fmul double %359, 3.141590e+00
%361 = fdiv double %360, 1.800000e+02
%362 = fptrunc double %361 to float
%363 = call i32 @tan(float %362)
%364 = add i32 %363, 1
%365 = icmp ult i32 %364, 3
%366 = select i1 %365, i32 %363, i32 0
%367 = sitofp i32 %366 to float
%368 = fpext float %367 to double
%369 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.31, i64 0, i64 0), double %368)
br label %392
370: ; preds = %13
%371 = fcmp oeq float %16, -3.276800e+04
br i1 %371, label %372, label %376
372: ; preds = %370
%373 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
%374 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), float* %5)
%375 = load float, float* %5
br label %377
376: ; preds = %370
store float %16, float* %5
br label %377
377: ; preds = %376, %372
%378 = phi float [ %16, %376 ], [ %375, %372 ]
%379 = fpext float %378 to double
%380 = fmul double %379, 3.141590e+00
%381 = fdiv double %380, 1.800000e+02
%382 = fptrunc double %381 to float
%383 = call i32 @cos(float %382)
%384 = add i32 %383, 1
%385 = icmp ult i32 %384, 3
%386 = select i1 %385, i32 %383, i32 0
%387 = sitofp i32 %386 to float
%388 = fpext float %387 to double
%389 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.31, i64 0, i64 0), double %388)
br label %392
390: ; preds = %13
%391 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.32, i64 0, i64 0))
br label %392
392: ; preds = %390, %377, %357, %337, %320, %303, %286, %271, %259, %243, %233, %210, %200, %172, %156, %144, %132, %119, %106, %91, %77, %63, %49
%393 = phi i32 [ %14, %390 ], [ %14, %377 ], [ %14, %357 ], [ %14, %337 ], [ %14, %320 ], [ %14, %303 ], [ %14, %286 ], [ %14, %271 ], [ %14, %259 ], [ %14, %243 ], [ %14, %233 ], [ %14, %210 ], [ %194, %200 ], [ %14, %172 ], [ %14, %156 ], [ %14, %144 ], [ %14, %132 ], [ %14, %119 ], [ %14, %106 ], [ %14, %91 ], [ %14, %77 ], [ %14, %63 ], [ %14, %49 ]
%394 = phi float [ %15, %390 ], [ %387, %377 ], [ %367, %357 ], [ %347, %337 ], [ %327, %320 ], [ %310, %303 ], [ %293, %286 ], [ %278, %271 ], [ %261, %259 ], [ %249, %243 ], [ %234, %233 ], [ %212, %210 ], [ %190, %200 ], [ %174, %172 ], [ %162, %156 ], [ %147, %144 ], [ %134, %132 ], [ %122, %119 ], [ %109, %106 ], [ %96, %91 ], [ %82, %77 ], [ %68, %63 ], [ %54, %49 ]
%395 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.33, i64 0, i64 0))
%396 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.34, i64 0, i64 0))
%397 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.35, i64 0, i64 0))
br label %398
398: ; preds = %402, %392
%399 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.36, i64 0, i64 0))
%400 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0), i32* %4)
%401 = load i32, i32* %4
switch i32 %401, label %402 [
i32 2, label %406
i32 1, label %409
i32 0, label %413
]
402: ; preds = %398
%403 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.37, i64 0, i64 0))
%404 = load i32, i32* %4
%405 = icmp ugt i32 %404, 2
br i1 %405, label %398, label %406
406: ; preds = %402, %398
%407 = phi float [ %394, %398 ], [ %16, %402 ]
%408 = phi i32 [ %401, %398 ], [ %404, %402 ]
br label %409
409: ; preds = %398, %406
%410 = phi float [ %407, %406 ], [ -3.276800e+04, %398 ]
%411 = phi i32 [ %408, %406 ], [ 2, %398 ]
%412 = icmp eq i32 %411, 0
br i1 %412, label %413, label %13
413: ; preds = %409, %398
ret i32 0
}