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
@edx = internal unnamed_addr global i32 0, align 8
@global_var_30.1 = constant i32 20415503
@global_var_28.2 = constant double* inttoptr (i32 -2029019424 to double*)

define i32 @function_0(i32 %arg1) local_unnamed_addr {
dec_label_pc_0:
  %ebx.global-to-local = alloca i32, align 4
  %ecx.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
  %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* @eax, align 8
  %v0_5 = load i32, i32* %esi.global-to-local, align 4
  %v0_6 = load i32, i32* %edi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  store i32 %v0_4, i32* %ebx.global-to-local, align 4
  %v1_d = add i32 %arg1, ptrtoint (i32* @global_var_30.1 to i32)
  %v2_d = inttoptr i32 %v1_d to i32*
  %v3_d = load i32, i32* %v2_d, align 4
  store i32 %v3_d, i32* %edi.global-to-local, align 4
  %v0_14 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_14 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_14 = fpext double %v3_14 to x86_fp80
  %v5_14 = add i3 %v0_14, -1
  %v3_16 = fmul x86_fp80 %v4_14, %v4_14
  store x86_fp80 %v3_16, x86_fp80* %st7.global-to-local, align 4
  %v3_18 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_18 = fpext double %v3_18 to x86_fp80
  %v3_1a = fmul x86_fp80 %v4_18, %v4_18
  %v2_1c = add i32 %v3_d, -40
  %v3_1c = inttoptr i32 %v2_1c to double*
  %v4_1c = load double, double* %v3_1c, align 4
  %v5_1c = fpext double %v4_1c to x86_fp80
  %v4_1f = fadd x86_fp80 %v3_1a, %v5_1c
  %v4_21 = fadd x86_fp80 %v3_16, %v4_1f
  store x86_fp80 %v4_21, x86_fp80* %st7.global-to-local, align 4
  store i3 %v5_14, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_27 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_27 = call i16 @__asm_fnstsw(i32 %v0_27)
  %v2_27 = sext i16 %v1_27 to i32
  %v3_27 = load i32, i32* @eax, align 8
  %v4_27 = and i32 %v3_27, -65536
  %v5_27 = or i32 %v4_27, %v2_27
  store i32 %v5_27, i32* @eax, align 8
  %tmp261 = and i32 %v2_27, 16640
  %tmp262 = icmp eq i32 %tmp261, 0
  %v0_165 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %tmp262, label %dec_label_pc_165, label %dec_label_pc_30

dec_label_pc_30:                                  ; preds = %dec_label_pc_0
  %v9_292 = and i32 %v2_27, 16384
  %v10_29 = icmp eq i32 %v9_292, 0
  br i1 %v10_29, label %dec_label_pc_36, label %dec_label_pc_16d

dec_label_pc_36:                                  ; preds = %dec_label_pc_30
  %v5_38 = add i3 %v0_165, -1
  %v2_44 = load i32, i32* %edi.global-to-local, align 4
  %v6_47 = add i3 %v0_165, -2
  %v3_4e = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  store i3 %v5_38, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_56 = add i32 %v2_44, -52
  %v2_56 = inttoptr i32 %v1_56 to i32*
  %v3_56 = load i32, i32* %v2_56, align 4
  %v1_59 = trunc i32 %v3_56 to i16
  %v2_59 = urem i16 %v1_59, 4
  %v3_59 = icmp eq i16 %v2_59, 0
  %v9_59 = zext i16 %v2_59 to i32
  %v11_59 = and i32 %v3_56, -65536
  %v12_59 = or i32 %v11_59, %v9_59
  store i32 %v12_59, i32* @eax, align 8
  %v1_61 = icmp eq i1 %v3_59, false
  br i1 %v1_61, label %dec_label_pc_6a, label %dec_label_pc_63

dec_label_pc_63:                                  ; preds = %dec_label_pc_36
  %v2_63 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v3_4e)
  store x86_fp80 %v2_63, x86_fp80* %st7.global-to-local, align 4
  %v2_65 = load i32, i32* %esi.global-to-local, align 4
  %v3_65 = add i32 %v2_65, 24
  %v4_65 = inttoptr i32 %v3_65 to double*
  %v5_65 = load double, double* %v4_65, align 4
  %v6_65 = fpext double %v5_65 to x86_fp80
  %v7_65 = fadd x86_fp80 %v2_63, %v6_65
  store x86_fp80 %v7_65, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_9c

dec_label_pc_6a:                                  ; preds = %dec_label_pc_36
  %v12_6a = icmp eq i16 %v2_59, 1
  %v1_6e = icmp eq i1 %v12_6a, false
  br i1 %v1_6e, label %dec_label_pc_77, label %dec_label_pc_70

