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
  %ecx.global-to-local = alloca i32, align 4
  %edi.global-to-local = alloca i32, align 4
  %esi.global-to-local = alloca i32, align 4
  %esp.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
  store i32 0, i32* %esp.global-to-local, align 4
  %stack_var_-36 = alloca i32, align 4
  %stack_var_-4 = alloca i32, align 4
  %v0_0 = load i32, i32* %ecx.global-to-local, align 4
  store i32 %v0_0, i32* %stack_var_-4, align 4
  %v15_1 = ptrtoint i32* %stack_var_-36 to i32
  %v0_4 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_4 = load i32, i32* %esi.global-to-local, align 4
  %v2_4 = add i32 %v1_4, -104
  %v3_4 = inttoptr i32 %v2_4 to double*
  %v4_4 = load double, double* %v3_4, align 4
  %v5_4 = fpext double %v4_4 to x86_fp80
  store x86_fp80 %v5_4, x86_fp80* %st7.global-to-local, align 4
  %v2_7 = add i32 %v1_4, -112
  %v3_7 = inttoptr i32 %v2_7 to double*
  %v4_7 = load double, double* %v3_7, align 4
  %v5_7 = fpext double %v4_7 to x86_fp80
  store x86_fp80 %v5_7, x86_fp80* %st6.global-to-local, align 4
  %v2_a = add i32 %v1_4, -120
  %v3_a = inttoptr i32 %v2_a to double*
  %v4_a = load double, double* %v3_a, align 4
  %v5_a = fpext double %v4_a to x86_fp80
  store x86_fp80 %v5_a, x86_fp80* %st5.global-to-local, align 4
  %v2_d = xor i3 %v0_4, -4
  %v3_f = fmul x86_fp80 %v5_a, %v5_a
  %v3_13 = fmul x86_fp80 %v5_7, %v5_7
  %v4_15 = fadd x86_fp80 %v3_13, %v3_f
  %v3_19 = fmul x86_fp80 %v5_4, %v5_4
  %v4_1b = fadd x86_fp80 %v3_19, %v4_15
  %v4_1f = fdiv x86_fp80 0xK3FFF8000000000000000, %v4_1b
  store x86_fp80 %v4_1f, x86_fp80* %st4.global-to-local, align 4
  store i3 %v2_d, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_24 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_24 = call i16 @__asm_fnstsw(i32 %v0_24)
  %v2_24 = sext i16 %v1_24 to i32
  %v3_24 = load i32, i32* %eax.global-to-local, align 4
  %v4_24 = and i32 %v3_24, -65536
  %v1_26 = udiv i32 %v2_24, 256
  %v2_26 = trunc i32 %v1_26 to i8
  %v3_26 = and i8 %v2_26, 65
  %v4_26 = icmp eq i8 %v3_26, 0
  %v9_26 = zext i8 %v3_26 to i32
  %v11_26 = mul i32 %v9_26, 256
  %v2_24.masked = and i32 %v2_24, -65281
  %v12_26 = or i32 %v4_24, %v2_24.masked
  %v13_26 = or i32 %v12_26, %v11_26
  store i32 %v13_26, i32* %eax.global-to-local, align 4
  br i1 %v4_26, label %dec_label_pc_0.dec_label_pc_3a_crit_edge, label %dec_label_pc_2b

dec_label_pc_0.dec_label_pc_3a_crit_edge:         ; preds = %dec_label_pc_0
  %v3_3a.pre = load x86_fp80, x86_fp80* %st4.global-to-local, align 4
  %v0_40.pre = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_3a

dec_label_pc_2b:                                  ; preds = %dec_label_pc_0
  %v0_2b = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_2d = load i32, i32* %edi.global-to-local, align 8
  %v1_2d = add i32 %v0_2d, -92
  %v2_2d = inttoptr i32 %v1_2d to i32*
  %v3_2d = load i32, i32* %v2_2d, align 4
  %v1_30 = mul i32 %v3_2d, 8
  %v2_33 = and i32 %v1_30, 8
  store i32 %v2_33, i32* %ecx.global-to-local, align 4
  %v4_36 = add i32 %v2_33, %v0_2d
  %v5_36 = inttoptr i32 %v4_36 to double*
  %v6_36 = load double, double* %v5_36, align 4
  %v7_36 = fpext double %v6_36 to x86_fp80
  store x86_fp80 %v7_36, x86_fp80* %st4.global-to-local, align 4
  br label %dec_label_pc_3a

