xref: /llvm-project/llvm/test/TableGen/foreach-variable-range.td (revision 93b4f8538267e620de4a36e7cf0abc0d4f8d7c10)
1b79a25b1SMatt Arsenault// RUN: llvm-tblgen %s
2b79a25b1SMatt Arsenault
3b79a25b1SMatt Arsenaultclass ConstantsImpl {
4b79a25b1SMatt Arsenault  int Zero = 0;
5b79a25b1SMatt Arsenault  int One = 1;
6b79a25b1SMatt Arsenault  int Two = 2;
7b79a25b1SMatt Arsenault  int Three = 3;
8b79a25b1SMatt Arsenault  int Five = 5;
9b79a25b1SMatt Arsenault}
10b79a25b1SMatt Arsenault
11b79a25b1SMatt Arsenaultdef Constants : ConstantsImpl;
12b79a25b1SMatt Arsenault
13b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceA0
14b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceA1
15b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceA2
16*93b4f853SPaul C. Anagnostopoulosforeach Index = Constants.Zero ... Constants.Two in {
17b79a25b1SMatt Arsenault  def var_bound_whitespaceA#Index;
18b79a25b1SMatt Arsenault}
19b79a25b1SMatt Arsenault
20b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceB0
21b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceB1
22b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceB2
23*93b4f853SPaul C. Anagnostopoulosforeach Index = Constants.Zero...Constants.Two in {
24b79a25b1SMatt Arsenault  def var_bounds_whitespaceB#Index;
25b79a25b1SMatt Arsenault}
26b79a25b1SMatt Arsenault
27b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceC0
28b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceC1
29b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceC2
30*93b4f853SPaul C. Anagnostopoulosforeach Index = Constants.Zero ...Constants.Two in {
31b79a25b1SMatt Arsenault  def var_bounds_whitespaceC#Index;
32b79a25b1SMatt Arsenault}
33b79a25b1SMatt Arsenault
34b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceD0
35b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceD1
36b79a25b1SMatt Arsenault// CHECK-DAG: def var_bound_whitespaceD2
37*93b4f853SPaul C. Anagnostopoulosforeach Index = Constants.Zero... Constants.Two in {
38b79a25b1SMatt Arsenault  def var_bounds_whitespaceD#Index;
39b79a25b1SMatt Arsenault}
40b79a25b1SMatt Arsenault
41b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceA0
42b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceA1
43b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceA2
44*93b4f853SPaul C. Anagnostopoulosforeach Index = 0 ... Constants.Two in {
45b79a25b1SMatt Arsenault  def const_lower_whitespaceA#Index;
46b79a25b1SMatt Arsenault}
47b79a25b1SMatt Arsenault
48b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceB0
49b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceB1
50b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceB2
51*93b4f853SPaul C. Anagnostopoulosforeach Index = 0...Constants.Two in {
52b79a25b1SMatt Arsenault  def const_lower_whitespaceB#Index;
53b79a25b1SMatt Arsenault}
54b79a25b1SMatt Arsenault
55b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceC0
56b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceC1
57b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceC2
58*93b4f853SPaul C. Anagnostopoulosforeach Index = 0 ...Constants.Two in {
59b79a25b1SMatt Arsenault  def const_lower_whitespaceC#Index;
60b79a25b1SMatt Arsenault}
61b79a25b1SMatt Arsenault
62b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceD0
63b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceD1
64b79a25b1SMatt Arsenault// CHECK-DAG: def const_lower_whitespaceD2
65*93b4f853SPaul C. Anagnostopoulosforeach Index = 0... Constants.Two in {
66b79a25b1SMatt Arsenault  def const_lower_whitespaceD#Index;
67b79a25b1SMatt Arsenault}
68b79a25b1SMatt Arsenault
69b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceA0
70b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceA1
71b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceA2
72*93b4f853SPaul C. Anagnostopoulosforeach Index = Constants.Zero ... 2 in {
73b79a25b1SMatt Arsenault  def const_upper_whitespaceA#Index;
74b79a25b1SMatt Arsenault}
75b79a25b1SMatt Arsenault
76b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceB0
77b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceB1
78b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceB2
79*93b4f853SPaul C. Anagnostopoulosforeach Index = Constants.Zero...2 in {
80b79a25b1SMatt Arsenault  def const_upper_whitespaceB#Index;
81b79a25b1SMatt Arsenault}
82b79a25b1SMatt Arsenault
83b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceC0
84b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceC1
85b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceC2
86*93b4f853SPaul C. Anagnostopoulosforeach Index = Constants.Zero ...2 in {
87b79a25b1SMatt Arsenault  def const_upper_whitespaceC#Index;
88b79a25b1SMatt Arsenault}
89b79a25b1SMatt Arsenault
90b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceD0
91b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceD1
92b79a25b1SMatt Arsenault// CHECK-DAG: def const_upper_whitespaceD2
93*93b4f853SPaul C. Anagnostopoulosforeach Index = Constants.Zero... 2 in {
94b79a25b1SMatt Arsenault  def const_upper_whitespaceD#Index;
95b79a25b1SMatt Arsenault}
96b79a25b1SMatt Arsenault
97b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeA0
98b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeA1
99b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeA2
100b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeA3
101*93b4f853SPaul C. Anagnostopoulosforeach Index = {Constants.Zero...Constants.One, Constants.Two...Constants.Three} in {
102b79a25b1SMatt Arsenault  def multi_rangeA#Index;
103b79a25b1SMatt Arsenault}
104b79a25b1SMatt Arsenault
105b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeB0
106b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeB1
107b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeB3
108b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeB4
109b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeB5
110*93b4f853SPaul C. Anagnostopoulosforeach Index = {0...Constants.One, Constants.Three...Constants.Five} in {
111b79a25b1SMatt Arsenault  def multi_rangeB#Index;
112b79a25b1SMatt Arsenault}
113b79a25b1SMatt Arsenault
114b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeC0
115b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeC1
116b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeC2
117b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeC3
118*93b4f853SPaul C. Anagnostopoulosforeach Index = {0...Constants.One, 2...Constants.Three} in {
119b79a25b1SMatt Arsenault  def multi_rangeC#Index;
120b79a25b1SMatt Arsenault}
121b79a25b1SMatt Arsenault
122b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeD0
123b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeD1
124b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeD2
125b79a25b1SMatt Arsenault// CHECK-DAG: def multi_rangeD3
126*93b4f853SPaul C. Anagnostopoulosforeach Index = {0...1, Constants.Two...3} in {
127b79a25b1SMatt Arsenault  def multi_rangeD#Index;
128b79a25b1SMatt Arsenault}
129