[clang] [Headers][X86] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow PALIGNR byte shift intrinsics to be used in constexpr (PR #162005)

Ye Tian via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 4 01:11:53 PST 2025


================
@@ -4636,6 +4674,26 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, const CallExpr *Call,
           return APInt(8, 0);
         });
 
+  case X86::BI__builtin_ia32_palignr128:
+  case X86::BI__builtin_ia32_palignr256:
+  case X86::BI__builtin_ia32_palignr512:
+    return interp__builtin_x86_palignr(
----------------
TianYe717 wrote:

Thanks. The callback used in `interp__builtin_ia32_shuffle_generic` only accepts two parameters,
but in this case we need a callback that takes three parameters.
Maybe `interp__builtin_x86_palignr` should be renamed to `interp__builtin_ia32_shuffle_generic3`, adding the number 3 to the end of the name.

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


More information about the cfe-commits mailing list