[clang] [clang] Implement constexpr support for __builtin_{clzg, ctzg} (PR #86577)

via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 25 16:18:37 PDT 2024


================
@@ -12367,8 +12368,17 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const CallExpr *E,
                            BuiltinOp != Builtin::BI__lzcnt &&
                            BuiltinOp != Builtin::BI__lzcnt64;
 
-    if (ZeroIsUndefined && !Val)
-      return Error(E);
+    if (!Val) {
----------------
overmighty wrote:

Oh yeah I messed up my last reply after rewording part of it. The builtins only make use of the second argument if the first argument is zero, and they just return it directly and not its leading/trailing zero count.

https://github.com/llvm/llvm-project/pull/86577


More information about the cfe-commits mailing list