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
  %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* %esi.global-to-local, align 4
  %v0_4 = load i32, i32* %edi.global-to-local, align 4
  %v0_5 = load i32, i32* %ebx.global-to-local, align 4
  store i32 %arg1, i32* %edi.global-to-local, align 4
  %v0_9 = load i32, i32* @eax, align 8
  store i32 %v0_9, i32* %ebx.global-to-local, align 4
  %v1_b = add i32 %arg1, 48
  %v2_b = inttoptr i32 %v1_b to i32*
  %v3_b = load i32, i32* %v2_b, align 4
  store i32 %v3_b, i32* %esi.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
  store x86_fp80 %v4_e, x86_fp80* %st7.global-to-local, align 4
  %v3_10 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_10 = fpext double %v3_10 to x86_fp80
  store x86_fp80 %v4_10, x86_fp80* %st6.global-to-local, align 4
  %v2_14 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_10)
  store x86_fp80 %v2_14, x86_fp80* %st5.global-to-local, align 4
  %v3_16 = add i32 %v3_b, -12
  %v4_16 = inttoptr i32 %v3_16 to float*
  %v5_16 = load float, float* %v4_16, align 4
  %v6_16 = fpext float %v5_16 to x86_fp80
  %v7_16 = fmul x86_fp80 %v2_14, %v6_16
  store x86_fp80 %v7_16, x86_fp80* %st5.global-to-local, align 4
  %v8_1d = add i3 %v0_e, -2
  store i3 %v8_1d, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_1f = load i32, i32* %fpsw.global-to-local, align 4
  %v1_1f = call i16 @__asm_fnstsw(i32 %v0_1f)
  %v2_1f = sext i16 %v1_1f to i32
  %v3_1f = load i32, i32* @eax, align 8
  %v4_1f = and i32 %v3_1f, -65536
  %v1_21 = udiv i32 %v2_1f, 256
  %v2_21 = trunc i32 %v1_21 to i8
  %v3_21 = and i8 %v2_21, 65
  %v4_21 = icmp eq i8 %v3_21, 0
  %v9_21 = zext i8 %v3_21 to i32
  %v11_21 = mul i32 %v9_21, 256
  %v2_1f.masked = and i32 %v2_1f, -65281
  %v12_21 = or i32 %v4_1f, %v2_1f.masked
  %v13_21 = or i32 %v12_21, %v11_21
  store i32 %v13_21, i32* @eax, align 8
  br i1 %v4_21, label %dec_label_pc_28, label %dec_label_pc_26

dec_label_pc_26:                                  ; preds = %dec_label_pc_0
  %v2_26 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_26 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v3_26, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v2_26, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_28

dec_label_pc_28:                                  ; preds = %dec_label_pc_26, %dec_label_pc_0
  %v0_28 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_28 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_28 = fpext double %v3_28 to x86_fp80
  store x86_fp80 %v4_28, x86_fp80* %st5.global-to-local, align 4
  %v8_35 = add i3 %v0_28, -1
  store i3 %v8_35, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_37 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_37 = call i16 @__asm_fnstsw(i32 %v0_37)
  %v2_37 = sext i16 %v1_37 to i32
  %v3_37 = load i32, i32* @eax, align 8
  %v4_37 = and i32 %v3_37, -65536
  %v1_39 = udiv i32 %v2_37, 256
  %v2_39 = trunc i32 %v1_39 to i8
  %v3_39 = and i8 %v2_39, 65
  %v4_39 = icmp eq i8 %v3_39, 0
  %v9_39 = zext i8 %v3_39 to i32
  %v11_39 = mul i32 %v9_39, 256
  %v2_37.masked = and i32 %v2_37, -65281
  %v12_39 = or i32 %v4_37, %v2_37.masked
  %v13_39 = or i32 %v12_39, %v11_39
  store i32 %v13_39, i32* @eax, align 8
  br i1 %v4_39, label %dec_label_pc_40, label %dec_label_pc_3e

dec_label_pc_3e:                                  ; preds = %dec_label_pc_28
  %v2_3e = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v3_3e = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v3_3e, x86_fp80* %st5.global-to-local, align 4
  store x86_fp80 %v2_3e, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_40

