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

@st5 = internal unnamed_addr global x86_fp80 0xK00000000000000000000
@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
@ecx = 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 -389001252 to double*)
@global_var_28.2 = constant double* inttoptr (i32 -555724836 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
  %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* @edx to double*), align 8
  %v4_11 = fpext double %v3_11 to x86_fp80
  %v5_11 = add i3 %v0_11, -1
  store i3 %v5_11, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_13 = add i32 %v3_b, -40
  %v4_13 = inttoptr i32 %v3_13 to double*
  %v5_13 = load double, double* %v4_13, align 4
  %v6_13 = fpext double %v5_13 to x86_fp80
  %v7_13 = fmul x86_fp80 %v4_11, %v6_13
  store x86_fp80 %v7_13, x86_fp80* @st7, align 4
  %v0_16 = call x86_fp80 @function_8c()
  %v1_16 = fptrunc x86_fp80 %v0_16 to float
  %v2_16 = bitcast float %v1_16 to i32
  store i32 %v2_16, i32* @eax, align 8
  %v2_1b = load i32, i32* @edi, align 8
  %v3_1b = add i32 %v2_1b, -24
  %v4_1b = inttoptr i32 %v3_1b to double*
  %v5_1b = load double, double* %v4_1b, align 4
  %v6_1b = fpext double %v5_1b to x86_fp80
  %v7_1b = fmul x86_fp80 %v0_16, %v6_1b
  store x86_fp80 %v7_1b, x86_fp80* @st7, align 4
  %v0_1e = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v5_1e = add i3 %v0_1e, -1
  store i3 %v5_1e, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_23 = call i32 @function_8f()
  store i32 %v0_23, i32* @eax, align 8
  %v1_28 = load x86_fp80, x86_fp80* @st6, align 4
  %v2_28 = load i32, i32* @edi, align 8
  %v3_28 = add i32 %v2_28, -32
  %v4_28 = inttoptr i32 %v3_28 to double*
  %v5_28 = load double, double* %v4_28, align 4
  %v6_28 = fpext double %v5_28 to x86_fp80
  %v7_28 = fmul x86_fp80 %v1_28, %v6_28
  %v3_2b = load x86_fp80, x86_fp80* @st7, align 4
  %v4_2b = fadd x86_fp80 %v7_28, %v3_2b
  %v4_2f = load double, double* bitcast (i32* @eax to double*), align 8
  %v5_2f = fpext double %v4_2f to x86_fp80
  %v6_2f = fsub x86_fp80 %v5_2f, %v4_2b
  %v3_31 = add i32 %v2_28, -16
  %v4_31 = inttoptr i32 %v3_31 to double*
  %v5_31 = load double, double* %v4_31, align 4
  %v6_31 = fpext double %v5_31 to x86_fp80
  %v7_31 = fmul x86_fp80 %v6_2f, %v6_31
  store x86_fp80 %v7_31, x86_fp80* @st7, align 4
  %v0_39 = call x86_fp80 @function_8c()
  store x86_fp80 %v0_39, x86_fp80* @st7, align 4
  %v1_39 = fptrunc x86_fp80 %v0_39 to float
  %v2_39 = bitcast float %v1_39 to i32
  store i32 %v2_39, i32* @eax, align 8
  %v0_41 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v5_41 = add i3 %v0_41, -1
  store i3 %v5_41, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_46 = call i32 @function_8f()
  store i32 %v0_46, i32* @eax, align 8
  %v0_5c = call x86_fp80 @function_8c()
  store x86_fp80 %v0_5c, x86_fp80* @st7, align 4
  %v1_5c = fptrunc x86_fp80 %v0_5c to float
  %v2_5c = bitcast float %v1_5c to i32
  store i32 %v2_5c, i32* @eax, align 8
  %v2_61 = load i32, i32* @edi, align 8
  %v0_64 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_64 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_64 = fpext double %v3_64 to x86_fp80
  %v5_64 = add i3 %v0_64, -1
  store i3 %v5_64, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_66 = add i32 %v2_61, -48
  %v4_66 = inttoptr i32 %v3_66 to double*
  %v5_66 = load double, double* %v4_66, align 4
  %v6_66 = fpext double %v5_66 to x86_fp80
  %v7_66 = fmul x86_fp80 %v4_64, %v6_66
  %v0_69 = call i32 @function_8f()
  store i32 %v0_69, i32* @eax, align 8
  %v2_6e = load i32, i32* @edi, align 8
  %v3_6e = add i32 %v2_6e, -32
  %v4_6e = inttoptr i32 %v3_6e to double*
  %v5_6e = load double, double* %v4_6e, align 4
  %v6_6e = fpext double %v5_6e to x86_fp80
  %v7_6e = fmul x86_fp80 %v7_66, %v6_6e
  %v0_71 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_71 = load x86_fp80, x86_fp80* @st5, align 4
  %v4_71 = fadd x86_fp80 %v7_6e, %v3_71
  %v4_75 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v5_75 = fpext double %v4_75 to x86_fp80
  %v6_75 = fsub x86_fp80 %v5_75, %v4_71
  %v3_77 = add i32 %v2_6e, -16
  %v4_77 = inttoptr i32 %v3_77 to double*
  %v5_77 = load double, double* %v4_77, align 4
  %v6_77 = fpext double %v5_77 to x86_fp80
  %v7_77 = fmul x86_fp80 %v6_75, %v6_77
  %tmp233 = bitcast double %v4_75 to i64
  %tmp234 = trunc i64 %tmp233 to i32
  %v3_7a = fptrunc x86_fp80 %v7_77 to double
  %v4_7a = inttoptr i32 %tmp234 to double*
  store double %v3_7a, double* %v4_7a, align 4
  %v1_7c = load x86_fp80, x86_fp80* @st6, align 4
  %v2_7c = load i32, i32* @edx, align 8
  %v3_7c = fptrunc x86_fp80 %v1_7c to double
  %v4_7c = inttoptr i32 %v2_7c to double*
  store double %v3_7c, double* %v4_7c, align 4
  %v1_7e = load x86_fp80, x86_fp80* @st7, align 4
  %v2_7e = load i32, i32* %ebx.global-to-local, align 4
  %v3_7e = fptrunc x86_fp80 %v1_7e to double
  %v4_7e = inttoptr i32 %v2_7e to double*
  store double %v3_7e, double* %v4_7e, align 4
  %v5_7e = xor i3 %v0_71, -4
  store i3 %v5_7e, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_7e, i32* @eax, align 8
  %v2_85 = load i32, i32* %stack_var_-16, align 4
  store i32 %v2_85, 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_7e
}

