[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / TableGen / SiblingForeach.td
blobe4c4704a5e394bc3716531903b8ce95f3b1e04c4
1 // RUN: llvm-tblgen %s | FileCheck %s
3 class Set<int i = 0, int j = 0, int k = 0> {
4   int I = i;
5   int J = j;
6   int K = k;
9 foreach i = [1, 2, 3] in {
10   def I1_#i : Set<i>;
11   foreach j = [1, 2, 3] in {
12     def I1_#i#_J1_#j : Set<i, j>;
13   }
14   def I2_#i : Set<i>;
15   foreach j = [4, 5, 6] in {
16     foreach k = [1, 2, 3] in {
17       def I3_#i#_J2_#j#_K1_#k : Set<i, j, k>;
18     }
19     def I4_#i#_J3_#j : Set<i, j>;
20   }
23 // CHECK: def I1_1
24 // CHECK: int I = 1;
25 // CHECK: int J = 0;
26 // CHECK: int K = 0;
28 // CHECK: def I1_1_J1_1
29 // CHECK: int I = 1;
30 // CHECK: int J = 1;
31 // CHECK: int K = 0;
33 // CHECK: def I1_1_J1_2
34 // CHECK: int I = 1;
35 // CHECK: int J = 2;
36 // CHECK: int K = 0;
38 // CHECK: def I1_1_J1_3
39 // CHECK: int I = 1;
40 // CHECK: int J = 3;
41 // CHECK: int K = 0;
43 // CHECK: def I1_2
44 // CHECK: int I = 2;
45 // CHECK: int J = 0;
46 // CHECK: int K = 0;
48 // CHECK: def I1_2_J1_1
49 // CHECK: int I = 2;
50 // CHECK: int J = 1;
51 // CHECK: int K = 0;
53 // CHECK: def I1_2_J1_2
54 // CHECK: int I = 2;
55 // CHECK: int J = 2;
56 // CHECK: int K = 0;
58 // CHECK: def I1_2_J1_3
59 // CHECK: int I = 2;
60 // CHECK: int J = 3;
61 // CHECK: int K = 0;
63 // CHECK: def I1_3
64 // CHECK: int I = 3;
65 // CHECK: int J = 0;
66 // CHECK: int K = 0;
68 // CHECK: def I1_3_J1_1
69 // CHECK: int I = 3;
70 // CHECK: int J = 1;
71 // CHECK: int K = 0;
73 // CHECK: def I1_3_J1_2
74 // CHECK: int I = 3;
75 // CHECK: int J = 2;
76 // CHECK: int K = 0;
78 // CHECK: def I1_3_J1_3
79 // CHECK: int I = 3;
80 // CHECK: int J = 3;
81 // CHECK: int K = 0;
83 // CHECK: def I2_1
84 // CHECK: int I = 1;
85 // CHECK: int J = 0;
86 // CHECK: int K = 0;
88 // CHECK: def I2_2
89 // CHECK: int I = 2;
90 // CHECK: int J = 0;
91 // CHECK: int K = 0;
93 // CHECK: def I2_3
94 // CHECK: int I = 3;
95 // CHECK: int J = 0;
96 // CHECK: int K = 0;
98 // CHECK: def I3_1_J2_4_K1_1
99 // CHECK: int I = 1;
100 // CHECK: int J = 4;
101 // CHECK: int K = 1;
103 // CHECK: def I3_1_J2_4_K1_2
104 // CHECK: int I = 1;
105 // CHECK: int J = 4;
106 // CHECK: int K = 2;
108 // CHECK: def I3_1_J2_4_K1_3
109 // CHECK: int I = 1;
110 // CHECK: int J = 4;
111 // CHECK: int K = 3;
113 // CHECK: def I3_1_J2_5_K1_1
114 // CHECK: int I = 1;
115 // CHECK: int J = 5;
116 // CHECK: int K = 1;
118 // CHECK: def I3_1_J2_5_K1_2
119 // CHECK: int I = 1;
120 // CHECK: int J = 5;
121 // CHECK: int K = 2;
123 // CHECK: def I3_1_J2_5_K1_3
124 // CHECK: int I = 1;
125 // CHECK: int J = 5;
126 // CHECK: int K = 3;
128 // CHECK: def I3_1_J2_6_K1_1
129 // CHECK: int I = 1;
130 // CHECK: int J = 6;
131 // CHECK: int K = 1;
133 // CHECK: def I3_1_J2_6_K1_2
134 // CHECK: int I = 1;
135 // CHECK: int J = 6;
136 // CHECK: int K = 2;
138 // CHECK: def I3_1_J2_6_K1_3
139 // CHECK: int I = 1;
140 // CHECK: int J = 6;
141 // CHECK: int K = 3;
143 // CHECK: def I3_2_J2_4_K1_1
144 // CHECK: int I = 2;
145 // CHECK: int J = 4;
146 // CHECK: int K = 1;
148 // CHECK: def I3_2_J2_4_K1_2
149 // CHECK: int I = 2;
150 // CHECK: int J = 4;
151 // CHECK: int K = 2;
153 // CHECK: def I3_2_J2_4_K1_3
154 // CHECK: int I = 2;
155 // CHECK: int J = 4;
156 // CHECK: int K = 3;
158 // CHECK: def I3_2_J2_5_K1_1
159 // CHECK: int I = 2;
160 // CHECK: int J = 5;
161 // CHECK: int K = 1;
163 // CHECK: def I3_2_J2_5_K1_2
164 // CHECK: int I = 2;
165 // CHECK: int J = 5;
166 // CHECK: int K = 2;
168 // CHECK: def I3_2_J2_5_K1_3
169 // CHECK: int I = 2;
170 // CHECK: int J = 5;
171 // CHECK: int K = 3;
173 // CHECK: def I3_2_J2_6_K1_1
174 // CHECK: int I = 2;
175 // CHECK: int J = 6;
176 // CHECK: int K = 1;
178 // CHECK: def I3_2_J2_6_K1_2
179 // CHECK: int I = 2;
180 // CHECK: int J = 6;
181 // CHECK: int K = 2;
183 // CHECK: def I3_2_J2_6_K1_3
184 // CHECK: int I = 2;
185 // CHECK: int J = 6;
186 // CHECK: int K = 3;
188 // CHECK: def I3_3_J2_4_K1_1
189 // CHECK: int I = 3;
190 // CHECK: int J = 4;
191 // CHECK: int K = 1;
193 // CHECK: def I3_3_J2_4_K1_2
194 // CHECK: int I = 3;
195 // CHECK: int J = 4;
196 // CHECK: int K = 2;
198 // CHECK: def I3_3_J2_4_K1_3
199 // CHECK: int I = 3;
200 // CHECK: int J = 4;
201 // CHECK: int K = 3;
203 // CHECK: def I3_3_J2_5_K1_1
204 // CHECK: int I = 3;
205 // CHECK: int J = 5;
206 // CHECK: int K = 1;
208 // CHECK: def I3_3_J2_5_K1_2
209 // CHECK: int I = 3;
210 // CHECK: int J = 5;
211 // CHECK: int K = 2;
213 // CHECK: def I3_3_J2_5_K1_3
214 // CHECK: int I = 3;
215 // CHECK: int J = 5;
216 // CHECK: int K = 3;
218 // CHECK: def I3_3_J2_6_K1_1
219 // CHECK: int I = 3;
220 // CHECK: int J = 6;
221 // CHECK: int K = 1;
223 // CHECK: def I3_3_J2_6_K1_2
224 // CHECK: int I = 3;
225 // CHECK: int J = 6;
226 // CHECK: int K = 2;
228 // CHECK: def I3_3_J2_6_K1_3
229 // CHECK: int I = 3;
230 // CHECK: int J = 6;
231 // CHECK: int K = 3;
233 // CHECK: def I4_1_J3_4
234 // CHECK: int I = 1;
235 // CHECK: int J = 4;
236 // CHECK: int K = 0;
238 // CHECK: def I4_1_J3_5
239 // CHECK: int I = 1;
240 // CHECK: int J = 5;
241 // CHECK: int K = 0;
243 // CHECK: def I4_1_J3_6
244 // CHECK: int I = 1;
245 // CHECK: int J = 6;
246 // CHECK: int K = 0;
248 // CHECK: def I4_2_J3_4
249 // CHECK: int I = 2;
250 // CHECK: int J = 4;
251 // CHECK: int K = 0;
253 // CHECK: def I4_2_J3_5
254 // CHECK: int I = 2;
255 // CHECK: int J = 5;
256 // CHECK: int K = 0;
258 // CHECK: def I4_2_J3_6
259 // CHECK: int I = 2;
260 // CHECK: int J = 6;
261 // CHECK: int K = 0;
263 // CHECK: def I4_3_J3_4
264 // CHECK: int I = 3;
265 // CHECK: int J = 4;
266 // CHECK: int K = 0;
268 // CHECK: def I4_3_J3_5
269 // CHECK: int I = 3;
270 // CHECK: int J = 5;
271 // CHECK: int K = 0;
273 // CHECK: def I4_3_J3_6
274 // CHECK: int I = 3;
275 // CHECK: int J = 6;
276 // CHECK: int K = 0;