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
  %st6.global-to-local = alloca x86_fp80, align 4
  %st7.global-to-local = alloca x86_fp80, align 4
  %v0_0 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %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
  %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 %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
  %v2_55 = add i32 %v2_3, -76
  %v3_55 = inttoptr i32 %v2_55 to double*
  %v4_55 = load double, double* %v3_55, align 4
  %v5_55 = fpext double %v4_55 to x86_fp80
  store i3 %v6_0, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_55, x86_fp80* %st7.global-to-local, align 4
  %v0_5a = load i32, i32* %fpsw.global-to-local, align 4
  %v1_5a = call i16 @__asm_fnstsw(i32 %v0_5a)
  %v2_5a = sext i16 %v1_5a to i32
  %v3_5a = load i32, i32* %eax.global-to-local, align 4
  %v4_5a = and i32 %v3_5a, -65536
  %v5_5a = or i32 %v4_5a, %v2_5a
  store i32 %v5_5a, i32* %eax.global-to-local, align 4
  %v9_5e8 = and i32 %v2_5a, 16384
  %v10_5e = icmp eq i32 %v9_5e8, 0
  %v0_5f = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_5f = add i3 %v0_5f, 1
  store i3 %v4_5f, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_9a.pre = load i32, i32* %edi.global-to-local, align 4
  br i1 %v10_5e, label %dec_label_pc_63, label %dec_label_pc_99

dec_label_pc_63:                                  ; preds = %dec_label_pc_0
  %v2_63 = add i32 %v1_9a.pre, -76
  %v3_63 = inttoptr i32 %v2_63 to double*
  %v4_63 = load double, double* %v3_63, align 4
  %v5_63 = fpext double %v4_63 to x86_fp80
  %v3_66 = fadd x86_fp80 %v5_63, %v5_63
  %v3_68 = fadd x86_fp80 %v3_66, %v3_66
  store x86_fp80 %v3_68, x86_fp80* %st7.global-to-local, align 4
  %v1_6a = load i32, i32* %esi.global-to-local, align 4
  %v2_6a = add i32 %v1_6a, -120
  %v3_6a = inttoptr i32 %v2_6a to double*
  %v4_6a = load double, double* %v3_6a, align 4
  %v5_6a = fpext double %v4_6a to x86_fp80
  %v4_70 = fdiv x86_fp80 %v5_6a, %v3_68
  %v2_73 = call x86_fp80 @llvm.round.f80(x86_fp80 %v4_70)
  %v4_75 = fmul x86_fp80 %v3_68, %v2_73
  %v4_78 = fsub x86_fp80 %v5_6a, %v4_75
  %v2_7c = fsub x86_fp80 0xK80000000000000000000, %v4_78
  store x86_fp80 %v2_7c, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v4_78, x86_fp80* %st6.global-to-local, align 4
  %v5_82 = load double, double* %v3_63, align 4
  %v6_82 = fpext double %v5_82 to x86_fp80
  %v7_82 = fadd x86_fp80 %v4_78, %v6_82
  %v2_85 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_82)
  store x86_fp80 %v2_85, x86_fp80* %st6.global-to-local, align 4
  %v5_8b = load double, double* %v3_63, align 4
  %v6_8b = fpext double %v5_8b to x86_fp80
  %v7_8b = fsub x86_fp80 %v4_78, %v6_8b
  %v2_8e = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_8b)
  %v4_92 = fsub x86_fp80 %v2_85, %v2_8e
  store x86_fp80 %v4_92, x86_fp80* %st6.global-to-local, align 4
  %v4_94 = fsub x86_fp80 %v4_92, %v4_78
  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* %v3_6a, align 4
  store i3 %v4_5f, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_99

