#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 fabs(double);
int /*<<< orphan*/ printf(char *, ...);
int truncf(double);
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.71425100;
  double u_5 = truncf(u_8 * 1e5) / 1e5;
  double v_8 = 98765.900;
  double v_5 = truncf(v_8 * 1e5) / 1e5;
  double w_8 = truncf(.111111e-4 * 1e8) / 1e8;
  double w_5 = truncf(w_8 * 1e5) / 1e5;
  double res2_8 = x_8 - y_8;
  double res2_5 = truncf((x_5 - y_5) * 1e5) / 1e5;
  double res2_ea = fabs(res2_8 - res2_5);
  double res2_er = fabs(res2_ea) / fabs(res2_8);
  double res4_8 = x_8 / y_8;
  double res4_5 = truncf((x_5 / y_5) * 1e5) / 1e5;
  double res4_ea = fabs(res4_8 - res4_5);
  double res4_er = fabs(res4_ea) / fabs(res4_8);
  double res6_8 = (x_8 - u_8) / w_8;
  double res6_5 = truncf(((x_5 - u_5) / w_5) * 1e5) / 1e5;
  double res6_ea = fabs(res6_8 - res6_5);
  double res6_er = fabs(res6_ea) / fabs(res6_8);
  double res8_8 = u_8 + v_8;
  double res8_5 = truncf((u_5 + v_5) * 1e5) / 1e5;
  double res8_ea = fabs(res8_8 - res8_5);
  double res8_er = fabs(res8_ea) / fabs(res8_8);
  printf("Número \t Operación \t Valor a 8 \t\t Aritmética \t Err A \t\t Err R "
         "\n");
  printf("2\t      X-Y \t %4.8f \t\t %1.5f \t %1.8f \t %1.8f \n", res2_8,
         res2_5, res2_ea, res2_er);
  printf("4\t      X/Y \t %4.8f \t\t %1.5f \t %1.8f \t %1.8f \n", res4_8,
         res4_5, res4_ea, res4_er);
  printf("6\t  (X-U)/W \t %4.8f \t\t %1.5f \t %1.8f \t %1.8f \n", res6_8,
         res6_5, res6_ea, res6_er);
  printf("8\t    (U+V) \t %5.8f \t %1.5f \t %1.8f \t %1.8f \n", res8_8, res8_5,
         res8_ea, res8_er);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xd0,%rsp
