[llvm] [GlobalISel][TableGen] Take first result for multi-output instructions (PR #81130)
Björn Pettersson via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 8 06:28:01 PST 2024
================
@@ -288,11 +288,21 @@ static std::string getMangledRootDefName(StringRef DefOperandName) {
//===- GlobalISelEmitter class --------------------------------------------===//
-static Expected<LLTCodeGen> getInstResultType(const TreePatternNode *Dst) {
+static Expected<LLTCodeGen> getInstResultType(const TreePatternNode *Dst,
+ const CodeGenTarget &Target) {
+ // While allowing more than one output (both implicit and explicit defs)
+ // below, we only expect one explicit def here.
+ assert(Dst->getOperator()->isSubClassOf("Instruction"));
+ CodeGenInstruction &InstInfo = Target.getInstruction(Dst->getOperator());
+ if (InstInfo.Operands.NumDefs != 1)
+ return failedImport("Dst pattern child is not having single result");
----------------
bjope wrote:
Well, it could be zero as well when failing here. So it is "not one", which isn't same thing as "more than one".
https://github.com/llvm/llvm-project/pull/81130
More information about the llvm-commits
mailing list