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

@st6 = internal unnamed_addr global x86_fp80 0xK00000000000000000000
@st7 = internal unnamed_addr global x86_fp80 0xK00000000000000000000
@eax = internal unnamed_addr global i32 0, align 8
@edx = internal unnamed_addr global i32 0, align 8
@edi = internal unnamed_addr global i32 0, align 8
@global_var_20.1 = constant double* inttoptr (i32 91 to double*)

define i32 @function_0(i32 %arg1) local_unnamed_addr {
dec_label_pc_0:
  %ebx.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
  %st6.global-to-local = alloca x86_fp80, align 4
  %st7.global-to-local = alloca x86_fp80, align 4
  %stack_var_-16 = alloca i32, align 4
  %v0_3 = load i32, i32* %esi.global-to-local, align 4
  %v0_4 = load i32, i32* @edi, align 8
  %v0_5 = load i32, i32* %ebx.global-to-local, align 4
  store i32 %v0_5, i32* %stack_var_-16, 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, align 8
  %v0_11 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_11 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_11 = fpext double %v3_11 to x86_fp80
  store x86_fp80 %v4_11, x86_fp80* @st7, align 4
  %v2_13 = add i3 %v0_11, -2
  store i3 %v2_13, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_11, x86_fp80* %st6.global-to-local, align 4
  %v0_15 = call x86_fp80 @function_7c()
  store x86_fp80 %v0_15, x86_fp80* %st7.global-to-local, align 4
  %v1_15 = fptrunc x86_fp80 %v0_15 to float
  %v2_15 = bitcast float %v1_15 to i32
  store i32 %v2_15, i32* @eax, align 8
  %v2_1a = load i32, i32* @edi, align 8
  %v3_1a = add i32 %v2_1a, -48
  %v4_1a = inttoptr i32 %v3_1a to double*
  %v5_1a = load double, double* %v4_1a, align 4
  %v6_1a = fpext double %v5_1a to x86_fp80
  %v7_1a = fmul x86_fp80 %v4_11, %v6_1a
  store x86_fp80 %v7_1a, x86_fp80* %st6.global-to-local, align 4
  %v0_1d = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_1d = fadd x86_fp80 %v0_15, %v7_1a
  store x86_fp80 %v4_1d, x86_fp80* @st7, align 4
  %v7_1d = add i3 %v0_1d, 1
  store i3 %v7_1d, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_1f = call i32 @function_7f()
  store i32 %v0_1f, i32* @eax, align 8
  %v1_24 = load x86_fp80, x86_fp80* @st7, align 4
  %v2_24 = load i32, i32* @edi, align 8
  %v3_24 = add i32 %v2_24, -40
  %v4_24 = inttoptr i32 %v3_24 to double*
  %v5_24 = load double, double* %v4_24, align 4
  %v6_24 = fpext double %v5_24 to x86_fp80
  %v7_24 = fmul x86_fp80 %v1_24, %v6_24
  store x86_fp80 %v7_24, x86_fp80* %st7.global-to-local, align 4
  %v3_27 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_27 = fpext double %v3_27 to x86_fp80
  %v4_29 = load double, double* bitcast (i32* @eax to double*), align 8
  %v5_29 = fpext double %v4_29 to x86_fp80
  %v6_29 = fadd x86_fp80 %v4_27, %v5_29
  store x86_fp80 %v6_29, x86_fp80* %st6.global-to-local, align 4
  %v3_2b = add i32 %v2_24, -56
  %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 = fmul x86_fp80 %v6_29, %v6_2b
  store x86_fp80 %v7_2b, x86_fp80* %st6.global-to-local, align 4
  %v4_2e = fsub x86_fp80 %v7_2b, %v7_24
  store x86_fp80 %v4_2e, x86_fp80* @st7, align 4
  %v0_30 = call i32 @function_7f()
  store i32 %v0_30, i32* @eax, align 8
  %v1_35 = load x86_fp80, x86_fp80* @st7, align 4
  %v2_35 = load i32, i32* @edi, align 8
  %v3_35 = add i32 %v2_35, -24
  %v4_35 = inttoptr i32 %v3_35 to double*
  %v5_35 = load double, double* %v4_35, align 4
  %v6_35 = fpext double %v5_35 to x86_fp80
  %v7_35 = fmul x86_fp80 %v1_35, %v6_35
  %v4_38 = load double, double* bitcast (i32* @edx to double*), align 8
  %v5_38 = fpext double %v4_38 to x86_fp80
  %v6_38 = fadd x86_fp80 %v7_35, %v5_38
  store x86_fp80 %v6_38, x86_fp80* @st7, align 4
  %v0_3b = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_38, x86_fp80* %st6.global-to-local, align 4
  %v2_3d = add i3 %v0_3b, -2
  store i3 %v2_3d, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_3f = call x86_fp80 @function_7c()
  store x86_fp80 %v0_3f, x86_fp80* @st7, align 4
  %v1_3f = fptrunc x86_fp80 %v0_3f to float
  %v2_3f = bitcast float %v1_3f to i32
  store i32 %v2_3f, i32* @eax, align 8
  %v2_44 = load i32, i32* @edi, align 8
  %v3_44 = add i32 %v2_44, -48
  %v4_44 = inttoptr i32 %v3_44 to double*
  %v5_44 = load double, double* %v4_44, align 4
  %v6_44 = fpext double %v5_44 to x86_fp80
  %v7_44 = fmul x86_fp80 %v5_38, %v6_44
  %v0_47 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_47 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v4_47 = fadd x86_fp80 %v7_44, %v3_47
  store x86_fp80 %v4_47, x86_fp80* %st6.global-to-local, align 4
  %v7_47 = add i3 %v0_47, 1
  store i3 %v7_47, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_49 = add i32 %v2_44, -40
  %v4_49 = inttoptr i32 %v3_49 to double*
  %v5_49 = load double, double* %v4_49, align 4
  %v6_49 = fpext double %v5_49 to x86_fp80
  %v7_49 = fmul x86_fp80 %v4_47, %v6_49
  store x86_fp80 %v7_49, x86_fp80* %st6.global-to-local, align 4
  %v0_4c = call i32 @function_7f()
  store i32 %v0_4c, i32* @eax, align 8
  %v3_51 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_51 = fpext double %v3_51 to x86_fp80
  %v4_53 = load double, double* bitcast (i32* @eax to double*), align 8
  %v5_53 = fpext double %v4_53 to x86_fp80
  %v6_53 = fsub x86_fp80 %v5_53, %v4_51
  %v2_55 = load i32, i32* @edi, align 8
  %v3_55 = add i32 %v2_55, -56
  %v4_55 = inttoptr i32 %v3_55 to double*
  %v5_55 = load double, double* %v4_55, align 4
  %v6_55 = fpext double %v5_55 to x86_fp80
  %v7_55 = fmul x86_fp80 %v6_53, %v6_55
  %v3_58 = load x86_fp80, x86_fp80* @st6, align 4
  %v4_58 = fadd x86_fp80 %v7_55, %v3_58
  store x86_fp80 %v4_58, x86_fp80* %st6.global-to-local, align 4
  %v0_5a = call i32 @function_7f()
  store i32 %v0_5a, i32* @eax, align 8
  %v1_5f = load x86_fp80, x86_fp80* @st6, align 4
  %v2_5f = load i32, i32* @edi, align 8
  %v3_5f = add i32 %v2_5f, -24
  %v4_5f = inttoptr i32 %v3_5f to double*
  %v5_5f = load double, double* %v4_5f, align 4
  %v6_5f = fpext double %v5_5f to x86_fp80
  %v7_5f = fmul x86_fp80 %v1_5f, %v6_5f
  %v4_62 = load double, double* bitcast (i32* @eax to double*), align 8
  %v5_62 = fpext double %v4_62 to x86_fp80
  %v6_62 = fadd x86_fp80 %v7_5f, %v5_62
  store x86_fp80 %v6_62, x86_fp80* %st6.global-to-local, align 4
  %v0_65 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_65 = add i32 %v2_5f, -16
  %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
  %v4_68 = fmul x86_fp80 %v6_62, %v5_65
  store x86_fp80 %v4_68, x86_fp80* %st6.global-to-local, align 4
  %v3_6a = load x86_fp80, x86_fp80* @st7, align 4
  %v4_6a = fmul x86_fp80 %v3_6a, %v5_65
  store x86_fp80 %v4_6a, x86_fp80* %st7.global-to-local, align 4
  %v2_6c = load i32, i32* @edx, align 8
  %v3_6c = fptrunc x86_fp80 %v4_68 to double
  %v4_6c = inttoptr i32 %v2_6c to double*
  store double %v3_6c, double* %v4_6c, align 4
  %v1_6e = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_6e = load i32, i32* %ebx.global-to-local, align 4
  %v3_6e = fptrunc x86_fp80 %v1_6e to double
  %v4_6e = inttoptr i32 %v2_6e to double*
  store double %v3_6e, double* %v4_6e, align 4
  %v5_6e = add i3 %v0_65, 2
  store i3 %v5_6e, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_6e, i32* @eax, align 8
  %v2_75 = load i32, i32* %stack_var_-16, align 4
  store i32 %v2_75, i32* %ebx.global-to-local, align 4
  store i32 %v0_4, i32* @edi, align 8
  store i32 %v0_3, i32* %esi.global-to-local, align 4
  ret i32 %v2_6e
}