dec_label_pc_3a:                                  ; preds = %dec_label_pc_0.dec_label_pc_3a_crit_edge, %dec_label_pc_2b
  %v0_40 = phi i3 [ %v0_40.pre, %dec_label_pc_0.dec_label_pc_3a_crit_edge ], [ %v0_2b, %dec_label_pc_2b ]
  %v3_3e = phi x86_fp80 [ %v3_3a.pre, %dec_label_pc_0.dec_label_pc_3a_crit_edge ], [ %v7_36, %dec_label_pc_2b ]
  %v2_3a = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v4_3a = fmul x86_fp80 %v3_3e, %v2_3a
  store x86_fp80 %v4_3a, x86_fp80* %st5.global-to-local, align 4
  %v2_3c = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v4_3c = fmul x86_fp80 %v3_3e, %v2_3c
  store x86_fp80 %v4_3c, x86_fp80* %st6.global-to-local, align 4
  %v2_3e = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_3e = fmul x86_fp80 %v3_3e, %v2_3e
  store x86_fp80 %v4_3e, x86_fp80* %st7.global-to-local, align 4
  %v2_40 = load i32, i32* %esi.global-to-local, align 4
  %v3_40 = add i32 %v2_40, -32
  %v4_40 = fptrunc x86_fp80 %v3_3e to double
  %v5_40 = inttoptr i32 %v3_40 to double*
  store double %v4_40, double* %v5_40, align 4
  %v1_43 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  store x86_fp80 %v1_43, x86_fp80* %st4.global-to-local, align 4
  %v2_45 = load i32, i32* %edi.global-to-local, align 8
  %v3_45 = add i32 %v2_45, -64
  %v4_45 = inttoptr i32 %v3_45 to float*
  %v5_45 = load float, float* %v4_45, align 4
  %v6_45 = fpext float %v5_45 to x86_fp80
  %v7_45 = fmul x86_fp80 %v1_43, %v6_45
  store x86_fp80 %v7_45, x86_fp80* %st4.global-to-local, align 4
  %v2_48 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_4a = add i32 %v2_45, -68
  %v4_4a = inttoptr i32 %v3_4a to float*
  %v5_4a = load float, float* %v4_4a, align 4
  %v6_4a = fpext float %v5_4a to x86_fp80
  %v7_4a = fmul x86_fp80 %v2_48, %v6_4a
  %v4_4d = fadd x86_fp80 %v7_45, %v7_4a
  store x86_fp80 %v4_4d, x86_fp80* %st4.global-to-local, align 4
  %v2_4f = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_51 = add i32 %v2_45, -72
  %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 %v2_4f, %v6_51
  %v4_54 = fadd x86_fp80 %v4_4d, %v7_51
  store x86_fp80 %v4_54, x86_fp80* %st4.global-to-local, align 4
  %v3_58 = add i32 %v2_45, -40
  %v4_58 = inttoptr i32 %v3_58 to float*
  %v5_58 = load float, float* %v4_58, align 4
  %v6_58 = fpext float %v5_58 to x86_fp80
  %v7_58 = fmul x86_fp80 %v1_43, %v6_58
  %v3_5d = add i32 %v2_45, -44
  %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 %v2_48, %v6_5d
  %v4_60 = fadd x86_fp80 %v7_58, %v7_5d
  %v3_64 = add i32 %v2_45, -48
  %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 %v2_4f, %v6_64
  %v4_67 = fadd x86_fp80 %v4_60, %v7_64
  store x86_fp80 %v4_67, x86_fp80* %st5.global-to-local, align 4
  %v3_6b = add i32 %v2_45, -52
  %v4_6b = inttoptr i32 %v3_6b to float*
  %v5_6b = load float, float* %v4_6b, align 4
  %v6_6b = fpext float %v5_6b to x86_fp80
  %v7_6b = fmul x86_fp80 %v1_43, %v6_6b
  store x86_fp80 %v7_6b, x86_fp80* %st6.global-to-local, align 4
  %v3_70 = add i32 %v2_45, -56
  %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 %v2_48, %v6_70
  %v4_73 = fadd x86_fp80 %v7_6b, %v7_70
  store x86_fp80 %v4_73, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v2_4f, x86_fp80* %st4.global-to-local, align 4
  store x86_fp80 %v4_54, x86_fp80* %st7.global-to-local, align 4
  %v3_77 = add i32 %v2_45, -60
  %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 %v2_4f, %v6_77
  %v4_7a = fadd x86_fp80 %v4_73, %v7_77
  store x86_fp80 %v4_7a, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v4_54, x86_fp80* %st4.global-to-local, align 4
  %v3_7e = add i32 %v2_45, -24
  %v4_7e = inttoptr i32 %v3_7e to float*
  %v5_7e = load float, float* %v4_7e, align 4
  %v6_7e = fpext float %v5_7e to x86_fp80
  %v7_7e = fadd x86_fp80 %v4_54, %v6_7e
  store x86_fp80 %v7_7e, x86_fp80* %st4.global-to-local, align 4
  %v2_81 = add i32 %v2_45, -36
  %v3_81 = inttoptr i32 %v2_81 to float*
  %v4_81 = load float, float* %v3_81, align 4
  %v5_81 = fpext float %v4_81 to x86_fp80
  %v3_84 = add i32 %v2_45, -8
  %v4_84 = inttoptr i32 %v3_84 to double*
  %v5_84 = load double, double* %v4_84, align 4
  %v6_84 = fpext double %v5_84 to x86_fp80
  %v7_84 = fmul x86_fp80 %v5_81, %v6_84
  %v4_87 = fsub x86_fp80 %v7_7e, %v7_84
  %v2_89 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_87)
  store x86_fp80 %v2_89, x86_fp80* %st4.global-to-local, align 4
  %v8_96 = add i3 %v0_40, 1
  store i3 %v8_96, i3* %fpu_stat_TOP.global-to-local, align 1
  %v0_98 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_98 = call i16 @__asm_fnstsw(i32 %v0_98)
  %v2_98 = sext i16 %v1_98 to i32
  %v3_98 = load i32, i32* %eax.global-to-local, align 4
  %v4_98 = and i32 %v3_98, -65536
  %tmp249 = udiv i32 %v2_98, 2
  %v12_9a = and i32 %tmp249, 32512
  %v2_98.masked = and i32 %v2_98, -65281
  %v13_9a = or i32 %v4_98, %v2_98.masked
  %v14_9a = or i32 %v13_9a, %v12_9a
  store i32 %v14_9a, i32* %eax.global-to-local, align 4
  %v15_9a248 = and i32 %v2_98, 256
  %v16_9a = icmp ne i32 %v15_9a248, 0
  %v1_9c = icmp eq i1 %v16_9a, false
  br i1 %v1_9c, label %dec_label_pc_b6, label %dec_label_pc_9e

