| // RUN: mlir-opt %s -split-input-file -verify-diagnostics |
| |
| //===----------------------------------------------------------------------===// |
| // pdl_interp::CreateOperationOp |
| //===----------------------------------------------------------------------===// |
| |
| pdl_interp.func @rewriter() { |
| // expected-error@+1 {{op has inferred results, but the created operation 'foo.op' does not support result type inference}} |
| %op = pdl_interp.create_operation "foo.op" -> <inferred> |
| pdl_interp.finalize |
| } |
| |
| // ----- |
| |
| pdl_interp.func @rewriter() { |
| %type = pdl_interp.create_type i32 |
| // expected-error@+1 {{op with inferred results cannot also have explicit result types}} |
| %op = "pdl_interp.create_operation"(%type) { |
| inferredResultTypes, |
| inputAttributeNames = [], |
| name = "foo.op", |
| operandSegmentSizes = array<i32: 0, 0, 1> |
| } : (!pdl.type) -> (!pdl.operation) |
| pdl_interp.finalize |
| } |
| |
| // ----- |
| |
| //===----------------------------------------------------------------------===// |
| // pdl_interp::CreateRangeOp |
| //===----------------------------------------------------------------------===// |
| |
| pdl_interp.func @rewriter(%value: !pdl.value, %type: !pdl.type) { |
| // expected-error @below {{expected operand to have element type '!pdl.value', but got '!pdl.type'}} |
| %range = pdl_interp.create_range %value, %type : !pdl.value, !pdl.type |
| pdl_interp.finalize |
| } |