movsd  0xf0d(%rip),%xmm0
movsd  %xmm0,-0x8(%rbp)
movsd  0xed0(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xeba(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
movsd  0xed1(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  0xe9c(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xe86(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  0xe95(%rip),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xe68(%rip),%xmm0
mulsd  -0x28(%rbp),%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xe52(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  0xe59(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0xe34(%rip),%xmm0
mulsd  -0x38(%rbp),%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xe1e(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  0xe1d(%rip),%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xe04(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0xdeb(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xdd5(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x8(%rbp),%xmm0
subsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x10(%rbp),%xmm0
subsd  -0x20(%rbp),%xmm0
movsd  0xdab(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xd96(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x58(%rbp),%xmm0
subsd  -0x60(%rbp),%xmm0
movaps 0xd6c(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movaps 0xd57(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0x58(%rbp),%xmm1
movaps 0xd47(%rip),%xmm2
pand   %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x8(%rbp),%xmm0
divsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x10(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
movsd  0xd29(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xd14(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x78(%rbp),%xmm0
subsd  -0x80(%rbp),%xmm0
movaps 0xcea(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movaps 0xccf(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0x78(%rbp),%xmm1
movaps 0xcbf(%rip),%xmm2
pand   %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
subsd  -0x28(%rbp),%xmm0
divsd  -0x48(%rbp),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
subsd  -0x30(%rbp),%xmm0
divsd  -0x50(%rbp),%xmm0
movsd  0xc91(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xc7c(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
subsd  -0xa0(%rbp),%xmm0
ff
movaps 0xc49(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movaps 0xc2e(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0x98(%rbp),%xmm1
ff
movaps 0xc1b(%rip),%xmm2
pand   %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x28(%rbp),%xmm0
addsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
addsd  -0x40(%rbp),%xmm0
movsd  0xbf7(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xbe2(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
subsd  -0xc0(%rbp),%xmm0
ff
movaps 0xbaf(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movaps 0xb94(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0xb8(%rbp),%xmm1
ff
movaps 0xb81(%rip),%xmm2
pand   %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
lea    0xbb2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm1
movsd  -0x68(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm3
lea    0xbd3(%rip),%rdi
mov    $0x4,%al
call   1030 <printf@plt>
movsd  -0x78(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm3
ff
lea    0xbda(%rip),%rdi
mov    $0x4,%al
call   1030 <printf@plt>
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0xa0(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm3
ff
lea    0xbdb(%rip),%rdi
mov    $0x4,%al
call   1030 <printf@plt>
movsd  -0xb8(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm1
ff
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0xd0(%rbp),%xmm3
ff
lea    0xbdc(%rip),%rdi
mov    $0x4,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0xd0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0xd0,%rsp
movsd  0xec0(%rip),%xmm0
call   1050 <truncf@plt>
mov    %eax,%ebx
movsd  0xeb9(%rip),%xmm0
call   1050 <truncf@plt>
movd   %ebx,%xmm0
movd   %eax,%xmm1
punpckldq %xmm1,%xmm0
cvtdq2pd %xmm0,%xmm0
divpd  0xee4(%rip),%xmm0
movapd %xmm0,(%rsp)
movsd  0xe97(%rip),%xmm0
call   1050 <truncf@plt>
mov    %eax,%ebx
movsd  0xe90(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
divsd  0xe84(%rip),%xmm1
movsd  %xmm1,0x40(%rsp)
movsd  0xe7e(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
divsd  0xe72(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
mulsd  0xe54(%rip),%xmm0
call   1050 <truncf@plt>
movd   %eax,%xmm0
movd   %ebx,%xmm1
punpckldq %xmm0,%xmm1
cvtdq2pd %xmm1,%xmm0
divpd  0xe67(%rip),%xmm0
movapd %xmm0,0x10(%rsp)
movapd (%rsp),%xmm0
movapd %xmm0,%xmm1
unpckhpd %xmm0,%xmm1
movapd %xmm1,0x30(%rsp)
subsd  %xmm1,%xmm0
mulsd  0xe12(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0xdfe(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0xe04(%rip),%xmm3
movapd %xmm3,%xmm2
subsd  %xmm0,%xmm2
andpd  0xe1c(%rip),%xmm2
movapd %xmm2,0xb0(%rsp)
movapd %xmm2,%xmm0
divsd  %xmm3,%xmm0
movapd %xmm0,0xc0(%rsp)
movapd (%rsp),%xmm0
divsd  0x30(%rsp),%xmm0
mulsd  %xmm1,%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0xd9f(%rip),%xmm3
divsd  %xmm3,%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0xdad(%rip),%xmm2
movapd %xmm2,%xmm1
subsd  %xmm0,%xmm1
andpd  0xdbd(%rip),%xmm1
movapd %xmm1,0x90(%rsp)
movapd %xmm1,%xmm0
divsd  %xmm2,%xmm0
movapd %xmm0,0xa0(%rsp)
movapd (%rsp),%xmm1
movapd 0x10(%rsp),%xmm0
subsd  %xmm0,%xmm1
unpckhpd %xmm0,%xmm0
divsd  %xmm0,%xmm1
mulsd  %xmm3,%xmm1
movapd %xmm1,%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movapd 0xd80(%rip),%xmm1
unpcklpd %xmm0,%xmm1
movapd 0x20(%rsp),%xmm0
shufpd $0x2,0xd7d(%rip),%xmm0
divpd  %xmm0,%xmm1
movapd %xmm1,0x70(%rsp)
movapd %xmm1,%xmm0
unpckhpd %xmm1,%xmm0
movapd %xmm0,(%rsp)
movapd %xmm1,%xmm2
subsd  %xmm0,%xmm2
movapd %xmm2,%xmm3
movapd 0xd32(%rip),%xmm0
andpd  %xmm0,%xmm3
movapd %xmm3,0x20(%rsp)
divsd  %xmm1,%xmm2
andpd  %xmm0,%xmm2
movapd %xmm2,0x80(%rsp)
movapd 0x10(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
mulsd  0xcc3(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
divsd  0xcaf(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xcc9(%rip),%xmm2
movapd %xmm2,%xmm1
subsd  %xmm0,%xmm1
andpd  0xcd1(%rip),%xmm1
movapd %xmm1,0x60(%rsp)
movapd %xmm1,%xmm0
divsd  %xmm2,%xmm0
movapd %xmm0,0x40(%rsp)
lea    0xda1(%rip),%rdi
call   1030 <puts@plt>
lea    0xcda(%rip),%rdi
movsd  0xc7a(%rip),%xmm0
movsd  0x58(%rsp),%xmm1
movaps 0xb0(%rsp),%xmm2
movaps 0xc0(%rsp),%xmm3
mov    $0x4,%al
call   1040 <printf@plt>
lea    0xcdd(%rip),%rdi
movsd  0xc56(%rip),%xmm0
movsd  0x30(%rsp),%xmm1
movaps 0x90(%rsp),%xmm2
movaps 0xa0(%rsp),%xmm3
mov    $0x4,%al
call   1040 <printf@plt>
lea    0xce0(%rip),%rdi
movaps 0x70(%rsp),%xmm0
movaps (%rsp),%xmm1
movaps 0x20(%rsp),%xmm2
movaps 0x80(%rsp),%xmm3
mov    $0x4,%al
call   1040 <printf@plt>
lea    0xceb(%rip),%rdi
movsd  0xc0e(%rip),%xmm0
movsd  0x10(%rsp),%xmm1
movaps 0x60(%rsp),%xmm2
movaps 0x40(%rsp),%xmm3
mov    $0x4,%al
call   1040 <printf@plt>
xor    %eax,%eax
add    $0xd0,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [67 x i8] c"N\C3\BAmero \09 Operaci\C3\B3n \09 Valor a 8 \09\09 Aritm\C3\A9tica \09 Err A \09\09 Err R \0A\00"
@.str.1 = [47 x i8] c"2\09 X-Y \09 %4.8f \09\09 %1.5f \09 %1.8f \09 %1.8f \0A\00"
@.str.2 = [47 x i8] c"4\09 X/Y \09 %4.8f \09\09 %1.5f \09 %1.8f \09 %1.8f \0A\00"
@.str.3 = [47 x i8] c"6\09 (X-U)/W \09 %4.8f \09\09 %1.5f \09 %1.8f \09 %1.8f \0A\00"
@.str.4 = [46 x i8] c"8\09 (U+V) \09 %5.8f \09 %1.5f \09 %1.8f \09 %1.8f \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
store double 0x3FE6DB6DB48E678C, double* %1
%27 = load double, double* %1
%28 = fmul double %27, 1.000000e+05
%29 = call i32 @truncf(double %28)
%30 = sitofp i32 %29 to double
%31 = fdiv double %30, 1.000000e+05
store double %31, double* %2
store double 0x3FD5555551C112DA, double* %3
%32 = load double, double* %3
%33 = fmul double %32, 1.000000e+05
%34 = call i32 @truncf(double %33)
%35 = sitofp i32 %34 to double
%36 = fdiv double %35, 1.000000e+05
store double %36, double* %4
store double 7.142510e-01, double* %5
%37 = load double, double* %5
%38 = fmul double %37, 1.000000e+05
%39 = call i32 @truncf(double %38)
%40 = sitofp i32 %39 to double
%41 = fdiv double %40, 1.000000e+05
store double %41, double* %6
store double 0x40F81CDE66666666, double* %7
%42 = load double, double* %7
%43 = fmul double %42, 1.000000e+05
%44 = call i32 @truncf(double %43)
%45 = sitofp i32 %44 to double
%46 = fdiv double %45, 1.000000e+05
store double %46, double* %8
%47 = call i32 @truncf(double 1.111110e+03)
%48 = sitofp i32 %47 to double
%49 = fdiv double %48, 1.000000e+08
store double %49, double* %9
%50 = load double, double* %9
%51 = fmul double %50, 1.000000e+05
%52 = call i32 @truncf(double %51)
%53 = sitofp i32 %52 to double
%54 = fdiv double %53, 1.000000e+05
store double %54, double* %10
%55 = load double, double* %1
%56 = load double, double* %3
%57 = fsub double %55, %56
store double %57, double* %11
%58 = load double, double* %2
%59 = load double, double* %4
%60 = fsub double %58, %59
%61 = fmul double %60, 1.000000e+05
%62 = call i32 @truncf(double %61)
%63 = sitofp i32 %62 to double
%64 = fdiv double %63, 1.000000e+05
store double %64, double* %12
%65 = load double, double* %11
%66 = load double, double* %12
%67 = fsub double %65, %66
%68 = call double @llvm.fabs.f64(double %67)
store double %68, double* %13
%69 = load double, double* %13
%70 = call double @llvm.fabs.f64(double %69)
%71 = load double, double* %11
%72 = call double @llvm.fabs.f64(double %71)
%73 = fdiv double %70, %72
store double %73, double* %14
%74 = load double, double* %1
%75 = load double, double* %3
%76 = fdiv double %74, %75
store double %76, double* %15
%77 = load double, double* %2
%78 = load double, double* %4
%79 = fdiv double %77, %78
%80 = fmul double %79, 1.000000e+05
%81 = call i32 @truncf(double %80)
%82 = sitofp i32 %81 to double
%83 = fdiv double %82, 1.000000e+05
store double %83, double* %16
%84 = load double, double* %15
%85 = load double, double* %16
%86 = fsub double %84, %85
%87 = call double @llvm.fabs.f64(double %86)
store double %87, double* %17
%88 = load double, double* %17
%89 = call double @llvm.fabs.f64(double %88)
%90 = load double, double* %15
%91 = call double @llvm.fabs.f64(double %90)
%92 = fdiv double %89, %91
store double %92, double* %18
%93 = load double, double* %1
%94 = load double, double* %5
%95 = fsub double %93, %94
%96 = load double, double* %9
%97 = fdiv double %95, %96
store double %97, double* %19
%98 = load double, double* %2
%99 = load double, double* %6
%100 = fsub double %98, %99
%101 = load double, double* %10
%102 = fdiv double %100, %101
%103 = fmul double %102, 1.000000e+05
%104 = call i32 @truncf(double %103)
%105 = sitofp i32 %104 to double
%106 = fdiv double %105, 1.000000e+05
store double %106, double* %20
%107 = load double, double* %19
%108 = load double, double* %20
%109 = fsub double %107, %108
%110 = call double @llvm.fabs.f64(double %109)
store double %110, double* %21
%111 = load double, double* %21
%112 = call double @llvm.fabs.f64(double %111)
%113 = load double, double* %19
%114 = call double @llvm.fabs.f64(double %113)
%115 = fdiv double %112, %114
store double %115, double* %22
%116 = load double, double* %5
%117 = load double, double* %7
%118 = fadd double %116, %117
store double %118, double* %23
%119 = load double, double* %6
%120 = load double, double* %8
%121 = fadd double %119, %120
%122 = fmul double %121, 1.000000e+05
%123 = call i32 @truncf(double %122)
%124 = sitofp i32 %123 to double
%125 = fdiv double %124, 1.000000e+05
store double %125, double* %24
%126 = load double, double* %23
%127 = load double, double* %24
%128 = fsub double %126, %127
%129 = call double @llvm.fabs.f64(double %128)
store double %129, double* %25
%130 = load double, double* %25
%131 = call double @llvm.fabs.f64(double %130)
%132 = load double, double* %23
%133 = call double @llvm.fabs.f64(double %132)
%134 = fdiv double %131, %133
store double %134, double* %26
%135 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str, i64 0, i64 0))
%136 = load double, double* %11
%137 = load double, double* %12
%138 = load double, double* %13
%139 = load double, double* %14
%140 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.1, i64 0, i64 0), double %136, double %137, double %138, double %139)
%141 = load double, double* %15
%142 = load double, double* %16
%143 = load double, double* %17
%144 = load double, double* %18
%145 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.2, i64 0, i64 0), double %141, double %142, double %143, double %144)
%146 = load double, double* %19
%147 = load double, double* %20
%148 = load double, double* %21
%149 = load double, double* %22
%150 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.3, i64 0, i64 0), double %146, double %147, double %148, double %149)
%151 = load double, double* %23
%152 = load double, double* %24
%153 = load double, double* %25
%154 = load double, double* %26
%155 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.4, i64 0, i64 0), double %151, double %152, double %153, double %154)
ret i32 0
}

LLVM IR (-O2):
@.str.1 = [47 x i8] c"2\09 X-Y \09 %4.8f \09\09 %1.5f \09 %1.8f \09 %1.8f \0A\00"
@.str.2 = [47 x i8] c"4\09 X/Y \09 %4.8f \09\09 %1.5f \09 %1.8f \09 %1.8f \0A\00"
@.str.3 = [47 x i8] c"6\09 (X-U)/W \09 %4.8f \09\09 %1.5f \09 %1.8f \09 %1.8f \0A\00"
@.str.4 = [46 x i8] c"8\09 (U+V) \09 %5.8f \09 %1.5f \09 %1.8f \09 %1.8f \0A\00"
@str = [66 x i8] c"N\C3\BAmero \09 Operaci\C3\B3n \09 Valor a 8 \09\09 Aritm\C3\A9tica \09 Err A \09\09 Err R \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 9.876590e+09)
%9 = sitofp i32 %8 to double
%10 = fdiv double %9, 1.000000e+05
%11 = tail call i32 @truncf(double 1.111110e+03)
%12 = sitofp i32 %11 to double
%13 = fdiv double %12, 1.000000e+08
%14 = fmul double %13, 1.000000e+05
%15 = tail call i32 @truncf(double %14)
%16 = insertelement <2 x i32> poison, i32 %7, i64 0
%17 = insertelement <2 x i32> %16, i32 %15, i64 1
%18 = sitofp <2 x i32> %17 to <2 x double>
%19 = fdiv <2 x double> %18, <double 1.000000e+05, double 1.000000e+05>
%20 = extractelement <2 x double> %6, i64 0
%21 = extractelement <2 x double> %6, i64 1
%22 = fsub double %20, %21
%23 = fmul double %22, 1.000000e+05
%24 = tail call i32 @truncf(double %23)
%25 = sitofp i32 %24 to double
%26 = fdiv double %25, 1.000000e+05
%27 = fsub double 0x3FD86186175BBC3E, %26
%28 = tail call double @llvm.fabs.f64(double %27)
%29 = fdiv double %28, 0x3FD86186175BBC3E
%30 = fdiv double %20, %21
%31 = fmul double %30, 1.000000e+05
%32 = tail call i32 @truncf(double %31)
%33 = sitofp i32 %32 to double
%34 = fdiv double %33, 1.000000e+05
%35 = fsub double 0x400124924A4B155F, %34
%36 = tail call double @llvm.fabs.f64(double %35)
%37 = fdiv double %36, 0x400124924A4B155F
%38 = extractelement <2 x double> %19, i64 0
%39 = fsub <2 x double> %6, %19
%40 = extractelement <2 x double> %39, i64 0
%41 = extractelement <2 x double> %19, i64 1
%42 = fdiv double %40, %41
%43 = fmul double %42, 1.000000e+05
%44 = tail call i32 @truncf(double %43)
%45 = sitofp i32 %44 to double
%46 = insertelement <2 x double> <double 0x3F0232B284CD0000, double poison>, double %45, i64 1
%47 = insertelement <2 x double> <double poison, double 1.000000e+05>, double %13, i64 0
%48 = fdiv <2 x double> %46, %47
%49 = extractelement <2 x double> %48, i64 0
%50 = extractelement <2 x double> %48, i64 1
%51 = fsub double %49, %50
%52 = tail call double @llvm.fabs.f64(double %51)
%53 = fdiv double %51, %49
%54 = tail call double @llvm.fabs.f64(double %53)
%55 = fadd double %38, %10
%56 = fmul double %55, 1.000000e+05
%57 = tail call i32 @truncf(double %56)
%58 = sitofp i32 %57 to double
%59 = fdiv double %58, 1.000000e+05
%60 = fsub double 0x40F81CE9D3F8DB48, %59
%61 = tail call double @llvm.fabs.f64(double %60)
%62 = fdiv double %61, 0x40F81CE9D3F8DB48
%63 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([66 x i8], [66 x i8]* @str, i64 0, i64 0))
%64 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.1, i64 0, i64 0), double 0x3FD86186175BBC3E, double %26, double %28, double %29)
%65 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.2, i64 0, i64 0), double 0x400124924A4B155F, double %34, double %36, double %37)
%66 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.3, i64 0, i64 0), double %49, double %50, double %52, double %54)
%67 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.4, i64 0, i64 0), double 0x40F81CE9D3F8DB48, double %59, double %61, double %62)
ret i32 0
}