================
@@ -6049,6 +6097,36 @@ 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();
+ switch (BuiltinID) {
+ case X86::BI__builtin_ia32_vpdpwssd128:
+ case X86::BI__builtin_ia32_vpdpwssd256:
+ case X86::BI__builtin_ia32_vpdpwssd512:
+ case X86::BI__builtin_ia32_vpdpbusd128:
+ case X86::BI__builtin_ia32_vpdpbusd256:
+ case X86::BI__builtin_ia32_vpdpbusd512:
+ return interp__builtin_ia32_vpdp(S, OpPC, Call, false);
+ 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:
+ return interp__builtin_ia32_vpdp(S, OpPC, Call, true);
----------------
tbaederr wrote:
still a nested switch 🤔
https://github.com/llvm/llvm-project/pull/190549
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits