// RUN: mlir-tblgen -gen-rewriters -I %S/../../include %s | FileCheck %s include "mlir/IR/OpBase.td" def Test_Dialect : Dialect { let name = "test"; } class NS_Op traits> : Op; def AOp : NS_Op<"a_op", []> { let arguments = (ins AnyInteger:$any_integer ); let results = (outs AnyInteger); } def BOp : NS_Op<"b_op", []> { let arguments = (ins AnyAttr: $any_attr, AnyInteger ); } // Tests dag operand indexing for ops with mixed attr and operand. // --- def COp : NS_Op<"c_op", []> { let arguments = (ins AnyAttr: $any_attr1, AnyInteger, AnyAttr: $any_attr2, AnyInteger ); } // Only operand 0 should be addressed during matching. // CHECK: struct test1 : public ::mlir::RewritePattern { // CHECK: castedOp0.getODSOperands(0).begin()).getDefiningOp() def test1 : Pat<(BOp $attr, (AOp $input)), (BOp $attr, $input)>; // Only operand 0 and 1 should be addressed during matching. // CHECK: struct test2 : public ::mlir::RewritePattern { // CHECK: castedOp0.getODSOperands(0); // CHECK: castedOp0.getODSOperands(1).begin()).getDefiningOp() def test2 : Pat<(COp $attr1, $op1, $attr2, (AOp $op2)), (BOp $attr1, $op2)>;