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
  %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
  %stack_var_-92 = alloca double, align 8
  %stack_var_-12 = alloca i32, align 4
  %v0_3 = load i32, i32* %ebx.global-to-local, align 4
  %v0_4 = load i32, i32* %esi.global-to-local, align 4
  store i32 %v0_4, i32* %stack_var_-12, align 4
  %v0_5 = load i32, i32* @eax, align 8
  store i32 %v0_5, i32* %ebx.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v1_a = add i32 %arg1, 48
  %v2_a = inttoptr i32 %v1_a to i32*
  %v3_a = load i32, i32* %v2_a, align 4
  store i32 %v3_a, i32* %esi.global-to-local, align 4
  store i32 2147483647, i32* @eax, align 8
  %v0_12 = load i32, i32* @ecx, align 8
  %v1_12 = add i32 %v0_12, 4
  %v2_12 = inttoptr i32 %v1_12 to i32*
  %v3_12 = load i32, i32* %v2_12, align 4
  %tmp279 = urem i32 %v3_12, -2147483648
  store i32 %tmp279, i32* %v2_12, align 4
  %v0_15 = load i32, i32* @edx, align 8
  %v1_15 = add i32 %v0_15, 4
  %v2_15 = inttoptr i32 %v1_15 to i32*
  %v3_15 = load i32, i32* %v2_15, align 4
  %v4_15 = load i32, i32* @eax, align 8
  %v5_15 = and i32 %v4_15, %v3_15
  store i32 %v5_15, i32* %v2_15, align 4
  %v0_18 = load i32, i32* %ebx.global-to-local, align 4
  %v1_18 = add i32 %v0_18, 4
  %v2_18 = inttoptr i32 %v1_18 to i32*
  %v3_18 = load i32, i32* %v2_18, align 4
  %v4_18 = load i32, i32* @eax, align 8
  %v5_18 = and i32 %v4_18, %v3_18
  store i32 %v5_18, i32* %v2_18, align 4
  %v0_1f = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_1f = load i32, i32* %esi.global-to-local, align 4
  %v2_1f = add i32 %v1_1f, -80
  %v3_1f = inttoptr i32 %v2_1f to double*
  %v4_1f = load double, double* %v3_1f, align 4
  %v5_1f = fpext double %v4_1f to x86_fp80
  %v4_24 = fadd x86_fp80 %v5_1f, 0xKBFFF8000000000000000
  store x86_fp80 %v4_24, x86_fp80* %st7.global-to-local, align 4
  %v2_28 = fsub x86_fp80 0xK80000000000000000000, %v5_1f
  store x86_fp80 %v2_28, x86_fp80* %st6.global-to-local, align 4
  %v3_2e = add i32 %v1_1f, -16
  %v4_2e = inttoptr i32 %v3_2e to double*
  %v5_2e = load double, double* %v4_2e, align 4
  %v6_2e = fpext double %v5_2e to x86_fp80
  %v7_2e = fadd x86_fp80 %v4_24, %v6_2e
  store x86_fp80 %v7_2e, x86_fp80* %st7.global-to-local, align 4
  %tmp270 = fptrunc x86_fp80 %v7_2e to double
  store double %tmp270, double* %stack_var_-92, align 8
  %v3_34 = add i32 %v1_1f, -24
  %v4_34 = inttoptr i32 %v3_34 to double*
  %v5_34 = load double, double* %v4_34, align 4
  %v6_34 = fpext double %v5_34 to x86_fp80
  %v7_34 = fmul x86_fp80 %v7_2e, %v6_34
  %v4_3d = fdiv x86_fp80 0xK3FFF8000000000000000, %v7_34
  %v7_43 = fmul x86_fp80 %v4_3d, %v2_28
  %v4_49 = fadd x86_fp80 %v7_43, 0xK3FFF8000000000000000
  %v3_50 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_50 = fpext double %v3_50 to x86_fp80
  store x86_fp80 %v4_50, x86_fp80* %st7.global-to-local, align 4
  %v3_52 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_52 = fpext double %v3_52 to x86_fp80
  store x86_fp80 %v4_52, x86_fp80* %st6.global-to-local, align 4
  %v3_54 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_54 = fpext double %v3_54 to x86_fp80
  %v5_54 = add i3 %v0_1f, -3
  store i3 %v5_54, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v4_54, x86_fp80* %st5.global-to-local, align 4
  %v0_58 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_58 = call i16 @__asm_fnstsw(i32 %v0_58)
  %v2_58 = sext i16 %v1_58 to i32
  %v3_58 = load i32, i32* @eax, align 8
  %v4_58 = and i32 %v3_58, -65536
  %tmp276 = udiv i32 %v2_58, 2
  %v12_5a = and i32 %tmp276, 32512
  %v2_58.masked = and i32 %v2_58, -65281
  %v13_5a = or i32 %v4_58, %v2_58.masked
  %v14_5a = or i32 %v13_5a, %v12_5a
  store i32 %v14_5a, i32* @eax, align 8
  %v15_5a29 = and i32 %v2_58, 256
  %v16_5a = icmp eq i32 %v15_5a29, 0
  br i1 %v16_5a, label %dec_label_pc_5e, label %dec_label_pc_60

