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
  %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* %ebx.global-to-local, align 4
  %v0_4 = load i32, i32* %esi.global-to-local, align 4
  %v0_5 = load i32, i32* %edi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v1_9 = add i32 %arg1, 48
  %v2_9 = inttoptr i32 %v1_9 to i32*
  %v3_9 = load i32, i32* %v2_9, align 4
  store i32 %v3_9, i32* %edi.global-to-local, align 4
  %v0_c = load i32, i32* @eax, align 8
  store i32 %v0_c, i32* %ebx.global-to-local, align 4
  %v0_e = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_e = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_e = fpext double %v3_e to x86_fp80
  %v3_10 = fmul x86_fp80 %v4_e, %v4_e
  %v3_12 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_12 = fpext double %v3_12 to x86_fp80
  %v3_14 = fmul x86_fp80 %v4_12, %v4_12
  %v4_16 = fsub x86_fp80 %v3_10, %v3_14
  %v3_18 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_18 = fpext double %v3_18 to x86_fp80
  %v3_1a = fmul x86_fp80 %v4_18, %v4_18
  %v4_1c = fsub x86_fp80 %v4_16, %v3_1a
  store x86_fp80 %v4_1c, x86_fp80* %st7.global-to-local, align 4
  %v6_22 = fmul x86_fp80 %v4_e, %v4_12
  %v3_24 = fadd x86_fp80 %v6_22, %v6_22
  store x86_fp80 %v3_24, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st5.global-to-local, align 4
  %v5_28 = xor i3 %v0_e, -4
  store i3 %v5_28, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v3_1a, x86_fp80* %st4.global-to-local, align 4
  %v1_2c = add i32 %v3_9, -12
  %v2_2c = inttoptr i32 %v1_2c to i32*
  %v3_2c = load i32, i32* %v2_2c, align 4
  %v7_30 = icmp sgt i32 %v3_2c, 0
  br i1 %v7_30, label %dec_label_pc_46, label %dec_label_pc_34

dec_label_pc_34:                                  ; preds = %dec_label_pc_0
  %v10_2c = icmp eq i32 %v3_2c, 0
  br i1 %v10_2c, label %dec_label_pc_48, label %dec_label_pc_3a

dec_label_pc_3a:                                  ; preds = %dec_label_pc_34
  store i3 %v5_28, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_40 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_40 = call i16 @__asm_fnstsw(i32 %v0_40)
  %v2_40 = sext i16 %v1_40 to i32
  %v3_40 = load i32, i32* @eax, align 8
  %v4_40 = and i32 %v3_40, -65536
  %tmp256 = udiv i32 %v2_40, 2
  %v12_42 = and i32 %tmp256, 32512
  %v2_40.masked = and i32 %v2_40, -65281
  %v13_42 = or i32 %v4_40, %v2_40.masked
  %v14_42 = or i32 %v13_42, %v12_42
  store i32 %v14_42, i32* @eax, align 8
  %v15_429 = and i32 %v2_40, 256
  %v16_42 = icmp eq i32 %v15_429, 0
  %v1_46.pre = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  br i1 %v16_42, label %dec_label_pc_46, label %dec_label_pc_48

dec_label_pc_46:                                  ; preds = %dec_label_pc_3a, %dec_label_pc_0
  %v1_46 = phi x86_fp80 [ %v3_1a, %dec_label_pc_0 ], [ %v1_46.pre, %dec_label_pc_3a ]
  %v2_46 = fsub x86_fp80 0xK80000000000000000000, %v1_46
  store x86_fp80 %v2_46, x86_fp80* %st4.global-to-local, align 4
  br label %dec_label_pc_48

dec_label_pc_48:                                  ; preds = %dec_label_pc_3a, %dec_label_pc_46, %dec_label_pc_34
  %v3_59 = phi x86_fp80 [ %v2_46, %dec_label_pc_46 ], [ %v3_1a, %dec_label_pc_34 ], [ %v1_46.pre, %dec_label_pc_3a ]
  %v0_48 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_48 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_48 = fpext double %v3_48 to x86_fp80
  %v3_4a = fmul x86_fp80 %v4_48, %v4_48
  %v3_4c = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_4c = fpext double %v3_4c to x86_fp80
  %v3_4e = fmul x86_fp80 %v4_4c, %v4_4c
  %v4_50 = fadd x86_fp80 %v3_4a, %v3_4e
  %v1_52 = load i32, i32* %edi.global-to-local, align 4
  %v2_52 = add i32 %v1_52, -24
  %v3_52 = inttoptr i32 %v2_52 to double*
  %v4_52 = load double, double* %v3_52, align 4
  %tmp251 = call double @llvm.fabs.f64(double %v4_52)
  %v2_55 = fpext double %tmp251 to x86_fp80
  %v4_57 = fadd x86_fp80 %v4_50, %v2_55
  %v4_59 = fdiv x86_fp80 %v3_59, %v4_57
  %v3_5b = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v4_5b = fadd x86_fp80 %v3_5b, %v4_59
  %v3_5d = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v4_5d = fmul x86_fp80 %v3_5d, %v4_5b
  store x86_fp80 %v4_5d, x86_fp80* %st6.global-to-local, align 4
  %v4_63 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v5_63 = fpext double %v4_63 to x86_fp80
  %v6_63 = fmul x86_fp80 %v4_48, %v5_63
  %v3_65 = fadd x86_fp80 %v6_63, %v6_63
  store x86_fp80 %v3_65, x86_fp80* %st5.global-to-local, align 4
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st4.global-to-local, align 4
  %v5_69 = add i3 %v0_48, -1
  store i3 %v5_69, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_6d = add i32 %v1_52, -16
  %v2_6d = inttoptr i32 %v1_6d to i32*
  %v3_6d = load i32, i32* %v2_6d, align 4
  %v7_71 = icmp sgt i32 %v3_6d, 0
  br i1 %v7_71, label %dec_label_pc_87, label %dec_label_pc_75

