================
@@ -847,6 +848,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
result is undefined.
----------------
frasercrmck wrote:
I originally had "the behaviour is undefined" as that's what `__builtin_clzg`
has, but it was pointed out in another discussion above that we're only
returning a `poison` value in this situation and this is narrower in scope than
"undefined behaviour". I therefore changed it to "the result is undefined" as
the GCC docs say that for `__builtin_clz`.
Is `poison` an "indeterminate" value? I can definitely see "erroneous value" in
that `poison` is specified by LLVM as being the result of an erroneous
operation.
I'm happy to change it to whatever.
https://github.com/llvm/llvm-project/pull/131995
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits