#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 */
double abs(double);
int /*<<< orphan*/ printf(char *, double);
int truncf(double);
int main() {
  double x = (double)5 / 7;
  double y = (double)1 / 3;
  double u = 0.714251;
  double v = 98765.9;
  double w = 0.111111 * (10 ^ (-4));
  double xf = (truncf(x * 1e5)) * 1e-5;
  double yf = (truncf(y * 1e5)) * 1e-5;
  double uf = (truncf(u * 1e5)) * 1e-5;
  double vf = (truncf(v * 1e5)) * 1e-5;
  double wf = (truncf(w * 1e5)) * 1e-5;
  double sum = (double)(x + y);
  double rest = (double)(x - y);
  double mult = (double)(x * y);
  double divi = (double)(x / y);
  double rest2 = (double)(x - u);
  double divi2 = (double)((x - u) / w);
  double mult2 = (double)((x - u) * v);
  double sum2 = (double)(u + v);
  double sum_5 = (truncf((xf + yf) * 1e5)) * 1e-5;
  double rest_5 = (truncf((xf - yf) * 1e5)) * 1e-5;
  double mult_5 = (truncf((xf * yf) * 1e5)) * 1e-5;
  double divi_5 = (truncf((xf / yf) * 1e5)) * 1e-5;
  double rest2_5 = (truncf((xf - uf) * 1e5)) * 1e-5;
  double divi2_5 = (truncf(((xf - uf) / wf) * 1e5)) * 1e-5;
  double mult2_5 = (truncf(((xf - uf) * vf) * 1e5)) * 1e-5;
  double sum2_5 = (truncf((uf * vf) * 1e5)) * 1e-5;
  double err_abs1 = abs(sum - sum_5);
  double err_abs2 = abs(rest - rest2);
  double err_abs3 = abs(mult - mult_5);
  double err_abs4 = abs(divi - divi_5);
  double err_abs5 = abs(rest2 - rest2_5);
  double err_abs6 = abs(divi2 - divi2_5);
  double err_abs7 = abs(mult2 - mult2_5);
  double err_abs8 = abs(sum2 - sum2_5);
  double err_rel1 = abs(sum - sum_5) / err_abs1;
  double err_rel2 = abs(rest - rest2) / err_abs2;
  double err_rel3 = abs(mult - mult_5) / err_abs3;
  double err_rel4 = abs(divi - divi_5) / err_abs4;
  double err_rel5 = abs(rest2 - rest2_5) / err_abs5;
  double err_rel6 = abs(divi2 - divi2_5) / err_abs6;
  double err_rel7 = abs(mult2 - mult2_5) / err_abs7;
  double err_rel8 = abs(sum2 - sum2_5) / err_abs8;
  printf("\n\n\n x_8:   %.8lf\n", x);
  printf(" y_8:   %.8lf\n", y);
  printf(" u_8:   %.8lf\n", u);
  printf(" v_8:   %.8lf\n", v);
  printf(" w_8:   %.8lf\n\n", w);
  printf(" x_5:   %.5lf\n", xf);
  printf(" y_5:   %.5lf\n", yf);
  printf(" u_5:   %.5lf\n", uf);
  printf(" v_5:   %.5lf\n", vf);
  printf(" w_5:   %.5lf\n\n", wf);
  printf(" x+y: %.8lf\n", sum);
  printf(" x-y: %.8lf\n", rest);
  printf(" x*y: %.8lf\n", mult);
  printf(" x/y: %.8lf\n", (double)(x / y));
  printf(" x-u: %.8lf\n", (double)x - u);
  printf(" (x-u)/w: %.8lf\n", (double)(x - u) / w);
  printf(" (x-u)*v: %.8lf\n", (double)(x - u) * v);
  printf(" u+v: %.8lf\n\n", (double)u + v);
  printf(" ErrA x+y: %.8lf\n\n", err_abs1);
  printf(" ErrA x-y: %.8lf\n", err_abs2);
  printf(" ErrA x*y: %.8lf\n", err_abs3);
  printf(" ErrA x/y: %.8lf\n", err_abs4);
  printf(" ErrA x-u: %.8lf\n", err_abs5);
  printf(" ErrA (x-u)/w: %.8lf\n", err_abs6);
  printf(" ErrA (x-u)*v: %.8lf\n", err_abs7);
  printf(" ErrA u+v: %.8lf\n\n", err_abs8);
  printf(" ErrR x+y: %.8lf\n", err_rel1);
  printf(" ErrR x-y: %.8lf\n", err_rel2);
  printf(" ErrR x*y: %.8lf\n", err_rel3);
  printf(" ErrR x/y: %.8lf\n", err_rel4);
  printf(" ErrR x-u: %.8lf\n", err_rel5);
  printf(" ErrR (x-u)/w: %.8lf\n", err_rel6);
  printf(" ErrR (x-u)*v: %.8lf\n", err_rel7);
  printf(" ErrR u+v: %.8lf\n", err_rel8);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x150,%rsp
movsd  0xeed(%rip),%xmm0
movsd  %xmm0,-0x8(%rbp)
movsd  0xed8(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movsd  0xec3(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  0xeae(%rip),%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  0xe99(%rip),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xe84(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xe66(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  0xe5d(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xe3f(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0xe36(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xe18(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  0xe0f(%rip),%xmm0
mulsd  -0x20(%rbp),%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xdf1(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0xde8(%rip),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xdca(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x8(%rbp),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x8(%rbp),%xmm0
subsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x8(%rbp),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x8(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x8(%rbp),%xmm0
subsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x8(%rbp),%xmm0
subsd  -0x18(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x8(%rbp),%xmm0
subsd  -0x18(%rbp),%xmm0
mulsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
addsd  -0x38(%rbp),%xmm0
movsd  0xd2f(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xd12(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
movsd  0xcfc(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xcdf(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
movsd  0xcc9(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xcac(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
divsd  -0x38(%rbp),%xmm0
movsd  0xc96(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xc79(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
subsd  -0x40(%rbp),%xmm0
movsd  0xc63(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xc46(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
subsd  -0x40(%rbp),%xmm0
divsd  -0x50(%rbp),%xmm0
movsd  0xc2b(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xc0e(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
subsd  -0x40(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
movsd  0xbf3(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xbd6(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
movsd  0xbc0(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xba3(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x98(%rbp),%xmm0
ff
call   1030 <abs@plt>
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
subsd  -0x78(%rbp),%xmm0
call   1030 <abs@plt>
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
subsd  -0xa8(%rbp),%xmm0
ff
call   1030 <abs@plt>
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
subsd  -0xb0(%rbp),%xmm0
ff
call   1030 <abs@plt>
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
subsd  -0xb8(%rbp),%xmm0
ff
call   1030 <abs@plt>
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
subsd  -0xc0(%rbp),%xmm0
ff
call   1030 <abs@plt>
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
subsd  -0xc8(%rbp),%xmm0
ff
call   1030 <abs@plt>
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
subsd  -0xd0(%rbp),%xmm0
ff
call   1030 <abs@plt>
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
subsd  -0x98(%rbp),%xmm0
ff
call   1030 <abs@plt>
divsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
subsd  -0x78(%rbp),%xmm0
call   1030 <abs@plt>
divsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
subsd  -0xa8(%rbp),%xmm0
ff
call   1030 <abs@plt>
divsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
subsd  -0xb0(%rbp),%xmm0
ff
call   1030 <abs@plt>
divsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
subsd  -0xb8(%rbp),%xmm0
ff
call   1030 <abs@plt>
divsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
subsd  -0xc0(%rbp),%xmm0
ff
call   1030 <abs@plt>
divsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
subsd  -0xc8(%rbp),%xmm0
ff
call   1030 <abs@plt>
divsd  -0x108(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
subsd  -0xd0(%rbp),%xmm0
ff
call   1030 <abs@plt>
divsd  -0x110(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
lea    0x9dd(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x10(%rbp),%xmm0
lea    0x9de(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x18(%rbp),%xmm0
lea    0x9dc(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x20(%rbp),%xmm0
lea    0x9da(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x28(%rbp),%xmm0
lea    0x9d8(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x30(%rbp),%xmm0
lea    0x9d7(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x38(%rbp),%xmm0
lea    0x9d5(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x40(%rbp),%xmm0
lea    0x9d3(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x48(%rbp),%xmm0
lea    0x9d1(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x50(%rbp),%xmm0
lea    0x9cf(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x58(%rbp),%xmm0
lea    0xa6d(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x60(%rbp),%xmm0
lea    0x9d5(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x68(%rbp),%xmm0
lea    0x9d6(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x8(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
lea    0x9d2(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x8(%rbp),%xmm0
subsd  -0x18(%rbp),%xmm0
lea    0x9ce(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x8(%rbp),%xmm0
subsd  -0x18(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
lea    0x9c5(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x8(%rbp),%xmm0
subsd  -0x18(%rbp),%xmm0
mulsd  -0x20(%rbp),%xmm0
lea    0x9c0(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x18(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
lea    0x9c0(%rip),%rdi
call   1040 <printf@plt>
movsd  -0xd8(%rbp),%xmm0
ff
lea    0x920(%rip),%rdi
call   1040 <printf@plt>
movsd  -0xe0(%rbp),%xmm0
ff
lea    0x91f(%rip),%rdi
call   1040 <printf@plt>
movsd  -0xe8(%rbp),%xmm0
ff
lea    0x91d(%rip),%rdi
call   1040 <printf@plt>
movsd  -0xf0(%rbp),%xmm0
ff
lea    0x91b(%rip),%rdi
call   1040 <printf@plt>
movsd  -0xf8(%rbp),%xmm0
ff
lea    0x919(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x100(%rbp),%xmm0
ff
lea    0x917(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x108(%rbp),%xmm0
ff
lea    0x919(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x110(%rbp),%xmm0
ff
lea    0x91b(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x118(%rbp),%xmm0
ff
lea    0x91a(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x120(%rbp),%xmm0
ff
lea    0x918(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x128(%rbp),%xmm0
ff
lea    0x916(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x130(%rbp),%xmm0
ff
lea    0x914(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x138(%rbp),%xmm0
ff
lea    0x912(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x140(%rbp),%xmm0
ff
lea    0x910(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x148(%rbp),%xmm0
ff
lea    0x912(%rip),%rdi
call   1040 <printf@plt>
movsd  -0x150(%rbp),%xmm0
ff
lea    0x914(%rip),%rdi
call   1040 <printf@plt>
xor    %eax,%eax
add    $0x150,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
sub    $0xa8,%rsp
movsd  0xec1(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xeb5(%rip),%xmm0
movsd  %xmm0,(%rsp)
movsd  0xeb0(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xe94(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xe96(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xe72(%rip),%xmm0
movsd  %xmm0,0x90(%rsp)
movsd  0xe79(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xe4d(%rip),%xmm0
movsd  %xmm0,0x88(%rsp)
movsd  0xe5c(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xe28(%rip),%xmm0
movsd  %xmm0,0x98(%rsp)
movsd  (%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
mulsd  0xe34(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xdf8(%rip),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  (%rsp),%xmm0
subsd  0x10(%rsp),%xmm0
mulsd  0xe07(%rip),%xmm0
call   1050 <truncf@plt>
movsd  (%rsp),%xmm0
mulsd  0x10(%rsp),%xmm0
mulsd  0xdef(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xdb3(%rip),%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  (%rsp),%xmm0
divsd  0x10(%rsp),%xmm0
mulsd  0xdc2(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xd86(%rip),%xmm0
movsd  %xmm0,0x38(%rsp)
movsd  (%rsp),%xmm0
subsd  0x90(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
mulsd  0xd8c(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xd50(%rip),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x8(%rsp),%xmm0
divsd  0x98(%rsp),%xmm0
mulsd  0xd5b(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xd1f(%rip),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0x8(%rsp),%xmm0
mulsd  0x88(%rsp),%xmm0
mulsd  0xd2a(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xcee(%rip),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x90(%rsp),%xmm0
mulsd  0x88(%rsp),%xmm0
mulsd  0xcf6(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xcba(%rip),%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0xcdc(%rip),%xmm0
subsd  0x48(%rsp),%xmm0
movsd  %xmm0,0x80(%rsp)
call   1030 <abs@plt>
movsd  %xmm0,0x8(%rsp)
movsd  0xcc2(%rip),%xmm0
call   1030 <abs@plt>
movsd  %xmm0,0x48(%rsp)
movsd  0xcb7(%rip),%xmm0
subsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x78(%rsp)
call   1030 <abs@plt>
movsd  %xmm0,0x40(%rsp)
movsd  0xca0(%rip),%xmm0
subsd  0x38(%rsp),%xmm0
movsd  %xmm0,0x70(%rsp)
call   1030 <abs@plt>
movsd  %xmm0,0x38(%rsp)
movsd  0xc89(%rip),%xmm0
subsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x68(%rsp)
call   1030 <abs@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0xc72(%rip),%xmm0
subsd  0x28(%rsp),%xmm0
movsd  %xmm0,0x60(%rsp)
call   1030 <abs@plt>
movsd  %xmm0,0x28(%rsp)
movsd  0xc5b(%rip),%xmm0
subsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x58(%rsp)
call   1030 <abs@plt>
movsd  %xmm0,0x20(%rsp)
movsd  0xc44(%rip),%xmm0
subsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x50(%rsp)
call   1030 <abs@plt>
movsd  %xmm0,0x18(%rsp)
movsd  0x80(%rsp),%xmm0
call   1030 <abs@plt>
divsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x80(%rsp)
movsd  0xbd8(%rip),%xmm0
call   1030 <abs@plt>
divsd  0x48(%rsp),%xmm0
movsd  %xmm0,0xa0(%rsp)
movsd  0x78(%rsp),%xmm0
call   1030 <abs@plt>
divsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x78(%rsp)
movsd  0x70(%rsp),%xmm0
call   1030 <abs@plt>
divsd  0x38(%rsp),%xmm0
movsd  %xmm0,0x70(%rsp)
movsd  0x68(%rsp),%xmm0
call   1030 <abs@plt>
divsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x68(%rsp)
movsd  0x60(%rsp),%xmm0
call   1030 <abs@plt>
divsd  0x28(%rsp),%xmm0
movsd  %xmm0,0x60(%rsp)
movsd  0x58(%rsp),%xmm0
call   1030 <abs@plt>
divsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0x50(%rsp),%xmm0
call   1030 <abs@plt>
divsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x50(%rsp)
lea    0xb9b(%rip),%rdi
movsd  0xb63(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb99(%rip),%rdi
movsd  0xb57(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb94(%rip),%rdi
movsd  0xb4b(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb8f(%rip),%rdi
movsd  0xb3f(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb8a(%rip),%rdi
movsd  0xb33(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb86(%rip),%rdi
movsd  (%rsp),%xmm0
call   1040 <printf@plt>
lea    0xb84(%rip),%rdi
movsd  0x10(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xb81(%rip),%rdi
movsd  0x90(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xb7b(%rip),%rdi
movsd  0x88(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xb75(%rip),%rdi
movsd  0x98(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xc0f(%rip),%rdi
movsd  0xa5d(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb74(%rip),%rdi
movsd  0xab1(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb72(%rip),%rdi
movsd  0xa45(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb70(%rip),%rdi
movsd  0xa39(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb6e(%rip),%rdi
movsd  0xa2d(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb6c(%rip),%rdi
movsd  0xa21(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb6e(%rip),%rdi
movsd  0xa15(%rip),%xmm0
call   1040 <printf@plt>
lea    0xb70(%rip),%rdi
movsd  0xa09(%rip),%xmm0
call   1040 <printf@plt>
lea    0xad0(%rip),%rdi
movsd  0x8(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad1(%rip),%rdi
movsd  0x48(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad1(%rip),%rdi
movsd  0x40(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad1(%rip),%rdi
movsd  0x38(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad1(%rip),%rdi
movsd  0x30(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad1(%rip),%rdi
movsd  0x28(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad5(%rip),%rdi
movsd  0x20(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad9(%rip),%rdi
movsd  0x18(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xada(%rip),%rdi
movsd  0x80(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad7(%rip),%rdi
movsd  0xa0(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad4(%rip),%rdi
movsd  0x78(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad4(%rip),%rdi
movsd  0x70(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad4(%rip),%rdi
movsd  0x68(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad4(%rip),%rdi
movsd  0x60(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xad8(%rip),%rdi
movsd  0x58(%rsp),%xmm0
call   1040 <printf@plt>
lea    0xadc(%rip),%rdi
movsd  0x50(%rsp),%xmm0
call   1040 <printf@plt>
xor    %eax,%eax
add    $0xa8,%rsp
ret

LLVM IR (-O0):
@.str = [18 x i8] c"\0A\0A\0A x_8: %.8lf\0A\00"
@.str.1 = [15 x i8] c" y_8: %.8lf\0A\00"
@.str.2 = [15 x i8] c" u_8: %.8lf\0A\00"
@.str.3 = [15 x i8] c" v_8: %.8lf\0A\00"
@.str.4 = [16 x i8] c" w_8: %.8lf\0A\0A\00"
@.str.5 = [15 x i8] c" x_5: %.5lf\0A\00"
@.str.6 = [15 x i8] c" y_5: %.5lf\0A\00"
@.str.7 = [15 x i8] c" u_5: %.5lf\0A\00"
@.str.8 = [15 x i8] c" v_5: %.5lf\0A\00"
@.str.9 = [16 x i8] c" w_5: %.5lf\0A\0A\00"
@.str.10 = [13 x i8] c" x+y: %.8lf\0A\00"
@.str.11 = [13 x i8] c" x-y: %.8lf\0A\00"
@.str.12 = [13 x i8] c" x*y: %.8lf\0A\00"
@.str.13 = [13 x i8] c" x/y: %.8lf\0A\00"
@.str.14 = [13 x i8] c" x-u: %.8lf\0A\00"
@.str.15 = [17 x i8] c" (x-u)/w: %.8lf\0A\00"
@.str.16 = [17 x i8] c" (x-u)*v: %.8lf\0A\00"
@.str.17 = [14 x i8] c" u+v: %.8lf\0A\0A\00"
@.str.18 = [19 x i8] c" ErrA x+y: %.8lf\0A\0A\00"
@.str.19 = [18 x i8] c" ErrA x-y: %.8lf\0A\00"
@.str.20 = [18 x i8] c" ErrA x*y: %.8lf\0A\00"
@.str.21 = [18 x i8] c" ErrA x/y: %.8lf\0A\00"
@.str.22 = [18 x i8] c" ErrA x-u: %.8lf\0A\00"
@.str.23 = [22 x i8] c" ErrA (x-u)/w: %.8lf\0A\00"
@.str.24 = [22 x i8] c" ErrA (x-u)*v: %.8lf\0A\00"
@.str.25 = [19 x i8] c" ErrA u+v: %.8lf\0A\0A\00"
@.str.26 = [18 x i8] c" ErrR x+y: %.8lf\0A\00"
@.str.27 = [18 x i8] c" ErrR x-y: %.8lf\0A\00"
@.str.28 = [18 x i8] c" ErrR x*y: %.8lf\0A\00"
@.str.29 = [18 x i8] c" ErrR x/y: %.8lf\0A\00"
@.str.30 = [18 x i8] c" ErrR x-u: %.8lf\0A\00"
@.str.31 = [22 x i8] c" ErrR (x-u)/w: %.8lf\0A\00"
@.str.32 = [22 x i8] c" ErrR (x-u)*v: %.8lf\0A\00"
@.str.33 = [18 x i8] c" ErrR u+v: %.8lf\0A\00"
define i32 @main() {
%1 = alloca double
%2 = alloca double
%3 = alloca double
%4 = alloca double
%5 = alloca double
%6 = alloca double
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca double
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca double
%31 = alloca double
%32 = alloca double
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca double
%38 = alloca double
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
store double 0x3FE6DB6DB6DB6DB7, double* %1
store double 0x3FD5555555555555, double* %2
store double 7.142510e-01, double* %3
store double 0x40F81CDE66666666, double* %4
store double -1.111110e+00, double* %5
%43 = load double, double* %1
%44 = fmul double %43, 1.000000e+05
%45 = call i32 @truncf(double %44)
%46 = sitofp i32 %45 to double
%47 = fmul double %46, 1.000000e-05
store double %47, double* %6
%48 = load double, double* %2
%49 = fmul double %48, 1.000000e+05
%50 = call i32 @truncf(double %49)
%51 = sitofp i32 %50 to double
%52 = fmul double %51, 1.000000e-05
store double %52, double* %7
%53 = load double, double* %3
%54 = fmul double %53, 1.000000e+05
%55 = call i32 @truncf(double %54)
%56 = sitofp i32 %55 to double
%57 = fmul double %56, 1.000000e-05
store double %57, double* %8
%58 = load double, double* %4
%59 = fmul double %58, 1.000000e+05
%60 = call i32 @truncf(double %59)
%61 = sitofp i32 %60 to double
%62 = fmul double %61, 1.000000e-05
store double %62, double* %9
%63 = load double, double* %5
%64 = fmul double %63, 1.000000e+05
%65 = call i32 @truncf(double %64)
%66 = sitofp i32 %65 to double
%67 = fmul double %66, 1.000000e-05
store double %67, double* %10
%68 = load double, double* %1
%69 = load double, double* %2
%70 = fadd double %68, %69
store double %70, double* %11
%71 = load double, double* %1
%72 = load double, double* %2
%73 = fsub double %71, %72
store double %73, double* %12
%74 = load double, double* %1
%75 = load double, double* %2
%76 = fmul double %74, %75
store double %76, double* %13
%77 = load double, double* %1
%78 = load double, double* %2
%79 = fdiv double %77, %78
store double %79, double* %14
%80 = load double, double* %1
%81 = load double, double* %3
%82 = fsub double %80, %81
store double %82, double* %15
%83 = load double, double* %1
%84 = load double, double* %3
%85 = fsub double %83, %84
%86 = load double, double* %5
%87 = fdiv double %85, %86
store double %87, double* %16
%88 = load double, double* %1
%89 = load double, double* %3
%90 = fsub double %88, %89
%91 = load double, double* %4
%92 = fmul double %90, %91
store double %92, double* %17
%93 = load double, double* %3
%94 = load double, double* %4
%95 = fadd double %93, %94
store double %95, double* %18
%96 = load double, double* %6
%97 = load double, double* %7
%98 = fadd double %96, %97
%99 = fmul double %98, 1.000000e+05
%100 = call i32 @truncf(double %99)
%101 = sitofp i32 %100 to double
%102 = fmul double %101, 1.000000e-05
store double %102, double* %19
%103 = load double, double* %6
%104 = load double, double* %7
%105 = fsub double %103, %104
%106 = fmul double %105, 1.000000e+05
%107 = call i32 @truncf(double %106)
%108 = sitofp i32 %107 to double
%109 = fmul double %108, 1.000000e-05
store double %109, double* %20
%110 = load double, double* %6
%111 = load double, double* %7
%112 = fmul double %110, %111
%113 = fmul double %112, 1.000000e+05
%114 = call i32 @truncf(double %113)
%115 = sitofp i32 %114 to double
%116 = fmul double %115, 1.000000e-05
store double %116, double* %21
%117 = load double, double* %6
%118 = load double, double* %7
%119 = fdiv double %117, %118
%120 = fmul double %119, 1.000000e+05
%121 = call i32 @truncf(double %120)
%122 = sitofp i32 %121 to double
%123 = fmul double %122, 1.000000e-05
store double %123, double* %22
%124 = load double, double* %6
%125 = load double, double* %8
%126 = fsub double %124, %125
%127 = fmul double %126, 1.000000e+05
%128 = call i32 @truncf(double %127)
%129 = sitofp i32 %128 to double
%130 = fmul double %129, 1.000000e-05
store double %130, double* %23
%131 = load double, double* %6
%132 = load double, double* %8
%133 = fsub double %131, %132
%134 = load double, double* %10
%135 = fdiv double %133, %134
%136 = fmul double %135, 1.000000e+05
%137 = call i32 @truncf(double %136)
%138 = sitofp i32 %137 to double
%139 = fmul double %138, 1.000000e-05
store double %139, double* %24
%140 = load double, double* %6
%141 = load double, double* %8
%142 = fsub double %140, %141
%143 = load double, double* %9
%144 = fmul double %142, %143
%145 = fmul double %144, 1.000000e+05
%146 = call i32 @truncf(double %145)
%147 = sitofp i32 %146 to double
%148 = fmul double %147, 1.000000e-05
store double %148, double* %25
%149 = load double, double* %8
%150 = load double, double* %9
%151 = fmul double %149, %150
%152 = fmul double %151, 1.000000e+05
%153 = call i32 @truncf(double %152)
%154 = sitofp i32 %153 to double
%155 = fmul double %154, 1.000000e-05
store double %155, double* %26
%156 = load double, double* %11
%157 = load double, double* %19
%158 = fsub double %156, %157
%159 = call double @abs(double %158)
store double %159, double* %27
%160 = load double, double* %12
%161 = load double, double* %15
%162 = fsub double %160, %161
%163 = call double @abs(double %162)
store double %163, double* %28
%164 = load double, double* %13
%165 = load double, double* %21
%166 = fsub double %164, %165
%167 = call double @abs(double %166)
store double %167, double* %29
%168 = load double, double* %14
%169 = load double, double* %22
%170 = fsub double %168, %169
%171 = call double @abs(double %170)
store double %171, double* %30
%172 = load double, double* %15
%173 = load double, double* %23
%174 = fsub double %172, %173
%175 = call double @abs(double %174)
store double %175, double* %31
%176 = load double, double* %16
%177 = load double, double* %24
%178 = fsub double %176, %177
%179 = call double @abs(double %178)
store double %179, double* %32
%180 = load double, double* %17
%181 = load double, double* %25
%182 = fsub double %180, %181
%183 = call double @abs(double %182)
store double %183, double* %33
%184 = load double, double* %18
%185 = load double, double* %26
%186 = fsub double %184, %185
%187 = call double @abs(double %186)
store double %187, double* %34
%188 = load double, double* %11
%189 = load double, double* %19
%190 = fsub double %188, %189
%191 = call double @abs(double %190)
%192 = load double, double* %27
%193 = fdiv double %191, %192
store double %193, double* %35
%194 = load double, double* %12
%195 = load double, double* %15
%196 = fsub double %194, %195
%197 = call double @abs(double %196)
%198 = load double, double* %28
%199 = fdiv double %197, %198
store double %199, double* %36
%200 = load double, double* %13
%201 = load double, double* %21
%202 = fsub double %200, %201
%203 = call double @abs(double %202)
%204 = load double, double* %29
%205 = fdiv double %203, %204
store double %205, double* %37
%206 = load double, double* %14
%207 = load double, double* %22
%208 = fsub double %206, %207
%209 = call double @abs(double %208)
%210 = load double, double* %30
%211 = fdiv double %209, %210
store double %211, double* %38
%212 = load double, double* %15
%213 = load double, double* %23
%214 = fsub double %212, %213
%215 = call double @abs(double %214)
%216 = load double, double* %31
%217 = fdiv double %215, %216
store double %217, double* %39
%218 = load double, double* %16
%219 = load double, double* %24
%220 = fsub double %218, %219
%221 = call double @abs(double %220)
%222 = load double, double* %32
%223 = fdiv double %221, %222
store double %223, double* %40
%224 = load double, double* %17
%225 = load double, double* %25
%226 = fsub double %224, %225
%227 = call double @abs(double %226)
%228 = load double, double* %33
%229 = fdiv double %227, %228
store double %229, double* %41
%230 = load double, double* %18
%231 = load double, double* %26
%232 = fsub double %230, %231
%233 = call double @abs(double %232)
%234 = load double, double* %34
%235 = fdiv double %233, %234
store double %235, double* %42
%236 = load double, double* %1
%237 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str, i64 0, i64 0), double %236)
%238 = load double, double* %2
%239 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.1, i64 0, i64 0), double %238)
%240 = load double, double* %3
%241 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), double %240)
%242 = load double, double* %4
%243 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0), double %242)
%244 = load double, double* %5
%245 = call i32 @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.4, i64 0, i64 0), double %244)
%246 = load double, double* %6
%247 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.5, i64 0, i64 0), double %246)
%248 = load double, double* %7
%249 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.6, i64 0, i64 0), double %248)
%250 = load double, double* %8
%251 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.7, i64 0, i64 0), double %250)
%252 = load double, double* %9
%253 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), double %252)
%254 = load double, double* %10
%255 = call i32 @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.9, i64 0, i64 0), double %254)
%256 = load double, double* %11
%257 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.10, i64 0, i64 0), double %256)
%258 = load double, double* %12
%259 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0), double %258)
%260 = load double, double* %13
%261 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.12, i64 0, i64 0), double %260)
%262 = load double, double* %1
%263 = load double, double* %2
%264 = fdiv double %262, %263
%265 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.13, i64 0, i64 0), double %264)
%266 = load double, double* %1
%267 = load double, double* %3
%268 = fsub double %266, %267
%269 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), double %268)
%270 = load double, double* %1
%271 = load double, double* %3
%272 = fsub double %270, %271
%273 = load double, double* %5
%274 = fdiv double %272, %273
%275 = call i32 @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.15, i64 0, i64 0), double %274)
%276 = load double, double* %1
%277 = load double, double* %3
%278 = fsub double %276, %277
%279 = load double, double* %4
%280 = fmul double %278, %279
%281 = call i32 @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.16, i64 0, i64 0), double %280)
%282 = load double, double* %3
%283 = load double, double* %4
%284 = fadd double %282, %283
%285 = call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.17, i64 0, i64 0), double %284)
%286 = load double, double* %27
%287 = call i32 @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.18, i64 0, i64 0), double %286)
%288 = load double, double* %28
%289 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.19, i64 0, i64 0), double %288)
%290 = load double, double* %29
%291 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.20, i64 0, i64 0), double %290)
%292 = load double, double* %30
%293 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.21, i64 0, i64 0), double %292)
%294 = load double, double* %31
%295 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.22, i64 0, i64 0), double %294)
%296 = load double, double* %32
%297 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.23, i64 0, i64 0), double %296)
%298 = load double, double* %33
%299 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.24, i64 0, i64 0), double %298)
%300 = load double, double* %34
%301 = call i32 @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.25, i64 0, i64 0), double %300)
%302 = load double, double* %35
%303 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.26, i64 0, i64 0), double %302)
%304 = load double, double* %36
%305 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.27, i64 0, i64 0), double %304)
%306 = load double, double* %37
%307 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.28, i64 0, i64 0), double %306)
%308 = load double, double* %38
%309 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.29, i64 0, i64 0), double %308)
%310 = load double, double* %39
%311 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.30, i64 0, i64 0), double %310)
%312 = load double, double* %40
%313 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.31, i64 0, i64 0), double %312)
%314 = load double, double* %41
%315 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.32, i64 0, i64 0), double %314)
%316 = load double, double* %42
%317 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.33, i64 0, i64 0), double %316)
ret i32 0
}

LLVM IR (-O2):
@.str = [18 x i8] c"\0A\0A\0A x_8: %.8lf\0A\00"
@.str.1 = [15 x i8] c" y_8: %.8lf\0A\00"
@.str.2 = [15 x i8] c" u_8: %.8lf\0A\00"
@.str.3 = [15 x i8] c" v_8: %.8lf\0A\00"
@.str.4 = [16 x i8] c" w_8: %.8lf\0A\0A\00"
@.str.5 = [15 x i8] c" x_5: %.5lf\0A\00"
@.str.6 = [15 x i8] c" y_5: %.5lf\0A\00"
@.str.7 = [15 x i8] c" u_5: %.5lf\0A\00"
@.str.8 = [15 x i8] c" v_5: %.5lf\0A\00"
@.str.9 = [16 x i8] c" w_5: %.5lf\0A\0A\00"
@.str.10 = [13 x i8] c" x+y: %.8lf\0A\00"
@.str.11 = [13 x i8] c" x-y: %.8lf\0A\00"
@.str.12 = [13 x i8] c" x*y: %.8lf\0A\00"
@.str.13 = [13 x i8] c" x/y: %.8lf\0A\00"
@.str.14 = [13 x i8] c" x-u: %.8lf\0A\00"
@.str.15 = [17 x i8] c" (x-u)/w: %.8lf\0A\00"
@.str.16 = [17 x i8] c" (x-u)*v: %.8lf\0A\00"
@.str.17 = [14 x i8] c" u+v: %.8lf\0A\0A\00"
@.str.18 = [19 x i8] c" ErrA x+y: %.8lf\0A\0A\00"
@.str.19 = [18 x i8] c" ErrA x-y: %.8lf\0A\00"
@.str.20 = [18 x i8] c" ErrA x*y: %.8lf\0A\00"
@.str.21 = [18 x i8] c" ErrA x/y: %.8lf\0A\00"
@.str.22 = [18 x i8] c" ErrA x-u: %.8lf\0A\00"
@.str.23 = [22 x i8] c" ErrA (x-u)/w: %.8lf\0A\00"
@.str.24 = [22 x i8] c" ErrA (x-u)*v: %.8lf\0A\00"
@.str.25 = [19 x i8] c" ErrA u+v: %.8lf\0A\0A\00"
@.str.26 = [18 x i8] c" ErrR x+y: %.8lf\0A\00"
@.str.27 = [18 x i8] c" ErrR x-y: %.8lf\0A\00"
@.str.28 = [18 x i8] c" ErrR x*y: %.8lf\0A\00"
@.str.29 = [18 x i8] c" ErrR x/y: %.8lf\0A\00"
@.str.30 = [18 x i8] c" ErrR x-u: %.8lf\0A\00"
@.str.31 = [22 x i8] c" ErrR (x-u)/w: %.8lf\0A\00"
@.str.32 = [22 x i8] c" ErrR (x-u)*v: %.8lf\0A\00"
@.str.33 = [18 x i8] c" ErrR u+v: %.8lf\0A\00"
define i32 @main() {
%1 = tail call i32 @truncf(double 0x40F1704924924925)
%2 = sitofp i32 %1 to double
%3 = fmul double %2, 1.000000e-05
%4 = tail call i32 @truncf(double 0x40E046AAAAAAAAAA)
%5 = sitofp i32 %4 to double
%6 = fmul double %5, 1.000000e-05
%7 = tail call i32 @truncf(double 0x40F1701199999999)
%8 = sitofp i32 %7 to double
%9 = fmul double %8, 1.000000e-05
%10 = tail call i32 @truncf(double 9.876590e+09)
%11 = sitofp i32 %10 to double
%12 = fmul double %11, 1.000000e-05
%13 = tail call i32 @truncf(double -1.111110e+05)
%14 = sitofp i32 %13 to double
%15 = fmul double %14, 1.000000e-05
%16 = fadd double %3, %6
%17 = fmul double %16, 1.000000e+05
%18 = tail call i32 @truncf(double %17)
%19 = sitofp i32 %18 to double
%20 = fmul double %19, 1.000000e-05
%21 = fsub double %3, %6
%22 = fmul double %21, 1.000000e+05
%23 = tail call i32 @truncf(double %22)
%24 = fmul double %3, %6
%25 = fmul double %24, 1.000000e+05
%26 = tail call i32 @truncf(double %25)
%27 = sitofp i32 %26 to double
%28 = fmul double %27, 1.000000e-05
%29 = fdiv double %3, %6
%30 = fmul double %29, 1.000000e+05
%31 = tail call i32 @truncf(double %30)
%32 = sitofp i32 %31 to double
%33 = fmul double %32, 1.000000e-05
%34 = fsub double %3, %9
%35 = fmul double %34, 1.000000e+05
%36 = tail call i32 @truncf(double %35)
%37 = sitofp i32 %36 to double
%38 = fmul double %37, 1.000000e-05
%39 = fdiv double %34, %15
%40 = fmul double %39, 1.000000e+05
%41 = tail call i32 @truncf(double %40)
%42 = sitofp i32 %41 to double
%43 = fmul double %42, 1.000000e-05
%44 = fmul double %34, %12
%45 = fmul double %44, 1.000000e+05
%46 = tail call i32 @truncf(double %45)
%47 = sitofp i32 %46 to double
%48 = fmul double %47, 1.000000e-05
%49 = fmul double %9, %12
%50 = fmul double %49, 1.000000e+05
%51 = tail call i32 @truncf(double %50)
%52 = sitofp i32 %51 to double
%53 = fmul double %52, 1.000000e-05
%54 = fsub double 0x3FF0C30C30C30C31, %20
%55 = tail call double @abs(double %54)
%56 = tail call double @abs(double 0x3FD860F47E33535B)
%57 = fsub double 0x3FCE79E79E79E79E, %28
%58 = tail call double @abs(double %57)
%59 = fsub double 0x400124924924924A, %33
%60 = tail call double @abs(double %59)
%61 = fsub double 0x3F023345C657C000, %38
%62 = tail call double @abs(double %61)
%63 = fsub double 0xBF00615978861AF1, %43
%64 = tail call double @abs(double %63)
%65 = fsub double 0x400B6DBF5F8231BA, %48
%66 = tail call double @abs(double %65)
%67 = fsub double 0x40F81CE9D3F8DB48, %53
%68 = tail call double @abs(double %67)
%69 = tail call double @abs(double %54)
%70 = fdiv double %69, %55
%71 = tail call double @abs(double 0x3FD860F47E33535B)
%72 = fdiv double %71, %56
%73 = tail call double @abs(double %57)
%74 = fdiv double %73, %58
%75 = tail call double @abs(double %59)
%76 = fdiv double %75, %60
%77 = tail call double @abs(double %61)
%78 = fdiv double %77, %62
%79 = tail call double @abs(double %63)
%80 = fdiv double %79, %64
%81 = tail call double @abs(double %65)
%82 = fdiv double %81, %66
%83 = tail call double @abs(double %67)
%84 = fdiv double %83, %68
%85 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str, i64 0, i64 0), double 0x3FE6DB6DB6DB6DB7)
%86 = tail call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.1, i64 0, i64 0), double 0x3FD5555555555555)
%87 = tail call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), double 7.142510e-01)
%88 = tail call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0), double 0x40F81CDE66666666)
%89 = tail call i32 @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.4, i64 0, i64 0), double -1.111110e+00)
%90 = tail call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.5, i64 0, i64 0), double %3)
%91 = tail call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.6, i64 0, i64 0), double %6)
%92 = tail call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.7, i64 0, i64 0), double %9)
%93 = tail call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.8, i64 0, i64 0), double %12)
%94 = tail call i32 @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.9, i64 0, i64 0), double %15)
%95 = tail call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.10, i64 0, i64 0), double 0x3FF0C30C30C30C31)
%96 = tail call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0), double 0x3FD8618618618619)
%97 = tail call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.12, i64 0, i64 0), double 0x3FCE79E79E79E79E)
%98 = tail call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.13, i64 0, i64 0), double 0x400124924924924A)
%99 = tail call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), double 0x3F023345C657C000)
%100 = tail call i32 @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.15, i64 0, i64 0), double 0xBF00615978861AF1)
%101 = tail call i32 @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.16, i64 0, i64 0), double 0x400B6DBF5F8231BA)
%102 = tail call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.17, i64 0, i64 0), double 0x40F81CE9D3F8DB48)
%103 = tail call i32 @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.18, i64 0, i64 0), double %55)
%104 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.19, i64 0, i64 0), double %56)
%105 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.20, i64 0, i64 0), double %58)
%106 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.21, i64 0, i64 0), double %60)
%107 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.22, i64 0, i64 0), double %62)
%108 = tail call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.23, i64 0, i64 0), double %64)
%109 = tail call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.24, i64 0, i64 0), double %66)
%110 = tail call i32 @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.25, i64 0, i64 0), double %68)
%111 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.26, i64 0, i64 0), double %70)
%112 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.27, i64 0, i64 0), double %72)
%113 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.28, i64 0, i64 0), double %74)
%114 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.29, i64 0, i64 0), double %76)
%115 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.30, i64 0, i64 0), double %78)
%116 = tail call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.31, i64 0, i64 0), double %80)
%117 = tail call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.32, i64 0, i64 0), double %82)
%118 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.33, i64 0, i64 0), double %84)
ret i32 0
}