dec_label_pc_99:                                  ; preds = %dec_label_pc_0, %dec_label_pc_63
  %v2_9a = add i32 %v1_9a.pre, -84
  %v3_9a = inttoptr i32 %v2_9a to double*
  %v4_9a = load double, double* %v3_9a, align 4
  %v5_9a = fpext double %v4_9a to x86_fp80
  store i3 %v0_5f, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_9a, x86_fp80* %st7.global-to-local, align 4
  %v0_9f = load i32, i32* %fpsw.global-to-local, align 4
  %v1_9f = call i16 @__asm_fnstsw(i32 %v0_9f)
  %v2_9f = sext i16 %v1_9f to i32
  %v3_9f = load i32, i32* %eax.global-to-local, align 4
  %v4_9f = and i32 %v3_9f, -65536
  %v5_9f = or i32 %v4_9f, %v2_9f
  store i32 %v5_9f, i32* %eax.global-to-local, align 4
  %v9_a39 = and i32 %v2_9f, 16384
  %v10_a3 = icmp eq i32 %v9_a39, 0
  %v0_a4 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_a4 = add i3 %v0_a4, 1
  store i3 %v4_a4, i3* %fpu_stat_TOP.global-to-local, align 1
  %v1_df.pre = load i32, i32* %edi.global-to-local, align 4
  br i1 %v10_a3, label %dec_label_pc_a8, label %dec_label_pc_de

dec_label_pc_a8:                                  ; preds = %dec_label_pc_99
  %v2_a8 = add i32 %v1_df.pre, -84
  %v3_a8 = inttoptr i32 %v2_a8 to double*
  %v4_a8 = load double, double* %v3_a8, align 4
  %v5_a8 = fpext double %v4_a8 to x86_fp80
  %v3_ab = fadd x86_fp80 %v5_a8, %v5_a8
  %v3_ad = fadd x86_fp80 %v3_ab, %v3_ab
  store x86_fp80 %v3_ad, x86_fp80* %st7.global-to-local, align 4
  %v1_af = load i32, i32* %esi.global-to-local, align 4
  %v2_af = add i32 %v1_af, -112
  %v3_af = inttoptr i32 %v2_af to double*
  %v4_af = load double, double* %v3_af, align 4
  %v5_af = fpext double %v4_af to x86_fp80
  %v4_b5 = fdiv x86_fp80 %v5_af, %v3_ad
  %v2_b8 = call x86_fp80 @llvm.round.f80(x86_fp80 %v4_b5)
  %v4_ba = fmul x86_fp80 %v3_ad, %v2_b8
  %v4_bd = fsub x86_fp80 %v5_af, %v4_ba
  %v2_c1 = fsub x86_fp80 0xK80000000000000000000, %v4_bd
  store x86_fp80 %v2_c1, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v4_bd, x86_fp80* %st6.global-to-local, align 4
  %v5_c7 = load double, double* %v3_a8, align 4
  %v6_c7 = fpext double %v5_c7 to x86_fp80
  %v7_c7 = fadd x86_fp80 %v4_bd, %v6_c7
  %v2_ca = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_c7)
  store x86_fp80 %v2_ca, x86_fp80* %st6.global-to-local, align 4
  %v5_d0 = load double, double* %v3_a8, align 4
  %v6_d0 = fpext double %v5_d0 to x86_fp80
  %v7_d0 = fsub x86_fp80 %v4_bd, %v6_d0
  %v2_d3 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_d0)
  %v4_d7 = fsub x86_fp80 %v2_ca, %v2_d3
  store x86_fp80 %v4_d7, x86_fp80* %st6.global-to-local, align 4
  %v4_d9 = fsub x86_fp80 %v4_d7, %v4_bd
  store x86_fp80 %v4_d9, x86_fp80* %st7.global-to-local, align 4
  %v4_db = fptrunc x86_fp80 %v4_d9 to double
  store double %v4_db, double* %v3_af, align 4
  store i3 %v4_a4, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_de