dec_label_pc_75:                                  ; preds = %dec_label_pc_48
  %v10_6d = icmp eq i32 %v3_6d, 0
  br i1 %v10_6d, label %dec_label_pc_89, label %dec_label_pc_7b

dec_label_pc_7b:                                  ; preds = %dec_label_pc_75
  store x86_fp80 %v4_4c, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 0xK00000000000000000000, x86_fp80* %st6.global-to-local, align 4
  store i3 %v5_69, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_81 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_81 = call i16 @__asm_fnstsw(i32 %v0_81)
  %v2_81 = sext i16 %v1_81 to i32
  %v3_81 = load i32, i32* @eax, align 8
  %v4_81 = and i32 %v3_81, -65536
  %tmp257 = udiv i32 %v2_81, 2
  %v12_83 = and i32 %tmp257, 32512
  %v2_81.masked = and i32 %v2_81, -65281
  %v13_83 = or i32 %v4_81, %v2_81.masked
  %v14_83 = or i32 %v13_83, %v12_83
  store i32 %v14_83, i32* @eax, align 8
  %v15_8310 = and i32 %v2_81, 256
  %v16_83 = icmp eq i32 %v15_8310, 0
  br i1 %v16_83, label %dec_label_pc_87, label %dec_label_pc_89

dec_label_pc_87:                                  ; preds = %dec_label_pc_7b, %dec_label_pc_48
  %v1_87 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_87 = fsub x86_fp80 0xK80000000000000000000, %v1_87
  store x86_fp80 %v2_87, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_89

dec_label_pc_89:                                  ; preds = %dec_label_pc_7b, %dec_label_pc_87, %dec_label_pc_75
  %v0_89 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_89 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_89 = fpext double %v3_89 to x86_fp80
  %v3_8b = fmul x86_fp80 %v4_89, %v4_89
  %v3_8d = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_8d = fpext double %v3_8d to x86_fp80
  %v3_8f = fmul x86_fp80 %v4_8d, %v4_8d
  store x86_fp80 %v3_8f, x86_fp80* %st6.global-to-local, align 4
  %v4_91 = fadd x86_fp80 %v3_8b, %v3_8f
  store x86_fp80 %v4_91, x86_fp80* %st7.global-to-local, align 4
  %v1_93 = load i32, i32* %edi.global-to-local, align 4
  %v2_93 = add i32 %v1_93, -24
  %v3_93 = inttoptr i32 %v2_93 to double*
  %v4_93 = load double, double* %v3_93, align 4
  %tmp253 = call double @llvm.fabs.f64(double %v4_93)
  %v2_96 = fpext double %tmp253 to x86_fp80
  store x86_fp80 %v2_96, x86_fp80* %st6.global-to-local, align 4
  %v4_98 = fadd x86_fp80 %v4_91, %v2_96
  %v4_9a = fdiv x86_fp80 %v4_98, %v4_98
  %v4_9c = fadd x86_fp80 %v4_9a, %v4_9a
  %v4_9e = fmul x86_fp80 %v4_9c, %v4_9c
  store x86_fp80 %v4_9e, x86_fp80* %st7.global-to-local, align 4
  %v2_a2 = load i32, i32* %esi.global-to-local, align 4
  %v3_a2 = add i32 %v2_a2, 40
  %v4_a2 = inttoptr i32 %v3_a2 to double*
  %v5_a2 = load double, double* %v4_a2, align 4
  %v6_a2 = fpext double %v5_a2 to x86_fp80
  %v7_a2 = fadd x86_fp80 %v4_9e, %v6_a2
  store x86_fp80 %v7_a2, x86_fp80* %st7.global-to-local, align 4
  %tmp254 = bitcast double %v3_8d to i64
  %tmp255 = trunc i64 %tmp254 to i32
  %v3_a5 = fptrunc x86_fp80 %v7_a2 to double
  %v4_a5 = inttoptr i32 %tmp255 to double*
  store double %v3_a5, double* %v4_a5, align 4
  %v1_a7 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_a7 = add i32 %v2_a2, 32
  %v4_a7 = inttoptr i32 %v3_a7 to double*
  %v5_a7 = load double, double* %v4_a7, align 4
  %v6_a7 = fpext double %v5_a7 to x86_fp80
  %v7_a7 = fadd x86_fp80 %v1_a7, %v6_a7
  store x86_fp80 %v7_a7, x86_fp80* %st7.global-to-local, align 4
  %v2_aa = load i32, i32* @edx, align 8
  %v3_aa = fptrunc x86_fp80 %v7_a7 to double
  %v4_aa = inttoptr i32 %v2_aa to double*
  store double %v3_aa, double* %v4_aa, align 4
  %v1_ac = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_ac = add i32 %v2_a2, 24
  %v4_ac = inttoptr i32 %v3_ac to double*
  %v5_ac = load double, double* %v4_ac, align 4
  %v6_ac = fpext double %v5_ac to x86_fp80
  %v7_ac = fadd x86_fp80 %v1_ac, %v6_ac
  store x86_fp80 %v7_ac, x86_fp80* %st7.global-to-local, align 4
  %v2_af = load i32, i32* %ebx.global-to-local, align 4
  %v3_af = fptrunc x86_fp80 %v7_ac to double
  %v4_af = inttoptr i32 %v2_af to double*
  store double %v3_af, double* %v4_af, align 4
  %v5_af = add i3 %v0_89, -3
  store i3 %v5_af, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_af, i32* @eax, align 8
  store i32 %v0_5, i32* %edi.global-to-local, align 4
  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_af
}

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 }
