================
@@ -6049,6 +6096,50 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, 
const CallExpr *Call,
           return EvalScalarMinMaxFp(A, B, RoundingMode, /*IsMin=*/false);
         },
         /*IsScalar=*/true);
+  case X86::BI__builtin_ia32_vpdpwssd128:
+  case X86::BI__builtin_ia32_vpdpwssd256:
+  case X86::BI__builtin_ia32_vpdpwssd512:
+  case X86::BI__builtin_ia32_vpdpwssds128:
+  case X86::BI__builtin_ia32_vpdpwssds256:
+  case X86::BI__builtin_ia32_vpdpwssds512:
+  case X86::BI__builtin_ia32_vpdpbusds128:
+  case X86::BI__builtin_ia32_vpdpbusds256:
+  case X86::BI__builtin_ia32_vpdpbusds512:
+  case X86::BI__builtin_ia32_vpdpbusd128:
+  case X86::BI__builtin_ia32_vpdpbusd256:
+  case X86::BI__builtin_ia32_vpdpbusd512: {
+    unsigned BuiltinID = Call->getBuiltinCallee();
+    bool IsDottingWord;
+    bool IsSaturating;
+    switch (BuiltinID) {
+    case X86::BI__builtin_ia32_vpdpwssd128:
+    case X86::BI__builtin_ia32_vpdpwssd256:
+    case X86::BI__builtin_ia32_vpdpwssd512:
+      IsDottingWord = true;
+      IsSaturating = false;
+      break;
+    case X86::BI__builtin_ia32_vpdpwssds128:
+    case X86::BI__builtin_ia32_vpdpwssds256:
+    case X86::BI__builtin_ia32_vpdpwssds512:
+      IsDottingWord = true;
+      IsSaturating = true;
+      break;
+    case X86::BI__builtin_ia32_vpdpbusds128:
+    case X86::BI__builtin_ia32_vpdpbusds256:
+    case X86::BI__builtin_ia32_vpdpbusds512:
+      IsDottingWord = false;
+      IsSaturating = true;
+      break;
+    case X86::BI__builtin_ia32_vpdpbusd128:
+    case X86::BI__builtin_ia32_vpdpbusd256:
+    case X86::BI__builtin_ia32_vpdpbusd512:
+      IsDottingWord = false;
+      IsSaturating = false;
+      break;
+    }
----------------
tbaederr wrote:

I'd rather have individual calls to `interp__builtin_ia32_vpdp` instead of a 
nested switch statement.

https://github.com/llvm/llvm-project/pull/190549
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to