@@ -4322,14 +4322,9 @@ static SDValue performBITCASTCombine(SDNode *N, SelectionDAG &DAG,
4322
4322
default :
4323
4323
return SDValue ();
4324
4324
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;
4333
4328
break ;
4334
4329
case ISD::SETGT:
4335
4330
// x > -1 => vmskgez.b x
@@ -4356,14 +4351,9 @@ static SDValue performBITCASTCombine(SDNode *N, SelectionDAG &DAG,
4356
4351
ISD = UseLASX ? LoongArchISD::XVMSKLTZ : LoongArchISD::VMSKLTZ;
4357
4352
break ;
4358
4353
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;
4367
4357
break ;
4368
4358
}
4369
4359
0 commit comments