diff options
Diffstat (limited to 'test/TableGen')
-rw-r--r-- | test/TableGen/Dag.td | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/TableGen/Dag.td b/test/TableGen/Dag.td index 8b406a5..d3481a5 100644 --- a/test/TableGen/Dag.td +++ b/test/TableGen/Dag.td @@ -33,3 +33,39 @@ def VAL2 : C2<Y2>; // CHECK-NEXT: dag d = (X2 Y2) // CHECK-NEXT: dag e = (Y2 X2) + +//===----------------------------------------------------------------------===// +// Complex dag operator (F.TheOp). + +class operator; +def somedef1 : operator; +def somedef2 : operator; + +class foo<operator a> { + operator TheOp = a; +} + +class bar<foo F, operator a> { + dag Dag1 = (somedef1 1); + dag Dag2 = (a 2); + dag Dag3 = (F.TheOp 2); +} + +def foo1 : foo<somedef1>; +def foo2 : foo<somedef2>; + +def VAL3 : bar<foo1, somedef1>; + +// CHECK: def VAL3 { // bar +// CHECK-NEXT: dag Dag1 = (somedef1 1); +// CHECK-NEXT: dag Dag2 = (somedef1 2); +// CHECK-NEXT: dag Dag3 = (somedef1 2); +// CHECK-NEXT: } + + +def VAL4 : bar<foo2, somedef2>; +// CHECK: def VAL4 { +// CHECK-NEXT: dag Dag1 = (somedef1 1); +// CHECK-NEXT: dag Dag2 = (somedef2 2); +// CHECK-NEXT: dag Dag3 = (somedef2 2); +// CHECK-NEXT: } |