[LoongArch] Refine the condition to return Match_RequiresAMORdDifferRkRj in AsmParser...
authorWeining Lu <luweining@loongson.cn>
Wed, 11 Jan 2023 09:11:40 +0000 (17:11 +0800)
committerWeining Lu <luweining@loongson.cn>
Wed, 11 Jan 2023 09:16:21 +0000 (17:16 +0800)
This can suppress compilation warning like `enumerated mismatch in conditional expression`.

See:
https://lab.llvm.org/staging/#/builders/236/builds/645/steps/6/logs/warnings__1_

llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp

index b27070f..5517ce2 100644 (file)
@@ -1177,9 +1177,8 @@ unsigned LoongArchAsmParser::checkTargetMatchPredicate(MCInst &Inst) {
       unsigned Rd = Inst.getOperand(0).getReg();
       unsigned Rk = Inst.getOperand(1).getReg();
       unsigned Rj = Inst.getOperand(2).getReg();
-      if (Rd == Rk || Rd == Rj)
-        return Rd == LoongArch::R0 ? Match_Success
-                                   : Match_RequiresAMORdDifferRkRj;
+      if ((Rd == Rk || Rd == Rj) && Rd != LoongArch::R0)
+        return Match_RequiresAMORdDifferRkRj;
     }
     break;
   case LoongArch::PseudoLA_PCREL_LARGE: