#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.714251;
  double u_5 = truncf(u_8 * 1e5) / 1e5;
  double v_8 = 98765.9;
  double v_5 = truncf(v_8 * 1e5) / 1e5;
  double w_8 = .111111e-4;
  double w_5 = truncf(w_8 * 1e5) / 1e5;
  double res1_a = x_8 - y_8;
  double res1_b = truncf((x_5 - y_5) * 1e5) / 1e5;
  double res1_c = fabs(res1_a - res1_b);
  double res1_d = fabs(res1_c) / fabs(res1_a);
  double res2_a = x_8 / y_8;
  double res2_b = truncf((x_5 / y_5) * 1e5) / 1e5;
  double res2_c = fabs(res2_a - res2_b);
  double res2_d = fabs(res2_c) / fabs(res2_a);
  double res3_a = (x_8 - u_8) / w_8;
  double res3_b = truncf(((x_5 - u_5) / w_5) * 1e5) / 1e5;
  double res3_c = fabs(res3_a - res3_b);
  double res3_d = fabs(res3_c) / fabs(res3_a);
  double res4_a = u_8 + v_8;
  double res4_b = truncf((u_5 + v_5) * 1e5) / 1e5;
  double res4_c = fabs(res4_a - res4_b);
  double res4_d = fabs(res4_c) / fabs(res4_a);
  printf("operacion \t valor a 8 \t\t aritmetica \t error abs \t error r \n");
  printf("      X-Y \t %4.8f \t\t %1.5f \t %1.8f \t %1.8f \n", res1_a, res1_b,
         res1_c, res1_d);
  printf("      X/Y \t %4.8f \t\t %1.5f \t %1.8f \t %1.8f \n", res2_a, res2_b,
         res2_c, res2_d);
  printf("  (X-U)/W \t %4.8f \t\t %1.5f \t %1.8f \t %1.8f \n", res3_a, res3_b,
         res3_c, res3_d);
  printf("    (U+V) \t %5.8f \t %1.5f \t %1.8f \t %1.8f \n", res4_a, res4_b,
         res4_c, res4_d);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xd0,%rsp
movsd  0xf05(%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  0xec9(%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  0xe8d(%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  0xe51(%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  0xe15(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0xe00(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xdea(%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  0xdc0(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xdab(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x58(%rbp),%xmm0
subsd  -0x60(%rbp),%xmm0
movaps 0xd81(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movaps 0xd6c(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0x58(%rbp),%xmm1
movaps 0xd5c(%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  0xd3e(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xd29(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x78(%rbp),%xmm0
subsd  -0x80(%rbp),%xmm0
movaps 0xcff(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movaps 0xce4(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0x78(%rbp),%xmm1
movaps 0xcd4(%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  0xca6(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xc91(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
subsd  -0xa0(%rbp),%xmm0
ff
movaps 0xc5e(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movaps 0xc43(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0x98(%rbp),%xmm1
ff
movaps 0xc30(%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  0xc0c(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1040 <truncf@plt>
cvtsi2sd %eax,%xmm0
movsd  0xbf7(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
subsd  -0xc0(%rbp),%xmm0
ff
movaps 0xbc4(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movaps 0xba9(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0xb8(%rbp),%xmm1
ff
movaps 0xb96(%rip),%xmm2
pand   %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
lea    0xbbf(%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    0xbd9(%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    0xbde(%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    0xbdd(%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    $0xc0,%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,0x30(%rsp)
movsd  0xe7e(%rip),%xmm0
call   1050 <truncf@plt>
movd   %ebx,%xmm0
movd   %eax,%xmm1
punpckldq %xmm1,%xmm0
cvtdq2pd %xmm0,%xmm0
divpd  0xe89(%rip),%xmm0
movapd %xmm0,0x10(%rsp)
movapd (%rsp),%xmm0
movapd %xmm0,%xmm1
unpckhpd %xmm0,%xmm1
movapd %xmm1,0x20(%rsp)
subsd  %xmm1,%xmm0
mulsd  0xe34(%rip),%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0xe20(%rip),%xmm3
divsd  %xmm3,%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0xe1e(%rip),%xmm2
movapd %xmm2,%xmm1
subsd  %xmm0,%xmm1
andpd  0xe3e(%rip),%xmm1
movapd %xmm1,0xa0(%rsp)
movapd %xmm1,%xmm0
divsd  %xmm2,%xmm0
movapd %xmm0,0xb0(%rsp)
movapd (%rsp),%xmm0
divsd  0x20(%rsp),%xmm0
mulsd  %xmm3,%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0xdc1(%rip),%xmm3
divsd  %xmm3,%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0xdc7(%rip),%xmm2
movapd %xmm2,%xmm1
subsd  %xmm0,%xmm1
andpd  0xddf(%rip),%xmm1
movapd %xmm1,0x80(%rsp)
movapd %xmm1,%xmm0
divsd  %xmm2,%xmm0
movapd %xmm0,0x90(%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  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
movsd  0xd52(%rip),%xmm4
divsd  %xmm4,%xmm1
movsd  %xmm1,(%rsp)
movsd  0xd61(%rip),%xmm3
movapd %xmm3,%xmm2
subsd  %xmm1,%xmm2
andpd  0xd71(%rip),%xmm2
movapd %xmm2,0x60(%rsp)
movapd %xmm2,%xmm1
divsd  %xmm3,%xmm1
movapd %xmm1,0x70(%rsp)
movapd 0x10(%rsp),%xmm0
addsd  0x30(%rsp),%xmm0
mulsd  %xmm4,%xmm0
call   1050 <truncf@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
divsd  0xcf9(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xd13(%rip),%xmm2
movapd %xmm2,%xmm1
subsd  %xmm0,%xmm1
andpd  0xd1b(%rip),%xmm1
movapd %xmm1,0x50(%rsp)
movapd %xmm1,%xmm0
divsd  %xmm2,%xmm0
movapd %xmm0,0x30(%rsp)
lea    0xdc3(%rip),%rdi
call   1030 <puts@plt>
lea    0xd04(%rip),%rdi
movsd  0xcbc(%rip),%xmm0
movsd  0x48(%rsp),%xmm1
movaps 0xa0(%rsp),%xmm2
movaps 0xb0(%rsp),%xmm3
mov    $0x4,%al
call   1040 <printf@plt>
lea    0xd05(%rip),%rdi
movsd  0xc98(%rip),%xmm0
movsd  0x20(%rsp),%xmm1
movaps 0x80(%rsp),%xmm2
movaps 0x90(%rsp),%xmm3
mov    $0x4,%al
call   1040 <printf@plt>
lea    0xd06(%rip),%rdi
movsd  0xc74(%rip),%xmm0
movsd  (%rsp),%xmm1
movaps 0x60(%rsp),%xmm2
movaps 0x70(%rsp),%xmm3
mov    $0x4,%al
call   1040 <printf@plt>
lea    0xd0e(%rip),%rdi
movsd  0xc57(%rip),%xmm0
movsd  0x10(%rsp),%xmm1
movaps 0x50(%rsp),%xmm2
movaps 0x30(%rsp),%xmm3
mov    $0x4,%al
call   1040 <printf@plt>
xor    %eax,%eax
add    $0xc0,%rsp
pop    %rbx
ret

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

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