@@ -1834,8 +1834,8 @@ void AArch64TargetLowering::addTypeForNEON(MVT VT) {
1834
1834
1835
1835
bool AArch64TargetLowering::shouldExpandGetActiveLaneMask(EVT ResVT,
1836
1836
EVT OpVT) const {
1837
- // Only SVE/SME has a 1:1 mapping from intrinsic -> instruction (whilelo).
1838
- if (!Subtarget->hasSVEorSME ())
1837
+ // Only SVE has a 1:1 mapping from intrinsic -> instruction (whilelo).
1838
+ if (!Subtarget->hasSVE ())
1839
1839
return true;
1840
1840
1841
1841
// We can only support legal predicate result types. We can use the SVE
@@ -20541,7 +20541,7 @@ static SDValue tryCombineWhileLo(SDNode *N,
20541
20541
if (DCI.isBeforeLegalize())
20542
20542
return SDValue();
20543
20543
20544
- if (!Subtarget->hasSVE2p1() && !Subtarget->hasSME2() )
20544
+ if (!Subtarget->hasSVE2p1())
20545
20545
return SDValue();
20546
20546
20547
20547
if (!N->hasNUsesOfValue(2, 0))
@@ -20555,13 +20555,13 @@ static SDValue tryCombineWhileLo(SDNode *N,
20555
20555
SDNode *Lo = *It++;
20556
20556
SDNode *Hi = *It;
20557
20557
20558
- uint64_t OffLo, OffHi;
20559
20558
if (Lo->getOpcode() != ISD::EXTRACT_SUBVECTOR ||
20560
- !isIntImmediate(Lo->getOperand(1).getNode(), OffLo) ||
20561
- Hi->getOpcode() != ISD::EXTRACT_SUBVECTOR ||
20562
- !isIntImmediate(Hi->getOperand(1).getNode(), OffHi))
20559
+ Hi->getOpcode() != ISD::EXTRACT_SUBVECTOR)
20563
20560
return SDValue();
20564
20561
20562
+ uint64_t OffLo = Lo->getConstantOperandVal(1);
20563
+ uint64_t OffHi = Hi->getConstantOperandVal(1);
20564
+
20565
20565
if (OffLo > OffHi) {
20566
20566
std::swap(Lo, Hi);
20567
20567
std::swap(OffLo, OffHi);
0 commit comments