#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 pow(double, double);
int /*<<< orphan*/ printf(char *, ...);
int sqrt(int);
int main(void) {
  const int MAX_SIZE = 9;
  int x = 0;
  int y = 0;
  int i = 0;
  int j = 0;
  int answer = 0;
  int table[MAX_SIZE][MAX_SIZE];
  printf("\n                             _____XTABLE_____\n\n");
  for (i = 0; i < 9; i++) {
    x += 10;
    y = 0;
    for (j = 0; j < 9; j++) {
      y += 10;
      answer =
          ((pow((double)x, (double)4)) / (pow((double)y, (double)2))) + sqrt(y);
      table[i][j] = answer;
    }
  }
  printf(
      "  Y 10      20      30      40      50      60      70      80      90");
  printf("\n X  "
         "---------------------------------------------------------------------"
         "-\n");
  y = 0;
  for (i = 0; i < 9; i++) {
    y += 10;
    printf(" %d ", y);
    for (j = 0; j < 9; j++) {
      if (0 <= table[i][j] && table[i][j] <= 9) {
        printf("%d         ", table[i][j]);
      } else if (10 <= table[i][j] && table[i][j] <= 99) {
        printf("%d      ", table[i][j]);
      } else if (100 <= table[i][j] && table[i][j] <= 999) {
        printf("%d     ", table[i][j]);
      } else if (1000 <= table[i][j] && table[i][j] <= 9999) {
        printf("%d    ", table[i][j]);
      } else if (10000 <= table[i][j] && table[i][j] <= 99999) {
        printf("%d   ", table[i][j]);
      } else if (100000 <= table[i][j] && table[i][j] <= 999999) {
        printf("%d  ", table[i][j]);
      }
    }
    printf("\n    "
           "-------------------------------------------------------------------"
           "---\n");
  }
  printf("\n Equation: x^4 / y^2 + sqrt(y)\n\n");
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x180,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x9,-0x8(%rbp)
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
movl   $0x0,-0x1c(%rbp)
mov    %rsp,%rax
mov    %rax,-0x28(%rbp)
lea    0xe96(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jge    124d <main+0x11d>
mov    -0xc(%rbp),%eax
add    $0xa,%eax
mov    %eax,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x9,-0x18(%rbp)
jge    123a <main+0x10a>
mov    -0x10(%rbp),%eax
add    $0xa,%eax
mov    %eax,-0x10(%rbp)
cvtsi2sdl -0xc(%rbp),%xmm0
movsd  0xe3f(%rip),%xmm1
call   1040 <pow@plt>
mov    %eax,-0x178(%rbp)
cvtsi2sdl -0x10(%rbp),%xmm0
movsd  0xe1f(%rip),%xmm1
call   1040 <pow@plt>
mov    %eax,%ecx
mov    -0x178(%rbp),%eax
cltd
idiv   %ecx
mov    %eax,-0x174(%rbp)
mov    -0x10(%rbp),%edi
call   1050 <sqrt@plt>
mov    %eax,%ecx
mov    -0x174(%rbp),%eax
add    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%edx
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    11a9 <main+0x79>
jmp    123f <main+0x10f>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1188 <main+0x58>
lea    0xded(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe26(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x10(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jge    15e0 <main+0x4b0>
mov    -0x10(%rbp),%eax
add    $0xa,%eax
mov    %eax,-0x10(%rbp)
mov    -0x10(%rbp),%esi
lea    0xe41(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x18(%rbp)
cmpl   $0x9,-0x18(%rbp)
jge    15c4 <main+0x494>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rax
lea    -0x170(%rbp),%rcx
shl    $0x2,%rax
add    %rax,%rcx
movslq -0x18(%rbp),%rdx
xor    %eax,%eax
cmp    (%rcx,%rdx,4),%eax
jg     1325 <main+0x1f5>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
cmpl   $0x9,(%rax,%rcx,4)
jg     1325 <main+0x1f5>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,4),%esi
lea    0xdc1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    15b1 <main+0x481>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rax
lea    -0x170(%rbp),%rcx
shl    $0x2,%rax
add    %rax,%rcx
movslq -0x18(%rbp),%rdx
mov    $0xa,%eax
cmp    (%rcx,%rdx,4),%eax
jg     13a1 <main+0x271>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
cmpl   $0x63,(%rax,%rcx,4)
jg     13a1 <main+0x271>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,4),%esi
lea    0xd51(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    15ac <main+0x47c>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rax
lea    -0x170(%rbp),%rcx
shl    $0x2,%rax
add    %rax,%rcx
movslq -0x18(%rbp),%rdx
mov    $0x64,%eax
cmp    (%rcx,%rdx,4),%eax
jg     1420 <main+0x2f0>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
cmpl   $0x3e7,(%rax,%rcx,4)
jg     1420 <main+0x2f0>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,4),%esi
lea    0xcdb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    15a7 <main+0x477>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rax
lea    -0x170(%rbp),%rcx
shl    $0x2,%rax
add    %rax,%rcx
movslq -0x18(%rbp),%rdx
mov    $0x3e8,%eax
cmp    (%rcx,%rdx,4),%eax
jg     149f <main+0x36f>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
cmpl   $0x270f,(%rax,%rcx,4)
jg     149f <main+0x36f>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,4),%esi
lea    0xc64(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    15a2 <main+0x472>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rax
lea    -0x170(%rbp),%rcx
shl    $0x2,%rax
add    %rax,%rcx
movslq -0x18(%rbp),%rdx
mov    $0x2710,%eax
cmp    (%rcx,%rdx,4),%eax
jg     151e <main+0x3ee>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
cmpl   $0x1869f,(%rax,%rcx,4)
jg     151e <main+0x3ee>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,4),%esi
lea    0xbec(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    159d <main+0x46d>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rax
lea    -0x170(%rbp),%rcx
shl    $0x2,%rax
add    %rax,%rcx
movslq -0x18(%rbp),%rdx
mov    $0x186a0,%eax
cmp    (%rcx,%rdx,4),%eax
jg     1598 <main+0x468>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
cmpl   $0xf423f,(%rax,%rcx,4)
jg     1598 <main+0x468>
movslq -0x14(%rbp),%rax
imul   $0x9,%rax,%rcx
lea    -0x170(%rbp),%rax
shl    $0x2,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,4),%esi
lea    0xb73(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    159d <main+0x46d>
jmp    15a2 <main+0x472>
jmp    15a7 <main+0x477>
jmp    15ac <main+0x47c>
jmp    15b1 <main+0x481>
jmp    15b6 <main+0x486>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    12a2 <main+0x172>
lea    0xb3e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1277 <main+0x147>
lea    0xb6f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rsp
mov    -0x4(%rbp),%eax
add    $0x180,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x158,%rsp
lea    0xf7b(%rip),%rdi
call   1030 <puts@plt>
mov    $0x20,%ebp
mov    $0xa,%r14d
nopl   0x0(%rax,%rax,1)
xorps  %xmm0,%xmm0
cvtsi2sd %r14d,%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0xe7a(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ebx
movsd  0xe73(%rip),%xmm0
movsd  0xe73(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
mov    %eax,%ebx
mov    $0xa,%edi
call   1060 <sqrt@plt>
add    %ebx,%eax
mov    %eax,-0x10(%rsp,%rbp,1)
movsd  0x8(%rsp),%xmm0
movsd  0xe37(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ebx
movsd  0xe40(%rip),%xmm0
movsd  0xe30(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
mov    %eax,%ebx
mov    $0x14,%edi
call   1060 <sqrt@plt>
add    %ebx,%eax
mov    %eax,-0xc(%rsp,%rbp,1)
movsd  0x8(%rsp),%xmm0
movsd  0xdf4(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ebx
movsd  0xe05(%rip),%xmm0
movsd  0xded(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
mov    %eax,%ebx
mov    $0x1e,%edi
call   1060 <sqrt@plt>
add    %ebx,%eax
mov    %eax,-0x8(%rsp,%rbp,1)
movsd  0x8(%rsp),%xmm0
movsd  0xdb1(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ebx
movsd  0xdca(%rip),%xmm0
movsd  0xdaa(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
mov    %eax,%ebx
mov    $0x28,%edi
call   1060 <sqrt@plt>
add    %ebx,%eax
mov    %eax,-0x4(%rsp,%rbp,1)
movsd  0x8(%rsp),%xmm0
movsd  0xd6e(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ebx
movsd  0xd8f(%rip),%xmm0
movsd  0xd67(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
mov    %eax,%ebx
mov    $0x32,%edi
call   1060 <sqrt@plt>
add    %ebx,%eax
mov    %eax,(%rsp,%rbp,1)
movsd  0x8(%rsp),%xmm0
movsd  0xd2c(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ebx
movsd  0xd55(%rip),%xmm0
movsd  0xd25(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
mov    %eax,%ebx
mov    $0x3c,%edi
call   1060 <sqrt@plt>
add    %ebx,%eax
mov    %eax,0x4(%rsp,%rbp,1)
movsd  0x8(%rsp),%xmm0
movsd  0xce9(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ebx
movsd  0xd1a(%rip),%xmm0
movsd  0xce2(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
mov    %eax,%ebx
mov    $0x46,%edi
call   1060 <sqrt@plt>
add    %ebx,%eax
mov    %eax,0x8(%rsp,%rbp,1)
movsd  0x8(%rsp),%xmm0
movsd  0xca6(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ebx
movsd  0xcdf(%rip),%xmm0
movsd  0xc9f(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
mov    %eax,%ebx
mov    $0x50,%edi
call   1060 <sqrt@plt>
add    %ebx,%eax
mov    %eax,0xc(%rsp,%rbp,1)
movsd  0x8(%rsp),%xmm0
movsd  0xc63(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ebx
movsd  0xca4(%rip),%xmm0
movsd  0xc5c(%rip),%xmm1
call   1050 <pow@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
mov    %eax,%ebx
mov    $0x5a,%edi
call   1060 <sqrt@plt>
add    %ebx,%eax
mov    %eax,0x10(%rsp,%rbp,1)
add    $0x24,%rbp
add    $0xa,%r14d
cmp    $0x164,%rbp
jne    1170 <main+0x30>
lea    0xc6a(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xd07(%rip),%rdi
call   1030 <puts@plt>
lea    0x10(%rsp),%rbx
lea    0xc97(%rip),%rbp
lea    0xc9c(%rip),%r13
lea    0xc9e(%rip),%r14
xor    %r15d,%r15d
xor    %esi,%esi
add    $0xa,%esi
lea    0xc75(%rip),%rdi
mov    %esi,0x8(%rsp)
xor    %eax,%eax
call   1040 <printf@plt>
xor    %r12d,%r12d
nopl   0x0(%rax,%rax,1)
mov    (%rbx,%r12,4),%esi
mov    %rbp,%rdi
cmp    $0xa,%esi
jb     14a0 <main+0x360>
lea    -0xa(%rsi),%eax
mov    %r13,%rdi
cmp    $0x5a,%eax
jb     14a0 <main+0x360>
lea    -0x64(%rsi),%eax
mov    %r14,%rdi
cmp    $0x384,%eax
jb     14a0 <main+0x360>
lea    -0x3e8(%rsi),%eax
lea    0xc50(%rip),%rdi
cmp    $0x2328,%eax
jb     14a0 <main+0x360>
lea    -0x2710(%rsi),%eax
lea    0xc43(%rip),%rdi
cmp    $0x15f90,%eax
jb     14a0 <main+0x360>
lea    -0x186a0(%rsi),%eax
lea    0xc35(%rip),%rdi
cmp    $0xdbb9f,%eax
ja     14a7 <main+0x367>
xor    %eax,%eax
call   1040 <printf@plt>
add    $0x1,%r12
cmp    $0x9,%r12
jne    1440 <main+0x300>
lea    0xcb8(%rip),%rdi
call   1030 <puts@plt>
add    $0x1,%r15
add    $0x24,%rbx
cmp    $0x9,%r15
mov    0x8(%rsp),%esi
jne    1420 <main+0x2e0>
lea    0xc75(%rip),%rdi
call   1030 <puts@plt>
xor    %eax,%eax
add    $0x158,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [49 x i8] c"\0A _____XTABLE_____\0A\0A\00"
@.str.1 = [71 x i8] c" Y 10 20 30 40 50 60 70 80 90\00"
@.str.2 = [77 x i8] c"\0A X ----------------------------------------------------------------------\0A\00"
@.str.3 = [5 x i8] c" %d \00"
@.str.4 = [12 x i8] c"%d \00"
@.str.5 = [9 x i8] c"%d \00"
@.str.6 = [8 x i8] c"%d \00"
@.str.7 = [7 x i8] c"%d \00"
@.str.8 = [6 x i8] c"%d \00"
@.str.9 = [5 x i8] c"%d \00"
@.str.10 = [77 x i8] c"\0A ----------------------------------------------------------------------\0A\00"
@.str.11 = [34 x i8] c"\0A Equation: x^4 / y^2 + sqrt(y)\0A\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i8*
store i32 0, i32* %1
store i32 9, i32* %2
store i32 0, i32* %3
store i32 0, i32* %4
store i32 0, i32* %5
store i32 0, i32* %6
store i32 0, i32* %7
%9 = call i8* @llvm.stacksave()
store i8* %9, i8** %8
%10 = alloca i32, i64 81
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str, i64 0, i64 0))
store i32 0, i32* %5
br label %12
12: ; preds = %46, %0
%13 = load i32, i32* %5
%14 = icmp slt i32 %13, 9
br i1 %14, label %15, label %49
15: ; preds = %12
%16 = load i32, i32* %3
%17 = add nsw i32 %16, 10
store i32 %17, i32* %3
store i32 0, i32* %4
store i32 0, i32* %6
br label %18
18: ; preds = %42, %15
%19 = load i32, i32* %6
%20 = icmp slt i32 %19, 9
br i1 %20, label %21, label %45
21: ; preds = %18
%22 = load i32, i32* %4
%23 = add nsw i32 %22, 10
store i32 %23, i32* %4
%24 = load i32, i32* %3
%25 = sitofp i32 %24 to double
%26 = call i32 @pow(double %25, double 4.000000e+00)
%27 = load i32, i32* %4
%28 = sitofp i32 %27 to double
%29 = call i32 @pow(double %28, double 2.000000e+00)
%30 = sdiv i32 %26, %29
%31 = load i32, i32* %4
%32 = call i32 @sqrt(i32 %31)
%33 = add nsw i32 %30, %32
store i32 %33, i32* %7
%34 = load i32, i32* %7
%35 = load i32, i32* %5
%36 = sext i32 %35 to i64
%37 = mul nsw i64 %36, 9
%38 = getelementptr inbounds i32, i32* %10, i64 %37
%39 = load i32, i32* %6
%40 = sext i32 %39 to i64
%41 = getelementptr inbounds i32, i32* %38, i64 %40
store i32 %34, i32* %41
br label %42
42: ; preds = %21
%43 = load i32, i32* %6
%44 = add nsw i32 %43, 1
store i32 %44, i32* %6
br label %18
45: ; preds = %18
br label %46
46: ; preds = %45
%47 = load i32, i32* %5
%48 = add nsw i32 %47, 1
store i32 %48, i32* %5
br label %12
49: ; preds = %12
%50 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.1, i64 0, i64 0))
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.2, i64 0, i64 0))
store i32 0, i32* %4
store i32 0, i32* %5
br label %52
52: ; preds = %254, %49
%53 = load i32, i32* %5
%54 = icmp slt i32 %53, 9
br i1 %54, label %55, label %257
55: ; preds = %52
%56 = load i32, i32* %4
%57 = add nsw i32 %56, 10
store i32 %57, i32* %4
%58 = load i32, i32* %4
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0), i32 %58)
store i32 0, i32* %6
br label %60
60: ; preds = %249, %55
%61 = load i32, i32* %6
%62 = icmp slt i32 %61, 9
br i1 %62, label %63, label %252
63: ; preds = %60
%64 = load i32, i32* %5
%65 = sext i32 %64 to i64
%66 = mul nsw i64 %65, 9
%67 = getelementptr inbounds i32, i32* %10, i64 %66
%68 = load i32, i32* %6
%69 = sext i32 %68 to i64
%70 = getelementptr inbounds i32, i32* %67, i64 %69
%71 = load i32, i32* %70
%72 = icmp sle i32 0, %71
br i1 %72, label %73, label %93
73: ; preds = %63
%74 = load i32, i32* %5
%75 = sext i32 %74 to i64
%76 = mul nsw i64 %75, 9
%77 = getelementptr inbounds i32, i32* %10, i64 %76
%78 = load i32, i32* %6
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds i32, i32* %77, i64 %79
%81 = load i32, i32* %80
%82 = icmp sle i32 %81, 9
br i1 %82, label %83, label %93
83: ; preds = %73
%84 = load i32, i32* %5
%85 = sext i32 %84 to i64
%86 = mul nsw i64 %85, 9
%87 = getelementptr inbounds i32, i32* %10, i64 %86
%88 = load i32, i32* %6
%89 = sext i32 %88 to i64
%90 = getelementptr inbounds i32, i32* %87, i64 %89
%91 = load i32, i32* %90
%92 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.4, i64 0, i64 0), i32 %91)
br label %248
93: ; preds = %73, %63
%94 = load i32, i32* %5
%95 = sext i32 %94 to i64
%96 = mul nsw i64 %95, 9
%97 = getelementptr inbounds i32, i32* %10, i64 %96
%98 = load i32, i32* %6
%99 = sext i32 %98 to i64
%100 = getelementptr inbounds i32, i32* %97, i64 %99
%101 = load i32, i32* %100
%102 = icmp sle i32 10, %101
br i1 %102, label %103, label %123
103: ; preds = %93
%104 = load i32, i32* %5
%105 = sext i32 %104 to i64
%106 = mul nsw i64 %105, 9
%107 = getelementptr inbounds i32, i32* %10, i64 %106
%108 = load i32, i32* %6
%109 = sext i32 %108 to i64
%110 = getelementptr inbounds i32, i32* %107, i64 %109
%111 = load i32, i32* %110
%112 = icmp sle i32 %111, 99
br i1 %112, label %113, label %123
113: ; preds = %103
%114 = load i32, i32* %5
%115 = sext i32 %114 to i64
%116 = mul nsw i64 %115, 9
%117 = getelementptr inbounds i32, i32* %10, i64 %116
%118 = load i32, i32* %6
%119 = sext i32 %118 to i64
%120 = getelementptr inbounds i32, i32* %117, i64 %119
%121 = load i32, i32* %120
%122 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0), i32 %121)
br label %247
123: ; preds = %103, %93
%124 = load i32, i32* %5
%125 = sext i32 %124 to i64
%126 = mul nsw i64 %125, 9
%127 = getelementptr inbounds i32, i32* %10, i64 %126
%128 = load i32, i32* %6
%129 = sext i32 %128 to i64
%130 = getelementptr inbounds i32, i32* %127, i64 %129
%131 = load i32, i32* %130
%132 = icmp sle i32 100, %131
br i1 %132, label %133, label %153
133: ; preds = %123
%134 = load i32, i32* %5
%135 = sext i32 %134 to i64
%136 = mul nsw i64 %135, 9
%137 = getelementptr inbounds i32, i32* %10, i64 %136
%138 = load i32, i32* %6
%139 = sext i32 %138 to i64
%140 = getelementptr inbounds i32, i32* %137, i64 %139
%141 = load i32, i32* %140
%142 = icmp sle i32 %141, 999
br i1 %142, label %143, label %153
143: ; preds = %133
%144 = load i32, i32* %5
%145 = sext i32 %144 to i64
%146 = mul nsw i64 %145, 9
%147 = getelementptr inbounds i32, i32* %10, i64 %146
%148 = load i32, i32* %6
%149 = sext i32 %148 to i64
%150 = getelementptr inbounds i32, i32* %147, i64 %149
%151 = load i32, i32* %150
%152 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.6, i64 0, i64 0), i32 %151)
br label %246
153: ; preds = %133, %123
%154 = load i32, i32* %5
%155 = sext i32 %154 to i64
%156 = mul nsw i64 %155, 9
%157 = getelementptr inbounds i32, i32* %10, i64 %156
%158 = load i32, i32* %6
%159 = sext i32 %158 to i64
%160 = getelementptr inbounds i32, i32* %157, i64 %159
%161 = load i32, i32* %160
%162 = icmp sle i32 1000, %161
br i1 %162, label %163, label %183
163: ; preds = %153
%164 = load i32, i32* %5
%165 = sext i32 %164 to i64
%166 = mul nsw i64 %165, 9
%167 = getelementptr inbounds i32, i32* %10, i64 %166
%168 = load i32, i32* %6
%169 = sext i32 %168 to i64
%170 = getelementptr inbounds i32, i32* %167, i64 %169
%171 = load i32, i32* %170
%172 = icmp sle i32 %171, 9999
br i1 %172, label %173, label %183
173: ; preds = %163
%174 = load i32, i32* %5
%175 = sext i32 %174 to i64
%176 = mul nsw i64 %175, 9
%177 = getelementptr inbounds i32, i32* %10, i64 %176
%178 = load i32, i32* %6
%179 = sext i32 %178 to i64
%180 = getelementptr inbounds i32, i32* %177, i64 %179
%181 = load i32, i32* %180
%182 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0), i32 %181)
br label %245
183: ; preds = %163, %153
%184 = load i32, i32* %5
%185 = sext i32 %184 to i64
%186 = mul nsw i64 %185, 9
%187 = getelementptr inbounds i32, i32* %10, i64 %186
%188 = load i32, i32* %6
%189 = sext i32 %188 to i64
%190 = getelementptr inbounds i32, i32* %187, i64 %189
%191 = load i32, i32* %190
%192 = icmp sle i32 10000, %191
br i1 %192, label %193, label %213
193: ; preds = %183
%194 = load i32, i32* %5
%195 = sext i32 %194 to i64
%196 = mul nsw i64 %195, 9
%197 = getelementptr inbounds i32, i32* %10, i64 %196
%198 = load i32, i32* %6
%199 = sext i32 %198 to i64
%200 = getelementptr inbounds i32, i32* %197, i64 %199
%201 = load i32, i32* %200
%202 = icmp sle i32 %201, 99999
br i1 %202, label %203, label %213
203: ; preds = %193
%204 = load i32, i32* %5
%205 = sext i32 %204 to i64
%206 = mul nsw i64 %205, 9
%207 = getelementptr inbounds i32, i32* %10, i64 %206
%208 = load i32, i32* %6
%209 = sext i32 %208 to i64
%210 = getelementptr inbounds i32, i32* %207, i64 %209
%211 = load i32, i32* %210
%212 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.8, i64 0, i64 0), i32 %211)
br label %244
213: ; preds = %193, %183
%214 = load i32, i32* %5
%215 = sext i32 %214 to i64
%216 = mul nsw i64 %215, 9
%217 = getelementptr inbounds i32, i32* %10, i64 %216
%218 = load i32, i32* %6
%219 = sext i32 %218 to i64
%220 = getelementptr inbounds i32, i32* %217, i64 %219
%221 = load i32, i32* %220
%222 = icmp sle i32 100000, %221
br i1 %222, label %223, label %243
223: ; preds = %213
%224 = load i32, i32* %5
%225 = sext i32 %224 to i64
%226 = mul nsw i64 %225, 9
%227 = getelementptr inbounds i32, i32* %10, i64 %226
%228 = load i32, i32* %6
%229 = sext i32 %228 to i64
%230 = getelementptr inbounds i32, i32* %227, i64 %229
%231 = load i32, i32* %230
%232 = icmp sle i32 %231, 999999
br i1 %232, label %233, label %243
233: ; preds = %223
%234 = load i32, i32* %5
%235 = sext i32 %234 to i64
%236 = mul nsw i64 %235, 9
%237 = getelementptr inbounds i32, i32* %10, i64 %236
%238 = load i32, i32* %6
%239 = sext i32 %238 to i64
%240 = getelementptr inbounds i32, i32* %237, i64 %239
%241 = load i32, i32* %240
%242 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i32 %241)
br label %243
243: ; preds = %233, %223, %213
br label %244
244: ; preds = %243, %203
br label %245
245: ; preds = %244, %173
br label %246
246: ; preds = %245, %143
br label %247
247: ; preds = %246, %113
br label %248
248: ; preds = %247, %83
br label %249
249: ; preds = %248
%250 = load i32, i32* %6
%251 = add nsw i32 %250, 1
store i32 %251, i32* %6
br label %60
252: ; preds = %60
%253 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.10, i64 0, i64 0))
br label %254
254: ; preds = %252
%255 = load i32, i32* %5
%256 = add nsw i32 %255, 1
store i32 %256, i32* %5
br label %52
257: ; preds = %52
%258 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.11, i64 0, i64 0))
store i32 0, i32* %1
%259 = load i8*, i8** %8
%260 = load i32, i32* %1
ret i32 %260
}

