[clang] [clang][X86] Allow VALIGND/Q element-shift intrinsics in constexpr evaluation (PR #168206)

Simon Pilgrim via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 19 02:28:55 PST 2025


================
@@ -13551,6 +13551,28 @@ bool VectorExprEvaluator::VisitCallExpr(const CallExpr *E) {
       return false;
     return Success(R, E);
   }
+  case X86::BI__builtin_ia32_alignd128:
+  case X86::BI__builtin_ia32_alignd256:
+  case X86::BI__builtin_ia32_alignd512:
+  case X86::BI__builtin_ia32_alignq128:
+  case X86::BI__builtin_ia32_alignq256:
+  case X86::BI__builtin_ia32_alignq512: {
+    APValue R;
+    const unsigned NumElems = E->getType()->castAs<VectorType>()->getNumElements();
----------------
RKSimon wrote:

```suggestion
    unsigned NumElems = E->getType()->castAs<VectorType>()->getNumElements();
```

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


More information about the cfe-commits mailing list