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
  %v0_3 = load i32, i32* %ebx.global-to-local, align 4
  %v0_4 = load i32, i32* %esi.global-to-local, 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
  %v0_d = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_d = load double, double* bitcast (i32* @ecx to double*), align 8
  %tmp250 = call double @llvm.fabs.f64(double %v3_d)
  %v2_f = fpext double %tmp250 to x86_fp80
  store x86_fp80 %v2_f, x86_fp80* %st7.global-to-local, align 4
  %v3_11 = load double, double* bitcast (i32* @edx to double*), align 8
  %tmp251 = call double @llvm.fabs.f64(double %v3_11)
  %v2_13 = fpext double %tmp251 to x86_fp80
  store x86_fp80 %v2_13, x86_fp80* %st6.global-to-local, align 4
  %v3_15 = load double, double* bitcast (i32* @eax to double*), align 8
  %v5_15 = add i3 %v0_d, -3
  store i3 %v5_15, i3* %fpu_stat_TOP.global-to-local, align 1
  %tmp252 = call double @llvm.fabs.f64(double %v3_15)
  %v2_17 = fpext double %tmp252 to x86_fp80
  store x86_fp80 %v2_17, x86_fp80* %st5.global-to-local, align 4
  %v0_1b = load i32, i32* %fpsw.global-to-local, align 4
  %v1_1b = call i16 @__asm_fnstsw(i32 %v0_1b)
  %v2_1b = sext i16 %v1_1b to i32
  %v3_1b = load i32, i32* @eax, align 8
  %v4_1b = and i32 %v3_1b, -65536
  %tmp253 = udiv i32 %v2_1b, 2
  %v12_1d = and i32 %tmp253, 32512
  %v2_1b.masked = and i32 %v2_1b, -65281
  %v13_1d = or i32 %v4_1b, %v2_1b.masked
  %v14_1d = or i32 %v13_1d, %v12_1d
  store i32 %v14_1d, i32* @eax, align 8
  %v15_1d13 = and i32 %v2_1b, 256
  %v16_1d = icmp ne i32 %v15_1d13, 0
  %v1_1f = icmp eq i1 %v16_1d, false
  br i1 %v1_1f, label %dec_label_pc_23, label %dec_label_pc_21

dec_label_pc_21:                                  ; preds = %dec_label_pc_0
  %v2_21 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v3_21 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v3_21, x86_fp80* %st5.global-to-local, align 4
  store x86_fp80 %v2_21, x86_fp80* %st6.global-to-local, align 4
  br label %dec_label_pc_23