dec_label_pc_9e:                                  ; preds = %dec_label_pc_3a
  %v0_9e = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_a0 = load i32, i32* %edi.global-to-local, align 8
  %v2_a0 = add i32 %v1_a0, -8
  %v3_a0 = inttoptr i32 %v2_a0 to double*
  %v4_a0 = load double, double* %v3_a0, align 4
  %v5_a0 = fpext double %v4_a0 to x86_fp80
  store x86_fp80 %v5_a0, x86_fp80* %st6.global-to-local, align 4
  %v3_a3 = add i32 %v1_a0, -36
  %v4_a3 = inttoptr i32 %v3_a3 to float*
  %v5_a3 = load float, float* %v4_a3, align 4
  %v6_a3 = fpext float %v5_a3 to x86_fp80
  %v7_a3 = fmul x86_fp80 %v5_a0, %v6_a3
  store x86_fp80 %v7_a3, x86_fp80* %st6.global-to-local, align 4
  %v3_a6 = add i32 %v1_a0, -24
  %v4_a6 = inttoptr i32 %v3_a6 to float*
  %v5_a6 = load float, float* %v4_a6, align 4
  %v6_a6 = fpext float %v5_a6 to x86_fp80
  %v7_a6 = fsub x86_fp80 %v7_a3, %v6_a6
  store x86_fp80 %v7_a6, x86_fp80* %st6.global-to-local, align 4
  %v3_a9 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_a9 = fsub x86_fp80 %v7_a6, %v3_a9
  store x86_fp80 %v4_a9, x86_fp80* %st7.global-to-local, align 4
  %v2_ab = load i32, i32* %esi.global-to-local, align 4
  %v3_ab = add i32 %v2_ab, -32
  %v4_ab = inttoptr i32 %v3_ab to double*
  %v5_ab = load double, double* %v4_ab, align 4
  %v6_ab = fpext double %v5_ab to x86_fp80
  %v7_ab = fdiv x86_fp80 %v4_a9, %v6_ab
  store x86_fp80 %v7_ab, x86_fp80* %st7.global-to-local, align 4
  %v4_ae = fptrunc x86_fp80 %v7_ab to double
  store double %v4_ae, double* %v4_ab, align 4
  %v6_ae = add i3 %v0_9e, 3
  store i3 %v6_ae, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_b4 = load i32, i32* %stack_var_-4, align 4
  store i32 %v2_b4, i32* %ecx.global-to-local, align 4
  ret i32 %v14_9a

