1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
// RUN: mlir-opt %s | mlir-opt | FileCheck %s
// CHECK: irdl.dialect @testd {
irdl.dialect @testd {
// CHECK: irdl.type @parametric {
// CHECK: %[[v0:[^ ]*]] = irdl.any
// CHECK: irdl.parameters(%[[v0]])
// CHECK: }
irdl.type @parametric {
%0 = irdl.any
irdl.parameters(%0)
}
// CHECK: irdl.type @attr_in_type_out {
// CHECK: %[[v0:[^ ]*]] = irdl.any
// CHECK: irdl.parameters(%[[v0]])
// CHECK: }
irdl.type @attr_in_type_out {
%0 = irdl.any
irdl.parameters(%0)
}
// CHECK: irdl.operation @eq {
// CHECK: %[[v0:[^ ]*]] = irdl.is i32
// CHECK: irdl.results(%[[v0]])
// CHECK: }
irdl.operation @eq {
%0 = irdl.is i32
irdl.results(%0)
}
// CHECK: irdl.operation @anyof {
// CHECK: %[[v0:[^ ]*]] = irdl.is i32
// CHECK: %[[v1:[^ ]*]] = irdl.is i64
// CHECK: %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])
// CHECK: irdl.results(%[[v2]])
// CHECK: }
irdl.operation @anyof {
%0 = irdl.is i32
%1 = irdl.is i64
%2 = irdl.any_of(%0, %1)
irdl.results(%2)
}
// CHECK: irdl.operation @all_of {
// CHECK: %[[v0:[^ ]*]] = irdl.is i32
// CHECK: %[[v1:[^ ]*]] = irdl.is i64
// CHECK: %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])
// CHECK: %[[v3:[^ ]*]] = irdl.all_of(%[[v2]], %[[v1]])
// CHECK: irdl.results(%[[v3]])
// CHECK: }
irdl.operation @all_of {
%0 = irdl.is i32
%1 = irdl.is i64
%2 = irdl.any_of(%0, %1)
%3 = irdl.all_of(%2, %1)
irdl.results(%3)
}
// CHECK: irdl.operation @any {
// CHECK: %[[v0:[^ ]*]] = irdl.any
// CHECK: irdl.results(%[[v0]])
// CHECK: }
irdl.operation @any {
%0 = irdl.any
irdl.results(%0)
}
// CHECK: irdl.operation @dynbase {
// CHECK: %[[v0:[^ ]*]] = irdl.any
// CHECK: %[[v1:[^ ]*]] = irdl.parametric @parametric<%[[v0]]>
// CHECK: irdl.results(%[[v1]])
// CHECK: }
irdl.operation @dynbase {
%0 = irdl.any
%1 = irdl.parametric @parametric<%0>
irdl.results(%1)
}
// CHECK: irdl.operation @dynparams {
// CHECK: %[[v0:[^ ]*]] = irdl.is i32
// CHECK: %[[v1:[^ ]*]] = irdl.is i64
// CHECK: %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])
// CHECK: %[[v3:[^ ]*]] = irdl.parametric @parametric<%[[v2]]>
// CHECK: irdl.results(%[[v3]])
// CHECK: }
irdl.operation @dynparams {
%0 = irdl.is i32
%1 = irdl.is i64
%2 = irdl.any_of(%0, %1)
%3 = irdl.parametric @parametric<%2>
irdl.results(%3)
}
// CHECK: irdl.operation @constraint_vars {
// CHECK: %[[v0:[^ ]*]] = irdl.is i32
// CHECK: %[[v1:[^ ]*]] = irdl.is i64
// CHECK: %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])
// CHECK: irdl.results(%[[v2]], %[[v2]])
// CHECK: }
irdl.operation @constraint_vars {
%0 = irdl.is i32
%1 = irdl.is i64
%2 = irdl.any_of(%0, %1)
irdl.results(%2, %2)
}
// CHECK: irdl.operation @attrs {
// CHECK: %[[v0:[^ ]*]] = irdl.is i32
// CHECK: %[[v1:[^ ]*]] = irdl.is i64
// CHECK: irdl.attributes {"attr1" = %[[v0]], "attr2" = %[[v1]]}
// CHECK: }
irdl.operation @attrs {
%0 = irdl.is i32
%1 = irdl.is i64
irdl.attributes {
"attr1" = %0,
"attr2" = %1
}
}
}
|