brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.3 KiB · 45156db Raw
190 lines · plain
1// RUN: mlir-opt %s | mlir-opt | FileCheck %s2 3// CHECK: irdl.dialect @testd {4irdl.dialect @testd {5  // CHECK: irdl.type @parametric {6  // CHECK:   %[[v0:[^ ]*]] = irdl.any7  // CHECK:   irdl.parameters(foo: %[[v0]])8  // CHECK: }9  irdl.type @parametric {10    %0 = irdl.any11    irdl.parameters(foo: %0)12  }13 14  // CHECK: irdl.attribute @parametric_attr {15  // CHECK:  %[[v0:[^ ]*]] = irdl.any16  // CHECK:  irdl.parameters(foo: %[[v0]])17  // CHECK: }18  irdl.attribute @parametric_attr {19    %0 = irdl.any20    irdl.parameters(foo: %0)21  }22 23  // CHECK: irdl.type @attr_in_type_out {24  // CHECK:   %[[v0:[^ ]*]] = irdl.any25  // CHECK:   irdl.parameters(foo: %[[v0]])26  // CHECK: }27  irdl.type @attr_in_type_out {28    %0 = irdl.any29    irdl.parameters(foo: %0)30  }31 32  // CHECK: irdl.operation @eq {33  // CHECK:   %[[v0:[^ ]*]] = irdl.is i3234  // CHECK:   irdl.results(foo: %[[v0]])35  // CHECK: }36  irdl.operation @eq {37    %0 = irdl.is i3238    irdl.results(foo: %0)39  }40 41  // CHECK: irdl.operation @anyof {42  // CHECK:   %[[v0:[^ ]*]] = irdl.is i3243  // CHECK:   %[[v1:[^ ]*]] = irdl.is i6444  // CHECK:   %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])45  // CHECK:   irdl.results(foo: %[[v2]])46  // CHECK: }47  irdl.operation @anyof {48    %0 = irdl.is i3249    %1 = irdl.is i6450    %2 = irdl.any_of(%0, %1)51    irdl.results(foo: %2)52  }53 54  // CHECK: irdl.operation @all_of {55  // CHECK:   %[[v0:[^ ]*]] = irdl.is i3256  // CHECK:   %[[v1:[^ ]*]] = irdl.is i6457  // CHECK:   %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])58  // CHECK:   %[[v3:[^ ]*]] = irdl.all_of(%[[v2]], %[[v1]])59  // CHECK:   irdl.results(foo: %[[v3]])60  // CHECK: }61  irdl.operation @all_of {62    %0 = irdl.is i3263    %1 = irdl.is i6464    %2 = irdl.any_of(%0, %1)65    %3 = irdl.all_of(%2, %1)66    irdl.results(foo: %3)67  }68 69  // CHECK: irdl.operation @any {70  // CHECK:   %[[v0:[^ ]*]] = irdl.any71  // CHECK:   irdl.results(foo: %[[v0]])72  // CHECK: }73  irdl.operation @any {74    %0 = irdl.any75    irdl.results(foo: %0)76  }77 78  // CHECK: irdl.operation @dyn_type_base {79  // CHECK:   %[[v1:[^ ]*]] = irdl.base @testd::@parametric80  // CHECK:   irdl.results(foo: %[[v1]])81  // CHECK: }82  irdl.operation @dyn_type_base {83    %0 = irdl.base @testd::@parametric84    irdl.results(foo: %0)85  }86 87  // CHECK: irdl.operation @dyn_attr_base {88  // CHECK:   %[[v1:[^ ]*]] = irdl.base @testd::@parametric_attr89  // CHECK:   irdl.attributes {"attr1" = %[[v1]]}90  // CHECK: }91  irdl.operation @dyn_attr_base {92    %0 = irdl.base @testd::@parametric_attr93    irdl.attributes {"attr1" = %0}94  }95 96  // CHECK: irdl.operation @named_type_base {97  // CHECK:   %[[v1:[^ ]*]] = irdl.base "!builtin.integer"98  // CHECK:   irdl.results(foo: %[[v1]])99  // CHECK: }100  irdl.operation @named_type_base {101    %0 = irdl.base "!builtin.integer"102    irdl.results(foo: %0)103  }104 105  // CHECK: irdl.operation @named_attr_base {106  // CHECK:   %[[v1:[^ ]*]] = irdl.base "#builtin.integer"107  // CHECK:   irdl.attributes {"attr1" = %[[v1]]}108  // CHECK: }109  irdl.operation @named_attr_base {110    %0 = irdl.base "#builtin.integer"111    irdl.attributes {"attr1" = %0}112  }113 114  // CHECK: irdl.operation @dynparams {115  // CHECK:   %[[v0:[^ ]*]] = irdl.is i32116  // CHECK:   %[[v1:[^ ]*]] = irdl.is i64117  // CHECK:   %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])118  // CHECK:   %[[v3:[^ ]*]] = irdl.parametric @testd::@parametric<%[[v2]]>119  // CHECK:   irdl.results(foo: %[[v3]])120  // CHECK: }121  irdl.operation @dynparams {122    %0 = irdl.is i32123    %1 = irdl.is i64124    %2 = irdl.any_of(%0, %1)125    %3 = irdl.parametric @testd::@parametric<%2>126    irdl.results(foo: %3)127  }128 129  // CHECK: irdl.operation @constraint_vars {130  // CHECK:   %[[v0:[^ ]*]] = irdl.is i32131  // CHECK:   %[[v1:[^ ]*]] = irdl.is i64132  // CHECK:   %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])133  // CHECK:   irdl.results(foo: %[[v2]], bar: %[[v2]])134  // CHECK: }135  irdl.operation @constraint_vars {136    %0 = irdl.is i32137    %1 = irdl.is i64138    %2 = irdl.any_of(%0, %1)139    irdl.results(foo: %2, bar: %2)140  }141 142  // CHECK: irdl.operation @attrs {143  // CHECK:   %[[v0:[^ ]*]] = irdl.is i32144  // CHECK:   %[[v1:[^ ]*]] = irdl.is i64145  // CHECK:   irdl.attributes {"attr1" = %[[v0]], "attr2" = %[[v1]]}146  // CHECK: }147  irdl.operation @attrs {148    %0 = irdl.is i32149    %1 = irdl.is i64150 151    irdl.attributes {152      "attr1" = %0,153      "attr2" = %1154    }155  }156  // CHECK: irdl.operation @regions {157  // CHECK:   %[[r0:[^ ]*]] = irdl.region158  // CHECK:   %[[v0:[^ ]*]] = irdl.is i32159  // CHECK:   %[[v1:[^ ]*]] = irdl.is i64160  // CHECK:   %[[r1:[^ ]*]] = irdl.region(%[[v0]], %[[v1]])161  // CHECK:   %[[r2:[^ ]*]] = irdl.region with size 3162  // CHECK:   %[[r3:[^ ]*]] = irdl.region()163  // CHECK:   irdl.regions(foo: %[[r0]], bar: %[[r1]], baz: %[[r2]], qux: %[[r3]])164  // CHECK: }165  irdl.operation @regions {166    %r0 = irdl.region167    %v0 = irdl.is i32168    %v1 = irdl.is i64169    %r1 = irdl.region(%v0, %v1)170    %r2 = irdl.region with size 3171    %r3 = irdl.region()172 173    irdl.regions(foo: %r0, bar: %r1, baz: %r2, qux: %r3)174  }175 176  // CHECK: irdl.operation @region_and_operand {177  // CHECK:   %[[v0:[^ ]*]] = irdl.any178  // CHECK:   %[[r0:[^ ]*]] = irdl.region(%[[v0]])179  // CHECK:   irdl.operands(foo: %[[v0]])180  // CHECK:   irdl.regions(bar: %[[r0]])181  // CHECK: }182  irdl.operation @region_and_operand {183    %v0 = irdl.any184    %r0 = irdl.region(%v0)185 186    irdl.operands(foo: %v0)187    irdl.regions(bar: %r0)188  }189}190