source_filename = "test"
target datalayout = "e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"

define i32 @function_0() local_unnamed_addr {
dec_label_pc_0:
  %eax.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
  %tmp237 = call i32 @__decompiler_undefined_function_2()
  %v0_0 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_0 = add i32 %tmp237, -104
  %v3_0 = inttoptr i32 %v2_0 to double*
  %v4_0 = load double, double* %v3_0, align 4
  %v5_0 = fpext double %v4_0 to x86_fp80
  %v6_0 = add i3 %v0_0, -1
  store x86_fp80 %v5_0, x86_fp80* %st7.global-to-local, align 4
  %v2_3 = load i32, i32* %edi.global-to-local, align 4
  %v3_3 = add i32 %v2_3, -32
  %v4_3 = inttoptr i32 %v3_3 to double*
  %v5_3 = load double, double* %v4_3, align 4
  %v6_3 = fpext double %v5_3 to x86_fp80
  %v7_3 = fadd x86_fp80 %v5_0, %v6_3
  store x86_fp80 %v7_3, x86_fp80* %st7.global-to-local, align 4
  %v2_6 = add i32 %tmp237, -112
  %v3_6 = inttoptr i32 %v2_6 to double*
  %v4_6 = load double, double* %v3_6, align 4
  %v5_6 = fpext double %v4_6 to x86_fp80
  %v6_6 = add i3 %v0_0, -2
  store x86_fp80 %v5_6, x86_fp80* %st6.global-to-local, align 4
  %v3_9 = add i32 %v2_3, -24
  %v4_9 = inttoptr i32 %v3_9 to double*
  %v5_9 = load double, double* %v4_9, align 4
  %v6_9 = fpext double %v5_9 to x86_fp80
  %v7_9 = fadd x86_fp80 %v5_6, %v6_9
  store x86_fp80 %v7_9, x86_fp80* %st6.global-to-local, align 4
  %v2_c = add i32 %tmp237, -120
  %v3_c = inttoptr i32 %v2_c to double*
  %v4_c = load double, double* %v3_c, align 4
  %v5_c = fpext double %v4_c to x86_fp80
  %v6_c = add i3 %v0_0, -3
  store x86_fp80 %v5_c, x86_fp80* %st5.global-to-local, align 4
  %v3_f = add i32 %v2_3, -16
  %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 = fadd x86_fp80 %v5_c, %v6_f
  store x86_fp80 %v7_f, x86_fp80* %st5.global-to-local, align 4
  %v3_14 = add i32 %v2_3, -60
  %v4_14 = inttoptr i32 %v3_14 to float*
  %v5_14 = load float, float* %v4_14, align 4
  %v6_14 = fpext float %v5_14 to x86_fp80
  %v7_14 = fmul x86_fp80 %v7_f, %v6_14
  %v3_19 = add i32 %v2_3, -64
  %v4_19 = inttoptr i32 %v3_19 to float*
  %v5_19 = load float, float* %v4_19, align 4
  %v6_19 = fpext float %v5_19 to x86_fp80
  %v7_19 = fmul x86_fp80 %v7_9, %v6_19
  %v4_1c = fadd x86_fp80 %v7_14, %v7_19
  %v3_20 = add i32 %v2_3, -68
  %v4_20 = inttoptr i32 %v3_20 to float*
  %v5_20 = load float, float* %v4_20, align 4
  %v6_20 = fpext float %v5_20 to x86_fp80
  %v7_20 = fmul x86_fp80 %v7_3, %v6_20
  %v4_23 = fadd x86_fp80 %v7_20, %v4_1c
  %v3_27 = add i32 %v2_3, -36
  %v4_27 = inttoptr i32 %v3_27 to float*
  %v5_27 = load float, float* %v4_27, align 4
  %v6_27 = fpext float %v5_27 to x86_fp80
  %v7_27 = fmul x86_fp80 %v7_f, %v6_27
  %v3_2c = add i32 %v2_3, -40
  %v4_2c = inttoptr i32 %v3_2c to float*
  %v5_2c = load float, float* %v4_2c, align 4
  %v6_2c = fpext float %v5_2c to x86_fp80
  %v7_2c = fmul x86_fp80 %v7_9, %v6_2c
  %v4_2f = fadd x86_fp80 %v7_27, %v7_2c
  %v3_33 = add i32 %v2_3, -44
  %v4_33 = inttoptr i32 %v3_33 to float*
  %v5_33 = load float, float* %v4_33, align 4
  %v6_33 = fpext float %v5_33 to x86_fp80
  %v7_33 = fmul x86_fp80 %v7_3, %v6_33
  %v4_36 = fadd x86_fp80 %v4_2f, %v7_33
  store x86_fp80 %v4_36, x86_fp80* %st5.global-to-local, align 4
  %v3_3a = add i32 %v2_3, -48
  %v4_3a = inttoptr i32 %v3_3a to float*
  %v5_3a = load float, float* %v4_3a, align 4
  %v6_3a = fpext float %v5_3a to x86_fp80
  %v7_3a = fmul x86_fp80 %v7_f, %v6_3a
  store x86_fp80 %v7_3a, x86_fp80* %st6.global-to-local, align 4
  %v3_3f = add i32 %v2_3, -52
  %v4_3f = inttoptr i32 %v3_3f to float*
  %v5_3f = load float, float* %v4_3f, align 4
  %v6_3f = fpext float %v5_3f to x86_fp80
  %v7_3f = fmul x86_fp80 %v7_9, %v6_3f
  %v4_42 = fadd x86_fp80 %v7_3a, %v7_3f
  store x86_fp80 %v4_42, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_23, x86_fp80* %st7.global-to-local, align 4
  %v3_46 = add i32 %v2_3, -56
  %v4_46 = inttoptr i32 %v3_46 to float*
  %v5_46 = load float, float* %v4_46, align 4
  %v6_46 = fpext float %v5_46 to x86_fp80
  %v7_46 = fmul x86_fp80 %v7_3, %v6_46
  %v4_49 = fadd x86_fp80 %v4_42, %v7_46
  store x86_fp80 %v4_49, x86_fp80* %st6.global-to-local, align 4
  store i3 %v6_c, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_4b = add i32 %v2_3, -72
  %v2_4b = inttoptr i32 %v1_4b to i32*
  %v3_4b = load i32, i32* %v2_4b, align 4
  %v1_4e = urem i32 %v3_4b, 2
  %v2_4e = icmp eq i32 %v1_4e, 0
  br i1 %v2_4e, label %dec_label_pc_55, label %dec_label_pc_53

dec_label_pc_53:                                  ; preds = %dec_label_pc_0
  %v2_53 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_36)
  store x86_fp80 %v2_53, x86_fp80* %st5.global-to-local, align 4
  br label %dec_label_pc_55

