@@ -1830,8 +1830,8 @@ void AArch64TargetLowering::addTypeForNEON(MVT VT) {
1830
1830
1831
1831
bool AArch64TargetLowering::shouldExpandGetActiveLaneMask(EVT ResVT,
1832
1832
EVT OpVT) const {
1833
- // Only SVE/SME has a 1:1 mapping from intrinsic -> instruction (whilelo).
1834
- if (!Subtarget->hasSVEorSME ())
1833
+ // Only SVE has a 1:1 mapping from intrinsic -> instruction (whilelo).
1834
+ if (!Subtarget->hasSVE ())
1835
1835
return true;
1836
1836
1837
1837
// We can only support legal predicate result types. We can use the SVE
@@ -20528,7 +20528,7 @@ static SDValue tryCombineWhileLo(SDNode *N,
20528
20528
if (DCI.isBeforeLegalize())
20529
20529
return SDValue();
20530
20530
20531
- if (!Subtarget->hasSVE2p1() && !Subtarget->hasSME2() )
20531
+ if (!Subtarget->hasSVE2p1())
20532
20532
return SDValue();
20533
20533
20534
20534
if (!N->hasNUsesOfValue(2, 0))
@@ -20542,13 +20542,13 @@ static SDValue tryCombineWhileLo(SDNode *N,
20542
20542
SDNode *Lo = *It++;
20543
20543
SDNode *Hi = *It;
20544
20544
20545
- uint64_t OffLo, OffHi;
20546
20545
if (Lo->getOpcode() != ISD::EXTRACT_SUBVECTOR ||
20547
- !isIntImmediate(Lo->getOperand(1).getNode(), OffLo) ||
20548
- Hi->getOpcode() != ISD::EXTRACT_SUBVECTOR ||
20549
- !isIntImmediate(Hi->getOperand(1).getNode(), OffHi))
20546
+ Hi->getOpcode() != ISD::EXTRACT_SUBVECTOR)
20550
20547
return SDValue();
20551
20548
20549
+ uint64_t OffLo = Lo->getConstantOperandVal(1);
20550
+ uint64_t OffHi = Hi->getConstantOperandVal(1);
20551
+
20552
20552
if (OffLo > OffHi) {
20553
20553
std::swap(Lo, Hi);
20554
20554
std::swap(OffLo, OffHi);
0 commit comments