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
  %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
  %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
  %v3_16 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_16 = fpext double %v3_16 to x86_fp80
  store x86_fp80 %v4_16, x86_fp80* %st7.global-to-local, align 4
  %v3_18 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_18 = fpext double %v3_18 to x86_fp80
  %v5_18 = add i3 %v0_16, 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_18, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_18, x86_fp80* %st6.global-to-local, align 4
  %v3_1a = call i32 @__asm_fpatan(i32 %v0_b, i32 %v0_a, i32 %v0_9)
  store i32 %v3_1a, i32* @eax, align 8
  %v1_1c = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v2_1f = load i32, i32* %edi.global-to-local, align 4
  %v3_1f = add i32 %v2_1f, -16
  %v4_1f = inttoptr i32 %v3_1f to double*
  %v5_1f = load double, double* %v4_1f, align 4
  %v6_1f = fpext double %v5_1f to x86_fp80
  %v7_1f = fmul x86_fp80 %v1_1c, %v6_1f
  store x86_fp80 %v7_1f, x86_fp80* %st6.global-to-local, align 4
  %v2_22 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_1f)
  %v3_22 = fcmp olt x86_fp80 %v2_22, 0xK403E8000000000000000
  %v0_22 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v3_22, label %bb, label %dec_label_pc_0._crit_edge

dec_label_pc_0._crit_edge:                        ; preds = %dec_label_pc_0
  %v1_24.pre = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  br label %bb254

bb:                                               ; preds = %dec_label_pc_0
  %v4_22 = call x86_fp80 @llvm.sin.f80(x86_fp80 %v7_1f)
  store x86_fp80 %v4_22, x86_fp80* %st6.global-to-local, align 4
  %v7_22 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_1f)
  %v8_22 = sub i3 %v0_22, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v8_22, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_22, x86_fp80* %st5.global-to-local, align 4
  br label %bb254

bb254:                                            ; preds = %dec_label_pc_0._crit_edge, %bb
  %v1_27 = phi x86_fp80 [ %v7_1f, %dec_label_pc_0._crit_edge ], [ %v4_22, %bb ]
  %v1_24 = phi x86_fp80 [ %v1_24.pre, %dec_label_pc_0._crit_edge ], [ %v7_22, %bb ]
  %v0_24 = phi i3 [ %v0_22, %dec_label_pc_0._crit_edge ], [ %v8_22, %bb ]
  %v6_2a = add i3 %v0_24, 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_2a, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v1_1c, x86_fp80* %st6.global-to-local, align 4
  %v2_2d = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v1_1c)
  %v3_2d = fcmp olt x86_fp80 %v2_2d, 0xK403E8000000000000000
  br i1 %v3_2d, label %bb255, label %bb256

bb255:                                            ; preds = %bb254
  %v4_2d = call x86_fp80 @llvm.sin.f80(x86_fp80 %v1_1c)
  store x86_fp80 %v4_2d, x86_fp80* %st6.global-to-local, align 4
  %v7_2d = call x86_fp80 @llvm.cos.f80(x86_fp80 %v1_1c)
  %v8_2d = sub i3 %v6_2a, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v8_2d, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_2d, x86_fp80* %st5.global-to-local, align 4
  br label %bb256

