Skip to content

Commit d43913a

Browse files
committed
[ARM][MVE] Enable narrow vectors for tail pred
Remove the restriction, from the mve tail predication pass, that the all masked vectors instructions need to be 128-bits. This allows us to supported extending loads and truncating stores. Differential Revision: https://reviews.llvm.org/D69946
1 parent 8b5f6c1 commit d43913a

File tree

4 files changed

+838
-267
lines changed

4 files changed

+838
-267
lines changed

llvm/lib/Target/ARM/MVETailPredication.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ bool MVETailPredication::IsPredicatedVectorLoop() {
299299
// MVE vectors are 128-bit, but don't support 128 x i1.
300300
// TODO: Can we support vectors larger than 128-bits?
301301
unsigned MaxWidth = TTI->getRegisterBitWidth(true);
302-
if (Lanes * ElementWidth != MaxWidth || Lanes == MaxWidth)
302+
if (Lanes * ElementWidth > MaxWidth || Lanes == MaxWidth)
303303
return false;
304304
MaskedInsts.push_back(cast<IntrinsicInst>(&I));
305305
} else if (auto *Int = dyn_cast<IntrinsicInst>(&I)) {

0 commit comments

Comments
 (0)