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
  %st6.global-to-local = alloca x86_fp80, align 4
  %st7.global-to-local = alloca x86_fp80, align 4
  %v0_3 = load i32, i32* %esi.global-to-local, align 4
  %v0_4 = load i32, i32* %ebx.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v0_8 = load i32, i32* @eax, align 8
  store i32 %v0_8, i32* %ebx.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* @eax to double*), align 8
  %v4_d = fpext double %v3_d to x86_fp80
  %v5_d = add i3 %v0_d, -1
  store x86_fp80 %v4_d, x86_fp80* %st7.global-to-local, align 4
  %v3_f = add i32 %v3_a, -32
  %v4_f = inttoptr i32 %v3_f to double*
  %v5_f = load double, double* %v4_f, align 4
  %v6_f = fpext double %v5_f to x86_fp80
  %v7_f = fmul x86_fp80 %v4_d, %v6_f
  store x86_fp80 %v7_f, x86_fp80* %st7.global-to-local, align 4
  %v3_12 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_12 = fpext double %v3_12 to x86_fp80
  store x86_fp80 %v4_12, x86_fp80* %st6.global-to-local, align 4
  %v3_14 = add i32 %v3_a, -40
  %v4_14 = inttoptr i32 %v3_14 to double*
  %v5_14 = load double, double* %v4_14, align 4
  %v6_14 = fpext double %v5_14 to x86_fp80
  %v7_14 = fmul x86_fp80 %v4_12, %v6_14
  %v2_17 = fsub x86_fp80 0xK80000000000000000000, %v7_14
  store x86_fp80 %v2_17, x86_fp80* %st6.global-to-local, align 4
  %v4_19 = fsub x86_fp80 %v7_f, %v7_14
  store x86_fp80 %v4_19, x86_fp80* %st7.global-to-local, align 4
  %v3_1b = add i32 %v3_a, -48
  %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 = fadd x86_fp80 %v4_19, %v6_1b
  %v2_20 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_1b)
  %v2_22 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v2_20)
  store x86_fp80 %v7_1b, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v2_22, x86_fp80* %st7.global-to-local, align 4
  store i3 %v5_d, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_2a = load i32, i32* %fpsw.global-to-local, align 4
  %v1_2a = call i16 @__asm_fnstsw(i32 %v0_2a)
  %v2_2a = sext i16 %v1_2a to i32
  %v3_2a = load i32, i32* @eax, align 8
  %v4_2a = and i32 %v3_2a, -65536
  %v1_2c = udiv i32 %v2_2a, 256
  %v2_2c = trunc i32 %v1_2c to i8
  %v3_2c = and i8 %v2_2c, 65
  %v4_2c = icmp eq i8 %v3_2c, 0
  %v9_2c = zext i8 %v3_2c to i32
  %v11_2c = mul i32 %v9_2c, 256
  %v2_2a.masked = and i32 %v2_2a, -65281
  %v12_2c = or i32 %v4_2a, %v2_2a.masked
  %v13_2c = or i32 %v12_2c, %v11_2c
  store i32 %v13_2c, i32* @eax, align 8
  %v4_2f = icmp eq i1 %v4_2c, false
  %v1_33.pre = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  br i1 %v4_2f, label %dec_label_pc_33, label %dec_label_pc_31

dec_label_pc_31:                                  ; preds = %dec_label_pc_0
  %v2_31 = fsub x86_fp80 0xK80000000000000000000, %v1_33.pre
  store x86_fp80 %v2_31, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_33

dec_label_pc_33:                                  ; preds = %dec_label_pc_0, %dec_label_pc_31
  %v1_33 = phi x86_fp80 [ %v2_31, %dec_label_pc_31 ], [ %v1_33.pre, %dec_label_pc_0 ]
  %v4_33 = load double, double* bitcast (i32* @edx to double*), align 8
  %v5_33 = fpext double %v4_33 to x86_fp80
  %v6_33 = fadd x86_fp80 %v1_33, %v5_33
  store x86_fp80 %v6_33, x86_fp80* %st7.global-to-local, align 4
  %v0_37 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_37 = load i32, i32* %esi.global-to-local, align 4
  %v2_37 = add i32 %v1_37, -24
  %v3_37 = inttoptr i32 %v2_37 to double*
  %v4_37 = load double, double* %v3_37, align 4
  %v5_37 = fpext double %v4_37 to x86_fp80
  %v4_3a = load double, double* bitcast (i32* @eax to double*), align 8
  %v5_3a = fpext double %v4_3a to x86_fp80
  %v6_3a = fsub x86_fp80 %v5_37, %v5_3a
  store x86_fp80 %v6_3a, x86_fp80* %st6.global-to-local, align 4
  %v3_3c = add i32 %v1_37, -16
  %v4_3c = inttoptr i32 %v3_3c to double*
  %v5_3c = load double, double* %v4_3c, align 4
  %v6_3c = fpext double %v5_3c to x86_fp80
  %v7_3c = fmul x86_fp80 %v6_3a, %v6_3c
  store x86_fp80 %v7_3c, x86_fp80* %st6.global-to-local, align 4
  %v4_41 = load double, double* %v3_37, align 4
  %v5_41 = fpext double %v4_41 to x86_fp80
  %v6_44 = fmul x86_fp80 %v5_33, %v5_41
  %v3_48 = add i32 %v1_37, -32
  %v4_48 = inttoptr i32 %v3_48 to double*
  %v5_48 = load double, double* %v4_48, align 4
  %v6_48 = fpext double %v5_48 to x86_fp80
  %v7_48 = fmul x86_fp80 %v5_3a, %v6_48
  %v4_4d = fsub x86_fp80 %v6_44, %v7_48
  %v3_4f = add i32 %v1_37, -56
  %v4_4f = inttoptr i32 %v3_4f to double*
  %v5_4f = load double, double* %v4_4f, align 4
  %v6_4f = fpext double %v5_4f to x86_fp80
  %v7_4f = fmul x86_fp80 %v4_4d, %v6_4f
  %v4_52 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v5_52 = fpext double %v4_52 to x86_fp80
  %v6_52 = fadd x86_fp80 %v7_4f, %v5_52
  %tmp235 = bitcast double %v4_52 to i64
  %tmp236 = trunc i64 %tmp235 to i32
  %v3_56 = fptrunc x86_fp80 %v6_52 to double
  %v4_56 = inttoptr i32 %tmp236 to double*
  store double %v3_56, double* %v4_56, align 4
  %v1_58 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v2_58 = load i32, i32* @edx, align 8
  %v3_58 = fptrunc x86_fp80 %v1_58 to double
  %v4_58 = inttoptr i32 %v2_58 to double*
  store double %v3_58, double* %v4_58, align 4
  %v1_5a = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_5a = load i32, i32* %ebx.global-to-local, align 4
  %v3_5a = fptrunc x86_fp80 %v1_5a to double
  %v4_5a = inttoptr i32 %v2_5a to double*
  store double %v3_5a, double* %v4_5a, align 4
  %v5_5a = add i3 %v0_37, 1
  store i3 %v5_5a, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_5a, i32* @eax, align 8
  store i32 %v0_4, i32* %ebx.global-to-local, align 4
  store i32 %v0_3, i32* %esi.global-to-local, align 4
  ret i32 %v2_5a
}

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

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

declare i16 @__asm_fnstsw(i32) local_unnamed_addr

attributes #0 = { nounwind readnone speculatable }