dec_label_pc_70:                                  ; preds = %dec_label_pc_6a
  %v2_70 = load i32, i32* %esi.global-to-local, align 4
  %v3_70 = add i32 %v2_70, 24
  %v4_70 = inttoptr i32 %v3_70 to double*
  %v5_70 = load double, double* %v4_70, align 4
  %v6_70 = fpext double %v5_70 to x86_fp80
  %v7_70 = fadd x86_fp80 %v3_4e, %v6_70
  %v2_73 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_70)
  store x86_fp80 %v2_73, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_9c

dec_label_pc_77:                                  ; preds = %dec_label_pc_6a
  %v12_77 = icmp eq i16 %v2_59, 2
  %v1_7b = icmp eq i1 %v12_77, false
  %v2_97 = load i32, i32* %esi.global-to-local, align 4
  %v3_97 = add i32 %v2_97, 24
  %v4_97 = inttoptr i32 %v3_97 to double*
  %v5_97 = load double, double* %v4_97, align 4
  %v6_97 = fpext double %v5_97 to x86_fp80
  %v7_97 = fadd x86_fp80 %v3_4e, %v6_97
  br i1 %v1_7b, label %dec_label_pc_97, label %dec_label_pc_7d

dec_label_pc_7d:                                  ; preds = %dec_label_pc_77
  %v2_82 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_97)
  store x86_fp80 %v2_82, x86_fp80* %st7.global-to-local, align 4
  %v5_86 = load double, double* %v4_97, align 4
  %v6_86 = fpext double %v5_86 to x86_fp80
  %v7_86 = fsub x86_fp80 %v2_82, %v6_86
  %v2_89 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_86)
  %v4_8d = fsub x86_fp80 %v2_82, %v2_89
  %v2_91 = fsub x86_fp80 0xK80000000000000000000, %v4_8d
  %v4_93 = fsub x86_fp80 %v2_91, %v4_8d
  store x86_fp80 %v4_93, x86_fp80* %st7.global-to-local, align 4
  store i3 %v5_38, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_9c

dec_label_pc_97:                                  ; preds = %dec_label_pc_77
  store x86_fp80 %v7_97, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_9c

dec_label_pc_9c:                                  ; preds = %dec_label_pc_97, %dec_label_pc_7d, %dec_label_pc_70, %dec_label_pc_63
  %v2_14c = phi i32 [ %v2_97, %dec_label_pc_97 ], [ %v2_97, %dec_label_pc_7d ], [ %v2_70, %dec_label_pc_70 ], [ %v2_65, %dec_label_pc_63 ]
  %v3_aa = phi x86_fp80 [ %v7_97, %dec_label_pc_97 ], [ %v4_93, %dec_label_pc_7d ], [ %v2_73, %dec_label_pc_70 ], [ %v7_65, %dec_label_pc_63 ]
  %v6_a3 = add i3 %v0_165, -3
  %v2_ac = fsub x86_fp80 0xK80000000000000000000, %v3_aa
  %v4_ae = fsub x86_fp80 %v2_ac, %v3_aa
  %v4_b0 = fmul x86_fp80 %v4_ae, %v4_ae
  store x86_fp80 %v4_b0, x86_fp80* %st7.global-to-local, align 4
  store i3 %v6_47, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_b2 = load i32, i32* %v2_56, align 4
  %v1_b5 = trunc i32 %v3_b2 to i16
  %v3_b5 = udiv i16 %v1_b5, 4
  %v12_b5 = and i32 %v3_b2, -65536
  %v2_b9 = urem i16 %v3_b5, 4
  %v3_b9 = icmp eq i16 %v2_b9, 0
  %v9_b9 = zext i16 %v2_b9 to i32
  %v12_b9 = or i32 %v12_b5, %v9_b9
  store i32 %v12_b9, i32* @eax, align 8
  %v1_c1 = icmp eq i1 %v3_b9, false
  br i1 %v1_c1, label %dec_label_pc_ca, label %dec_label_pc_c3

dec_label_pc_c3:                                  ; preds = %dec_label_pc_9c
  %v2_c3 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_b0)
  store x86_fp80 %v2_c3, x86_fp80* %st7.global-to-local, align 4
  %v3_c5 = add i32 %v2_14c, 32
  %v4_c5 = inttoptr i32 %v3_c5 to double*
  %v5_c5 = load double, double* %v4_c5, align 4
  %v6_c5 = fpext double %v5_c5 to x86_fp80
  %v7_c5 = fadd x86_fp80 %v2_c3, %v6_c5
  store x86_fp80 %v7_c5, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_fc

dec_label_pc_ca:                                  ; preds = %dec_label_pc_9c
  %v12_ca = icmp eq i16 %v2_b9, 1
  %v1_ce = icmp eq i1 %v12_ca, false
  br i1 %v1_ce, label %dec_label_pc_d7, label %dec_label_pc_d0