dec_label_pc_55:                                  ; preds = %dec_label_pc_53, %dec_label_pc_0
  %v1_55 = phi x86_fp80 [ %v2_53, %dec_label_pc_53 ], [ %v4_36, %dec_label_pc_0 ]
  %v2_55 = load i32, i32* %esi.global-to-local, align 4
  %v3_55 = add i32 %v2_55, -120
  %v4_55 = fptrunc x86_fp80 %v1_55 to double
  %v5_55 = inttoptr i32 %v3_55 to double*
  store double %v4_55, double* %v5_55, align 4
  store i3 %v6_6, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_58 = add i32 %v2_3, -76
  %v2_58 = inttoptr i32 %v1_58 to i32*
  %v3_58 = load i32, i32* %v2_58, align 4
  %v1_5b = urem i32 %v3_58, 2
  %v2_5b = icmp eq i32 %v1_5b, 0
  %v1_62.pre = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  br i1 %v2_5b, label %dec_label_pc_62, label %dec_label_pc_60

dec_label_pc_60:                                  ; preds = %dec_label_pc_55
  %v2_60 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v1_62.pre)
  store x86_fp80 %v2_60, x86_fp80* %st6.global-to-local, align 4
  br label %dec_label_pc_62

dec_label_pc_62:                                  ; preds = %dec_label_pc_55, %dec_label_pc_60
  %v1_62 = phi x86_fp80 [ %v2_60, %dec_label_pc_60 ], [ %v1_62.pre, %dec_label_pc_55 ]
  %v3_62 = add i32 %v2_55, -112
  %v4_62 = fptrunc x86_fp80 %v1_62 to double
  %v5_62 = inttoptr i32 %v3_62 to double*
  store double %v4_62, double* %v5_62, align 4
  store i3 %v6_0, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_65 = add i32 %v2_3, -80
  %v2_65 = inttoptr i32 %v1_65 to i32*
  %v3_65 = load i32, i32* %v2_65, align 4
  %v1_68 = urem i32 %v3_65, 2
  %v2_68 = icmp eq i32 %v1_68, 0
  br i1 %v2_68, label %dec_label_pc_6f, label %dec_label_pc_6d

