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
  %st5.global-to-local = alloca x86_fp80, align 4
  %st6.global-to-local = alloca x86_fp80, align 4
  %st7.global-to-local = alloca x86_fp80, align 4
  %v0_3 = load i32, i32* %ebx.global-to-local, align 4
  %v0_4 = load i32, i32* @eax, align 8
  %v0_5 = load i32, i32* %esi.global-to-local, align 4
  %v0_6 = load i32, i32* %edi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  store i32 %v0_4, i32* %ebx.global-to-local, align 4
  %v1_d = add i32 %arg1, 48
  %v2_d = inttoptr i32 %v1_d to i32*
  %v3_d = load i32, i32* %v2_d, align 4
  store i32 %v3_d, i32* %edi.global-to-local, align 4
  %v3_10 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_10 = fpext double %v3_10 to x86_fp80
  store x86_fp80 %v4_10, x86_fp80* %st7.global-to-local, align 4
  %v2_12 = add i32 %arg1, 32
  %v3_12 = inttoptr i32 %v2_12 to double*
  %v4_12 = load double, double* %v3_12, align 4
  %v5_12 = fpext double %v4_12 to x86_fp80
  store x86_fp80 %v5_12, x86_fp80* %st6.global-to-local, align 4
  %v4_15 = fmul x86_fp80 %v4_10, %v5_12
  store x86_fp80 %v4_15, x86_fp80* %st7.global-to-local, align 4
  %v3_17 = add i32 %v3_d, -56
  %v4_17 = inttoptr i32 %v3_17 to double*
  %v5_17 = load double, double* %v4_17, align 4
  %v6_17 = fpext double %v5_17 to x86_fp80
  %v7_17 = fmul x86_fp80 %v4_15, %v6_17
  store x86_fp80 %v7_17, x86_fp80* %st7.global-to-local, align 4
  %v3_1a = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_1a = fpext double %v3_1a to x86_fp80
  store x86_fp80 %v4_1a, x86_fp80* %st6.global-to-local, align 4
  %v2_1c = add i32 %arg1, 24
  %v3_1c = inttoptr i32 %v2_1c to double*
  %v4_1c = load double, double* %v3_1c, align 4
  %v5_1c = fpext double %v4_1c to x86_fp80
  store x86_fp80 %v5_1c, x86_fp80* %st5.global-to-local, align 4
  %v4_1f = fmul x86_fp80 %v4_1a, %v5_1c
  store x86_fp80 %v4_1f, x86_fp80* %st6.global-to-local, align 4
  %v3_21 = add i32 %v3_d, -64
  %v4_21 = inttoptr i32 %v3_21 to double*
  %v5_21 = load double, double* %v4_21, align 4
  %v6_21 = fpext double %v5_21 to x86_fp80
  %v7_21 = fmul x86_fp80 %v4_1f, %v6_21
  store x86_fp80 %v7_21, x86_fp80* %st6.global-to-local, align 4
  %v4_24 = fadd x86_fp80 %v7_17, %v7_21
  store x86_fp80 %v4_24, x86_fp80* %st7.global-to-local, align 4
  %v2_27 = add i32 %v3_d, -72
  %v3_27 = inttoptr i32 %v2_27 to double*
  %v4_27 = load double, double* %v3_27, align 4
  %v5_27 = fpext double %v4_27 to x86_fp80
  store x86_fp80 %v5_27, x86_fp80* %st6.global-to-local, align 4
  %v0_2c = load i32, i32* %fpsw.global-to-local, align 4
  %v1_2c = call i16 @__asm_fnstsw(i32 %v0_2c)
  %v2_2c = sext i16 %v1_2c to i32
  %v3_2c = load i32, i32* @eax, align 8
  %v4_2c = and i32 %v3_2c, -65536
  %v1_2e = udiv i32 %v2_2c, 256
  %v2_2e = trunc i32 %v1_2e to i8
  %v3_2e = and i8 %v2_2e, 65
  %v4_2e = icmp eq i8 %v3_2e, 0
  %v9_2e = zext i8 %v3_2e to i32
  %v11_2e = mul i32 %v9_2e, 256
  %v2_2c.masked = and i32 %v2_2c, -65281
  %v12_2e = or i32 %v4_2c, %v2_2c.masked
  %v13_2e = or i32 %v12_2e, %v11_2e
  store i32 %v13_2e, i32* @eax, align 8
  %v0_3b = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_3b = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_3b = fpext double %v3_3b to x86_fp80
  %v5_3b = add i3 %v0_3b, -1
  store i3 %v5_3b, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_3b, x86_fp80* %st7.global-to-local, align 4
  %v2_3d = load i32, i32* %edi.global-to-local, align 4
  %v3_3d = add i32 %v2_3d, -16
  %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
  br i1 %v4_2e, label %dec_label_pc_37, label %dec_label_pc_62

