File tree Expand file tree Collapse file tree 2 files changed +21
-5
lines changed
lib/CIR/Lowering/ThroughMLIR
test/CIR/Lowering/ThroughMLIR Expand file tree Collapse file tree 2 files changed +21
-5
lines changed Original file line number Diff line number Diff line change @@ -966,14 +966,15 @@ class CIRCmpOpLowering : public mlir::OpConversionPattern<cir::CmpOp> {
966966 }
967967};
968968
969- class CIRBrOpLowering : public mlir ::OpRewritePattern <cir::BrOp> {
969+ class CIRBrOpLowering : public mlir ::OpConversionPattern <cir::BrOp> {
970970public:
971- using OpRewritePattern <cir::BrOp>::OpRewritePattern ;
971+ using mlir::OpConversionPattern <cir::BrOp>::OpConversionPattern ;
972972
973973 mlir::LogicalResult
974- matchAndRewrite (cir::BrOp op,
975- mlir::PatternRewriter &rewriter) const override {
976- rewriter.replaceOpWithNewOp <mlir::cf::BranchOp>(op, op.getDest ());
974+ matchAndRewrite (cir::BrOp op, OpAdaptor adaptor,
975+ mlir::ConversionPatternRewriter &rewriter) const override {
976+ rewriter.replaceOpWithNewOp <mlir::cf::BranchOp>(op, op.getDest (),
977+ adaptor.getDestOperands ());
977978 return mlir::LogicalResult::success ();
978979 }
979980};
Original file line number Diff line number Diff line change 1+ // RUN: cir-opt %s -cir-to-mlir | FileCheck %s -check-prefix=MLIR
2+
3+ !s32i = !cir.int<s, 32>
4+ module {
5+ cir.func @br() -> !s32i {
6+ %0 = cir.const #cir.int<2> : !s32i
7+ cir.br ^bb1(%0 : !s32i)
8+ ^bb1(%v1 : !s32i):
9+ cir.return %v1 : !s32i
10+ // MLIR: %[[A:.*]] = arith.constant 2 : i32
11+ // MLIR-NEXT: cf.br ^bb1(%[[A]] : i32)
12+ // MLIR-NEXT:^bb1(%[[V1:.*]]: i32):
13+ // MLIR-NEXT: return %[[V1]] : i32
14+ }
15+ }
You can’t perform that action at this time.
0 commit comments