dec_label_pc_6d:                                  ; preds = %dec_label_pc_62
  %v1_6d = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_6d = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v1_6d)
  store x86_fp80 %v2_6d, x86_fp80* %st7.global-to-local, align 4
  %v4_6f.pre = load double, double* %v5_62, align 4
  br label %dec_label_pc_6f

dec_label_pc_6f:                                  ; preds = %dec_label_pc_6d, %dec_label_pc_62
  %v4_6f = phi double [ %v4_6f.pre, %dec_label_pc_6d ], [ %v4_62, %dec_label_pc_62 ]
  %v5_6f = fpext double %v4_6f to x86_fp80
  store x86_fp80 %v5_6f, x86_fp80* %st6.global-to-local, align 4
  %v4_72 = load double, double* %v5_55, align 4
  %v5_72 = fpext double %v4_72 to x86_fp80
  store i3 %v6_c, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_72, x86_fp80* %st5.global-to-local, align 4
  %v3_75 = load i32, i32* %v2_4b, align 4
  %v1_78 = and i32 %v3_75, 2
  %v2_78 = icmp eq i32 %v1_78, 0
  br i1 %v2_78, label %dec_label_pc_88, label %dec_label_pc_7d

dec_label_pc_7d:                                  ; preds = %dec_label_pc_6f
  %v0_7f = load i32, i32* %fpsw.global-to-local, align 4
  %v1_7f = call i16 @__asm_fnstsw(i32 %v0_7f)
  %v2_7f = sext i16 %v1_7f to i32
  %v3_7f = load i32, i32* %eax.global-to-local, align 4
  %v4_7f = and i32 %v3_7f, -65536
  %v3_81 = and i32 %v2_7f, 16640
  %v2_7f.masked = and i32 %v2_7f, -65281
  %v12_81 = or i32 %v4_7f, %v2_7f.masked
  %v13_81 = or i32 %v12_81, %v3_81
  store i32 %v13_81, i32* %eax.global-to-local, align 4
  %v0_88.pre = load i32, i32* %edi.global-to-local, align 4
  %.pre = add i32 %v0_88.pre, -76
  %.pre15 = inttoptr i32 %.pre to i32*
  br label %dec_label_pc_88

dec_label_pc_88:                                  ; preds = %dec_label_pc_7d, %dec_label_pc_6f
  %v2_88.pre-phi = phi i32* [ %.pre15, %dec_label_pc_7d ], [ %v2_58, %dec_label_pc_6f ]
  %v0_88 = phi i32 [ %v0_88.pre, %dec_label_pc_7d ], [ %v2_3, %dec_label_pc_6f ]
  %v3_88 = load i32, i32* %v2_88.pre-phi, align 4
  %v1_8b = and i32 %v3_88, 2
  %v2_8b = icmp eq i32 %v1_8b, 0
  br i1 %v2_8b, label %dec_label_pc_9b, label %dec_label_pc_90

dec_label_pc_90:                                  ; preds = %dec_label_pc_88
  %v0_92 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_92 = call i16 @__asm_fnstsw(i32 %v0_92)
  %v2_92 = sext i16 %v1_92 to i32
  %v3_92 = load i32, i32* %eax.global-to-local, align 4
  %v4_92 = and i32 %v3_92, -65536
  %v3_94 = and i32 %v2_92, 16640
  %v2_92.masked = and i32 %v2_92, -65281
  %v12_94 = or i32 %v4_92, %v2_92.masked
  %v13_94 = or i32 %v12_94, %v3_94
  store i32 %v13_94, i32* %eax.global-to-local, align 4
  %v0_9d.pre = load i32, i32* %edi.global-to-local, align 4
  br label %dec_label_pc_9b

