@@ -4322,14 +4322,9 @@ static SDValue performBITCASTCombine(SDNode *N, SelectionDAG &DAG,
43224322 default :
43234323 return SDValue ();
43244324 case ISD::SETEQ:
4325- if (EltVT == MVT::i8 ) {
4326- // x == 0 => not (vmsknez.b x)
4327- if (ISD::isBuildVectorAllZeros (SrcN1.getNode ()))
4328- ISD = UseLASX ? LoongArchISD::XVMSKEQZ : LoongArchISD::VMSKEQZ;
4329- // x == -1 => vmsknez.b x
4330- else if (ISD::isBuildVectorAllOnes (SrcN1.getNode ()))
4331- ISD = UseLASX ? LoongArchISD::XVMSKNEZ : LoongArchISD::VMSKNEZ;
4332- }
4325+ // x == 0 => not (vmsknez.b x)
4326+ if (ISD::isBuildVectorAllZeros (SrcN1.getNode ()) && EltVT == MVT::i8 )
4327+ ISD = UseLASX ? LoongArchISD::XVMSKEQZ : LoongArchISD::VMSKEQZ;
43334328 break ;
43344329 case ISD::SETGT:
43354330 // x > -1 => vmskgez.b x
@@ -4356,14 +4351,9 @@ static SDValue performBITCASTCombine(SDNode *N, SelectionDAG &DAG,
43564351 ISD = UseLASX ? LoongArchISD::XVMSKLTZ : LoongArchISD::VMSKLTZ;
43574352 break ;
43584353 case ISD::SETNE:
4359- if (EltVT == MVT::i8 ) {
4360- // x != 0 => vmsknez.b x
4361- if (ISD::isBuildVectorAllZeros (SrcN1.getNode ()))
4362- ISD = UseLASX ? LoongArchISD::XVMSKNEZ : LoongArchISD::VMSKNEZ;
4363- // x != -1 => not (vmsknez.b x)
4364- else if (ISD::isBuildVectorAllOnes (SrcN1.getNode ()))
4365- ISD = UseLASX ? LoongArchISD::XVMSKEQZ : LoongArchISD::VMSKEQZ;
4366- }
4354+ // x != 0 => vmsknez.b x
4355+ if (ISD::isBuildVectorAllZeros (SrcN1.getNode ()) && EltVT == MVT::i8 )
4356+ ISD = UseLASX ? LoongArchISD::XVMSKNEZ : LoongArchISD::VMSKNEZ;
43674357 break ;
43684358 }
43694359
0 commit comments