dec_label_pc_40:                                  ; preds = %dec_label_pc_3e, %dec_label_pc_28
  %v0_4d = load i32, i32* %fpsw.global-to-local, align 4
  %v1_4d = call i16 @__asm_fnstsw(i32 %v0_4d)
  %v2_4d = sext i16 %v1_4d to i32
  %v3_4d = load i32, i32* @eax, align 8
  %v4_4d = and i32 %v3_4d, -65536
  %v1_4f = udiv i32 %v2_4d, 256
  %v2_4f = trunc i32 %v1_4f to i8
  %v3_4f = and i8 %v2_4f, 65
  %v4_4f = icmp eq i8 %v3_4f, 0
  %v9_4f = zext i8 %v3_4f to i32
  %v11_4f = mul i32 %v9_4f, 256
  %v2_4d.masked = and i32 %v2_4d, -65281
  %v12_4f = or i32 %v4_4d, %v2_4d.masked
  %v13_4f = or i32 %v12_4f, %v11_4f
  store i32 %v13_4f, i32* @eax, align 8
  br i1 %v4_4f, label %dec_label_pc_56, label %dec_label_pc_54

dec_label_pc_54:                                  ; preds = %dec_label_pc_40
  %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
  store x86_fp80 %v3_54, x86_fp80* %st5.global-to-local, align 4
  store x86_fp80 %v2_54, x86_fp80* %st6.global-to-local, align 4
  br label %dec_label_pc_56

dec_label_pc_56:                                  ; preds = %dec_label_pc_40, %dec_label_pc_54
  %v0_56 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_56 = add i3 %v0_56, -1
  store i3 %v3_56, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_5c = load i32, i32* %fpsw.global-to-local, align 4
  %v1_5c = call i16 @__asm_fnstsw(i32 %v0_5c)
  %v2_5c = sext i16 %v1_5c to i32
  %v3_5c = load i32, i32* @eax, align 8
  %v4_5c = and i32 %v3_5c, -65536
  store i3 %v0_56, i3* %fpu_stat_TOP.global-to-local, align 1
  %tmp262 = udiv i32 %v2_5c, 2
  %v12_60 = and i32 %tmp262, 32512
  %v2_5c.masked = and i32 %v2_5c, -65281
  %v13_60 = or i32 %v4_5c, %v2_5c.masked
  %v14_60 = or i32 %v13_60, %v12_60
  store i32 %v14_60, i32* @eax, align 8
  %v15_6018 = and i32 %v2_5c, 256
  %v16_60 = icmp eq i32 %v15_6018, 0
  %v2_64 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  br i1 %v16_60, label %dec_label_pc_64, label %dec_label_pc_6a

dec_label_pc_64:                                  ; preds = %dec_label_pc_56
  %v2_66 = fsub x86_fp80 0xK80000000000000000000, %v2_64
  store x86_fp80 %v2_66, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_6a

dec_label_pc_6a:                                  ; preds = %dec_label_pc_56, %dec_label_pc_64
  %v1_6a = phi x86_fp80 [ %v2_66, %dec_label_pc_64 ], [ %v2_64, %dec_label_pc_56 ]
  store i3 %v3_56, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_6c = fmul x86_fp80 %v1_6a, %v1_6a
  store x86_fp80 %v4_6c, x86_fp80* %st7.global-to-local, align 4
  %v0_70 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_70 = call i16 @__asm_fnstsw(i32 %v0_70)
  %v2_70 = sext i16 %v1_70 to i32
  %v3_70 = load i32, i32* @eax, align 8
  %v4_70 = and i32 %v3_70, -65536
  %v0_72 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_72 = add i3 %v0_72, 1
  store i3 %v4_72, i3* %fpu_stat_TOP.global-to-local, align 1
  %tmp263 = udiv i32 %v2_70, 2
  %v12_74 = and i32 %tmp263, 32512
  %v2_70.masked = and i32 %v2_70, -65281
  %v13_74 = or i32 %v4_70, %v2_70.masked
  %v14_74 = or i32 %v13_74, %v12_74
  store i32 %v14_74, i32* @eax, align 8
  %v15_7419 = and i32 %v2_70, 256
  %v16_74 = icmp eq i32 %v15_7419, 0
  %v1_78 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  br i1 %v16_74, label %dec_label_pc_78, label %dec_label_pc_7a

