test-assembler-cond-rd-rn-operand-const-t32.cc revision 919e3fe28a5024c53ede42922092bbc32e89dcb8
1// Copyright 2016, VIXL authors
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are met:
6//
7//   * Redistributions of source code must retain the above copyright notice,
8//     this list of conditions and the following disclaimer.
9//   * Redistributions in binary form must reproduce the above copyright notice,
10//     this list of conditions and the following disclaimer in the documentation
11//     and/or other materials provided with the distribution.
12//   * Neither the name of ARM Limited nor the names of its contributors may be
13//     used to endorse or promote products derived from this software without
14//     specific prior written permission.
15//
16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27
28// -----------------------------------------------------------------------------
29// This file is auto generated from the
30// test/aarch32/config/template-assembler-aarch32.cc.in template file using
31// tools/generate_tests.py.
32//
33// PLEASE DO NOT EDIT.
34// -----------------------------------------------------------------------------
35
36
37#include "test-runner.h"
38
39#include "test-utils.h"
40#include "test-utils-aarch32.h"
41
42#include "aarch32/assembler-aarch32.h"
43#include "aarch32/macro-assembler-aarch32.h"
44
45#define BUF_SIZE (4096)
46
47namespace vixl {
48namespace aarch32 {
49
50// List of instruction mnemonics.
51#define FOREACH_INSTRUCTION(M) \
52  M(adc)                       \
53  M(adcs)                      \
54  M(add)                       \
55  M(adds)                      \
56  M(and_)                      \
57  M(ands)                      \
58  M(bic)                       \
59  M(bics)                      \
60  M(eor)                       \
61  M(eors)                      \
62  M(orn)                       \
63  M(orns)                      \
64  M(orr)                       \
65  M(orrs)                      \
66  M(rsb)                       \
67  M(rsbs)                      \
68  M(sbc)                       \
69  M(sbcs)                      \
70  M(sub)                       \
71  M(subs)
72
73
74// Values to be passed to the assembler to produce the instruction under test.
75struct Operands {
76  Condition cond;
77  Register rd;
78  Register rn;
79  uint32_t immediate;
80};
81
82// This structure contains all data needed to test one specific
83// instruction.
84struct TestData {
85  // The `operands` field represents what to pass to the assembler to
86  // produce the instruction.
87  Operands operands;
88  // True if we need to generate an IT instruction for this test to be valid.
89  bool in_it_block;
90  // The condition to give the IT instruction, this will be set to "al" by
91  // default.
92  Condition it_condition;
93  // Description of the operands, used for error reporting.
94  const char* operands_description;
95  // Unique identifier, used for generating traces.
96  const char* identifier;
97};
98
99struct TestResult {
100  size_t size;
101  const byte* encoding;
102};
103
104// Each element of this array produce one instruction encoding.
105static const TestData kTests[] = {{{al, r13, r14, 0x02ac0000},
106                                   false,
107                                   al,
108                                   "al r13 r14 0x02ac0000",
109                                   "al_r13_r14_0x02ac0000"},
110                                  {{al, r10, r1, 0x00156000},
111                                   false,
112                                   al,
113                                   "al r10 r1 0x00156000",
114                                   "al_r10_r1_0x00156000"},
115                                  {{al, r10, r0, 0x000003fc},
116                                   false,
117                                   al,
118                                   "al r10 r0 0x000003fc",
119                                   "al_r10_r0_0x000003fc"},
120                                  {{al, r1, r11, 0x2ac00000},
121                                   false,
122                                   al,
123                                   "al r1 r11 0x2ac00000",
124                                   "al_r1_r11_0x2ac00000"},
125                                  {{al, r8, r6, 0x00156000},
126                                   false,
127                                   al,
128                                   "al r8 r6 0x00156000",
129                                   "al_r8_r6_0x00156000"},
130                                  {{al, r7, r12, 0x00ff0000},
131                                   false,
132                                   al,
133                                   "al r7 r12 0x00ff0000",
134                                   "al_r7_r12_0x00ff0000"},
135                                  {{al, r12, r3, 0x00ff0000},
136                                   false,
137                                   al,
138                                   "al r12 r3 0x00ff0000",
139                                   "al_r12_r3_0x00ff0000"},
140                                  {{al, r4, r7, 0x0000ff00},
141                                   false,
142                                   al,
143                                   "al r4 r7 0x0000ff00",
144                                   "al_r4_r7_0x0000ff00"},
145                                  {{al, r11, r13, 0x0ab00000},
146                                   false,
147                                   al,
148                                   "al r11 r13 0x0ab00000",
149                                   "al_r11_r13_0x0ab00000"},
150                                  {{al, r6, r12, 0xff00ff00},
151                                   false,
152                                   al,
153                                   "al r6 r12 0xff00ff00",
154                                   "al_r6_r12_0xff00ff00"},
155                                  {{al, r12, r8, 0x003fc000},
156                                   false,
157                                   al,
158                                   "al r12 r8 0x003fc000",
159                                   "al_r12_r8_0x003fc000"},
160                                  {{al, r5, r12, 0x00ab00ab},
161                                   false,
162                                   al,
163                                   "al r5 r12 0x00ab00ab",
164                                   "al_r5_r12_0x00ab00ab"},
165                                  {{al, r7, r6, 0x00ab00ab},
166                                   false,
167                                   al,
168                                   "al r7 r6 0x00ab00ab",
169                                   "al_r7_r6_0x00ab00ab"},
170                                  {{al, r0, r1, 0x00ab00ab},
171                                   false,
172                                   al,
173                                   "al r0 r1 0x00ab00ab",
174                                   "al_r0_r1_0x00ab00ab"},
175                                  {{al, r9, r9, 0x000001fe},
176                                   false,
177                                   al,
178                                   "al r9 r9 0x000001fe",
179                                   "al_r9_r9_0x000001fe"},
180                                  {{al, r2, r8, 0xab00ab00},
181                                   false,
182                                   al,
183                                   "al r2 r8 0xab00ab00",
184                                   "al_r2_r8_0xab00ab00"},
185                                  {{al, r9, r10, 0x00ff0000},
186                                   false,
187                                   al,
188                                   "al r9 r10 0x00ff0000",
189                                   "al_r9_r10_0x00ff0000"},
190                                  {{al, r8, r8, 0x55800000},
191                                   false,
192                                   al,
193                                   "al r8 r8 0x55800000",
194                                   "al_r8_r8_0x55800000"},
195                                  {{al, r6, r7, 0x00ab00ab},
196                                   false,
197                                   al,
198                                   "al r6 r7 0x00ab00ab",
199                                   "al_r6_r7_0x00ab00ab"},
200                                  {{al, r5, r9, 0xff000000},
201                                   false,
202                                   al,
203                                   "al r5 r9 0xff000000",
204                                   "al_r5_r9_0xff000000"},
205                                  {{al, r8, r8, 0x00ab0000},
206                                   false,
207                                   al,
208                                   "al r8 r8 0x00ab0000",
209                                   "al_r8_r8_0x00ab0000"},
210                                  {{al, r5, r8, 0xab00ab00},
211                                   false,
212                                   al,
213                                   "al r5 r8 0xab00ab00",
214                                   "al_r5_r8_0xab00ab00"},
215                                  {{al, r0, r12, 0xab000000},
216                                   false,
217                                   al,
218                                   "al r0 r12 0xab000000",
219                                   "al_r0_r12_0xab000000"},
220                                  {{al, r13, r11, 0xab000000},
221                                   false,
222                                   al,
223                                   "al r13 r11 0xab000000",
224                                   "al_r13_r11_0xab000000"},
225                                  {{al, r14, r3, 0xab00ab00},
226                                   false,
227                                   al,
228                                   "al r14 r3 0xab00ab00",
229                                   "al_r14_r3_0xab00ab00"},
230                                  {{al, r0, r1, 0x0003fc00},
231                                   false,
232                                   al,
233                                   "al r0 r1 0x0003fc00",
234                                   "al_r0_r1_0x0003fc00"},
235                                  {{al, r14, r13, 0x0ab00000},
236                                   false,
237                                   al,
238                                   "al r14 r13 0x0ab00000",
239                                   "al_r14_r13_0x0ab00000"},
240                                  {{al, r6, r0, 0x0002ac00},
241                                   false,
242                                   al,
243                                   "al r6 r0 0x0002ac00",
244                                   "al_r6_r0_0x0002ac00"},
245                                  {{al, r6, r8, 0x55800000},
246                                   false,
247                                   al,
248                                   "al r6 r8 0x55800000",
249                                   "al_r6_r8_0x55800000"},
250                                  {{al, r2, r14, 0x01560000},
251                                   false,
252                                   al,
253                                   "al r2 r14 0x01560000",
254                                   "al_r2_r14_0x01560000"},
255                                  {{al, r5, r13, 0x03fc0000},
256                                   false,
257                                   al,
258                                   "al r5 r13 0x03fc0000",
259                                   "al_r5_r13_0x03fc0000"},
260                                  {{al, r7, r6, 0x00000ab0},
261                                   false,
262                                   al,
263                                   "al r7 r6 0x00000ab0",
264                                   "al_r7_r6_0x00000ab0"},
265                                  {{al, r3, r14, 0x007f8000},
266                                   false,
267                                   al,
268                                   "al r3 r14 0x007f8000",
269                                   "al_r3_r14_0x007f8000"},
270                                  {{al, r9, r4, 0x00558000},
271                                   false,
272                                   al,
273                                   "al r9 r4 0x00558000",
274                                   "al_r9_r4_0x00558000"},
275                                  {{al, r10, r11, 0x00002ac0},
276                                   false,
277                                   al,
278                                   "al r10 r11 0x00002ac0",
279                                   "al_r10_r11_0x00002ac0"},
280                                  {{al, r1, r5, 0x003fc000},
281                                   false,
282                                   al,
283                                   "al r1 r5 0x003fc000",
284                                   "al_r1_r5_0x003fc000"},
285                                  {{al, r7, r7, 0x00003fc0},
286                                   false,
287                                   al,
288                                   "al r7 r7 0x00003fc0",
289                                   "al_r7_r7_0x00003fc0"},
290                                  {{al, r5, r3, 0x000007f8},
291                                   false,
292                                   al,
293                                   "al r5 r3 0x000007f8",
294                                   "al_r5_r3_0x000007f8"},
295                                  {{al, r4, r3, 0x00001560},
296                                   false,
297                                   al,
298                                   "al r4 r3 0x00001560",
299                                   "al_r4_r3_0x00001560"},
300                                  {{al, r5, r3, 0x03fc0000},
301                                   false,
302                                   al,
303                                   "al r5 r3 0x03fc0000",
304                                   "al_r5_r3_0x03fc0000"},
305                                  {{al, r2, r6, 0x55800000},
306                                   false,
307                                   al,
308                                   "al r2 r6 0x55800000",
309                                   "al_r2_r6_0x55800000"},
310                                  {{al, r13, r5, 0x0000ab00},
311                                   false,
312                                   al,
313                                   "al r13 r5 0x0000ab00",
314                                   "al_r13_r5_0x0000ab00"},
315                                  {{al, r0, r11, 0xab00ab00},
316                                   false,
317                                   al,
318                                   "al r0 r11 0xab00ab00",
319                                   "al_r0_r11_0xab00ab00"},
320                                  {{al, r14, r12, 0x00ff00ff},
321                                   false,
322                                   al,
323                                   "al r14 r12 0x00ff00ff",
324                                   "al_r14_r12_0x00ff00ff"},
325                                  {{al, r13, r8, 0x7f800000},
326                                   false,
327                                   al,
328                                   "al r13 r8 0x7f800000",
329                                   "al_r13_r8_0x7f800000"},
330                                  {{al, r1, r2, 0x15600000},
331                                   false,
332                                   al,
333                                   "al r1 r2 0x15600000",
334                                   "al_r1_r2_0x15600000"},
335                                  {{al, r7, r6, 0xab000000},
336                                   false,
337                                   al,
338                                   "al r7 r6 0xab000000",
339                                   "al_r7_r6_0xab000000"},
340                                  {{al, r1, r9, 0x00000ff0},
341                                   false,
342                                   al,
343                                   "al r1 r9 0x00000ff0",
344                                   "al_r1_r9_0x00000ff0"},
345                                  {{al, r12, r8, 0x0007f800},
346                                   false,
347                                   al,
348                                   "al r12 r8 0x0007f800",
349                                   "al_r12_r8_0x0007f800"},
350                                  {{al, r0, r8, 0x00ab0000},
351                                   false,
352                                   al,
353                                   "al r0 r8 0x00ab0000",
354                                   "al_r0_r8_0x00ab0000"},
355                                  {{al, r11, r11, 0x000000ff},
356                                   false,
357                                   al,
358                                   "al r11 r11 0x000000ff",
359                                   "al_r11_r11_0x000000ff"},
360                                  {{al, r12, r13, 0xff000000},
361                                   false,
362                                   al,
363                                   "al r12 r13 0xff000000",
364                                   "al_r12_r13_0xff000000"},
365                                  {{al, r1, r3, 0x0ab00000},
366                                   false,
367                                   al,
368                                   "al r1 r3 0x0ab00000",
369                                   "al_r1_r3_0x0ab00000"},
370                                  {{al, r2, r10, 0x0001fe00},
371                                   false,
372                                   al,
373                                   "al r2 r10 0x0001fe00",
374                                   "al_r2_r10_0x0001fe00"},
375                                  {{al, r14, r2, 0x01fe0000},
376                                   false,
377                                   al,
378                                   "al r14 r2 0x01fe0000",
379                                   "al_r14_r2_0x01fe0000"},
380                                  {{al, r3, r4, 0x000000ff},
381                                   false,
382                                   al,
383                                   "al r3 r4 0x000000ff",
384                                   "al_r3_r4_0x000000ff"},
385                                  {{al, r3, r13, 0x00000558},
386                                   false,
387                                   al,
388                                   "al r3 r13 0x00000558",
389                                   "al_r3_r13_0x00000558"},
390                                  {{al, r13, r10, 0x00055800},
391                                   false,
392                                   al,
393                                   "al r13 r10 0x00055800",
394                                   "al_r13_r10_0x00055800"},
395                                  {{al, r1, r10, 0xff000000},
396                                   false,
397                                   al,
398                                   "al r1 r10 0xff000000",
399                                   "al_r1_r10_0xff000000"},
400                                  {{al, r0, r7, 0x2ac00000},
401                                   false,
402                                   al,
403                                   "al r0 r7 0x2ac00000",
404                                   "al_r0_r7_0x2ac00000"},
405                                  {{al, r12, r1, 0xab000000},
406                                   false,
407                                   al,
408                                   "al r12 r1 0xab000000",
409                                   "al_r12_r1_0xab000000"},
410                                  {{al, r9, r14, 0x00003fc0},
411                                   false,
412                                   al,
413                                   "al r9 r14 0x00003fc0",
414                                   "al_r9_r14_0x00003fc0"},
415                                  {{al, r7, r2, 0x2ac00000},
416                                   false,
417                                   al,
418                                   "al r7 r2 0x2ac00000",
419                                   "al_r7_r2_0x2ac00000"},
420                                  {{al, r14, r4, 0x00001fe0},
421                                   false,
422                                   al,
423                                   "al r14 r4 0x00001fe0",
424                                   "al_r14_r4_0x00001fe0"},
425                                  {{al, r12, r8, 0x00007f80},
426                                   false,
427                                   al,
428                                   "al r12 r8 0x00007f80",
429                                   "al_r12_r8_0x00007f80"},
430                                  {{al, r7, r10, 0x00000ab0},
431                                   false,
432                                   al,
433                                   "al r7 r10 0x00000ab0",
434                                   "al_r7_r10_0x00000ab0"},
435                                  {{al, r13, r6, 0x00ab0000},
436                                   false,
437                                   al,
438                                   "al r13 r6 0x00ab0000",
439                                   "al_r13_r6_0x00ab0000"},
440                                  {{al, r7, r9, 0x0000ff00},
441                                   false,
442                                   al,
443                                   "al r7 r9 0x0000ff00",
444                                   "al_r7_r9_0x0000ff00"},
445                                  {{al, r2, r12, 0xff00ff00},
446                                   false,
447                                   al,
448                                   "al r2 r12 0xff00ff00",
449                                   "al_r2_r12_0xff00ff00"},
450                                  {{al, r1, r6, 0x00000156},
451                                   false,
452                                   al,
453                                   "al r1 r6 0x00000156",
454                                   "al_r1_r6_0x00000156"},
455                                  {{al, r7, r5, 0x03fc0000},
456                                   false,
457                                   al,
458                                   "al r7 r5 0x03fc0000",
459                                   "al_r7_r5_0x03fc0000"},
460                                  {{al, r2, r9, 0x01fe0000},
461                                   false,
462                                   al,
463                                   "al r2 r9 0x01fe0000",
464                                   "al_r2_r9_0x01fe0000"},
465                                  {{al, r10, r12, 0x00002ac0},
466                                   false,
467                                   al,
468                                   "al r10 r12 0x00002ac0",
469                                   "al_r10_r12_0x00002ac0"},
470                                  {{al, r14, r10, 0x7f800000},
471                                   false,
472                                   al,
473                                   "al r14 r10 0x7f800000",
474                                   "al_r14_r10_0x7f800000"},
475                                  {{al, r2, r8, 0x02ac0000},
476                                   false,
477                                   al,
478                                   "al r2 r8 0x02ac0000",
479                                   "al_r2_r8_0x02ac0000"},
480                                  {{al, r4, r9, 0x000001fe},
481                                   false,
482                                   al,
483                                   "al r4 r9 0x000001fe",
484                                   "al_r4_r9_0x000001fe"},
485                                  {{al, r10, r10, 0x000001fe},
486                                   false,
487                                   al,
488                                   "al r10 r10 0x000001fe",
489                                   "al_r10_r10_0x000001fe"},
490                                  {{al, r6, r6, 0x3fc00000},
491                                   false,
492                                   al,
493                                   "al r6 r6 0x3fc00000",
494                                   "al_r6_r6_0x3fc00000"},
495                                  {{al, r4, r12, 0x000003fc},
496                                   false,
497                                   al,
498                                   "al r4 r12 0x000003fc",
499                                   "al_r4_r12_0x000003fc"},
500                                  {{al, r0, r2, 0x0000ff00},
501                                   false,
502                                   al,
503                                   "al r0 r2 0x0000ff00",
504                                   "al_r0_r2_0x0000ff00"},
505                                  {{al, r9, r0, 0x003fc000},
506                                   false,
507                                   al,
508                                   "al r9 r0 0x003fc000",
509                                   "al_r9_r0_0x003fc000"},
510                                  {{al, r7, r4, 0x000002ac},
511                                   false,
512                                   al,
513                                   "al r7 r4 0x000002ac",
514                                   "al_r7_r4_0x000002ac"},
515                                  {{al, r6, r6, 0x7f800000},
516                                   false,
517                                   al,
518                                   "al r6 r6 0x7f800000",
519                                   "al_r6_r6_0x7f800000"},
520                                  {{al, r6, r8, 0x00015600},
521                                   false,
522                                   al,
523                                   "al r6 r8 0x00015600",
524                                   "al_r6_r8_0x00015600"},
525                                  {{al, r10, r0, 0x00000ff0},
526                                   false,
527                                   al,
528                                   "al r10 r0 0x00000ff0",
529                                   "al_r10_r0_0x00000ff0"},
530                                  {{al, r8, r1, 0xffffffff},
531                                   false,
532                                   al,
533                                   "al r8 r1 0xffffffff",
534                                   "al_r8_r1_0xffffffff"},
535                                  {{al, r3, r7, 0x00ab00ab},
536                                   false,
537                                   al,
538                                   "al r3 r7 0x00ab00ab",
539                                   "al_r3_r7_0x00ab00ab"},
540                                  {{al, r8, r11, 0x01fe0000},
541                                   false,
542                                   al,
543                                   "al r8 r11 0x01fe0000",
544                                   "al_r8_r11_0x01fe0000"},
545                                  {{al, r3, r1, 0x00ff0000},
546                                   false,
547                                   al,
548                                   "al r3 r1 0x00ff0000",
549                                   "al_r3_r1_0x00ff0000"},
550                                  {{al, r5, r4, 0x000001fe},
551                                   false,
552                                   al,
553                                   "al r5 r4 0x000001fe",
554                                   "al_r5_r4_0x000001fe"},
555                                  {{al, r7, r10, 0x00000558},
556                                   false,
557                                   al,
558                                   "al r7 r10 0x00000558",
559                                   "al_r7_r10_0x00000558"},
560                                  {{al, r8, r13, 0x00001560},
561                                   false,
562                                   al,
563                                   "al r8 r13 0x00001560",
564                                   "al_r8_r13_0x00001560"},
565                                  {{al, r9, r4, 0x00002ac0},
566                                   false,
567                                   al,
568                                   "al r9 r4 0x00002ac0",
569                                   "al_r9_r4_0x00002ac0"},
570                                  {{al, r9, r7, 0x03fc0000},
571                                   false,
572                                   al,
573                                   "al r9 r7 0x03fc0000",
574                                   "al_r9_r7_0x03fc0000"},
575                                  {{al, r11, r12, 0x2ac00000},
576                                   false,
577                                   al,
578                                   "al r11 r12 0x2ac00000",
579                                   "al_r11_r12_0x2ac00000"},
580                                  {{al, r13, r10, 0x00001fe0},
581                                   false,
582                                   al,
583                                   "al r13 r10 0x00001fe0",
584                                   "al_r13_r10_0x00001fe0"},
585                                  {{al, r11, r10, 0x00558000},
586                                   false,
587                                   al,
588                                   "al r11 r10 0x00558000",
589                                   "al_r11_r10_0x00558000"},
590                                  {{al, r3, r2, 0x000000ab},
591                                   false,
592                                   al,
593                                   "al r3 r2 0x000000ab",
594                                   "al_r3_r2_0x000000ab"},
595                                  {{al, r0, r8, 0x00000ab0},
596                                   false,
597                                   al,
598                                   "al r0 r8 0x00000ab0",
599                                   "al_r0_r8_0x00000ab0"},
600                                  {{al, r9, r7, 0xab000000},
601                                   false,
602                                   al,
603                                   "al r9 r7 0xab000000",
604                                   "al_r9_r7_0xab000000"},
605                                  {{al, r11, r7, 0x0ff00000},
606                                   false,
607                                   al,
608                                   "al r11 r7 0x0ff00000",
609                                   "al_r11_r7_0x0ff00000"},
610                                  {{al, r10, r2, 0x7f800000},
611                                   false,
612                                   al,
613                                   "al r10 r2 0x7f800000",
614                                   "al_r10_r2_0x7f800000"},
615                                  {{al, r3, r1, 0x05580000},
616                                   false,
617                                   al,
618                                   "al r3 r1 0x05580000",
619                                   "al_r3_r1_0x05580000"},
620                                  {{al, r1, r4, 0x0ab00000},
621                                   false,
622                                   al,
623                                   "al r1 r4 0x0ab00000",
624                                   "al_r1_r4_0x0ab00000"},
625                                  {{al, r4, r9, 0x00005580},
626                                   false,
627                                   al,
628                                   "al r4 r9 0x00005580",
629                                   "al_r4_r9_0x00005580"},
630                                  {{al, r3, r2, 0x001fe000},
631                                   false,
632                                   al,
633                                   "al r3 r2 0x001fe000",
634                                   "al_r3_r2_0x001fe000"},
635                                  {{al, r14, r6, 0x00000156},
636                                   false,
637                                   al,
638                                   "al r14 r6 0x00000156",
639                                   "al_r14_r6_0x00000156"},
640                                  {{al, r14, r3, 0x00000ab0},
641                                   false,
642                                   al,
643                                   "al r14 r3 0x00000ab0",
644                                   "al_r14_r3_0x00000ab0"},
645                                  {{al, r12, r13, 0x000001fe},
646                                   false,
647                                   al,
648                                   "al r12 r13 0x000001fe",
649                                   "al_r12_r13_0x000001fe"},
650                                  {{al, r12, r10, 0x1fe00000},
651                                   false,
652                                   al,
653                                   "al r12 r10 0x1fe00000",
654                                   "al_r12_r10_0x1fe00000"},
655                                  {{al, r0, r9, 0x2ac00000},
656                                   false,
657                                   al,
658                                   "al r0 r9 0x2ac00000",
659                                   "al_r0_r9_0x2ac00000"},
660                                  {{al, r11, r6, 0x00000156},
661                                   false,
662                                   al,
663                                   "al r11 r6 0x00000156",
664                                   "al_r11_r6_0x00000156"},
665                                  {{al, r2, r4, 0x3fc00000},
666                                   false,
667                                   al,
668                                   "al r2 r4 0x3fc00000",
669                                   "al_r2_r4_0x3fc00000"},
670                                  {{al, r8, r13, 0x00002ac0},
671                                   false,
672                                   al,
673                                   "al r8 r13 0x00002ac0",
674                                   "al_r8_r13_0x00002ac0"},
675                                  {{al, r1, r5, 0x00ff00ff},
676                                   false,
677                                   al,
678                                   "al r1 r5 0x00ff00ff",
679                                   "al_r1_r5_0x00ff00ff"},
680                                  {{al, r6, r1, 0x0007f800},
681                                   false,
682                                   al,
683                                   "al r6 r1 0x0007f800",
684                                   "al_r6_r1_0x0007f800"},
685                                  {{al, r5, r1, 0x00001fe0},
686                                   false,
687                                   al,
688                                   "al r5 r1 0x00001fe0",
689                                   "al_r5_r1_0x00001fe0"},
690                                  {{al, r8, r11, 0xab00ab00},
691                                   false,
692                                   al,
693                                   "al r8 r11 0xab00ab00",
694                                   "al_r8_r11_0xab00ab00"},
695                                  {{al, r5, r0, 0xff00ff00},
696                                   false,
697                                   al,
698                                   "al r5 r0 0xff00ff00",
699                                   "al_r5_r0_0xff00ff00"},
700                                  {{al, r14, r13, 0x000000ab},
701                                   false,
702                                   al,
703                                   "al r14 r13 0x000000ab",
704                                   "al_r14_r13_0x000000ab"},
705                                  {{al, r2, r4, 0x05580000},
706                                   false,
707                                   al,
708                                   "al r2 r4 0x05580000",
709                                   "al_r2_r4_0x05580000"},
710                                  {{al, r14, r10, 0x07f80000},
711                                   false,
712                                   al,
713                                   "al r14 r10 0x07f80000",
714                                   "al_r14_r10_0x07f80000"},
715                                  {{al, r10, r3, 0x55800000},
716                                   false,
717                                   al,
718                                   "al r10 r3 0x55800000",
719                                   "al_r10_r3_0x55800000"},
720                                  {{al, r0, r11, 0x7f800000},
721                                   false,
722                                   al,
723                                   "al r0 r11 0x7f800000",
724                                   "al_r0_r11_0x7f800000"},
725                                  {{al, r3, r12, 0xffffffff},
726                                   false,
727                                   al,
728                                   "al r3 r12 0xffffffff",
729                                   "al_r3_r12_0xffffffff"},
730                                  {{al, r2, r3, 0x00000558},
731                                   false,
732                                   al,
733                                   "al r2 r3 0x00000558",
734                                   "al_r2_r3_0x00000558"},
735                                  {{al, r2, r2, 0x0003fc00},
736                                   false,
737                                   al,
738                                   "al r2 r2 0x0003fc00",
739                                   "al_r2_r2_0x0003fc00"},
740                                  {{al, r14, r10, 0x15600000},
741                                   false,
742                                   al,
743                                   "al r14 r10 0x15600000",
744                                   "al_r14_r10_0x15600000"},
745                                  {{al, r3, r13, 0x00000156},
746                                   false,
747                                   al,
748                                   "al r3 r13 0x00000156",
749                                   "al_r3_r13_0x00000156"},
750                                  {{al, r10, r5, 0x1fe00000},
751                                   false,
752                                   al,
753                                   "al r10 r5 0x1fe00000",
754                                   "al_r10_r5_0x1fe00000"},
755                                  {{al, r1, r5, 0x00055800},
756                                   false,
757                                   al,
758                                   "al r1 r5 0x00055800",
759                                   "al_r1_r5_0x00055800"},
760                                  {{al, r8, r6, 0xff000000},
761                                   false,
762                                   al,
763                                   "al r8 r6 0xff000000",
764                                   "al_r8_r6_0xff000000"},
765                                  {{al, r3, r7, 0x002ac000},
766                                   false,
767                                   al,
768                                   "al r3 r7 0x002ac000",
769                                   "al_r3_r7_0x002ac000"},
770                                  {{al, r6, r4, 0x00ff00ff},
771                                   false,
772                                   al,
773                                   "al r6 r4 0x00ff00ff",
774                                   "al_r6_r4_0x00ff00ff"},
775                                  {{al, r0, r8, 0x0007f800},
776                                   false,
777                                   al,
778                                   "al r0 r8 0x0007f800",
779                                   "al_r0_r8_0x0007f800"},
780                                  {{al, r0, r3, 0xff000000},
781                                   false,
782                                   al,
783                                   "al r0 r3 0xff000000",
784                                   "al_r0_r3_0xff000000"},
785                                  {{al, r11, r1, 0xabababab},
786                                   false,
787                                   al,
788                                   "al r11 r1 0xabababab",
789                                   "al_r11_r1_0xabababab"},
790                                  {{al, r14, r10, 0x000001fe},
791                                   false,
792                                   al,
793                                   "al r14 r10 0x000001fe",
794                                   "al_r14_r10_0x000001fe"},
795                                  {{al, r4, r11, 0x002ac000},
796                                   false,
797                                   al,
798                                   "al r4 r11 0x002ac000",
799                                   "al_r4_r11_0x002ac000"},
800                                  {{al, r11, r12, 0x000000ab},
801                                   false,
802                                   al,
803                                   "al r11 r12 0x000000ab",
804                                   "al_r11_r12_0x000000ab"},
805                                  {{al, r3, r4, 0x003fc000},
806                                   false,
807                                   al,
808                                   "al r3 r4 0x003fc000",
809                                   "al_r3_r4_0x003fc000"},
810                                  {{al, r3, r13, 0x0ff00000},
811                                   false,
812                                   al,
813                                   "al r3 r13 0x0ff00000",
814                                   "al_r3_r13_0x0ff00000"},
815                                  {{al, r5, r4, 0x00001fe0},
816                                   false,
817                                   al,
818                                   "al r5 r4 0x00001fe0",
819                                   "al_r5_r4_0x00001fe0"},
820                                  {{al, r6, r12, 0x002ac000},
821                                   false,
822                                   al,
823                                   "al r6 r12 0x002ac000",
824                                   "al_r6_r12_0x002ac000"},
825                                  {{al, r13, r13, 0x1fe00000},
826                                   false,
827                                   al,
828                                   "al r13 r13 0x1fe00000",
829                                   "al_r13_r13_0x1fe00000"},
830                                  {{al, r0, r8, 0x01560000},
831                                   false,
832                                   al,
833                                   "al r0 r8 0x01560000",
834                                   "al_r0_r8_0x01560000"},
835                                  {{al, r9, r7, 0x00055800},
836                                   false,
837                                   al,
838                                   "al r9 r7 0x00055800",
839                                   "al_r9_r7_0x00055800"},
840                                  {{al, r6, r0, 0x00000156},
841                                   false,
842                                   al,
843                                   "al r6 r0 0x00000156",
844                                   "al_r6_r0_0x00000156"},
845                                  {{al, r14, r12, 0x00055800},
846                                   false,
847                                   al,
848                                   "al r14 r12 0x00055800",
849                                   "al_r14_r12_0x00055800"},
850                                  {{al, r14, r0, 0xab00ab00},
851                                   false,
852                                   al,
853                                   "al r14 r0 0xab00ab00",
854                                   "al_r14_r0_0xab00ab00"},
855                                  {{al, r14, r2, 0x00ab0000},
856                                   false,
857                                   al,
858                                   "al r14 r2 0x00ab0000",
859                                   "al_r14_r2_0x00ab0000"},
860                                  {{al, r0, r3, 0x000000ab},
861                                   false,
862                                   al,
863                                   "al r0 r3 0x000000ab",
864                                   "al_r0_r3_0x000000ab"},
865                                  {{al, r13, r4, 0x003fc000},
866                                   false,
867                                   al,
868                                   "al r13 r4 0x003fc000",
869                                   "al_r13_r4_0x003fc000"},
870                                  {{al, r4, r2, 0x00001560},
871                                   false,
872                                   al,
873                                   "al r4 r2 0x00001560",
874                                   "al_r4_r2_0x00001560"},
875                                  {{al, r14, r4, 0x2ac00000},
876                                   false,
877                                   al,
878                                   "al r14 r4 0x2ac00000",
879                                   "al_r14_r4_0x2ac00000"},
880                                  {{al, r4, r11, 0x000003fc},
881                                   false,
882                                   al,
883                                   "al r4 r11 0x000003fc",
884                                   "al_r4_r11_0x000003fc"},
885                                  {{al, r6, r8, 0x001fe000},
886                                   false,
887                                   al,
888                                   "al r6 r8 0x001fe000",
889                                   "al_r6_r8_0x001fe000"},
890                                  {{al, r12, r14, 0x00000558},
891                                   false,
892                                   al,
893                                   "al r12 r14 0x00000558",
894                                   "al_r12_r14_0x00000558"},
895                                  {{al, r0, r13, 0x0ff00000},
896                                   false,
897                                   al,
898                                   "al r0 r13 0x0ff00000",
899                                   "al_r0_r13_0x0ff00000"},
900                                  {{al, r3, r11, 0xabababab},
901                                   false,
902                                   al,
903                                   "al r3 r11 0xabababab",
904                                   "al_r3_r11_0xabababab"},
905                                  {{al, r4, r1, 0x000001fe},
906                                   false,
907                                   al,
908                                   "al r4 r1 0x000001fe",
909                                   "al_r4_r1_0x000001fe"},
910                                  {{al, r0, r5, 0x000002ac},
911                                   false,
912                                   al,
913                                   "al r0 r5 0x000002ac",
914                                   "al_r0_r5_0x000002ac"},
915                                  {{al, r8, r5, 0x0003fc00},
916                                   false,
917                                   al,
918                                   "al r8 r5 0x0003fc00",
919                                   "al_r8_r5_0x0003fc00"},
920                                  {{al, r7, r13, 0x0002ac00},
921                                   false,
922                                   al,
923                                   "al r7 r13 0x0002ac00",
924                                   "al_r7_r13_0x0002ac00"},
925                                  {{al, r10, r6, 0x00015600},
926                                   false,
927                                   al,
928                                   "al r10 r6 0x00015600",
929                                   "al_r10_r6_0x00015600"},
930                                  {{al, r12, r10, 0x00ff0000},
931                                   false,
932                                   al,
933                                   "al r12 r10 0x00ff0000",
934                                   "al_r12_r10_0x00ff0000"},
935                                  {{al, r12, r12, 0x00005580},
936                                   false,
937                                   al,
938                                   "al r12 r12 0x00005580",
939                                   "al_r12_r12_0x00005580"},
940                                  {{al, r0, r4, 0x02ac0000},
941                                   false,
942                                   al,
943                                   "al r0 r4 0x02ac0000",
944                                   "al_r0_r4_0x02ac0000"},
945                                  {{al, r9, r9, 0x02ac0000},
946                                   false,
947                                   al,
948                                   "al r9 r9 0x02ac0000",
949                                   "al_r9_r9_0x02ac0000"},
950                                  {{al, r7, r4, 0x00000558},
951                                   false,
952                                   al,
953                                   "al r7 r4 0x00000558",
954                                   "al_r7_r4_0x00000558"},
955                                  {{al, r12, r14, 0x07f80000},
956                                   false,
957                                   al,
958                                   "al r12 r14 0x07f80000",
959                                   "al_r12_r14_0x07f80000"},
960                                  {{al, r7, r2, 0xab00ab00},
961                                   false,
962                                   al,
963                                   "al r7 r2 0xab00ab00",
964                                   "al_r7_r2_0xab00ab00"},
965                                  {{al, r1, r12, 0xff000000},
966                                   false,
967                                   al,
968                                   "al r1 r12 0xff000000",
969                                   "al_r1_r12_0xff000000"},
970                                  {{al, r8, r0, 0x7f800000},
971                                   false,
972                                   al,
973                                   "al r8 r0 0x7f800000",
974                                   "al_r8_r0_0x7f800000"},
975                                  {{al, r7, r0, 0x00000ab0},
976                                   false,
977                                   al,
978                                   "al r7 r0 0x00000ab0",
979                                   "al_r7_r0_0x00000ab0"},
980                                  {{al, r1, r0, 0x00005580},
981                                   false,
982                                   al,
983                                   "al r1 r0 0x00005580",
984                                   "al_r1_r0_0x00005580"},
985                                  {{al, r14, r1, 0x001fe000},
986                                   false,
987                                   al,
988                                   "al r14 r1 0x001fe000",
989                                   "al_r14_r1_0x001fe000"},
990                                  {{al, r13, r13, 0x0002ac00},
991                                   false,
992                                   al,
993                                   "al r13 r13 0x0002ac00",
994                                   "al_r13_r13_0x0002ac00"},
995                                  {{al, r8, r12, 0x0002ac00},
996                                   false,
997                                   al,
998                                   "al r8 r12 0x0002ac00",
999                                   "al_r8_r12_0x0002ac00"},
1000                                  {{al, r10, r10, 0x00ff00ff},
1001                                   false,
1002                                   al,
1003                                   "al r10 r10 0x00ff00ff",
1004                                   "al_r10_r10_0x00ff00ff"},
1005                                  {{al, r4, r4, 0x002ac000},
1006                                   false,
1007                                   al,
1008                                   "al r4 r4 0x002ac000",
1009                                   "al_r4_r4_0x002ac000"},
1010                                  {{al, r12, r5, 0x000ab000},
1011                                   false,
1012                                   al,
1013                                   "al r12 r5 0x000ab000",
1014                                   "al_r12_r5_0x000ab000"},
1015                                  {{al, r1, r2, 0x000003fc},
1016                                   false,
1017                                   al,
1018                                   "al r1 r2 0x000003fc",
1019                                   "al_r1_r2_0x000003fc"},
1020                                  {{al, r10, r11, 0x001fe000},
1021                                   false,
1022                                   al,
1023                                   "al r10 r11 0x001fe000",
1024                                   "al_r10_r11_0x001fe000"},
1025                                  {{al, r11, r2, 0x05580000},
1026                                   false,
1027                                   al,
1028                                   "al r11 r2 0x05580000",
1029                                   "al_r11_r2_0x05580000"},
1030                                  {{al, r2, r6, 0x000000ab},
1031                                   false,
1032                                   al,
1033                                   "al r2 r6 0x000000ab",
1034                                   "al_r2_r6_0x000000ab"},
1035                                  {{al, r6, r3, 0x0000ff00},
1036                                   false,
1037                                   al,
1038                                   "al r6 r3 0x0000ff00",
1039                                   "al_r6_r3_0x0000ff00"},
1040                                  {{al, r13, r0, 0x00156000},
1041                                   false,
1042                                   al,
1043                                   "al r13 r0 0x00156000",
1044                                   "al_r13_r0_0x00156000"},
1045                                  {{al, r2, r9, 0x00002ac0},
1046                                   false,
1047                                   al,
1048                                   "al r2 r9 0x00002ac0",
1049                                   "al_r2_r9_0x00002ac0"},
1050                                  {{al, r11, r7, 0x00055800},
1051                                   false,
1052                                   al,
1053                                   "al r11 r7 0x00055800",
1054                                   "al_r11_r7_0x00055800"},
1055                                  {{al, r10, r9, 0x00001fe0},
1056                                   false,
1057                                   al,
1058                                   "al r10 r9 0x00001fe0",
1059                                   "al_r10_r9_0x00001fe0"},
1060                                  {{al, r10, r11, 0x00156000},
1061                                   false,
1062                                   al,
1063                                   "al r10 r11 0x00156000",
1064                                   "al_r10_r11_0x00156000"},
1065                                  {{al, r12, r10, 0xff00ff00},
1066                                   false,
1067                                   al,
1068                                   "al r12 r10 0xff00ff00",
1069                                   "al_r12_r10_0xff00ff00"},
1070                                  {{al, r7, r14, 0x00ab00ab},
1071                                   false,
1072                                   al,
1073                                   "al r7 r14 0x00ab00ab",
1074                                   "al_r7_r14_0x00ab00ab"},
1075                                  {{al, r14, r7, 0x002ac000},
1076                                   false,
1077                                   al,
1078                                   "al r14 r7 0x002ac000",
1079                                   "al_r14_r7_0x002ac000"},
1080                                  {{al, r5, r6, 0x000ff000},
1081                                   false,
1082                                   al,
1083                                   "al r5 r6 0x000ff000",
1084                                   "al_r5_r6_0x000ff000"},
1085                                  {{al, r8, r1, 0xff000000},
1086                                   false,
1087                                   al,
1088                                   "al r8 r1 0xff000000",
1089                                   "al_r8_r1_0xff000000"},
1090                                  {{al, r8, r0, 0x000002ac},
1091                                   false,
1092                                   al,
1093                                   "al r8 r0 0x000002ac",
1094                                   "al_r8_r0_0x000002ac"},
1095                                  {{al, r12, r6, 0x00002ac0},
1096                                   false,
1097                                   al,
1098                                   "al r12 r6 0x00002ac0",
1099                                   "al_r12_r6_0x00002ac0"},
1100                                  {{al, r14, r2, 0x3fc00000},
1101                                   false,
1102                                   al,
1103                                   "al r14 r2 0x3fc00000",
1104                                   "al_r14_r2_0x3fc00000"},
1105                                  {{al, r3, r3, 0x01560000},
1106                                   false,
1107                                   al,
1108                                   "al r3 r3 0x01560000",
1109                                   "al_r3_r3_0x01560000"},
1110                                  {{al, r3, r12, 0x0001fe00},
1111                                   false,
1112                                   al,
1113                                   "al r3 r12 0x0001fe00",
1114                                   "al_r3_r12_0x0001fe00"},
1115                                  {{al, r8, r10, 0x000002ac},
1116                                   false,
1117                                   al,
1118                                   "al r8 r10 0x000002ac",
1119                                   "al_r8_r10_0x000002ac"},
1120                                  {{al, r9, r9, 0x002ac000},
1121                                   false,
1122                                   al,
1123                                   "al r9 r9 0x002ac000",
1124                                   "al_r9_r9_0x002ac000"},
1125                                  {{al, r0, r6, 0x00156000},
1126                                   false,
1127                                   al,
1128                                   "al r0 r6 0x00156000",
1129                                   "al_r0_r6_0x00156000"},
1130                                  {{al, r14, r7, 0x0ff00000},
1131                                   false,
1132                                   al,
1133                                   "al r14 r7 0x0ff00000",
1134                                   "al_r14_r7_0x0ff00000"},
1135                                  {{al, r1, r3, 0x00005580},
1136                                   false,
1137                                   al,
1138                                   "al r1 r3 0x00005580",
1139                                   "al_r1_r3_0x00005580"},
1140                                  {{al, r14, r7, 0x000001fe},
1141                                   false,
1142                                   al,
1143                                   "al r14 r7 0x000001fe",
1144                                   "al_r14_r7_0x000001fe"},
1145                                  {{al, r9, r5, 0x03fc0000},
1146                                   false,
1147                                   al,
1148                                   "al r9 r5 0x03fc0000",
1149                                   "al_r9_r5_0x03fc0000"},
1150                                  {{al, r7, r14, 0x002ac000},
1151                                   false,
1152                                   al,
1153                                   "al r7 r14 0x002ac000",
1154                                   "al_r7_r14_0x002ac000"},
1155                                  {{al, r8, r9, 0x00000558},
1156                                   false,
1157                                   al,
1158                                   "al r8 r9 0x00000558",
1159                                   "al_r8_r9_0x00000558"},
1160                                  {{al, r14, r1, 0x007f8000},
1161                                   false,
1162                                   al,
1163                                   "al r14 r1 0x007f8000",
1164                                   "al_r14_r1_0x007f8000"},
1165                                  {{al, r11, r0, 0xab00ab00},
1166                                   false,
1167                                   al,
1168                                   "al r11 r0 0xab00ab00",
1169                                   "al_r11_r0_0xab00ab00"},
1170                                  {{al, r11, r8, 0x00000156},
1171                                   false,
1172                                   al,
1173                                   "al r11 r8 0x00000156",
1174                                   "al_r11_r8_0x00000156"},
1175                                  {{al, r4, r10, 0x00055800},
1176                                   false,
1177                                   al,
1178                                   "al r4 r10 0x00055800",
1179                                   "al_r4_r10_0x00055800"},
1180                                  {{al, r2, r7, 0x00007f80},
1181                                   false,
1182                                   al,
1183                                   "al r2 r7 0x00007f80",
1184                                   "al_r2_r7_0x00007f80"},
1185                                  {{al, r0, r6, 0x00558000},
1186                                   false,
1187                                   al,
1188                                   "al r0 r6 0x00558000",
1189                                   "al_r0_r6_0x00558000"},
1190                                  {{al, r4, r2, 0x00558000},
1191                                   false,
1192                                   al,
1193                                   "al r4 r2 0x00558000",
1194                                   "al_r4_r2_0x00558000"},
1195                                  {{al, r2, r3, 0x0007f800},
1196                                   false,
1197                                   al,
1198                                   "al r2 r3 0x0007f800",
1199                                   "al_r2_r3_0x0007f800"},
1200                                  {{al, r14, r14, 0xab00ab00},
1201                                   false,
1202                                   al,
1203                                   "al r14 r14 0xab00ab00",
1204                                   "al_r14_r14_0xab00ab00"},
1205                                  {{al, r0, r13, 0x000000ff},
1206                                   false,
1207                                   al,
1208                                   "al r0 r13 0x000000ff",
1209                                   "al_r0_r13_0x000000ff"},
1210                                  {{al, r10, r9, 0xab00ab00},
1211                                   false,
1212                                   al,
1213                                   "al r10 r9 0xab00ab00",
1214                                   "al_r10_r9_0xab00ab00"},
1215                                  {{al, r1, r1, 0x3fc00000},
1216                                   false,
1217                                   al,
1218                                   "al r1 r1 0x3fc00000",
1219                                   "al_r1_r1_0x3fc00000"},
1220                                  {{al, r8, r6, 0x002ac000},
1221                                   false,
1222                                   al,
1223                                   "al r8 r6 0x002ac000",
1224                                   "al_r8_r6_0x002ac000"},
1225                                  {{al, r12, r4, 0x55800000},
1226                                   false,
1227                                   al,
1228                                   "al r12 r4 0x55800000",
1229                                   "al_r12_r4_0x55800000"},
1230                                  {{al, r6, r10, 0x2ac00000},
1231                                   false,
1232                                   al,
1233                                   "al r6 r10 0x2ac00000",
1234                                   "al_r6_r10_0x2ac00000"},
1235                                  {{al, r7, r9, 0x001fe000},
1236                                   false,
1237                                   al,
1238                                   "al r7 r9 0x001fe000",
1239                                   "al_r7_r9_0x001fe000"},
1240                                  {{al, r4, r12, 0x00005580},
1241                                   false,
1242                                   al,
1243                                   "al r4 r12 0x00005580",
1244                                   "al_r4_r12_0x00005580"},
1245                                  {{al, r9, r8, 0x0ab00000},
1246                                   false,
1247                                   al,
1248                                   "al r9 r8 0x0ab00000",
1249                                   "al_r9_r8_0x0ab00000"},
1250                                  {{al, r2, r4, 0xff00ff00},
1251                                   false,
1252                                   al,
1253                                   "al r2 r4 0xff00ff00",
1254                                   "al_r2_r4_0xff00ff00"},
1255                                  {{al, r8, r14, 0x00001fe0},
1256                                   false,
1257                                   al,
1258                                   "al r8 r14 0x00001fe0",
1259                                   "al_r8_r14_0x00001fe0"},
1260                                  {{al, r5, r3, 0x003fc000},
1261                                   false,
1262                                   al,
1263                                   "al r5 r3 0x003fc000",
1264                                   "al_r5_r3_0x003fc000"},
1265                                  {{al, r2, r10, 0x00ff00ff},
1266                                   false,
1267                                   al,
1268                                   "al r2 r10 0x00ff00ff",
1269                                   "al_r2_r10_0x00ff00ff"},
1270                                  {{al, r11, r12, 0x15600000},
1271                                   false,
1272                                   al,
1273                                   "al r11 r12 0x15600000",
1274                                   "al_r11_r12_0x15600000"},
1275                                  {{al, r1, r5, 0x00002ac0},
1276                                   false,
1277                                   al,
1278                                   "al r1 r5 0x00002ac0",
1279                                   "al_r1_r5_0x00002ac0"},
1280                                  {{al, r3, r7, 0x2ac00000},
1281                                   false,
1282                                   al,
1283                                   "al r3 r7 0x2ac00000",
1284                                   "al_r3_r7_0x2ac00000"},
1285                                  {{al, r5, r1, 0xffffffff},
1286                                   false,
1287                                   al,
1288                                   "al r5 r1 0xffffffff",
1289                                   "al_r5_r1_0xffffffff"},
1290                                  {{al, r4, r10, 0xff00ff00},
1291                                   false,
1292                                   al,
1293                                   "al r4 r10 0xff00ff00",
1294                                   "al_r4_r10_0xff00ff00"},
1295                                  {{al, r1, r2, 0x00001fe0},
1296                                   false,
1297                                   al,
1298                                   "al r1 r2 0x00001fe0",
1299                                   "al_r1_r2_0x00001fe0"},
1300                                  {{al, r5, r14, 0x000000ff},
1301                                   false,
1302                                   al,
1303                                   "al r5 r14 0x000000ff",
1304                                   "al_r5_r14_0x000000ff"},
1305                                  {{al, r14, r0, 0x000ab000},
1306                                   false,
1307                                   al,
1308                                   "al r14 r0 0x000ab000",
1309                                   "al_r14_r0_0x000ab000"},
1310                                  {{al, r10, r3, 0x00ab0000},
1311                                   false,
1312                                   al,
1313                                   "al r10 r3 0x00ab0000",
1314                                   "al_r10_r3_0x00ab0000"},
1315                                  {{al, r10, r12, 0x03fc0000},
1316                                   false,
1317                                   al,
1318                                   "al r10 r12 0x03fc0000",
1319                                   "al_r10_r12_0x03fc0000"},
1320                                  {{al, r8, r11, 0x0007f800},
1321                                   false,
1322                                   al,
1323                                   "al r8 r11 0x0007f800",
1324                                   "al_r8_r11_0x0007f800"},
1325                                  {{al, r9, r13, 0x0001fe00},
1326                                   false,
1327                                   al,
1328                                   "al r9 r13 0x0001fe00",
1329                                   "al_r9_r13_0x0001fe00"},
1330                                  {{al, r12, r13, 0x02ac0000},
1331                                   false,
1332                                   al,
1333                                   "al r12 r13 0x02ac0000",
1334                                   "al_r12_r13_0x02ac0000"},
1335                                  {{al, r3, r9, 0x00ab00ab},
1336                                   false,
1337                                   al,
1338                                   "al r3 r9 0x00ab00ab",
1339                                   "al_r3_r9_0x00ab00ab"},
1340                                  {{al, r10, r1, 0x3fc00000},
1341                                   false,
1342                                   al,
1343                                   "al r10 r1 0x3fc00000",
1344                                   "al_r10_r1_0x3fc00000"},
1345                                  {{al, r6, r8, 0x00000558},
1346                                   false,
1347                                   al,
1348                                   "al r6 r8 0x00000558",
1349                                   "al_r6_r8_0x00000558"},
1350                                  {{al, r6, r12, 0x0000ab00},
1351                                   false,
1352                                   al,
1353                                   "al r6 r12 0x0000ab00",
1354                                   "al_r6_r12_0x0000ab00"},
1355                                  {{al, r14, r13, 0x000ab000},
1356                                   false,
1357                                   al,
1358                                   "al r14 r13 0x000ab000",
1359                                   "al_r14_r13_0x000ab000"},
1360                                  {{al, r1, r5, 0x1fe00000},
1361                                   false,
1362                                   al,
1363                                   "al r1 r5 0x1fe00000",
1364                                   "al_r1_r5_0x1fe00000"},
1365                                  {{al, r11, r3, 0x02ac0000},
1366                                   false,
1367                                   al,
1368                                   "al r11 r3 0x02ac0000",
1369                                   "al_r11_r3_0x02ac0000"},
1370                                  {{al, r9, r5, 0x55800000},
1371                                   false,
1372                                   al,
1373                                   "al r9 r5 0x55800000",
1374                                   "al_r9_r5_0x55800000"},
1375                                  {{al, r5, r5, 0x000ab000},
1376                                   false,
1377                                   al,
1378                                   "al r5 r5 0x000ab000",
1379                                   "al_r5_r5_0x000ab000"},
1380                                  {{al, r0, r12, 0x003fc000},
1381                                   false,
1382                                   al,
1383                                   "al r0 r12 0x003fc000",
1384                                   "al_r0_r12_0x003fc000"},
1385                                  {{al, r10, r4, 0x0000ab00},
1386                                   false,
1387                                   al,
1388                                   "al r10 r4 0x0000ab00",
1389                                   "al_r10_r4_0x0000ab00"},
1390                                  {{al, r3, r2, 0x0000ff00},
1391                                   false,
1392                                   al,
1393                                   "al r3 r2 0x0000ff00",
1394                                   "al_r3_r2_0x0000ff00"},
1395                                  {{al, r14, r8, 0x3fc00000},
1396                                   false,
1397                                   al,
1398                                   "al r14 r8 0x3fc00000",
1399                                   "al_r14_r8_0x3fc00000"},
1400                                  {{al, r10, r13, 0x05580000},
1401                                   false,
1402                                   al,
1403                                   "al r10 r13 0x05580000",
1404                                   "al_r10_r13_0x05580000"},
1405                                  {{al, r4, r13, 0x00156000},
1406                                   false,
1407                                   al,
1408                                   "al r4 r13 0x00156000",
1409                                   "al_r4_r13_0x00156000"},
1410                                  {{al, r7, r2, 0x000002ac},
1411                                   false,
1412                                   al,
1413                                   "al r7 r2 0x000002ac",
1414                                   "al_r7_r2_0x000002ac"},
1415                                  {{al, r5, r10, 0x000002ac},
1416                                   false,
1417                                   al,
1418                                   "al r5 r10 0x000002ac",
1419                                   "al_r5_r10_0x000002ac"},
1420                                  {{al, r7, r0, 0xab000000},
1421                                   false,
1422                                   al,
1423                                   "al r7 r0 0xab000000",
1424                                   "al_r7_r0_0xab000000"},
1425                                  {{al, r1, r10, 0x000002ac},
1426                                   false,
1427                                   al,
1428                                   "al r1 r10 0x000002ac",
1429                                   "al_r1_r10_0x000002ac"},
1430                                  {{al, r11, r9, 0x00002ac0},
1431                                   false,
1432                                   al,
1433                                   "al r11 r9 0x00002ac0",
1434                                   "al_r11_r9_0x00002ac0"},
1435                                  {{al, r4, r0, 0x000001fe},
1436                                   false,
1437                                   al,
1438                                   "al r4 r0 0x000001fe",
1439                                   "al_r4_r0_0x000001fe"},
1440                                  {{al, r11, r9, 0x0003fc00},
1441                                   false,
1442                                   al,
1443                                   "al r11 r9 0x0003fc00",
1444                                   "al_r11_r9_0x0003fc00"},
1445                                  {{al, r8, r3, 0x00005580},
1446                                   false,
1447                                   al,
1448                                   "al r8 r3 0x00005580",
1449                                   "al_r8_r3_0x00005580"},
1450                                  {{al, r4, r4, 0xffffffff},
1451                                   false,
1452                                   al,
1453                                   "al r4 r4 0xffffffff",
1454                                   "al_r4_r4_0xffffffff"},
1455                                  {{al, r1, r9, 0x00000558},
1456                                   false,
1457                                   al,
1458                                   "al r1 r9 0x00000558",
1459                                   "al_r1_r9_0x00000558"},
1460                                  {{al, r9, r2, 0x00ab0000},
1461                                   false,
1462                                   al,
1463                                   "al r9 r2 0x00ab0000",
1464                                   "al_r9_r2_0x00ab0000"},
1465                                  {{al, r11, r6, 0x00003fc0},
1466                                   false,
1467                                   al,
1468                                   "al r11 r6 0x00003fc0",
1469                                   "al_r11_r6_0x00003fc0"},
1470                                  {{al, r11, r11, 0x01fe0000},
1471                                   false,
1472                                   al,
1473                                   "al r11 r11 0x01fe0000",
1474                                   "al_r11_r11_0x01fe0000"},
1475                                  {{al, r6, r10, 0x0001fe00},
1476                                   false,
1477                                   al,
1478                                   "al r6 r10 0x0001fe00",
1479                                   "al_r6_r10_0x0001fe00"},
1480                                  {{al, r8, r3, 0x00000156},
1481                                   false,
1482                                   al,
1483                                   "al r8 r3 0x00000156",
1484                                   "al_r8_r3_0x00000156"},
1485                                  {{al, r12, r12, 0x0002ac00},
1486                                   false,
1487                                   al,
1488                                   "al r12 r12 0x0002ac00",
1489                                   "al_r12_r12_0x0002ac00"},
1490                                  {{al, r8, r6, 0x7f800000},
1491                                   false,
1492                                   al,
1493                                   "al r8 r6 0x7f800000",
1494                                   "al_r8_r6_0x7f800000"},
1495                                  {{al, r5, r13, 0x000002ac},
1496                                   false,
1497                                   al,
1498                                   "al r5 r13 0x000002ac",
1499                                   "al_r5_r13_0x000002ac"},
1500                                  {{al, r5, r13, 0x15600000},
1501                                   false,
1502                                   al,
1503                                   "al r5 r13 0x15600000",
1504                                   "al_r5_r13_0x15600000"},
1505                                  {{al, r8, r8, 0x000000ab},
1506                                   false,
1507                                   al,
1508                                   "al r8 r8 0x000000ab",
1509                                   "al_r8_r8_0x000000ab"},
1510                                  {{al, r12, r14, 0x00156000},
1511                                   false,
1512                                   al,
1513                                   "al r12 r14 0x00156000",
1514                                   "al_r12_r14_0x00156000"},
1515                                  {{al, r1, r7, 0x003fc000},
1516                                   false,
1517                                   al,
1518                                   "al r1 r7 0x003fc000",
1519                                   "al_r1_r7_0x003fc000"},
1520                                  {{al, r8, r0, 0x00003fc0},
1521                                   false,
1522                                   al,
1523                                   "al r8 r0 0x00003fc0",
1524                                   "al_r8_r0_0x00003fc0"},
1525                                  {{al, r14, r11, 0x0007f800},
1526                                   false,
1527                                   al,
1528                                   "al r14 r11 0x0007f800",
1529                                   "al_r14_r11_0x0007f800"},
1530                                  {{al, r3, r8, 0x00ab00ab},
1531                                   false,
1532                                   al,
1533                                   "al r3 r8 0x00ab00ab",
1534                                   "al_r3_r8_0x00ab00ab"},
1535                                  {{al, r14, r8, 0x55800000},
1536                                   false,
1537                                   al,
1538                                   "al r14 r8 0x55800000",
1539                                   "al_r14_r8_0x55800000"},
1540                                  {{al, r7, r8, 0x000ff000},
1541                                   false,
1542                                   al,
1543                                   "al r7 r8 0x000ff000",
1544                                   "al_r7_r8_0x000ff000"},
1545                                  {{al, r4, r11, 0x01fe0000},
1546                                   false,
1547                                   al,
1548                                   "al r4 r11 0x01fe0000",
1549                                   "al_r4_r11_0x01fe0000"},
1550                                  {{al, r2, r4, 0x01560000},
1551                                   false,
1552                                   al,
1553                                   "al r2 r4 0x01560000",
1554                                   "al_r2_r4_0x01560000"},
1555                                  {{al, r4, r3, 0xffffffff},
1556                                   false,
1557                                   al,
1558                                   "al r4 r3 0xffffffff",
1559                                   "al_r4_r3_0xffffffff"},
1560                                  {{al, r7, r8, 0xab000000},
1561                                   false,
1562                                   al,
1563                                   "al r7 r8 0xab000000",
1564                                   "al_r7_r8_0xab000000"},
1565                                  {{al, r0, r13, 0x00000ab0},
1566                                   false,
1567                                   al,
1568                                   "al r0 r13 0x00000ab0",
1569                                   "al_r0_r13_0x00000ab0"},
1570                                  {{al, r1, r2, 0x000001fe},
1571                                   false,
1572                                   al,
1573                                   "al r1 r2 0x000001fe",
1574                                   "al_r1_r2_0x000001fe"},
1575                                  {{al, r8, r14, 0x02ac0000},
1576                                   false,
1577                                   al,
1578                                   "al r8 r14 0x02ac0000",
1579                                   "al_r8_r14_0x02ac0000"},
1580                                  {{al, r4, r5, 0x00558000},
1581                                   false,
1582                                   al,
1583                                   "al r4 r5 0x00558000",
1584                                   "al_r4_r5_0x00558000"},
1585                                  {{al, r6, r7, 0xff00ff00},
1586                                   false,
1587                                   al,
1588                                   "al r6 r7 0xff00ff00",
1589                                   "al_r6_r7_0xff00ff00"},
1590                                  {{al, r8, r12, 0x001fe000},
1591                                   false,
1592                                   al,
1593                                   "al r8 r12 0x001fe000",
1594                                   "al_r8_r12_0x001fe000"},
1595                                  {{al, r6, r4, 0x07f80000},
1596                                   false,
1597                                   al,
1598                                   "al r6 r4 0x07f80000",
1599                                   "al_r6_r4_0x07f80000"},
1600                                  {{al, r4, r0, 0x00001fe0},
1601                                   false,
1602                                   al,
1603                                   "al r4 r0 0x00001fe0",
1604                                   "al_r4_r0_0x00001fe0"},
1605                                  {{al, r14, r3, 0xff00ff00},
1606                                   false,
1607                                   al,
1608                                   "al r14 r3 0xff00ff00",
1609                                   "al_r14_r3_0xff00ff00"},
1610                                  {{al, r0, r6, 0xab000000},
1611                                   false,
1612                                   al,
1613                                   "al r0 r6 0xab000000",
1614                                   "al_r0_r6_0xab000000"},
1615                                  {{al, r12, r13, 0x00000ab0},
1616                                   false,
1617                                   al,
1618                                   "al r12 r13 0x00000ab0",
1619                                   "al_r12_r13_0x00000ab0"},
1620                                  {{al, r12, r8, 0x00000558},
1621                                   false,
1622                                   al,
1623                                   "al r12 r8 0x00000558",
1624                                   "al_r12_r8_0x00000558"},
1625                                  {{al, r3, r12, 0x0003fc00},
1626                                   false,
1627                                   al,
1628                                   "al r3 r12 0x0003fc00",
1629                                   "al_r3_r12_0x0003fc00"},
1630                                  {{al, r2, r11, 0x7f800000},
1631                                   false,
1632                                   al,
1633                                   "al r2 r11 0x7f800000",
1634                                   "al_r2_r11_0x7f800000"},
1635                                  {{al, r10, r4, 0x15600000},
1636                                   false,
1637                                   al,
1638                                   "al r10 r4 0x15600000",
1639                                   "al_r10_r4_0x15600000"},
1640                                  {{al, r8, r7, 0x0ab00000},
1641                                   false,
1642                                   al,
1643                                   "al r8 r7 0x0ab00000",
1644                                   "al_r8_r7_0x0ab00000"},
1645                                  {{al, r10, r6, 0x000000ff},
1646                                   false,
1647                                   al,
1648                                   "al r10 r6 0x000000ff",
1649                                   "al_r10_r6_0x000000ff"},
1650                                  {{al, r3, r4, 0xff00ff00},
1651                                   false,
1652                                   al,
1653                                   "al r3 r4 0xff00ff00",
1654                                   "al_r3_r4_0xff00ff00"},
1655                                  {{al, r14, r10, 0x00ab0000},
1656                                   false,
1657                                   al,
1658                                   "al r14 r10 0x00ab0000",
1659                                   "al_r14_r10_0x00ab0000"},
1660                                  {{al, r8, r3, 0x0002ac00},
1661                                   false,
1662                                   al,
1663                                   "al r8 r3 0x0002ac00",
1664                                   "al_r8_r3_0x0002ac00"},
1665                                  {{al, r8, r8, 0x00000558},
1666                                   false,
1667                                   al,
1668                                   "al r8 r8 0x00000558",
1669                                   "al_r8_r8_0x00000558"},
1670                                  {{al, r12, r4, 0x00015600},
1671                                   false,
1672                                   al,
1673                                   "al r12 r4 0x00015600",
1674                                   "al_r12_r4_0x00015600"},
1675                                  {{al, r8, r1, 0x002ac000},
1676                                   false,
1677                                   al,
1678                                   "al r8 r1 0x002ac000",
1679                                   "al_r8_r1_0x002ac000"},
1680                                  {{al, r8, r5, 0x000000ab},
1681                                   false,
1682                                   al,
1683                                   "al r8 r5 0x000000ab",
1684                                   "al_r8_r5_0x000000ab"},
1685                                  {{al, r6, r6, 0x000000ab},
1686                                   false,
1687                                   al,
1688                                   "al r6 r6 0x000000ab",
1689                                   "al_r6_r6_0x000000ab"},
1690                                  {{al, r5, r7, 0x00002ac0},
1691                                   false,
1692                                   al,
1693                                   "al r5 r7 0x00002ac0",
1694                                   "al_r5_r7_0x00002ac0"},
1695                                  {{al, r11, r4, 0x00000ff0},
1696                                   false,
1697                                   al,
1698                                   "al r11 r4 0x00000ff0",
1699                                   "al_r11_r4_0x00000ff0"},
1700                                  {{al, r9, r9, 0x00000ff0},
1701                                   false,
1702                                   al,
1703                                   "al r9 r9 0x00000ff0",
1704                                   "al_r9_r9_0x00000ff0"},
1705                                  {{al, r0, r8, 0x00ff0000},
1706                                   false,
1707                                   al,
1708                                   "al r0 r8 0x00ff0000",
1709                                   "al_r0_r8_0x00ff0000"},
1710                                  {{al, r9, r11, 0x000000ab},
1711                                   false,
1712                                   al,
1713                                   "al r9 r11 0x000000ab",
1714                                   "al_r9_r11_0x000000ab"},
1715                                  {{al, r7, r5, 0x000000ff},
1716                                   false,
1717                                   al,
1718                                   "al r7 r5 0x000000ff",
1719                                   "al_r7_r5_0x000000ff"},
1720                                  {{al, r14, r0, 0x15600000},
1721                                   false,
1722                                   al,
1723                                   "al r14 r0 0x15600000",
1724                                   "al_r14_r0_0x15600000"},
1725                                  {{al, r10, r9, 0x00000156},
1726                                   false,
1727                                   al,
1728                                   "al r10 r9 0x00000156",
1729                                   "al_r10_r9_0x00000156"},
1730                                  {{al, r3, r7, 0x00ff0000},
1731                                   false,
1732                                   al,
1733                                   "al r3 r7 0x00ff0000",
1734                                   "al_r3_r7_0x00ff0000"},
1735                                  {{al, r6, r11, 0xab00ab00},
1736                                   false,
1737                                   al,
1738                                   "al r6 r11 0xab00ab00",
1739                                   "al_r6_r11_0xab00ab00"},
1740                                  {{al, r5, r2, 0x002ac000},
1741                                   false,
1742                                   al,
1743                                   "al r5 r2 0x002ac000",
1744                                   "al_r5_r2_0x002ac000"},
1745                                  {{al, r9, r14, 0x55800000},
1746                                   false,
1747                                   al,
1748                                   "al r9 r14 0x55800000",
1749                                   "al_r9_r14_0x55800000"},
1750                                  {{al, r10, r13, 0x15600000},
1751                                   false,
1752                                   al,
1753                                   "al r10 r13 0x15600000",
1754                                   "al_r10_r13_0x15600000"},
1755                                  {{al, r13, r7, 0x0ff00000},
1756                                   false,
1757                                   al,
1758                                   "al r13 r7 0x0ff00000",
1759                                   "al_r13_r7_0x0ff00000"},
1760                                  {{al, r12, r5, 0xffffffff},
1761                                   false,
1762                                   al,
1763                                   "al r12 r5 0xffffffff",
1764                                   "al_r12_r5_0xffffffff"},
1765                                  {{al, r8, r10, 0x00000156},
1766                                   false,
1767                                   al,
1768                                   "al r8 r10 0x00000156",
1769                                   "al_r8_r10_0x00000156"},
1770                                  {{al, r7, r6, 0x00005580},
1771                                   false,
1772                                   al,
1773                                   "al r7 r6 0x00005580",
1774                                   "al_r7_r6_0x00005580"},
1775                                  {{al, r6, r6, 0x0ab00000},
1776                                   false,
1777                                   al,
1778                                   "al r6 r6 0x0ab00000",
1779                                   "al_r6_r6_0x0ab00000"},
1780                                  {{al, r3, r7, 0x01fe0000},
1781                                   false,
1782                                   al,
1783                                   "al r3 r7 0x01fe0000",
1784                                   "al_r3_r7_0x01fe0000"},
1785                                  {{al, r14, r9, 0x00558000},
1786                                   false,
1787                                   al,
1788                                   "al r14 r9 0x00558000",
1789                                   "al_r14_r9_0x00558000"},
1790                                  {{al, r3, r13, 0x000007f8},
1791                                   false,
1792                                   al,
1793                                   "al r3 r13 0x000007f8",
1794                                   "al_r3_r13_0x000007f8"},
1795                                  {{al, r10, r2, 0x00055800},
1796                                   false,
1797                                   al,
1798                                   "al r10 r2 0x00055800",
1799                                   "al_r10_r2_0x00055800"},
1800                                  {{al, r5, r14, 0x00005580},
1801                                   false,
1802                                   al,
1803                                   "al r5 r14 0x00005580",
1804                                   "al_r5_r14_0x00005580"},
1805                                  {{al, r9, r12, 0xab000000},
1806                                   false,
1807                                   al,
1808                                   "al r9 r12 0xab000000",
1809                                   "al_r9_r12_0xab000000"},
1810                                  {{al, r2, r14, 0x00000156},
1811                                   false,
1812                                   al,
1813                                   "al r2 r14 0x00000156",
1814                                   "al_r2_r14_0x00000156"},
1815                                  {{al, r6, r10, 0x000ff000},
1816                                   false,
1817                                   al,
1818                                   "al r6 r10 0x000ff000",
1819                                   "al_r6_r10_0x000ff000"},
1820                                  {{al, r6, r7, 0x000007f8},
1821                                   false,
1822                                   al,
1823                                   "al r6 r7 0x000007f8",
1824                                   "al_r6_r7_0x000007f8"},
1825                                  {{al, r8, r3, 0x7f800000},
1826                                   false,
1827                                   al,
1828                                   "al r8 r3 0x7f800000",
1829                                   "al_r8_r3_0x7f800000"},
1830                                  {{al, r0, r12, 0x15600000},
1831                                   false,
1832                                   al,
1833                                   "al r0 r12 0x15600000",
1834                                   "al_r0_r12_0x15600000"},
1835                                  {{al, r1, r6, 0x00558000},
1836                                   false,
1837                                   al,
1838                                   "al r1 r6 0x00558000",
1839                                   "al_r1_r6_0x00558000"},
1840                                  {{al, r3, r8, 0x55800000},
1841                                   false,
1842                                   al,
1843                                   "al r3 r8 0x55800000",
1844                                   "al_r3_r8_0x55800000"},
1845                                  {{al, r1, r14, 0x000003fc},
1846                                   false,
1847                                   al,
1848                                   "al r1 r14 0x000003fc",
1849                                   "al_r1_r14_0x000003fc"},
1850                                  {{al, r0, r2, 0x0ab00000},
1851                                   false,
1852                                   al,
1853                                   "al r0 r2 0x0ab00000",
1854                                   "al_r0_r2_0x0ab00000"},
1855                                  {{al, r10, r12, 0x00000156},
1856                                   false,
1857                                   al,
1858                                   "al r10 r12 0x00000156",
1859                                   "al_r10_r12_0x00000156"},
1860                                  {{al, r12, r14, 0x03fc0000},
1861                                   false,
1862                                   al,
1863                                   "al r12 r14 0x03fc0000",
1864                                   "al_r12_r14_0x03fc0000"},
1865                                  {{al, r2, r5, 0x0001fe00},
1866                                   false,
1867                                   al,
1868                                   "al r2 r5 0x0001fe00",
1869                                   "al_r2_r5_0x0001fe00"},
1870                                  {{al, r5, r11, 0x000ab000},
1871                                   false,
1872                                   al,
1873                                   "al r5 r11 0x000ab000",
1874                                   "al_r5_r11_0x000ab000"},
1875                                  {{al, r14, r14, 0x0001fe00},
1876                                   false,
1877                                   al,
1878                                   "al r14 r14 0x0001fe00",
1879                                   "al_r14_r14_0x0001fe00"},
1880                                  {{al, r13, r2, 0x00003fc0},
1881                                   false,
1882                                   al,
1883                                   "al r13 r2 0x00003fc0",
1884                                   "al_r13_r2_0x00003fc0"},
1885                                  {{al, r0, r8, 0xab000000},
1886                                   false,
1887                                   al,
1888                                   "al r0 r8 0xab000000",
1889                                   "al_r0_r8_0xab000000"},
1890                                  {{al, r12, r0, 0x000000ab},
1891                                   false,
1892                                   al,
1893                                   "al r12 r0 0x000000ab",
1894                                   "al_r12_r0_0x000000ab"},
1895                                  {{al, r11, r10, 0x002ac000},
1896                                   false,
1897                                   al,
1898                                   "al r11 r10 0x002ac000",
1899                                   "al_r11_r10_0x002ac000"},
1900                                  {{al, r12, r11, 0x00ab0000},
1901                                   false,
1902                                   al,
1903                                   "al r12 r11 0x00ab0000",
1904                                   "al_r12_r11_0x00ab0000"},
1905                                  {{al, r2, r9, 0x0ff00000},
1906                                   false,
1907                                   al,
1908                                   "al r2 r9 0x0ff00000",
1909                                   "al_r2_r9_0x0ff00000"},
1910                                  {{al, r7, r4, 0x000001fe},
1911                                   false,
1912                                   al,
1913                                   "al r7 r4 0x000001fe",
1914                                   "al_r7_r4_0x000001fe"},
1915                                  {{al, r7, r6, 0x0000ff00},
1916                                   false,
1917                                   al,
1918                                   "al r7 r6 0x0000ff00",
1919                                   "al_r7_r6_0x0000ff00"},
1920                                  {{al, r11, r14, 0x05580000},
1921                                   false,
1922                                   al,
1923                                   "al r11 r14 0x05580000",
1924                                   "al_r11_r14_0x05580000"},
1925                                  {{al, r6, r10, 0x00000558},
1926                                   false,
1927                                   al,
1928                                   "al r6 r10 0x00000558",
1929                                   "al_r6_r10_0x00000558"},
1930                                  {{al, r11, r6, 0x0001fe00},
1931                                   false,
1932                                   al,
1933                                   "al r11 r6 0x0001fe00",
1934                                   "al_r11_r6_0x0001fe00"},
1935                                  {{al, r11, r12, 0xab00ab00},
1936                                   false,
1937                                   al,
1938                                   "al r11 r12 0xab00ab00",
1939                                   "al_r11_r12_0xab00ab00"},
1940                                  {{al, r1, r8, 0x7f800000},
1941                                   false,
1942                                   al,
1943                                   "al r1 r8 0x7f800000",
1944                                   "al_r1_r8_0x7f800000"},
1945                                  {{al, r4, r3, 0x0000ff00},
1946                                   false,
1947                                   al,
1948                                   "al r4 r3 0x0000ff00",
1949                                   "al_r4_r3_0x0000ff00"},
1950                                  {{al, r5, r4, 0x00ff00ff},
1951                                   false,
1952                                   al,
1953                                   "al r5 r4 0x00ff00ff",
1954                                   "al_r5_r4_0x00ff00ff"},
1955                                  {{al, r12, r11, 0x2ac00000},
1956                                   false,
1957                                   al,
1958                                   "al r12 r11 0x2ac00000",
1959                                   "al_r12_r11_0x2ac00000"},
1960                                  {{al, r1, r6, 0xab00ab00},
1961                                   false,
1962                                   al,
1963                                   "al r1 r6 0xab00ab00",
1964                                   "al_r1_r6_0xab00ab00"},
1965                                  {{al, r6, r3, 0x000000ab},
1966                                   false,
1967                                   al,
1968                                   "al r6 r3 0x000000ab",
1969                                   "al_r6_r3_0x000000ab"},
1970                                  {{al, r2, r11, 0x0007f800},
1971                                   false,
1972                                   al,
1973                                   "al r2 r11 0x0007f800",
1974                                   "al_r2_r11_0x0007f800"},
1975                                  {{al, r3, r0, 0x00001560},
1976                                   false,
1977                                   al,
1978                                   "al r3 r0 0x00001560",
1979                                   "al_r3_r0_0x00001560"},
1980                                  {{al, r1, r14, 0x00000558},
1981                                   false,
1982                                   al,
1983                                   "al r1 r14 0x00000558",
1984                                   "al_r1_r14_0x00000558"},
1985                                  {{al, r10, r8, 0x00558000},
1986                                   false,
1987                                   al,
1988                                   "al r10 r8 0x00558000",
1989                                   "al_r10_r8_0x00558000"},
1990                                  {{al, r0, r8, 0x000ff000},
1991                                   false,
1992                                   al,
1993                                   "al r0 r8 0x000ff000",
1994                                   "al_r0_r8_0x000ff000"},
1995                                  {{al, r13, r6, 0x007f8000},
1996                                   false,
1997                                   al,
1998                                   "al r13 r6 0x007f8000",
1999                                   "al_r13_r6_0x007f8000"},
2000                                  {{al, r3, r10, 0x000002ac},
2001                                   false,
2002                                   al,
2003                                   "al r3 r10 0x000002ac",
2004                                   "al_r3_r10_0x000002ac"},
2005                                  {{al, r12, r2, 0x0003fc00},
2006                                   false,
2007                                   al,
2008                                   "al r12 r2 0x0003fc00",
2009                                   "al_r12_r2_0x0003fc00"},
2010                                  {{al, r5, r5, 0x02ac0000},
2011                                   false,
2012                                   al,
2013                                   "al r5 r5 0x02ac0000",
2014                                   "al_r5_r5_0x02ac0000"},
2015                                  {{al, r11, r12, 0x001fe000},
2016                                   false,
2017                                   al,
2018                                   "al r11 r12 0x001fe000",
2019                                   "al_r11_r12_0x001fe000"},
2020                                  {{al, r0, r14, 0x001fe000},
2021                                   false,
2022                                   al,
2023                                   "al r0 r14 0x001fe000",
2024                                   "al_r0_r14_0x001fe000"},
2025                                  {{al, r0, r14, 0x02ac0000},
2026                                   false,
2027                                   al,
2028                                   "al r0 r14 0x02ac0000",
2029                                   "al_r0_r14_0x02ac0000"},
2030                                  {{al, r6, r7, 0x0ff00000},
2031                                   false,
2032                                   al,
2033                                   "al r6 r7 0x0ff00000",
2034                                   "al_r6_r7_0x0ff00000"},
2035                                  {{al, r10, r13, 0x00000156},
2036                                   false,
2037                                   al,
2038                                   "al r10 r13 0x00000156",
2039                                   "al_r10_r13_0x00000156"},
2040                                  {{al, r3, r7, 0x000007f8},
2041                                   false,
2042                                   al,
2043                                   "al r3 r7 0x000007f8",
2044                                   "al_r3_r7_0x000007f8"},
2045                                  {{al, r4, r10, 0x000000ab},
2046                                   false,
2047                                   al,
2048                                   "al r4 r10 0x000000ab",
2049                                   "al_r4_r10_0x000000ab"},
2050                                  {{al, r0, r6, 0x00000558},
2051                                   false,
2052                                   al,
2053                                   "al r0 r6 0x00000558",
2054                                   "al_r0_r6_0x00000558"},
2055                                  {{al, r1, r1, 0x05580000},
2056                                   false,
2057                                   al,
2058                                   "al r1 r1 0x05580000",
2059                                   "al_r1_r1_0x05580000"},
2060                                  {{al, r8, r2, 0x00001560},
2061                                   false,
2062                                   al,
2063                                   "al r8 r2 0x00001560",
2064                                   "al_r8_r2_0x00001560"},
2065                                  {{al, r9, r5, 0x0001fe00},
2066                                   false,
2067                                   al,
2068                                   "al r9 r5 0x0001fe00",
2069                                   "al_r9_r5_0x0001fe00"},
2070                                  {{al, r13, r9, 0x0ab00000},
2071                                   false,
2072                                   al,
2073                                   "al r13 r9 0x0ab00000",
2074                                   "al_r13_r9_0x0ab00000"},
2075                                  {{al, r13, r9, 0x00007f80},
2076                                   false,
2077                                   al,
2078                                   "al r13 r9 0x00007f80",
2079                                   "al_r13_r9_0x00007f80"},
2080                                  {{al, r10, r5, 0x0000ab00},
2081                                   false,
2082                                   al,
2083                                   "al r10 r5 0x0000ab00",
2084                                   "al_r10_r5_0x0000ab00"},
2085                                  {{al, r6, r13, 0x007f8000},
2086                                   false,
2087                                   al,
2088                                   "al r6 r13 0x007f8000",
2089                                   "al_r6_r13_0x007f8000"},
2090                                  {{al, r5, r9, 0x000ab000},
2091                                   false,
2092                                   al,
2093                                   "al r5 r9 0x000ab000",
2094                                   "al_r5_r9_0x000ab000"},
2095                                  {{al, r4, r4, 0x000000ab},
2096                                   false,
2097                                   al,
2098                                   "al r4 r4 0x000000ab",
2099                                   "al_r4_r4_0x000000ab"},
2100                                  {{al, r13, r5, 0xab00ab00},
2101                                   false,
2102                                   al,
2103                                   "al r13 r5 0xab00ab00",
2104                                   "al_r13_r5_0xab00ab00"},
2105                                  {{al, r12, r3, 0x00005580},
2106                                   false,
2107                                   al,
2108                                   "al r12 r3 0x00005580",
2109                                   "al_r12_r3_0x00005580"},
2110                                  {{al, r0, r10, 0x55800000},
2111                                   false,
2112                                   al,
2113                                   "al r0 r10 0x55800000",
2114                                   "al_r0_r10_0x55800000"},
2115                                  {{al, r2, r8, 0x00ab00ab},
2116                                   false,
2117                                   al,
2118                                   "al r2 r8 0x00ab00ab",
2119                                   "al_r2_r8_0x00ab00ab"},
2120                                  {{al, r11, r5, 0x0003fc00},
2121                                   false,
2122                                   al,
2123                                   "al r11 r5 0x0003fc00",
2124                                   "al_r11_r5_0x0003fc00"},
2125                                  {{al, r11, r0, 0x00ab0000},
2126                                   false,
2127                                   al,
2128                                   "al r11 r0 0x00ab0000",
2129                                   "al_r11_r0_0x00ab0000"},
2130                                  {{al, r10, r2, 0x000002ac},
2131                                   false,
2132                                   al,
2133                                   "al r10 r2 0x000002ac",
2134                                   "al_r10_r2_0x000002ac"},
2135                                  {{al, r11, r12, 0x00055800},
2136                                   false,
2137                                   al,
2138                                   "al r11 r12 0x00055800",
2139                                   "al_r11_r12_0x00055800"},
2140                                  {{al, r5, r13, 0x00000ff0},
2141                                   false,
2142                                   al,
2143                                   "al r5 r13 0x00000ff0",
2144                                   "al_r5_r13_0x00000ff0"},
2145                                  {{al, r4, r14, 0x15600000},
2146                                   false,
2147                                   al,
2148                                   "al r4 r14 0x15600000",
2149                                   "al_r4_r14_0x15600000"},
2150                                  {{al, r10, r1, 0x00003fc0},
2151                                   false,
2152                                   al,
2153                                   "al r10 r1 0x00003fc0",
2154                                   "al_r10_r1_0x00003fc0"},
2155                                  {{al, r14, r8, 0xff000000},
2156                                   false,
2157                                   al,
2158                                   "al r14 r8 0xff000000",
2159                                   "al_r14_r8_0xff000000"},
2160                                  {{al, r12, r0, 0x00ff0000},
2161                                   false,
2162                                   al,
2163                                   "al r12 r0 0x00ff0000",
2164                                   "al_r12_r0_0x00ff0000"},
2165                                  {{al, r4, r5, 0x3fc00000},
2166                                   false,
2167                                   al,
2168                                   "al r4 r5 0x3fc00000",
2169                                   "al_r4_r5_0x3fc00000"},
2170                                  {{al, r14, r10, 0x3fc00000},
2171                                   false,
2172                                   al,
2173                                   "al r14 r10 0x3fc00000",
2174                                   "al_r14_r10_0x3fc00000"},
2175                                  {{al, r10, r1, 0x00015600},
2176                                   false,
2177                                   al,
2178                                   "al r10 r1 0x00015600",
2179                                   "al_r10_r1_0x00015600"},
2180                                  {{al, r4, r3, 0xff000000},
2181                                   false,
2182                                   al,
2183                                   "al r4 r3 0xff000000",
2184                                   "al_r4_r3_0xff000000"},
2185                                  {{al, r10, r10, 0x02ac0000},
2186                                   false,
2187                                   al,
2188                                   "al r10 r10 0x02ac0000",
2189                                   "al_r10_r10_0x02ac0000"},
2190                                  {{al, r9, r9, 0x000ff000},
2191                                   false,
2192                                   al,
2193                                   "al r9 r9 0x000ff000",
2194                                   "al_r9_r9_0x000ff000"},
2195                                  {{al, r13, r7, 0x0002ac00},
2196                                   false,
2197                                   al,
2198                                   "al r13 r7 0x0002ac00",
2199                                   "al_r13_r7_0x0002ac00"},
2200                                  {{al, r7, r8, 0x00001fe0},
2201                                   false,
2202                                   al,
2203                                   "al r7 r8 0x00001fe0",
2204                                   "al_r7_r8_0x00001fe0"},
2205                                  {{al, r2, r4, 0x00001560},
2206                                   false,
2207                                   al,
2208                                   "al r2 r4 0x00001560",
2209                                   "al_r2_r4_0x00001560"},
2210                                  {{al, r13, r7, 0x00156000},
2211                                   false,
2212                                   al,
2213                                   "al r13 r7 0x00156000",
2214                                   "al_r13_r7_0x00156000"},
2215                                  {{al, r9, r9, 0x000003fc},
2216                                   false,
2217                                   al,
2218                                   "al r9 r9 0x000003fc",
2219                                   "al_r9_r9_0x000003fc"},
2220                                  {{al, r0, r3, 0x000ab000},
2221                                   false,
2222                                   al,
2223                                   "al r0 r3 0x000ab000",
2224                                   "al_r0_r3_0x000ab000"},
2225                                  {{al, r10, r12, 0x0000ab00},
2226                                   false,
2227                                   al,
2228                                   "al r10 r12 0x0000ab00",
2229                                   "al_r10_r12_0x0000ab00"},
2230                                  {{al, r1, r13, 0x00002ac0},
2231                                   false,
2232                                   al,
2233                                   "al r1 r13 0x00002ac0",
2234                                   "al_r1_r13_0x00002ac0"},
2235                                  {{al, r3, r10, 0x001fe000},
2236                                   false,
2237                                   al,
2238                                   "al r3 r10 0x001fe000",
2239                                   "al_r3_r10_0x001fe000"},
2240                                  {{al, r4, r12, 0x00ff00ff},
2241                                   false,
2242                                   al,
2243                                   "al r4 r12 0x00ff00ff",
2244                                   "al_r4_r12_0x00ff00ff"},
2245                                  {{al, r12, r5, 0x003fc000},
2246                                   false,
2247                                   al,
2248                                   "al r12 r5 0x003fc000",
2249                                   "al_r12_r5_0x003fc000"},
2250                                  {{al, r11, r2, 0x0001fe00},
2251                                   false,
2252                                   al,
2253                                   "al r11 r2 0x0001fe00",
2254                                   "al_r11_r2_0x0001fe00"},
2255                                  {{al, r8, r6, 0x0007f800},
2256                                   false,
2257                                   al,
2258                                   "al r8 r6 0x0007f800",
2259                                   "al_r8_r6_0x0007f800"},
2260                                  {{al, r11, r1, 0x000000ff},
2261                                   false,
2262                                   al,
2263                                   "al r11 r1 0x000000ff",
2264                                   "al_r11_r1_0x000000ff"},
2265                                  {{al, r5, r2, 0x007f8000},
2266                                   false,
2267                                   al,
2268                                   "al r5 r2 0x007f8000",
2269                                   "al_r5_r2_0x007f8000"},
2270                                  {{al, r8, r10, 0xab000000},
2271                                   false,
2272                                   al,
2273                                   "al r8 r10 0xab000000",
2274                                   "al_r8_r10_0xab000000"},
2275                                  {{al, r10, r3, 0x000ff000},
2276                                   false,
2277                                   al,
2278                                   "al r10 r3 0x000ff000",
2279                                   "al_r10_r3_0x000ff000"},
2280                                  {{al, r6, r0, 0x00ff0000},
2281                                   false,
2282                                   al,
2283                                   "al r6 r0 0x00ff0000",
2284                                   "al_r6_r0_0x00ff0000"},
2285                                  {{al, r7, r14, 0x0ff00000},
2286                                   false,
2287                                   al,
2288                                   "al r7 r14 0x0ff00000",
2289                                   "al_r7_r14_0x0ff00000"},
2290                                  {{al, r8, r3, 0x00001560},
2291                                   false,
2292                                   al,
2293                                   "al r8 r3 0x00001560",
2294                                   "al_r8_r3_0x00001560"},
2295                                  {{al, r13, r9, 0x00000558},
2296                                   false,
2297                                   al,
2298                                   "al r13 r9 0x00000558",
2299                                   "al_r13_r9_0x00000558"},
2300                                  {{al, r8, r7, 0x00001fe0},
2301                                   false,
2302                                   al,
2303                                   "al r8 r7 0x00001fe0",
2304                                   "al_r8_r7_0x00001fe0"},
2305                                  {{al, r13, r3, 0x0003fc00},
2306                                   false,
2307                                   al,
2308                                   "al r13 r3 0x0003fc00",
2309                                   "al_r13_r3_0x0003fc00"},
2310                                  {{al, r4, r14, 0x000000ab},
2311                                   false,
2312                                   al,
2313                                   "al r4 r14 0x000000ab",
2314                                   "al_r4_r14_0x000000ab"},
2315                                  {{al, r14, r7, 0x000000ab},
2316                                   false,
2317                                   al,
2318                                   "al r14 r7 0x000000ab",
2319                                   "al_r14_r7_0x000000ab"},
2320                                  {{al, r11, r9, 0x00558000},
2321                                   false,
2322                                   al,
2323                                   "al r11 r9 0x00558000",
2324                                   "al_r11_r9_0x00558000"},
2325                                  {{al, r3, r10, 0x0000ff00},
2326                                   false,
2327                                   al,
2328                                   "al r3 r10 0x0000ff00",
2329                                   "al_r3_r10_0x0000ff00"},
2330                                  {{al, r4, r12, 0x003fc000},
2331                                   false,
2332                                   al,
2333                                   "al r4 r12 0x003fc000",
2334                                   "al_r4_r12_0x003fc000"},
2335                                  {{al, r11, r1, 0x002ac000},
2336                                   false,
2337                                   al,
2338                                   "al r11 r1 0x002ac000",
2339                                   "al_r11_r1_0x002ac000"},
2340                                  {{al, r12, r0, 0x7f800000},
2341                                   false,
2342                                   al,
2343                                   "al r12 r0 0x7f800000",
2344                                   "al_r12_r0_0x7f800000"},
2345                                  {{al, r3, r9, 0x00003fc0},
2346                                   false,
2347                                   al,
2348                                   "al r3 r9 0x00003fc0",
2349                                   "al_r3_r9_0x00003fc0"},
2350                                  {{al, r6, r6, 0x0ff00000},
2351                                   false,
2352                                   al,
2353                                   "al r6 r6 0x0ff00000",
2354                                   "al_r6_r6_0x0ff00000"},
2355                                  {{al, r1, r11, 0xff000000},
2356                                   false,
2357                                   al,
2358                                   "al r1 r11 0xff000000",
2359                                   "al_r1_r11_0xff000000"},
2360                                  {{al, r2, r10, 0x0007f800},
2361                                   false,
2362                                   al,
2363                                   "al r2 r10 0x0007f800",
2364                                   "al_r2_r10_0x0007f800"},
2365                                  {{al, r12, r10, 0x000002ac},
2366                                   false,
2367                                   al,
2368                                   "al r12 r10 0x000002ac",
2369                                   "al_r12_r10_0x000002ac"},
2370                                  {{al, r10, r8, 0x000003fc},
2371                                   false,
2372                                   al,
2373                                   "al r10 r8 0x000003fc",
2374                                   "al_r10_r8_0x000003fc"},
2375                                  {{al, r9, r0, 0x55800000},
2376                                   false,
2377                                   al,
2378                                   "al r9 r0 0x55800000",
2379                                   "al_r9_r0_0x55800000"},
2380                                  {{al, r8, r7, 0x1fe00000},
2381                                   false,
2382                                   al,
2383                                   "al r8 r7 0x1fe00000",
2384                                   "al_r8_r7_0x1fe00000"},
2385                                  {{al, r4, r0, 0x15600000},
2386                                   false,
2387                                   al,
2388                                   "al r4 r0 0x15600000",
2389                                   "al_r4_r0_0x15600000"},
2390                                  {{al, r4, r0, 0xff00ff00},
2391                                   false,
2392                                   al,
2393                                   "al r4 r0 0xff00ff00",
2394                                   "al_r4_r0_0xff00ff00"},
2395                                  {{al, r1, r14, 0x00007f80},
2396                                   false,
2397                                   al,
2398                                   "al r1 r14 0x00007f80",
2399                                   "al_r1_r14_0x00007f80"},
2400                                  {{al, r7, r3, 0x00ff00ff},
2401                                   false,
2402                                   al,
2403                                   "al r7 r3 0x00ff00ff",
2404                                   "al_r7_r3_0x00ff00ff"},
2405                                  {{al, r10, r2, 0x00001560},
2406                                   false,
2407                                   al,
2408                                   "al r10 r2 0x00001560",
2409                                   "al_r10_r2_0x00001560"},
2410                                  {{al, r0, r14, 0xabababab},
2411                                   false,
2412                                   al,
2413                                   "al r0 r14 0xabababab",
2414                                   "al_r0_r14_0xabababab"},
2415                                  {{al, r3, r4, 0x007f8000},
2416                                   false,
2417                                   al,
2418                                   "al r3 r4 0x007f8000",
2419                                   "al_r3_r4_0x007f8000"},
2420                                  {{al, r0, r2, 0x003fc000},
2421                                   false,
2422                                   al,
2423                                   "al r0 r2 0x003fc000",
2424                                   "al_r0_r2_0x003fc000"},
2425                                  {{al, r13, r6, 0x0002ac00},
2426                                   false,
2427                                   al,
2428                                   "al r13 r6 0x0002ac00",
2429                                   "al_r13_r6_0x0002ac00"},
2430                                  {{al, r11, r5, 0x00001fe0},
2431                                   false,
2432                                   al,
2433                                   "al r11 r5 0x00001fe0",
2434                                   "al_r11_r5_0x00001fe0"},
2435                                  {{al, r1, r13, 0x00005580},
2436                                   false,
2437                                   al,
2438                                   "al r1 r13 0x00005580",
2439                                   "al_r1_r13_0x00005580"},
2440                                  {{al, r13, r8, 0x000007f8},
2441                                   false,
2442                                   al,
2443                                   "al r13 r8 0x000007f8",
2444                                   "al_r13_r8_0x000007f8"},
2445                                  {{al, r6, r4, 0x0ab00000},
2446                                   false,
2447                                   al,
2448                                   "al r6 r4 0x0ab00000",
2449                                   "al_r6_r4_0x0ab00000"},
2450                                  {{al, r14, r10, 0x1fe00000},
2451                                   false,
2452                                   al,
2453                                   "al r14 r10 0x1fe00000",
2454                                   "al_r14_r10_0x1fe00000"},
2455                                  {{al, r7, r6, 0xff00ff00},
2456                                   false,
2457                                   al,
2458                                   "al r7 r6 0xff00ff00",
2459                                   "al_r7_r6_0xff00ff00"},
2460                                  {{al, r11, r5, 0xffffffff},
2461                                   false,
2462                                   al,
2463                                   "al r11 r5 0xffffffff",
2464                                   "al_r11_r5_0xffffffff"},
2465                                  {{al, r0, r12, 0xffffffff},
2466                                   false,
2467                                   al,
2468                                   "al r0 r12 0xffffffff",
2469                                   "al_r0_r12_0xffffffff"},
2470                                  {{al, r12, r2, 0x15600000},
2471                                   false,
2472                                   al,
2473                                   "al r12 r2 0x15600000",
2474                                   "al_r12_r2_0x15600000"},
2475                                  {{al, r3, r12, 0x000ff000},
2476                                   false,
2477                                   al,
2478                                   "al r3 r12 0x000ff000",
2479                                   "al_r3_r12_0x000ff000"},
2480                                  {{al, r6, r8, 0x00055800},
2481                                   false,
2482                                   al,
2483                                   "al r6 r8 0x00055800",
2484                                   "al_r6_r8_0x00055800"},
2485                                  {{al, r12, r7, 0x05580000},
2486                                   false,
2487                                   al,
2488                                   "al r12 r7 0x05580000",
2489                                   "al_r12_r7_0x05580000"},
2490                                  {{al, r8, r5, 0x007f8000},
2491                                   false,
2492                                   al,
2493                                   "al r8 r5 0x007f8000",
2494                                   "al_r8_r5_0x007f8000"},
2495                                  {{al, r4, r1, 0x000ab000},
2496                                   false,
2497                                   al,
2498                                   "al r4 r1 0x000ab000",
2499                                   "al_r4_r1_0x000ab000"},
2500                                  {{al, r13, r12, 0x02ac0000},
2501                                   false,
2502                                   al,
2503                                   "al r13 r12 0x02ac0000",
2504                                   "al_r13_r12_0x02ac0000"},
2505                                  {{al, r9, r8, 0x000000ff},
2506                                   false,
2507                                   al,
2508                                   "al r9 r8 0x000000ff",
2509                                   "al_r9_r8_0x000000ff"},
2510                                  {{al, r1, r11, 0x00005580},
2511                                   false,
2512                                   al,
2513                                   "al r1 r11 0x00005580",
2514                                   "al_r1_r11_0x00005580"},
2515                                  {{al, r10, r12, 0x02ac0000},
2516                                   false,
2517                                   al,
2518                                   "al r10 r12 0x02ac0000",
2519                                   "al_r10_r12_0x02ac0000"},
2520                                  {{al, r7, r9, 0x00ab00ab},
2521                                   false,
2522                                   al,
2523                                   "al r7 r9 0x00ab00ab",
2524                                   "al_r7_r9_0x00ab00ab"},
2525                                  {{al, r0, r5, 0x0000ab00},
2526                                   false,
2527                                   al,
2528                                   "al r0 r5 0x0000ab00",
2529                                   "al_r0_r5_0x0000ab00"},
2530                                  {{al, r13, r9, 0x00558000},
2531                                   false,
2532                                   al,
2533                                   "al r13 r9 0x00558000",
2534                                   "al_r13_r9_0x00558000"},
2535                                  {{al, r0, r1, 0x002ac000},
2536                                   false,
2537                                   al,
2538                                   "al r0 r1 0x002ac000",
2539                                   "al_r0_r1_0x002ac000"},
2540                                  {{al, r14, r1, 0x00000ab0},
2541                                   false,
2542                                   al,
2543                                   "al r14 r1 0x00000ab0",
2544                                   "al_r14_r1_0x00000ab0"},
2545                                  {{al, r2, r2, 0x00000558},
2546                                   false,
2547                                   al,
2548                                   "al r2 r2 0x00000558",
2549                                   "al_r2_r2_0x00000558"},
2550                                  {{al, r10, r13, 0x00ab00ab},
2551                                   false,
2552                                   al,
2553                                   "al r10 r13 0x00ab00ab",
2554                                   "al_r10_r13_0x00ab00ab"},
2555                                  {{al, r4, r6, 0x00001560},
2556                                   false,
2557                                   al,
2558                                   "al r4 r6 0x00001560",
2559                                   "al_r4_r6_0x00001560"},
2560                                  {{al, r10, r0, 0x00156000},
2561                                   false,
2562                                   al,
2563                                   "al r10 r0 0x00156000",
2564                                   "al_r10_r0_0x00156000"},
2565                                  {{al, r10, r13, 0x00156000},
2566                                   false,
2567                                   al,
2568                                   "al r10 r13 0x00156000",
2569                                   "al_r10_r13_0x00156000"},
2570                                  {{al, r11, r2, 0x001fe000},
2571                                   false,
2572                                   al,
2573                                   "al r11 r2 0x001fe000",
2574                                   "al_r11_r2_0x001fe000"},
2575                                  {{al, r4, r5, 0x2ac00000},
2576                                   false,
2577                                   al,
2578                                   "al r4 r5 0x2ac00000",
2579                                   "al_r4_r5_0x2ac00000"},
2580                                  {{al, r8, r8, 0x02ac0000},
2581                                   false,
2582                                   al,
2583                                   "al r8 r8 0x02ac0000",
2584                                   "al_r8_r8_0x02ac0000"},
2585                                  {{al, r9, r1, 0x7f800000},
2586                                   false,
2587                                   al,
2588                                   "al r9 r1 0x7f800000",
2589                                   "al_r9_r1_0x7f800000"},
2590                                  {{al, r8, r9, 0xff00ff00},
2591                                   false,
2592                                   al,
2593                                   "al r8 r9 0xff00ff00",
2594                                   "al_r8_r9_0xff00ff00"},
2595                                  {{al, r12, r7, 0x00ff00ff},
2596                                   false,
2597                                   al,
2598                                   "al r12 r7 0x00ff00ff",
2599                                   "al_r12_r7_0x00ff00ff"},
2600                                  {{al, r9, r10, 0x00156000},
2601                                   false,
2602                                   al,
2603                                   "al r9 r10 0x00156000",
2604                                   "al_r9_r10_0x00156000"}};
2605
2606// These headers each contain an array of `TestResult` with the reference output
2607// values. The reference arrays are names `kReference{mnemonic}`.
2608#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-adc.h"
2609#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-adcs.h"
2610#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-add.h"
2611#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-adds.h"
2612#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-and.h"
2613#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-ands.h"
2614#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-bic.h"
2615#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-bics.h"
2616#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-eor.h"
2617#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-eors.h"
2618#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-orn.h"
2619#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-orns.h"
2620#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-orr.h"
2621#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-orrs.h"
2622#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-rsb.h"
2623#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-rsbs.h"
2624#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-sbc.h"
2625#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-sbcs.h"
2626#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-sub.h"
2627#include "aarch32/traces/assembler-cond-rd-rn-operand-const-t32-subs.h"
2628
2629
2630// The maximum number of errors to report in detail for each test.
2631static const unsigned kErrorReportLimit = 8;
2632
2633typedef void (MacroAssembler::*Fn)(Condition cond,
2634                                   Register rd,
2635                                   Register rn,
2636                                   const Operand& op);
2637
2638static void TestHelper(Fn instruction,
2639                       const char* mnemonic,
2640                       const TestResult reference[]) {
2641  unsigned total_error_count = 0;
2642  MacroAssembler masm(BUF_SIZE);
2643
2644  masm.UseT32();
2645
2646  for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
2647    // Values to pass to the macro-assembler.
2648    Condition cond = kTests[i].operands.cond;
2649    Register rd = kTests[i].operands.rd;
2650    Register rn = kTests[i].operands.rn;
2651    uint32_t immediate = kTests[i].operands.immediate;
2652    Operand op(immediate);
2653
2654    int32_t start = masm.GetCursorOffset();
2655    {
2656      // We never generate more that 4 bytes, as IT instructions are only
2657      // allowed for narrow encodings.
2658      AssemblerAccurateScope scope(&masm,
2659                                   4,
2660                                   AssemblerAccurateScope::kMaximumSize);
2661      if (kTests[i].in_it_block) {
2662        masm.it(kTests[i].it_condition);
2663      }
2664      (masm.*instruction)(cond, rd, rn, op);
2665    }
2666    int32_t end = masm.GetCursorOffset();
2667
2668    const byte* result_ptr =
2669        masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
2670    VIXL_ASSERT(start < end);
2671    uint32_t result_size = end - start;
2672
2673    if (Test::generate_test_trace()) {
2674      // Print the result bytes.
2675      printf("static const byte kInstruction_%s_%s[] = {\n",
2676             mnemonic,
2677             kTests[i].identifier);
2678      for (uint32_t j = 0; j < result_size; j++) {
2679        if (j == 0) {
2680          printf("  0x%02" PRIx8, result_ptr[j]);
2681        } else {
2682          printf(", 0x%02" PRIx8, result_ptr[j]);
2683        }
2684      }
2685      // This comment is meant to be used by external tools to validate
2686      // the encoding. We can parse the comment to figure out what
2687      // instruction this corresponds to.
2688      if (kTests[i].in_it_block) {
2689        printf(" // It %s; %s %s\n};\n",
2690               kTests[i].it_condition.GetName(),
2691               mnemonic,
2692               kTests[i].operands_description);
2693      } else {
2694        printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
2695      }
2696    } else {
2697      // Check we've emitted the exact same encoding as present in the
2698      // trace file. Only print up to `kErrorReportLimit` errors.
2699      if (((result_size != reference[i].size) ||
2700           (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
2701            0)) &&
2702          (++total_error_count <= kErrorReportLimit)) {
2703        printf("Error when testing \"%s\" with operands \"%s\":\n",
2704               mnemonic,
2705               kTests[i].operands_description);
2706        printf("  Expected: ");
2707        for (uint32_t j = 0; j < reference[i].size; j++) {
2708          if (j == 0) {
2709            printf("0x%02" PRIx8, reference[i].encoding[j]);
2710          } else {
2711            printf(", 0x%02" PRIx8, reference[i].encoding[j]);
2712          }
2713        }
2714        printf("\n");
2715        printf("  Found:    ");
2716        for (uint32_t j = 0; j < result_size; j++) {
2717          if (j == 0) {
2718            printf("0x%02" PRIx8, result_ptr[j]);
2719          } else {
2720            printf(", 0x%02" PRIx8, result_ptr[j]);
2721          }
2722        }
2723        printf("\n");
2724      }
2725    }
2726  }
2727
2728  masm.FinalizeCode();
2729
2730  if (Test::generate_test_trace()) {
2731    // Finalize the trace file by writing the final `TestResult` array
2732    // which links all generated instruction encodings.
2733    printf("static const TestResult kReference%s[] = {\n", mnemonic);
2734    for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
2735      printf("  {\n");
2736      printf("    ARRAY_SIZE(kInstruction_%s_%s),\n",
2737             mnemonic,
2738             kTests[i].identifier);
2739      printf("    kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
2740      printf("  },\n");
2741    }
2742    printf("};\n");
2743  } else {
2744    if (total_error_count > kErrorReportLimit) {
2745      printf("%u other errors follow.\n",
2746             total_error_count - kErrorReportLimit);
2747    }
2748    // Crash if the test failed.
2749    VIXL_CHECK(total_error_count == 0);
2750  }
2751}
2752
2753// Instantiate tests for each instruction in the list.
2754#define TEST(mnemonic)                                                      \
2755  static void Test_##mnemonic() {                                           \
2756    TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \
2757  }                                                                         \
2758  static Test test_##mnemonic(                                              \
2759      "AARCH32_ASSEMBLER_COND_RD_RN_OPERAND_CONST_T32_" #mnemonic,          \
2760      &Test_##mnemonic);
2761FOREACH_INSTRUCTION(TEST)
2762#undef TEST
2763
2764}  // aarch32
2765}  // vixl
2766