1// RUN: mlir-pdll %s -I %S -I %S/../../../include -dump-ods 2>&1 | FileCheck %s 2 3#include "include/ops.td" 4 5// CHECK: Operation `test.all_empty` { 6// CHECK-NEXT: } 7 8// CHECK: Operation `test.all_optional` { 9// CHECK-NEXT: Attributes { attr : Optional<I64Attr> } 10// CHECK-NEXT: Operands { operand : Optional<I64> } 11// CHECK-NEXT: Results { result : Optional<I64> } 12// CHECK-NEXT: } 13 14// CHECK: Operation `test.all_single` { 15// CHECK-NEXT: Attributes { attr : I64Attr, nonNegativeAttr : I64Attr } 16// CHECK-NEXT: Operands { operand : I64 } 17// CHECK-NEXT: Results { result : I64 } 18// CHECK-NEXT: } 19 20// CHECK: Operation `test.all_variadic` { 21// CHECK-NEXT: Operands { operands : Variadic<I64> } 22// CHECK-NEXT: Results { results : Variadic<I64> } 23// CHECK-NEXT: } 24 25// CHECK: AttributeConstraint `I64Attr` { 26// CHECK-NEXT: Summary: 64-bit signless integer attribute 27// CHECK-NEXT: CppClass: ::mlir::IntegerAttr 28// CHECK-NEXT: } 29 30// CHECK: TypeConstraint `I64` { 31// CHECK-NEXT: Summary: 64-bit signless integer 32// CHECK-NEXT: CppClass: ::mlir::IntegerType 33// CHECK-NEXT: } 34 35// CHECK: UserConstraintDecl {{.*}} Name<TestAttrInterface> ResultType<Tuple<>> Code<return ::mlir::success((::llvm::isa<TestAttrInterface>(self)));> 36// CHECK: `Inputs` 37// CHECK: `-VariableDecl {{.*}} Name<self> Type<Attr> 38// CHECK: `Constraints` 39// CHECK: `-AttrConstraintDecl 40 41// CHECK: UserConstraintDecl {{.*}} Name<TestTypeInterface> ResultType<Tuple<>> Code<return ::mlir::success((::llvm::isa<TestTypeInterface>(self)));> 42// CHECK: `Inputs` 43// CHECK: `-VariableDecl {{.*}} Name<self> Type<Type> 44// CHECK: `Constraints` 45// CHECK: `-TypeConstraintDecl {{.*}} 46 47// CHECK: UserConstraintDecl {{.*}} Name<TestOpInterface> ResultType<Tuple<>> Code<return ::mlir::success(llvm::isa<::TestOpInterface>(self));> 48// CHECK: `Inputs` 49// CHECK: `-VariableDecl {{.*}} Name<self> Type<Op> 50// CHECK: `Constraints` 51// CHECK: `-OpConstraintDecl 52// CHECK: `-OpNameDecl 53