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
@ecx = internal unnamed_addr global i32 0, align 8
@edx = internal unnamed_addr global i32 0, align 8
@global_var_1.1 = constant i8 -117

define i32 @function_0(i32 %arg1) local_unnamed_addr {
dec_label_pc_0:
  %ebx.global-to-local = alloca i32, align 4
  %edi.global-to-local = alloca i32, align 4
  %esi.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_9 = load i32, i32* %ebx.global-to-local, align 4
  %v0_a = load i32, i32* %esi.global-to-local, align 4
  %v0_b = load i32, i32* %edi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v1_f = add i32 %arg1, 48
  %v2_f = inttoptr i32 %v1_f to i32*
  %v3_f = load i32, i32* %v2_f, align 4
  store i32 %v3_f, i32* %edi.global-to-local, align 4
  %v0_12 = load i32, i32* @eax, align 8
  store i32 %v0_12, i32* %ebx.global-to-local, align 4
  %v0_16 = load i3, i3* %fpu_stat_TOP.global-to-local, align 1
  %v3_16 = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_16 = fpext double %v3_16 to x86_fp80
  store x86_fp80 %v4_16, x86_fp80* %st7.global-to-local, align 4
  %v3_18 = add i32 %v3_f, 32
  %v4_18 = inttoptr i32 %v3_18 to double*
  %v5_18 = load double, double* %v4_18, align 4
  %v6_18 = fpext double %v5_18 to x86_fp80
  %v7_18 = fmul x86_fp80 %v4_16, %v6_18
  store x86_fp80 %v7_18, x86_fp80* %st7.global-to-local, align 4
  %v1_1b = load i32, i32* @ecx, align 8
  %v2_1b = add i32 %v1_1b, 8
  %v3_1b = inttoptr i32 %v2_1b to double*
  %v4_1b = load double, double* %v3_1b, align 4
  %v5_1b = fpext double %v4_1b to x86_fp80
  store x86_fp80 %v5_1b, x86_fp80* %st6.global-to-local, align 4
  %v3_1e = add i32 %v3_f, 24
  %v4_1e = inttoptr i32 %v3_1e to double*
  %v5_1e = load double, double* %v4_1e, align 4
  %v6_1e = fpext double %v5_1e to x86_fp80
  %v7_1e = fmul x86_fp80 %v5_1b, %v6_1e
  store x86_fp80 %v7_1e, x86_fp80* %st6.global-to-local, align 4
  %v4_21 = fadd x86_fp80 %v7_18, %v7_1e
  %tmp240 = fptrunc x86_fp80 %v4_21 to double
  %v4_25 = call double @llvm.fabs.f64(double %tmp240)
  store x86_fp80 %v4_16, x86_fp80* %st7.global-to-local, align 4
  %v5_2b = load double, double* %v4_1e, align 4
  %v6_2b = fpext double %v5_2b to x86_fp80
  %v7_2b = fmul x86_fp80 %v4_16, %v6_2b
  store x86_fp80 %v7_2b, x86_fp80* %st7.global-to-local, align 4
  %v4_2e = load double, double* %v3_1b, align 4
  %v5_2e = fpext double %v4_2e to x86_fp80
  store x86_fp80 %v5_2e, x86_fp80* %st6.global-to-local, align 4
  %v5_31 = load double, double* %v4_18, align 4
  %v6_31 = fpext double %v5_31 to x86_fp80
  %v7_31 = fmul x86_fp80 %v5_2e, %v6_31
  %v2_34 = fsub x86_fp80 0xK80000000000000000000, %v7_31
  store x86_fp80 %v2_34, x86_fp80* %st6.global-to-local, align 4
  %v4_36 = fsub x86_fp80 %v7_2b, %v7_31
  store x86_fp80 %v4_36, x86_fp80* %st7.global-to-local, align 4
  %v3_3b = inttoptr i32 %v3_f to double*
  %v4_3b = load double, double* %v3_3b, align 4
  %v5_3b = fpext double %v4_3b to x86_fp80
  %v6_3b = fmul x86_fp80 %v4_36, %v5_3b
  store x86_fp80 %v6_3b, x86_fp80* %st7.global-to-local, align 4
  %v3_3d = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_3d = fpext double %v3_3d to x86_fp80
  store x86_fp80 %v4_3d, x86_fp80* %st6.global-to-local, align 4
  %v3_3f = add i32 %v3_f, 8
  %v4_3f = inttoptr i32 %v3_3f to double*
  %v5_3f = load double, double* %v4_3f, align 4
  %v6_3f = fpext double %v5_3f to x86_fp80
  %v7_3f = fmul x86_fp80 %v4_3d, %v6_3f
  %v2_42 = fsub x86_fp80 0xK80000000000000000000, %v7_3f
  store x86_fp80 %v2_42, x86_fp80* %st6.global-to-local, align 4
  %v4_44 = fsub x86_fp80 %v6_3b, %v7_3f
  store x86_fp80 %v4_44, x86_fp80* %st7.global-to-local, align 4
  %v3_46 = add i32 %v3_f, 16
  %v4_46 = inttoptr i32 %v3_46 to double*
  %v5_46 = load double, double* %v4_46, align 4
  %v6_46 = fpext double %v5_46 to x86_fp80
  %v7_46 = fmul x86_fp80 %v4_44, %v6_46
  store x86_fp80 %v4_36, x86_fp80* %st7.global-to-local, align 4
  %v5_4f = load double, double* %v4_3f, align 4
  %v6_4f = fpext double %v5_4f to x86_fp80
  %v7_4f = fmul x86_fp80 %v4_36, %v6_4f
  store x86_fp80 %v7_4f, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v4_3d, x86_fp80* %st6.global-to-local, align 4
  %v4_54 = load double, double* %v3_3b, align 4
  %v5_54 = fpext double %v4_54 to x86_fp80
  %v6_54 = fmul x86_fp80 %v4_3d, %v5_54
  %v4_56 = fadd x86_fp80 %v7_4f, %v6_54
  %v2_58 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_56)
  store x86_fp80 %v2_58, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v7_46, x86_fp80* %st6.global-to-local, align 4
  %v3_5e = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_5e = fpext double %v3_5e to x86_fp80
  %v5_60 = load double, double* %v4_46, align 4
  %v6_60 = fpext double %v5_60 to x86_fp80
  %v7_60 = fmul x86_fp80 %v4_5e, %v6_60
  %v4_65 = fsub x86_fp80 %v7_46, %v7_60
  %v2_67 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %v4_65)
  store x86_fp80 %v2_67, x86_fp80* %st6.global-to-local, align 4
  %v5_6f = load double, double* %v4_46, align 4
  %v6_6f = fpext double %v5_6f to x86_fp80
  %v7_6f = fmul x86_fp80 %v4_5e, %v6_6f
  %v4_72 = fadd x86_fp80 %v7_6f, %v7_46
  %tmp241 = bitcast double %v3_5e to i64
  %tmp242 = trunc i64 %tmp241 to i32
  %tmp243 = fptrunc x86_fp80 %v4_72 to double
  %v3_77 = call double @llvm.fabs.f64(double %tmp243)
  %v4_77 = inttoptr i32 %tmp242 to double*
  store double %v3_77, double* %v4_77, align 4
  %v1_79 = load x86_fp80, x86_fp80* %st6.global-to-local, align 4
  %v3_79 = fptrunc x86_fp80 %v1_79 to double
  %v4_79 = inttoptr i32 %v0_12 to double*
  store double %v3_79, double* %v4_79, align 4
  %v1_7b = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v2_7b = load i32, i32* @ecx, align 8
  %v3_7b = fptrunc x86_fp80 %v1_7b to double
  %v4_7b = inttoptr i32 %v2_7b to double*
  store double %v3_7b, double* %v4_7b, align 4
  %v3_7e = load double, double* bitcast (i32* @eax to double*), align 8
  %v4_7e = fpext double %v3_7e to x86_fp80
  %v4_80 = load double, double* bitcast (i32* @edx to double*), align 8
  %v5_80 = fpext double %v4_80 to x86_fp80
  %v6_80 = fadd x86_fp80 %v4_7e, %v5_80
  store x86_fp80 %v6_80, x86_fp80* %st7.global-to-local, align 4
  %v5_82 = load double, double* %v4_46, align 4
  %v6_82 = fpext double %v5_82 to x86_fp80
  %v7_82 = fmul x86_fp80 %v6_80, %v6_82
  %v6_8d = fsub x86_fp80 %v5_80, %v4_7e
  store x86_fp80 %v6_8d, x86_fp80* %st7.global-to-local, align 4
  %v5_8f = load double, double* %v4_46, align 4
  %v6_8f = fpext double %v5_8f to x86_fp80
  %v7_8f = fmul x86_fp80 %v6_8d, %v6_8f
  %tmp244 = bitcast double %v4_80 to i64
  %tmp245 = trunc i64 %tmp244 to i32
  %v3_92 = fptrunc x86_fp80 %v7_8f to double
  %v4_92 = inttoptr i32 %tmp245 to double*
  store double %v3_92, double* %v4_92, align 4
  store x86_fp80 %v7_82, x86_fp80* %st7.global-to-local, align 4
  %v4_9a = load double, double* %v3_3b, align 4
  %v5_9a = fpext double %v4_9a to x86_fp80
  %v6_9a = fmul x86_fp80 %v7_82, %v5_9a
  store x86_fp80 %v6_9a, x86_fp80* %st7.global-to-local, align 4
  %v3_9c = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_9c = fpext double %v3_9c to x86_fp80
  store x86_fp80 %v4_9c, x86_fp80* %st6.global-to-local, align 4
  %v5_9e = load double, double* %v4_3f, align 4
  %v6_9e = fpext double %v5_9e to x86_fp80
  %v7_9e = fmul x86_fp80 %v4_9c, %v6_9e
  %v4_a1 = fadd x86_fp80 %v6_9a, %v7_9e
  store x86_fp80 %v4_a1, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v7_82, x86_fp80* %st6.global-to-local, align 4
  %v5_aa = load double, double* %v4_3f, align 4
  %v6_aa = fpext double %v5_aa to x86_fp80
  %v7_aa = fmul x86_fp80 %v7_82, %v6_aa
  %v2_ad = fsub x86_fp80 0xK80000000000000000000, %v7_aa
  store x86_fp80 %v2_ad, x86_fp80* %st6.global-to-local, align 4
  %v2_b1 = load i32, i32* %edi.global-to-local, align 4
  %v3_b1 = inttoptr i32 %v2_b1 to double*
  %v4_b1 = load double, double* %v3_b1, align 4
  %v5_b1 = fpext double %v4_b1 to x86_fp80
  %v6_b1 = fmul x86_fp80 %v4_9c, %v5_b1
  %v4_b3 = fsub x86_fp80 %v6_b1, %v7_aa
  store x86_fp80 %v4_b3, x86_fp80* %st6.global-to-local, align 4
  %tmp246 = bitcast double %v3_9c to i64
  %tmp247 = trunc i64 %tmp246 to i32
  %v3_b6 = fptrunc x86_fp80 %v4_b3 to double
  %v4_b6 = inttoptr i32 %tmp247 to double*
  store double %v3_b6, double* %v4_b6, align 4
  %v1_b8 = load x86_fp80, x86_fp80* %st7.global-to-local, align 4
  %v3_b8 = add i32 %v2_b1, 32
  %v4_b8 = inttoptr i32 %v3_b8 to double*
  %v5_b8 = load double, double* %v4_b8, align 4
  %v6_b8 = fpext double %v5_b8 to x86_fp80
  %v7_b8 = fmul x86_fp80 %v1_b8, %v6_b8
  %v2_bb = fsub x86_fp80 0xK80000000000000000000, %v7_b8
  store x86_fp80 %v2_bb, x86_fp80* %st7.global-to-local, align 4
  %v5_bd = fpext double %v4_25 to x86_fp80
  store x86_fp80 %v5_bd, x86_fp80* %st6.global-to-local, align 4
  %v3_c0 = add i32 %v2_b1, 24
  %v4_c0 = inttoptr i32 %v3_c0 to double*
  %v5_c0 = load double, double* %v4_c0, align 4
  %v6_c0 = fpext double %v5_c0 to x86_fp80
  %v7_c0 = fmul x86_fp80 %v5_bd, %v6_c0
  store x86_fp80 %v7_c0, x86_fp80* %st6.global-to-local, align 4
  %v4_c3 = fsub x86_fp80 %v7_c0, %v7_b8
  %v2_c5 = load i32, i32* @ecx, align 8
  %v3_c5 = add i32 %v2_c5, 8
  %v4_c5 = fptrunc x86_fp80 %v4_c3 to double
  %v5_c5 = inttoptr i32 %v3_c5 to double*
  store double %v4_c5, double* %v5_c5, align 4
  store x86_fp80 %v4_a1, x86_fp80* %st7.global-to-local, align 4
  %v5_cd = load double, double* %v4_c0, align 4
  %v6_cd = fpext double %v5_cd to x86_fp80
  %v7_cd = fmul x86_fp80 %v4_a1, %v6_cd
  store x86_fp80 %v7_cd, x86_fp80* %st7.global-to-local, align 4
  store x86_fp80 %v5_bd, x86_fp80* %st6.global-to-local, align 4
  %v5_d3 = load double, double* %v4_b8, align 4
  %v6_d3 = fpext double %v5_d3 to x86_fp80
  %v7_d3 = fmul x86_fp80 %v5_bd, %v6_d3
  store x86_fp80 %v7_d3, x86_fp80* %st6.global-to-local, align 4
  %v4_d6 = fadd x86_fp80 %v7_cd, %v7_d3
  store x86_fp80 %v4_d6, x86_fp80* %st7.global-to-local, align 4
  %v3_d8 = add i32 %v2_b1, -16
  %v4_d8 = inttoptr i32 %v3_d8 to double*
  %v5_d8 = load double, double* %v4_d8, align 4
  %v6_d8 = fpext double %v5_d8 to x86_fp80
  %v7_d8 = fmul x86_fp80 %v4_d6, %v6_d8
  store x86_fp80 %v7_d8, x86_fp80* %st7.global-to-local, align 4
  %v3_db = add i32 %v2_b1, -24
  %v4_db = inttoptr i32 %v3_db to double*
  %v5_db = load double, double* %v4_db, align 4
  %v6_db = fpext double %v5_db to x86_fp80
  %v7_db = fsub x86_fp80 %v7_d8, %v6_db
  %v2_de = load i32, i32* %ebx.global-to-local, align 4
  %v3_de = fptrunc x86_fp80 %v7_db to double
  %v4_de = inttoptr i32 %v2_de to double*
  store double %v3_de, double* %v4_de, align 4
  %v5_de = add i3 %v0_16, add (i3 add (i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 ptrtoint (i8* @global_var_1.1 to i3))), i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 sub (i3 0, i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 add (i3 add (i3 add (i3 ptrtoint (i8* @global_var_1.1 to i3), i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 ptrtoint (i8* @global_var_1.1 to i3)), i3 ptrtoint (i8* @global_var_1.1 to i3)))))))
  %v3_e1 = load double, double* bitcast (i32* @edx to double*), align 8
  %v4_e1 = fpext double %v3_e1 to x86_fp80
  store x86_fp80 %v4_e1, x86_fp80* %st7.global-to-local, align 4
  %v5_e3 = load double, double* %v4_d8, align 4
  %v6_e3 = fpext double %v5_e3 to x86_fp80
  %v7_e3 = fmul x86_fp80 %v4_e1, %v6_e3
  %tmp248 = bitcast double %v3_e1 to i64
  %tmp249 = trunc i64 %tmp248 to i32
  %v3_e6 = fptrunc x86_fp80 %v7_e3 to double
  %v4_e6 = inttoptr i32 %tmp249 to double*
  store double %v3_e6, double* %v4_e6, align 4
  %v3_e9 = load double, double* bitcast (i32* @ecx to double*), align 8
  %v4_e9 = fpext double %v3_e9 to x86_fp80
  store x86_fp80 %v4_e9, x86_fp80* %st7.global-to-local, align 4
  %v5_eb = load double, double* %v4_d8, align 4
  %v6_eb = fpext double %v5_eb to x86_fp80
  %v7_eb = fmul x86_fp80 %v4_e9, %v6_eb
  store x86_fp80 %v7_eb, x86_fp80* %st7.global-to-local, align 4
  %tmp250 = bitcast double %v3_e9 to i64
  %tmp251 = trunc i64 %tmp250 to i32
  %v3_ee = fptrunc x86_fp80 %v7_eb to double
  %v4_ee = inttoptr i32 %tmp251 to double*
  store double %v3_ee, double* %v4_ee, align 4
  store i3 %v5_de, i3* %fpu_stat_TOP.global-to-local, align 1
  store i32 %v2_de, i32* @eax, align 8
  store i32 %v0_b, i32* %edi.global-to-local, align 4
  store i32 %v0_a, i32* %esi.global-to-local, align 4
  store i32 %v0_9, i32* %ebx.global-to-local, align 4
  ret i32 %v2_de
}

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

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

attributes #0 = { nounwind readnone speculatable }
