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
  %fpsw.global-to-local = alloca i32, align 4
  %fpu_stat_TOP.global-to-local = alloca i3, align 1
  %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
  %v2_16 = inttoptr i32 %v3_f to double*
  %v3_16 = load double, double* %v2_16, align 4
  %v4_16 = fpext double %v3_16 to x86_fp80
  %v5_16 = sub i3 %v0_16, ptrtoint (i8* @global_var_1.1 to i3)
  store x86_fp80 %v4_16, x86_fp80* %st7.global-to-local, align 4
  %v3_18 = add i32 %v3_f, -16
  %v4_18 = inttoptr i32 %v3_18 to double*
  %v5_18 = load double, double* %v4_18, align 4
  %v6_18 = fpext double %v5_18 to x86_fp80
  %v7_18 = fdiv x86_fp80 %v4_16, %v6_18
  %v3_1e = fadd x86_fp80 %v7_18, %v7_18
  store x86_fp80 %v7_18, x86_fp80* %st7.global-to-local, align 4
  %v3_26 = add i32 %v3_f, 8
  %v4_26 = inttoptr i32 %v3_26 to double*
  %v5_26 = load double, double* %v4_26, align 4
  %v6_26 = fpext double %v5_26 to x86_fp80
  %v7_26 = fmul x86_fp80 %v7_18, %v6_26
  store x86_fp80 %v7_26, x86_fp80* %st7.global-to-local, align 4
  %v2_29 = sub i3 %v5_16, ptrtoint (i8* @global_var_1.1 to i3)
  store x86_fp80 %v7_26, x86_fp80* %st6.global-to-local, align 4
  %v3_2b = add i32 %v3_f, -32
  %v4_2b = inttoptr i32 %v3_2b to double*
  %v5_2b = load double, double* %v4_2b, align 4
  %v6_2b = fpext double %v5_2b to x86_fp80
  %v7_2b = fsub x86_fp80 %v7_26, %v6_2b
  %v2_2e = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_2b)
  %v3_2e = fcmp olt x86_fp80 %v2_2e, 0xK403E8000000000000000
  %v4_2e = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_2b)
  %storemerge13 = select i1 %v3_2e, x86_fp80 %v4_2e, x86_fp80 %v7_2b
  store x86_fp80 %storemerge13, x86_fp80* %st6.global-to-local, align 4
  store i3 %v5_16, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_33 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_26)
  %v3_33 = fcmp olt x86_fp80 %v2_33, 0xK403E8000000000000000
  br i1 %v3_33, label %bb, label %bb262

bb:                                               ; preds = %dec_label_pc_0
  %v4_33 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_26)
  store x86_fp80 %v4_33, x86_fp80* %st7.global-to-local, align 4
  br label %bb262

bb262:                                            ; preds = %dec_label_pc_0, %bb
  %v1_35 = phi x86_fp80 [ %v7_26, %dec_label_pc_0 ], [ %v4_33, %bb ]
  %v7_35 = fdiv x86_fp80 %v1_35, %storemerge13
  store x86_fp80 %v7_35, x86_fp80* %st7.global-to-local, align 4
  %v3_3b = load double, double* %v2_16, align 4
  %v4_3b = fpext double %v3_3b to x86_fp80
  store x86_fp80 %v4_3b, x86_fp80* %st7.global-to-local, align 4
  %v3_3d = add i32 %v3_f, -24
  %v4_3d = inttoptr i32 %v3_3d to double*
  %v5_3d = load double, double* %v4_3d, align 4
  %v6_3d = fpext double %v5_3d to x86_fp80
  %v7_3d = fdiv x86_fp80 %v4_3b, %v6_3d
  %v3_43 = fadd x86_fp80 %v7_3d, %v7_3d
  store x86_fp80 %v7_3d, x86_fp80* %st7.global-to-local, align 4
  %v5_4b = load double, double* %v4_26, align 4
  %v6_4b = fpext double %v5_4b to x86_fp80
  %v7_4b = fmul x86_fp80 %v7_3d, %v6_4b
  store x86_fp80 %v7_4b, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v7_4b, x86_fp80* %st6.global-to-local, align 4
  %v3_50 = add i32 %v3_f, -40
  %v4_50 = inttoptr i32 %v3_50 to double*
  %v5_50 = load double, double* %v4_50, align 4
  %v6_50 = fpext double %v5_50 to x86_fp80
  %v7_50 = fsub x86_fp80 %v7_4b, %v6_50
  %v2_53 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_50)
  %v3_53 = fcmp olt x86_fp80 %v2_53, 0xK403E8000000000000000
  %v4_53 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_50)
  %storemerge12 = select i1 %v3_53, x86_fp80 %v4_53, x86_fp80 %v7_50
  store x86_fp80 %storemerge12, x86_fp80* %st6.global-to-local, align 4
  store i3 %v5_16, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_58 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_4b)
  %v3_58 = fcmp olt x86_fp80 %v2_58, 0xK403E8000000000000000
  br i1 %v3_58, label %bb264, label %bb265

bb264:                                            ; preds = %bb262
  %v4_58 = call x86_fp80 @llvm.cos.f80(x86_fp80 %v7_4b)
  store x86_fp80 %v4_58, x86_fp80* %st7.global-to-local, align 4
  br label %bb265

bb265:                                            ; preds = %bb262, %bb264
  %v1_5a = phi x86_fp80 [ %v7_4b, %bb262 ], [ %v4_58, %bb264 ]
  %v11_5a = fdiv x86_fp80 %v1_5a, %storemerge12
  %v3_60 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_60 = fpext double %v3_60 to x86_fp80
  store x86_fp80 %v4_60, x86_fp80* %st7.global-to-local, align 4
  %v3_62 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_62 = fpext double %v3_62 to x86_fp80
  store i3 %v2_29, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_62, x86_fp80* %st6.global-to-local, align 4
  %v2_64 = call i32 @__asm_fpatan(i32 %v0_b, i32 %v0_a)
  store i32 %v2_64, i32* @eax, align 8
  %v2_66 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_62)
  br label %dec_label_pc_68

dec_label_pc_68:                                  ; preds = %dec_label_pc_72, %bb265
  %storemerge = phi x86_fp80 [ %v2_66, %bb265 ], [ %v7_72, %dec_label_pc_72 ]
  store x86_fp80 %storemerge, x86_fp80* %st6.global-to-local, align 4
  %v0_6b = load i32, i32* %fpsw.global-to-local, align 4
  %v1_6b = call i16 @__asm_fnstsw(i32 %v0_6b)
  %v2_6b = sext i16 %v1_6b to i32
  %v3_6b = load i32, i32* @eax, align 8
  %v4_6b = and i32 %v3_6b, -65536
  %v1_6d = udiv i32 %v2_6b, 256
  %v2_6d = trunc i32 %v1_6d to i8
  %v3_6d = and i8 %v2_6d, 65
  %v4_6d = icmp eq i8 %v3_6d, 0
  %v9_6d = zext i8 %v3_6d to i32
  %v11_6d = mul i32 %v9_6d, 256
  %v2_6b.masked = and i32 %v2_6b, -65281
  %v12_6d = or i32 %v4_6b, %v2_6b.masked
  %v13_6d = or i32 %v12_6d, %v11_6d
  store i32 %v13_6d, i32* @eax, align 8
  %v4_70 = icmp eq i1 %v4_6d, false
  br i1 %v4_70, label %dec_label_pc_77, label %dec_label_pc_72

dec_label_pc_72:                                  ; preds = %dec_label_pc_68
  %v1_77 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v7_72 = fsub x86_fp80 %v1_77, %v3_1e
  br label %dec_label_pc_68

dec_label_pc_77:                                  ; preds = %dec_label_pc_68
  %v1_7e = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v7_7e = fmul x86_fp80 %v1_7e, %v7_35
  %v4_84 = load double, double* bitcast (i32* @edx to double*), align 8
  %v5_84 = fpext double %v4_84 to x86_fp80
  %v6_84 = fmul x86_fp80 %v7_7e, %v5_84
  %v3_89 = fmul x86_fp80 %v6_84, %v6_84
  %v0_8b = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v6_8b = sub i3 %v0_8b, ptrtoint (i8* @global_var_1.1 to i3)
  %v4_8e = load double, double* bitcast (i32* @ecx to double*), align 8
  %v5_8e = fpext double %v4_8e to x86_fp80
  %v6_8e = fmul x86_fp80 %v7_7e, %v5_8e
  %v3_93 = fmul x86_fp80 %v6_8e, %v6_8e
  %v4_95 = fadd x86_fp80 %v3_89, %v3_93
  %v2_97 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_95)
  store x86_fp80 %v2_97, x86_fp80* %st7.global-to-local, align 4
  %v3_9b = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_9b = fpext double %v3_9b to x86_fp80
  store i3 %v6_8b, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_9b, x86_fp80* %st6.global-to-local, align 4
  %tmp267 = fptrunc x86_fp80 %v6_8e to float
  %v2_9d = bitcast float %tmp267 to i32
  %tmp268 = fptrunc x86_fp80 %v6_84 to float
  %v5_9d = bitcast float %tmp268 to i32
  %v6_9d = call i32 @__asm_fpatan(i32 %v2_9d, i32 %v5_9d)
  store i32 %v6_9d, i32* @eax, align 8
  %v2_9f = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_9b)
  br label %dec_label_pc_a1

