[Mlir-commits] [mlir] [mlir][VectorOps] Add `vector.interleave` operation (PR #80315)
Diego Caballero
llvmlistbot at llvm.org
Thu Feb 1 10:57:15 PST 2024
================
@@ -6308,6 +6308,48 @@ bool WarpExecuteOnLane0Op::areTypesCompatible(Type lhs, Type rhs) {
verifyDistributedType(lhs, rhs, getWarpSize(), getOperation()));
}
+//===----------------------------------------------------------------------===//
+// InterleaveOp
+//===----------------------------------------------------------------------===//
+
+// The rank 1 case of vector.interleave on fixed-size vectors is equivalent to a
+// vector.shuffle, which (as an older op) is more likely to be matched by
+// existing pipelines.
+struct FoldRank1FixedSizeInterleaveOp : public OpRewritePattern<InterleaveOp> {
----------------
dcaballe wrote:
I think there is a point in using the interleave op as the canonical way to represent this shuffle pattern. It provides more information and it will keep it consistent with scalable.
https://github.com/llvm/llvm-project/pull/80315
More information about the Mlir-commits
mailing list