[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