dec_label_pc_de:                                  ; preds = %dec_label_pc_99, %dec_label_pc_a8
  %v2_df = add i32 %v1_df.pre, -92
  %v3_df = inttoptr i32 %v2_df to double*
  %v4_df = load double, double* %v3_df, align 4
  %v5_df = fpext double %v4_df to x86_fp80
  store i3 %v0_a4, i3* %fpu_stat_TOP.global-to-local, align 1
  store x86_fp80 %v5_df, x86_fp80* %st7.global-to-local, align 4
  %v0_e4 = load i32, i32* %fpsw.global-to-local, align 4
  %v1_e4 = call i16 @__asm_fnstsw(i32 %v0_e4)
  %v2_e4 = sext i16 %v1_e4 to i32
  %v3_e4 = load i32, i32* %eax.global-to-local, align 4
  %v4_e4 = and i32 %v3_e4, -65536
  %v5_e4 = or i32 %v4_e4, %v2_e4
  store i32 %v5_e4, i32* %eax.global-to-local, align 4
  %v9_e810 = and i32 %v2_e4, 16384
  %v10_e8 = icmp eq i32 %v9_e810, 0
  %v0_e9 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v4_e9 = add i3 %v0_e9, 1
  store i3 %v4_e9, i3* %fpu_stat_TOP.global-to-local, align 1
  br i1 %v10_e8, label %dec_label_pc_ed, label %dec_label_pc_123

dec_label_pc_ed:                                  ; preds = %dec_label_pc_de
  %v1_ed = load i32, i32* %edi.global-to-local, align 4
  %v2_ed = add i32 %v1_ed, -92
  %v3_ed = inttoptr i32 %v2_ed to double*
  %v4_ed = load double, double* %v3_ed, align 4
  %v5_ed = fpext double %v4_ed to x86_fp80
  %v3_f0 = fadd x86_fp80 %v5_ed, %v5_ed
  %v3_f2 = fadd x86_fp80 %v3_f0, %v3_f0
  store x86_fp80 %v3_f2, x86_fp80* %st7.global-to-local, align 4
  %v1_f4 = load i32, i32* %esi.global-to-local, align 4
  %v2_f4 = add i32 %v1_f4, -104
  %v3_f4 = inttoptr i32 %v2_f4 to double*
  %v4_f4 = load double, double* %v3_f4, align 4
  %v5_f4 = fpext double %v4_f4 to x86_fp80
  %v4_fa = fdiv x86_fp80 %v5_f4, %v3_f2
  %v2_fd = call x86_fp80 @llvm.round.f80(x86_fp80 %v4_fa)
  %v4_ff = fmul x86_fp80 %v3_f2, %v2_fd
  %v4_102 = fsub x86_fp80 %v5_f4, %v4_ff
  %v2_106 = fsub x86_fp80 0xK80000000000000000000, %v4_102
  store x86_fp80 %v2_106, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v4_102, x86_fp80* %st6.global-to-local, align 4
  %v5_10c = load double, double* %v3_ed, align 4
  %v6_10c = fpext double %v5_10c to x86_fp80
  %v7_10c = fadd x86_fp80 %v4_102, %v6_10c
  %v2_10f = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_10c)
  store x86_fp80 %v2_10f, x86_fp80* %st6.global-to-local, align 4
  %v5_115 = load double, double* %v3_ed, align 4
  %v6_115 = fpext double %v5_115 to x86_fp80
  %v7_115 = fsub x86_fp80 %v4_102, %v6_115
  %v2_118 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_115)
  %v4_11c = fsub x86_fp80 %v2_10f, %v2_118
  store x86_fp80 %v4_11c, x86_fp80* %st6.global-to-local, align 4
  %v4_11e = fsub x86_fp80 %v4_11c, %v4_102
  store x86_fp80 %v4_11e, x86_fp80* %st7.global-to-local, align 4
  %v4_120 = fptrunc x86_fp80 %v4_11e to double
  store double %v4_120, double* %v3_f4, align 4
  store i3 %v4_e9, i3* %fpu_stat_TOP.global-to-local, align 1
  br label %dec_label_pc_123

dec_label_pc_123:                                 ; preds = %dec_label_pc_de, %dec_label_pc_ed
  ret i32 %v5_e4
}

declare i16 @__asm_fnstsw(i32) local_unnamed_addr

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

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

attributes #0 = { nounwind readnone speculatable }
