================ @@ -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 cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits