@@ -1631,9 +1631,8 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) {
16311631 if (!IsUnsigned || CVal != 0 )
16321632 break ;
16331633 IsCmpMinimum = true ;
1634- } else if (!IsUnsigned &&
1635- CVal == APSInt::getMinValue (Src1VT.getScalarSizeInBits (),
1636- /* Unsigned=*/ false )) {
1634+ } else if (!IsUnsigned && CVal == APInt::getSignedMinValue (
1635+ Src1VT.getScalarSizeInBits ())) {
16371636 IsCmpMinimum = true ;
16381637 }
16391638 }
@@ -1664,7 +1663,7 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) {
16641663 SDValue VL;
16651664 selectVLOp (Node->getOperand (3 ), VL);
16661665
1667- // If vmsgeu with 0 immediate , expand it to vmset.
1666+ // If vmsge(u) with minimum value , expand it to vmset.
16681667 if (IsCmpMinimum) {
16691668 ReplaceNode (Node, CurDAG->getMachineNode (VMSetOpcode, DL, VT, VL, SEW));
16701669 return ;
@@ -1708,9 +1707,8 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) {
17081707 if (!IsUnsigned || CVal != 0 )
17091708 break ;
17101709 IsCmpMinimum = true ;
1711- } else if (!IsUnsigned &&
1712- CVal == APSInt::getMinValue (Src1VT.getScalarSizeInBits (),
1713- /* Unsigned=*/ false )) {
1710+ } else if (!IsUnsigned && CVal == APInt::getSignedMinValue (
1711+ Src1VT.getScalarSizeInBits ())) {
17141712 IsCmpMinimum = true ;
17151713 }
17161714 }
@@ -1764,7 +1762,7 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) {
17641762 SDValue MaskedOff = Node->getOperand (1 );
17651763 SDValue Mask = Node->getOperand (4 );
17661764
1767- // If vmsgeu_mask with 0 immediate , expand it to vmor mask, maskedoff.
1765+ // If vmsge(u) with minimum value , expand it to vmor mask, maskedoff.
17681766 if (IsCmpMinimum) {
17691767 // We don't need vmor if the MaskedOff and the Mask are the same
17701768 // value.
0 commit comments