source_filename = "test"
target datalayout = "e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"

@eax = internal unnamed_addr global i32 0, align 8
@ecx = internal unnamed_addr global i32 0, align 8
@edx = internal unnamed_addr global i32 0, align 8
@global_var_1.1 = constant i8 -117

define i32 @function_0(i32 %arg1) local_unnamed_addr {
dec_label_pc_0:
  %ebp.global-to-local = alloca i32, align 4
  %ebx.global-to-local = alloca i32, align 4
  %edi.global-to-local = alloca i32, align 4
  %esi.global-to-local = alloca i32, align 4
  %fpu_stat_TOP.global-to-local = alloca i3, align 1
  %st2.global-to-local = alloca x86_fp80, align 4
  %st3.global-to-local = alloca x86_fp80, align 4
  %st4.global-to-local = alloca x86_fp80, align 4
  %st5.global-to-local = alloca x86_fp80, align 4
  %st6.global-to-local = alloca x86_fp80, align 4
  %st7.global-to-local = alloca x86_fp80, align 4
  %stack_var_-4 = alloca i32, align 4
  %v0_0 = load i32, i32* %ebp.global-to-local, align 4
  store i32 %v0_0, i32* %stack_var_-4, align 4
  %v4_0 = ptrtoint i32* %stack_var_-4 to i32
  store i32 %v4_0, i32* %ebp.global-to-local, align 4
  %v0_9 = load i32, i32* %ebx.global-to-local, align 4
  %v0_a = load i32, i32* %esi.global-to-local, align 4
  %v0_b = load i32, i32* %edi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v1_f = add i32 %arg1, 48
  %v2_f = inttoptr i32 %v1_f to i32*
  %v3_f = load i32, i32* %v2_f, align 4
  store i32 %v3_f, i32* %edi.global-to-local, align 4
  %v0_12 = load i32, i32* @eax, align 8
  store i32 %v0_12, i32* %ebx.global-to-local, align 4
  %v1_16 = add i32 %v3_f, -12
  %v2_16 = inttoptr i32 %v1_16 to i32*
  %v3_16 = load i32, i32* %v2_16, align 4
  %v10_16 = icmp eq i32 %v3_16, 0
  %v0_b9 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v10_16, label %dec_label_pc_b9, label %dec_label_pc_20

dec_label_pc_20:                                  ; preds = %dec_label_pc_0
  %v2_20 = add i32 %v3_f, -20
  %v3_20 = inttoptr i32 %v2_20 to double*
  %v4_20 = load double, double* %v3_20, align 4
  %v5_20 = fpext double %v4_20 to x86_fp80
  store x86_fp80 %v5_20, x86_fp80* %st7.global-to-local, align 4
  %v3_23 = load double, double* bitcast (i32* @eax to double*), align 8
  %v5_23 = add i3 %v0_b9, add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)))
  store i3 %v5_23, i3* %fpu_stat_TOP.global-to-local, align 1
  %tmp246 = call double @llvm.fabs.f64(double %v3_23)
  %v2_25 = fpext double %tmp246 to x86_fp80
  store x86_fp80 %v2_25, x86_fp80* %st6.global-to-local, align 4
  %v0_27 = call i32 @__asm_fyl2x()
  store i32 %v0_27, i32* @eax, align 8
  %v0_29 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st5.global-to-local, align 4
  %v3_2b = add i3 %v0_29, add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)))
  store i3 %v3_2b, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v2_25, x86_fp80* %st4.global-to-local, align 4
  %v0_2d = call i32 @__asm_fprem()
  store i32 %v0_2d, i32* @eax, align 8
  %v0_2f = call i32 @__asm_f2xm1()
  store i32 %v0_2f, i32* @eax, align 8
  %v0_31 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_31 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v4_31 = fadd x86_fp80 %v3_31, %v2_25
  store x86_fp80 %v4_31, x86_fp80* %st5.global-to-local, align 4
  %v7_31 = add i3 %v0_31, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v7_31, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_33 = call i32 @__asm_fscale()
  store i32 %v0_33, i32* @eax, align 8
  %v3_35 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_31, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v3_35, x86_fp80* %st5.global-to-local, align 4
  %v2_39 = load i32, i32* %edi.global-to-local, align 4
  %v3_39 = add i32 %v2_39, -28
  %v4_39 = inttoptr i32 %v3_39 to double*
  %v5_39 = load double, double* %v4_39, align 4
  %v6_39 = fpext double %v5_39 to x86_fp80
  %v7_39 = fmul x86_fp80 %v4_31, %v6_39
  store x86_fp80 %v7_39, x86_fp80* %st6.global-to-local, align 4
  %v2_3f = add i32 %v2_39, -20
  %v3_3f = inttoptr i32 %v2_3f to double*
  %v4_3f = load double, double* %v3_3f, align 4
  %v5_3f = fpext double %v4_3f to x86_fp80
  store x86_fp80 %v5_3f, x86_fp80* %st6.global-to-local, align 4
  %v3_42 = load double, double* bitcast (i32* @edx to double*), align 8
  %tmp248 = call double @llvm.fabs.f64(double %v3_42)
  %v2_44 = fpext double %tmp248 to x86_fp80
  store x86_fp80 %v2_44, x86_fp80* %st5.global-to-local, align 4
  %v0_46 = call i32 @__asm_fyl2x()
  store i32 %v0_46, i32* @eax, align 8
  %v0_48 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st4.global-to-local, align 4
  %v3_4a = add i3 %v0_48, add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)))
  store i3 %v3_4a, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v2_44, x86_fp80* %st3.global-to-local, align 4
  %v0_4c = call i32 @__asm_fprem()
  store i32 %v0_4c, i32* @eax, align 8
  %v0_4e = call i32 @__asm_f2xm1()
  store i32 %v0_4e, i32* @eax, align 8
  %v0_50 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_50 = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  %v4_50 = fadd x86_fp80 %v3_50, %v2_44
  store x86_fp80 %v4_50, x86_fp80* %st4.global-to-local, align 4
  %v7_50 = add i3 %v0_50, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v7_50, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_52 = call i32 @__asm_fscale()
  store i32 %v0_52, i32* @eax, align 8
  %v3_54 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  store x86_fp80 %v4_50, x86_fp80* %st5.global-to-local, align 4
  store x86_fp80 %v3_54, x86_fp80* %st4.global-to-local, align 4
  %v2_58 = load i32, i32* %edi.global-to-local, align 4
  %v3_58 = add i32 %v2_58, -36
  %v4_58 = inttoptr i32 %v3_58 to double*
  %v5_58 = load double, double* %v4_58, align 4
  %v6_58 = fpext double %v5_58 to x86_fp80
  %v7_58 = fmul x86_fp80 %v4_50, %v6_58
  %v11_5b = fadd x86_fp80 %v7_58, %v7_39
  store x86_fp80 %v11_5b, x86_fp80* %st5.global-to-local, align 4
  %v2_61 = add i32 %v2_58, -20
  %v3_61 = inttoptr i32 %v2_61 to double*
  %v4_61 = load double, double* %v3_61, align 4
  %v5_61 = fpext double %v4_61 to x86_fp80
  store x86_fp80 %v5_61, x86_fp80* %st5.global-to-local, align 4
  %v3_64 = load double, double* bitcast (i32* @ecx to double*), align 8
  %tmp250 = call double @llvm.fabs.f64(double %v3_64)
  %v2_66 = fpext double %tmp250 to x86_fp80
  store x86_fp80 %v2_66, x86_fp80* %st4.global-to-local, align 4
  %v0_68 = call i32 @__asm_fyl2x()
  store i32 %v0_68, i32* @eax, align 8
  %v0_6a = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st3.global-to-local, align 4
  %v3_6c = add i3 %v0_6a, add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)))
  store i3 %v3_6c, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v2_66, x86_fp80* %st2.global-to-local, align 4
  %v0_6e = call i32 @__asm_fprem()
  store i32 %v0_6e, i32* @eax, align 8
  %v0_70 = call i32 @__asm_f2xm1()
  store i32 %v0_70, i32* @eax, align 8
  %v0_72 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_72 = load x86_fp80, x86_fp80* %st3.global-to-local, align 4
  %v4_72 = fadd x86_fp80 %v3_72, %v2_66
  store x86_fp80 %v4_72, x86_fp80* %st3.global-to-local, align 4
  %v7_72 = add i3 %v0_72, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v7_72, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_74 = call i32 @__asm_fscale()
  store i32 %v0_74, i32* @eax, align 8
  %v3_76 = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  store x86_fp80 %v4_72, x86_fp80* %st4.global-to-local, align 4
  store x86_fp80 %v3_76, x86_fp80* %st3.global-to-local, align 4
  %v2_7a = load i32, i32* %edi.global-to-local, align 4
  %v3_7a = add i32 %v2_7a, -44
  %v4_7a = inttoptr i32 %v3_7a to double*
  %v5_7a = load double, double* %v4_7a, align 4
  %v6_7a = fpext double %v5_7a to x86_fp80
  %v7_7a = fmul x86_fp80 %v4_72, %v6_7a
  %v11_7d = fadd x86_fp80 %v7_7a, %v11_5b
  store x86_fp80 %v11_7d, x86_fp80* %st4.global-to-local, align 4
  %v2_80 = add i32 %v2_7a, -28
  %v3_80 = inttoptr i32 %v2_80 to double*
  %v4_80 = load double, double* %v3_80, align 4
  %v5_80 = fpext double %v4_80 to x86_fp80
  store x86_fp80 %v5_80, x86_fp80* %st3.global-to-local, align 4
  %v3_83 = add i32 %v2_7a, -36
  %v4_83 = inttoptr i32 %v3_83 to double*
  %v5_83 = load double, double* %v4_83, align 4
  %v6_83 = fpext double %v5_83 to x86_fp80
  %v7_83 = fadd x86_fp80 %v5_80, %v6_83
  store x86_fp80 %v7_83, x86_fp80* %st3.global-to-local, align 4
  %v5_86 = load double, double* %v4_7a, align 4
  %v6_86 = fpext double %v5_86 to x86_fp80
  %v7_86 = fadd x86_fp80 %v7_83, %v6_86
  store x86_fp80 %v7_86, x86_fp80* %st3.global-to-local, align 4
  %v4_89 = fdiv x86_fp80 %v11_7d, %v7_86
  store x86_fp80 %v4_89, x86_fp80* %st4.global-to-local, align 4
  %v2_8b = add i32 %v2_7a, -20
  %v3_8b = inttoptr i32 %v2_8b to double*
  %v4_8b = load double, double* %v3_8b, align 4
  %v5_8b = fpext double %v4_8b to x86_fp80
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st2.global-to-local, align 4
  store x86_fp80 %v4_89, x86_fp80* %st3.global-to-local, align 4
  store x86_fp80 %v5_8b, x86_fp80* %st4.global-to-local, align 4
  %v0_94 = call i32 @__asm_fyl2x()
  store i32 %v0_94, i32* @eax, align 8
  %v0_96 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st2.global-to-local, align 4
  %v3_98 = add i3 %v0_96, add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)))
  store i3 %v3_98, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_9a = call i32 @__asm_fprem()
  store i32 %v0_9a, i32* @eax, align 8
  %v0_9c = call i32 @__asm_f2xm1()
  store i32 %v0_9c, i32* @eax, align 8
  %v0_9e = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_9e = load x86_fp80, x86_fp80* %st2.global-to-local, align 4
  %v4_9e = fadd x86_fp80 %v4_89, %v3_9e
  store x86_fp80 %v4_9e, x86_fp80* %st2.global-to-local, align 4
  %v7_9e = add i3 %v0_9e, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v7_9e, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_a0 = call i32 @__asm_fscale()
  store i32 %v0_a0, i32* @eax, align 8
  %v3_a2 = load x86_fp80, x86_fp80* %st3.global-to-local, align 4
  store x86_fp80 %v4_9e, x86_fp80* %st3.global-to-local, align 4
  %v0_a4 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v3_a2, x86_fp80* %st2.global-to-local, align 4
  %v1_a6.pre = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_a6.pre = load i32, i32* @ecx, align 8
  %v2_a9.pre = load i32, i32* %esi.global-to-local, align 4
  %v0_ae.pre = load i32, i32* %ebx.global-to-local, align 4
  %v2_b5.pre = load i32, i32* %stack_var_-4, align 4
  br label %dec_label_pc_a6

