[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / TableGen / listsplat.td
blob5a93a4c722c05e4ecc51ef710ebb6c89a9c41c12
1 // RUN: llvm-tblgen %s | FileCheck %s
3 // CHECK: ------------- Classes -----------------
4 // CHECK-NEXT: class X<int X:a = ?, int X:b = ?> {
5 // CHECK-NEXT:   list<int> x = !listsplat(X:a, X:b);
6 // CHECK-NEXT: }
7 // CHECK-NEXT: class Y<string Y:a = ?, int Y:b = ?> {
8 // CHECK-NEXT:   list<string> x = !listsplat(Y:a, Y:b);
9 // CHECK-NEXT: }
10 // CHECK-NEXT: ------------- Defs -----------------
11 // CHECK-NEXT: def DX00 {      // X
12 // CHECK-NEXT:   list<int> x = [];
13 // CHECK-NEXT: }
14 // CHECK-NEXT: def DX01 {      // X
15 // CHECK-NEXT:   list<int> x = [0];
16 // CHECK-NEXT: }
17 // CHECK-NEXT: def DX02 {      // X
18 // CHECK-NEXT:   list<int> x = [0, 0];
19 // CHECK-NEXT: }
20 // CHECK-NEXT: def DX10 {      // X
21 // CHECK-NEXT:   list<int> x = [];
22 // CHECK-NEXT: }
23 // CHECK-NEXT: def DX11 {      // X
24 // CHECK-NEXT:   list<int> x = [1];
25 // CHECK-NEXT: }
26 // CHECK-NEXT: def DX12 {      // X
27 // CHECK-NEXT:   list<int> x = [1, 1];
28 // CHECK-NEXT: }
29 // CHECK-NEXT: def DYa0 {      // Y
30 // CHECK-NEXT:   list<string> x = [];
31 // CHECK-NEXT: }
32 // CHECK-NEXT: def DYa1 {      // Y
33 // CHECK-NEXT:   list<string> x = ["a"];
34 // CHECK-NEXT: }
35 // CHECK-NEXT: def DYa2 {      // Y
36 // CHECK-NEXT:   list<string> x = ["a", "a"];
37 // CHECK-NEXT: }
38 // CHECK-NEXT: def DYe0 {      // Y
39 // CHECK-NEXT:   list<string> x = [];
40 // CHECK-NEXT: }
41 // CHECK-NEXT: def DYe1 {      // Y
42 // CHECK-NEXT:   list<string> x = [""];
43 // CHECK-NEXT: }
44 // CHECK-NEXT: def DYe2 {      // Y
45 // CHECK-NEXT:   list<string> x = ["", ""];
46 // CHECK-NEXT: }
47 // CHECK-NEXT: def DZ {        // X
48 // CHECK-NEXT:   list<int> x = [42, 42, 42];
49 // CHECK-NEXT: }
51 class X<int a, int b> {
52   list<int> x = !listsplat(a, b);
55 class Y<string a, int b> {
56   list<string> x = !listsplat(a, b);
59 def DX00 : X<0, 0>;
60 def DX01 : X<0, 1>;
61 def DX02 : X<0, 2>;
63 def DX10 : X<1, 0>;
64 def DX11 : X<1, 1>;
65 def DX12 : X<1, 2>;
67 def DYe0 : Y<"", 0>;
68 def DYe1 : Y<"", 1>;
69 def DYe2 : Y<"", 2>;
71 def DYa0 : Y<"a", 0>;
72 def DYa1 : Y<"a", 1>;
73 def DYa2 : Y<"a", 2>;
75 def DZ : X<42, !size([1, 2, 3])>;