LLVM IR (-O2):
@.str.1 = [71 x i8] c" Y 10 20 30 40 50 60 70 80 90\00"
@.str.3 = [5 x i8] c" %d \00"
@.str.4 = [12 x i8] c"%d \00"
@.str.5 = [9 x i8] c"%d \00"
@.str.6 = [8 x i8] c"%d \00"
@.str.7 = [7 x i8] c"%d \00"
@.str.8 = [6 x i8] c"%d \00"
@.str.9 = [5 x i8] c"%d \00"
@str = [48 x i8] c"\0A _____XTABLE_____\0A\00"
@str.12 = [76 x i8] c"\0A X ----------------------------------------------------------------------\00"
@str.13 = [33 x i8] c"\0A Equation: x^4 / y^2 + sqrt(y)\0A\00"
@str.14 = [76 x i8] c"\0A ----------------------------------------------------------------------\00"
define i32 @main() {
%1 = alloca [81 x i32]
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @str, i64 0, i64 0))
br label %3
3: ; preds = %0, %3
%4 = phi i64 [ 0, %0 ], [ %63, %3 ]
%5 = phi i32 [ 0, %0 ], [ %6, %3 ]
%6 = add nuw nsw i32 %5, 10
%7 = sitofp i32 %6 to double
%8 = mul nuw nsw i64 %4, 9
%9 = getelementptr inbounds [81 x i32], [81 x i32]* %1, i64 0, i64 %8
%10 = tail call i32 @pow(double %7, double 4.000000e+00)
%11 = tail call i32 @pow(double 1.000000e+01, double 2.000000e+00)
%12 = sdiv i32 %10, %11
%13 = tail call i32 @sqrt(i32 10)
%14 = add nsw i32 %13, %12
store i32 %14, i32* %9
%15 = tail call i32 @pow(double %7, double 4.000000e+00)
%16 = tail call i32 @pow(double 2.000000e+01, double 2.000000e+00)
%17 = sdiv i32 %15, %16
%18 = tail call i32 @sqrt(i32 20)
%19 = add nsw i32 %18, %17
%20 = getelementptr inbounds i32, i32* %9, i64 1
store i32 %19, i32* %20
%21 = tail call i32 @pow(double %7, double 4.000000e+00)
%22 = tail call i32 @pow(double 3.000000e+01, double 2.000000e+00)
%23 = sdiv i32 %21, %22
%24 = tail call i32 @sqrt(i32 30)
%25 = add nsw i32 %24, %23
%26 = getelementptr inbounds i32, i32* %9, i64 2
store i32 %25, i32* %26
%27 = tail call i32 @pow(double %7, double 4.000000e+00)
%28 = tail call i32 @pow(double 4.000000e+01, double 2.000000e+00)
%29 = sdiv i32 %27, %28
%30 = tail call i32 @sqrt(i32 40)
%31 = add nsw i32 %30, %29
%32 = getelementptr inbounds i32, i32* %9, i64 3
store i32 %31, i32* %32
%33 = tail call i32 @pow(double %7, double 4.000000e+00)
%34 = tail call i32 @pow(double 5.000000e+01, double 2.000000e+00)
%35 = sdiv i32 %33, %34
%36 = tail call i32 @sqrt(i32 50)
%37 = add nsw i32 %36, %35
%38 = getelementptr inbounds i32, i32* %9, i64 4
store i32 %37, i32* %38
%39 = tail call i32 @pow(double %7, double 4.000000e+00)
%40 = tail call i32 @pow(double 6.000000e+01, double 2.000000e+00)
%41 = sdiv i32 %39, %40
%42 = tail call i32 @sqrt(i32 60)
%43 = add nsw i32 %42, %41
%44 = getelementptr inbounds i32, i32* %9, i64 5
store i32 %43, i32* %44
%45 = tail call i32 @pow(double %7, double 4.000000e+00)
%46 = tail call i32 @pow(double 7.000000e+01, double 2.000000e+00)
%47 = sdiv i32 %45, %46
%48 = tail call i32 @sqrt(i32 70)
%49 = add nsw i32 %48, %47
%50 = getelementptr inbounds i32, i32* %9, i64 6
store i32 %49, i32* %50
%51 = tail call i32 @pow(double %7, double 4.000000e+00)
%52 = tail call i32 @pow(double 8.000000e+01, double 2.000000e+00)
%53 = sdiv i32 %51, %52
%54 = tail call i32 @sqrt(i32 80)
%55 = add nsw i32 %54, %53
%56 = getelementptr inbounds i32, i32* %9, i64 7
store i32 %55, i32* %56
%57 = tail call i32 @pow(double %7, double 4.000000e+00)
%58 = tail call i32 @pow(double 9.000000e+01, double 2.000000e+00)
%59 = sdiv i32 %57, %58
%60 = tail call i32 @sqrt(i32 90)
%61 = add nsw i32 %60, %59
%62 = getelementptr inbounds i32, i32* %9, i64 8
store i32 %61, i32* %62
%63 = add nuw nsw i64 %4, 1
%64 = icmp eq i64 %63, 9
br i1 %64, label %65, label %3
65: ; preds = %3
%66 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @.str.1, i64 0, i64 0))
%67 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.12, i64 0, i64 0))
br label %68
68: ; preds = %65, %101
%69 = phi i64 [ 0, %65 ], [ %103, %101 ]
%70 = phi i32 [ 0, %65 ], [ %71, %101 ]
%71 = add nuw nsw i32 %70, 10
%72 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0), i32 %71)
%73 = mul nuw nsw i64 %69, 9
%74 = getelementptr inbounds [81 x i32], [81 x i32]* %1, i64 0, i64 %73
br label %75
75: ; preds = %68, %98
%76 = phi i64 [ 0, %68 ], [ %99, %98 ]
%77 = getelementptr inbounds i32, i32* %74, i64 %76
%78 = load i32, i32* %77
%79 = icmp ult i32 %78, 10
br i1 %79, label %95, label %80
80: ; preds = %75
%81 = add i32 %78, -10
%82 = icmp ult i32 %81, 90
br i1 %82, label %95, label %83
83: ; preds = %80
%84 = add i32 %78, -100
%85 = icmp ult i32 %84, 900
br i1 %85, label %95, label %86
86: ; preds = %83
%87 = add i32 %78, -1000
%88 = icmp ult i32 %87, 9000
br i1 %88, label %95, label %89
89: ; preds = %86
%90 = add i32 %78, -10000
%91 = icmp ult i32 %90, 90000
br i1 %91, label %95, label %92
92: ; preds = %89
%93 = add i32 %78, -100000
%94 = icmp ult i32 %93, 900000
br i1 %94, label %95, label %98
95: ; preds = %92, %89, %86, %83, %80, %75
%96 = phi i8* [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.4, i64 0, i64 0), %75 ], [ getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0), %80 ], [ getelementptr inbounds ([8 x i8], [8 x i8]* @.str.6, i64 0, i64 0), %83 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0), %86 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.8, i64 0, i64 0), %89 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), %92 ]
%97 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) %96, i32 %78)
br label %98
98: ; preds = %95, %92
%99 = add nuw nsw i64 %76, 1
%100 = icmp eq i64 %99, 9
br i1 %100, label %101, label %75
101: ; preds = %98
%102 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.14, i64 0, i64 0))
%103 = add nuw nsw i64 %69, 1
%104 = icmp eq i64 %103, 9
br i1 %104, label %105, label %68
105: ; preds = %101
%106 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @str.13, i64 0, i64 0))
ret i32 0
}