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_30.1 = constant i32 83

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, ptrtoint (i32* @global_var_30.1 to i32)
  %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
  %v2_13 = add i32 %v3_b, -48
  %v3_13 = inttoptr i32 %v2_13 to double*
  %v4_13 = load double, double* %v3_13, align 4
  %v5_13 = fpext double %v4_13 to x86_fp80
  %v4_16 = fmul x86_fp80 %v4_11, %v5_13
  store x86_fp80 %v4_16, x86_fp80* @st7, align 4
  store i3 %v5_11, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_18 = call i32 @function_87()
  store i32 %v0_18, i32* @eax, align 8
  %v3_1d = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_1d = fpext double %v3_1d to x86_fp80
  %v3_1f = load x86_fp80, x86_fp80* @st7, align 4
  %v4_1f = fadd x86_fp80 %v3_1f, %v4_1d
  %v1_21 = load i32, i32* @edi, align 8
  %v2_21 = add i32 %v1_21, -40
  %v3_21 = inttoptr i32 %v2_21 to double*
  %v4_21 = load double, double* %v3_21, align 4
  %v5_21 = fpext double %v4_21 to x86_fp80
  %v4_24 = fmul x86_fp80 %v4_1f, %v5_21
  store x86_fp80 %v4_24, x86_fp80* @st7, align 4
  %v0_26 = call i32 @function_87()
  store i32 %v0_26, i32* @eax, align 8
  %v3_2b = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_2b = fpext double %v3_2b to x86_fp80
  %v3_2d = load x86_fp80, x86_fp80* @st7, align 4
  %v4_2d = fadd x86_fp80 %v3_2d, %v4_2b
  store x86_fp80 %v4_2d, x86_fp80* @st7, align 4
  %v0_2f = call i32 @function_87()
  store i32 %v0_2f, i32* @eax, align 8
  %v0_34 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_34 = load i32, i32* @edi, align 8
  %v2_34 = add i32 %v1_34, -24
  %v3_34 = inttoptr i32 %v2_34 to double*
  %v4_34 = load double, double* %v3_34, align 4
  %v5_34 = fpext double %v4_34 to x86_fp80
  %v6_34 = add i3 %v0_34, -1
  %v3_37 = load x86_fp80, x86_fp80* @st7, align 4
  %v4_37 = fmul x86_fp80 %v3_37, %v5_34
  %v3_3b = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_3b = fpext double %v3_3b to x86_fp80
  %v4_3d = fsub x86_fp80 %v4_3b, %v4_37
  %v2_3f = add i32 %v1_34, -16
  %v3_3f = inttoptr i32 %v2_3f to double*
  %v4_3f = load double, double* %v3_3f, align 4
  %v5_3f = fpext double %v4_3f to x86_fp80
  %v4_42 = fmul x86_fp80 %v4_3d, %v5_3f
  store x86_fp80 %v4_42, x86_fp80* @st7, align 4
  store i3 %v6_34, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_4b = call i32 @function_87()
  store i32 %v0_4b, i32* @eax, align 8
  %v0_59 = call i32 @function_87()
  store i32 %v0_59, i32* @eax, align 8
  %v0_62 = call i32 @function_87()
  store i32 %v0_62, i32* @eax, align 8
  %v0_67 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_67 = load i32, i32* @edi, align 8
  %v2_67 = add i32 %v1_67, -32
  %v3_67 = inttoptr i32 %v2_67 to double*
  %v4_67 = load double, double* %v3_67, align 4
  %v5_67 = fpext double %v4_67 to x86_fp80
  %v3_6a = load x86_fp80, x86_fp80* @st6, align 4
  %v4_6a = fmul x86_fp80 %v3_6a, %v5_67
  %v3_6e = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_6e = fpext double %v3_6e to x86_fp80
  %v4_70 = fsub x86_fp80 %v4_6e, %v4_6a
  %v2_72 = add i32 %v1_67, -16
  %v3_72 = inttoptr i32 %v2_72 to double*
  %v4_72 = load double, double* %v3_72, align 4
  %v5_72 = fpext double %v4_72 to x86_fp80
  %v4_75 = fmul x86_fp80 %v4_70, %v5_72
  %tmp233 = bitcast double %v3_6e to i64
  %tmp234 = trunc i64 %tmp233 to i32
  %v3_77 = fptrunc x86_fp80 %v4_75 to double
  %v4_77 = inttoptr i32 %tmp234 to double*
  store double %v3_77, double* %v4_77, align 4
  %v1_79 = load x86_fp80, x86_fp80* @st7, align 4
  %v2_79 = load i32, i32* %ebx.global-to-local, align 4
  %v3_79 = fptrunc x86_fp80 %v1_79 to double
  %v4_79 = inttoptr i32 %v2_79 to double*
  store double %v3_79, double* %v4_79, align 4
  %v5_79 = add i3 %v0_67, 2
  store i3 %v5_79, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_79, i32* @eax, align 8
  %v2_80 = load i32, i32* %stack_var_-16, align 4
  store i32 %v2_80, 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_79
}

