================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to