dec_label_pc_d0:                                  ; preds = %dec_label_pc_ca
  %v3_d0 = add i32 %v2_14c, 32
  %v4_d0 = inttoptr i32 %v3_d0 to double*
  %v5_d0 = load double, double* %v4_d0, align 4
  %v6_d0 = fpext double %v5_d0 to x86_fp80
  %v7_d0 = fadd x86_fp80 %v4_b0, %v6_d0
  %v2_d3 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_d0)
  store x86_fp80 %v2_d3, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_fc

dec_label_pc_d7:                                  ; preds = %dec_label_pc_ca
  %v12_d7 = icmp eq i16 %v2_b9, 2
  %v1_db = icmp eq i1 %v12_d7, false
  br i1 %v1_db, label %dec_label_pc_f7, label %dec_label_pc_dd

dec_label_pc_dd:                                  ; preds = %dec_label_pc_d7
  store x86_fp80 %v4_b0, x86_fp80* %st7.global-to-local, align 4
  %v3_df = add i32 %v2_14c, 32
  %v4_df = inttoptr i32 %v3_df to double*
  %v5_df = load double, double* %v4_df, align 4
  %v6_df = fpext double %v5_df to x86_fp80
  %v7_df = fadd x86_fp80 %v4_b0, %v6_df
  %v2_e2 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_df)
  store x86_fp80 %v2_e2, x86_fp80* %st7.global-to-local, align 4
  %v5_e6 = load double, double* %v4_df, align 4
  %v6_e6 = fpext double %v5_e6 to x86_fp80
  %v7_e6 = fsub x86_fp80 %v2_e2, %v6_e6
  %v2_e9 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_e6)
  %v4_ed = fsub x86_fp80 %v2_e2, %v2_e9
  %v2_f1 = fsub x86_fp80 0xK80000000000000000000, %v4_ed
  %v4_f3 = fsub x86_fp80 %v2_f1, %v4_ed
  store x86_fp80 %v4_f3, x86_fp80* %st7.global-to-local, align 4
  store i3 %v6_47, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_fc

dec_label_pc_f7:                                  ; preds = %dec_label_pc_d7
  %v3_f7 = add i32 %v2_14c, 32
  %v4_f7 = inttoptr i32 %v3_f7 to double*
  %v5_f7 = load double, double* %v4_f7, align 4
  %v6_f7 = fpext double %v5_f7 to x86_fp80
  %v7_f7 = fadd x86_fp80 %v4_b0, %v6_f7
  store x86_fp80 %v7_f7, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_fc

dec_label_pc_fc:                                  ; preds = %dec_label_pc_f7, %dec_label_pc_dd, %dec_label_pc_d0, %dec_label_pc_c3
  %v1_14c = phi x86_fp80 [ %v7_f7, %dec_label_pc_f7 ], [ %v4_f3, %dec_label_pc_dd ], [ %v2_d3, %dec_label_pc_d0 ], [ %v7_c5, %dec_label_pc_c3 ]
  store i3 %v6_a3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_107 = load i32, i32* %v2_56, align 4
  %v1_10a = trunc i32 %v3_107 to i16
  %v3_10a = udiv i16 %v1_10a, 16
  %v12_10a = and i32 %v3_107, -65536
  %v2_10e = urem i16 %v3_10a, 4
  %v3_10e = icmp eq i16 %v2_10e, 0
  %v9_10e = zext i16 %v2_10e to i32
  %v12_10e = or i32 %v12_10a, %v9_10e
  store i32 %v12_10e, i32* @eax, align 8
  %v1_116 = icmp eq i1 %v3_10e, false
  br i1 %v1_116, label %dec_label_pc_11f, label %dec_label_pc_118

dec_label_pc_118:                                 ; preds = %dec_label_pc_fc
  %v2_118 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v1_14c)
  store x86_fp80 %v2_118, x86_fp80* %st7.global-to-local, align 4
  %v3_11a = add i32 %v2_14c, ptrtoint (double** @global_var_28.2 to i32)
  %v4_11a = inttoptr i32 %v3_11a to double*
  %v5_11a = load double, double* %v4_11a, align 4
  %v6_11a = fpext double %v5_11a to x86_fp80
  %v7_11a = fadd x86_fp80 %v2_118, %v6_11a
  store x86_fp80 %v7_11a, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_151

dec_label_pc_11f:                                 ; preds = %dec_label_pc_fc
  %v12_11f = icmp eq i16 %v2_10e, 1
  %v1_123 = icmp eq i1 %v12_11f, false
  br i1 %v1_123, label %dec_label_pc_12c, label %dec_label_pc_125

