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