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:
  %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
  %st1.global-to-local = alloca x86_fp80, align 4
  %st2.global-to-local = alloca x86_fp80, align 4
  %st3.global-to-local = alloca x86_fp80, align 4
  %st4.global-to-local = alloca x86_fp80, align 4
  %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* @eax, align 8
  %v0_4 = load i32, i32* %esi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v3_8 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_8 = fpext double %v3_8 to x86_fp80
  store x86_fp80 %v4_8, x86_fp80* %st7.global-to-local, align 4
  %v3_a = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_a = fpext double %v3_a to x86_fp80
  store x86_fp80 %v4_a, x86_fp80* %st6.global-to-local, align 4
  %v3_c = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_c = fpext double %v3_c to x86_fp80
  store x86_fp80 %v4_c, x86_fp80* %st5.global-to-local, align 4
  %v3_10 = fmul x86_fp80 %v4_8, %v4_8
  store x86_fp80 %v3_10, x86_fp80* %st4.global-to-local, align 4
  %v3_14 = fmul x86_fp80 %v4_a, %v4_a
  store x86_fp80 %v3_14, x86_fp80* %st3.global-to-local, align 4
  %v3_18 = fmul x86_fp80 %v4_c, %v4_c
  store x86_fp80 %v3_18, x86_fp80* %st2.global-to-local, align 4
  %v4_1c = fadd x86_fp80 %v3_10, %v3_14
  store x86_fp80 %v4_1c, x86_fp80* %st1.global-to-local, align 4
  %v2_20 = call x86_fp80 @llvm.sqrt.f80(x86_fp80 %v4_1c)
  %v0_24 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_24 = call i16 @__asm_fnstsw(i32 %v0_24)
  %v2_24 = sext i16 %v1_24 to i32
  %v3_24 = load i32, i32* @eax, align 8
  %v4_24 = and i32 %v3_24, -65536
  %v3_26 = load x86_fp80, x86_fp80* %st2.global-to-local, align 4
  store x86_fp80 %v2_20, x86_fp80* %st2.global-to-local, align 4
  %v0_28 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_28 = load x86_fp80, x86_fp80* %st1.global-to-local, align 4
  %v4_28 = fsub x86_fp80 %v3_26, %v3_28
  store x86_fp80 %v4_28, x86_fp80* %st1.global-to-local, align 4
  %v7_28 = add i3 %v0_28, 1
  store i3 %v7_28, i3* %fpu_stat_TOP.global-to-local, align 1
  %tmp238 = udiv i32 %v2_24, 2
  %v12_2a = and i32 %tmp238, 32512
  %v2_24.masked = and i32 %v2_24, -65281
  %v13_2a = or i32 %v4_24, %v2_24.masked
  %v14_2a = or i32 %v13_2a, %v12_2a
  store i32 %v14_2a, i32* @eax, align 8
  %v15_2a4 = and i32 %v2_24, 256
  %v16_2a = icmp ne i32 %v15_2a4, 0
  %v1_2c = icmp eq i1 %v16_2a, false
  %v2_37.pre = load i32, i32* %esi.global-to-local, align 4
  br i1 %v1_2c, label %dec_label_pc_37, label %dec_label_pc_2e

dec_label_pc_2e:                                  ; preds = %dec_label_pc_0
  %v1_2e = add i32 %v2_37.pre, 31
  %v2_2e = inttoptr i32 %v1_2e to i8*
  %v3_2e = load i8, i8* %v2_2e, align 1
  %v6_2e = and i32 %v14_2a, -33024
  %v3_31 = mul i8 %v3_2e, 2
  %v9_31 = zext i8 %v3_31 to i32
  %v12_31 = or i32 %v6_2e, %v9_31
  store i32 %v12_31, i32* @eax, align 8
  %v15_31 = icmp slt i8 %v3_2e, 0
  br i1 %v15_31, label %dec_label_pc_37, label %dec_label_pc_35

