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_3a = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_3a = load i32, i32* %esi.global-to-local, align 4
  %v2_3a = add i32 %v1_3a, -84
  %v3_3a = inttoptr i32 %v2_3a to double*
  %v4_3a = load double, double* %v3_3a, align 4
  %v5_3a = fpext double %v4_3a to x86_fp80
  %v4_3d = fadd x86_fp80 %v5_3a, %v5_3a
  store x86_fp80 %v4_3d, x86_fp80* %st7.global-to-local, align 4
  %v2_41 = add i32 %v1_3a, -92
  %v3_41 = inttoptr i32 %v2_41 to double*
  %v4_41 = load double, double* %v3_41, align 4
  %v5_41 = fpext double %v4_41 to x86_fp80
  %v4_44 = fadd x86_fp80 %v5_41, %v5_41
  store x86_fp80 %v4_44, x86_fp80* %st7.global-to-local, align 4
  %v2_48 = add i32 %v1_3a, -100
  %v3_48 = inttoptr i32 %v2_48 to double*
  %v4_48 = load double, double* %v3_48, align 4
  %v5_48 = fpext double %v4_48 to x86_fp80
  %v4_4b = fadd x86_fp80 %v5_48, %v5_48
  store x86_fp80 %v4_4b, x86_fp80* %st7.global-to-local, align 4
  %v3_51 = add i32 %v1_3a, -68
  %v4_51 = inttoptr i32 %v3_51 to float*
  %v5_51 = load float, float* %v4_51, align 4
  %v6_51 = fpext float %v5_51 to x86_fp80
  %v7_51 = fmul x86_fp80 %v4_4b, %v6_51
  store x86_fp80 %v7_51, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v7_51, x86_fp80* %st6.global-to-local, align 4
  %v3_56 = add i32 %v1_3a, -72
  %v4_56 = inttoptr i32 %v3_56 to float*
  %v5_56 = load float, float* %v4_56, align 4
  %v6_56 = fpext float %v5_56 to x86_fp80
  %v7_56 = fmul x86_fp80 %v7_51, %v6_56
  %v4_59 = fadd x86_fp80 %v7_51, %v7_56
  store x86_fp80 %v4_59, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v4_59, x86_fp80* %st6.global-to-local, align 4
  %v3_5d = add i32 %v1_3a, -76
  %v4_5d = inttoptr i32 %v3_5d to float*
  %v5_5d = load float, float* %v4_5d, align 4
  %v6_5d = fpext float %v5_5d to x86_fp80
  %v7_5d = fmul x86_fp80 %v4_59, %v6_5d
  %v4_60 = fadd x86_fp80 %v4_59, %v7_5d
  store x86_fp80 %v4_60, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v4_60, x86_fp80* %st6.global-to-local, align 4
  %v3_64 = add i32 %v1_3a, -44
  %v4_64 = inttoptr i32 %v3_64 to float*
  %v5_64 = load float, float* %v4_64, align 4
  %v6_64 = fpext float %v5_64 to x86_fp80
  %v7_64 = fmul x86_fp80 %v4_60, %v6_64
  store x86_fp80 %v7_64, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_60, x86_fp80* %st5.global-to-local, align 4
  %v3_69 = add i32 %v1_3a, -48
  %v4_69 = inttoptr i32 %v3_69 to float*
  %v5_69 = load float, float* %v4_69, align 4
  %v6_69 = fpext float %v5_69 to x86_fp80
  %v7_69 = fmul x86_fp80 %v4_60, %v6_69
  %v4_6c = fadd x86_fp80 %v7_64, %v7_69
  store x86_fp80 %v4_6c, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_60, x86_fp80* %st5.global-to-local, align 4
  %v3_70 = add i32 %v1_3a, -52
  %v4_70 = inttoptr i32 %v3_70 to float*
  %v5_70 = load float, float* %v4_70, align 4
  %v6_70 = fpext float %v5_70 to x86_fp80
  %v7_70 = fmul x86_fp80 %v4_60, %v6_70
  store x86_fp80 %v7_70, x86_fp80* %st5.global-to-local, align 4
  %v4_73 = fadd x86_fp80 %v4_6c, %v7_70
  store x86_fp80 %v4_60, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_73, x86_fp80* %st7.global-to-local, align 4
  %v3_77 = add i32 %v1_3a, -56
  %v4_77 = inttoptr i32 %v3_77 to float*
  %v5_77 = load float, float* %v4_77, align 4
  %v6_77 = fpext float %v5_77 to x86_fp80
  %v7_77 = fmul x86_fp80 %v4_73, %v6_77
  store x86_fp80 %v7_77, x86_fp80* %st7.global-to-local, align 4
  %v3_7c = add i32 %v1_3a, -60
  %v4_7c = inttoptr i32 %v3_7c to float*
  %v5_7c = load float, float* %v4_7c, align 4
  %v6_7c = fpext float %v5_7c to x86_fp80
  %v7_7c = fmul x86_fp80 %v7_77, %v6_7c
  %v4_7f = fadd x86_fp80 %v7_7c, %v7_7c
  store x86_fp80 %v4_7f, x86_fp80* %st7.global-to-local, align 4
  %v3_83 = add i32 %v1_3a, -64
  %v4_83 = inttoptr i32 %v3_83 to float*
  %v5_83 = load float, float* %v4_83, align 4
  %v6_83 = fpext float %v5_83 to x86_fp80
  %v7_83 = fmul x86_fp80 %v4_7f, %v6_83
  %v4_86 = fadd x86_fp80 %v7_83, %v7_83
  store x86_fp80 %v4_86, x86_fp80* %st7.global-to-local, align 4
  %v4_89 = load double, double* %v3_3a, align 4
  %v5_89 = fpext double %v4_89 to x86_fp80
  %v4_8c = fsub x86_fp80 %v5_89, %v5_89
  store x86_fp80 %v4_8c, x86_fp80* %st7.global-to-local, align 4
  %v4_90 = load double, double* %v3_41, align 4
  %v5_90 = fpext double %v4_90 to x86_fp80
  %v4_93 = fsub x86_fp80 %v5_90, %v5_90
  store x86_fp80 %v4_93, x86_fp80* %st7.global-to-local, align 4
  %v4_97 = load double, double* %v3_48, align 4
  %v5_97 = fpext double %v4_97 to x86_fp80
  %v4_9a = fsub x86_fp80 %v5_97, %v5_97
  store x86_fp80 %v4_9a, x86_fp80* %st7.global-to-local, align 4
  %v2_9f = add i32 %v1_3a, -16
  %v3_9f = inttoptr i32 %v2_9f to double*
  %v4_9f = load double, double* %v3_9f, align 4
  %v5_9f = fpext double %v4_9f to x86_fp80
  store x86_fp80 %v5_9f, x86_fp80* %st7.global-to-local, align 4
  %v1_a2 = load i32, i32* @ecx, align 8
  %v2_a2 = add i32 %v1_a2, 8
  %v3_a2 = inttoptr i32 %v2_a2 to double*
  %v4_a2 = load double, double* %v3_a2, align 4
  %v5_a2 = fpext double %v4_a2 to x86_fp80
  %v4_a5 = fmul x86_fp80 %v5_9f, %v5_a2
  %v4_a7 = fptrunc x86_fp80 %v4_a5 to double
  store double %v4_a7, double* %v3_a2, align 4
  %v2_aa = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_aa = fmul x86_fp80 %v2_aa, %v2_aa
  %v4_ac = fmul x86_fp80 %v4_aa, %v4_aa
  store x86_fp80 %v4_ac, x86_fp80* %st7.global-to-local, align 4
  %v4_b2 = fadd x86_fp80 %v4_ac, 0xKBFFF8000000000000000
  store x86_fp80 %v4_b2, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_b2, x86_fp80* %st5.global-to-local, align 4
  %v3_b8 = add i32 %v1_3a, -24
  %v4_b8 = inttoptr i32 %v3_b8 to double*
  %v5_b8 = load double, double* %v4_b8, align 4
  %v6_b8 = fpext double %v5_b8 to x86_fp80
  %v7_b8 = fmul x86_fp80 %v4_b2, %v6_b8
  %v4_bb = fsub x86_fp80 %v4_ac, %v7_b8
  store x86_fp80 %v4_bb, x86_fp80* %st7.global-to-local, align 4
  %v3_bd = add i32 %v1_3a, -32
  %v4_bd = inttoptr i32 %v3_bd to double*
  %v5_bd = load double, double* %v4_bd, align 4
  %v6_bd = fpext double %v5_bd to x86_fp80
  %v7_bd = fmul x86_fp80 %v4_b2, %v6_bd
  store x86_fp80 %v7_bd, x86_fp80* %st5.global-to-local, align 4
  %v4_c0 = fsub x86_fp80 %v4_bb, %v7_bd
  store x86_fp80 %v4_c0, x86_fp80* %st7.global-to-local, align 4
  %v4_c2 = fdiv x86_fp80 %v4_b2, %v4_c0
  store x86_fp80 %v4_c2, x86_fp80* %st6.global-to-local, align 4
  %v3_c4 = add i32 %v1_3a, -40
  %v4_c4 = inttoptr i32 %v3_c4 to double*
  %v5_c4 = load double, double* %v4_c4, align 4
  %v6_c4 = fpext double %v5_c4 to x86_fp80
  %v7_c4 = fmul x86_fp80 %v4_c2, %v6_c4
  store x86_fp80 %v7_c4, x86_fp80* %st6.global-to-local, align 4
  %v4_c7 = fsub x86_fp80 %v4_c0, %v7_c4
  %v2_cb = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_c7)
  %v4_cd = fsub x86_fp80 %v2_cb, %v2_cb
  %v4_cf = fmul x86_fp80 %v4_cd, %v4_cd
  store x86_fp80 %v4_cf, x86_fp80* %st7.global-to-local, align 4
  %v2_d1 = load i32, i32* @edx, align 8
  %v3_d1 = fptrunc x86_fp80 %v4_cf to double
  %v4_d1 = inttoptr i32 %v2_d1 to double*
  store double %v3_d1, double* %v4_d1, align 4
  %v1_d3 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_d3 = load i32, i32* %ebx.global-to-local, align 4
  %v3_d3 = fptrunc x86_fp80 %v1_d3 to double
  %v4_d3 = inttoptr i32 %v2_d3 to double*
  store double %v3_d3, double* %v4_d3, align 4
  %v1_d5 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_d5 = load i32, i32* @ecx, align 8
  %v3_d5 = fptrunc x86_fp80 %v1_d5 to double
  %v4_d5 = inttoptr i32 %v2_d5 to double*
  store double %v3_d5, double* %v4_d5, align 4
  %v5_d5 = add i3 %v0_3a, 3
  store i3 %v5_d5, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_d3, 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_d3
}

; 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 }