dec_label_pc_125:                                 ; preds = %dec_label_pc_11f
  %v3_125 = add i32 %v2_14c, ptrtoint (double** @global_var_28.2 to i32)
  %v4_125 = inttoptr i32 %v3_125 to double*
  %v5_125 = load double, double* %v4_125, align 4
  %v6_125 = fpext double %v5_125 to x86_fp80
  %v7_125 = fadd x86_fp80 %v1_14c, %v6_125
  %v2_128 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_125)
  store x86_fp80 %v2_128, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_151

dec_label_pc_12c:                                 ; preds = %dec_label_pc_11f
  %v12_12c = icmp eq i16 %v2_10e, 2
  %v1_130 = icmp eq i1 %v12_12c, false
  br i1 %v1_130, label %dec_label_pc_14c, label %dec_label_pc_132

dec_label_pc_132:                                 ; preds = %dec_label_pc_12c
  store x86_fp80 %v1_14c, x86_fp80* %st7.global-to-local, align 4
  %v3_134 = add i32 %v2_14c, ptrtoint (double** @global_var_28.2 to i32)
  %v4_134 = inttoptr i32 %v3_134 to double*
  %v5_134 = load double, double* %v4_134, align 4
  %v6_134 = fpext double %v5_134 to x86_fp80
  %v7_134 = fadd x86_fp80 %v1_14c, %v6_134
  %v2_137 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_134)
  store x86_fp80 %v2_137, x86_fp80* %st7.global-to-local, align 4
  %v5_13b = load double, double* %v4_134, align 4
  %v6_13b = fpext double %v5_13b to x86_fp80
  %v7_13b = fsub x86_fp80 %v2_137, %v6_13b
  %v2_13e = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_13b)
  %v4_142 = fsub x86_fp80 %v2_137, %v2_13e
  %v2_146 = fsub x86_fp80 0xK80000000000000000000, %v4_142
  %v4_148 = fsub x86_fp80 %v2_146, %v4_142
  store x86_fp80 %v4_148, x86_fp80* %st7.global-to-local, align 4
  store i3 %v6_a3, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_151

dec_label_pc_14c:                                 ; preds = %dec_label_pc_12c
  %v3_14c = add i32 %v2_14c, ptrtoint (double** @global_var_28.2 to i32)
  %v4_14c = inttoptr i32 %v3_14c to double*
  %v5_14c = load double, double* %v4_14c, align 4
  %v6_14c = fpext double %v5_14c to x86_fp80
  %v7_14c = fadd x86_fp80 %v1_14c, %v6_14c
  store x86_fp80 %v7_14c, x86_fp80* %st7.global-to-local, align 4
  br label %dec_label_pc_151

dec_label_pc_151:                                 ; preds = %dec_label_pc_14c, %dec_label_pc_165, %dec_label_pc_16d, %dec_label_pc_132, %dec_label_pc_125, %dec_label_pc_118
  %v0_151 = phi i3 [ %v6_a3, %dec_label_pc_14c ], [ %v1_169, %dec_label_pc_165 ], [ %v6_173, %dec_label_pc_16d ], [ %v6_a3, %dec_label_pc_132 ], [ %v6_a3, %dec_label_pc_125 ], [ %v6_a3, %dec_label_pc_118 ]
  %v1_151 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_151 = load i32, i32* %ecx.global-to-local, align 8
  %v3_151 = fptrunc x86_fp80 %v1_151 to double
  %v4_151 = inttoptr i32 %v2_151 to double*
  store double %v3_151, double* %v4_151, align 4
  %v1_153 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_153 = load i32, i32* @edx, align 8
  %v3_153 = fptrunc x86_fp80 %v1_153 to double
  %v4_153 = inttoptr i32 %v2_153 to double*
  store double %v3_153, double* %v4_153, align 4
  %v1_155 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_155 = load i32, i32* %ebx.global-to-local, align 4
  %v3_155 = fptrunc x86_fp80 %v1_155 to double
  %v4_155 = inttoptr i32 %v2_155 to double*
  store double %v3_155, double* %v4_155, align 4
  %v4_157 = xor i3 %v0_151, -4
  store i3 %v4_157, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v0_6, i32* %edi.global-to-local, align 4
  store i32 %v0_5, i32* %esi.global-to-local, align 4
  store i32 %v0_4, i32* @eax, align 8
  store i32 %v0_3, i32* %ebx.global-to-local, align 4
  ret i32 %v0_4

dec_label_pc_165:                                 ; preds = %dec_label_pc_0
  %v1_169 = add i3 %v0_165, -3
  store i3 %v1_169, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_151

dec_label_pc_16d:                                 ; preds = %dec_label_pc_30
  %v6_173 = add i3 %v0_165, -3
  store i3 %v6_173, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_151
}

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 }
