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

@edi = internal unnamed_addr global i32 0, align 8

define i32 @function_0() local_unnamed_addr {
dec_label_pc_0:
  %eax.global-to-local = alloca i32, align 4
  %esi.global-to-local = alloca i32, align 4
  %st7.global-to-local = alloca x86_fp80, align 4
  %v1_3 = load i32, i32* %esi.global-to-local, align 4
  %v2_3 = add i32 %v1_3, -112
  %v3_3 = inttoptr i32 %v2_3 to double*
  %v4_3 = load double, double* %v3_3, align 4
  %v5_3 = fpext double %v4_3 to x86_fp80
  store x86_fp80 %v5_3, x86_fp80* %st7.global-to-local, align 4
  %v2_6 = add i32 %v1_3, -120
  %v3_6 = inttoptr i32 %v2_6 to double*
  %v4_6 = load double, double* %v3_6, align 4
  %v8_10 = fpext double %v4_6 to x86_fp80
  store x86_fp80 %v8_10, x86_fp80* %st7.global-to-local, align 4
  %v2_13 = load i32, i32* @edi, align 8
  %v3_13 = add i32 %v2_13, -16
  %v4_13 = inttoptr i32 %v3_13 to double*
  %v5_13 = load double, double* %v4_13, align 4
  %v6_13 = fpext double %v5_13 to x86_fp80
  %v7_13 = fsub x86_fp80 %v8_10, %v6_13
  %tmp242 = fptrunc x86_fp80 %v7_13 to double
  %tmp243 = call double @llvm.fabs.f64(double %tmp242)
  %v8_1b = fpext double %tmp243 to x86_fp80
  store x86_fp80 %v8_1b, x86_fp80* %st7.global-to-local, align 4
  %v5_1e = load double, double* %v4_13, align 4
  %v6_1e = fpext double %v5_1e to x86_fp80
  %v7_1e = fdiv x86_fp80 %v8_1b, %v6_1e
  %v4_21 = load double, double* bitcast (i32* @edi to double*), align 8
  %v5_21 = fpext double %v4_21 to x86_fp80
  %v6_21 = fmul x86_fp80 %v7_1e, %v5_21
  %v6_23 = fsub x86_fp80 %v6_21, %v5_21
  %v2_25 = call x86_fp80 @llvm.round.f80(x86_fp80 %v6_23)
  %v3_27 = fadd x86_fp80 %v2_25, %v2_25
  %v4_2b = fadd x86_fp80 %v3_27, 0xK3FFF8000000000000000
  store x86_fp80 %v4_2b, x86_fp80* %st7.global-to-local, align 4
  %tmp244 = bitcast double %v4_21 to i64
  %tmp245 = trunc i64 %tmp244 to i32
  %v3_2d = add i32 %tmp245, -16
  %v4_2d = inttoptr i32 %v3_2d to double*
  %v5_2d = load double, double* %v4_2d, align 4
  %v6_2d = fpext double %v5_2d to x86_fp80
  %v7_2d = fmul x86_fp80 %v4_2b, %v6_2d
  %v10_32 = fsub x86_fp80 %v8_1b, %v7_2d
  %v2_35 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v10_32)
  store x86_fp80 %v2_35, x86_fp80* %st7.global-to-local, align 4
  %tmp246 = fptrunc x86_fp80 %v10_32 to double
  %tmp247 = call double @llvm.fabs.f64(double %tmp246)
  %v4_3a = load double, double* %v4_2d, align 4
  %v5_3a = fpext double %v4_3a to x86_fp80
  store x86_fp80 %v5_3a, x86_fp80* %st7.global-to-local, align 4
  %v3_3d = add i32 %tmp245, 8
  %v4_3d = inttoptr i32 %v3_3d to double*
  %v5_3d = load double, double* %v4_3d, align 4
  %v6_3d = fpext double %v5_3d to x86_fp80
  %v7_3d = fmul x86_fp80 %v5_3a, %v6_3d
  %v7_48 = fsub x86_fp80 %v5_3, %v7_3d
  %tmp248 = fptrunc x86_fp80 %v7_48 to double
  %v4_4e = call double @llvm.fabs.f64(double %tmp248)
  %v5_52 = fpext double %v4_4e to x86_fp80
  %v7_56 = fdiv x86_fp80 %v5_52, %v7_3d
  %v6_5a = fmul x86_fp80 %v7_56, %v5_21
  %v6_5c = fsub x86_fp80 %v6_5a, %v5_21
  %v2_5e = call x86_fp80 @llvm.round.f80(x86_fp80 %v6_5c)
  %v3_60 = fadd x86_fp80 %v2_5e, %v2_5e
  %v4_64 = fadd x86_fp80 %v3_60, 0xK3FFF8000000000000000
  %v7_66 = fmul x86_fp80 %v4_64, %v7_3d
  %v7_6c = fsub x86_fp80 %v5_52, %v7_66
  %tmp249 = fptrunc x86_fp80 %v7_6c to double
  %v4_72 = call double @llvm.fabs.f64(double %tmp249)
  %v8_76 = fpext double %tmp247 to x86_fp80
  store x86_fp80 %v8_76, x86_fp80* %st7.global-to-local, align 4
  %v3_79 = add i32 %tmp245, 16
  %v4_79 = inttoptr i32 %v3_79 to double*
  %v5_79 = load double, double* %v4_79, align 4
  %v6_79 = fpext double %v5_79 to x86_fp80
  %v7_79 = fmul x86_fp80 %v6_79, %v8_76
  store x86_fp80 %v7_79, x86_fp80* %st7.global-to-local, align 4
  %v5_7c = fpext double %v4_72 to x86_fp80
  %v3_80 = add i32 %tmp245, 24
  %v4_80 = inttoptr i32 %v3_80 to double*
  %v5_80 = load double, double* %v4_80, align 4
  %v6_80 = fpext double %v5_80 to x86_fp80
  %v7_80 = fmul x86_fp80 %v6_80, %v5_7c
  %v4_83 = fadd x86_fp80 %v7_79, %v7_80
  store x86_fp80 %v4_83, x86_fp80* %st7.global-to-local, align 4
  %v3_85 = add i32 %tmp245, 32
  %v4_85 = inttoptr i32 %v3_85 to double*
  %v5_85 = load double, double* %v4_85, align 4
  %v6_85 = fpext double %v5_85 to x86_fp80
  %v7_85 = fadd x86_fp80 %v4_83, %v6_85
  %v2_8a = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_85)
  %v4_8e = fsub x86_fp80 %v7_85, %v2_8a
  store x86_fp80 %v4_8e, x86_fp80* %st7.global-to-local, align 4
  %v5_96 = load double, double* %v4_79, align 4
  %v6_96 = fpext double %v5_96 to x86_fp80
  %v7_96 = fmul x86_fp80 %v4_8e, %v6_96
  %v10_9b = fsub x86_fp80 %v8_76, %v7_96
  %tmp250 = fptrunc x86_fp80 %v10_9b to double
  %tmp251 = call double @llvm.fabs.f64(double %tmp250)
  %v5_a3 = load double, double* %v4_80, align 4
  %v6_a3 = fpext double %v5_a3 to x86_fp80
  %v7_a3 = fmul x86_fp80 %v4_8e, %v6_a3
  %v7_a8 = fsub x86_fp80 %v5_7c, %v7_a3
  %tmp252 = fptrunc x86_fp80 %v7_a8 to double
  %v4_ae = call double @llvm.fabs.f64(double %tmp252)
  %v8_b2 = fpext double %tmp251 to x86_fp80
  store x86_fp80 %v8_b2, x86_fp80* %st7.global-to-local, align 4
  %v5_b5 = load double, double* %v4_79, align 4
  %v6_b5 = fpext double %v5_b5 to x86_fp80
  %v7_b5 = fmul x86_fp80 %v6_b5, %v8_b2
  store x86_fp80 %v7_b5, x86_fp80* %st7.global-to-local, align 4
  %v5_b8 = fpext double %v4_ae to x86_fp80
  %v5_bc = load double, double* %v4_80, align 4
  %v6_bc = fpext double %v5_bc to x86_fp80
  %v7_bc = fmul x86_fp80 %v6_bc, %v5_b8
  %v4_bf = fadd x86_fp80 %v7_b5, %v7_bc
  store x86_fp80 %v4_bf, x86_fp80* %st7.global-to-local, align 4
  %v5_c1 = load double, double* %v4_85, align 4
  %v6_c1 = fpext double %v5_c1 to x86_fp80
  %v7_c1 = fadd x86_fp80 %v4_bf, %v6_c1
  %v2_c6 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v7_c1)
  %v4_ca = fsub x86_fp80 %v7_c1, %v2_c6
  store x86_fp80 %v4_ca, x86_fp80* %st7.global-to-local, align 4
  %v5_d2 = load double, double* %v4_79, align 4
  %v6_d2 = fpext double %v5_d2 to x86_fp80
  %v7_d2 = fmul x86_fp80 %v4_ca, %v6_d2
  %v10_d7 = fsub x86_fp80 %v8_b2, %v7_d2
  %v5_df = load double, double* %v4_80, align 4
  %v6_df = fpext double %v5_df to x86_fp80
  %v7_df = fmul x86_fp80 %v4_ca, %v6_df
  %v7_e4 = fsub x86_fp80 %v5_b8, %v7_df
  %v4_ea = fptrunc x86_fp80 %v7_e4 to double
  store x86_fp80 %v10_d7, x86_fp80* %st7.global-to-local, align 4
  %v2_f5 = load i32, i32* %esi.global-to-local, align 4
  %v3_f5 = add i32 %v2_f5, -112
  %v5_f5 = inttoptr i32 %v3_f5 to double*
  store double %v4_ea, double* %v5_f5, align 4
  %v1_f8 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_f8 = add i32 %v2_f5, -120
  %v4_f8 = fptrunc x86_fp80 %v1_f8 to double
  %v5_f8 = inttoptr i32 %v3_f8 to double*
  store double %v4_f8, double* %v5_f8, align 4
  %v0_fe = load i32, i32* %eax.global-to-local, align 4
  ret i32 %v0_fe
}

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

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

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

attributes #0 = { nounwind readnone speculatable }