define i32 @function_87() local_unnamed_addr {
dec_label_pc_87:
  %v1_87 = load x86_fp80, x86_fp80* @st7, align 4
  %v4_87 = load double, double* bitcast (i32* @edi to double*), align 8
  %v5_87 = fpext double %v4_87 to x86_fp80
  %v6_87 = fmul x86_fp80 %v1_87, %v5_87
  %v2_89 = fptosi x86_fp80 %v6_87 to i32
  %v4_91 = fsub x86_fp80 %v6_87, %v6_87
  %v3_95 = fmul x86_fp80 %v4_91, %v4_91
  %tmp1 = bitcast double %v4_87 to i64
  %tmp2 = trunc i64 %tmp1 to i32
  %v2_97 = add i32 %tmp2, 32
  %v3_97 = inttoptr i32 %v2_97 to double*
  %v4_97 = load double, double* %v3_97, align 4
  %v5_97 = fpext double %v4_97 to x86_fp80
  %v4_9a = fmul x86_fp80 %v3_95, %v5_97
  %v3_9c = add i32 %tmp2, 24
  %v4_9c = inttoptr i32 %v3_9c to double*
  %v5_9c = load double, double* %v4_9c, align 4
  %v6_9c = fpext double %v5_9c to x86_fp80
  %v7_9c = fadd x86_fp80 %v4_9a, %v6_9c
  %v4_9f = fmul x86_fp80 %v3_95, %v7_9c
  %v3_a1 = add i32 %tmp2, 16
  %v4_a1 = inttoptr i32 %v3_a1 to double*
  %v5_a1 = load double, double* %v4_a1, align 4
  %v6_a1 = fpext double %v5_a1 to x86_fp80
  %v7_a1 = fadd x86_fp80 %v4_9f, %v6_a1
  %v4_a4 = fmul x86_fp80 %v3_95, %v7_a1
  %v3_a6 = add i32 %tmp2, 8
  %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 %v4_a4, %v6_a6
  store x86_fp80 %v7_a6, x86_fp80* @st6, align 4
  %v4_a9 = fmul x86_fp80 %v4_91, %v7_a6
  store x86_fp80 %v4_a9, x86_fp80* @st7, align 4
  %v5_ab = load i32, i32* @eax, align 8
  %v6_ab = and i32 %v5_ab, -256
  %v1_af = trunc i32 %v2_89 to i8
  %v2_af = urem i8 %v1_af, 2
  %v3_af = icmp eq i8 %v2_af, 0
  %v8_af = zext i8 %v2_af to i32
  %v11_af = or i32 %v6_ab, %v8_af
  store i32 %v11_af, i32* @eax, align 8
  br i1 %v3_af, label %dec_label_pc_b5, label %dec_label_pc_b3

dec_label_pc_b3:                                  ; preds = %dec_label_pc_87
  %v2_b3 = fsub x86_fp80 0xK80000000000000000000, %v4_a9
  store x86_fp80 %v2_b3, x86_fp80* @st7, align 4
  br label %dec_label_pc_b5

dec_label_pc_b5:                                  ; preds = %dec_label_pc_b3, %dec_label_pc_87
  ret i32 %v11_af
}