dec_label_pc_37:                                  ; preds = %dec_label_pc_0
  %v7_3d = fadd x86_fp80 %v4_3b, %v6_3d
  %v2_40 = load i32, i32* %ebx.global-to-local, align 4
  %v3_40 = fptrunc x86_fp80 %v7_3d to double
  %v4_40 = inttoptr i32 %v2_40 to double*
  store double %v3_40, double* %v4_40, align 4
  %v3_42 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_42 = fpext double %v3_42 to x86_fp80
  store x86_fp80 %v4_42, x86_fp80* %st7.global-to-local, align 4
  %v3_44 = add i32 %v2_3d, -24
  %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 = fadd x86_fp80 %v4_42, %v6_44
  %tmp235 = bitcast double %v3_42 to i64
  %tmp236 = trunc i64 %tmp235 to i32
  %v3_47 = fptrunc x86_fp80 %v7_44 to double
  %v4_47 = inttoptr i32 %tmp236 to double*
  store double %v3_47, double* %v4_47, align 4
  %v3_49 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_49 = fpext double %v3_49 to x86_fp80
  store x86_fp80 %v4_49, x86_fp80* %st7.global-to-local, align 4
  %v3_4b = add i32 %v2_3d, -32
  %v4_4b = inttoptr i32 %v3_4b to double*
  %v5_4b = load double, double* %v4_4b, align 4
  %v6_4b = fpext double %v5_4b to x86_fp80
  %v7_4b = fadd x86_fp80 %v4_49, %v6_4b
  store x86_fp80 %v7_4b, x86_fp80* %st7.global-to-local, align 4
  %tmp237 = bitcast double %v3_49 to i64
  %tmp238 = trunc i64 %tmp237 to i32
  %v3_4e = fptrunc x86_fp80 %v7_4b to double
  %v4_4e = inttoptr i32 %tmp238 to double*
  store double %v3_4e, double* %v4_4e, align 4
  %v1_50 = load i32, i32* @ecx, align 8
  %v2_50 = add i32 %v1_50, 8
  %v3_50 = inttoptr i32 %v2_50 to double*
  %v4_50 = load double, double* %v3_50, align 4
  %v5_50 = fpext double %v4_50 to x86_fp80
  store i3 %v5_3b, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_50, x86_fp80* %st7.global-to-local, align 4
  %v3_53 = add i32 %v2_3d, -40
  %v4_53 = inttoptr i32 %v3_53 to double*
  %v5_53 = load double, double* %v4_53, align 4
  %v6_53 = fpext double %v5_53 to x86_fp80
  %v7_53 = fadd x86_fp80 %v5_50, %v6_53
  store x86_fp80 %v7_53, x86_fp80* %st7.global-to-local, align 4
  %v3_56 = add i32 %v2_3d, -48
  %v4_56 = inttoptr i32 %v3_56 to double*
  %v5_56 = load double, double* %v4_56, align 4
  %v6_56 = fpext double %v5_56 to x86_fp80
  %v7_56 = fadd x86_fp80 %v7_53, %v6_56
  store x86_fp80 %v7_56, x86_fp80* %st7.global-to-local, align 4
  %v4_59 = fptrunc x86_fp80 %v7_56 to double
  store double %v4_59, double* %v3_50, align 4
  br label %dec_label_pc_87

