1 // RUN: llvm-tblgen %s | FileCheck %s 2 3 class Set<int i = 0, int j = 0, int k = 0> { 4 int I = i; 5 int J = j; 6 int K = k; 7 } 8 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 } 21 } 22 23 // CHECK: def I1_1 24 // CHECK: int I = 1; 25 // CHECK: int J = 0; 26 // CHECK: int K = 0; 27 28 // CHECK: def I1_1_J1_1 29 // CHECK: int I = 1; 30 // CHECK: int J = 1; 31 // CHECK: int K = 0; 32 33 // CHECK: def I1_1_J1_2 34 // CHECK: int I = 1; 35 // CHECK: int J = 2; 36 // CHECK: int K = 0; 37 38 // CHECK: def I1_1_J1_3 39 // CHECK: int I = 1; 40 // CHECK: int J = 3; 41 // CHECK: int K = 0; 42 43 // CHECK: def I1_2 44 // CHECK: int I = 2; 45 // CHECK: int J = 0; 46 // CHECK: int K = 0; 47 48 // CHECK: def I1_2_J1_1 49 // CHECK: int I = 2; 50 // CHECK: int J = 1; 51 // CHECK: int K = 0; 52 53 // CHECK: def I1_2_J1_2 54 // CHECK: int I = 2; 55 // CHECK: int J = 2; 56 // CHECK: int K = 0; 57 58 // CHECK: def I1_2_J1_3 59 // CHECK: int I = 2; 60 // CHECK: int J = 3; 61 // CHECK: int K = 0; 62 63 // CHECK: def I1_3 64 // CHECK: int I = 3; 65 // CHECK: int J = 0; 66 // CHECK: int K = 0; 67 68 // CHECK: def I1_3_J1_1 69 // CHECK: int I = 3; 70 // CHECK: int J = 1; 71 // CHECK: int K = 0; 72 73 // CHECK: def I1_3_J1_2 74 // CHECK: int I = 3; 75 // CHECK: int J = 2; 76 // CHECK: int K = 0; 77 78 // CHECK: def I1_3_J1_3 79 // CHECK: int I = 3; 80 // CHECK: int J = 3; 81 // CHECK: int K = 0; 82 83 // CHECK: def I2_1 84 // CHECK: int I = 1; 85 // CHECK: int J = 0; 86 // CHECK: int K = 0; 87 88 // CHECK: def I2_2 89 // CHECK: int I = 2; 90 // CHECK: int J = 0; 91 // CHECK: int K = 0; 92 93 // CHECK: def I2_3 94 // CHECK: int I = 3; 95 // CHECK: int J = 0; 96 // CHECK: int K = 0; 97 98 // CHECK: def I3_1_J2_4_K1_1 99 // CHECK: int I = 1; 100 // CHECK: int J = 4; 101 // CHECK: int K = 1; 102 103 // CHECK: def I3_1_J2_4_K1_2 104 // CHECK: int I = 1; 105 // CHECK: int J = 4; 106 // CHECK: int K = 2; 107 108 // CHECK: def I3_1_J2_4_K1_3 109 // CHECK: int I = 1; 110 // CHECK: int J = 4; 111 // CHECK: int K = 3; 112 113 // CHECK: def I3_1_J2_5_K1_1 114 // CHECK: int I = 1; 115 // CHECK: int J = 5; 116 // CHECK: int K = 1; 117 118 // CHECK: def I3_1_J2_5_K1_2 119 // CHECK: int I = 1; 120 // CHECK: int J = 5; 121 // CHECK: int K = 2; 122 123 // CHECK: def I3_1_J2_5_K1_3 124 // CHECK: int I = 1; 125 // CHECK: int J = 5; 126 // CHECK: int K = 3; 127 128 // CHECK: def I3_1_J2_6_K1_1 129 // CHECK: int I = 1; 130 // CHECK: int J = 6; 131 // CHECK: int K = 1; 132 133 // CHECK: def I3_1_J2_6_K1_2 134 // CHECK: int I = 1; 135 // CHECK: int J = 6; 136 // CHECK: int K = 2; 137 138 // CHECK: def I3_1_J2_6_K1_3 139 // CHECK: int I = 1; 140 // CHECK: int J = 6; 141 // CHECK: int K = 3; 142 143 // CHECK: def I3_2_J2_4_K1_1 144 // CHECK: int I = 2; 145 // CHECK: int J = 4; 146 // CHECK: int K = 1; 147 148 // CHECK: def I3_2_J2_4_K1_2 149 // CHECK: int I = 2; 150 // CHECK: int J = 4; 151 // CHECK: int K = 2; 152 153 // CHECK: def I3_2_J2_4_K1_3 154 // CHECK: int I = 2; 155 // CHECK: int J = 4; 156 // CHECK: int K = 3; 157 158 // CHECK: def I3_2_J2_5_K1_1 159 // CHECK: int I = 2; 160 // CHECK: int J = 5; 161 // CHECK: int K = 1; 162 163 // CHECK: def I3_2_J2_5_K1_2 164 // CHECK: int I = 2; 165 // CHECK: int J = 5; 166 // CHECK: int K = 2; 167 168 // CHECK: def I3_2_J2_5_K1_3 169 // CHECK: int I = 2; 170 // CHECK: int J = 5; 171 // CHECK: int K = 3; 172 173 // CHECK: def I3_2_J2_6_K1_1 174 // CHECK: int I = 2; 175 // CHECK: int J = 6; 176 // CHECK: int K = 1; 177 178 // CHECK: def I3_2_J2_6_K1_2 179 // CHECK: int I = 2; 180 // CHECK: int J = 6; 181 // CHECK: int K = 2; 182 183 // CHECK: def I3_2_J2_6_K1_3 184 // CHECK: int I = 2; 185 // CHECK: int J = 6; 186 // CHECK: int K = 3; 187 188 // CHECK: def I3_3_J2_4_K1_1 189 // CHECK: int I = 3; 190 // CHECK: int J = 4; 191 // CHECK: int K = 1; 192 193 // CHECK: def I3_3_J2_4_K1_2 194 // CHECK: int I = 3; 195 // CHECK: int J = 4; 196 // CHECK: int K = 2; 197 198 // CHECK: def I3_3_J2_4_K1_3 199 // CHECK: int I = 3; 200 // CHECK: int J = 4; 201 // CHECK: int K = 3; 202 203 // CHECK: def I3_3_J2_5_K1_1 204 // CHECK: int I = 3; 205 // CHECK: int J = 5; 206 // CHECK: int K = 1; 207 208 // CHECK: def I3_3_J2_5_K1_2 209 // CHECK: int I = 3; 210 // CHECK: int J = 5; 211 // CHECK: int K = 2; 212 213 // CHECK: def I3_3_J2_5_K1_3 214 // CHECK: int I = 3; 215 // CHECK: int J = 5; 216 // CHECK: int K = 3; 217 218 // CHECK: def I3_3_J2_6_K1_1 219 // CHECK: int I = 3; 220 // CHECK: int J = 6; 221 // CHECK: int K = 1; 222 223 // CHECK: def I3_3_J2_6_K1_2 224 // CHECK: int I = 3; 225 // CHECK: int J = 6; 226 // CHECK: int K = 2; 227 228 // CHECK: def I3_3_J2_6_K1_3 229 // CHECK: int I = 3; 230 // CHECK: int J = 6; 231 // CHECK: int K = 3; 232 233 // CHECK: def I4_1_J3_4 234 // CHECK: int I = 1; 235 // CHECK: int J = 4; 236 // CHECK: int K = 0; 237 238 // CHECK: def I4_1_J3_5 239 // CHECK: int I = 1; 240 // CHECK: int J = 5; 241 // CHECK: int K = 0; 242 243 // CHECK: def I4_1_J3_6 244 // CHECK: int I = 1; 245 // CHECK: int J = 6; 246 // CHECK: int K = 0; 247 248 // CHECK: def I4_2_J3_4 249 // CHECK: int I = 2; 250 // CHECK: int J = 4; 251 // CHECK: int K = 0; 252 253 // CHECK: def I4_2_J3_5 254 // CHECK: int I = 2; 255 // CHECK: int J = 5; 256 // CHECK: int K = 0; 257 258 // CHECK: def I4_2_J3_6 259 // CHECK: int I = 2; 260 // CHECK: int J = 6; 261 // CHECK: int K = 0; 262 263 // CHECK: def I4_3_J3_4 264 // CHECK: int I = 3; 265 // CHECK: int J = 4; 266 // CHECK: int K = 0; 267 268 // CHECK: def I4_3_J3_5 269 // CHECK: int I = 3; 270 // CHECK: int J = 5; 271 // CHECK: int K = 0; 272 273 // CHECK: def I4_3_J3_6 274 // CHECK: int I = 3; 275 // CHECK: int J = 6; 276 // CHECK: int K = 0; 277