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:
  %edi.global-to-local = alloca i32, align 4
  %esi.global-to-local = alloca i32, align 4
  %fpsw.global-to-local = alloca i32, align 4
  %st6.global-to-local = alloca x86_fp80, align 4
  %st7.global-to-local = alloca x86_fp80, align 4
  %v1_0 = load i32, i32* %esi.global-to-local, align 4
  %v2_0 = add i32 %v1_0, -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
  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 %v1_0, -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
  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 %v1_0, -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
  %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
  %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
  %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
  %v4_4b = fptrunc x86_fp80 %v4_36 to double
  store double %v4_4b, double* %v3_c, align 4
  %v1_4e = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v4_4e = fptrunc x86_fp80 %v1_4e to double
  store double %v4_4e, double* %v3_6, align 4
  %v1_51 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v4_51 = fptrunc x86_fp80 %v1_51 to double
  store double %v4_51, double* %v3_0, align 4
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st7.global-to-local, align 4
  %v4_57 = load double, double* %v3_c, align 4
  %tmp240 = call double @llvm.fabs.f64(double %v4_57)
  %v2_5a = fpext double %tmp240 to x86_fp80
  store x86_fp80 %v2_5a, x86_fp80* %st6.global-to-local, align 4
  %v4_5c = fsub x86_fp80 0xK3FFF8000000000000000, %v2_5a
  %v4_5e = fptrunc x86_fp80 %v4_5c to double
  store double %v4_5e, double* %v3_c, align 4
  store x86_fp80 0xK3FFF8000000000000000, x86_fp80* %st7.global-to-local, align 4
  %v4_63 = load double, double* %v3_6, align 4
  %tmp241 = call double @llvm.fabs.f64(double %v4_63)
  %v2_66 = fpext double %tmp241 to x86_fp80
  store x86_fp80 %v2_66, x86_fp80* %st6.global-to-local, align 4
  %v4_68 = fsub x86_fp80 0xK3FFF8000000000000000, %v2_66
  store x86_fp80 %v4_68, x86_fp80* %st7.global-to-local, align 4
  %v4_6a = fptrunc x86_fp80 %v4_68 to double
  store double %v4_6a, double* %v3_6, align 4
  %v4_6e = load double, double* %v3_c, align 4
  %v5_6e = fpext double %v4_6e to x86_fp80
  store x86_fp80 %v5_6e, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 0xK00000000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v0_75 = call i32 @__asm_wait()
  %v0_76 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_76 = call i16 @__asm_fnstsw(i32 %v0_76)
  %tmp245 = and i16 %v1_76, 256
  %v16_78 = icmp ne i16 %tmp245, 0
  %v1_7a = icmp eq i1 %v16_78, false
  br i1 %v1_7a, label %dec_label_pc_0.dec_label_pc_99_crit_edge, label %dec_label_pc_7c

dec_label_pc_0.dec_label_pc_99_crit_edge:         ; preds = %dec_label_pc_0
  %v1_99.pre = load i32, i32* %esi.global-to-local, align 4
  br label %dec_label_pc_99

dec_label_pc_7c:                                  ; preds = %dec_label_pc_0
  %v1_7c = load i32, i32* %edi.global-to-local, align 4
  %v2_7c = add i32 %v1_7c, -76
  %v3_7c = inttoptr i32 %v2_7c to double*
  %v4_7c = load double, double* %v3_7c, align 4
  %v5_7c = fpext double %v4_7c to x86_fp80
  %v4_81 = fadd x86_fp80 %v5_7c, 0xKBFFF8000000000000000
  store x86_fp80 %v4_81, x86_fp80* %st7.global-to-local, align 4
  %v4_87 = fsub x86_fp80 0xK3FFF8000000000000000, %v4_81
  store x86_fp80 %v4_87, x86_fp80* %st6.global-to-local, align 4
  %v2_89 = load i32, i32* %esi.global-to-local, align 4
  %v3_89 = add i32 %v2_89, -120
  %v4_89 = inttoptr i32 %v3_89 to double*
  %v5_89 = load double, double* %v4_89, align 4
  %v6_89 = fpext double %v5_89 to x86_fp80
  %v7_89 = fmul x86_fp80 %v4_87, %v6_89
  store x86_fp80 %v4_81, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v7_89, x86_fp80* %st7.global-to-local, align 4
  %v5_8e = load double, double* %v4_89, align 4
  %v6_8e = fpext double %v5_8e to x86_fp80
  %v7_8e = fmul x86_fp80 %v4_81, %v6_8e
  store x86_fp80 %v7_8e, x86_fp80* %st6.global-to-local, align 4
  %v5_91 = load double, double* %v4_89, align 4
  %v6_91 = fpext double %v5_91 to x86_fp80
  %v7_91 = fmul x86_fp80 %v7_8e, %v6_91
  store x86_fp80 %v7_91, x86_fp80* %st6.global-to-local, align 4
  %v4_94 = fadd x86_fp80 %v7_89, %v7_91
  store x86_fp80 %v4_94, x86_fp80* %st7.global-to-local, align 4
  %v4_96 = fptrunc x86_fp80 %v4_94 to double
  store double %v4_96, double* %v4_89, align 4
  br label %dec_label_pc_99

