@@ -326,6 +326,7 @@ static bool hasAllNBitUsers(const MachineInstr &OrigMI,
326326        break ;
327327
328328      case  RISCV::PseudoCCMOVGPR:
329+       case  RISCV::PseudoCCMOVGPRNoX0:
329330        //  Either operand 4 or operand 5 is returned by this instruction. If
330331        //  only the lower word of the result is used, then only the lower word
331332        //  of operand 4 and 5 is used.
@@ -538,6 +539,7 @@ static bool isSignExtendedW(Register SrcReg, const RISCVSubtarget &ST,
538539    case  RISCV::MIN:
539540    case  RISCV::MINU:
540541    case  RISCV::PseudoCCMOVGPR:
542+     case  RISCV::PseudoCCMOVGPRNoX0:
541543    case  RISCV::PseudoCCAND:
542544    case  RISCV::PseudoCCOR:
543545    case  RISCV::PseudoCCXOR:
@@ -546,7 +548,7 @@ static bool isSignExtendedW(Register SrcReg, const RISCVSubtarget &ST,
546548      //  MIN, MAX, or PHI is also sign-extended.
547549
548550      //  The input registers for PHI are operand 1, 3, ...
549-       //  The input registers for PseudoCCMOVGPR are 4 and 5.
551+       //  The input registers for PseudoCCMOVGPR(NoX0)  are 4 and 5.
550552      //  The input registers for PseudoCCAND/OR/XOR are 4, 5, and 6.
551553      //  The input registers for others are operand 1 and 2.
552554      unsigned  B = 1 , E = 3 , D = 1 ;
@@ -556,6 +558,7 @@ static bool isSignExtendedW(Register SrcReg, const RISCVSubtarget &ST,
556558        D = 2 ;
557559        break ;
558560      case  RISCV::PseudoCCMOVGPR:
561+       case  RISCV::PseudoCCMOVGPRNoX0:
559562        B = 4 ;
560563        E = 6 ;
561564        break ;
0 commit comments