dec_label_pc_a1:                                  ; preds = %dec_label_pc_ab, %dec_label_pc_77
  %storemerge2 = phi x86_fp80 [ %v2_9f, %dec_label_pc_77 ], [ %v7_ab, %dec_label_pc_ab ]
  store x86_fp80 %storemerge2, x86_fp80* %st6.global-to-local, align 4
  %v0_a4 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_a4 = call i16 @__asm_fnstsw(i32 %v0_a4)
  %v2_a4 = sext i16 %v1_a4 to i32
  %v3_a4 = load i32, i32* @eax, align 8
  %v4_a4 = and i32 %v3_a4, -65536
  %v1_a6 = udiv i32 %v2_a4, 256
  %v2_a6 = trunc i32 %v1_a6 to i8
  %v3_a6 = and i8 %v2_a6, 65
  %v4_a6 = icmp eq i8 %v3_a6, 0
  %v9_a6 = zext i8 %v3_a6 to i32
  %v11_a6 = mul i32 %v9_a6, 256
  %v2_a4.masked = and i32 %v2_a4, -65281
  %v12_a6 = or i32 %v4_a4, %v2_a4.masked
  %v13_a6 = or i32 %v12_a6, %v11_a6
  store i32 %v13_a6, i32* @eax, align 8
  %v4_a9 = icmp eq i1 %v4_a6, false
  br i1 %v4_a9, label %dec_label_pc_b0, label %dec_label_pc_ab

dec_label_pc_ab:                                  ; preds = %dec_label_pc_a1
  %v1_b0 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v7_ab = fsub x86_fp80 %v1_b0, %v3_43
  br label %dec_label_pc_a1

dec_label_pc_b0:                                  ; preds = %dec_label_pc_a1
  %v1_b7 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v11_b7 = fmul x86_fp80 %v1_b7, %v11_5a
  store x86_fp80 %v11_b7, x86_fp80* %st7.global-to-local, align 4
  %v0_ba = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v11_b7, x86_fp80* %st6.global-to-local, align 4
  %v7_be = fmul x86_fp80 %v11_b7, %v6_84
  %v2_c1 = load i32, i32* @edx, align 8
  %v3_c1 = fptrunc x86_fp80 %v7_be to double
  %v4_c1 = inttoptr i32 %v2_c1 to double*
  store double %v3_c1, double* %v4_c1, align 4
  %v1_c5 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v7_c5 = fmul x86_fp80 %v1_c5, %v6_8e
  store x86_fp80 %v7_c5, x86_fp80* %st6.global-to-local, align 4
  %v2_c8 = load i32, i32* @ecx, align 8
  %v3_c8 = fptrunc x86_fp80 %v7_c5 to double
  %v4_c8 = inttoptr i32 %v2_c8 to double*
  store double %v3_c8, double* %v4_c8, align 4
  %v1_cc = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_cc = load double, double* bitcast (i32* @eax to double*), align 8
  %v5_cc = fpext double %v4_cc to x86_fp80
  %v6_cc = fmul x86_fp80 %v1_cc, %v5_cc
  store x86_fp80 %v6_cc, x86_fp80* %st7.global-to-local, align 4
  %v2_ce = load i32, i32* %ebx.global-to-local, align 4
  %v3_ce = fptrunc x86_fp80 %v6_cc to double
  %v4_ce = inttoptr i32 %v2_ce to double*
  store double %v3_ce, double* %v4_ce, align 4
  %v5_ce = add i3 %v0_ba, ptrtoint (i8* @global_var_1.1 to i3)
  store i3 %v5_ce, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_ce, 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_ce
}

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

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

declare i32 @__asm_fpatan(i32, i32) local_unnamed_addr

declare i16 @__asm_fnstsw(i32) local_unnamed_addr

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

attributes #0 = { nounwind readnone speculatable }