dec_label_pc_9b:                                  ; preds = %dec_label_pc_90, %dec_label_pc_88
  %v0_9d = phi i32 [ %v0_9d.pre, %dec_label_pc_90 ], [ %v0_88, %dec_label_pc_88 ]
  %v2_9b = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v3_9b = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v3_9b, x86_fp80* %st5.global-to-local, align 4
  store x86_fp80 %v2_9b, x86_fp80* %st6.global-to-local, align 4
  %v1_9d = add i32 %v0_9d, -80
  %v2_9d = inttoptr i32 %v1_9d to i32*
  %v3_9d = load i32, i32* %v2_9d, align 4
  %v1_a0 = and i32 %v3_9d, 2
  %v2_a0 = icmp eq i32 %v1_a0, 0
  br i1 %v2_a0, label %dec_label_pc_9b.dec_label_pc_b0_crit_edge, label %dec_label_pc_a5

dec_label_pc_9b.dec_label_pc_b0_crit_edge:        ; preds = %dec_label_pc_9b
  %v0_b9.pre = load i32, i32* %eax.global-to-local, align 4
  br label %dec_label_pc_b0

dec_label_pc_a5:                                  ; preds = %dec_label_pc_9b
  %v0_a7 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_a7 = call i16 @__asm_fnstsw(i32 %v0_a7)
  %v2_a7 = sext i16 %v1_a7 to i32
  %v3_a7 = load i32, i32* %eax.global-to-local, align 4
  %v4_a7 = and i32 %v3_a7, -65536
  %v3_a9 = and i32 %v2_a7, 16640
  %v2_a7.masked = and i32 %v2_a7, -65281
  %v12_a9 = or i32 %v4_a7, %v2_a7.masked
  %v13_a9 = or i32 %v12_a9, %v3_a9
  store i32 %v13_a9, i32* %eax.global-to-local, align 4
  %v1_b0.pre = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  br label %dec_label_pc_b0

dec_label_pc_b0:                                  ; preds = %dec_label_pc_9b.dec_label_pc_b0_crit_edge, %dec_label_pc_a5
  %v0_b9 = phi i32 [ %v13_a9, %dec_label_pc_a5 ], [ %v0_b9.pre, %dec_label_pc_9b.dec_label_pc_b0_crit_edge ]
  %v1_b0 = phi x86_fp80 [ %v1_b0.pre, %dec_label_pc_a5 ], [ %v3_9b, %dec_label_pc_9b.dec_label_pc_b0_crit_edge ]
  %v0_b0 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_b0 = load i32, i32* %esi.global-to-local, align 4
  %v3_b0 = add i32 %v2_b0, -120
  %v4_b0 = fptrunc x86_fp80 %v1_b0 to double
  %v5_b0 = inttoptr i32 %v3_b0 to double*
  store double %v4_b0, double* %v5_b0, align 4
  %v1_b3 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_b3 = add i32 %v2_b0, -112
  %v4_b3 = fptrunc x86_fp80 %v1_b3 to double
  %v5_b3 = inttoptr i32 %v3_b3 to double*
  store double %v4_b3, double* %v5_b3, align 4
  %v1_b6 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_b6 = add i32 %v2_b0, -104
  %v4_b6 = fptrunc x86_fp80 %v1_b6 to double
  %v5_b6 = inttoptr i32 %v3_b6 to double*
  store double %v4_b6, double* %v5_b6, align 4
  %v6_b6 = add i3 %v0_b0, 3
  store i3 %v6_b6, i3* %fpu_stat_TOP.global-to-local, align 1
  ret i32 %v0_b9
}

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

declare i16 @__asm_fnstsw(i32) local_unnamed_addr

declare i32 @__decompiler_undefined_function_2() local_unnamed_addr

attributes #0 = { nounwind readnone speculatable }
