[Mlir-commits] [mlir] [mlir][vector] Implement lowering for 1D vector.deinterleave operations (PR #93042)

Benjamin Maxwell llvmlistbot at llvm.org
Tue May 28 07:36:34 PDT 2024


================
@@ -1761,6 +1761,70 @@ struct VectorInterleaveOpLowering
   }
 };
 
+/// Conversion pattern for a `vector.deinterleave`.
+/// This supports for fixed-sized vectors and scalable vectors.
+struct VectorDeinterleaveOpLowering
+    : public ConvertOpToLLVMPattern<vector::DeinterleaveOp> {
+  using ConvertOpToLLVMPattern::ConvertOpToLLVMPattern;
+
+  LogicalResult
+  matchAndRewrite(vector::DeinterleaveOp deinterleaveOp, OpAdaptor adaptor,
+                  ConversionPatternRewriter &rewriter) const override {
+    VectorType resultType = deinterleaveOp.getResultVectorType();
+    VectorType sourceType = deinterleaveOp.getSourceVectorType();
+    auto loc = deinterleaveOp.getLoc();
+
+    // n-D deinterleave should be lowered to the 1-D lowering process.
----------------
MacDue wrote:

Typo: "lowered to the 1-D lowering process"
How about:
```suggestion
    // Note: n-D deinterleaves operations should be lowered to the 1-D before converting to LLVM.
```

https://github.com/llvm/llvm-project/pull/93042


More information about the Mlir-commits mailing list