From 9eb9ba076a7da7fc640208cfa7ce897b827c5e4b Mon Sep 17 00:00:00 2001 From: Anna Welker Date: Thu, 13 Aug 2020 12:22:43 +0100 Subject: [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 --- llvm/lib/Target/ARM/MVETailPredication.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'llvm/lib') 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(I->getType()->getContainedType(0)); else -- cgit v1.1