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