@@ -1847,8 +1847,8 @@ void AArch64TargetLowering::addTypeForNEON(MVT VT) {
1847
1847
1848
1848
bool AArch64TargetLowering::shouldExpandGetActiveLaneMask(EVT ResVT,
1849
1849
EVT OpVT) const {
1850
- // Only SVE/SME has a 1:1 mapping from intrinsic -> instruction (whilelo).
1851
- if (!Subtarget->hasSVEorSME ())
1850
+ // Only SVE has a 1:1 mapping from intrinsic -> instruction (whilelo).
1851
+ if (!Subtarget->hasSVE ())
1852
1852
return true;
1853
1853
1854
1854
// We can only support legal predicate result types. We can use the SVE
@@ -20487,7 +20487,7 @@ static SDValue tryCombineWhileLo(SDNode *N,
20487
20487
if (DCI.isBeforeLegalize())
20488
20488
return SDValue();
20489
20489
20490
- if (!Subtarget->hasSVE2p1() && !Subtarget->hasSME2() )
20490
+ if (!Subtarget->hasSVE2p1())
20491
20491
return SDValue();
20492
20492
20493
20493
if (!N->hasNUsesOfValue(2, 0))
@@ -20501,13 +20501,13 @@ static SDValue tryCombineWhileLo(SDNode *N,
20501
20501
SDNode *Lo = *It++;
20502
20502
SDNode *Hi = *It;
20503
20503
20504
- uint64_t OffLo, OffHi;
20505
20504
if (Lo->getOpcode() != ISD::EXTRACT_SUBVECTOR ||
20506
- !isIntImmediate(Lo->getOperand(1).getNode(), OffLo) ||
20507
- Hi->getOpcode() != ISD::EXTRACT_SUBVECTOR ||
20508
- !isIntImmediate(Hi->getOperand(1).getNode(), OffHi))
20505
+ Hi->getOpcode() != ISD::EXTRACT_SUBVECTOR)
20509
20506
return SDValue();
20510
20507
20508
+ uint64_t OffLo = Lo->getConstantOperandVal(1);
20509
+ uint64_t OffHi = Hi->getConstantOperandVal(1);
20510
+
20511
20511
if (OffLo > OffHi) {
20512
20512
std::swap(Lo, Hi);
20513
20513
std::swap(OffLo, OffHi);
0 commit comments