dec_label_pc_b6:                                  ; preds = %dec_label_pc_3a
  %v1_b6 = load x86_fp80, x86_fp80* %st5.global-to-local, align 4
  %v2_b6 = load i32, i32* %edi.global-to-local, align 8
  %v3_b6 = add i32 %v2_b6, -28
  %v4_b6 = inttoptr i32 %v3_b6 to float*
  %v5_b6 = load float, float* %v4_b6, align 4
  %v6_b6 = fpext float %v5_b6 to x86_fp80
  %v7_b6 = fmul x86_fp80 %v1_b6, %v6_b6
  store x86_fp80 %v7_b6, x86_fp80* %st5.global-to-local, align 4
  %v3_b9 = add i32 %v2_b6, -16
  %v4_b9 = inttoptr i32 %v3_b9 to float*
  %v5_b9 = load float, float* %v4_b9, align 4
  %v6_b9 = fpext float %v5_b9 to x86_fp80
  %v7_b9 = fsub x86_fp80 %v7_b6, %v6_b9
  store x86_fp80 %v7_b9, x86_fp80* %st5.global-to-local, align 4
  %v0_bc = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_bc = fptrunc x86_fp80 %v7_b9 to float
  %v5_bc = bitcast float %v4_bc to i32
  store i32 %v5_bc, i32* %stack_var_-36, align 4
  %v1_bf = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_bf = add i32 %v2_b6, -32
  %v4_bf = inttoptr i32 %v3_bf to float*
  %v5_bf = load float, float* %v4_bf, align 4
  %v6_bf = fpext float %v5_bf to x86_fp80
  %v7_bf = fmul x86_fp80 %v1_bf, %v6_bf
  store x86_fp80 %v7_bf, x86_fp80* %st6.global-to-local, align 4
  %v3_c2 = add i32 %v2_b6, -20
  %v4_c2 = inttoptr i32 %v3_c2 to float*
  %v5_c2 = load float, float* %v4_c2, align 4
  %v6_c2 = fpext float %v5_c2 to x86_fp80
  %v7_c2 = fsub x86_fp80 %v7_bf, %v6_c2
  store x86_fp80 %v7_c2, x86_fp80* %st6.global-to-local, align 4
  %v1_c9 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v6_c9 = add i3 %v0_bc, 3
  store i32 %v15_1, i32* %eax.global-to-local, align 4
  store i32 %v15_1, i32* %ecx.global-to-local, align 4
  %v1_da = add i32 %v2_b6, -76
  %v2_da = inttoptr i32 %v1_da to i32*
  %v3_da = load i32, i32* %v2_da, align 4
  %v1_dd = urem i32 %v3_da, 4
  store i32 %v1_dd, i32* %ecx.global-to-local, align 4
  %v1_e0 = load i32, i32* %esp.global-to-local, align 4
  %v3_e0 = mul i32 %v1_dd, 8
  %v4_e0 = add i32 %v1_e0, %v3_e0
  %v5_e0 = inttoptr i32 %v4_e0 to double*
  %v6_e0 = load double, double* %v5_e0, align 4
  %v7_e0 = fpext double %v6_e0 to x86_fp80
  store x86_fp80 %v7_e0, x86_fp80* %st7.global-to-local, align 4
  %v3_e3 = add i32 %v2_b6, -36
  %v4_e3 = inttoptr i32 %v3_e3 to float*
  %v5_e3 = load float, float* %v4_e3, align 4
  %v6_e3 = fpext float %v5_e3 to x86_fp80
  %v7_e3 = fmul x86_fp80 %v7_e0, %v6_e3
  store x86_fp80 %v7_e3, x86_fp80* %st7.global-to-local, align 4
  %v3_e6 = add i32 %v2_b6, -24
  %v4_e6 = inttoptr i32 %v3_e6 to float*
  %v5_e6 = load float, float* %v4_e6, align 4
  %v6_e6 = fpext float %v5_e6 to x86_fp80
  %v7_e6 = fsub x86_fp80 %v7_e3, %v6_e6
  %v7_e9 = fsub x86_fp80 %v7_e6, %v1_c9
  store x86_fp80 %v7_e9, x86_fp80* %st7.global-to-local, align 4
  %v2_ed = load i32, i32* %esi.global-to-local, align 4
  %v3_ed = add i32 %v2_ed, -32
  %v4_ed = inttoptr i32 %v3_ed to double*
  %v5_ed = load double, double* %v4_ed, align 4
  %v6_ed = fpext double %v5_ed to x86_fp80
  %v7_ed = fdiv x86_fp80 %v7_e9, %v6_ed
  store x86_fp80 %v7_ed, x86_fp80* %st7.global-to-local, align 4
  %v4_f0 = fptrunc x86_fp80 %v7_ed to double
  store double %v4_f0, double* %v4_ed, align 4
  %v0_f3 = load i32, i32* %edi.global-to-local, align 8
  %v1_f3 = add i32 %v0_f3, -80
  %v2_f3 = inttoptr i32 %v1_f3 to i32*
  %v3_f3 = load i32, i32* %v2_f3, align 4
  %v1_f6 = urem i32 %v3_f3, 4
  store i32 %v1_f6, i32* %ecx.global-to-local, align 4
  %v3_f9 = mul i32 %v1_f6, 8
  %v4_f9 = add i32 %v3_f9, %v1_e0
  %v5_f9 = inttoptr i32 %v4_f9 to double*
  %v6_f9 = load double, double* %v5_f9, align 4
  %v7_f9 = fpext double %v6_f9 to x86_fp80
  store x86_fp80 %v7_f9, x86_fp80* %st7.global-to-local, align 4
  %v3_fc = add i32 %v0_f3, -84
  %v4_fc = inttoptr i32 %v3_fc to float*
  %v5_fc = load float, float* %v4_fc, align 4
  %v6_fc = fpext float %v5_fc to x86_fp80
  %v7_fc = fadd x86_fp80 %v7_f9, %v6_fc
  store x86_fp80 %v7_fc, x86_fp80* %st7.global-to-local, align 4
  %v3_ff = add i32 %v0_f3, -88
  %v4_ff = inttoptr i32 %v3_ff to float*
  %v5_ff = load float, float* %v4_ff, align 4
  %v6_ff = fpext float %v5_ff to x86_fp80
  %v7_ff = fmul x86_fp80 %v7_fc, %v6_ff
  store x86_fp80 %v7_ff, x86_fp80* %st7.global-to-local, align 4
  %v3_102 = add i32 %v2_ed, 128
  %v4_102 = fptrunc x86_fp80 %v7_ff to double
  %v5_102 = inttoptr i32 %v3_102 to double*
  store double %v4_102, double* %v5_102, align 4
  store i3 %v6_c9, i3* %fpu_stat_TOP.global-to-local, align 1
  %v2_10b = load i32, i32* %stack_var_-4, align 4
  store i32 %v2_10b, i32* %ecx.global-to-local, align 4
  ret i32 %v15_1
}

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 }