dec_label_pc_23:                                  ; preds = %dec_label_pc_21, %dec_label_pc_0
  %v0_25 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_25 = call i16 @__asm_fnstsw(i32 %v0_25)
  %v2_25 = sext i16 %v1_25 to i32
  %v3_25 = load i32, i32* @eax, align 8
  %v4_25 = and i32 %v3_25, -65536
  %tmp254 = udiv i32 %v2_25, 2
  %v12_27 = and i32 %tmp254, 32512
  %v2_25.masked = and i32 %v2_25, -65281
  %v13_27 = or i32 %v4_25, %v2_25.masked
  %v14_27 = or i32 %v13_27, %v12_27
  store i32 %v14_27, i32* @eax, align 8
  %v0_31 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_31 = call i16 @__asm_fnstsw(i32 %v0_31)
  %v2_31 = sext i16 %v1_31 to i32
  %v3_31 = load i32, i32* @eax, align 8
  %v4_31 = and i32 %v3_31, -65536
  %tmp255 = udiv i32 %v2_31, 2
  %v12_33 = and i32 %tmp255, 32512
  %v2_31.masked = and i32 %v2_31, -65281
  %v13_33 = or i32 %v4_31, %v2_31.masked
  %v14_33 = or i32 %v13_33, %v12_33
  store i32 %v14_33, i32* @eax, align 8
  %v0_39 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_39 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_3b = load i32, i32* %esi.global-to-local, align 4
  %v3_3b = add i32 %v2_3b, -68
  %v4_3b = inttoptr i32 %v3_3b to float*
  %v5_3b = load float, float* %v4_3b, align 4
  %v6_3b = fpext float %v5_3b to x86_fp80
  %v7_3b = fmul x86_fp80 %v2_39, %v6_3b
  store x86_fp80 %v7_3b, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v7_3b, x86_fp80* %st6.global-to-local, align 4
  %v3_40 = add i32 %v2_3b, -72
  %v4_40 = inttoptr i32 %v3_40 to float*
  %v5_40 = load float, float* %v4_40, align 4
  %v6_40 = fpext float %v5_40 to x86_fp80
  %v7_40 = fmul x86_fp80 %v7_3b, %v6_40
  %v4_43 = fadd x86_fp80 %v7_3b, %v7_40
  store x86_fp80 %v4_43, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v4_43, x86_fp80* %st6.global-to-local, align 4
  %v3_47 = add i32 %v2_3b, -76
  %v4_47 = inttoptr i32 %v3_47 to float*
  %v5_47 = load float, float* %v4_47, align 4
  %v6_47 = fpext float %v5_47 to x86_fp80
  %v7_47 = fmul x86_fp80 %v4_43, %v6_47
  %v4_4a = fadd x86_fp80 %v4_43, %v7_47
  store x86_fp80 %v4_4a, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v4_4a, x86_fp80* %st6.global-to-local, align 4
  %v3_4e = add i32 %v2_3b, -44
  %v4_4e = inttoptr i32 %v3_4e to float*
  %v5_4e = load float, float* %v4_4e, align 4
  %v6_4e = fpext float %v5_4e to x86_fp80
  %v7_4e = fmul x86_fp80 %v4_4a, %v6_4e
  store x86_fp80 %v7_4e, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_4a, x86_fp80* %st5.global-to-local, align 4
  %v3_53 = add i32 %v2_3b, -48
  %v4_53 = inttoptr i32 %v3_53 to float*
  %v5_53 = load float, float* %v4_53, align 4
  %v6_53 = fpext float %v5_53 to x86_fp80
  %v7_53 = fmul x86_fp80 %v4_4a, %v6_53
  %v4_56 = fadd x86_fp80 %v7_4e, %v7_53
  store x86_fp80 %v4_56, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_4a, x86_fp80* %st5.global-to-local, align 4
  %v3_5a = add i32 %v2_3b, -52
  %v4_5a = inttoptr i32 %v3_5a to float*
  %v5_5a = load float, float* %v4_5a, align 4
  %v6_5a = fpext float %v5_5a to x86_fp80
  %v7_5a = fmul x86_fp80 %v4_4a, %v6_5a
  store x86_fp80 %v7_5a, x86_fp80* %st5.global-to-local, align 4
  %v4_5d = fadd x86_fp80 %v4_56, %v7_5a
  store x86_fp80 %v4_4a, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_5d, x86_fp80* %st7.global-to-local, align 4
  %v3_61 = add i32 %v2_3b, -56
  %v4_61 = inttoptr i32 %v3_61 to float*
  %v5_61 = load float, float* %v4_61, align 4
  %v6_61 = fpext float %v5_61 to x86_fp80
  %v7_61 = fmul x86_fp80 %v4_5d, %v6_61
  store x86_fp80 %v7_61, x86_fp80* %st7.global-to-local, align 4
  %v3_66 = add i32 %v2_3b, -60
  %v4_66 = inttoptr i32 %v3_66 to float*
  %v5_66 = load float, float* %v4_66, align 4
  %v6_66 = fpext float %v5_66 to x86_fp80
  %v7_66 = fmul x86_fp80 %v7_61, %v6_66
  %v4_69 = fadd x86_fp80 %v7_66, %v7_66
  store x86_fp80 %v4_69, x86_fp80* %st7.global-to-local, align 4
  %v3_6d = add i32 %v2_3b, -64
  %v4_6d = inttoptr i32 %v3_6d to float*
  %v5_6d = load float, float* %v4_6d, align 4
  %v6_6d = fpext float %v5_6d to x86_fp80
  %v7_6d = fmul x86_fp80 %v4_69, %v6_6d
  %v4_70 = fadd x86_fp80 %v7_6d, %v7_6d
  store x86_fp80 %v4_70, x86_fp80* %st7.global-to-local, align 4
  %v2_72 = add i32 %v2_3b, -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
  store x86_fp80 %v5_72, x86_fp80* %st7.global-to-local, align 4
  %v1_75 = load i32, i32* @ecx, align 8
  %v2_75 = add i32 %v1_75, 8
  %v3_75 = inttoptr i32 %v2_75 to double*
  %v4_75 = load double, double* %v3_75, align 4
  %v5_75 = fpext double %v4_75 to x86_fp80
  %v4_78 = fmul x86_fp80 %v5_72, %v5_75
  %v4_7a = fptrunc x86_fp80 %v4_78 to double
  store double %v4_7a, double* %v3_75, align 4
  %v2_7d = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_7d = fmul x86_fp80 %v2_7d, %v2_7d
  %v4_7f = fmul x86_fp80 %v4_7d, %v4_7d
  store x86_fp80 %v4_7f, x86_fp80* %st7.global-to-local, align 4
  %v4_85 = fadd x86_fp80 %v4_7f, 0xKBFFF8000000000000000
  store x86_fp80 %v4_85, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_85, x86_fp80* %st5.global-to-local, align 4
  %v3_8b = add i32 %v2_3b, -24
  %v4_8b = inttoptr i32 %v3_8b to double*
  %v5_8b = load double, double* %v4_8b, align 4
  %v6_8b = fpext double %v5_8b to x86_fp80
  %v7_8b = fmul x86_fp80 %v4_85, %v6_8b
  %v4_8e = fsub x86_fp80 %v4_7f, %v7_8b
  store x86_fp80 %v4_8e, x86_fp80* %st7.global-to-local, align 4
  %v3_90 = add i32 %v2_3b, -32
  %v4_90 = inttoptr i32 %v3_90 to double*
  %v5_90 = load double, double* %v4_90, align 4
  %v6_90 = fpext double %v5_90 to x86_fp80
  %v7_90 = fmul x86_fp80 %v4_85, %v6_90
  store x86_fp80 %v7_90, x86_fp80* %st5.global-to-local, align 4
  %v4_93 = fsub x86_fp80 %v4_8e, %v7_90
  store x86_fp80 %v4_93, x86_fp80* %st7.global-to-local, align 4
  %v4_95 = fdiv x86_fp80 %v4_85, %v4_93
  store x86_fp80 %v4_95, x86_fp80* %st6.global-to-local, align 4
  %v3_97 = add i32 %v2_3b, -40
  %v4_97 = inttoptr i32 %v3_97 to double*
  %v5_97 = load double, double* %v4_97, align 4
  %v6_97 = fpext double %v5_97 to x86_fp80
  %v7_97 = fmul x86_fp80 %v4_95, %v6_97
  store x86_fp80 %v7_97, x86_fp80* %st6.global-to-local, align 4
  %v4_9a = fsub x86_fp80 %v4_93, %v7_97
  %v2_9e = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_9a)
  %v4_a0 = fsub x86_fp80 %v2_9e, %v2_9e
  %v4_a2 = fmul x86_fp80 %v4_a0, %v4_a0
  store x86_fp80 %v4_a2, x86_fp80* %st7.global-to-local, align 4
  %v2_a4 = load i32, i32* @edx, align 8
  %v3_a4 = fptrunc x86_fp80 %v4_a2 to double
  %v4_a4 = inttoptr i32 %v2_a4 to double*
  store double %v3_a4, double* %v4_a4, align 4
  %v1_a6 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_a6 = load i32, i32* %ebx.global-to-local, align 4
  %v3_a6 = fptrunc x86_fp80 %v1_a6 to double
  %v4_a6 = inttoptr i32 %v2_a6 to double*
  store double %v3_a6, double* %v4_a6, align 4
  %v1_a8 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_a8 = load i32, i32* @ecx, align 8
  %v3_a8 = fptrunc x86_fp80 %v1_a8 to double
  %v4_a8 = inttoptr i32 %v2_a8 to double*
  store double %v3_a8, double* %v4_a8, align 4
  %v5_a8 = add i3 %v0_39, 3
  store i3 %v5_a8, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_a6, i32* @eax, align 8
  store i32 %v0_4, i32* %esi.global-to-local, align 4
  store i32 %v0_3, i32* %ebx.global-to-local, align 4
  ret i32 %v2_a6
}

; Function Attrs: nounwind readnone speculatable
declare x86_fp80 @llvm.fabs.f80(x86_fp80) #0

declare i16 @__asm_fnstsw(i32) local_unnamed_addr

; Function Attrs: nounwind readnone speculatable
declare double @llvm.fabs.f64(double) #0

attributes #0 = { nounwind readnone speculatable }