bb256:                                            ; preds = %bb254, %bb255
  %v4_2f.pre-phi.in = phi x86_fp80 [ %v1_24, %bb254 ], [ %v7_2d, %bb255 ]
  %v1_32 = phi x86_fp80 [ %v1_1c, %bb254 ], [ %v4_2d, %bb255 ]
  %v0_2f = phi i3 [ %v6_2a, %bb254 ], [ %v8_2d, %bb255 ]
  %v3_35 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_35 = fpext double %v3_35 to x86_fp80
  %v3_37 = fmul x86_fp80 %v4_35, %v4_35
  %v3_39 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_39 = fpext double %v3_39 to x86_fp80
  %v5_39 = add i3 %v0_2f, 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))))
  %v3_3b = fmul x86_fp80 %v4_39, %v4_39
  %v4_3d = fadd x86_fp80 %v3_37, %v3_3b
  %v2_3f = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_3d)
  store x86_fp80 %v2_3f, x86_fp80* %st6.global-to-local, align 4
  %v3_41 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_41 = fpext double %v3_41 to x86_fp80
  store i3 %v5_39, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_41, x86_fp80* %st5.global-to-local, align 4
  %tmp262 = fptrunc x86_fp80 %v1_32 to float
  %v2_43 = bitcast float %tmp262 to i32
  %tmp263 = fptrunc x86_fp80 %v4_2f.pre-phi.in to float
  %v5_43 = bitcast float %tmp263 to i32
  %tmp264 = fptrunc x86_fp80 %v1_27 to float
  %v8_43 = bitcast float %tmp264 to i32
  %v9_43 = call i32 @__asm_fpatan(i32 %v2_43, i32 %v5_43, i32 %v8_43)
  store i32 %v9_43, i32* @eax, align 8
  %v1_45 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v2_45 = load i32, i32* %edi.global-to-local, align 4
  %v3_45 = add i32 %v2_45, -16
  %v4_45 = inttoptr i32 %v3_45 to double*
  %v5_45 = load double, double* %v4_45, align 4
  %v6_45 = fpext double %v5_45 to x86_fp80
  %v7_45 = fmul x86_fp80 %v1_45, %v6_45
  store x86_fp80 %v7_45, x86_fp80* %st5.global-to-local, align 4
  %v2_48 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_45)
  %v3_48 = fcmp olt x86_fp80 %v2_48, 0xK403E8000000000000000
  br i1 %v3_48, label %bb257, label %.dec_label_pc_55_crit_edge

.dec_label_pc_55_crit_edge:                       ; preds = %bb256
  %v1_4a.pre = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  %v0_55.pre = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_55

bb257:                                            ; preds = %bb256
  %v0_48 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_48 = call x86_fp80 @llvm.sin.f80(x86_fp80 %v7_45)
  store x86_fp80 %v4_48, x86_fp80* %st5.global-to-local, align 4
  %v7_48 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_45)
  %v8_48 = sub i3 %v0_48, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v8_48, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v7_48, x86_fp80* %st4.global-to-local, align 4
  br label %dec_label_pc_55