dec_label_pc_5e:                                  ; preds = %dec_label_pc_0
  %v2_5e = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v3_5e = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v3_5e, x86_fp80* %st5.global-to-local, align 4
  store x86_fp80 %v2_5e, x86_fp80* %st6.global-to-local, align 4
  br label %dec_label_pc_60

dec_label_pc_60:                                  ; preds = %dec_label_pc_0, %dec_label_pc_5e
  %v0_62 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_62 = call i16 @__asm_fnstsw(i32 %v0_62)
  %v2_62 = sext i16 %v1_62 to i32
  %v3_62 = load i32, i32* @eax, align 8
  %v4_62 = and i32 %v3_62, -65536
  %tmp277 = udiv i32 %v2_62, 2
  %v12_64 = and i32 %tmp277, 32512
  %v2_62.masked = and i32 %v2_62, -65281
  %v13_64 = or i32 %v4_62, %v2_62.masked
  %v14_64 = or i32 %v13_64, %v12_64
  store i32 %v14_64, i32* @eax, align 8
  %v0_6e = load i32, i32* %fpsw.global-to-local, align 4
  %v1_6e = call i16 @__asm_fnstsw(i32 %v0_6e)
  %v2_6e = sext i16 %v1_6e to i32
  %v3_6e = load i32, i32* @eax, align 8
  %v4_6e = and i32 %v3_6e, -65536
  %tmp278 = udiv i32 %v2_6e, 2
  %v12_70 = and i32 %tmp278, 32512
  %v2_6e.masked = and i32 %v2_6e, -65281
  %v13_70 = or i32 %v4_6e, %v2_6e.masked
  %v14_70 = or i32 %v13_70, %v12_70
  store i32 %v14_70, i32* @eax, align 8
  store x86_fp80 %v4_3d, x86_fp80* %st6.global-to-local, align 4
  %v0_7f = load i32, i32* %fpsw.global-to-local, align 4
  %v1_7f = call i16 @__asm_fnstsw(i32 %v0_7f)
  %v2_7f = sext i16 %v1_7f to i32
  %v3_7f = load i32, i32* @eax, align 8
  %v4_7f = and i32 %v3_7f, -65536
  %v4_818 = udiv i32 %v2_7f, 512
  %tmp274 = trunc i32 %v4_818 to i8
  %tmp280 = urem i8 %tmp274, -128
  %v5_81 = icmp eq i8 %tmp280, 0
  %v10_81 = zext i8 %tmp280 to i32
  %v12_81 = mul i32 %v10_81, 256
  %v2_7f.masked = and i32 %v2_7f, -65281
  %v13_81 = or i32 %v4_7f, %v2_7f.masked
  %v14_81 = or i32 %v13_81, %v12_81
  store i32 %v14_81, i32* @eax, align 8
  %v15_8132 = and i32 %v2_7f, 256
  %v16_81 = icmp ne i32 %v15_8132, 0
  %v2_83 = or i1 %v16_81, %v5_81
  br i1 %v2_83, label %dec_label_pc_d7, label %dec_label_pc_85

