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

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_3 = load i32, i32* %esi.global-to-local, align 4
  %v0_4 = load i32, i32* %edi.global-to-local, align 4
  %v0_5 = load i32, i32* %ebx.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v0_9 = load i32, i32* @eax, align 8
  store i32 %v0_9, i32* %ebx.global-to-local, align 4
  %v1_b = add i32 %arg1, 48
  %v2_b = inttoptr i32 %v1_b to i32*
  %v3_b = load i32, i32* %v2_b, align 4
  store i32 %v3_b, i32* %edi.global-to-local, align 4
  %v0_e = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_e = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_e = fpext double %v3_e to x86_fp80
  store x86_fp80 %v4_e, x86_fp80* %st7.global-to-local, align 4
  %v3_10 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_10 = fpext double %v3_10 to x86_fp80
  store x86_fp80 %v4_10, x86_fp80* %st6.global-to-local, align 4
  %v3_12 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_12 = fpext double %v3_12 to x86_fp80
  %v3_16 = add i32 %v3_b, -36
  %v4_16 = inttoptr i32 %v3_16 to float*
  %v5_16 = load float, float* %v4_16, align 4
  %v6_16 = fpext float %v5_16 to x86_fp80
  %v7_16 = fmul x86_fp80 %v4_12, %v6_16
  %v3_1b = add i32 %v3_b, -40
  %v4_1b = inttoptr i32 %v3_1b to float*
  %v5_1b = load float, float* %v4_1b, align 4
  %v6_1b = fpext float %v5_1b to x86_fp80
  %v7_1b = fmul x86_fp80 %v4_10, %v6_1b
  %v4_1e = fadd x86_fp80 %v7_16, %v7_1b
  %v3_22 = add i32 %v3_b, -44
  %v4_22 = inttoptr i32 %v3_22 to float*
  %v5_22 = load float, float* %v4_22, align 4
  %v6_22 = fpext float %v5_22 to x86_fp80
  %v7_22 = fmul x86_fp80 %v4_e, %v6_22
  %v4_25 = fadd x86_fp80 %v7_22, %v4_1e
  %v3_29 = add i32 %v3_b, -12
  %v4_29 = inttoptr i32 %v3_29 to float*
  %v5_29 = load float, float* %v4_29, align 4
  %v6_29 = fpext float %v5_29 to x86_fp80
  %v7_29 = fmul x86_fp80 %v4_12, %v6_29
  %v3_2e = add i32 %v3_b, -16
  %v4_2e = inttoptr i32 %v3_2e to float*
  %v5_2e = load float, float* %v4_2e, align 4
  %v6_2e = fpext float %v5_2e to x86_fp80
  %v7_2e = fmul x86_fp80 %v4_10, %v6_2e
  %v4_31 = fadd x86_fp80 %v7_29, %v7_2e
  %v3_35 = add i32 %v3_b, -20
  %v4_35 = inttoptr i32 %v3_35 to float*
  %v5_35 = load float, float* %v4_35, align 4
  %v6_35 = fpext float %v5_35 to x86_fp80
  %v7_35 = fmul x86_fp80 %v4_e, %v6_35
  %v4_38 = fadd x86_fp80 %v4_31, %v7_35
  %v3_3c = add i32 %v3_b, -24
  %v4_3c = inttoptr i32 %v3_3c to float*
  %v5_3c = load float, float* %v4_3c, align 4
  %v6_3c = fpext float %v5_3c to x86_fp80
  %v7_3c = fmul x86_fp80 %v4_12, %v6_3c
  store x86_fp80 %v7_3c, x86_fp80* %st6.global-to-local, align 4
  %v3_41 = add i32 %v3_b, -28
  %v4_41 = inttoptr i32 %v3_41 to float*
  %v5_41 = load float, float* %v4_41, align 4
  %v6_41 = fpext float %v5_41 to x86_fp80
  %v7_41 = fmul x86_fp80 %v4_10, %v6_41
  %v4_44 = fadd x86_fp80 %v7_3c, %v7_41
  store x86_fp80 %v4_44, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_25, x86_fp80* %st7.global-to-local, align 4
  %v3_48 = add i32 %v3_b, -32
  %v4_48 = inttoptr i32 %v3_48 to float*
  %v5_48 = load float, float* %v4_48, align 4
  %v6_48 = fpext float %v5_48 to x86_fp80
  %v7_48 = fmul x86_fp80 %v4_e, %v6_48
  %v4_4b = fadd x86_fp80 %v4_44, %v7_48
  store x86_fp80 %v4_4b, x86_fp80* %st6.global-to-local, align 4
  %v3_4d = add i32 %v3_b, -52
  %v4_4d = inttoptr i32 %v3_4d to double*
  %v5_4d = load double, double* %v4_4d, align 4
  %v6_4d = fpext double %v5_4d to x86_fp80
  %v7_4d = fmul x86_fp80 %v4_38, %v6_4d
  %v3_50 = add i32 %v3_b, -60
  %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 = fadd x86_fp80 %v7_4d, %v6_50
  %v3_53 = fptrunc x86_fp80 %v7_50 to double
  %v4_53 = inttoptr i32 %v0_9 to double*
  store double %v3_53, double* %v4_53, align 4
  %v5_53 = add i3 %v0_e, -2
  %v1_55 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v5_55 = load double, double* %v4_4d, align 4
  %v6_55 = fpext double %v5_55 to x86_fp80
  %v7_55 = fmul x86_fp80 %v1_55, %v6_55
  store x86_fp80 %v7_55, x86_fp80* %st6.global-to-local, align 4
  %v3_58 = add i32 %v3_b, -68
  %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 = fadd x86_fp80 %v7_55, %v6_58
  store x86_fp80 %v7_58, x86_fp80* %st6.global-to-local, align 4
  %v2_5b = load i32, i32* @edx, align 8
  %v3_5b = fptrunc x86_fp80 %v7_58 to double
  %v4_5b = inttoptr i32 %v2_5b to double*
  store double %v3_5b, double* %v4_5b, align 4
  %v1_5d = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v5_5d = load double, double* %v4_4d, align 4
  %v6_5d = fpext double %v5_5d to x86_fp80
  %v7_5d = fmul x86_fp80 %v1_5d, %v6_5d
  store x86_fp80 %v7_5d, x86_fp80* %st7.global-to-local, align 4
  %v3_60 = add i32 %v3_b, -76
  %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 = fadd x86_fp80 %v7_5d, %v6_60
  store x86_fp80 %v7_60, x86_fp80* %st7.global-to-local, align 4
  %v2_63 = load i32, i32* @ecx, align 8
  %v3_63 = fptrunc x86_fp80 %v7_60 to double
  %v4_63 = inttoptr i32 %v2_63 to double*
  store double %v3_63, double* %v4_63, align 4
  %v1_65 = load i32, i32* @ecx, align 8
  %v2_65 = add i32 %v1_65, 8
  %v3_65 = inttoptr i32 %v2_65 to double*
  %v4_65 = load double, double* %v3_65, align 4
  %v5_65 = fpext double %v4_65 to x86_fp80
  store x86_fp80 %v5_65, x86_fp80* %st7.global-to-local, align 4
  %v5_68 = load double, double* %v4_4d, align 4
  %v6_68 = fpext double %v5_68 to x86_fp80
  %v7_68 = fmul x86_fp80 %v5_65, %v6_68
  %v4_6b = fptrunc x86_fp80 %v7_68 to double
  store double %v4_6b, double* %v3_65, align 4
  %v3_6f = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_6f = fpext double %v3_6f to x86_fp80
  store x86_fp80 %v4_6f, x86_fp80* %st7.global-to-local, align 4
  %v1_71 = load i32, i32* %esi.global-to-local, align 4
  %v2_71 = add i32 %v1_71, 24
  %v3_71 = inttoptr i32 %v2_71 to double*
  %v4_71 = load double, double* %v3_71, align 4
  %v5_71 = fpext double %v4_71 to x86_fp80
  store i3 %v5_53, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_71, x86_fp80* %st6.global-to-local, align 4
  %v0_76 = call i32 @__asm_wait()
  store i32 %v0_76, i32* @eax, align 8
  %v0_77 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_77 = call i16 @__asm_fnstsw(i32 %v0_77)
  %v2_77 = sext i16 %v1_77 to i32
  %v3_77 = load i32, i32* @eax, align 8
  %v4_77 = and i32 %v3_77, -65536
  %v4_791 = udiv i32 %v2_77, 512
  %tmp249 = trunc i32 %v4_791 to i8
  %tmp254 = urem i8 %tmp249, -128
  %v5_79 = icmp eq i8 %tmp254, 0
  %v10_79 = zext i8 %tmp254 to i32
  %v12_79 = mul i32 %v10_79, 256
  %v2_77.masked = and i32 %v2_77, -65281
  %v13_79 = or i32 %v4_77, %v2_77.masked
  %v14_79 = or i32 %v13_79, %v12_79
  store i32 %v14_79, i32* @eax, align 8
  %v15_7914 = and i32 %v2_77, 256
  %v16_79 = icmp ne i32 %v15_7914, 0
  %v2_7b = or i1 %v16_79, %v5_79
  %v1_7f.pre = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  br i1 %v2_7b, label %dec_label_pc_7f, label %dec_label_pc_7d