dec_label_pc_35:                                  ; preds = %dec_label_pc_2e
  %v1_35 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_35 = fsub x86_fp80 0xK80000000000000000000, %v1_35
  store x86_fp80 %v2_35, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_37

dec_label_pc_37:                                  ; preds = %dec_label_pc_0, %dec_label_pc_35, %dec_label_pc_2e
  %v3_37 = add i32 %v2_37.pre, 24
  %v4_37 = inttoptr i32 %v3_37 to double*
  %v5_37 = load double, double* %v4_37, align 4
  %v6_37 = fpext double %v5_37 to x86_fp80
  %v7_37 = fadd x86_fp80 %v4_28, %v6_37
  %v2_3a = load i32, i32* @edx, align 8
  %v3_3a = add i32 %v2_3a, -8
  %v4_3a = fptrunc x86_fp80 %v7_37 to double
  %v5_3a = inttoptr i32 %v3_3a to double*
  store double %v4_3a, double* %v5_3a, align 4
  store x86_fp80 0xKC0008000000000000000, x86_fp80* %st1.global-to-local, align 4
  %v3_43 = load x86_fp80, x86_fp80* %st2.global-to-local, align 4
  %v4_43 = fdiv x86_fp80 0xKC0008000000000000000, %v3_43
  %v3_45 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v2_47 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v3_45)
  store x86_fp80 %v2_47, x86_fp80* %st2.global-to-local, align 4
  %v4_49 = fmul x86_fp80 %v4_43, %v2_47
  store x86_fp80 %v4_49, x86_fp80* %st5.global-to-local, align 4
  %v2_4b = load x86_fp80, x86_fp80* %st3.global-to-local, align 4
  %v3_4b = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  %v4_4b = fsub x86_fp80 %v2_4b, %v3_4b
  %v4_4d = fmul x86_fp80 %v4_49, %v4_4b
  store x86_fp80 %v4_4d, x86_fp80* %st4.global-to-local, align 4
  %v3_4f = add i32 %v2_37.pre, 32
  %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 = fadd x86_fp80 %v4_4d, %v6_4f
  store x86_fp80 %v7_4f, x86_fp80* %st4.global-to-local, align 4
  %v2_52 = load i32, i32* @edx, align 8
  %v3_52 = fptrunc x86_fp80 %v7_4f to double
  %v4_52 = inttoptr i32 %v2_52 to double*
  store double %v3_52, double* %v4_52, align 4
  %v2_54 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v3_54 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v4_54 = fmul x86_fp80 %v2_54, %v3_54
  store x86_fp80 %v4_54, x86_fp80* %st6.global-to-local, align 4
  %v3_56 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_56 = fmul x86_fp80 %v4_54, %v3_56
  %v3_58 = fadd x86_fp80 %v4_56, %v4_56
  store x86_fp80 %v3_58, x86_fp80* %st7.global-to-local, align 4
  %v3_5a = add i32 %v2_37.pre, 40
  %v4_5a = inttoptr i32 %v3_5a to double*
  %v5_5a = load double, double* %v4_5a, align 4
  %v6_5a = fpext double %v5_5a to x86_fp80
  %v7_5a = fadd x86_fp80 %v3_58, %v6_5a
  store x86_fp80 %v7_5a, x86_fp80* %st7.global-to-local, align 4
  %v2_5d = load i32, i32* @ecx, align 8
  %v3_5d = fptrunc x86_fp80 %v7_5a to double
  %v4_5d = inttoptr i32 %v2_5d to double*
  store double %v3_5d, double* %v4_5d, align 4
  store i3 %v0_28, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_4, i32* %esi.global-to-local, align 4
  store i32 %v0_3, i32* @eax, align 8
  ret i32 %v0_3
}

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

declare i16 @__asm_fnstsw(i32) local_unnamed_addr

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

attributes #0 = { nounwind readnone speculatable }
