aboutsummaryrefslogtreecommitdiff
path: root/src/check_builtin.cpp
diff options
context:
space:
mode:
authorBarinzaya <barinzaya@gmail.com>2025-05-05 15:13:10 -0400
committerBarinzaya <barinzaya@gmail.com>2025-05-05 16:38:45 -0400
commitdd5b7852ce569027e87d77f46601210aa4180947 (patch)
treec9ba26ed3bc8666c8dbebec1faeba3e7839b5c08 /src/check_builtin.cpp
parent981437065968214430a2f958705affa9a15a09ae (diff)
Added alternate reduce-add/reduce-mul intrinsics.
The new reduce_add/reduce_mul procs perform the corresponding arithmetic reduction in different orders than sequential order. These alternative orders can often offer better SIMD hardware utilization. Two different orders are added: pair-wise (operating on pairs of adjacent elements) or bisection-wise (operating element-wise on the first and last N/2 elements of the vector).
Diffstat (limited to 'src/check_builtin.cpp')
-rw-r--r--src/check_builtin.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/check_builtin.cpp b/src/check_builtin.cpp
index a315d1880..84e30d5b4 100644
--- a/src/check_builtin.cpp
+++ b/src/check_builtin.cpp
@@ -853,8 +853,12 @@ gb_internal bool check_builtin_simd_operation(CheckerContext *c, Operand *operan
}
break;
+ case BuiltinProc_simd_reduce_add_bisect:
+ case BuiltinProc_simd_reduce_mul_bisect:
case BuiltinProc_simd_reduce_add_ordered:
case BuiltinProc_simd_reduce_mul_ordered:
+ case BuiltinProc_simd_reduce_add_pairs:
+ case BuiltinProc_simd_reduce_mul_pairs:
case BuiltinProc_simd_reduce_min:
case BuiltinProc_simd_reduce_max:
{