dec_label_pc_7d:                                  ; preds = %dec_label_pc_0
  %v3_7d = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v3_7d, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v1_7f.pre, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_7f

dec_label_pc_7f:                                  ; preds = %dec_label_pc_0, %dec_label_pc_7d
  %v1_7f = phi x86_fp80 [ %v3_7d, %dec_label_pc_7d ], [ %v1_7f.pre, %dec_label_pc_0 ]
  %v2_7f = load i32, i32* %esi.global-to-local, align 4
  %v3_7f = add i32 %v2_7f, 24
  %v4_7f = fptrunc x86_fp80 %v1_7f to double
  %v5_7f = inttoptr i32 %v3_7f to double*
  store double %v4_7f, double* %v5_7f, align 4
  %v1_82 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_82 = load i32, i32* %ebx.global-to-local, align 4
  %v3_82 = fptrunc x86_fp80 %v1_82 to double
  %v4_82 = inttoptr i32 %v2_82 to double*
  store double %v3_82, double* %v4_82, align 4
  %v3_85 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_85 = fpext double %v3_85 to x86_fp80
  store x86_fp80 %v4_85, x86_fp80* %st7.global-to-local, align 4
  %v2_87 = add i32 %v2_7f, 32
  %v3_87 = inttoptr i32 %v2_87 to double*
  %v4_87 = load double, double* %v3_87, align 4
  %v5_87 = fpext double %v4_87 to x86_fp80
  store x86_fp80 %v5_87, x86_fp80* %st6.global-to-local, align 4
  %v0_8c = call i32 @__asm_wait()
  store i32 %v0_8c, i32* @eax, align 8
  %v0_8d = load i32, i32* %fpsw.global-to-local, align 4
  %v1_8d = call i16 @__asm_fnstsw(i32 %v0_8d)
  %v2_8d = sext i16 %v1_8d to i32
  %v3_8d = load i32, i32* @eax, align 8
  %v4_8d = and i32 %v3_8d, -65536
  %tmp252 = udiv i32 %v2_8d, 2
  %v12_8f = and i32 %tmp252, 32512
  %v2_8d.masked = and i32 %v2_8d, -65281
  %v13_8f = or i32 %v4_8d, %v2_8d.masked
  %v14_8f = or i32 %v13_8f, %v12_8f
  store i32 %v14_8f, i32* @eax, align 8
  %v1_95 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_95 = load i32, i32* %esi.global-to-local, align 4
  %v3_95 = add i32 %v2_95, 32
  %v4_95 = fptrunc x86_fp80 %v1_95 to double
  %v5_95 = inttoptr i32 %v3_95 to double*
  store double %v4_95, double* %v5_95, align 4
  %v1_98 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_98 = load i32, i32* @edx, align 8
  %v3_98 = fptrunc x86_fp80 %v1_98 to double
  %v4_98 = inttoptr i32 %v2_98 to double*
  store double %v3_98, double* %v4_98, align 4
  %v3_9b = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_9b = fpext double %v3_9b to x86_fp80
  store x86_fp80 %v4_9b, x86_fp80* %st7.global-to-local, align 4
  %v2_9d = add i32 %v2_95, 40
  %v3_9d = inttoptr i32 %v2_9d to double*
  %v4_9d = load double, double* %v3_9d, align 4
  %v5_9d = fpext double %v4_9d to x86_fp80
  store x86_fp80 %v5_9d, x86_fp80* %st6.global-to-local, align 4
  %v0_a2 = call i32 @__asm_wait()
  store i32 %v0_a2, i32* @eax, align 8
  %v0_a3 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_a3 = call i16 @__asm_fnstsw(i32 %v0_a3)
  %v2_a3 = sext i16 %v1_a3 to i32
  %v3_a3 = load i32, i32* @eax, align 8
  %v4_a3 = and i32 %v3_a3, -65536
  %tmp253 = udiv i32 %v2_a3, 2
  %v12_a5 = and i32 %tmp253, 32512
  %v2_a3.masked = and i32 %v2_a3, -65281
  %v13_a5 = or i32 %v4_a3, %v2_a3.masked
  %v14_a5 = or i32 %v13_a5, %v12_a5
  store i32 %v14_a5, i32* @eax, align 8
  %v0_ab = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_ab = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_ab = load i32, i32* %esi.global-to-local, align 4
  %v3_ab = add i32 %v2_ab, 40
  %v4_ab = fptrunc x86_fp80 %v1_ab to double
  %v5_ab = inttoptr i32 %v3_ab to double*
  store double %v4_ab, double* %v5_ab, align 4
  %v1_ae = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_ae = load i32, i32* @ecx, align 8
  %v3_ae = fptrunc x86_fp80 %v1_ae to double
  %v4_ae = inttoptr i32 %v2_ae to double*
  store double %v3_ae, double* %v4_ae, align 4
  %v3_b1 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_b1 = fpext double %v3_b1 to x86_fp80
  store x86_fp80 %v4_b1, x86_fp80* %st7.global-to-local, align 4
  %v3_b3 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_b3 = fpext double %v3_b3 to x86_fp80
  store x86_fp80 %v4_b3, x86_fp80* %st6.global-to-local, align 4
  %v3_b5 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_b5 = fpext double %v3_b5 to x86_fp80
  %v2_b9 = load i32, i32* %edi.global-to-local, align 4
  %v3_b9 = add i32 %v2_b9, -20
  %v4_b9 = inttoptr i32 %v3_b9 to float*
  %v5_b9 = load float, float* %v4_b9, align 4
  %v6_b9 = fpext float %v5_b9 to x86_fp80
  %v7_b9 = fmul x86_fp80 %v4_b5, %v6_b9
  %v3_be = add i32 %v2_b9, -32
  %v4_be = inttoptr i32 %v3_be to float*
  %v5_be = load float, float* %v4_be, align 4
  %v6_be = fpext float %v5_be to x86_fp80
  %v7_be = fmul x86_fp80 %v4_b3, %v6_be
  %v4_c1 = fadd x86_fp80 %v7_b9, %v7_be
  %v3_c5 = add i32 %v2_b9, -44
  %v4_c5 = inttoptr i32 %v3_c5 to float*
  %v5_c5 = load float, float* %v4_c5, align 4
  %v6_c5 = fpext float %v5_c5 to x86_fp80
  %v7_c5 = fmul x86_fp80 %v4_b1, %v6_c5
  %v4_c8 = fadd x86_fp80 %v7_c5, %v4_c1
  %v3_cc = add i32 %v2_b9, -12
  %v4_cc = inttoptr i32 %v3_cc to float*
  %v5_cc = load float, float* %v4_cc, align 4
  %v6_cc = fpext float %v5_cc to x86_fp80
  %v7_cc = fmul x86_fp80 %v4_b5, %v6_cc
  %v3_d1 = add i32 %v2_b9, -24
  %v4_d1 = inttoptr i32 %v3_d1 to float*
  %v5_d1 = load float, float* %v4_d1, align 4
  %v6_d1 = fpext float %v5_d1 to x86_fp80
  %v7_d1 = fmul x86_fp80 %v4_b3, %v6_d1
  %v4_d4 = fadd x86_fp80 %v7_cc, %v7_d1
  %v3_d8 = add i32 %v2_b9, -36
  %v4_d8 = inttoptr i32 %v3_d8 to float*
  %v5_d8 = load float, float* %v4_d8, align 4
  %v6_d8 = fpext float %v5_d8 to x86_fp80
  %v7_d8 = fmul x86_fp80 %v4_b1, %v6_d8
  %v4_db = fadd x86_fp80 %v4_d4, %v7_d8
  %v3_df = add i32 %v2_b9, -16
  %v4_df = inttoptr i32 %v3_df to float*
  %v5_df = load float, float* %v4_df, align 4
  %v6_df = fpext float %v5_df to x86_fp80
  %v7_df = fmul x86_fp80 %v4_b5, %v6_df
  store x86_fp80 %v7_df, x86_fp80* %st6.global-to-local, align 4
  %v3_e4 = add i32 %v2_b9, -28
  %v4_e4 = inttoptr i32 %v3_e4 to float*
  %v5_e4 = load float, float* %v4_e4, align 4
  %v6_e4 = fpext float %v5_e4 to x86_fp80
  %v7_e4 = fmul x86_fp80 %v4_b3, %v6_e4
  %v4_e7 = fadd x86_fp80 %v7_df, %v7_e4
  store x86_fp80 %v4_e7, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_c8, x86_fp80* %st7.global-to-local, align 4
  %v3_eb = add i32 %v2_b9, -40
  %v4_eb = inttoptr i32 %v3_eb to float*
  %v5_eb = load float, float* %v4_eb, align 4
  %v6_eb = fpext float %v5_eb to x86_fp80
  %v7_eb = fmul x86_fp80 %v4_b1, %v6_eb
  %v4_ee = fadd x86_fp80 %v4_e7, %v7_eb
  store x86_fp80 %v4_ee, x86_fp80* %st6.global-to-local, align 4
  %v3_f0 = add i32 %v2_b9, -60
  %v4_f0 = inttoptr i32 %v3_f0 to double*
  %v5_f0 = load double, double* %v4_f0, align 4
  %v6_f0 = fpext double %v5_f0 to x86_fp80
  %v7_f0 = fsub x86_fp80 %v4_db, %v6_f0
  %v2_f3 = load i32, i32* %ebx.global-to-local, align 4
  %v3_f3 = fptrunc x86_fp80 %v7_f0 to double
  %v4_f3 = inttoptr i32 %v2_f3 to double*
  store double %v3_f3, double* %v4_f3, align 4
  %v1_f5 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_f5 = add i32 %v2_b9, -68
  %v4_f5 = inttoptr i32 %v3_f5 to double*
  %v5_f5 = load double, double* %v4_f5, align 4
  %v6_f5 = fpext double %v5_f5 to x86_fp80
  %v7_f5 = fsub x86_fp80 %v1_f5, %v6_f5
  store x86_fp80 %v7_f5, x86_fp80* %st6.global-to-local, align 4
  %v2_f8 = load i32, i32* @edx, align 8
  %v3_f8 = fptrunc x86_fp80 %v7_f5 to double
  %v4_f8 = inttoptr i32 %v2_f8 to double*
  store double %v3_f8, double* %v4_f8, align 4
  %v1_fa = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_fa = add i32 %v2_b9, -76
  %v4_fa = inttoptr i32 %v3_fa to double*
  %v5_fa = load double, double* %v4_fa, align 4
  %v6_fa = fpext double %v5_fa to x86_fp80
  %v7_fa = fsub x86_fp80 %v1_fa, %v6_fa
  store x86_fp80 %v7_fa, x86_fp80* %st7.global-to-local, align 4
  %v2_fd = load i32, i32* @ecx, align 8
  %v3_fd = fptrunc x86_fp80 %v7_fa to double
  %v4_fd = inttoptr i32 %v2_fd to double*
  store double %v3_fd, double* %v4_fd, align 4
  %v5_fd = add i3 %v0_ab, 2
  store i3 %v5_fd, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_f3, i32* @eax, align 8
  store i32 %v0_5, i32* %ebx.global-to-local, align 4
  store i32 %v0_4, i32* %edi.global-to-local, align 4
  store i32 %v0_3, i32* %esi.global-to-local, align 4
  ret i32 %v2_f3
}

declare i32 @__asm_wait() local_unnamed_addr

declare i16 @__asm_fnstsw(i32) local_unnamed_addr