dec_label_pc_62:                                  ; preds = %dec_label_pc_0
  %v7_64 = fsub x86_fp80 %v4_3b, %v6_3d
  %v2_67 = load i32, i32* %ebx.global-to-local, align 4
  %v3_67 = fptrunc x86_fp80 %v7_64 to double
  %v4_67 = inttoptr i32 %v2_67 to double*
  store double %v3_67, double* %v4_67, align 4
  %v3_69 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_69 = fpext double %v3_69 to x86_fp80
  store x86_fp80 %v4_69, x86_fp80* %st7.global-to-local, align 4
  %v3_6b = add i32 %v2_3d, -24
  %v4_6b = inttoptr i32 %v3_6b to double*
  %v5_6b = load double, double* %v4_6b, align 4
  %v6_6b = fpext double %v5_6b to x86_fp80
  %v7_6b = fsub x86_fp80 %v4_69, %v6_6b
  %tmp239 = bitcast double %v3_69 to i64
  %tmp240 = trunc i64 %tmp239 to i32
  %v3_6e = fptrunc x86_fp80 %v7_6b to double
  %v4_6e = inttoptr i32 %tmp240 to double*
  store double %v3_6e, double* %v4_6e, align 4
  %v3_70 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_70 = fpext double %v3_70 to x86_fp80
  store x86_fp80 %v4_70, x86_fp80* %st7.global-to-local, align 4
  %v3_72 = add i32 %v2_3d, -32
  %v4_72 = inttoptr i32 %v3_72 to double*
  %v5_72 = load double, double* %v4_72, align 4
  %v6_72 = fpext double %v5_72 to x86_fp80
  %v7_72 = fsub x86_fp80 %v4_70, %v6_72
  store x86_fp80 %v7_72, x86_fp80* %st7.global-to-local, align 4
  %tmp241 = bitcast double %v3_70 to i64
  %tmp242 = trunc i64 %tmp241 to i32
  %v3_75 = fptrunc x86_fp80 %v7_72 to double
  %v4_75 = inttoptr i32 %tmp242 to double*
  store double %v3_75, double* %v4_75, align 4
  %v1_77 = load i32, i32* @ecx, align 8
  %v2_77 = add i32 %v1_77, 8
  %v3_77 = inttoptr i32 %v2_77 to double*
  %v4_77 = load double, double* %v3_77, align 4
  %v5_77 = fpext double %v4_77 to x86_fp80
  store i3 %v5_3b, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_77, x86_fp80* %st7.global-to-local, align 4
  %v3_7a = add i32 %v2_3d, -40
  %v4_7a = inttoptr i32 %v3_7a to double*
  %v5_7a = load double, double* %v4_7a, align 4
  %v6_7a = fpext double %v5_7a to x86_fp80
  %v7_7a = fsub x86_fp80 %v5_77, %v6_7a
  store x86_fp80 %v7_7a, x86_fp80* %st7.global-to-local, align 4
  %v3_7d = add i32 %v2_3d, -48
  %v4_7d = inttoptr i32 %v3_7d to double*
  %v5_7d = load double, double* %v4_7d, align 4
  %v6_7d = fpext double %v5_7d to x86_fp80
  %v7_7d = fadd x86_fp80 %v7_7a, %v6_7d
  store x86_fp80 %v7_7d, x86_fp80* %st7.global-to-local, align 4
  %v4_80 = fptrunc x86_fp80 %v7_7d to double
  store double %v4_80, double* %v3_77, align 4
  br label %dec_label_pc_87

