[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