dec_label_pc_78:                                  ; preds = %dec_label_pc_6a
  %v2_78 = fsub x86_fp80 0xK80000000000000000000, %v1_78
  store x86_fp80 %v2_78, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_7a

dec_label_pc_7a:                                  ; preds = %dec_label_pc_6a, %dec_label_pc_78
  %v2_7a = phi x86_fp80 [ %v2_78, %dec_label_pc_78 ], [ %v1_78, %dec_label_pc_6a ]
  %v3_7c = fmul x86_fp80 %v2_7a, %v2_7a
  %v3_80 = fmul x86_fp80 %v3_7c, %v3_7c
  %v4_82 = fsub x86_fp80 %v3_7c, %v3_80
  %v3_86 = fmul x86_fp80 %v4_82, %v4_82
  store x86_fp80 %v3_86, x86_fp80* %st6.global-to-local, align 4
  %v4_88 = fsub x86_fp80 %v4_82, %v3_86
  store x86_fp80 %v4_88, x86_fp80* %st7.global-to-local, align 4
  %v2_8a = load i32, i32* %edi.global-to-local, align 4
  %v3_8a = add i32 %v2_8a, 24
  %v4_8a = inttoptr i32 %v3_8a to double*
  %v5_8a = load double, double* %v4_8a, align 4
  %v6_8a = fpext double %v5_8a to x86_fp80
  %v7_8a = fadd x86_fp80 %v4_88, %v6_8a
  store x86_fp80 %v7_8a, x86_fp80* %st7.global-to-local, align 4
  %v2_8d = load i32, i32* %ebx.global-to-local, align 4
  %v3_8d = fptrunc x86_fp80 %v7_8a to double
  %v4_8d = inttoptr i32 %v2_8d to double*
  store double %v3_8d, double* %v4_8d, align 4
  %v2_8f = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_8f = fmul x86_fp80 %v2_8f, %v2_8f
  %v3_91 = fadd x86_fp80 %v4_8f, %v4_8f
  store x86_fp80 %v3_91, x86_fp80* %st7.global-to-local, align 4
  %v3_93 = add i32 %v2_8a, 32
  %v4_93 = inttoptr i32 %v3_93 to double*
  %v5_93 = load double, double* %v4_93, align 4
  %v6_93 = fpext double %v5_93 to x86_fp80
  %v7_93 = fadd x86_fp80 %v3_91, %v6_93
  store x86_fp80 %v7_93, x86_fp80* %st7.global-to-local, align 4
  %v2_96 = load i32, i32* @edx, align 8
  %v3_96 = fptrunc x86_fp80 %v7_93 to double
  %v4_96 = inttoptr i32 %v2_96 to double*
  store double %v3_96, double* %v4_96, align 4
  %v2_98 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_98 = fmul x86_fp80 %v2_98, %v2_98
  %v3_9a = fadd x86_fp80 %v4_98, %v4_98
  store x86_fp80 %v3_9a, x86_fp80* %st7.global-to-local, align 4
  %v3_9c = add i32 %v2_8a, 40
  %v4_9c = inttoptr i32 %v3_9c to double*
  %v5_9c = load double, double* %v4_9c, align 4
  %v6_9c = fpext double %v5_9c to x86_fp80
  %v7_9c = fadd x86_fp80 %v3_9a, %v6_9c
  store x86_fp80 %v7_9c, x86_fp80* %st7.global-to-local, align 4
  %v2_9f = load i32, i32* @ecx, align 8
  %v3_9f = fptrunc x86_fp80 %v7_9c to double
  %v4_9f = inttoptr i32 %v2_9f to double*
  store double %v3_9f, double* %v4_9f, align 4
  %v5_9f = xor i3 %v0_72, -4
  store i3 %v5_9f, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_5, i32* %ebx.global-to-local, align 4
  store i32 %v0_4, i32* %edi.global-to-local, align 4
  store i32 %v0_3, i32* %esi.global-to-local, align 4
  %v0_a5 = load i32, i32* @eax, align 8
  ret i32 %v0_a5
}

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

declare i16 @__asm_fnstsw(i32) local_unnamed_addr

attributes #0 = { nounwind readnone speculatable }
