[clang] [Clang] Add constexpr support for AVX512 permutex2 intrinsics (PR #165085)
Simon Pilgrim via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 31 09:28:21 PDT 2025
================
@@ -13080,6 +13097,84 @@ bool VectorExprEvaluator::VisitCallExpr(const CallExpr *E) {
return Success(APValue(ResultElements.data(), ResultElements.size()), E);
}
+ case X86::BI__builtin_ia32_vpermi2varq128:
+ case X86::BI__builtin_ia32_vpermi2varpd128: {
+ APValue R;
+ if (!evalShuffleGeneric(
+ Info, E, R, [](unsigned DstIdx, unsigned ShuffleMask) {
+ int Offset = ShuffleMask & 0x1;
+ unsigned SrcIdx = (ShuffleMask >> 1) & 0x1 ? 1 : 0;
----------------
RKSimon wrote:
Maybe just do this in all cases? The ternary operator seems superfluous
```suggestion
unsigned SrcIdx = (ShuffleMask >> 1) & 0x1;
```
https://github.com/llvm/llvm-project/pull/165085
More information about the cfe-commits
mailing list