Home | History | Annotate | Download | only in TableGen
      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