150
|
1 // RUN: llvm-tblgen %s | FileCheck %s
|
|
2
|
|
3 class Register<string name, int idx> {
|
|
4 string Name = name;
|
|
5 int Index = idx;
|
|
6 }
|
|
7
|
|
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>;
|
|
11 }
|
|
12
|
|
13 def Defs {
|
|
14 list<int> a = [0, 1];
|
|
15 list<int> b = [2, 3];
|
|
16 }
|
|
17
|
|
18 foreach i = Defs.a in {
|
|
19 def X#i;
|
|
20 }
|
|
21
|
|
22 foreach i = !listconcat(Defs.a, Defs.b) in
|
|
23 def Y#i;
|
|
24
|
|
25 // CHECK: def F0
|
|
26 // CHECK: string Name = "F0";
|
|
27 // CHECK: int Index = 0;
|
|
28
|
|
29 // CHECK: def F1
|
|
30 // CHECK: string Name = "F1";
|
|
31 // CHECK: int Index = 1;
|
|
32
|
|
33 // CHECK: def F2
|
|
34 // CHECK: string Name = "F2";
|
|
35 // CHECK: int Index = 2;
|
|
36
|
|
37 // CHECK: def F3
|
|
38 // CHECK: string Name = "F3";
|
|
39 // CHECK: int Index = 3;
|
|
40
|
|
41 // CHECK: def F4
|
|
42 // CHECK: string Name = "F4";
|
|
43 // CHECK: int Index = 4;
|
|
44
|
|
45 // CHECK: def F5
|
|
46 // CHECK: string Name = "F5";
|
|
47 // CHECK: int Index = 5;
|
|
48
|
|
49 // CHECK: def F6
|
|
50 // CHECK: string Name = "F6";
|
|
51 // CHECK: int Index = 6;
|
|
52
|
|
53 // CHECK: def F7
|
|
54 // CHECK: string Name = "F7";
|
|
55 // CHECK: int Index = 7;
|
|
56
|
|
57 // CHECK: def R0
|
|
58 // CHECK: string Name = "R0";
|
|
59 // CHECK: int Index = 0;
|
|
60
|
|
61 // CHECK: def R1
|
|
62 // CHECK: string Name = "R1";
|
|
63 // CHECK: int Index = 1;
|
|
64
|
|
65 // CHECK: def R2
|
|
66 // CHECK: string Name = "R2";
|
|
67 // CHECK: int Index = 2;
|
|
68
|
|
69 // CHECK: def R3
|
|
70 // CHECK: string Name = "R3";
|
|
71 // CHECK: int Index = 3;
|
|
72
|
|
73 // CHECK: def R4
|
|
74 // CHECK: string Name = "R4";
|
|
75 // CHECK: int Index = 4;
|
|
76
|
|
77 // CHECK: def R5
|
|
78 // CHECK: string Name = "R5";
|
|
79 // CHECK: int Index = 5;
|
|
80
|
|
81 // CHECK: def R6
|
|
82 // CHECK: string Name = "R6";
|
|
83 // CHECK: int Index = 6;
|
|
84
|
|
85 // CHECK: def R7
|
|
86 // CHECK: string Name = "R7";
|
|
87 // CHECK: int Index = 7;
|
|
88
|
|
89 // CHECK: def X0
|
|
90 // CHECK: def X1
|
|
91 // CHECK: def Y0
|
|
92 // CHECK: def Y1
|
|
93 // CHECK: def Y2
|
|
94 // CHECK: def Y3
|