aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib
diff options
context:
space:
mode:
authorAnna Welker <anna.welker@arm.com>2020-08-13 12:22:43 +0100
committerAnna Welker <anna.welker@arm.com>2020-08-13 12:24:19 +0100
commit9eb9ba076a7da7fc640208cfa7ce897b827c5e4b (patch)
tree1ab4e6aa2b833ad817ce3dcd02a1ed16dedc356b /llvm/lib
parent8a41a1f5673eacecba62e7a61a263dcf8d4b39be (diff)
downloadllvm-9eb9ba076a7da7fc640208cfa7ce897b827c5e4b.zip
llvm-9eb9ba076a7da7fc640208cfa7ce897b827c5e4b.tar.gz
llvm-9eb9ba076a7da7fc640208cfa7ce897b827c5e4b.tar.bz2
[ARM][MVE] Fix for tail predication for loops containing MVE gather/scatters
Fix to include non-predicated version of write-back gather in special case treatment for deducting the instruction type. (This is fixing https://reviews.llvm.org/D85138 for corner cases) Differential Revision: https://reviews.llvm.org/D85889
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/ARM/MVETailPredication.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/MVETailPredication.cpp b/llvm/lib/Target/ARM/MVETailPredication.cpp
index b90ec97..40f5d5e 100644
--- a/llvm/lib/Target/ARM/MVETailPredication.cpp
+++ b/llvm/lib/Target/ARM/MVETailPredication.cpp
@@ -236,7 +236,8 @@ static FixedVectorType *getVectorType(IntrinsicInst *I) {
unsigned ID = I->getIntrinsicID();
FixedVectorType *VecTy;
if (ID == Intrinsic::masked_load || isGather(I)) {
- if (ID == Intrinsic::arm_mve_vldr_gather_base_wb_predicated)
+ if (ID == Intrinsic::arm_mve_vldr_gather_base_wb ||
+ ID == Intrinsic::arm_mve_vldr_gather_base_wb_predicated)
// then the type is a StructType
VecTy = dyn_cast<FixedVectorType>(I->getType()->getContainedType(0));
else