[llvm] e602cd8 - [CodeGen] Fix warnings in getPackedVectorTypeFromPredicateType

David Sherwood via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 2 23:24:27 PDT 2020


Author: David Sherwood
Date: 2020-06-03T07:01:20+01:00
New Revision: e602cd878e308133cbbfdb73df686de2aa890bc1

URL: https://github.com/llvm/llvm-project/commit/e602cd878e308133cbbfdb73df686de2aa890bc1
DIFF: https://github.com/llvm/llvm-project/commit/e602cd878e308133cbbfdb73df686de2aa890bc1.diff

LOG: [CodeGen] Fix warnings in getPackedVectorTypeFromPredicateType

Use getVectorElementCount() instead of getVectorNumElements().
The code changed in this patch is covered by an existing test:

  CodeGen/AArch64/sve-intrinsics-contiguous-prefetches.ll

Differential Revision: https://reviews.llvm.org/D80615

Added: 
    

Modified: 
    llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp b/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
index f2c1727fd067..ed297d338855 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
@@ -4625,13 +4625,13 @@ static EVT getPackedVectorTypeFromPredicateType(LLVMContext &Ctx, EVT PredVT) {
   if (!PredVT.isScalableVector() || PredVT.getVectorElementType() != MVT::i1)
     return EVT();
 
-  const unsigned NumElts = PredVT.getVectorNumElements();
-
-  if (NumElts != 2 && NumElts != 4 && NumElts != 8 && NumElts != 16)
+  if (PredVT != MVT::nxv16i1 && PredVT != MVT::nxv8i1 &&
+      PredVT != MVT::nxv4i1 && PredVT != MVT::nxv2i1)
     return EVT();
 
-  EVT ScalarVT = EVT::getIntegerVT(Ctx, AArch64::SVEBitsPerBlock / NumElts);
-  EVT MemVT = EVT::getVectorVT(Ctx, ScalarVT, NumElts, /*IsScalable=*/true);
+  ElementCount EC = PredVT.getVectorElementCount();
+  EVT ScalarVT = EVT::getIntegerVT(Ctx, AArch64::SVEBitsPerBlock / EC.Min);
+  EVT MemVT = EVT::getVectorVT(Ctx, ScalarVT, EC);
   return MemVT;
 }
 


        


More information about the llvm-commits mailing list