dec_label_pc_85:                                  ; preds = %dec_label_pc_60
  %v1_86 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v7_88 = fadd x86_fp80 %v1_86, %v4_49
  store x86_fp80 %v7_88, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v7_88, x86_fp80* %st6.global-to-local, align 4
  %v0_90 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_90 = call i16 @__asm_fnstsw(i32 %v0_90)
  %v2_90 = sext i16 %v1_90 to i32
  %v3_90 = load i32, i32* @eax, align 8
  %v4_90 = and i32 %v3_90, -65536
  %v4_9210 = udiv i32 %v2_90, 512
  %tmp275 = trunc i32 %v4_9210 to i8
  %tmp281 = urem i8 %tmp275, -128
  %v5_92 = icmp eq i8 %tmp281, 0
  %v10_92 = zext i8 %tmp281 to i32
  %v12_92 = mul i32 %v10_92, 256
  %v2_90.masked = and i32 %v2_90, -65281
  %v13_92 = or i32 %v4_90, %v2_90.masked
  %v14_92 = or i32 %v13_92, %v12_92
  store i32 %v14_92, i32* @eax, align 8
  %v15_9233 = and i32 %v2_90, 256
  %v16_92 = icmp ne i32 %v15_9233, 0
  %v2_94 = or i1 %v16_92, %v5_92
  br i1 %v2_94, label %dec_label_pc_d7, label %dec_label_pc_96

dec_label_pc_96:                                  ; preds = %dec_label_pc_85
  %v0_97 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_97 = load i32, i32* %esi.global-to-local, align 4
  %v2_97 = add i32 %v1_97, -32
  %v3_97 = inttoptr i32 %v2_97 to double*
  %v6_97 = add i3 %v0_97, -1
  %v2_9e = add i32 %v1_97, -40
  %v3_9e = inttoptr i32 %v2_9e to double*
  %v2_a5 = add i32 %v1_97, -48
  %v3_a5 = inttoptr i32 %v2_a5 to double*
  %v4_b0 = fmul x86_fp80 %v7_34, %v7_34
  %v4_b2 = fmul x86_fp80 %v4_b0, %v4_b0
  %v4_b4 = fmul x86_fp80 %v4_b2, %v4_b2
  store x86_fp80 %v4_b4, x86_fp80* %st7.global-to-local, align 4
  %v1_b6 = load i32, i32* @ecx, align 8
  %v2_b6 = add i32 %v1_b6, 8
  %v3_b6 = inttoptr i32 %v2_b6 to double*
  %v4_b6 = load double, double* %v3_b6, align 4
  %v5_b6 = fpext double %v4_b6 to x86_fp80
  store x86_fp80 %v5_b6, x86_fp80* %st6.global-to-local, align 4
  %v4_b9 = fmul x86_fp80 %v4_b4, %v5_b6
  store x86_fp80 %v4_b9, x86_fp80* %st7.global-to-local, align 4
  %v4_bb = fptrunc x86_fp80 %v4_b9 to double
  store double %v4_bb, double* %v3_b6, align 4
  %v4_be = load double, double* %v3_97, align 4
  %v5_be = fpext double %v4_be to x86_fp80
  %v4_c1 = fadd x86_fp80 %v5_be, %v5_be
  store x86_fp80 %v4_c1, x86_fp80* %st7.global-to-local, align 4
  %v4_c5 = load double, double* %v3_9e, align 4
  %v5_c5 = fpext double %v4_c5 to x86_fp80
  %v4_c8 = fadd x86_fp80 %v5_c5, %v5_c5
  store x86_fp80 %v4_c8, x86_fp80* %st7.global-to-local, align 4
  %v4_cc = load double, double* %v3_a5, align 4
  %v5_cc = fpext double %v4_cc to x86_fp80
  store i3 %v6_97, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_cc, x86_fp80* %st7.global-to-local, align 4
  %v4_cf = fadd x86_fp80 %v5_cc, %v5_cc
  br label %dec_label_pc_114