dec_label_pc_a6:                                  ; preds = %dec_label_pc_b9, %dec_label_pc_20
  %v2_b5 = phi i32 [ %v0_0, %dec_label_pc_b9 ], [ %v2_b5.pre, %dec_label_pc_20 ]
  %v0_ae = phi i32 [ %v0_12, %dec_label_pc_b9 ], [ %v0_ae.pre, %dec_label_pc_20 ]
  %v2_a9 = phi i32 [ %arg1, %dec_label_pc_b9 ], [ %v2_a9.pre, %dec_label_pc_20 ]
  %v2_a6 = phi i32 [ %tmp252, %dec_label_pc_b9 ], [ %v2_a6.pre, %dec_label_pc_20 ]
  %v1_a6 = phi x86_fp80 [ %v4_d5, %dec_label_pc_b9 ], [ %v1_a6.pre, %dec_label_pc_20 ]
  %storemerge.in = phi i3 [ %v6_cc, %dec_label_pc_b9 ], [ %v0_a4, %dec_label_pc_20 ]
  %v3_a6 = add i32 %v2_a6, 8
  %v4_a6 = fptrunc x86_fp80 %v1_a6 to double
  %v5_a6 = inttoptr i32 %v3_a6 to double*
  store double %v4_a6, double* %v5_a6, align 4
  %v1_a9 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_a9 = add i32 %v2_a9, -56
  %v4_a9 = fptrunc x86_fp80 %v1_a9 to double
  %v5_a9 = inttoptr i32 %v3_a9 to double*
  store double %v4_a9, double* %v5_a9, align 4
  %v6_a9 = add i3 %storemerge.in, add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 1)
  store i3 %v6_a9, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_ae, i32* @eax, align 8
  store i32 %v0_b, i32* %edi.global-to-local, align 4
  store i32 %v0_a, i32* %esi.global-to-local, align 4
  store i32 %v0_9, i32* %ebx.global-to-local, align 4
  store i32 %v2_b5, i32* %ebp.global-to-local, align 4
  ret i32 %v0_ae

