[PATCH] D75771: [mlir] NFC - Add predicates and types for VectorOfRank
Nicolas Vasilache via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 6 14:55:17 PST 2020
nicolasvasilache created this revision.
nicolasvasilache added reviewers: rriddle, aartbik.
Herald added subscribers: llvm-commits, Joonsoo, liufengdb, lucyrfox, mgester, arpith-jacob, antiagainst, shauheen, burmako, jpienaar, mehdi_amini.
Herald added 1 blocking reviewer(s): rriddle.
Herald added a reviewer: antiagainst.
Herald added a project: LLVM.
This is the counterpart of VectorOfLength for ranks.
This will be used in lowering vector.contract operations to llvm.matrix
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D75771
Files:
mlir/include/mlir/IR/OpBase.td
Index: mlir/include/mlir/IR/OpBase.td
===================================================================
--- mlir/include/mlir/IR/OpBase.td
+++ mlir/include/mlir/IR/OpBase.td
@@ -485,6 +485,29 @@
class VectorOf<list<Type> allowedTypes> :
ShapedContainerType<allowedTypes, IsVectorTypePred, "vector">;
+// Whether the number of elements of a vector is from the given
+// `allowedRanks` list
+class IsVectorOfRankPred<list<int> allowedRanks> :
+ And<[IsVectorTypePred,
+ Or<!foreach(allowedlength, allowedRanks,
+ CPred<[{$_self.cast<VectorType>().getRank()
+ == }]
+ # allowedlength>)>]>;
+
+// Any vector where the rank is from the given `allowedRanks` list
+class VectorOfRank<list<int> allowedRanks> : Type<
+ IsVectorOfRankPred<allowedRanks>,
+ " of ranks " # StrJoinInt<allowedRanks, "/">.result>;
+
+// Any vector where the rank is from the given `allowedRanks` list and the type
+// is from the given `allowedTypes` list
+class VectorOfRankAndType<list<int> allowedRanks,
+ list<Type> allowedTypes> : Type<
+ And<[VectorOf<allowedTypes>.predicate,
+ VectorOfRank<allowedRanks>.predicate]>,
+ VectorOf<allowedTypes>.description #
+ VectorOfRank<allowedRanks>.description>;
+
// Whether the number of elements of a vector is from the given
// `allowedLengths` list
class IsVectorOfLengthPred<list<int> allowedLengths> :
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75771.248831.patch
Type: text/x-patch
Size: 1445 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200306/50e2d5ca/attachment.bin>
More information about the llvm-commits
mailing list