define x86_fp80 @function_8c() local_unnamed_addr {
dec_label_pc_8c:
  %v1_8c = load x86_fp80, x86_fp80* @st7, align 4
  %v2_8c = load i32, i32* @edi, align 8
  %v3_8c = add i32 %v2_8c, ptrtoint (double** @global_var_28.2 to i32)
  %v4_8c = inttoptr i32 %v3_8c to double*
  %v5_8c = load double, double* %v4_8c, align 4
  %v6_8c = fpext double %v5_8c to x86_fp80
  %v7_8c = fadd x86_fp80 %v1_8c, %v6_8c
  ret x86_fp80 %v7_8c
}

define i32 @function_8f() local_unnamed_addr {
dec_label_pc_8f:
  %v1_8f = load x86_fp80, x86_fp80* @st7, align 4
  %v4_8f = load double, double* bitcast (i32* @edi to double*), align 8
  %v5_8f = fpext double %v4_8f to x86_fp80
  %v6_8f = fmul x86_fp80 %v1_8f, %v5_8f
  %v2_91 = fptosi x86_fp80 %v6_8f to i32
  %v4_99 = fsub x86_fp80 %v6_8f, %v6_8f
  %v3_9d = fmul x86_fp80 %v4_99, %v4_99
  %tmp1 = bitcast double %v4_8f to i64
  %tmp2 = trunc i64 %tmp1 to i32
  %v2_9f = add i32 %tmp2, ptrtoint (double** @global_var_20.1 to i32)
  %v3_9f = inttoptr i32 %v2_9f to double*
  %v4_9f = load double, double* %v3_9f, align 4
  %v5_9f = fpext double %v4_9f to x86_fp80
  %v4_a2 = fmul x86_fp80 %v3_9d, %v5_9f
  %v3_a4 = add i32 %tmp2, 24
  %v4_a4 = inttoptr i32 %v3_a4 to double*
  %v5_a4 = load double, double* %v4_a4, align 4
  %v6_a4 = fpext double %v5_a4 to x86_fp80
  %v7_a4 = fadd x86_fp80 %v4_a2, %v6_a4
  %v4_a7 = fmul x86_fp80 %v3_9d, %v7_a4
  %v3_a9 = add i32 %tmp2, 16
  %v4_a9 = inttoptr i32 %v3_a9 to double*
  %v5_a9 = load double, double* %v4_a9, align 4
  %v6_a9 = fpext double %v5_a9 to x86_fp80
  %v7_a9 = fadd x86_fp80 %v4_a7, %v6_a9
  store x86_fp80 %v7_a9, x86_fp80* @st5, align 4
  %v4_ac = fmul x86_fp80 %v3_9d, %v7_a9
  %v3_ae = add i32 %tmp2, 8
  %v4_ae = inttoptr i32 %v3_ae to double*
  %v5_ae = load double, double* %v4_ae, align 4
  %v6_ae = fpext double %v5_ae to x86_fp80
  %v7_ae = fadd x86_fp80 %v4_ac, %v6_ae
  store x86_fp80 %v7_ae, x86_fp80* @st6, align 4
  %v4_b1 = fmul x86_fp80 %v4_99, %v7_ae
  store x86_fp80 %v4_b1, x86_fp80* @st7, align 4
  %v5_b3 = load i32, i32* @eax, align 8
  %v6_b3 = and i32 %v5_b3, -256
  %v1_b7 = trunc i32 %v2_91 to i8
  %v2_b7 = urem i8 %v1_b7, 2
  %v3_b7 = icmp eq i8 %v2_b7, 0
  %v8_b7 = zext i8 %v2_b7 to i32
  %v11_b7 = or i32 %v6_b3, %v8_b7
  store i32 %v11_b7, i32* @eax, align 8
  br i1 %v3_b7, label %dec_label_pc_bd, label %dec_label_pc_bb

dec_label_pc_bb:                                  ; preds = %dec_label_pc_8f
  %v2_bb = fsub x86_fp80 0xK80000000000000000000, %v4_b1
  store x86_fp80 %v2_bb, x86_fp80* @st7, align 4
  br label %dec_label_pc_bd

dec_label_pc_bd:                                  ; preds = %dec_label_pc_bb, %dec_label_pc_8f
  ret i32 %v11_b7
}
