int main(int argc, const char *argv[]) {
  long double x1, x2, m;
  long double c;
  long double approx1, approx2;
  long double exact1, exact2;
  long double error1, error2;
  x1 = 1.0;
  x2 = 3.0;
  m = 4.0;
  c = 2.0;
  exact1 = 1 / expl(pow(x1, 2));
  exact2 = 1 / expl(pow(x2, 2));
  approx1 = 1 / expl(m) - (4 * (x1 - c)) / expl(m) +
            (7 * pow((x1 - c), 2)) / (expl(m)) -
            (20 * pow((x1 - c), 3)) / (3 * expl(m)) +
            (19 * pow((x1 - c), 4)) / (6 * expl(m)) +
            (2 * pow((x1 - c), 5)) / (15 * expl(m)) -
            (103 * pow((x1 - c), 6)) / (90 * expl(m));
  approx2 = 1 / expl(m) - (4 * (x2 - c)) / expl(m) +
            (7 * pow((x2 - c), 2)) / (expl(m)) -
            (20 * pow((x2 - c), 3)) / (3 * expl(m)) +
            (19 * pow((x2 - c), 4)) / (6 * expl(m)) +
            (2 * pow((x2 - c), 5)) / (15 * expl(m)) -
            (103 * pow((x2 - c), 6)) / (90 * expl(m));
  error1 = fabsl(exact1 - approx1);
  error2 = fabsl(exact2 - approx2);
  printf("Values for x = 0\n");
  printf("Exact = %0.15Lf Approx. = %0.15Lf Absolute Error = %0.15Lf\n\n",
         exact1, approx1, error1);
  printf("Values for x = 1/4\n");
  printf("Exact = %0.15Lf Approx. = %0.15Lf Absolute Error = %0.15Lf", exact2,
         approx2, error2);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x370,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
fld1
fld    %st(0)
fstpt  -0x2a0(%rbp)
fstpt  -0x20(%rbp)
flds   0xea4(%rip)
fld    %st(0)
fstpt  -0x238(%rbp)
fstpt  -0x30(%rbp)
flds   0xe97(%rip)
fld    %st(0)
fstpt  -0x2ac(%rbp)
fstpt  -0x40(%rbp)
flds   0xe8a(%rip)
fstpt  -0x50(%rbp)
fldt   -0x20(%rbp)
fstpl  -0xb8(%rbp)
movsd  -0xb8(%rbp),%xmm0
ff
movsd  0xe7e(%rip),%xmm1
movsd  %xmm1,-0x288(%rbp)
ff
call   1050 <pow@plt>
movsd  %xmm0,-0xc0(%rbp)
ff
fldl   -0xc0(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
movsd  -0x288(%rbp),%xmm1
ff
fldt   -0x2a0(%rbp)
fdivp  %st,%st(1)
fstpt  -0x80(%rbp)
fldt   -0x30(%rbp)
fstpl  -0xc8(%rbp)
movsd  -0xc8(%rbp),%xmm0
ff
call   1050 <pow@plt>
movsd  %xmm0,-0xd0(%rbp)
ff
fldl   -0xd0(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x2a0(%rbp)
fdivp  %st,%st(1)
fstpt  -0x90(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x2ac(%rbp)
fldt   -0x2a0(%rbp)
fdivp  %st,%st(2)
fxch   %st(1)
fstpt  -0x330(%rbp)
fldt   -0x20(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fmulp  %st,%st(1)
fstpt  -0x33c(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x33c(%rbp)
movsd  -0x288(%rbp),%xmm1
ff
fldt   -0x330(%rbp)
fxch   %st(1)
fdivp  %st,%st(2)
fsubp  %st,%st(1)
fstpt  -0x318(%rbp)
fldt   -0x20(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fstpl  -0xd8(%rbp)
movsd  -0xd8(%rbp),%xmm0
ff
call   1050 <pow@plt>
movsd  0xd8f(%rip),%xmm1
movsd  %xmm1,-0x270(%rbp)
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
fldl   -0xe0(%rbp)
fstpt  -0x324(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x324(%rbp)
fldt   -0x318(%rbp)
fxch   %st(1)
fdivp  %st,%st(2)
faddp  %st,%st(1)
fstpt  -0x300(%rbp)
fldt   -0x20(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fstpl  -0xe8(%rbp)
movsd  -0xe8(%rbp),%xmm0
ff
movsd  0xd34(%rip),%xmm1
movsd  %xmm1,-0x258(%rbp)
ff
call   1050 <pow@plt>
movsd  0xd27(%rip),%xmm1
movsd  %xmm1,-0x240(%rbp)
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
fldl   -0xf0(%rbp)
fstpt  -0x30c(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x30c(%rbp)
fldt   -0x238(%rbp)
fldt   -0x300(%rbp)
fxch   %st(3)
fmulp  %st,%st(1)
fdivrp %st,%st(1)
fsubrp %st,%st(1)
fstpt  -0x2e8(%rbp)
fldt   -0x20(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fstpl  -0xf8(%rbp)
movsd  -0xf8(%rbp),%xmm0
ff
movsd  0xcc4(%rip),%xmm1
movsd  %xmm1,-0x220(%rbp)
ff
call   1050 <pow@plt>
movsd  0xcb7(%rip),%xmm1
movsd  %xmm1,-0x208(%rbp)
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
fldl   -0x100(%rbp)
fstpt  -0x2f4(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x2f4(%rbp)
fldt   -0x2e8(%rbp)
flds   0xc44(%rip)
fld    %st(0)
fstpt  -0x200(%rbp)
fmulp  %st,%st(3)
fxch   %st(1)
fdivp  %st,%st(2)
faddp  %st,%st(1)
fstpt  -0x2d0(%rbp)
fldt   -0x20(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fstpl  -0x108(%rbp)
movsd  -0x108(%rbp),%xmm0
ff
movsd  0xc4c(%rip),%xmm1
movsd  %xmm1,-0x1e8(%rbp)
ff
call   1050 <pow@plt>
addsd  %xmm0,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
fldl   -0x110(%rbp)
fstpt  -0x2dc(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x2dc(%rbp)
fldt   -0x2d0(%rbp)
flds   0xbd0(%rip)
fld    %st(0)
fstpt  -0x1d0(%rbp)
fmulp  %st,%st(3)
fxch   %st(1)
fdivp  %st,%st(2)
faddp  %st,%st(1)
fstpt  -0x2b8(%rbp)
fldt   -0x20(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fstpl  -0x118(%rbp)
movsd  -0x118(%rbp),%xmm0
ff
movsd  0xbdc(%rip),%xmm1
movsd  %xmm1,-0x1b8(%rbp)
ff
call   1050 <pow@plt>
movsd  0xbcf(%rip),%xmm1
movsd  %xmm1,-0x1a0(%rbp)
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
fldl   -0x120(%rbp)
fstpt  -0x2c4(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x2c4(%rbp)
fldt   -0x2b8(%rbp)
flds   0xb4c(%rip)
fld    %st(0)
fstpt  -0x194(%rbp)
fmulp  %st,%st(3)
fxch   %st(1)
fdivp  %st,%st(2)
fsubp  %st,%st(1)
fstpt  -0x60(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x2ac(%rbp)
fldt   -0x2a0(%rbp)
fdivp  %st,%st(2)
fxch   %st(1)
fstpt  -0x27c(%rbp)
fldt   -0x30(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fmulp  %st,%st(1)
fstpt  -0x294(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x294(%rbp)
movsd  -0x288(%rbp),%xmm1
ff
fldt   -0x27c(%rbp)
fxch   %st(1)
fdivp  %st,%st(2)
fsubp  %st,%st(1)
fstpt  -0x24c(%rbp)
fldt   -0x30(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fstpl  -0x128(%rbp)
movsd  -0x128(%rbp),%xmm0
ff
call   1050 <pow@plt>
movsd  -0x270(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
fldl   -0x130(%rbp)
fstpt  -0x264(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x264(%rbp)
movsd  -0x258(%rbp),%xmm1
ff
fldt   -0x24c(%rbp)
fxch   %st(1)
fdivp  %st,%st(2)
faddp  %st,%st(1)
fstpt  -0x214(%rbp)
fldt   -0x30(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fstpl  -0x138(%rbp)
movsd  -0x138(%rbp),%xmm0
ff
call   1050 <pow@plt>
movsd  -0x240(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
fldl   -0x140(%rbp)
fstpt  -0x22c(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x238(%rbp)
fldt   -0x22c(%rbp)
movsd  -0x220(%rbp),%xmm1
ff
fldt   -0x214(%rbp)
fxch   %st(3)
fmulp  %st,%st(2)
fdivp  %st,%st(1)
fsubrp %st,%st(1)
fstpt  -0x1dc(%rbp)
fldt   -0x30(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fstpl  -0x148(%rbp)
movsd  -0x148(%rbp),%xmm0
ff
call   1050 <pow@plt>
movsd  -0x208(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
fldl   -0x150(%rbp)
fstpt  -0x1f4(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x200(%rbp)
fldt   -0x1f4(%rbp)
movsd  -0x1e8(%rbp),%xmm1
ff
fldt   -0x1dc(%rbp)
fxch   %st(3)
fmulp  %st,%st(2)
fdivp  %st,%st(1)
faddp  %st,%st(1)
fstpt  -0x1ac(%rbp)
fldt   -0x30(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fstpl  -0x158(%rbp)
movsd  -0x158(%rbp),%xmm0
ff
call   1050 <pow@plt>
addsd  %xmm0,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
fldl   -0x160(%rbp)
fstpt  -0x1c4(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x1d0(%rbp)
fldt   -0x1c4(%rbp)
movsd  -0x1b8(%rbp),%xmm1
ff
fldt   -0x1ac(%rbp)
fxch   %st(3)
fmulp  %st,%st(2)
fdivp  %st,%st(1)
faddp  %st,%st(1)
fstpt  -0x17c(%rbp)
fldt   -0x30(%rbp)
fldt   -0x50(%rbp)
fsubrp %st,%st(1)
fstpl  -0x168(%rbp)
movsd  -0x168(%rbp),%xmm0
call   1050 <pow@plt>
movsd  -0x1a0(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
fldl   -0x170(%rbp)
fstpt  -0x188(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1040 <expl@plt>
fldt   -0x194(%rbp)
fldt   -0x188(%rbp)
fldt   -0x17c(%rbp)
fxch   %st(3)
fmulp  %st,%st(2)
fdivp  %st,%st(1)
fsubrp %st,%st(1)
fstpt  -0x70(%rbp)
fldt   -0x80(%rbp)
fldt   -0x60(%rbp)
fsubrp %st,%st(1)
fabs
fstpt  -0xa0(%rbp)
fldt   -0x90(%rbp)
fldt   -0x70(%rbp)
fsubrp %st,%st(1)
fabs
fstpt  -0xb0(%rbp)
lea    0x8e6(%rip),%rdi
xor    %eax,%eax
mov    %al,-0x171(%rbp)
call   1030 <printf@plt>
mov    -0x171(%rbp),%al
fldt   -0x80(%rbp)
fldt   -0x60(%rbp)
fldt   -0xa0(%rbp)
mov    %rsp,%rcx
fstpt  0x20(%rcx)
fstpt  0x10(%rcx)
fstpt  (%rcx)
lea    0x8c7(%rip),%rdi
call   1030 <printf@plt>
mov    -0x171(%rbp),%al
lea    0x8f2(%rip),%rdi
call   1030 <printf@plt>
fldt   -0x90(%rbp)
fldt   -0x70(%rbp)
fldt   -0xb0(%rbp)
mov    %rsp,%rax
fstpt  0x20(%rax)
fstpt  0x10(%rax)
fstpt  (%rax)
lea    0x8e0(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x370,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
sub    $0xd8,%rsp
fld1
fld    %st(0)
fstpt  0x30(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
fldt   0x30(%rsp)
fdivp  %st,%st(1)
fstpt  0x60(%rsp)
flds   0xea9(%rip)
fstpt  (%rsp)
call   1050 <expl@plt>
fldt   0x30(%rsp)
fdivp  %st,%st(1)
fstpt  0x6c(%rsp)
flds   0xe95(%rip)
fld    %st(0)
fstpt  0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
fldt   0x30(%rsp)
fdivp  %st,%st(1)
fstpt  0x48(%rsp)
fldt   0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
fldt   0x3c(%rsp)
fdiv   %st,%st(1)
fldt   0x48(%rsp)
faddp  %st,%st(2)
fxch   %st(1)
fstpt  0x48(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
flds   0xe55(%rip)
fld    %st(0)
fstpt  0x54(%rsp)
fdivp  %st,%st(1)
fldt   0x48(%rsp)
faddp  %st,%st(1)
fstpt  0x48(%rsp)
fldt   0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
flds   0xe35(%rip)
fld    %st(0)
fstpt  0xcc(%rsp)
fmulp  %st,%st(1)
flds   0xe28(%rip)
fld    %st(0)
fstpt  0xc0(%rsp)
fdivp  %st,%st(1)
fldt   0x48(%rsp)
faddp  %st,%st(1)
fstpt  0x48(%rsp)
fldt   0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
flds   0xe05(%rip)
fld    %st(0)
fstpt  0xb4(%rsp)
fmulp  %st,%st(1)
flds   0xdf8(%rip)
fld    %st(0)
fstpt  0xa8(%rsp)
fdivp  %st,%st(1)
fldt   0x48(%rsp)
faddp  %st,%st(1)
fstpt  0x48(%rsp)
fldt   0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
flds   0xdd5(%rip)
fld    %st(0)
fstpt  0x9c(%rsp)
fmulp  %st,%st(1)
flds   0xdc8(%rip)
fld    %st(0)
fstpt  0x90(%rsp)
fdivp  %st,%st(1)
fldt   0x48(%rsp)
fsubp  %st,%st(1)
fstpt  0x48(%rsp)
fldt   0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
flds   0xda5(%rip)
fld    %st(0)
fstpt  0x84(%rsp)
fmulp  %st,%st(1)
flds   0xd98(%rip)
fld    %st(0)
fstpt  0x78(%rsp)
fdivp  %st,%st(1)
fldt   0x48(%rsp)
fsubp  %st,%st(1)
fstpt  0x48(%rsp)
fldt   0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
fldt   0x30(%rsp)
fdivp  %st,%st(1)
fstpt  0x30(%rsp)
fldt   0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
fldt   0x3c(%rsp)
fdiv   %st,%st(1)
fldt   0x30(%rsp)
fsubp  %st,%st(2)
fxch   %st(1)
fstpt  0x30(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
fldt   0x54(%rsp)
fdivp  %st,%st(1)
fldt   0x30(%rsp)
faddp  %st,%st(1)
fstpt  0x30(%rsp)
fldt   0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
fldt   0xcc(%rsp)
fmulp  %st,%st(1)
fldt   0xc0(%rsp)
fdivp  %st,%st(1)
fldt   0x30(%rsp)
fsubp  %st,%st(1)
fstpt  0x30(%rsp)
fldt   0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
fldt   0xb4(%rsp)
fmulp  %st,%st(1)
fldt   0xa8(%rsp)
fdivp  %st,%st(1)
fldt   0x30(%rsp)
faddp  %st,%st(1)
fstpt  0x30(%rsp)
fldt   0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
fldt   0x9c(%rsp)
fmulp  %st,%st(1)
fldt   0x90(%rsp)
fdivp  %st,%st(1)
fldt   0x30(%rsp)
faddp  %st,%st(1)
fstpt  0x30(%rsp)
fldt   0x3c(%rsp)
fstpt  (%rsp)
call   1050 <expl@plt>
fldt   0x84(%rsp)
fmulp  %st,%st(1)
fldt   0x78(%rsp)
fdivp  %st,%st(1)
fldt   0x30(%rsp)
fsubp  %st,%st(1)
fld    %st(0)
fstpt  0x3c(%rsp)
fldt   0x60(%rsp)
fldt   0x48(%rsp)
fsubrp %st,%st(1)
fabs
fstpt  0x54(%rsp)
fldt   0x6c(%rsp)
fsubp  %st,%st(1)
fabs
fstpt  0x30(%rsp)
lea    0xcf4(%rip),%rdi
call   1030 <puts@plt>
fldt   0x54(%rsp)
fstpt  0x20(%rsp)
fldt   0x48(%rsp)
fstpt  0x10(%rsp)
fldt   0x60(%rsp)
fstpt  (%rsp)
lea    0xc59(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xcd4(%rip),%rdi
call   1030 <puts@plt>
fldt   0x30(%rsp)
fstpt  0x20(%rsp)
fldt   0x3c(%rsp)
fstpt  0x10(%rsp)
fldt   0x6c(%rsp)
fstpt  (%rsp)
lea    0xc65(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
xor    %eax,%eax
add    $0xd8,%rsp
ret

LLVM IR (-O0):
@.str = [18 x i8] c"Values for x = 0\0A\00"
@.str.1 = [61 x i8] c"Exact = %0.15Lf Approx. = %0.15Lf Absolute Error = %0.15Lf\0A\0A\00"
@.str.2 = [20 x i8] c"Values for x = 1/4\0A\00"
@.str.3 = [59 x i8] c"Exact = %0.15Lf Approx. = %0.15Lf Absolute Error = %0.15Lf\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca x86_fp80
%7 = alloca x86_fp80
%8 = alloca x86_fp80
%9 = alloca x86_fp80
%10 = alloca x86_fp80
%11 = alloca x86_fp80
%12 = alloca x86_fp80
%13 = alloca x86_fp80
%14 = alloca x86_fp80
%15 = alloca x86_fp80
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %6
store x86_fp80 0xK4000C000000000000000, x86_fp80* %7
store x86_fp80 0xK40018000000000000000, x86_fp80* %8
store x86_fp80 0xK40008000000000000000, x86_fp80* %9
%16 = load x86_fp80, x86_fp80* %6
%17 = fptrunc x86_fp80 %16 to double
%18 = call double @pow(double %17, double 2.000000e+00)
%19 = fpext double %18 to x86_fp80
%20 = call x86_fp80 @expl(x86_fp80 %19)
%21 = fdiv x86_fp80 0xK3FFF8000000000000000, %20
store x86_fp80 %21, x86_fp80* %12
%22 = load x86_fp80, x86_fp80* %7
%23 = fptrunc x86_fp80 %22 to double
%24 = call double @pow(double %23, double 2.000000e+00)
%25 = fpext double %24 to x86_fp80
%26 = call x86_fp80 @expl(x86_fp80 %25)
%27 = fdiv x86_fp80 0xK3FFF8000000000000000, %26
store x86_fp80 %27, x86_fp80* %13
%28 = load x86_fp80, x86_fp80* %8
%29 = call x86_fp80 @expl(x86_fp80 %28)
%30 = fdiv x86_fp80 0xK3FFF8000000000000000, %29
%31 = load x86_fp80, x86_fp80* %6
%32 = load x86_fp80, x86_fp80* %9
%33 = fsub x86_fp80 %31, %32
%34 = fmul x86_fp80 0xK40018000000000000000, %33
%35 = load x86_fp80, x86_fp80* %8
%36 = call x86_fp80 @expl(x86_fp80 %35)
%37 = fdiv x86_fp80 %34, %36
%38 = fsub x86_fp80 %30, %37
%39 = load x86_fp80, x86_fp80* %6
%40 = load x86_fp80, x86_fp80* %9
%41 = fsub x86_fp80 %39, %40
%42 = fptrunc x86_fp80 %41 to double
%43 = call double @pow(double %42, double 2.000000e+00)
%44 = fmul double 7.000000e+00, %43
%45 = fpext double %44 to x86_fp80
%46 = load x86_fp80, x86_fp80* %8
%47 = call x86_fp80 @expl(x86_fp80 %46)
%48 = fdiv x86_fp80 %45, %47
%49 = fadd x86_fp80 %38, %48
%50 = load x86_fp80, x86_fp80* %6
%51 = load x86_fp80, x86_fp80* %9
%52 = fsub x86_fp80 %50, %51
%53 = fptrunc x86_fp80 %52 to double
%54 = call double @pow(double %53, double 3.000000e+00)
%55 = fmul double 2.000000e+01, %54
%56 = fpext double %55 to x86_fp80
%57 = load x86_fp80, x86_fp80* %8
%58 = call x86_fp80 @expl(x86_fp80 %57)
%59 = fmul x86_fp80 0xK4000C000000000000000, %58
%60 = fdiv x86_fp80 %56, %59
%61 = fsub x86_fp80 %49, %60
%62 = load x86_fp80, x86_fp80* %6
%63 = load x86_fp80, x86_fp80* %9
%64 = fsub x86_fp80 %62, %63
%65 = fptrunc x86_fp80 %64 to double
%66 = call double @pow(double %65, double 4.000000e+00)
%67 = fmul double 1.900000e+01, %66
%68 = fpext double %67 to x86_fp80
%69 = load x86_fp80, x86_fp80* %8
%70 = call x86_fp80 @expl(x86_fp80 %69)
%71 = fmul x86_fp80 0xK4001C000000000000000, %70
%72 = fdiv x86_fp80 %68, %71
%73 = fadd x86_fp80 %61, %72
%74 = load x86_fp80, x86_fp80* %6
%75 = load x86_fp80, x86_fp80* %9
%76 = fsub x86_fp80 %74, %75
%77 = fptrunc x86_fp80 %76 to double
%78 = call double @pow(double %77, double 5.000000e+00)
%79 = fmul double 2.000000e+00, %78
%80 = fpext double %79 to x86_fp80
%81 = load x86_fp80, x86_fp80* %8
%82 = call x86_fp80 @expl(x86_fp80 %81)
%83 = fmul x86_fp80 0xK4002F000000000000000, %82
%84 = fdiv x86_fp80 %80, %83
%85 = fadd x86_fp80 %73, %84
%86 = load x86_fp80, x86_fp80* %6
%87 = load x86_fp80, x86_fp80* %9
%88 = fsub x86_fp80 %86, %87
%89 = fptrunc x86_fp80 %88 to double
%90 = call double @pow(double %89, double 6.000000e+00)
%91 = fmul double 1.030000e+02, %90
%92 = fpext double %91 to x86_fp80
%93 = load x86_fp80, x86_fp80* %8
%94 = call x86_fp80 @expl(x86_fp80 %93)
%95 = fmul x86_fp80 0xK4005B400000000000000, %94
%96 = fdiv x86_fp80 %92, %95
%97 = fsub x86_fp80 %85, %96
store x86_fp80 %97, x86_fp80* %10
%98 = load x86_fp80, x86_fp80* %8
%99 = call x86_fp80 @expl(x86_fp80 %98)
%100 = fdiv x86_fp80 0xK3FFF8000000000000000, %99
%101 = load x86_fp80, x86_fp80* %7
%102 = load x86_fp80, x86_fp80* %9
%103 = fsub x86_fp80 %101, %102
%104 = fmul x86_fp80 0xK40018000000000000000, %103
%105 = load x86_fp80, x86_fp80* %8
%106 = call x86_fp80 @expl(x86_fp80 %105)
%107 = fdiv x86_fp80 %104, %106
%108 = fsub x86_fp80 %100, %107
%109 = load x86_fp80, x86_fp80* %7
%110 = load x86_fp80, x86_fp80* %9
%111 = fsub x86_fp80 %109, %110
%112 = fptrunc x86_fp80 %111 to double
%113 = call double @pow(double %112, double 2.000000e+00)
%114 = fmul double 7.000000e+00, %113
%115 = fpext double %114 to x86_fp80
%116 = load x86_fp80, x86_fp80* %8
%117 = call x86_fp80 @expl(x86_fp80 %116)
%118 = fdiv x86_fp80 %115, %117
%119 = fadd x86_fp80 %108, %118
%120 = load x86_fp80, x86_fp80* %7
%121 = load x86_fp80, x86_fp80* %9
%122 = fsub x86_fp80 %120, %121
%123 = fptrunc x86_fp80 %122 to double
%124 = call double @pow(double %123, double 3.000000e+00)
%125 = fmul double 2.000000e+01, %124
%126 = fpext double %125 to x86_fp80
%127 = load x86_fp80, x86_fp80* %8
%128 = call x86_fp80 @expl(x86_fp80 %127)
%129 = fmul x86_fp80 0xK4000C000000000000000, %128
%130 = fdiv x86_fp80 %126, %129
%131 = fsub x86_fp80 %119, %130
%132 = load x86_fp80, x86_fp80* %7
%133 = load x86_fp80, x86_fp80* %9
%134 = fsub x86_fp80 %132, %133
%135 = fptrunc x86_fp80 %134 to double
%136 = call double @pow(double %135, double 4.000000e+00)
%137 = fmul double 1.900000e+01, %136
%138 = fpext double %137 to x86_fp80
%139 = load x86_fp80, x86_fp80* %8
%140 = call x86_fp80 @expl(x86_fp80 %139)
%141 = fmul x86_fp80 0xK4001C000000000000000, %140
%142 = fdiv x86_fp80 %138, %141
%143 = fadd x86_fp80 %131, %142
%144 = load x86_fp80, x86_fp80* %7
%145 = load x86_fp80, x86_fp80* %9
%146 = fsub x86_fp80 %144, %145
%147 = fptrunc x86_fp80 %146 to double
%148 = call double @pow(double %147, double 5.000000e+00)
%149 = fmul double 2.000000e+00, %148
%150 = fpext double %149 to x86_fp80
%151 = load x86_fp80, x86_fp80* %8
%152 = call x86_fp80 @expl(x86_fp80 %151)
%153 = fmul x86_fp80 0xK4002F000000000000000, %152
%154 = fdiv x86_fp80 %150, %153
%155 = fadd x86_fp80 %143, %154
%156 = load x86_fp80, x86_fp80* %7
%157 = load x86_fp80, x86_fp80* %9
%158 = fsub x86_fp80 %156, %157
%159 = fptrunc x86_fp80 %158 to double
%160 = call double @pow(double %159, double 6.000000e+00)
%161 = fmul double 1.030000e+02, %160
%162 = fpext double %161 to x86_fp80
%163 = load x86_fp80, x86_fp80* %8
%164 = call x86_fp80 @expl(x86_fp80 %163)
%165 = fmul x86_fp80 0xK4005B400000000000000, %164
%166 = fdiv x86_fp80 %162, %165
%167 = fsub x86_fp80 %155, %166
store x86_fp80 %167, x86_fp80* %11
%168 = load x86_fp80, x86_fp80* %12
%169 = load x86_fp80, x86_fp80* %10
%170 = fsub x86_fp80 %168, %169
%171 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %170)
store x86_fp80 %171, x86_fp80* %14
%172 = load x86_fp80, x86_fp80* %13
%173 = load x86_fp80, x86_fp80* %11
%174 = fsub x86_fp80 %172, %173
%175 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %174)
store x86_fp80 %175, x86_fp80* %15
%176 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str, i64 0, i64 0))
%177 = load x86_fp80, x86_fp80* %12
%178 = load x86_fp80, x86_fp80* %10
%179 = load x86_fp80, x86_fp80* %14
%180 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.1, i64 0, i64 0), x86_fp80 %177, x86_fp80 %178, x86_fp80 %179)
%181 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.2, i64 0, i64 0))
%182 = load x86_fp80, x86_fp80* %13
%183 = load x86_fp80, x86_fp80* %11
%184 = load x86_fp80, x86_fp80* %15
%185 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.3, i64 0, i64 0), x86_fp80 %182, x86_fp80 %183, x86_fp80 %184)
ret i32 0
}

LLVM IR (-O2):
@.str.1 = [61 x i8] c"Exact = %0.15Lf Approx. = %0.15Lf Absolute Error = %0.15Lf\0A\0A\00"
@.str.3 = [59 x i8] c"Exact = %0.15Lf Approx. = %0.15Lf Absolute Error = %0.15Lf\00"
@str = [17 x i8] c"Values for x = 0\00"
@str.4 = [19 x i8] c"Values for x = 1/4\00"
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = tail call x86_fp80 @expl(x86_fp80 0xK3FFF8000000000000000)
%4 = fdiv x86_fp80 0xK3FFF8000000000000000, %3
%5 = tail call x86_fp80 @expl(x86_fp80 0xK40029000000000000000)
%6 = fdiv x86_fp80 0xK3FFF8000000000000000, %5
%7 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%8 = fdiv x86_fp80 0xK3FFF8000000000000000, %7
%9 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%10 = fdiv x86_fp80 0xK40018000000000000000, %9
%11 = fadd x86_fp80 %8, %10
%12 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%13 = fdiv x86_fp80 0xK4001E000000000000000, %12
%14 = fadd x86_fp80 %11, %13
%15 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%16 = fmul x86_fp80 %15, 0xK4000C000000000000000
%17 = fdiv x86_fp80 0xK4003A000000000000000, %16
%18 = fadd x86_fp80 %14, %17
%19 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%20 = fmul x86_fp80 %19, 0xK4001C000000000000000
%21 = fdiv x86_fp80 0xK40039800000000000000, %20
%22 = fadd x86_fp80 %18, %21
%23 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%24 = fmul x86_fp80 %23, 0xK4002F000000000000000
%25 = fdiv x86_fp80 0xK40008000000000000000, %24
%26 = fsub x86_fp80 %22, %25
%27 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%28 = fmul x86_fp80 %27, 0xK4005B400000000000000
%29 = fdiv x86_fp80 0xK4005CE00000000000000, %28
%30 = fsub x86_fp80 %26, %29
%31 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%32 = fdiv x86_fp80 0xK3FFF8000000000000000, %31
%33 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%34 = fdiv x86_fp80 0xK40018000000000000000, %33
%35 = fsub x86_fp80 %32, %34
%36 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%37 = fdiv x86_fp80 0xK4001E000000000000000, %36
%38 = fadd x86_fp80 %35, %37
%39 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%40 = fmul x86_fp80 %39, 0xK4000C000000000000000
%41 = fdiv x86_fp80 0xK4003A000000000000000, %40
%42 = fsub x86_fp80 %38, %41
%43 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%44 = fmul x86_fp80 %43, 0xK4001C000000000000000
%45 = fdiv x86_fp80 0xK40039800000000000000, %44
%46 = fadd x86_fp80 %42, %45
%47 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%48 = fmul x86_fp80 %47, 0xK4002F000000000000000
%49 = fdiv x86_fp80 0xK40008000000000000000, %48
%50 = fadd x86_fp80 %46, %49
%51 = tail call x86_fp80 @expl(x86_fp80 0xK40018000000000000000)
%52 = fmul x86_fp80 %51, 0xK4005B400000000000000
%53 = fdiv x86_fp80 0xK4005CE00000000000000, %52
%54 = fsub x86_fp80 %50, %53
%55 = fsub x86_fp80 %4, %30
%56 = tail call x86_fp80 @llvm.fabs.f80(x86_fp80 %55)
%57 = fsub x86_fp80 %6, %54
%58 = tail call x86_fp80 @llvm.fabs.f80(x86_fp80 %57)
%59 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str, i64 0, i64 0))
%60 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.1, i64 0, i64 0), x86_fp80 %4, x86_fp80 %30, x86_fp80 %56)
%61 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.4, i64 0, i64 0))
%62 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @.str.3, i64 0, i64 0), x86_fp80 %6, x86_fp80 %54, x86_fp80 %58)
ret i32 0
}