[clang] [clang] Introduce elementwise clz/ctz builtins (PR #131995)
Matt Arsenault via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 10 02:15:41 PDT 2025
================
@@ -831,6 +832,14 @@ of different sizes and signs is forbidden in binary and ternary builtins.
semantics, see `LangRef
<http://llvm.org/docs/LangRef.html#llvm-min-intrinsics-comparation>`_
for the comparison.
+ T __builtin_elementwise_clz(T x[, T y]) return the number of leading 0 bits in the first argument. If integer types
+ the first argument is 0 and an optional second argument is provided,
+ the second argument is returned. If the first argument is 0 but only
+ one argument is provided, the behaviour is undefined.
+ T __builtin_elementwise_ctz(T x[, T y]) return the number of trailing 0 bits in the first argument. If integer types
+ the first argument is 0 and an optional second argument is provided,
+ the second argument is returned. If the first argument is 0 but only
+ one argument is provided, the behaviour is undefined.
----------------
arsenm wrote:
Wondering if we should use the names of the llvm intrinsics. If the arguments and behavior are different from the legacy gcc builtins, we don't need to copy the name
https://github.com/llvm/llvm-project/pull/131995
More information about the cfe-commits
mailing list