1 // RUN: llvm-tblgen %s | FileCheck %s
3 //===----------------------------------------------------------------------===//
4 // Substitution of an int.
14 // CHECK-NEXT: dag d = (X1 13)
17 //===----------------------------------------------------------------------===//
18 // Substitution of a DAG.
32 // CHECK-NEXT: dag d = (X2 Y2)
33 // CHECK-NEXT: dag e = (Y2 X2)
36 //===----------------------------------------------------------------------===//
37 // Complex dag operator (F.TheOp).
40 def somedef1 : operator;
41 def somedef2 : operator;
43 class foo<operator a> {
47 class bar<foo F, operator a> {
48 dag Dag1 = (somedef1 1);
50 dag Dag3 = (F.TheOp 2);
53 def foo1 : foo<somedef1>;
54 def foo2 : foo<somedef2>;
56 def VAL3 : bar<foo1, somedef1>;
58 // CHECK: def VAL3 { // bar
59 // CHECK-NEXT: dag Dag1 = (somedef1 1);
60 // CHECK-NEXT: dag Dag2 = (somedef1 2);
61 // CHECK-NEXT: dag Dag3 = (somedef1 2);
62 // CHECK-NEXT: NAME = ?
66 def VAL4 : bar<foo2, somedef2>;
68 // CHECK-NEXT: dag Dag1 = (somedef1 1);
69 // CHECK-NEXT: dag Dag2 = (somedef2 2);
70 // CHECK-NEXT: dag Dag3 = (somedef2 2);
71 // CHECK-NEXT: NAME = ?