dec_label_pc_b9:                                  ; preds = %dec_label_pc_0
  %v3_b9 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_b9 = fpext double %v3_b9 to x86_fp80
  store x86_fp80 %v4_b9, x86_fp80* %st7.global-to-local, align 4
  %v3_bb = add i32 %v3_f, -28
  %v4_bb = inttoptr i32 %v3_bb to double*
  %v5_bb = load double, double* %v4_bb, align 4
  %v6_bb = fpext double %v5_bb to x86_fp80
  %v7_bb = fmul x86_fp80 %v4_b9, %v6_bb
  store x86_fp80 %v7_bb, x86_fp80* %st7.global-to-local, align 4
  %v3_be = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_be = fpext double %v3_be to x86_fp80
  store x86_fp80 %v4_be, x86_fp80* %st6.global-to-local, align 4
  %v3_c0 = add i32 %v3_f, -36
  %v4_c0 = inttoptr i32 %v3_c0 to double*
  %v5_c0 = load double, double* %v4_c0, align 4
  %v6_c0 = fpext double %v5_c0 to x86_fp80
  %v7_c0 = fmul x86_fp80 %v4_be, %v6_c0
  store x86_fp80 %v7_c0, x86_fp80* %st6.global-to-local, align 4
  %v3_c3 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_c3 = fpext double %v3_c3 to x86_fp80
  store x86_fp80 %v4_c3, x86_fp80* %st5.global-to-local, align 4
  %v3_c5 = add i32 %v3_f, -44
  %v4_c5 = inttoptr i32 %v3_c5 to double*
  %v5_c5 = load double, double* %v4_c5, align 4
  %v6_c5 = fpext double %v5_c5 to x86_fp80
  %v7_c5 = fmul x86_fp80 %v4_c3, %v6_c5
  store x86_fp80 %v7_c5, x86_fp80* %st5.global-to-local, align 4
  %v4_c8 = fadd x86_fp80 %v7_c0, %v7_c5
  store x86_fp80 %v4_c8, x86_fp80* %st6.global-to-local, align 4
  %v4_ca = fadd x86_fp80 %v7_bb, %v4_c8
  store x86_fp80 %v4_ca, x86_fp80* %st7.global-to-local, align 4
  %v4_cc = load double, double* %v4_bb, align 4
  %v5_cc = fpext double %v4_cc to x86_fp80
  %v6_cc = add i3 %v0_b9, add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 ptrtoint (i8* @global_var_1.1 to i3))))))
  store i3 %v6_cc, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_cc, x86_fp80* %st6.global-to-local, align 4
  %v5_cf = load double, double* %v4_c0, align 4
  %v6_cf = fpext double %v5_cf to x86_fp80
  %v7_cf = fadd x86_fp80 %v5_cc, %v6_cf
  store x86_fp80 %v7_cf, x86_fp80* %st6.global-to-local, align 4
  %v5_d2 = load double, double* %v4_c5, align 4
  %v6_d2 = fpext double %v5_d2 to x86_fp80
  %v7_d2 = fadd x86_fp80 %v7_cf, %v6_d2
  store x86_fp80 %v7_d2, x86_fp80* %st6.global-to-local, align 4
  %v4_d5 = fdiv x86_fp80 %v4_ca, %v7_d2
  store x86_fp80 %v4_d5, x86_fp80* %st7.global-to-local, align 4
  %tmp251 = bitcast double %v3_c3 to i64
  %tmp252 = trunc i64 %tmp251 to i32
  br label %dec_label_pc_a6
}

declare i32 @__asm_fyl2x() local_unnamed_addr

declare i32 @__asm_fprem() local_unnamed_addr

declare i32 @__asm_f2xm1() local_unnamed_addr

declare i32 @__asm_fscale() local_unnamed_addr

; Function Attrs: nounwind readnone speculatable
declare double @llvm.fabs.f64(double) #0

attributes #0 = { nounwind readnone speculatable }