define x86_fp80 @function_7c() local_unnamed_addr {
dec_label_pc_7c:
  %v1_7c = load x86_fp80, x86_fp80* @st7, align 4
  %v2_7c = load i32, i32* @edi, align 8
  %v3_7c = add i32 %v2_7c, 40
  %v4_7c = inttoptr i32 %v3_7c to double*
  %v5_7c = load double, double* %v4_7c, align 4
  %v6_7c = fpext double %v5_7c to x86_fp80
  %v7_7c = fadd x86_fp80 %v1_7c, %v6_7c
  ret x86_fp80 %v7_7c
}

define i32 @function_7f() local_unnamed_addr {
dec_label_pc_7f:
  %v1_7f = load x86_fp80, x86_fp80* @st7, align 4
  %v4_7f = load double, double* bitcast (i32* @edi to double*), align 8
  %v5_7f = fpext double %v4_7f to x86_fp80
  %v6_7f = fmul x86_fp80 %v1_7f, %v5_7f
  %v2_81 = fptosi x86_fp80 %v6_7f to i32
  %v4_89 = fsub x86_fp80 %v6_7f, %v6_7f
  %v3_8d = fmul x86_fp80 %v4_89, %v4_89
  %tmp1 = bitcast double %v4_7f to i64
  %tmp2 = trunc i64 %tmp1 to i32
  %v2_8f = add i32 %tmp2, ptrtoint (double** @global_var_20.1 to i32)
  %v3_8f = inttoptr i32 %v2_8f to double*
  %v4_8f = load double, double* %v3_8f, align 4
  %v5_8f = fpext double %v4_8f to x86_fp80
  %v4_92 = fmul x86_fp80 %v3_8d, %v5_8f
  %v3_94 = add i32 %tmp2, 24
  %v4_94 = inttoptr i32 %v3_94 to double*
  %v5_94 = load double, double* %v4_94, align 4
  %v6_94 = fpext double %v5_94 to x86_fp80
  %v7_94 = fadd x86_fp80 %v4_92, %v6_94
  %v4_97 = fmul x86_fp80 %v3_8d, %v7_94
  %v3_99 = add i32 %tmp2, 16
  %v4_99 = inttoptr i32 %v3_99 to double*
  %v5_99 = load double, double* %v4_99, align 4
  %v6_99 = fpext double %v5_99 to x86_fp80
  %v7_99 = fadd x86_fp80 %v4_97, %v6_99
  %v4_9c = fmul x86_fp80 %v3_8d, %v7_99
  %v3_9e = add i32 %tmp2, 8
  %v4_9e = inttoptr i32 %v3_9e to double*
  %v5_9e = load double, double* %v4_9e, align 4
  %v6_9e = fpext double %v5_9e to x86_fp80
  %v7_9e = fadd x86_fp80 %v4_9c, %v6_9e
  store x86_fp80 %v7_9e, x86_fp80* @st6, align 4
  %v4_a1 = fmul x86_fp80 %v4_89, %v7_9e
  store x86_fp80 %v4_a1, x86_fp80* @st7, align 4
  %v5_a3 = load i32, i32* @eax, align 8
  %v6_a3 = and i32 %v5_a3, -256
  %v1_a7 = trunc i32 %v2_81 to i8
  %v2_a7 = urem i8 %v1_a7, 2
  %v3_a7 = icmp eq i8 %v2_a7, 0
  %v8_a7 = zext i8 %v2_a7 to i32
  %v11_a7 = or i32 %v6_a3, %v8_a7
  store i32 %v11_a7, i32* @eax, align 8
  br i1 %v3_a7, label %dec_label_pc_ad, label %dec_label_pc_ab

dec_label_pc_ab:                                  ; preds = %dec_label_pc_7f
  %v2_ab = fsub x86_fp80 0xK80000000000000000000, %v4_a1
  store x86_fp80 %v2_ab, x86_fp80* @st7, align 4
  br label %dec_label_pc_ad

dec_label_pc_ad:                                  ; preds = %dec_label_pc_ab, %dec_label_pc_7f
  ret i32 %v11_a7
}
