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:
  %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
  %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
  %v0_16 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_16 = add i32 %v3_f, -32
  %v3_16 = inttoptr i32 %v2_16 to double*
  %v4_16 = load double, double* %v3_16, align 4
  %v5_16 = fpext double %v4_16 to x86_fp80
  %v2_1e = add i32 %v3_f, -16
  %v3_1e = inttoptr i32 %v2_1e to double*
  %v4_1e = load double, double* %v3_1e, align 4
  %v5_1e = fpext double %v4_1e to x86_fp80
  %v3_21 = add i32 %v3_f, -24
  %v4_21 = inttoptr i32 %v3_21 to double*
  %v5_21 = load double, double* %v4_21, align 4
  %v6_21 = fpext double %v5_21 to x86_fp80
  %v7_21 = fmul x86_fp80 %v5_1e, %v6_21
  %v3_29 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_29 = fpext double %v3_29 to x86_fp80
  %v3_2b = fmul x86_fp80 %v4_29, %v4_29
  %v3_2d = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_2d = fpext double %v3_2d to x86_fp80
  %v3_2f = fmul x86_fp80 %v4_2d, %v4_2d
  %v3_31 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_31 = fpext double %v3_31 to x86_fp80
  %v3_33 = fmul x86_fp80 %v4_31, %v4_31
  %v4_35 = fadd x86_fp80 %v3_2f, %v3_33
  %v4_37 = fadd x86_fp80 %v3_2b, %v4_35
  %v7_42 = fmul x86_fp80 %v3_2b, %v5_16
  %v11_45 = fadd x86_fp80 %v7_42, %v4_37
  %v2_48 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v11_45)
  %v4_4a = fptrunc x86_fp80 %v2_48 to double
  %v7_51 = fmul x86_fp80 %v3_2f, %v5_16
  %v11_54 = fadd x86_fp80 %v7_51, %v4_37
  %v2_57 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v11_54)
  %v4_59 = fptrunc x86_fp80 %v2_57 to double
  %v7_60 = fmul x86_fp80 %v3_33, %v5_16
  %v11_63 = fadd x86_fp80 %v7_60, %v4_37
  %v2_66 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v11_63)
  %v4_68 = fptrunc x86_fp80 %v2_66 to double
  %v6_70 = add i3 %v0_16, 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 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_70, i3* %fpu_stat_TOP.global-to-local, align 1
  %tmp259 = call double @llvm.fabs.f64(double %v4_4a)
  %v2_73 = fpext double %tmp259 to x86_fp80
  store x86_fp80 %v2_73, x86_fp80* %st5.global-to-local, align 4
  %v1_75 = call i32 @__asm_fyl2x(i32 %v0_b)
  store i32 %v1_75, i32* @eax, align 8
  %v0_77 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st4.global-to-local, align 4
  %v3_79 = add i3 %v0_77, 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_79, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v2_73, x86_fp80* %st3.global-to-local, align 4
  %v0_7b = call i32 @__asm_fprem()
  store i32 %v0_7b, i32* @eax, align 8
  %v0_7d = call i32 @__asm_f2xm1()
  store i32 %v0_7d, i32* @eax, align 8
  %v0_7f = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_7f = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  %v4_7f = fadd x86_fp80 %v3_7f, %v2_73
  store x86_fp80 %v4_7f, x86_fp80* %st4.global-to-local, align 4
  %v7_7f = add i3 %v0_7f, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v7_7f, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_81 = call i32 @__asm_fscale()
  store i32 %v0_81, i32* @eax, align 8
  %v3_83 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  store x86_fp80 %v4_7f, x86_fp80* %st5.global-to-local, align 4
  %v0_85 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v3_83, x86_fp80* %st4.global-to-local, align 4
  %v1_8c = load i32, i32* %edi.global-to-local, align 4
  %v2_8c = add i32 %v1_8c, -16
  %v3_8c = inttoptr i32 %v2_8c to double*
  %v4_8c = load double, double* %v3_8c, align 4
  %v5_8c = fpext double %v4_8c to x86_fp80
  store x86_fp80 %v5_8c, x86_fp80* %st5.global-to-local, align 4
  %v6_8f = add i3 %v0_85, 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_8f, i3* %fpu_stat_TOP.global-to-local, align 1
  %tmp260 = call double @llvm.fabs.f64(double %v4_59)
  %v2_92 = fpext double %tmp260 to x86_fp80
  store x86_fp80 %v2_92, x86_fp80* %st4.global-to-local, align 4
  %tmp265 = fptrunc x86_fp80 %v4_7f to float
  %v2_94 = bitcast float %tmp265 to i32
  %v3_94 = call i32 @__asm_fyl2x(i32 %v2_94)
  store i32 %v3_94, i32* @eax, align 8
  %v0_96 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st3.global-to-local, align 4
  %v2_98 = load x86_fp80, x86_fp80* %st4.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
  store x86_fp80 %v2_98, x86_fp80* %st2.global-to-local, align 4
  %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* %st3.global-to-local, align 4
  %v4_9e = fadd x86_fp80 %v2_98, %v3_9e
  store x86_fp80 %v4_9e, x86_fp80* %st3.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* %st4.global-to-local, align 4
  store x86_fp80 %v4_9e, x86_fp80* %st4.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* %st3.global-to-local, align 4
  %v1_ab = load i32, i32* %edi.global-to-local, align 4
  %v2_ab = add i32 %v1_ab, -16
  %v3_ab = inttoptr i32 %v2_ab to double*
  %v4_ab = load double, double* %v3_ab, align 4
  %v5_ab = fpext double %v4_ab to x86_fp80
  store x86_fp80 %v5_ab, x86_fp80* %st4.global-to-local, align 4
  %v6_ae = add i3 %v0_a4, 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_ae, i3* %fpu_stat_TOP.global-to-local, align 1
  %tmp261 = call double @llvm.fabs.f64(double %v4_68)
  %v2_b1 = fpext double %tmp261 to x86_fp80
  store x86_fp80 %v2_b1, x86_fp80* %st3.global-to-local, align 4
  %tmp266 = fptrunc x86_fp80 %v4_9e to float
  %v2_b3 = bitcast float %tmp266 to i32
  %v3_b3 = call i32 @__asm_fyl2x(i32 %v2_b3)
  store i32 %v3_b3, i32* @eax, align 8
  %v0_b5 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st2.global-to-local, align 4
  %v2_b7 = load x86_fp80, x86_fp80* %st3.global-to-local, align 4
  %v3_b7 = add i3 %v0_b5, 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_b7, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_b9 = call i32 @__asm_fprem()
  store i32 %v0_b9, i32* @eax, align 8
  %v0_bb = call i32 @__asm_f2xm1()
  store i32 %v0_bb, i32* @eax, align 8
  %v0_bd = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_bd = load x86_fp80, x86_fp80* %st2.global-to-local, align 4
  %v4_bd = fadd x86_fp80 %v2_b7, %v3_bd
  store x86_fp80 %v4_bd, x86_fp80* %st2.global-to-local, align 4
  %v7_bd = add i3 %v0_bd, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v7_bd, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_bf = call i32 @__asm_fscale()
  store i32 %v0_bf, i32* @eax, align 8
  %v0_c3 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_cf = load double, double* bitcast (i32* @eax to double*), align 8
  %tmp262 = call double @llvm.fabs.f64(double %v3_cf)
  %v2_d1 = fpext double %tmp262 to x86_fp80
  %v7_d3 = fmul x86_fp80 %v7_21, %v2_d1
  %v2_d6 = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  %v3_d6 = add i3 %v0_c3, 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 %v3_d6, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_d3, x86_fp80* %st2.global-to-local, align 4
  store x86_fp80 %v2_d6, x86_fp80* %st3.global-to-local, align 4
  %v2_da = call i32 @__asm_fpatan(x86_fp80 %v4_bd)
  store i32 %v2_da, i32* @eax, align 8
  %v0_dc = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_e1 = load double, double* bitcast (i32* @edx to double*), align 8
  %tmp263 = call double @llvm.fabs.f64(double %v3_e1)
  %v2_e3 = fpext double %tmp263 to x86_fp80
  %v7_e5 = fmul x86_fp80 %v7_21, %v2_e3
  %v2_e8 = load x86_fp80, x86_fp80* %st3.global-to-local, align 4
  %v3_e8 = sub i3 %v0_dc, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v3_e8, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v2_e8, x86_fp80* %st2.global-to-local, align 4
  %v2_ec = call i32 @__asm_fpatan(x86_fp80 %v7_d3)
  store i32 %v2_ec, i32* @eax, align 8
  %v0_ee = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_f3 = load double, double* bitcast (i32* @ecx to double*), align 8
  %tmp264 = call double @llvm.fabs.f64(double %v3_f3)
  %v2_f5 = fpext double %tmp264 to x86_fp80
  %v7_f7 = fmul x86_fp80 %v7_21, %v2_f5
  %v3_fa = sub i3 %v0_ee, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v3_fa, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_fe = call i32 @__asm_fpatan(x86_fp80 %v7_e5)
  store i32 %v2_fe, i32* @eax, align 8
  %v2_108 = load i32, i32* %edi.global-to-local, align 4
  %v3_108 = add i32 %v2_108, -16
  %v4_108 = inttoptr i32 %v3_108 to double*
  %v3_10b = add i32 %v2_108, -40
  %v4_10b = inttoptr i32 %v3_10b to double*
  %v0_113 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_113 = load i32, i32* %esi.global-to-local, align 4
  %v2_113 = add i32 %v1_113, 24
  %v3_113 = inttoptr i32 %v2_113 to double*
  %v4_113 = load double, double* %v3_113, align 4
  %v5_113 = fpext double %v4_113 to x86_fp80
  %v5_116 = load double, double* %v4_10b, align 4
  %v6_116 = fpext double %v5_116 to x86_fp80
  %v7_116 = fmul x86_fp80 %v5_113, %v6_116
  %v4_119 = fadd x86_fp80 %v7_116, %v7_116
  %v2_11d = load i32, i32* %ebx.global-to-local, align 4
  %v3_11d = fptrunc x86_fp80 %v4_119 to double
  %v4_11d = inttoptr i32 %v2_11d to double*
  store double %v3_11d, double* %v4_11d, align 4
  %v5_125 = load double, double* %v4_108, align 4
  %v6_125 = fpext double %v5_125 to x86_fp80
  %v7_125 = fmul x86_fp80 %v7_e5, %v6_125
  %v5_128 = load double, double* %v4_10b, align 4
  %v6_128 = fpext double %v5_128 to x86_fp80
  %v7_128 = fadd x86_fp80 %v7_125, %v6_128
  %v2_12b = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_128)
  %v3_12b = fcmp olt x86_fp80 %v2_12b, 0xK403E8000000000000000
  %v4_12b = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_128)
  %storemerge2 = select i1 %v3_12b, x86_fp80 %v4_12b, x86_fp80 %v7_128
  %v7_12d = fmul x86_fp80 %storemerge2, %v4_9e
  %v2_130 = add i32 %v1_113, 32
  %v3_130 = inttoptr i32 %v2_130 to double*
  %v4_130 = load double, double* %v3_130, align 4
  %v5_130 = fpext double %v4_130 to x86_fp80
  %v3_133 = add i32 %v2_108, -48
  %v4_133 = inttoptr i32 %v3_133 to double*
  %v5_133 = load double, double* %v4_133, align 4
  %v6_133 = fpext double %v5_133 to x86_fp80
  %v7_133 = fmul x86_fp80 %v5_130, %v6_133
  %v4_136 = fadd x86_fp80 %v7_133, %v7_12d
  %v2_13a = load i32, i32* @edx, align 8
  %v3_13a = fptrunc x86_fp80 %v4_136 to double
  %v4_13a = inttoptr i32 %v2_13a to double*
  store double %v3_13a, double* %v4_13a, align 4
  %v5_142 = load double, double* %v4_108, align 4
  %v6_142 = fpext double %v5_142 to x86_fp80
  %v7_142 = fmul x86_fp80 %v7_f7, %v6_142
  %v5_145 = load double, double* %v4_10b, align 4
  %v6_145 = fpext double %v5_145 to x86_fp80
  %v7_145 = fadd x86_fp80 %v7_142, %v6_145
  %v2_148 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_145)
  %v3_148 = fcmp olt x86_fp80 %v2_148, 0xK403E8000000000000000
  %v4_148 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_145)
  %storemerge = select i1 %v3_148, x86_fp80 %v4_148, x86_fp80 %v7_145
  %v7_14a = fmul x86_fp80 %storemerge, %v4_bd
  %v2_14d = add i32 %v1_113, 40
  %v3_14d = inttoptr i32 %v2_14d to double*
  %v4_14d = load double, double* %v3_14d, align 4
  %v5_14d = fpext double %v4_14d to x86_fp80
  %v3_150 = add i32 %v2_108, -56
  %v4_150 = inttoptr i32 %v3_150 to double*
  %v5_150 = load double, double* %v4_150, align 4
  %v6_150 = fpext double %v5_150 to x86_fp80
  %v7_150 = fmul x86_fp80 %v5_14d, %v6_150
  %v4_153 = fadd x86_fp80 %v7_150, %v7_14a
  %v2_157 = load i32, i32* @ecx, align 8
  %v3_157 = fptrunc x86_fp80 %v4_153 to double
  %v4_157 = inttoptr i32 %v2_157 to double*
  store double %v3_157, double* %v4_157, align 4
  %v4_15d = add i3 %v0_113, add (i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 ptrtoint (i8* @global_var_1.1 to i3)), 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 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))), 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 %v4_15d, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_11d, 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
  ret i32 %v2_11d
}

; Function Attrs: nounwind readnone speculatable
declare x86_fp80 @llvm.sqrt.f80(x86_fp80) #0

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

declare i32 @__asm_fyl2x(i32) local_unnamed_addr

declare i32 @__asm_fprem() local_unnamed_addr

declare i32 @__asm_f2xm1() local_unnamed_addr

declare i32 @__asm_fscale() local_unnamed_addr

declare i32 @__asm_fpatan(x86_fp80) local_unnamed_addr

; Function Attrs: nounwind readnone speculatable
declare x86_fp80 @llvm.cos.f80(x86_fp80) #0

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

attributes #0 = { nounwind readnone speculatable }