dec_label_pc_55:                                  ; preds = %.dec_label_pc_55_crit_edge, %bb257
  %v0_55 = phi i3 [ %v0_55.pre, %.dec_label_pc_55_crit_edge ], [ %v8_48, %bb257 ]
  %v1_4a = phi x86_fp80 [ %v1_4a.pre, %.dec_label_pc_55_crit_edge ], [ %v7_48, %bb257 ]
  %v3_4a = add i32 %v2_45, -40
  %v4_4a = inttoptr i32 %v3_4a to double*
  %v5_4a = load double, double* %v4_4a, align 4
  %v6_4a = fpext double %v5_4a to x86_fp80
  %v7_4a = fadd x86_fp80 %v1_4a, %v6_4a
  store x86_fp80 %v7_4a, x86_fp80* %st4.global-to-local, align 4
  %v1_55 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_5b = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_5b = fpext double %v3_5b to x86_fp80
  store x86_fp80 %v4_5b, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v4_2f.pre-phi.in, x86_fp80* %st6.global-to-local, align 4
  %v3_60 = add i32 %v2_45, -24
  %v4_60 = inttoptr i32 %v3_60 to double*
  %v5_60 = load double, double* %v4_60, align 4
  %v6_60 = fpext double %v5_60 to x86_fp80
  %v7_60 = fmul x86_fp80 %v4_2f.pre-phi.in, %v6_60
  %v4_65 = fsub x86_fp80 %v4_5b, %v7_60
  %v3_67 = fmul x86_fp80 %v4_65, %v4_65
  store x86_fp80 %v3_67, x86_fp80* %st7.global-to-local, align 4
  %v3_69 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_69 = fpext double %v3_69 to x86_fp80
  store x86_fp80 %v4_69, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v1_32, x86_fp80* %st5.global-to-local, align 4
  %v5_6e = load double, double* %v4_60, align 4
  %v6_6e = fpext double %v5_6e to x86_fp80
  %v7_6e = fmul x86_fp80 %v1_32, %v6_6e
  %v2_71 = fsub x86_fp80 0xK80000000000000000000, %v7_6e
  store x86_fp80 %v2_71, x86_fp80* %st5.global-to-local, align 4
  %v4_73 = fsub x86_fp80 %v4_69, %v7_6e
  %v3_75 = fmul x86_fp80 %v4_73, %v4_73
  %v4_77 = fadd x86_fp80 %v3_67, %v3_75
  %v3_79 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_79 = fpext double %v3_79 to x86_fp80
  %v5_79 = add i3 %v0_55, 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 add (i3 ptrtoint (i8* @global_var_1.1 to i3), 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)))))))
  %v3_7b = fmul x86_fp80 %v4_79, %v4_79
  store x86_fp80 %v3_7b, x86_fp80* %st6.global-to-local, align 4
  %v4_7d = fadd x86_fp80 %v3_7b, %v4_77
  store x86_fp80 %v4_7d, x86_fp80* %st7.global-to-local, align 4
  %tmp258 = bitcast double %v3_69 to i64
  %tmp259 = trunc i64 %tmp258 to i32
  %v3_7f = fptrunc x86_fp80 %v4_7d to double
  %v4_7f = inttoptr i32 %tmp259 to double*
  store double %v3_7f, double* %v4_7f, align 4
  %v4_81 = load double, double* %v4_45, align 4
  %v5_81 = fpext double %v4_81 to x86_fp80
  store i3 %v5_79, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_81, x86_fp80* %st6.global-to-local, align 4
  %v3_84 = inttoptr i32 %v2_45 to double*
  %v4_84 = load double, double* %v3_84, align 4
  %v5_84 = fpext double %v4_84 to x86_fp80
  %v6_84 = fmul x86_fp80 %v5_81, %v5_84
  %v3_86 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v6_84, x86_fp80* %st7.global-to-local, align 4
  %v2_88 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v3_86)
  store x86_fp80 %v2_88, x86_fp80* %st6.global-to-local, align 4
  %v4_8a = call i32 @__asm_fyl2x(x86_fp80 %v1_55, x86_fp80 %v1_55)
  store i32 %v4_8a, i32* @eax, align 8
  %v0_8c = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st5.global-to-local, align 4
  %v2_8e = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_8e = add i3 %v0_8c, 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_8e, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v2_8e, x86_fp80* %st4.global-to-local, align 4
  %v0_90 = call i32 @__asm_fprem()
  store i32 %v0_90, i32* @eax, align 8
  %v0_92 = call i32 @__asm_f2xm1()
  store i32 %v0_92, i32* @eax, align 8
  %v3_94 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v4_94 = fadd x86_fp80 %v2_8e, %v3_94
  store x86_fp80 %v4_94, x86_fp80* %st5.global-to-local, align 4
  %v7_94 = add i3 %v0_8c, add (i3 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))), i3 ptrtoint (i8* @global_var_1.1 to i3))
  store i3 %v7_94, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_96 = call i32 @__asm_fscale()
  store i32 %v0_96, i32* @eax, align 8
  %v3_98 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_94, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v3_98, x86_fp80* %st5.global-to-local, align 4
  %v2_9c = load i32, i32* %ebx.global-to-local, align 4
  %v3_9c = fptrunc x86_fp80 %v4_94 to double
  %v4_9c = inttoptr i32 %v2_9c to double*
  store double %v3_9c, double* %v4_9c, align 4
  %v1_9e = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v2_9e = load i32, i32* @ecx, align 8
  %v3_9e = fptrunc x86_fp80 %v1_9e to double
  %v4_9e = inttoptr i32 %v2_9e to double*
  store double %v3_9e, double* %v4_9e, align 4
  %v1_a0 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v7_a0 = fmul x86_fp80 %v1_a0, %v1_55
  %v7_a3 = fmul x86_fp80 %v7_a0, %v1_24
  store x86_fp80 %v7_a3, x86_fp80* %st6.global-to-local, align 4
  %v2_a6 = load i32, i32* %esi.global-to-local, align 4
  %v3_a6 = add i32 %v2_a6, 24
  %v4_a6 = inttoptr i32 %v3_a6 to double*
  %v5_a6 = load double, double* %v4_a6, align 4
  %v6_a6 = fpext double %v5_a6 to x86_fp80
  %v7_a6 = fadd x86_fp80 %v7_a3, %v6_a6
  store x86_fp80 %v7_a6, x86_fp80* %st6.global-to-local, align 4
  %v3_aa = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_aa = fpext double %v3_aa to x86_fp80
  %v7_ac = fmul x86_fp80 %v1_55, %v4_aa
  %v7_af = fmul x86_fp80 %v7_ac, %v1_27
  store x86_fp80 %v7_af, x86_fp80* %st5.global-to-local, align 4
  %v3_b2 = add i32 %v2_a6, 32
  %v4_b2 = inttoptr i32 %v3_b2 to double*
  %v5_b2 = load double, double* %v4_b2, align 4
  %v6_b2 = fpext double %v5_b2 to x86_fp80
  %v7_b2 = fadd x86_fp80 %v7_af, %v6_b2
  store x86_fp80 %v7_b2, x86_fp80* %st5.global-to-local, align 4
  %v3_b6 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_b6 = fpext double %v3_b6 to x86_fp80
  %v7_b8 = fmul x86_fp80 %v1_55, %v4_b6
  store x86_fp80 %v7_b8, x86_fp80* %st4.global-to-local, align 4
  %v3_bb = add i32 %v2_a6, 40
  %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 = fadd x86_fp80 %v7_b8, %v6_bb
  store x86_fp80 %v7_bb, x86_fp80* %st4.global-to-local, align 4
  %v2_be = load i32, i32* %edi.global-to-local, align 4
  %v3_be = add i32 %v2_be, -32
  %v4_be = inttoptr i32 %v3_be to double*
  %v5_be = load double, double* %v4_be, align 4
  %v6_be = fpext double %v5_be to x86_fp80
  %v7_be = fmul x86_fp80 %v7_bb, %v6_be
  store x86_fp80 %v7_be, x86_fp80* %st4.global-to-local, align 4
  %tmp260 = bitcast double %v3_aa to i64
  %tmp261 = trunc i64 %tmp260 to i32
  %v3_c2 = fptrunc x86_fp80 %v7_be to double
  %v4_c2 = inttoptr i32 %tmp261 to double*
  store double %v3_c2, double* %v4_c2, align 4
  %v1_c4 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v2_c4 = load i32, i32* @edx, align 8
  %v3_c4 = fptrunc x86_fp80 %v1_c4 to double
  %v4_c4 = inttoptr i32 %v2_c4 to double*
  store double %v3_c4, double* %v4_c4, align 4
  %v1_c6 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_c6 = fptrunc x86_fp80 %v1_c6 to double
  store double %v3_c6, double* %v4_9c, align 4
  %v5_c6 = add i3 %v0_8c, add (i3 add (i3 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))), i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 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 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3))))
  store i3 %v5_c6, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_9c, 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_9c
}

declare i32 @__asm_fpatan(i32, i32, i32) local_unnamed_addr

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

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

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

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

declare i32 @__asm_fyl2x(x86_fp80, x86_fp80) local_unnamed_addr

declare i32 @__asm_fprem() local_unnamed_addr

declare i32 @__asm_f2xm1() local_unnamed_addr

declare i32 @__asm_fscale() local_unnamed_addr

attributes #0 = { nounwind readnone speculatable }
