#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 fabs(double);
int /*<<< orphan*/ print_number(char *, double);
int /*<<< orphan*/ print_row(char *, double, int, int, int);
int truncf(double);
int main() {
  double x_8 = 0.71428571;
  double x_5 = (truncf(x_8 * 1e5) / 1e5);
  double y_8 = 0.33333333;
  double y_5 = (truncf(y_8 * 1e5) / 1e5);
  double u_8 = 0.714251;
  double u_5 = (truncf(u_8 * 1e5) / 1e5);
  double v_8 = 98765.9;
  double v_5 = truncf(v_8);
  double w_8 = .111111e-4;
  double w_5 = (truncf(w_8 * 1e5) / 1e5);
  print_number("x_8", x_8);
  print_number("x_5", x_5);
  print_number("y_8", y_8);
  print_number("y_5", y_5);
  print_number("u_8", u_8);
  print_number("u_5", u_5);
  print_number("v_8", v_8);
  print_number("v_5", v_5);
  print_number("w_8", w_8);
  print_number("w_5", w_5);
  print_row("x-y", x_8 - y_8, (truncf(x_5 - y_5 * 1e5) / 1e5),
            fabs((x_8 - y_8) - (truncf(x_5 - y_5 * 1e5) / 1e5)),
            fabs((x_8 - y_8) - (truncf(x_5 - y_5 * 1e5) / 1e5)) /
                fabs(x_8 - y_8));
  print_row("x/y", x_8 / y_8, (truncf(x_5 / y_5 * 1e5) / 1e5),
            fabs((x_8 / y_8) - (truncf(x_5 / y_5 * 1e5) / 1e5)),
            fabs((x_8 / y_8) - (truncf(x_5 / y_5 * 1e5) / 1e5)) /
                fabs(x_8 / y_8));
  print_row(
      "(x-u)/w", (x_8 - u_8) / w_8, (truncf((x_5 - u_5) / w_5 * 1e5) / 1e5),
      fabs(((x_8 - u_8) / w_8) - (truncf((x_5 - u_5) / w_5 * 1e5) / 1e5)),
      fabs(((x_8 - u_8) / w_8) - (truncf((x_5 - u_5) / w_5 * 1e5) / 1e5)) /
          fabs((x_8 - u_8) / w_8));
  print_row("u+v", u_8 + v_8, (truncf(u_5 + v_5 * 1e5) / 1e5),
            fabs((u_8 + x_8) - (truncf(u_5 + v_5 * 1e5) / 1e5)),
            fabs((u_8 + v_8) - (truncf(u_5 + v_5 * 1e5) / 1e5)) /
                fabs(u_8 + v_8));
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x100,%rsp
movl   $0x0,-0x4(%rbp)
movsd  0xece(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movsd  0xe99(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
call   1060 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xe83(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  0xe92(%rip),%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  0xe65(%rip),%xmm0
mulsd  -0x20(%rbp),%xmm0
call   1060 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xe4f(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xe56(%rip),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  0xe31(%rip),%xmm0
mulsd  -0x30(%rbp),%xmm0
call   1060 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xe1b(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0xe1a(%rip),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x40(%rbp),%xmm0
call   1060 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0xdf2(%rip),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  0xddd(%rip),%xmm0
mulsd  -0x50(%rbp),%xmm0
call   1060 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xdc7(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x10(%rbp),%xmm0
lea    0xde2(%rip),%rdi
call   1040 <print_number@plt>
movsd  -0x18(%rbp),%xmm0
lea    0xdd5(%rip),%rdi
call   1040 <print_number@plt>
movsd  -0x20(%rbp),%xmm0
lea    0xdc8(%rip),%rdi
call   1040 <print_number@plt>
movsd  -0x28(%rbp),%xmm0
lea    0xdbb(%rip),%rdi
call   1040 <print_number@plt>
movsd  -0x30(%rbp),%xmm0
lea    0xdae(%rip),%rdi
call   1040 <print_number@plt>
movsd  -0x38(%rbp),%xmm0
lea    0xda1(%rip),%rdi
call   1040 <print_number@plt>
movsd  -0x40(%rbp),%xmm0
lea    0xd94(%rip),%rdi
call   1040 <print_number@plt>
movsd  -0x48(%rbp),%xmm0
lea    0xd87(%rip),%rdi
call   1040 <print_number@plt>
movsd  -0x50(%rbp),%xmm0
lea    0xd7a(%rip),%rdi
call   1040 <print_number@plt>
movsd  -0x58(%rbp),%xmm0
lea    0xd6d(%rip),%rdi
call   1040 <print_number@plt>
movsd  -0x10(%rbp),%xmm0
subsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x18(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xcd9(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1060 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xcc0(%rip),%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0xdc(%rbp)
movsd  -0x10(%rbp),%xmm0
subsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x18(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xc77(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1060 <truncf@plt>
movsd  -0xf8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
movsd  0xc56(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,-0xd4(%rbp)
movsd  -0x10(%rbp),%xmm0
subsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x18(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xc08(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1060 <truncf@plt>
movsd  -0xf0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
movsd  0xbe7(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,-0xd8(%rbp)
movsd  -0x10(%rbp),%xmm0
subsd  -0x20(%rbp),%xmm0
call   1030 <fabs@plt>
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0xdc(%rbp),%esi
mov    %eax,%ecx
mov    -0xd8(%rbp),%eax
cltd
idiv   %ecx
mov    -0xd4(%rbp),%edx
mov    %eax,%ecx
lea    0xbf5(%rip),%rdi
call   1050 <print_row@plt>
movsd  -0x10(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
movsd  0xb74(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1060 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xb5f(%rip),%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0xb4(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
movsd  0xb2d(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1060 <truncf@plt>
movsd  -0xd0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
movsd  0xb10(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,-0xac(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
divsd  -0x28(%rbp),%xmm0
movsd  0xad9(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1060 <truncf@plt>
movsd  -0xc8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
movsd  0xabc(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,-0xb0(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
call   1030 <fabs@plt>
movsd  -0xc0(%rbp),%xmm0
ff
mov    -0xb4(%rbp),%esi
mov    %eax,%ecx
mov    -0xb0(%rbp),%eax
cltd
idiv   %ecx
mov    -0xac(%rbp),%edx
mov    %eax,%ecx
lea    0xace(%rip),%rdi
call   1050 <print_row@plt>
movsd  -0x10(%rbp),%xmm0
subsd  -0x30(%rbp),%xmm0
divsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
divsd  -0x58(%rbp),%xmm0
movsd  0xa3f(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1060 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xa2a(%rip),%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x8c(%rbp)
movsd  -0x10(%rbp),%xmm0
subsd  -0x30(%rbp),%xmm0
divsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
divsd  -0x58(%rbp),%xmm0
movsd  0x9ee(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1060 <truncf@plt>
movsd  -0xa8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
movsd  0x9d1(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,-0x84(%rbp)
movsd  -0x10(%rbp),%xmm0
subsd  -0x30(%rbp),%xmm0
divsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
divsd  -0x58(%rbp),%xmm0
movsd  0x990(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1060 <truncf@plt>
movsd  -0xa0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
movsd  0x973(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,-0x88(%rbp)
movsd  -0x10(%rbp),%xmm0
subsd  -0x30(%rbp),%xmm0
divsd  -0x50(%rbp),%xmm0
call   1030 <fabs@plt>
movsd  -0x98(%rbp),%xmm0
ff
mov    -0x8c(%rbp),%esi
mov    %eax,%ecx
mov    -0x88(%rbp),%eax
cltd
idiv   %ecx
mov    -0x84(%rbp),%edx
mov    %eax,%ecx
lea    0x984(%rip),%rdi
call   1050 <print_row@plt>
movsd  -0x30(%rbp),%xmm0
addsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm1
movsd  -0x48(%rbp),%xmm0
movsd  0x8fe(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1060 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0x8e5(%rip),%xmm1
divsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x64(%rbp)
movsd  -0x30(%rbp),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm1
movsd  -0x48(%rbp),%xmm0
movsd  0x8b9(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1060 <truncf@plt>
movsd  -0x80(%rbp),%xmm0
cvtsi2sd %eax,%xmm1
movsd  0x89b(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,-0x5c(%rbp)
movsd  -0x30(%rbp),%xmm0
addsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm1
movsd  -0x48(%rbp),%xmm0
movsd  0x86a(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1060 <truncf@plt>
movsd  -0x78(%rbp),%xmm0
cvtsi2sd %eax,%xmm1
movsd  0x84c(%rip),%xmm2
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,-0x60(%rbp)
movsd  -0x30(%rbp),%xmm0
addsd  -0x40(%rbp),%xmm0
call   1030 <fabs@plt>
movsd  -0x70(%rbp),%xmm0
mov    -0x64(%rbp),%esi
mov    %eax,%ecx
mov    -0x60(%rbp),%eax
cltd
idiv   %ecx
mov    -0x5c(%rbp),%edx
mov    %eax,%ecx
lea    0x879(%rip),%rdi
call   1050 <print_row@plt>
xor    %eax,%eax
add    $0x100,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r14
push   %rbx
sub    $0x60,%rsp
movsd  0xeb0(%rip),%xmm0
call   1060 <truncf@plt>
mov    %eax,%ebx
movsd  0xea9(%rip),%xmm0
call   1060 <truncf@plt>
movd   %ebx,%xmm0
movd   %eax,%xmm1
punpckldq %xmm1,%xmm0
cvtdq2pd %xmm0,%xmm0
divpd  0xf04(%rip),%xmm0
movapd %xmm0,0x10(%rsp)
movsd  0xe86(%rip),%xmm0
call   1060 <truncf@plt>
mov    %eax,%ebx
movsd  0xe7f(%rip),%xmm0
call   1060 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0xe6d(%rip),%xmm0
call   1060 <truncf@plt>
movd   %ebx,%xmm0
movd   %eax,%xmm1
punpckldq %xmm1,%xmm0
cvtdq2pd %xmm0,%xmm0
divpd  0xeb0(%rip),%xmm0
movapd %xmm0,0x30(%rsp)
lea    0xeb3(%rip),%rdi
movsd  0xe43(%rip),%xmm0
call   1040 <print_number@plt>
lea    0xea3(%rip),%rdi
movaps 0x10(%rsp),%xmm0
call   1040 <print_number@plt>
lea    0xe96(%rip),%rdi
movsd  0xe26(%rip),%xmm0
call   1040 <print_number@plt>
movaps 0x10(%rsp),%xmm0
movhlps %xmm0,%xmm0
movaps %xmm0,0x20(%rsp)
lea    0xe79(%rip),%rdi
call   1040 <print_number@plt>
lea    0xe71(%rip),%rdi
movsd  0xe01(%rip),%xmm0
call   1040 <print_number@plt>
lea    0xe61(%rip),%rdi
movaps 0x30(%rsp),%xmm0
call   1040 <print_number@plt>
lea    0xe54(%rip),%rdi
movsd  0xdbc(%rip),%xmm0
call   1040 <print_number@plt>
lea    0xe44(%rip),%rdi
movsd  0x8(%rsp),%xmm0
call   1040 <print_number@plt>
lea    0xe36(%rip),%rdi
movsd  0xdbe(%rip),%xmm0
call   1040 <print_number@plt>
movaps 0x30(%rsp),%xmm0
movhlps %xmm0,%xmm0
movaps %xmm0,0x50(%rsp)
lea    0xe19(%rip),%rdi
call   1040 <print_number@plt>
movapd 0x20(%rsp),%xmm1
mulsd  0xd9a(%rip),%xmm1
movapd 0x10(%rsp),%xmm0
subsd  %xmm1,%xmm0
movapd %xmm0,0x40(%rsp)
call   1060 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
divsd  0xd76(%rip),%xmm0
cvttsd2si %xmm0,%r14d
movaps 0x40(%rsp),%xmm0
call   1060 <truncf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
divsd  0xd58(%rip),%xmm1
movsd  0xd58(%rip),%xmm0
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,%ebp
movaps 0x40(%rsp),%xmm0
call   1060 <truncf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
divsd  0xd2c(%rip),%xmm1
movsd  0xd2c(%rip),%xmm0
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,%ebx
movsd  0xd19(%rip),%xmm0
call   1030 <fabs@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
lea    0xd6e(%rip),%rdi
movsd  0xcfe(%rip),%xmm0
mov    %r14d,%esi
mov    %ebp,%edx
mov    %eax,%ecx
call   1050 <print_row@plt>
movapd 0x10(%rsp),%xmm0
divsd  0x20(%rsp),%xmm0
mulsd  0xcd6(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
call   1060 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
divsd  0xcbc(%rip),%xmm0
cvttsd2si %xmm0,%r14d
movaps 0x20(%rsp),%xmm0
call   1060 <truncf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
divsd  0xc9e(%rip),%xmm1
movsd  0xca6(%rip),%xmm0
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,%ebp
movaps 0x20(%rsp),%xmm0
call   1060 <truncf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
divsd  0xc72(%rip),%xmm1
movsd  0xc7a(%rip),%xmm0
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,%ebx
movsd  0xc67(%rip),%xmm0
call   1030 <fabs@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
lea    0xcb8(%rip),%rdi
movsd  0xc4c(%rip),%xmm0
mov    %r14d,%esi
mov    %ebp,%edx
mov    %eax,%ecx
call   1050 <print_row@plt>
movapd 0x10(%rsp),%xmm0
subsd  0x30(%rsp),%xmm0
divsd  0x50(%rsp),%xmm0
mulsd  0xc16(%rip),%xmm0
movapd %xmm0,0x10(%rsp)
call   1060 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
divsd  0xbfc(%rip),%xmm0
cvttsd2si %xmm0,%r14d
movaps 0x10(%rsp),%xmm0
call   1060 <truncf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
divsd  0xbde(%rip),%xmm1
movsd  0xbee(%rip),%xmm0
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,%ebp
movaps 0x10(%rsp),%xmm0
call   1060 <truncf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
divsd  0xbb2(%rip),%xmm1
movsd  0xbc2(%rip),%xmm0
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,%ebx
movsd  0xbaf(%rip),%xmm0
call   1030 <fabs@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
lea    0xbfc(%rip),%rdi
movsd  0xb94(%rip),%xmm0
mov    %r14d,%esi
mov    %ebp,%edx
mov    %eax,%ecx
call   1050 <print_row@plt>
movsd  0x8(%rsp),%xmm0
mulsd  0xb62(%rip),%xmm0
addsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
call   1060 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
divsd  0xb42(%rip),%xmm0
cvttsd2si %xmm0,%r14d
movsd  0x8(%rsp),%xmm0
call   1060 <truncf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
divsd  0xb23(%rip),%xmm1
movsd  0xb3b(%rip),%xmm0
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,%ebp
movsd  0x8(%rsp),%xmm0
call   1060 <truncf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
divsd  0xaf6(%rip),%xmm1
movsd  0xb16(%rip),%xmm0
subsd  %xmm1,%xmm0
call   1030 <fabs@plt>
mov    %eax,%ebx
movsd  0xb03(%rip),%xmm0
call   1030 <fabs@plt>
mov    %eax,%ecx
mov    %ebx,%eax
cltd
idiv   %ecx
lea    0xb48(%rip),%rdi
movsd  0xae8(%rip),%xmm0
mov    %r14d,%esi
mov    %ebp,%edx
mov    %eax,%ecx
call   1050 <print_row@plt>
xor    %eax,%eax
add    $0x60,%rsp
pop    %rbx
pop    %r14
pop    %rbp
ret

LLVM IR (-O0):
@.str = [4 x i8] c"x_8\00"
@.str.1 = [4 x i8] c"x_5\00"
@.str.2 = [4 x i8] c"y_8\00"
@.str.3 = [4 x i8] c"y_5\00"
@.str.4 = [4 x i8] c"u_8\00"
@.str.5 = [4 x i8] c"u_5\00"
@.str.6 = [4 x i8] c"v_8\00"
@.str.7 = [4 x i8] c"v_5\00"
@.str.8 = [4 x i8] c"w_8\00"
@.str.9 = [4 x i8] c"w_5\00"
@.str.10 = [4 x i8] c"x-y\00"
@.str.11 = [4 x i8] c"x/y\00"
@.str.12 = [8 x i8] c"(x-u)/w\00"
@.str.13 = [4 x i8] c"u+v\00"
define i32 @main() {
%1 = alloca i32
%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
store i32 0, i32* %1
store double 0x3FE6DB6DB48E678C, double* %2
%12 = load double, double* %2
%13 = fmul double %12, 1.000000e+05
%14 = call i32 @truncf(double %13)
%15 = sitofp i32 %14 to double
%16 = fdiv double %15, 1.000000e+05
store double %16, double* %3
store double 0x3FD5555551C112DA, double* %4
%17 = load double, double* %4
%18 = fmul double %17, 1.000000e+05
%19 = call i32 @truncf(double %18)
%20 = sitofp i32 %19 to double
%21 = fdiv double %20, 1.000000e+05
store double %21, double* %5
store double 7.142510e-01, double* %6
%22 = load double, double* %6
%23 = fmul double %22, 1.000000e+05
%24 = call i32 @truncf(double %23)
%25 = sitofp i32 %24 to double
%26 = fdiv double %25, 1.000000e+05
store double %26, double* %7
store double 0x40F81CDE66666666, double* %8
%27 = load double, double* %8
%28 = call i32 @truncf(double %27)
%29 = sitofp i32 %28 to double
store double %29, double* %9
store double 1.111110e-05, double* %10
%30 = load double, double* %10
%31 = fmul double %30, 1.000000e+05
%32 = call i32 @truncf(double %31)
%33 = sitofp i32 %32 to double
%34 = fdiv double %33, 1.000000e+05
store double %34, double* %11
%35 = load double, double* %2
%36 = call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), double %35)
%37 = load double, double* %3
%38 = call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double %37)
%39 = load double, double* %4
%40 = call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), double %39)
%41 = load double, double* %5
%42 = call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0), double %41)
%43 = load double, double* %6
%44 = call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double %43)
%45 = load double, double* %7
%46 = call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0), double %45)
%47 = load double, double* %8
%48 = call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0), double %47)
%49 = load double, double* %9
%50 = call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %49)
%51 = load double, double* %10
%52 = call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0), double %51)
%53 = load double, double* %11
%54 = call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0), double %53)
%55 = load double, double* %2
%56 = load double, double* %4
%57 = fsub double %55, %56
%58 = load double, double* %3
%59 = load double, double* %5
%60 = fneg double %59
%61 = call double @llvm.fmuladd.f64(double %60, double 1.000000e+05, double %58)
%62 = call i32 @truncf(double %61)
%63 = sitofp i32 %62 to double
%64 = fdiv double %63, 1.000000e+05
%65 = fptosi double %64 to i32
%66 = load double, double* %2
%67 = load double, double* %4
%68 = fsub double %66, %67
%69 = load double, double* %3
%70 = load double, double* %5
%71 = fneg double %70
%72 = call double @llvm.fmuladd.f64(double %71, double 1.000000e+05, double %69)
%73 = call i32 @truncf(double %72)
%74 = sitofp i32 %73 to double
%75 = fdiv double %74, 1.000000e+05
%76 = fsub double %68, %75
%77 = call i32 @fabs(double %76)
%78 = load double, double* %2
%79 = load double, double* %4
%80 = fsub double %78, %79
%81 = load double, double* %3
%82 = load double, double* %5
%83 = fneg double %82
%84 = call double @llvm.fmuladd.f64(double %83, double 1.000000e+05, double %81)
%85 = call i32 @truncf(double %84)
%86 = sitofp i32 %85 to double
%87 = fdiv double %86, 1.000000e+05
%88 = fsub double %80, %87
%89 = call i32 @fabs(double %88)
%90 = load double, double* %2
%91 = load double, double* %4
%92 = fsub double %90, %91
%93 = call i32 @fabs(double %92)
%94 = sdiv i32 %89, %93
%95 = call i32 @print_row(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.10, i64 0, i64 0), double %57, i32 %65, i32 %77, i32 %94)
%96 = load double, double* %2
%97 = load double, double* %4
%98 = fdiv double %96, %97
%99 = load double, double* %3
%100 = load double, double* %5
%101 = fdiv double %99, %100
%102 = fmul double %101, 1.000000e+05
%103 = call i32 @truncf(double %102)
%104 = sitofp i32 %103 to double
%105 = fdiv double %104, 1.000000e+05
%106 = fptosi double %105 to i32
%107 = load double, double* %2
%108 = load double, double* %4
%109 = fdiv double %107, %108
%110 = load double, double* %3
%111 = load double, double* %5
%112 = fdiv double %110, %111
%113 = fmul double %112, 1.000000e+05
%114 = call i32 @truncf(double %113)
%115 = sitofp i32 %114 to double
%116 = fdiv double %115, 1.000000e+05
%117 = fsub double %109, %116
%118 = call i32 @fabs(double %117)
%119 = load double, double* %2
%120 = load double, double* %4
%121 = fdiv double %119, %120
%122 = load double, double* %3
%123 = load double, double* %5
%124 = fdiv double %122, %123
%125 = fmul double %124, 1.000000e+05
%126 = call i32 @truncf(double %125)
%127 = sitofp i32 %126 to double
%128 = fdiv double %127, 1.000000e+05
%129 = fsub double %121, %128
%130 = call i32 @fabs(double %129)
%131 = load double, double* %2
%132 = load double, double* %4
%133 = fdiv double %131, %132
%134 = call i32 @fabs(double %133)
%135 = sdiv i32 %130, %134
%136 = call i32 @print_row(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0), double %98, i32 %106, i32 %118, i32 %135)
%137 = load double, double* %2
%138 = load double, double* %6
%139 = fsub double %137, %138
%140 = load double, double* %10
%141 = fdiv double %139, %140
%142 = load double, double* %3
%143 = load double, double* %7
%144 = fsub double %142, %143
%145 = load double, double* %11
%146 = fdiv double %144, %145
%147 = fmul double %146, 1.000000e+05
%148 = call i32 @truncf(double %147)
%149 = sitofp i32 %148 to double
%150 = fdiv double %149, 1.000000e+05
%151 = fptosi double %150 to i32
%152 = load double, double* %2
%153 = load double, double* %6
%154 = fsub double %152, %153
%155 = load double, double* %10
%156 = fdiv double %154, %155
%157 = load double, double* %3
%158 = load double, double* %7
%159 = fsub double %157, %158
%160 = load double, double* %11
%161 = fdiv double %159, %160
%162 = fmul double %161, 1.000000e+05
%163 = call i32 @truncf(double %162)
%164 = sitofp i32 %163 to double
%165 = fdiv double %164, 1.000000e+05
%166 = fsub double %156, %165
%167 = call i32 @fabs(double %166)
%168 = load double, double* %2
%169 = load double, double* %6
%170 = fsub double %168, %169
%171 = load double, double* %10
%172 = fdiv double %170, %171
%173 = load double, double* %3
%174 = load double, double* %7
%175 = fsub double %173, %174
%176 = load double, double* %11
%177 = fdiv double %175, %176
%178 = fmul double %177, 1.000000e+05
%179 = call i32 @truncf(double %178)
%180 = sitofp i32 %179 to double
%181 = fdiv double %180, 1.000000e+05
%182 = fsub double %172, %181
%183 = call i32 @fabs(double %182)
%184 = load double, double* %2
%185 = load double, double* %6
%186 = fsub double %184, %185
%187 = load double, double* %10
%188 = fdiv double %186, %187
%189 = call i32 @fabs(double %188)
%190 = sdiv i32 %183, %189
%191 = call i32 @print_row(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.12, i64 0, i64 0), double %141, i32 %151, i32 %167, i32 %190)
%192 = load double, double* %6
%193 = load double, double* %8
%194 = fadd double %192, %193
%195 = load double, double* %7
%196 = load double, double* %9
%197 = call double @llvm.fmuladd.f64(double %196, double 1.000000e+05, double %195)
%198 = call i32 @truncf(double %197)
%199 = sitofp i32 %198 to double
%200 = fdiv double %199, 1.000000e+05
%201 = fptosi double %200 to i32
%202 = load double, double* %6
%203 = load double, double* %2
%204 = fadd double %202, %203
%205 = load double, double* %7
%206 = load double, double* %9
%207 = call double @llvm.fmuladd.f64(double %206, double 1.000000e+05, double %205)
%208 = call i32 @truncf(double %207)
%209 = sitofp i32 %208 to double
%210 = fdiv double %209, 1.000000e+05
%211 = fsub double %204, %210
%212 = call i32 @fabs(double %211)
%213 = load double, double* %6
%214 = load double, double* %8
%215 = fadd double %213, %214
%216 = load double, double* %7
%217 = load double, double* %9
%218 = call double @llvm.fmuladd.f64(double %217, double 1.000000e+05, double %216)
%219 = call i32 @truncf(double %218)
%220 = sitofp i32 %219 to double
%221 = fdiv double %220, 1.000000e+05
%222 = fsub double %215, %221
%223 = call i32 @fabs(double %222)
%224 = load double, double* %6
%225 = load double, double* %8
%226 = fadd double %224, %225
%227 = call i32 @fabs(double %226)
%228 = sdiv i32 %223, %227
%229 = call i32 @print_row(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0), double %194, i32 %201, i32 %212, i32 %228)
ret i32 0
}

LLVM IR (-O2):
@.str = [4 x i8] c"x_8\00"
@.str.1 = [4 x i8] c"x_5\00"
@.str.2 = [4 x i8] c"y_8\00"
@.str.3 = [4 x i8] c"y_5\00"
@.str.4 = [4 x i8] c"u_8\00"
@.str.5 = [4 x i8] c"u_5\00"
@.str.6 = [4 x i8] c"v_8\00"
@.str.7 = [4 x i8] c"v_5\00"
@.str.8 = [4 x i8] c"w_8\00"
@.str.9 = [4 x i8] c"w_5\00"
@.str.10 = [4 x i8] c"x-y\00"
@.str.11 = [4 x i8] c"x/y\00"
@.str.12 = [8 x i8] c"(x-u)/w\00"
@.str.13 = [4 x i8] c"u+v\00"
define i32 @main() {
%1 = tail call i32 @truncf(double 0x40F1704922D0E560)
%2 = tail call i32 @truncf(double 0x40E046AAA7EF9DB2)
%3 = insertelement <2 x i32> poison, i32 %1, i64 0
%4 = insertelement <2 x i32> %3, i32 %2, i64 1
%5 = sitofp <2 x i32> %4 to <2 x double>
%6 = fdiv <2 x double> %5, <double 1.000000e+05, double 1.000000e+05>
%7 = tail call i32 @truncf(double 0x40F1701199999999)
%8 = tail call i32 @truncf(double 0x40F81CDE66666666)
%9 = sitofp i32 %8 to double
%10 = tail call i32 @truncf(double 1.111110e+00)
%11 = insertelement <2 x i32> poison, i32 %7, i64 0
%12 = insertelement <2 x i32> %11, i32 %10, i64 1
%13 = sitofp <2 x i32> %12 to <2 x double>
%14 = fdiv <2 x double> %13, <double 1.000000e+05, double 1.000000e+05>
%15 = tail call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), double 0x3FE6DB6DB48E678C)
%16 = extractelement <2 x double> %6, i64 0
%17 = tail call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), double %16)
%18 = tail call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), double 0x3FD5555551C112DA)
%19 = extractelement <2 x double> %6, i64 1
%20 = tail call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0), double %19)
%21 = tail call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double 7.142510e-01)
%22 = extractelement <2 x double> %14, i64 0
%23 = tail call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0), double %22)
%24 = tail call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0), double 0x40F81CDE66666666)
%25 = tail call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), double %9)
%26 = tail call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0), double 1.111110e-05)
%27 = extractelement <2 x double> %14, i64 1
%28 = tail call i32 @print_number(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0), double %27)
%29 = fneg double %19
%30 = tail call double @llvm.fmuladd.f64(double %29, double 1.000000e+05, double %16)
%31 = tail call i32 @truncf(double %30)
%32 = sitofp i32 %31 to double
%33 = fdiv double %32, 1.000000e+05
%34 = fptosi double %33 to i32
%35 = tail call i32 @truncf(double %30)
%36 = sitofp i32 %35 to double
%37 = fdiv double %36, 1.000000e+05
%38 = fsub double 0x3FD86186175BBC3E, %37
%39 = tail call i32 @fabs(double %38)
%40 = tail call i32 @truncf(double %30)
%41 = sitofp i32 %40 to double
%42 = fdiv double %41, 1.000000e+05
%43 = fsub double 0x3FD86186175BBC3E, %42
%44 = tail call i32 @fabs(double %43)
%45 = tail call i32 @fabs(double 0x3FD86186175BBC3E)
%46 = sdiv i32 %44, %45
%47 = tail call i32 @print_row(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.10, i64 0, i64 0), double 0x3FD86186175BBC3E, i32 %34, i32 %39, i32 %46)
%48 = fdiv double %16, %19
%49 = fmul double %48, 1.000000e+05
%50 = tail call i32 @truncf(double %49)
%51 = sitofp i32 %50 to double
%52 = fdiv double %51, 1.000000e+05
%53 = fptosi double %52 to i32
%54 = tail call i32 @truncf(double %49)
%55 = sitofp i32 %54 to double
%56 = fdiv double %55, 1.000000e+05
%57 = fsub double 0x400124924A4B155F, %56
%58 = tail call i32 @fabs(double %57)
%59 = tail call i32 @truncf(double %49)
%60 = sitofp i32 %59 to double
%61 = fdiv double %60, 1.000000e+05
%62 = fsub double 0x400124924A4B155F, %61
%63 = tail call i32 @fabs(double %62)
%64 = tail call i32 @fabs(double 0x400124924A4B155F)
%65 = sdiv i32 %63, %64
%66 = tail call i32 @print_row(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0), double 0x400124924A4B155F, i32 %53, i32 %58, i32 %65)
%67 = fsub <2 x double> %6, %14
%68 = extractelement <2 x double> %67, i64 0
%69 = fdiv double %68, %27
%70 = fmul double %69, 1.000000e+05
%71 = tail call i32 @truncf(double %70)
%72 = sitofp i32 %71 to double
%73 = fdiv double %72, 1.000000e+05
%74 = fptosi double %73 to i32
%75 = tail call i32 @truncf(double %70)
%76 = sitofp i32 %75 to double
%77 = fdiv double %76, 1.000000e+05
%78 = fsub double 0x4008FDC0EBC844C9, %77
%79 = tail call i32 @fabs(double %78)
%80 = tail call i32 @truncf(double %70)
%81 = sitofp i32 %80 to double
%82 = fdiv double %81, 1.000000e+05
%83 = fsub double 0x4008FDC0EBC844C9, %82
%84 = tail call i32 @fabs(double %83)
%85 = tail call i32 @fabs(double 0x4008FDC0EBC844C9)
%86 = sdiv i32 %84, %85
%87 = tail call i32 @print_row(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.12, i64 0, i64 0), double 0x4008FDC0EBC844C9, i32 %74, i32 %79, i32 %86)
%88 = tail call double @llvm.fmuladd.f64(double %9, double 1.000000e+05, double %22)
%89 = tail call i32 @truncf(double %88)
%90 = sitofp i32 %89 to double
%91 = fdiv double %90, 1.000000e+05
%92 = fptosi double %91 to i32
%93 = tail call i32 @truncf(double %88)
%94 = sitofp i32 %93 to double
%95 = fdiv double %94, 1.000000e+05
%96 = fsub double 0x3FF6DB494F295DF2, %95
%97 = tail call i32 @fabs(double %96)
%98 = tail call i32 @truncf(double %88)
%99 = sitofp i32 %98 to double
%100 = fdiv double %99, 1.000000e+05
%101 = fsub double 0x40F81CE9D3F8DB48, %100
%102 = tail call i32 @fabs(double %101)
%103 = tail call i32 @fabs(double 0x40F81CE9D3F8DB48)
%104 = sdiv i32 %102, %103
%105 = tail call i32 @print_row(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0), double 0x40F81CE9D3F8DB48, i32 %92, i32 %97, i32 %104)
ret i32 0
}