[PATCH] D80615: [CodeGen] Fix warnings in getPackedVectorTypeFromPredicateType

David Sherwood via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 27 02:39:58 PDT 2020


david-arm created this revision.
david-arm added reviewers: sdesmalen, fpetrogalli.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.

Use getVectorElementCount() instead of getVectorNumElements()


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D80615

Files:
  llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
  llvm/test/CodeGen/AArch64/sve-intrinsics-prfw.ll


Index: llvm/test/CodeGen/AArch64/sve-intrinsics-prfw.ll
===================================================================
--- /dev/null
+++ llvm/test/CodeGen/AArch64/sve-intrinsics-prfw.ll
@@ -0,0 +1,46 @@
+; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve < %s | FileCheck %s
+
+define void @prf_nxv2i1(<vscale x 2 x i1> %pg, i8* %base) {
+; CHECK-LABEL: prf_nxv2i1:
+; CHECK:       prfd pldl1keep, p0, [x0]
+entry:
+  call void @llvm.aarch64.sve.prf.nxv2i1(<vscale x 2 x i1> %pg, i8* %base, i32 0)
+  ret void
+}
+
+define void @prf_nxv4i1(<vscale x 4 x i1> %pg, i8* %base) {
+; CHECK-LABEL: prf_nxv4i1:
+; CHECK:       prfw pldl1keep, p0, [x0]
+entry:
+  call void @llvm.aarch64.sve.prf.nxv4i1(<vscale x 4 x i1> %pg, i8* %base, i32 0)
+  ret void
+}
+
+define void @prf_nxv8i1(<vscale x 8 x i1> %pg, i8* %base) {
+; CHECK-LABEL: prf_nxv8i1:
+; CHECK:       prfh pldl1keep, p0, [x0]
+entry:
+  call void @llvm.aarch64.sve.prf.nxv8i1(<vscale x 8 x i1> %pg, i8* %base, i32 0)
+  ret void
+}
+
+define void @prf_nxv16i1(<vscale x 16 x i1> %pg, i8* %base) {
+; CHECK-LABEL: prf_nxv16i1:
+; CHECK:       prfb pldl1keep, p0, [x0]
+entry:
+  call void @llvm.aarch64.sve.prf.nxv16i1(<vscale x 16 x i1> %pg, i8* %base, i32 0)
+  ret void
+}
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.aarch64.sve.prf.nxv2i1(<vscale x 2 x i1>, i8*, i32 immarg)
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.aarch64.sve.prf.nxv4i1(<vscale x 4 x i1>, i8*, i32 immarg)
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.aarch64.sve.prf.nxv8i1(<vscale x 8 x i1>, i8*, i32 immarg)
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.aarch64.sve.prf.nxv16i1(<vscale x 16 x i1>, i8*, i32 immarg)
+
Index: llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
===================================================================
--- llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
+++ llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
@@ -4623,13 +4623,13 @@
   if (!PredVT.isScalableVector() || PredVT.getVectorElementType() != MVT::i1)
     return EVT();
 
-  const unsigned NumElts = PredVT.getVectorNumElements();
+  ElementCount EC = PredVT.getVectorElementCount();
 
-  if (NumElts != 2 && NumElts != 4 && NumElts != 8 && NumElts != 16)
+  if (EC.Min != 2 && EC.Min != 4 && EC.Min != 8 && EC.Min != 16)
     return EVT();
 
-  EVT ScalarVT = EVT::getIntegerVT(Ctx, AArch64::SVEBitsPerBlock / NumElts);
-  EVT MemVT = EVT::getVectorVT(Ctx, ScalarVT, NumElts, /*IsScalable=*/true);
+  EVT ScalarVT = EVT::getIntegerVT(Ctx, AArch64::SVEBitsPerBlock / EC.Min);
+  EVT MemVT = EVT::getVectorVT(Ctx, ScalarVT, EC);
   return MemVT;
 }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D80615.266459.patch
Type: text/x-patch
Size: 2649 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200527/e1df8ce4/attachment.bin>


More information about the llvm-commits mailing list