dec_label_pc_99:                                  ; preds = %dec_label_pc_0.dec_label_pc_99_crit_edge, %dec_label_pc_7c
  %v1_99 = phi i32 [ %v1_99.pre, %dec_label_pc_0.dec_label_pc_99_crit_edge ], [ %v2_89, %dec_label_pc_7c ]
  %v2_99 = add i32 %v1_99, -112
  %v3_99 = inttoptr i32 %v2_99 to double*
  %v4_99 = load double, double* %v3_99, align 4
  %v5_99 = fpext double %v4_99 to x86_fp80
  store x86_fp80 %v5_99, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 0xK00000000000000000000, x86_fp80* %st6.global-to-local, align 4
  %v0_a0 = call i32 @__asm_wait()
  %v0_a1 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_a1 = call i16 @__asm_fnstsw(i32 %v0_a1)
  %v2_a1 = sext i16 %v1_a1 to i32
  %v4_a1 = and i32 %v0_a0, -65536
  %tmp243 = udiv i32 %v2_a1, 2
  %v12_a3 = and i32 %tmp243, 32512
  %v2_a1.masked = and i32 %v2_a1, -65281
  %v13_a3 = or i32 %v4_a1, %v2_a1.masked
  %v14_a3 = or i32 %v13_a3, %v12_a3
  %v15_a310 = and i32 %v2_a1, 256
  %v16_a3 = icmp ne i32 %v15_a310, 0
  %v1_a5 = icmp eq i1 %v16_a3, false
  br i1 %v1_a5, label %dec_label_pc_c4, label %dec_label_pc_a7

dec_label_pc_a7:                                  ; preds = %dec_label_pc_99
  %v1_a7 = load i32, i32* %edi.global-to-local, align 4
  %v2_a7 = add i32 %v1_a7, -84
  %v3_a7 = inttoptr i32 %v2_a7 to double*
  %v4_a7 = load double, double* %v3_a7, align 4
  %v5_a7 = fpext double %v4_a7 to x86_fp80
  %v4_ac = fadd x86_fp80 %v5_a7, 0xKBFFF8000000000000000
  store x86_fp80 %v4_ac, x86_fp80* %st7.global-to-local, align 4
  %v4_b2 = fsub x86_fp80 0xK3FFF8000000000000000, %v4_ac
  store x86_fp80 %v4_b2, x86_fp80* %st6.global-to-local, align 4
  %v2_b4 = load i32, i32* %esi.global-to-local, align 4
  %v3_b4 = add i32 %v2_b4, -112
  %v4_b4 = inttoptr i32 %v3_b4 to double*
  %v5_b4 = load double, double* %v4_b4, align 4
  %v6_b4 = fpext double %v5_b4 to x86_fp80
  %v7_b4 = fmul x86_fp80 %v4_b2, %v6_b4
  store x86_fp80 %v4_ac, x86_fp80* %st6.global-to-local, align 4
  store x86_fp80 %v7_b4, x86_fp80* %st7.global-to-local, align 4
  %v5_b9 = load double, double* %v4_b4, align 4
  %v6_b9 = fpext double %v5_b9 to x86_fp80
  %v7_b9 = fmul x86_fp80 %v4_ac, %v6_b9
  store x86_fp80 %v7_b9, x86_fp80* %st6.global-to-local, align 4
  %v5_bc = load double, double* %v4_b4, align 4
  %v6_bc = fpext double %v5_bc to x86_fp80
  %v7_bc = fmul x86_fp80 %v7_b9, %v6_bc
  store x86_fp80 %v7_bc, x86_fp80* %st6.global-to-local, align 4
  %v4_bf = fadd x86_fp80 %v7_b4, %v7_bc
  store x86_fp80 %v4_bf, x86_fp80* %st7.global-to-local, align 4
  %v4_c1 = fptrunc x86_fp80 %v4_bf to double
  store double %v4_c1, double* %v4_b4, align 4
  br label %dec_label_pc_c4

dec_label_pc_c4:                                  ; preds = %dec_label_pc_a7, %dec_label_pc_99
  ret i32 %v14_a3
}

declare i32 @__asm_wait() local_unnamed_addr

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 }
