|
@@ -129,6 +129,9 @@ BuiltinProc__simd_begin,
|
|
BuiltinProc_simd_shl_masked, // C logic
|
|
BuiltinProc_simd_shl_masked, // C logic
|
|
BuiltinProc_simd_shr_masked, // C logic
|
|
BuiltinProc_simd_shr_masked, // C logic
|
|
|
|
|
|
|
|
+ BuiltinProc_simd_add_sat, // saturation arithmetic
|
|
|
|
+ BuiltinProc_simd_sub_sat, // saturation arithmetic
|
|
|
|
+
|
|
BuiltinProc_simd_and,
|
|
BuiltinProc_simd_and,
|
|
BuiltinProc_simd_or,
|
|
BuiltinProc_simd_or,
|
|
BuiltinProc_simd_xor,
|
|
BuiltinProc_simd_xor,
|
|
@@ -402,6 +405,10 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = {
|
|
{STR_LIT("simd_shr"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
{STR_LIT("simd_shr"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
{STR_LIT("simd_shl_masked"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
{STR_LIT("simd_shl_masked"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
{STR_LIT("simd_shr_masked"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
{STR_LIT("simd_shr_masked"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
|
|
+
|
|
|
|
+ {STR_LIT("simd_add_sat"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
|
|
+ {STR_LIT("simd_sub_sat"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
|
|
+
|
|
{STR_LIT("simd_and"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
{STR_LIT("simd_and"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
{STR_LIT("simd_or"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
{STR_LIT("simd_or"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
{STR_LIT("simd_xor"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
|
{STR_LIT("simd_xor"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|