[llvm-exegesis][NFC] Improve parsing of the YAML files
[llvm-core.git] / test / TableGen / ForeachList.td
blob2ac2b8254ef381da839f68a2862c3aae8e94d8c6
1 // RUN: llvm-tblgen %s | FileCheck %s
3 class Register<string name, int idx> {
4   string Name = name;
5   int Index = idx;
8 foreach i = [0, 1, 2, 3, 4, 5, 6, 7] in {
9   def R#i : Register<"R"#i, i>;
10   def F#i : Register<"F"#i, i>;
13 def Defs {
14   list<int> a = [0, 1];
15   list<int> b = [2, 3];
18 foreach i = Defs.a in {
19   def X#i;
22 foreach i = !listconcat(Defs.a, Defs.b) in
23 def Y#i;
25 // CHECK: def F0
26 // CHECK: string Name = "F0";
27 // CHECK: int Index = 0;
29 // CHECK: def F1
30 // CHECK: string Name = "F1";
31 // CHECK: int Index = 1;
33 // CHECK: def F2
34 // CHECK: string Name = "F2";
35 // CHECK: int Index = 2;
37 // CHECK: def F3
38 // CHECK: string Name = "F3";
39 // CHECK: int Index = 3;
41 // CHECK: def F4
42 // CHECK: string Name = "F4";
43 // CHECK: int Index = 4;
45 // CHECK: def F5
46 // CHECK: string Name = "F5";
47 // CHECK: int Index = 5;
49 // CHECK: def F6
50 // CHECK: string Name = "F6";
51 // CHECK: int Index = 6;
53 // CHECK: def F7
54 // CHECK: string Name = "F7";
55 // CHECK: int Index = 7;
57 // CHECK: def R0
58 // CHECK: string Name = "R0";
59 // CHECK: int Index = 0;
61 // CHECK: def R1
62 // CHECK: string Name = "R1";
63 // CHECK: int Index = 1;
65 // CHECK: def R2
66 // CHECK: string Name = "R2";
67 // CHECK: int Index = 2;
69 // CHECK: def R3
70 // CHECK: string Name = "R3";
71 // CHECK: int Index = 3;
73 // CHECK: def R4
74 // CHECK: string Name = "R4";
75 // CHECK: int Index = 4;
77 // CHECK: def R5
78 // CHECK: string Name = "R5";
79 // CHECK: int Index = 5;
81 // CHECK: def R6
82 // CHECK: string Name = "R6";
83 // CHECK: int Index = 6;
85 // CHECK: def R7
86 // CHECK: string Name = "R7";
87 // CHECK: int Index = 7;
89 // CHECK: def X0
90 // CHECK: def X1
91 // CHECK: def Y0
92 // CHECK: def Y1
93 // CHECK: def Y2
94 // CHECK: def Y3