dec_label_pc_d7:                                  ; preds = %dec_label_pc_85, %dec_label_pc_60
  %v0_d7 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_d7 = load i32, i32* %esi.global-to-local, align 4
  %v2_d7 = add i32 %v1_d7, -56
  %v3_d7 = inttoptr i32 %v2_d7 to double*
  %v6_d7 = add i3 %v0_d7, -1
  %v2_de = add i32 %v1_d7, -64
  %v3_de = inttoptr i32 %v2_de to double*
  %v2_e5 = add i32 %v1_d7, -72
  %v3_e5 = inttoptr i32 %v2_e5 to double*
  %v3_ec = load double, double* %stack_var_-92, align 8
  %v8_ec = fpext double %v3_ec to x86_fp80
  %v4_f0 = fmul x86_fp80 %v8_ec, %v8_ec
  %v4_f2 = fmul x86_fp80 %v4_f0, %v4_f0
  %v4_f4 = fmul x86_fp80 %v4_f2, %v4_f2
  store x86_fp80 %v4_f4, x86_fp80* %st7.global-to-local, align 4
  %v1_f6 = load i32, i32* @ecx, align 8
  %v2_f6 = add i32 %v1_f6, 8
  %v3_f6 = inttoptr i32 %v2_f6 to double*
  %v4_f6 = load double, double* %v3_f6, align 4
  %v5_f6 = fpext double %v4_f6 to x86_fp80
  store x86_fp80 %v5_f6, x86_fp80* %st6.global-to-local, align 4
  %v4_f9 = fmul x86_fp80 %v4_f4, %v5_f6
  store x86_fp80 %v4_f9, x86_fp80* %st7.global-to-local, align 4
  %v4_fb = fptrunc x86_fp80 %v4_f9 to double
  store double %v4_fb, double* %v3_f6, align 4
  %v4_fe = load double, double* %v3_d7, align 4
  %v5_fe = fpext double %v4_fe to x86_fp80
  %v4_101 = fadd x86_fp80 %v5_fe, %v5_fe
  store x86_fp80 %v4_101, x86_fp80* %st7.global-to-local, align 4
  %v4_105 = load double, double* %v3_de, align 4
  %v5_105 = fpext double %v4_105 to x86_fp80
  %v4_108 = fadd x86_fp80 %v5_105, %v5_105
  store x86_fp80 %v4_108, x86_fp80* %st7.global-to-local, align 4
  %v4_10c = load double, double* %v3_e5, align 4
  %v5_10c = fpext double %v4_10c to x86_fp80
  store i3 %v6_d7, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_10c, x86_fp80* %st7.global-to-local, align 4
  %v4_10f = fadd x86_fp80 %v5_10c, %v5_10c
  br label %dec_label_pc_114

dec_label_pc_114:                                 ; preds = %dec_label_pc_d7, %dec_label_pc_96
  %storemerge.in = phi i3 [ %v6_d7, %dec_label_pc_d7 ], [ %v6_97, %dec_label_pc_96 ]
  %storemerge25.in.in = phi x86_fp80 [ %v4_10f, %dec_label_pc_d7 ], [ %v4_cf, %dec_label_pc_96 ]
  store x86_fp80 %storemerge25.in.in, x86_fp80* %st7.global-to-local, align 4
  %v2_115 = load i32, i32* %ebx.global-to-local, align 4
  %v3_115 = fptrunc x86_fp80 %storemerge25.in.in to double
  %v4_115 = inttoptr i32 %v2_115 to double*
  store double %v3_115, double* %v4_115, align 4
  %v1_117 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_117 = load i32, i32* @edx, align 8
  %v3_117 = fptrunc x86_fp80 %v1_117 to double
  %v4_117 = inttoptr i32 %v2_117 to double*
  store double %v3_117, double* %v4_117, align 4
  %v1_119 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_119 = load i32, i32* @ecx, align 8
  %v3_119 = fptrunc x86_fp80 %v1_119 to double
  %v4_119 = inttoptr i32 %v2_119 to double*
  store double %v3_119, double* %v4_119, align 4
  %v5_119 = xor i3 %storemerge.in, -4
  store i3 %v5_119, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_115, i32* @eax, align 8
  %v2_120 = load i32, i32* %stack_var_-12, align 4
  store i32 %v2_120, i32* %esi.global-to-local, align 4
  store i32 %v0_3, i32* %ebx.global-to-local, align 4
  ret i32 %v2_115
}

declare i16 @__asm_fnstsw(i32) local_unnamed_addr