dec_label_pc_87:                                  ; preds = %dec_label_pc_62, %dec_label_pc_37
  %v3_87 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_87 = fpext double %v3_87 to x86_fp80
  store x86_fp80 %v4_87, x86_fp80* %st7.global-to-local, align 4
  %v2_8a = load i32, i32* %esi.global-to-local, align 4
  %v3_8a = add i32 %v2_8a, 24
  %v4_8a = inttoptr i32 %v3_8a to double*
  %v5_8a = load double, double* %v4_8a, align 4
  %v6_8a = fpext double %v5_8a to x86_fp80
  %v7_8a = fmul x86_fp80 %v4_87, %v6_8a
  store x86_fp80 %v7_8a, x86_fp80* %st7.global-to-local, align 4
  %v3_8f = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_8f = fpext double %v3_8f to x86_fp80
  store x86_fp80 %v4_8f, x86_fp80* %st6.global-to-local, align 4
  %v3_92 = add i32 %v2_8a, 32
  %v4_92 = inttoptr i32 %v3_92 to double*
  %v5_92 = load double, double* %v4_92, align 4
  %v6_92 = fpext double %v5_92 to x86_fp80
  %v7_92 = fmul x86_fp80 %v4_8f, %v6_92
  %v4_97 = fsub x86_fp80 %v7_8a, %v7_92
  store x86_fp80 %v4_97, x86_fp80* %st7.global-to-local, align 4
  %v3_99 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_99 = fpext double %v3_99 to x86_fp80
  store x86_fp80 %v4_99, x86_fp80* %st6.global-to-local, align 4
  %v3_9c = add i32 %v2_8a, 40
  %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 = fmul x86_fp80 %v4_99, %v6_9c
  %v2_9f = fsub x86_fp80 0xK80000000000000000000, %v7_9c
  store x86_fp80 %v2_9f, x86_fp80* %st6.global-to-local, align 4
  %v4_a1 = fsub x86_fp80 %v4_97, %v7_9c
  store x86_fp80 %v4_a1, x86_fp80* %st7.global-to-local, align 4
  %tmp243 = bitcast double %v3_99 to i64
  %tmp244 = trunc i64 %tmp243 to i32
  %v2_a3 = add i32 %tmp244, 8
  %v3_a3 = inttoptr i32 %v2_a3 to double*
  %v4_a3 = load double, double* %v3_a3, align 4
  %v5_a3 = fpext double %v4_a3 to x86_fp80
  store x86_fp80 %v5_a3, x86_fp80* %st6.global-to-local, align 4
  %v3_a6 = add i32 %v2_8a, -56
  %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 = fmul x86_fp80 %v5_a3, %v6_a6
  %v4_ab = fsub x86_fp80 %v4_a1, %v7_a6
  store x86_fp80 %v4_ab, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v4_87, x86_fp80* %st6.global-to-local, align 4
  %v5_b2 = load double, double* %v4_92, align 4
  %v6_b2 = fpext double %v5_b2 to x86_fp80
  %v7_b2 = fmul x86_fp80 %v4_87, %v6_b2
  store x86_fp80 %v7_b2, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_8f, x86_fp80* %st5.global-to-local, align 4
  %v5_ba = load double, double* %v4_8a, align 4
  %v6_ba = fpext double %v5_ba to x86_fp80
  %v7_ba = fmul x86_fp80 %v4_8f, %v6_ba
  %v4_bf = fadd x86_fp80 %v7_b2, %v7_ba
  store x86_fp80 %v4_bf, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_99, x86_fp80* %st5.global-to-local, align 4
  %v5_c4 = load double, double* %v4_a6, align 4
  %v6_c4 = fpext double %v5_c4 to x86_fp80
  %v7_c4 = fmul x86_fp80 %v4_99, %v6_c4
  store x86_fp80 %v7_c4, x86_fp80* %st5.global-to-local, align 4
  %v4_c9 = fadd x86_fp80 %v4_bf, %v7_c4
  store x86_fp80 %v4_c9, x86_fp80* %st6.global-to-local, align 4
  %v4_cb = load double, double* %v3_a3, align 4
  %v5_cb = fpext double %v4_cb to x86_fp80
  store x86_fp80 %v5_cb, x86_fp80* %st5.global-to-local, align 4
  %v5_ce = load double, double* %v4_9c, align 4
  %v6_ce = fpext double %v5_ce to x86_fp80
  %v7_ce = fmul x86_fp80 %v5_cb, %v6_ce
  %v4_d3 = fsub x86_fp80 %v4_c9, %v7_ce
  store x86_fp80 %v4_d3, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_87, x86_fp80* %st5.global-to-local, align 4
  %v5_da = load double, double* %v4_9c, align 4
  %v6_da = fpext double %v5_da to x86_fp80
  %v7_da = fmul x86_fp80 %v4_87, %v6_da
  store x86_fp80 %v7_da, x86_fp80* %st5.global-to-local, align 4
  %v5_e2 = load double, double* %v4_a6, align 4
  %v6_e2 = fpext double %v5_e2 to x86_fp80
  %v7_e2 = fmul x86_fp80 %v4_8f, %v6_e2
  %v4_e7 = fsub x86_fp80 %v7_da, %v7_e2
  store x86_fp80 %v4_e7, x86_fp80* %st5.global-to-local, align 4
  %v5_ec = load double, double* %v4_8a, align 4
  %v6_ec = fpext double %v5_ec to x86_fp80
  %v7_ec = fmul x86_fp80 %v4_99, %v6_ec
  %v4_f1 = fadd x86_fp80 %v4_e7, %v7_ec
  store x86_fp80 %v4_f1, x86_fp80* %st5.global-to-local, align 4
  %v4_f3 = load double, double* %v3_a3, align 4
  %v5_f3 = fpext double %v4_f3 to x86_fp80
  %v5_f6 = load double, double* %v4_92, align 4
  %v6_f6 = fpext double %v5_f6 to x86_fp80
  %v7_f6 = fmul x86_fp80 %v5_f3, %v6_f6
  %v4_fb = fadd x86_fp80 %v4_f1, %v7_f6
  store x86_fp80 %v4_fb, x86_fp80* %st5.global-to-local, align 4
  %v5_102 = load double, double* %v4_a6, align 4
  %v6_102 = fpext double %v5_102 to x86_fp80
  %v7_102 = fmul x86_fp80 %v4_87, %v6_102
  %v5_10a = load double, double* %v4_9c, align 4
  %v6_10a = fpext double %v5_10a to x86_fp80
  %v7_10a = fmul x86_fp80 %v4_8f, %v6_10a
  %v4_10f = fadd x86_fp80 %v7_102, %v7_10a
  %v5_114 = load double, double* %v4_92, align 4
  %v6_114 = fpext double %v5_114 to x86_fp80
  %v7_114 = fmul x86_fp80 %v4_99, %v6_114
  %v4_119 = fsub x86_fp80 %v4_10f, %v7_114
  %v4_11b = load double, double* %v3_a3, align 4
  %v5_11b = fpext double %v4_11b to x86_fp80
  %v5_11e = load double, double* %v4_8a, align 4
  %v6_11e = fpext double %v5_11e to x86_fp80
  %v7_11e = fmul x86_fp80 %v5_11b, %v6_11e
  %v4_123 = fadd x86_fp80 %v4_119, %v7_11e
  %v4_128 = fptrunc x86_fp80 %v4_123 to double
  store double %v4_128, double* %v3_a3, align 4
  %v1_12b = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v2_12b = load i32, i32* @ecx, align 8
  %v3_12b = fptrunc x86_fp80 %v1_12b to double
  %v4_12b = inttoptr i32 %v2_12b to double*
  store double %v3_12b, double* %v4_12b, align 4
  %v1_12d = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v2_12d = load i32, i32* @edx, align 8
  %v3_12d = fptrunc x86_fp80 %v1_12d to double
  %v4_12d = inttoptr i32 %v2_12d to double*
  store double %v3_12d, double* %v4_12d, align 4
  %v1_12f = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_12f = load i32, i32* %ebx.global-to-local, align 4
  %v3_12f = fptrunc x86_fp80 %v1_12f to double
  %v4_12f = inttoptr i32 %v2_12f to double*
  store double %v3_12f, double* %v4_12f, align 4
  store i3 %v0_3b, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_6, i32* %edi.global-to-local, align 4
  store i32 %v0_5, i32* %esi.global-to-local, align 4
  store i32 %v0_4, i32* @eax, align 8
  store i32 %v0_3, i32* %ebx.global-to-local, align 4
  ret i32 %v0_4
}

declare i16 @__asm_fnstsw(i32) local_unnamed_addr
