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 
47 namespace vixl {
48 namespace aarch32 {
49 
50 // List of instruction mnemonics.
51 #define FOREACH_INSTRUCTION(M) \
52   M(ldr)                       \
53   M(ldrb)                      \
54   M(ldrh)                      \
55   M(ldrsb)                     \
56   M(ldrsh)                     \
57   M(str)                       \
58   M(strb)                      \
59   M(strh)
60 
61 
62 // The following definitions are defined again in each generated test, therefore
63 // we need to place them in an anomymous namespace. It expresses that they are
64 // local to this file only, and the compiler is not allowed to share these types
65 // across test files during template instantiation. Specifically, `Operands` has
66 // various layouts across generated tests so it absolutely cannot be shared.
67 
68 #ifdef VIXL_INCLUDE_TARGET_A32
69 namespace {
70 
71 // Values to be passed to the assembler to produce the instruction under test.
72 struct Operands {
73   Condition cond;
74   Register rd;
75   Register rn;
76   Sign sign;
77   Register rm;
78   AddrMode addr_mode;
79 };
80 
81 // This structure contains all data needed to test one specific
82 // instruction.
83 struct TestData {
84   // The `operands` field represents what to pass to the assembler to
85   // produce the instruction.
86   Operands operands;
87   // True if we need to generate an IT instruction for this test to be valid.
88   bool in_it_block;
89   // The condition to give the IT instruction, this will be set to "al" by
90   // default.
91   Condition it_condition;
92   // Description of the operands, used for error reporting.
93   const char* operands_description;
94   // Unique identifier, used for generating traces.
95   const char* identifier;
96 };
97 
98 struct TestResult {
99   size_t size;
100   const byte* encoding;
101 };
102 
103 // Each element of this array produce one instruction encoding.
104 const TestData kTests[] = {{{pl, r8, r11, plus, r6, Offset},
105                             false,
106                             al,
107                             "pl r8 r11 plus r6 Offset",
108                             "pl_r8_r11_plus_r6_Offset"},
109                            {{le, r4, r8, plus, r5, Offset},
110                             false,
111                             al,
112                             "le r4 r8 plus r5 Offset",
113                             "le_r4_r8_plus_r5_Offset"},
114                            {{vs, r2, r6, plus, r14, Offset},
115                             false,
116                             al,
117                             "vs r2 r6 plus r14 Offset",
118                             "vs_r2_r6_plus_r14_Offset"},
119                            {{ls, r1, r7, plus, r8, Offset},
120                             false,
121                             al,
122                             "ls r1 r7 plus r8 Offset",
123                             "ls_r1_r7_plus_r8_Offset"},
124                            {{ge, r14, r6, plus, r14, Offset},
125                             false,
126                             al,
127                             "ge r14 r6 plus r14 Offset",
128                             "ge_r14_r6_plus_r14_Offset"},
129                            {{cs, r7, r0, plus, r7, Offset},
130                             false,
131                             al,
132                             "cs r7 r0 plus r7 Offset",
133                             "cs_r7_r0_plus_r7_Offset"},
134                            {{ge, r11, r0, plus, r9, Offset},
135                             false,
136                             al,
137                             "ge r11 r0 plus r9 Offset",
138                             "ge_r11_r0_plus_r9_Offset"},
139                            {{eq, r7, r10, plus, r4, Offset},
140                             false,
141                             al,
142                             "eq r7 r10 plus r4 Offset",
143                             "eq_r7_r10_plus_r4_Offset"},
144                            {{al, r9, r2, plus, r3, Offset},
145                             false,
146                             al,
147                             "al r9 r2 plus r3 Offset",
148                             "al_r9_r2_plus_r3_Offset"},
149                            {{cc, r11, r10, plus, r6, Offset},
150                             false,
151                             al,
152                             "cc r11 r10 plus r6 Offset",
153                             "cc_r11_r10_plus_r6_Offset"},
154                            {{lt, r9, r6, plus, r1, Offset},
155                             false,
156                             al,
157                             "lt r9 r6 plus r1 Offset",
158                             "lt_r9_r6_plus_r1_Offset"},
159                            {{ge, r4, r0, plus, r4, Offset},
160                             false,
161                             al,
162                             "ge r4 r0 plus r4 Offset",
163                             "ge_r4_r0_plus_r4_Offset"},
164                            {{al, r9, r13, plus, r14, Offset},
165                             false,
166                             al,
167                             "al r9 r13 plus r14 Offset",
168                             "al_r9_r13_plus_r14_Offset"},
169                            {{cc, r9, r0, plus, r7, Offset},
170                             false,
171                             al,
172                             "cc r9 r0 plus r7 Offset",
173                             "cc_r9_r0_plus_r7_Offset"},
174                            {{cs, r11, r7, plus, r8, Offset},
175                             false,
176                             al,
177                             "cs r11 r7 plus r8 Offset",
178                             "cs_r11_r7_plus_r8_Offset"},
179                            {{eq, r8, r0, plus, r8, Offset},
180                             false,
181                             al,
182                             "eq r8 r0 plus r8 Offset",
183                             "eq_r8_r0_plus_r8_Offset"},
184                            {{hi, r9, r10, plus, r8, Offset},
185                             false,
186                             al,
187                             "hi r9 r10 plus r8 Offset",
188                             "hi_r9_r10_plus_r8_Offset"},
189                            {{le, r8, r0, plus, r0, Offset},
190                             false,
191                             al,
192                             "le r8 r0 plus r0 Offset",
193                             "le_r8_r0_plus_r0_Offset"},
194                            {{cs, r4, r5, plus, r2, Offset},
195                             false,
196                             al,
197                             "cs r4 r5 plus r2 Offset",
198                             "cs_r4_r5_plus_r2_Offset"},
199                            {{eq, r14, r11, plus, r8, Offset},
200                             false,
201                             al,
202                             "eq r14 r11 plus r8 Offset",
203                             "eq_r14_r11_plus_r8_Offset"},
204                            {{cs, r7, r6, plus, r14, Offset},
205                             false,
206                             al,
207                             "cs r7 r6 plus r14 Offset",
208                             "cs_r7_r6_plus_r14_Offset"},
209                            {{ne, r0, r9, plus, r7, Offset},
210                             false,
211                             al,
212                             "ne r0 r9 plus r7 Offset",
213                             "ne_r0_r9_plus_r7_Offset"},
214                            {{le, r7, r3, plus, r11, Offset},
215                             false,
216                             al,
217                             "le r7 r3 plus r11 Offset",
218                             "le_r7_r3_plus_r11_Offset"},
219                            {{gt, r7, r9, plus, r9, Offset},
220                             false,
221                             al,
222                             "gt r7 r9 plus r9 Offset",
223                             "gt_r7_r9_plus_r9_Offset"},
224                            {{le, r9, r12, plus, r9, Offset},
225                             false,
226                             al,
227                             "le r9 r12 plus r9 Offset",
228                             "le_r9_r12_plus_r9_Offset"},
229                            {{pl, r2, r11, plus, r14, Offset},
230                             false,
231                             al,
232                             "pl r2 r11 plus r14 Offset",
233                             "pl_r2_r11_plus_r14_Offset"},
234                            {{cs, r1, r7, plus, r2, Offset},
235                             false,
236                             al,
237                             "cs r1 r7 plus r2 Offset",
238                             "cs_r1_r7_plus_r2_Offset"},
239                            {{al, r5, r1, plus, r12, Offset},
240                             false,
241                             al,
242                             "al r5 r1 plus r12 Offset",
243                             "al_r5_r1_plus_r12_Offset"},
244                            {{eq, r10, r13, plus, r12, Offset},
245                             false,
246                             al,
247                             "eq r10 r13 plus r12 Offset",
248                             "eq_r10_r13_plus_r12_Offset"},
249                            {{eq, r10, r11, plus, r3, Offset},
250                             false,
251                             al,
252                             "eq r10 r11 plus r3 Offset",
253                             "eq_r10_r11_plus_r3_Offset"},
254                            {{al, r9, r12, plus, r0, Offset},
255                             false,
256                             al,
257                             "al r9 r12 plus r0 Offset",
258                             "al_r9_r12_plus_r0_Offset"},
259                            {{ls, r3, r14, plus, r1, Offset},
260                             false,
261                             al,
262                             "ls r3 r14 plus r1 Offset",
263                             "ls_r3_r14_plus_r1_Offset"},
264                            {{le, r13, r4, plus, r9, Offset},
265                             false,
266                             al,
267                             "le r13 r4 plus r9 Offset",
268                             "le_r13_r4_plus_r9_Offset"},
269                            {{ls, r3, r14, plus, r3, Offset},
270                             false,
271                             al,
272                             "ls r3 r14 plus r3 Offset",
273                             "ls_r3_r14_plus_r3_Offset"},
274                            {{cc, r7, r4, plus, r4, Offset},
275                             false,
276                             al,
277                             "cc r7 r4 plus r4 Offset",
278                             "cc_r7_r4_plus_r4_Offset"},
279                            {{ls, r5, r9, plus, r5, Offset},
280                             false,
281                             al,
282                             "ls r5 r9 plus r5 Offset",
283                             "ls_r5_r9_plus_r5_Offset"},
284                            {{ge, r6, r4, plus, r13, Offset},
285                             false,
286                             al,
287                             "ge r6 r4 plus r13 Offset",
288                             "ge_r6_r4_plus_r13_Offset"},
289                            {{al, r1, r11, plus, r12, Offset},
290                             false,
291                             al,
292                             "al r1 r11 plus r12 Offset",
293                             "al_r1_r11_plus_r12_Offset"},
294                            {{le, r6, r11, plus, r3, Offset},
295                             false,
296                             al,
297                             "le r6 r11 plus r3 Offset",
298                             "le_r6_r11_plus_r3_Offset"},
299                            {{al, r6, r6, plus, r13, Offset},
300                             false,
301                             al,
302                             "al r6 r6 plus r13 Offset",
303                             "al_r6_r6_plus_r13_Offset"},
304                            {{gt, r14, r11, plus, r2, Offset},
305                             false,
306                             al,
307                             "gt r14 r11 plus r2 Offset",
308                             "gt_r14_r11_plus_r2_Offset"},
309                            {{vs, r5, r8, plus, r12, Offset},
310                             false,
311                             al,
312                             "vs r5 r8 plus r12 Offset",
313                             "vs_r5_r8_plus_r12_Offset"},
314                            {{ls, r8, r12, plus, r6, Offset},
315                             false,
316                             al,
317                             "ls r8 r12 plus r6 Offset",
318                             "ls_r8_r12_plus_r6_Offset"},
319                            {{vs, r6, r12, plus, r14, Offset},
320                             false,
321                             al,
322                             "vs r6 r12 plus r14 Offset",
323                             "vs_r6_r12_plus_r14_Offset"},
324                            {{pl, r7, r2, plus, r7, Offset},
325                             false,
326                             al,
327                             "pl r7 r2 plus r7 Offset",
328                             "pl_r7_r2_plus_r7_Offset"},
329                            {{gt, r5, r4, plus, r13, Offset},
330                             false,
331                             al,
332                             "gt r5 r4 plus r13 Offset",
333                             "gt_r5_r4_plus_r13_Offset"},
334                            {{hi, r2, r7, plus, r12, Offset},
335                             false,
336                             al,
337                             "hi r2 r7 plus r12 Offset",
338                             "hi_r2_r7_plus_r12_Offset"},
339                            {{ne, r2, r3, plus, r10, Offset},
340                             false,
341                             al,
342                             "ne r2 r3 plus r10 Offset",
343                             "ne_r2_r3_plus_r10_Offset"},
344                            {{lt, r13, r2, plus, r6, Offset},
345                             false,
346                             al,
347                             "lt r13 r2 plus r6 Offset",
348                             "lt_r13_r2_plus_r6_Offset"},
349                            {{hi, r14, r10, plus, r11, Offset},
350                             false,
351                             al,
352                             "hi r14 r10 plus r11 Offset",
353                             "hi_r14_r10_plus_r11_Offset"},
354                            {{hi, r7, r10, plus, r12, Offset},
355                             false,
356                             al,
357                             "hi r7 r10 plus r12 Offset",
358                             "hi_r7_r10_plus_r12_Offset"},
359                            {{cs, r3, r12, plus, r2, Offset},
360                             false,
361                             al,
362                             "cs r3 r12 plus r2 Offset",
363                             "cs_r3_r12_plus_r2_Offset"},
364                            {{ls, r11, r5, plus, r1, Offset},
365                             false,
366                             al,
367                             "ls r11 r5 plus r1 Offset",
368                             "ls_r11_r5_plus_r1_Offset"},
369                            {{hi, r5, r2, plus, r11, Offset},
370                             false,
371                             al,
372                             "hi r5 r2 plus r11 Offset",
373                             "hi_r5_r2_plus_r11_Offset"},
374                            {{cc, r11, r8, plus, r6, Offset},
375                             false,
376                             al,
377                             "cc r11 r8 plus r6 Offset",
378                             "cc_r11_r8_plus_r6_Offset"},
379                            {{lt, r11, r3, plus, r9, Offset},
380                             false,
381                             al,
382                             "lt r11 r3 plus r9 Offset",
383                             "lt_r11_r3_plus_r9_Offset"},
384                            {{ne, r11, r9, plus, r8, Offset},
385                             false,
386                             al,
387                             "ne r11 r9 plus r8 Offset",
388                             "ne_r11_r9_plus_r8_Offset"},
389                            {{lt, r7, r0, plus, r14, Offset},
390                             false,
391                             al,
392                             "lt r7 r0 plus r14 Offset",
393                             "lt_r7_r0_plus_r14_Offset"},
394                            {{ge, r12, r3, plus, r1, Offset},
395                             false,
396                             al,
397                             "ge r12 r3 plus r1 Offset",
398                             "ge_r12_r3_plus_r1_Offset"},
399                            {{le, r0, r8, plus, r13, Offset},
400                             false,
401                             al,
402                             "le r0 r8 plus r13 Offset",
403                             "le_r0_r8_plus_r13_Offset"},
404                            {{vc, r5, r13, plus, r7, Offset},
405                             false,
406                             al,
407                             "vc r5 r13 plus r7 Offset",
408                             "vc_r5_r13_plus_r7_Offset"},
409                            {{ge, r7, r5, plus, r11, Offset},
410                             false,
411                             al,
412                             "ge r7 r5 plus r11 Offset",
413                             "ge_r7_r5_plus_r11_Offset"},
414                            {{ge, r10, r9, plus, r3, Offset},
415                             false,
416                             al,
417                             "ge r10 r9 plus r3 Offset",
418                             "ge_r10_r9_plus_r3_Offset"},
419                            {{vs, r9, r5, plus, r2, Offset},
420                             false,
421                             al,
422                             "vs r9 r5 plus r2 Offset",
423                             "vs_r9_r5_plus_r2_Offset"},
424                            {{hi, r2, r10, plus, r4, Offset},
425                             false,
426                             al,
427                             "hi r2 r10 plus r4 Offset",
428                             "hi_r2_r10_plus_r4_Offset"},
429                            {{ge, r1, r11, plus, r1, Offset},
430                             false,
431                             al,
432                             "ge r1 r11 plus r1 Offset",
433                             "ge_r1_r11_plus_r1_Offset"},
434                            {{ls, r9, r14, plus, r12, Offset},
435                             false,
436                             al,
437                             "ls r9 r14 plus r12 Offset",
438                             "ls_r9_r14_plus_r12_Offset"},
439                            {{mi, r1, r9, plus, r4, Offset},
440                             false,
441                             al,
442                             "mi r1 r9 plus r4 Offset",
443                             "mi_r1_r9_plus_r4_Offset"},
444                            {{mi, r7, r10, plus, r4, Offset},
445                             false,
446                             al,
447                             "mi r7 r10 plus r4 Offset",
448                             "mi_r7_r10_plus_r4_Offset"},
449                            {{gt, r6, r2, plus, r5, Offset},
450                             false,
451                             al,
452                             "gt r6 r2 plus r5 Offset",
453                             "gt_r6_r2_plus_r5_Offset"},
454                            {{eq, r10, r8, plus, r11, Offset},
455                             false,
456                             al,
457                             "eq r10 r8 plus r11 Offset",
458                             "eq_r10_r8_plus_r11_Offset"},
459                            {{le, r10, r1, plus, r7, Offset},
460                             false,
461                             al,
462                             "le r10 r1 plus r7 Offset",
463                             "le_r10_r1_plus_r7_Offset"},
464                            {{pl, r8, r14, plus, r8, Offset},
465                             false,
466                             al,
467                             "pl r8 r14 plus r8 Offset",
468                             "pl_r8_r14_plus_r8_Offset"},
469                            {{gt, r5, r1, plus, r3, Offset},
470                             false,
471                             al,
472                             "gt r5 r1 plus r3 Offset",
473                             "gt_r5_r1_plus_r3_Offset"},
474                            {{cs, r10, r4, plus, r13, Offset},
475                             false,
476                             al,
477                             "cs r10 r4 plus r13 Offset",
478                             "cs_r10_r4_plus_r13_Offset"},
479                            {{mi, r10, r5, plus, r2, Offset},
480                             false,
481                             al,
482                             "mi r10 r5 plus r2 Offset",
483                             "mi_r10_r5_plus_r2_Offset"},
484                            {{cc, r6, r0, plus, r11, Offset},
485                             false,
486                             al,
487                             "cc r6 r0 plus r11 Offset",
488                             "cc_r6_r0_plus_r11_Offset"},
489                            {{eq, r3, r9, plus, r2, Offset},
490                             false,
491                             al,
492                             "eq r3 r9 plus r2 Offset",
493                             "eq_r3_r9_plus_r2_Offset"},
494                            {{al, r1, r0, plus, r3, Offset},
495                             false,
496                             al,
497                             "al r1 r0 plus r3 Offset",
498                             "al_r1_r0_plus_r3_Offset"},
499                            {{mi, r1, r0, plus, r13, Offset},
500                             false,
501                             al,
502                             "mi r1 r0 plus r13 Offset",
503                             "mi_r1_r0_plus_r13_Offset"},
504                            {{cc, r4, r4, plus, r5, Offset},
505                             false,
506                             al,
507                             "cc r4 r4 plus r5 Offset",
508                             "cc_r4_r4_plus_r5_Offset"},
509                            {{al, r2, r6, plus, r11, Offset},
510                             false,
511                             al,
512                             "al r2 r6 plus r11 Offset",
513                             "al_r2_r6_plus_r11_Offset"},
514                            {{ls, r1, r5, plus, r4, Offset},
515                             false,
516                             al,
517                             "ls r1 r5 plus r4 Offset",
518                             "ls_r1_r5_plus_r4_Offset"},
519                            {{eq, r0, r3, plus, r4, Offset},
520                             false,
521                             al,
522                             "eq r0 r3 plus r4 Offset",
523                             "eq_r0_r3_plus_r4_Offset"},
524                            {{lt, r7, r11, plus, r10, Offset},
525                             false,
526                             al,
527                             "lt r7 r11 plus r10 Offset",
528                             "lt_r7_r11_plus_r10_Offset"},
529                            {{vc, r3, r0, plus, r13, Offset},
530                             false,
531                             al,
532                             "vc r3 r0 plus r13 Offset",
533                             "vc_r3_r0_plus_r13_Offset"},
534                            {{ls, r3, r3, plus, r7, Offset},
535                             false,
536                             al,
537                             "ls r3 r3 plus r7 Offset",
538                             "ls_r3_r3_plus_r7_Offset"},
539                            {{al, r5, r14, plus, r3, Offset},
540                             false,
541                             al,
542                             "al r5 r14 plus r3 Offset",
543                             "al_r5_r14_plus_r3_Offset"},
544                            {{ne, r2, r13, plus, r9, Offset},
545                             false,
546                             al,
547                             "ne r2 r13 plus r9 Offset",
548                             "ne_r2_r13_plus_r9_Offset"},
549                            {{lt, r6, r2, plus, r11, Offset},
550                             false,
551                             al,
552                             "lt r6 r2 plus r11 Offset",
553                             "lt_r6_r2_plus_r11_Offset"},
554                            {{vc, r9, r2, plus, r13, Offset},
555                             false,
556                             al,
557                             "vc r9 r2 plus r13 Offset",
558                             "vc_r9_r2_plus_r13_Offset"},
559                            {{ne, r5, r9, plus, r6, Offset},
560                             false,
561                             al,
562                             "ne r5 r9 plus r6 Offset",
563                             "ne_r5_r9_plus_r6_Offset"},
564                            {{vc, r4, r9, plus, r8, Offset},
565                             false,
566                             al,
567                             "vc r4 r9 plus r8 Offset",
568                             "vc_r4_r9_plus_r8_Offset"},
569                            {{cc, r6, r9, plus, r2, Offset},
570                             false,
571                             al,
572                             "cc r6 r9 plus r2 Offset",
573                             "cc_r6_r9_plus_r2_Offset"},
574                            {{vs, r8, r7, plus, r13, Offset},
575                             false,
576                             al,
577                             "vs r8 r7 plus r13 Offset",
578                             "vs_r8_r7_plus_r13_Offset"},
579                            {{pl, r14, r14, plus, r7, Offset},
580                             false,
581                             al,
582                             "pl r14 r14 plus r7 Offset",
583                             "pl_r14_r14_plus_r7_Offset"},
584                            {{eq, r8, r2, plus, r6, Offset},
585                             false,
586                             al,
587                             "eq r8 r2 plus r6 Offset",
588                             "eq_r8_r2_plus_r6_Offset"},
589                            {{al, r13, r13, plus, r13, Offset},
590                             false,
591                             al,
592                             "al r13 r13 plus r13 Offset",
593                             "al_r13_r13_plus_r13_Offset"},
594                            {{gt, r12, r14, plus, r5, Offset},
595                             false,
596                             al,
597                             "gt r12 r14 plus r5 Offset",
598                             "gt_r12_r14_plus_r5_Offset"},
599                            {{lt, r14, r7, plus, r1, Offset},
600                             false,
601                             al,
602                             "lt r14 r7 plus r1 Offset",
603                             "lt_r14_r7_plus_r1_Offset"},
604                            {{al, r0, r0, minus, r2, Offset},
605                             false,
606                             al,
607                             "al r0 r0 minus r2 Offset",
608                             "al_r0_r0_minus_r2_Offset"},
609                            {{al, r0, r0, minus, r8, Offset},
610                             false,
611                             al,
612                             "al r0 r0 minus r8 Offset",
613                             "al_r0_r0_minus_r8_Offset"},
614                            {{al, r0, r9, plus, r14, Offset},
615                             false,
616                             al,
617                             "al r0 r9 plus r14 Offset",
618                             "al_r0_r9_plus_r14_Offset"},
619                            {{al, r0, r10, minus, r6, Offset},
620                             false,
621                             al,
622                             "al r0 r10 minus r6 Offset",
623                             "al_r0_r10_minus_r6_Offset"},
624                            {{al, r0, r5, minus, r8, Offset},
625                             false,
626                             al,
627                             "al r0 r5 minus r8 Offset",
628                             "al_r0_r5_minus_r8_Offset"},
629                            {{al, r0, r14, minus, r10, Offset},
630                             false,
631                             al,
632                             "al r0 r14 minus r10 Offset",
633                             "al_r0_r14_minus_r10_Offset"},
634                            {{al, r0, r0, minus, r1, Offset},
635                             false,
636                             al,
637                             "al r0 r0 minus r1 Offset",
638                             "al_r0_r0_minus_r1_Offset"},
639                            {{al, r0, r2, minus, r7, Offset},
640                             false,
641                             al,
642                             "al r0 r2 minus r7 Offset",
643                             "al_r0_r2_minus_r7_Offset"},
644                            {{al, r0, r12, minus, r7, Offset},
645                             false,
646                             al,
647                             "al r0 r12 minus r7 Offset",
648                             "al_r0_r12_minus_r7_Offset"},
649                            {{al, r0, r6, minus, r3, Offset},
650                             false,
651                             al,
652                             "al r0 r6 minus r3 Offset",
653                             "al_r0_r6_minus_r3_Offset"},
654                            {{al, r0, r4, minus, r11, Offset},
655                             false,
656                             al,
657                             "al r0 r4 minus r11 Offset",
658                             "al_r0_r4_minus_r11_Offset"},
659                            {{al, r0, r12, plus, r9, Offset},
660                             false,
661                             al,
662                             "al r0 r12 plus r9 Offset",
663                             "al_r0_r12_plus_r9_Offset"},
664                            {{al, r0, r12, minus, r14, Offset},
665                             false,
666                             al,
667                             "al r0 r12 minus r14 Offset",
668                             "al_r0_r12_minus_r14_Offset"},
669                            {{al, r0, r4, minus, r1, Offset},
670                             false,
671                             al,
672                             "al r0 r4 minus r1 Offset",
673                             "al_r0_r4_minus_r1_Offset"},
674                            {{al, r0, r12, plus, r4, Offset},
675                             false,
676                             al,
677                             "al r0 r12 plus r4 Offset",
678                             "al_r0_r12_plus_r4_Offset"},
679                            {{al, r0, r13, plus, r5, Offset},
680                             false,
681                             al,
682                             "al r0 r13 plus r5 Offset",
683                             "al_r0_r13_plus_r5_Offset"},
684                            {{al, r0, r9, plus, r9, Offset},
685                             false,
686                             al,
687                             "al r0 r9 plus r9 Offset",
688                             "al_r0_r9_plus_r9_Offset"},
689                            {{al, r0, r9, plus, r5, Offset},
690                             false,
691                             al,
692                             "al r0 r9 plus r5 Offset",
693                             "al_r0_r9_plus_r5_Offset"},
694                            {{al, r0, r2, plus, r11, Offset},
695                             false,
696                             al,
697                             "al r0 r2 plus r11 Offset",
698                             "al_r0_r2_plus_r11_Offset"},
699                            {{al, r0, r13, minus, r0, Offset},
700                             false,
701                             al,
702                             "al r0 r13 minus r0 Offset",
703                             "al_r0_r13_minus_r0_Offset"},
704                            {{al, r0, r12, minus, r2, Offset},
705                             false,
706                             al,
707                             "al r0 r12 minus r2 Offset",
708                             "al_r0_r12_minus_r2_Offset"},
709                            {{al, r0, r1, plus, r14, Offset},
710                             false,
711                             al,
712                             "al r0 r1 plus r14 Offset",
713                             "al_r0_r1_plus_r14_Offset"},
714                            {{al, r0, r2, plus, r12, Offset},
715                             false,
716                             al,
717                             "al r0 r2 plus r12 Offset",
718                             "al_r0_r2_plus_r12_Offset"},
719                            {{al, r0, r8, minus, r11, Offset},
720                             false,
721                             al,
722                             "al r0 r8 minus r11 Offset",
723                             "al_r0_r8_minus_r11_Offset"},
724                            {{al, r0, r2, plus, r0, Offset},
725                             false,
726                             al,
727                             "al r0 r2 plus r0 Offset",
728                             "al_r0_r2_plus_r0_Offset"},
729                            {{al, r0, r13, minus, r13, Offset},
730                             false,
731                             al,
732                             "al r0 r13 minus r13 Offset",
733                             "al_r0_r13_minus_r13_Offset"},
734                            {{al, r0, r13, minus, r4, Offset},
735                             false,
736                             al,
737                             "al r0 r13 minus r4 Offset",
738                             "al_r0_r13_minus_r4_Offset"},
739                            {{al, r0, r13, plus, r4, Offset},
740                             false,
741                             al,
742                             "al r0 r13 plus r4 Offset",
743                             "al_r0_r13_plus_r4_Offset"},
744                            {{al, r0, r4, minus, r14, Offset},
745                             false,
746                             al,
747                             "al r0 r4 minus r14 Offset",
748                             "al_r0_r4_minus_r14_Offset"},
749                            {{al, r0, r11, plus, r9, Offset},
750                             false,
751                             al,
752                             "al r0 r11 plus r9 Offset",
753                             "al_r0_r11_plus_r9_Offset"},
754                            {{al, r0, r3, plus, r10, Offset},
755                             false,
756                             al,
757                             "al r0 r3 plus r10 Offset",
758                             "al_r0_r3_plus_r10_Offset"},
759                            {{al, r0, r4, minus, r3, Offset},
760                             false,
761                             al,
762                             "al r0 r4 minus r3 Offset",
763                             "al_r0_r4_minus_r3_Offset"},
764                            {{al, r0, r12, minus, r9, Offset},
765                             false,
766                             al,
767                             "al r0 r12 minus r9 Offset",
768                             "al_r0_r12_minus_r9_Offset"},
769                            {{al, r0, r3, plus, r1, Offset},
770                             false,
771                             al,
772                             "al r0 r3 plus r1 Offset",
773                             "al_r0_r3_plus_r1_Offset"},
774                            {{al, r0, r10, minus, r7, Offset},
775                             false,
776                             al,
777                             "al r0 r10 minus r7 Offset",
778                             "al_r0_r10_minus_r7_Offset"},
779                            {{al, r0, r6, plus, r9, Offset},
780                             false,
781                             al,
782                             "al r0 r6 plus r9 Offset",
783                             "al_r0_r6_plus_r9_Offset"},
784                            {{al, r0, r9, minus, r7, Offset},
785                             false,
786                             al,
787                             "al r0 r9 minus r7 Offset",
788                             "al_r0_r9_minus_r7_Offset"},
789                            {{al, r0, r14, minus, r0, Offset},
790                             false,
791                             al,
792                             "al r0 r14 minus r0 Offset",
793                             "al_r0_r14_minus_r0_Offset"},
794                            {{al, r0, r4, plus, r3, Offset},
795                             false,
796                             al,
797                             "al r0 r4 plus r3 Offset",
798                             "al_r0_r4_plus_r3_Offset"},
799                            {{al, r0, r12, minus, r4, Offset},
800                             false,
801                             al,
802                             "al r0 r12 minus r4 Offset",
803                             "al_r0_r12_minus_r4_Offset"},
804                            {{al, r0, r13, plus, r7, Offset},
805                             false,
806                             al,
807                             "al r0 r13 plus r7 Offset",
808                             "al_r0_r13_plus_r7_Offset"},
809                            {{al, r0, r7, minus, r0, Offset},
810                             false,
811                             al,
812                             "al r0 r7 minus r0 Offset",
813                             "al_r0_r7_minus_r0_Offset"},
814                            {{al, r0, r12, minus, r11, Offset},
815                             false,
816                             al,
817                             "al r0 r12 minus r11 Offset",
818                             "al_r0_r12_minus_r11_Offset"},
819                            {{al, r0, r0, plus, r4, Offset},
820                             false,
821                             al,
822                             "al r0 r0 plus r4 Offset",
823                             "al_r0_r0_plus_r4_Offset"},
824                            {{al, r0, r1, plus, r10, Offset},
825                             false,
826                             al,
827                             "al r0 r1 plus r10 Offset",
828                             "al_r0_r1_plus_r10_Offset"},
829                            {{al, r0, r5, minus, r6, Offset},
830                             false,
831                             al,
832                             "al r0 r5 minus r6 Offset",
833                             "al_r0_r5_minus_r6_Offset"},
834                            {{al, r0, r2, minus, r8, Offset},
835                             false,
836                             al,
837                             "al r0 r2 minus r8 Offset",
838                             "al_r0_r2_minus_r8_Offset"},
839                            {{al, r0, r4, minus, r4, Offset},
840                             false,
841                             al,
842                             "al r0 r4 minus r4 Offset",
843                             "al_r0_r4_minus_r4_Offset"},
844                            {{al, r0, r7, minus, r1, Offset},
845                             false,
846                             al,
847                             "al r0 r7 minus r1 Offset",
848                             "al_r0_r7_minus_r1_Offset"},
849                            {{al, r0, r8, minus, r13, Offset},
850                             false,
851                             al,
852                             "al r0 r8 minus r13 Offset",
853                             "al_r0_r8_minus_r13_Offset"},
854                            {{al, r0, r6, plus, r12, Offset},
855                             false,
856                             al,
857                             "al r0 r6 plus r12 Offset",
858                             "al_r0_r6_plus_r12_Offset"},
859                            {{al, r0, r9, plus, r3, Offset},
860                             false,
861                             al,
862                             "al r0 r9 plus r3 Offset",
863                             "al_r0_r9_plus_r3_Offset"},
864                            {{al, r0, r14, plus, r11, Offset},
865                             false,
866                             al,
867                             "al r0 r14 plus r11 Offset",
868                             "al_r0_r14_plus_r11_Offset"},
869                            {{al, r0, r10, minus, r1, Offset},
870                             false,
871                             al,
872                             "al r0 r10 minus r1 Offset",
873                             "al_r0_r10_minus_r1_Offset"},
874                            {{al, r0, r13, plus, r11, Offset},
875                             false,
876                             al,
877                             "al r0 r13 plus r11 Offset",
878                             "al_r0_r13_plus_r11_Offset"},
879                            {{al, r0, r8, plus, r13, Offset},
880                             false,
881                             al,
882                             "al r0 r8 plus r13 Offset",
883                             "al_r0_r8_plus_r13_Offset"},
884                            {{al, r0, r1, minus, r4, Offset},
885                             false,
886                             al,
887                             "al r0 r1 minus r4 Offset",
888                             "al_r0_r1_minus_r4_Offset"},
889                            {{al, r0, r13, plus, r10, Offset},
890                             false,
891                             al,
892                             "al r0 r13 plus r10 Offset",
893                             "al_r0_r13_plus_r10_Offset"},
894                            {{al, r0, r4, plus, r4, Offset},
895                             false,
896                             al,
897                             "al r0 r4 plus r4 Offset",
898                             "al_r0_r4_plus_r4_Offset"},
899                            {{al, r0, r7, minus, r7, Offset},
900                             false,
901                             al,
902                             "al r0 r7 minus r7 Offset",
903                             "al_r0_r7_minus_r7_Offset"},
904                            {{al, r0, r3, minus, r12, Offset},
905                             false,
906                             al,
907                             "al r0 r3 minus r12 Offset",
908                             "al_r0_r3_minus_r12_Offset"},
909                            {{al, r0, r10, minus, r10, Offset},
910                             false,
911                             al,
912                             "al r0 r10 minus r10 Offset",
913                             "al_r0_r10_minus_r10_Offset"},
914                            {{al, r0, r8, minus, r4, Offset},
915                             false,
916                             al,
917                             "al r0 r8 minus r4 Offset",
918                             "al_r0_r8_minus_r4_Offset"},
919                            {{al, r0, r1, plus, r3, Offset},
920                             false,
921                             al,
922                             "al r0 r1 plus r3 Offset",
923                             "al_r0_r1_plus_r3_Offset"},
924                            {{al, r0, r5, minus, r10, Offset},
925                             false,
926                             al,
927                             "al r0 r5 minus r10 Offset",
928                             "al_r0_r5_minus_r10_Offset"},
929                            {{al, r0, r1, minus, r0, Offset},
930                             false,
931                             al,
932                             "al r0 r1 minus r0 Offset",
933                             "al_r0_r1_minus_r0_Offset"},
934                            {{al, r0, r6, minus, r13, Offset},
935                             false,
936                             al,
937                             "al r0 r6 minus r13 Offset",
938                             "al_r0_r6_minus_r13_Offset"},
939                            {{al, r0, r1, minus, r7, Offset},
940                             false,
941                             al,
942                             "al r0 r1 minus r7 Offset",
943                             "al_r0_r1_minus_r7_Offset"},
944                            {{al, r0, r12, plus, r8, Offset},
945                             false,
946                             al,
947                             "al r0 r12 plus r8 Offset",
948                             "al_r0_r12_plus_r8_Offset"},
949                            {{al, r0, r5, minus, r5, Offset},
950                             false,
951                             al,
952                             "al r0 r5 minus r5 Offset",
953                             "al_r0_r5_minus_r5_Offset"},
954                            {{al, r0, r0, plus, r6, Offset},
955                             false,
956                             al,
957                             "al r0 r0 plus r6 Offset",
958                             "al_r0_r0_plus_r6_Offset"},
959                            {{al, r0, r11, minus, r0, Offset},
960                             false,
961                             al,
962                             "al r0 r11 minus r0 Offset",
963                             "al_r0_r11_minus_r0_Offset"},
964                            {{al, r0, r11, plus, r13, Offset},
965                             false,
966                             al,
967                             "al r0 r11 plus r13 Offset",
968                             "al_r0_r11_plus_r13_Offset"},
969                            {{al, r0, r6, minus, r2, Offset},
970                             false,
971                             al,
972                             "al r0 r6 minus r2 Offset",
973                             "al_r0_r6_minus_r2_Offset"},
974                            {{al, r0, r2, minus, r6, Offset},
975                             false,
976                             al,
977                             "al r0 r2 minus r6 Offset",
978                             "al_r0_r2_minus_r6_Offset"},
979                            {{al, r0, r11, plus, r10, Offset},
980                             false,
981                             al,
982                             "al r0 r11 plus r10 Offset",
983                             "al_r0_r11_plus_r10_Offset"},
984                            {{al, r0, r0, minus, r0, Offset},
985                             false,
986                             al,
987                             "al r0 r0 minus r0 Offset",
988                             "al_r0_r0_minus_r0_Offset"},
989                            {{al, r0, r9, minus, r13, Offset},
990                             false,
991                             al,
992                             "al r0 r9 minus r13 Offset",
993                             "al_r0_r9_minus_r13_Offset"},
994                            {{al, r0, r5, minus, r0, Offset},
995                             false,
996                             al,
997                             "al r0 r5 minus r0 Offset",
998                             "al_r0_r5_minus_r0_Offset"},
999                            {{al, r0, r5, plus, r2, Offset},
1000                             false,
1001                             al,
1002                             "al r0 r5 plus r2 Offset",
1003                             "al_r0_r5_plus_r2_Offset"},
1004                            {{al, r0, r11, minus, r10, Offset},
1005                             false,
1006                             al,
1007                             "al r0 r11 minus r10 Offset",
1008                             "al_r0_r11_minus_r10_Offset"},
1009                            {{al, r0, r8, plus, r12, Offset},
1010                             false,
1011                             al,
1012                             "al r0 r8 plus r12 Offset",
1013                             "al_r0_r8_plus_r12_Offset"},
1014                            {{al, r0, r8, minus, r6, Offset},
1015                             false,
1016                             al,
1017                             "al r0 r8 minus r6 Offset",
1018                             "al_r0_r8_minus_r6_Offset"},
1019                            {{al, r0, r0, minus, r4, Offset},
1020                             false,
1021                             al,
1022                             "al r0 r0 minus r4 Offset",
1023                             "al_r0_r0_minus_r4_Offset"},
1024                            {{al, r0, r4, plus, r9, Offset},
1025                             false,
1026                             al,
1027                             "al r0 r4 plus r9 Offset",
1028                             "al_r0_r4_plus_r9_Offset"},
1029                            {{al, r0, r12, plus, r11, Offset},
1030                             false,
1031                             al,
1032                             "al r0 r12 plus r11 Offset",
1033                             "al_r0_r12_plus_r11_Offset"},
1034                            {{al, r0, r1, minus, r1, Offset},
1035                             false,
1036                             al,
1037                             "al r0 r1 minus r1 Offset",
1038                             "al_r0_r1_minus_r1_Offset"},
1039                            {{al, r0, r13, minus, r14, Offset},
1040                             false,
1041                             al,
1042                             "al r0 r13 minus r14 Offset",
1043                             "al_r0_r13_minus_r14_Offset"},
1044                            {{al, r0, r13, plus, r0, Offset},
1045                             false,
1046                             al,
1047                             "al r0 r13 plus r0 Offset",
1048                             "al_r0_r13_plus_r0_Offset"},
1049                            {{al, r0, r7, minus, r14, Offset},
1050                             false,
1051                             al,
1052                             "al r0 r7 minus r14 Offset",
1053                             "al_r0_r7_minus_r14_Offset"},
1054                            {{al, r0, r6, minus, r8, Offset},
1055                             false,
1056                             al,
1057                             "al r0 r6 minus r8 Offset",
1058                             "al_r0_r6_minus_r8_Offset"},
1059                            {{al, r0, r7, plus, r0, Offset},
1060                             false,
1061                             al,
1062                             "al r0 r7 plus r0 Offset",
1063                             "al_r0_r7_plus_r0_Offset"},
1064                            {{al, r0, r10, plus, r7, Offset},
1065                             false,
1066                             al,
1067                             "al r0 r10 plus r7 Offset",
1068                             "al_r0_r10_plus_r7_Offset"},
1069                            {{al, r0, r6, minus, r0, Offset},
1070                             false,
1071                             al,
1072                             "al r0 r6 minus r0 Offset",
1073                             "al_r0_r6_minus_r0_Offset"},
1074                            {{al, r0, r2, plus, r4, Offset},
1075                             false,
1076                             al,
1077                             "al r0 r2 plus r4 Offset",
1078                             "al_r0_r2_plus_r4_Offset"},
1079                            {{al, r0, r6, minus, r5, Offset},
1080                             false,
1081                             al,
1082                             "al r0 r6 minus r5 Offset",
1083                             "al_r0_r6_minus_r5_Offset"},
1084                            {{al, r0, r3, minus, r7, Offset},
1085                             false,
1086                             al,
1087                             "al r0 r3 minus r7 Offset",
1088                             "al_r0_r3_minus_r7_Offset"},
1089                            {{al, r0, r7, minus, r2, Offset},
1090                             false,
1091                             al,
1092                             "al r0 r7 minus r2 Offset",
1093                             "al_r0_r7_minus_r2_Offset"},
1094                            {{al, r0, r4, minus, r8, Offset},
1095                             false,
1096                             al,
1097                             "al r0 r4 minus r8 Offset",
1098                             "al_r0_r4_minus_r8_Offset"},
1099                            {{al, r0, r4, plus, r14, Offset},
1100                             false,
1101                             al,
1102                             "al r0 r4 plus r14 Offset",
1103                             "al_r0_r4_plus_r14_Offset"},
1104                            {{al, r0, r10, minus, r2, Offset},
1105                             false,
1106                             al,
1107                             "al r0 r10 minus r2 Offset",
1108                             "al_r0_r10_minus_r2_Offset"},
1109                            {{al, r0, r14, minus, r6, Offset},
1110                             false,
1111                             al,
1112                             "al r0 r14 minus r6 Offset",
1113                             "al_r0_r14_minus_r6_Offset"},
1114                            {{al, r0, r2, minus, r4, Offset},
1115                             false,
1116                             al,
1117                             "al r0 r2 minus r4 Offset",
1118                             "al_r0_r2_minus_r4_Offset"},
1119                            {{al, r0, r12, plus, r0, Offset},
1120                             false,
1121                             al,
1122                             "al r0 r12 plus r0 Offset",
1123                             "al_r0_r12_plus_r0_Offset"},
1124                            {{al, r0, r14, plus, r6, Offset},
1125                             false,
1126                             al,
1127                             "al r0 r14 plus r6 Offset",
1128                             "al_r0_r14_plus_r6_Offset"},
1129                            {{al, r0, r1, plus, r0, Offset},
1130                             false,
1131                             al,
1132                             "al r0 r1 plus r0 Offset",
1133                             "al_r0_r1_plus_r0_Offset"},
1134                            {{al, r0, r9, minus, r3, Offset},
1135                             false,
1136                             al,
1137                             "al r0 r9 minus r3 Offset",
1138                             "al_r0_r9_minus_r3_Offset"},
1139                            {{al, r0, r5, plus, r4, Offset},
1140                             false,
1141                             al,
1142                             "al r0 r5 plus r4 Offset",
1143                             "al_r0_r5_plus_r4_Offset"},
1144                            {{al, r0, r2, plus, r7, Offset},
1145                             false,
1146                             al,
1147                             "al r0 r2 plus r7 Offset",
1148                             "al_r0_r2_plus_r7_Offset"},
1149                            {{al, r0, r5, minus, r9, Offset},
1150                             false,
1151                             al,
1152                             "al r0 r5 minus r9 Offset",
1153                             "al_r0_r5_minus_r9_Offset"},
1154                            {{al, r0, r4, plus, r1, Offset},
1155                             false,
1156                             al,
1157                             "al r0 r4 plus r1 Offset",
1158                             "al_r0_r4_plus_r1_Offset"},
1159                            {{al, r0, r1, minus, r10, Offset},
1160                             false,
1161                             al,
1162                             "al r0 r1 minus r10 Offset",
1163                             "al_r0_r1_minus_r10_Offset"},
1164                            {{al, r0, r5, minus, r4, Offset},
1165                             false,
1166                             al,
1167                             "al r0 r5 minus r4 Offset",
1168                             "al_r0_r5_minus_r4_Offset"},
1169                            {{al, r0, r0, minus, r12, Offset},
1170                             false,
1171                             al,
1172                             "al r0 r0 minus r12 Offset",
1173                             "al_r0_r0_minus_r12_Offset"},
1174                            {{al, r0, r13, minus, r5, Offset},
1175                             false,
1176                             al,
1177                             "al r0 r13 minus r5 Offset",
1178                             "al_r0_r13_minus_r5_Offset"},
1179                            {{al, r0, r4, plus, r5, Offset},
1180                             false,
1181                             al,
1182                             "al r0 r4 plus r5 Offset",
1183                             "al_r0_r4_plus_r5_Offset"},
1184                            {{al, r0, r11, plus, r14, Offset},
1185                             false,
1186                             al,
1187                             "al r0 r11 plus r14 Offset",
1188                             "al_r0_r11_plus_r14_Offset"},
1189                            {{al, r0, r1, minus, r14, Offset},
1190                             false,
1191                             al,
1192                             "al r0 r1 minus r14 Offset",
1193                             "al_r0_r1_minus_r14_Offset"},
1194                            {{al, r0, r14, minus, r13, Offset},
1195                             false,
1196                             al,
1197                             "al r0 r14 minus r13 Offset",
1198                             "al_r0_r14_minus_r13_Offset"},
1199                            {{al, r0, r10, plus, r5, Offset},
1200                             false,
1201                             al,
1202                             "al r0 r10 plus r5 Offset",
1203                             "al_r0_r10_plus_r5_Offset"},
1204                            {{al, r0, r6, minus, r4, Offset},
1205                             false,
1206                             al,
1207                             "al r0 r6 minus r4 Offset",
1208                             "al_r0_r6_minus_r4_Offset"},
1209                            {{al, r0, r9, minus, r10, Offset},
1210                             false,
1211                             al,
1212                             "al r0 r9 minus r10 Offset",
1213                             "al_r0_r9_minus_r10_Offset"},
1214                            {{al, r0, r7, plus, r5, Offset},
1215                             false,
1216                             al,
1217                             "al r0 r7 plus r5 Offset",
1218                             "al_r0_r7_plus_r5_Offset"},
1219                            {{al, r0, r10, minus, r5, Offset},
1220                             false,
1221                             al,
1222                             "al r0 r10 minus r5 Offset",
1223                             "al_r0_r10_minus_r5_Offset"},
1224                            {{al, r0, r12, plus, r12, Offset},
1225                             false,
1226                             al,
1227                             "al r0 r12 plus r12 Offset",
1228                             "al_r0_r12_plus_r12_Offset"},
1229                            {{al, r0, r0, minus, r13, Offset},
1230                             false,
1231                             al,
1232                             "al r0 r0 minus r13 Offset",
1233                             "al_r0_r0_minus_r13_Offset"},
1234                            {{al, r0, r3, minus, r13, Offset},
1235                             false,
1236                             al,
1237                             "al r0 r3 minus r13 Offset",
1238                             "al_r0_r3_minus_r13_Offset"},
1239                            {{al, r0, r2, plus, r8, Offset},
1240                             false,
1241                             al,
1242                             "al r0 r2 plus r8 Offset",
1243                             "al_r0_r2_plus_r8_Offset"},
1244                            {{al, r0, r0, plus, r2, Offset},
1245                             false,
1246                             al,
1247                             "al r0 r0 plus r2 Offset",
1248                             "al_r0_r0_plus_r2_Offset"},
1249                            {{al, r0, r8, plus, r1, Offset},
1250                             false,
1251                             al,
1252                             "al r0 r8 plus r1 Offset",
1253                             "al_r0_r8_plus_r1_Offset"},
1254                            {{al, r0, r9, minus, r2, Offset},
1255                             false,
1256                             al,
1257                             "al r0 r9 minus r2 Offset",
1258                             "al_r0_r9_minus_r2_Offset"},
1259                            {{al, r0, r10, minus, r14, Offset},
1260                             false,
1261                             al,
1262                             "al r0 r10 minus r14 Offset",
1263                             "al_r0_r10_minus_r14_Offset"},
1264                            {{al, r0, r3, plus, r14, Offset},
1265                             false,
1266                             al,
1267                             "al r0 r3 plus r14 Offset",
1268                             "al_r0_r3_plus_r14_Offset"},
1269                            {{al, r0, r12, minus, r3, Offset},
1270                             false,
1271                             al,
1272                             "al r0 r12 minus r3 Offset",
1273                             "al_r0_r12_minus_r3_Offset"},
1274                            {{al, r0, r8, minus, r9, Offset},
1275                             false,
1276                             al,
1277                             "al r0 r8 minus r9 Offset",
1278                             "al_r0_r8_minus_r9_Offset"},
1279                            {{al, r0, r14, minus, r5, Offset},
1280                             false,
1281                             al,
1282                             "al r0 r14 minus r5 Offset",
1283                             "al_r0_r14_minus_r5_Offset"},
1284                            {{al, r0, r10, plus, r14, Offset},
1285                             false,
1286                             al,
1287                             "al r0 r10 plus r14 Offset",
1288                             "al_r0_r10_plus_r14_Offset"},
1289                            {{al, r0, r1, plus, r12, Offset},
1290                             false,
1291                             al,
1292                             "al r0 r1 plus r12 Offset",
1293                             "al_r0_r1_plus_r12_Offset"},
1294                            {{al, r0, r14, minus, r1, Offset},
1295                             false,
1296                             al,
1297                             "al r0 r14 minus r1 Offset",
1298                             "al_r0_r14_minus_r1_Offset"},
1299                            {{al, r0, r8, minus, r12, Offset},
1300                             false,
1301                             al,
1302                             "al r0 r8 minus r12 Offset",
1303                             "al_r0_r8_minus_r12_Offset"},
1304                            {{al, r0, r11, plus, r2, Offset},
1305                             false,
1306                             al,
1307                             "al r0 r11 plus r2 Offset",
1308                             "al_r0_r11_plus_r2_Offset"},
1309                            {{al, r0, r11, minus, r8, Offset},
1310                             false,
1311                             al,
1312                             "al r0 r11 minus r8 Offset",
1313                             "al_r0_r11_minus_r8_Offset"},
1314                            {{al, r0, r11, plus, r3, Offset},
1315                             false,
1316                             al,
1317                             "al r0 r11 plus r3 Offset",
1318                             "al_r0_r11_plus_r3_Offset"},
1319                            {{al, r0, r7, minus, r9, Offset},
1320                             false,
1321                             al,
1322                             "al r0 r7 minus r9 Offset",
1323                             "al_r0_r7_minus_r9_Offset"},
1324                            {{al, r0, r11, minus, r7, Offset},
1325                             false,
1326                             al,
1327                             "al r0 r11 minus r7 Offset",
1328                             "al_r0_r11_minus_r7_Offset"},
1329                            {{al, r0, r12, plus, r1, Offset},
1330                             false,
1331                             al,
1332                             "al r0 r12 plus r1 Offset",
1333                             "al_r0_r12_plus_r1_Offset"},
1334                            {{al, r0, r6, plus, r1, Offset},
1335                             false,
1336                             al,
1337                             "al r0 r6 plus r1 Offset",
1338                             "al_r0_r6_plus_r1_Offset"},
1339                            {{al, r0, r7, plus, r9, Offset},
1340                             false,
1341                             al,
1342                             "al r0 r7 plus r9 Offset",
1343                             "al_r0_r7_plus_r9_Offset"},
1344                            {{al, r0, r9, plus, r4, Offset},
1345                             false,
1346                             al,
1347                             "al r0 r9 plus r4 Offset",
1348                             "al_r0_r9_plus_r4_Offset"},
1349                            {{al, r0, r12, plus, r5, Offset},
1350                             false,
1351                             al,
1352                             "al r0 r12 plus r5 Offset",
1353                             "al_r0_r12_plus_r5_Offset"},
1354                            {{al, r0, r12, plus, r3, Offset},
1355                             false,
1356                             al,
1357                             "al r0 r12 plus r3 Offset",
1358                             "al_r0_r12_plus_r3_Offset"},
1359                            {{al, r0, r3, plus, r5, Offset},
1360                             false,
1361                             al,
1362                             "al r0 r3 plus r5 Offset",
1363                             "al_r0_r3_plus_r5_Offset"},
1364                            {{al, r0, r10, minus, r4, Offset},
1365                             false,
1366                             al,
1367                             "al r0 r10 minus r4 Offset",
1368                             "al_r0_r10_minus_r4_Offset"},
1369                            {{al, r0, r12, minus, r8, Offset},
1370                             false,
1371                             al,
1372                             "al r0 r12 minus r8 Offset",
1373                             "al_r0_r12_minus_r8_Offset"},
1374                            {{al, r0, r12, minus, r5, Offset},
1375                             false,
1376                             al,
1377                             "al r0 r12 minus r5 Offset",
1378                             "al_r0_r12_minus_r5_Offset"},
1379                            {{al, r0, r13, minus, r6, Offset},
1380                             false,
1381                             al,
1382                             "al r0 r13 minus r6 Offset",
1383                             "al_r0_r13_minus_r6_Offset"},
1384                            {{al, r0, r8, plus, r10, Offset},
1385                             false,
1386                             al,
1387                             "al r0 r8 plus r10 Offset",
1388                             "al_r0_r8_plus_r10_Offset"},
1389                            {{al, r0, r0, plus, r7, Offset},
1390                             false,
1391                             al,
1392                             "al r0 r0 plus r7 Offset",
1393                             "al_r0_r0_plus_r7_Offset"},
1394                            {{al, r0, r11, minus, r2, Offset},
1395                             false,
1396                             al,
1397                             "al r0 r11 minus r2 Offset",
1398                             "al_r0_r11_minus_r2_Offset"},
1399                            {{al, r0, r7, plus, r11, Offset},
1400                             false,
1401                             al,
1402                             "al r0 r7 plus r11 Offset",
1403                             "al_r0_r7_plus_r11_Offset"},
1404                            {{al, r0, r13, plus, r3, Offset},
1405                             false,
1406                             al,
1407                             "al r0 r13 plus r3 Offset",
1408                             "al_r0_r13_plus_r3_Offset"},
1409                            {{al, r0, r10, plus, r9, Offset},
1410                             false,
1411                             al,
1412                             "al r0 r10 plus r9 Offset",
1413                             "al_r0_r10_plus_r9_Offset"},
1414                            {{al, r0, r5, minus, r2, Offset},
1415                             false,
1416                             al,
1417                             "al r0 r5 minus r2 Offset",
1418                             "al_r0_r5_minus_r2_Offset"},
1419                            {{al, r0, r12, plus, r7, Offset},
1420                             false,
1421                             al,
1422                             "al r0 r12 plus r7 Offset",
1423                             "al_r0_r12_plus_r7_Offset"},
1424                            {{al, r0, r5, minus, r14, Offset},
1425                             false,
1426                             al,
1427                             "al r0 r5 minus r14 Offset",
1428                             "al_r0_r5_minus_r14_Offset"},
1429                            {{al, r0, r6, minus, r14, Offset},
1430                             false,
1431                             al,
1432                             "al r0 r6 minus r14 Offset",
1433                             "al_r0_r6_minus_r14_Offset"},
1434                            {{al, r0, r2, plus, r3, Offset},
1435                             false,
1436                             al,
1437                             "al r0 r2 plus r3 Offset",
1438                             "al_r0_r2_plus_r3_Offset"},
1439                            {{al, r0, r4, plus, r6, Offset},
1440                             false,
1441                             al,
1442                             "al r0 r4 plus r6 Offset",
1443                             "al_r0_r4_plus_r6_Offset"},
1444                            {{al, r0, r10, plus, r2, Offset},
1445                             false,
1446                             al,
1447                             "al r0 r10 plus r2 Offset",
1448                             "al_r0_r10_plus_r2_Offset"},
1449                            {{al, r0, r5, plus, r9, Offset},
1450                             false,
1451                             al,
1452                             "al r0 r5 plus r9 Offset",
1453                             "al_r0_r5_plus_r9_Offset"},
1454                            {{al, r0, r13, plus, r6, Offset},
1455                             false,
1456                             al,
1457                             "al r0 r13 plus r6 Offset",
1458                             "al_r0_r13_plus_r6_Offset"},
1459                            {{al, r0, r8, minus, r0, Offset},
1460                             false,
1461                             al,
1462                             "al r0 r8 minus r0 Offset",
1463                             "al_r0_r8_minus_r0_Offset"},
1464                            {{al, r0, r9, minus, r14, Offset},
1465                             false,
1466                             al,
1467                             "al r0 r9 minus r14 Offset",
1468                             "al_r0_r9_minus_r14_Offset"},
1469                            {{al, r0, r6, plus, r13, Offset},
1470                             false,
1471                             al,
1472                             "al r0 r6 plus r13 Offset",
1473                             "al_r0_r6_plus_r13_Offset"},
1474                            {{al, r0, r3, minus, r11, Offset},
1475                             false,
1476                             al,
1477                             "al r0 r3 minus r11 Offset",
1478                             "al_r0_r3_minus_r11_Offset"},
1479                            {{al, r0, r11, plus, r4, Offset},
1480                             false,
1481                             al,
1482                             "al r0 r11 plus r4 Offset",
1483                             "al_r0_r11_plus_r4_Offset"},
1484                            {{al, r0, r2, minus, r3, Offset},
1485                             false,
1486                             al,
1487                             "al r0 r2 minus r3 Offset",
1488                             "al_r0_r2_minus_r3_Offset"},
1489                            {{al, r0, r7, minus, r13, Offset},
1490                             false,
1491                             al,
1492                             "al r0 r7 minus r13 Offset",
1493                             "al_r0_r7_minus_r13_Offset"},
1494                            {{al, r0, r2, plus, r5, Offset},
1495                             false,
1496                             al,
1497                             "al r0 r2 plus r5 Offset",
1498                             "al_r0_r2_plus_r5_Offset"},
1499                            {{al, r0, r0, minus, r10, Offset},
1500                             false,
1501                             al,
1502                             "al r0 r0 minus r10 Offset",
1503                             "al_r0_r0_minus_r10_Offset"},
1504                            {{al, r0, r9, plus, r0, Offset},
1505                             false,
1506                             al,
1507                             "al r0 r9 plus r0 Offset",
1508                             "al_r0_r9_plus_r0_Offset"},
1509                            {{al, r0, r0, minus, r6, Offset},
1510                             false,
1511                             al,
1512                             "al r0 r0 minus r6 Offset",
1513                             "al_r0_r0_minus_r6_Offset"},
1514                            {{al, r0, r1, plus, r7, Offset},
1515                             false,
1516                             al,
1517                             "al r0 r1 plus r7 Offset",
1518                             "al_r0_r1_plus_r7_Offset"},
1519                            {{al, r0, r13, minus, r11, Offset},
1520                             false,
1521                             al,
1522                             "al r0 r13 minus r11 Offset",
1523                             "al_r0_r13_minus_r11_Offset"},
1524                            {{al, r0, r7, minus, r11, Offset},
1525                             false,
1526                             al,
1527                             "al r0 r7 minus r11 Offset",
1528                             "al_r0_r7_minus_r11_Offset"},
1529                            {{al, r0, r1, minus, r13, Offset},
1530                             false,
1531                             al,
1532                             "al r0 r1 minus r13 Offset",
1533                             "al_r0_r1_minus_r13_Offset"},
1534                            {{al, r0, r9, plus, r1, Offset},
1535                             false,
1536                             al,
1537                             "al r0 r9 plus r1 Offset",
1538                             "al_r0_r9_plus_r1_Offset"},
1539                            {{al, r0, r10, plus, r12, Offset},
1540                             false,
1541                             al,
1542                             "al r0 r10 plus r12 Offset",
1543                             "al_r0_r10_plus_r12_Offset"},
1544                            {{al, r0, r14, minus, r11, Offset},
1545                             false,
1546                             al,
1547                             "al r0 r14 minus r11 Offset",
1548                             "al_r0_r14_minus_r11_Offset"},
1549                            {{al, r0, r11, minus, r11, Offset},
1550                             false,
1551                             al,
1552                             "al r0 r11 minus r11 Offset",
1553                             "al_r0_r11_minus_r11_Offset"},
1554                            {{al, r0, r8, plus, r9, Offset},
1555                             false,
1556                             al,
1557                             "al r0 r8 plus r9 Offset",
1558                             "al_r0_r8_plus_r9_Offset"},
1559                            {{al, r0, r8, plus, r5, Offset},
1560                             false,
1561                             al,
1562                             "al r0 r8 plus r5 Offset",
1563                             "al_r0_r8_plus_r5_Offset"},
1564                            {{al, r0, r0, plus, r11, Offset},
1565                             false,
1566                             al,
1567                             "al r0 r0 plus r11 Offset",
1568                             "al_r0_r0_plus_r11_Offset"},
1569                            {{al, r0, r7, plus, r3, Offset},
1570                             false,
1571                             al,
1572                             "al r0 r7 plus r3 Offset",
1573                             "al_r0_r7_plus_r3_Offset"},
1574                            {{al, r0, r3, minus, r1, Offset},
1575                             false,
1576                             al,
1577                             "al r0 r3 minus r1 Offset",
1578                             "al_r0_r3_minus_r1_Offset"},
1579                            {{al, r0, r10, minus, r11, Offset},
1580                             false,
1581                             al,
1582                             "al r0 r10 minus r11 Offset",
1583                             "al_r0_r10_minus_r11_Offset"},
1584                            {{al, r0, r4, plus, r2, Offset},
1585                             false,
1586                             al,
1587                             "al r0 r4 plus r2 Offset",
1588                             "al_r0_r4_plus_r2_Offset"},
1589                            {{al, r0, r9, plus, r7, Offset},
1590                             false,
1591                             al,
1592                             "al r0 r9 plus r7 Offset",
1593                             "al_r0_r9_plus_r7_Offset"},
1594                            {{al, r0, r9, minus, r9, Offset},
1595                             false,
1596                             al,
1597                             "al r0 r9 minus r9 Offset",
1598                             "al_r0_r9_minus_r9_Offset"},
1599                            {{al, r0, r1, minus, r9, Offset},
1600                             false,
1601                             al,
1602                             "al r0 r1 minus r9 Offset",
1603                             "al_r0_r1_minus_r9_Offset"},
1604                            {{al, r2, r5, plus, r9, PreIndex},
1605                             false,
1606                             al,
1607                             "al r2 r5 plus r9 PreIndex",
1608                             "al_r2_r5_plus_r9_PreIndex"},
1609                            {{al, r8, r14, plus, r9, PreIndex},
1610                             false,
1611                             al,
1612                             "al r8 r14 plus r9 PreIndex",
1613                             "al_r8_r14_plus_r9_PreIndex"},
1614                            {{al, r2, r10, minus, r3, PreIndex},
1615                             false,
1616                             al,
1617                             "al r2 r10 minus r3 PreIndex",
1618                             "al_r2_r10_minus_r3_PreIndex"},
1619                            {{al, r9, r4, plus, r7, PostIndex},
1620                             false,
1621                             al,
1622                             "al r9 r4 plus r7 PostIndex",
1623                             "al_r9_r4_plus_r7_PostIndex"},
1624                            {{al, r1, r2, plus, r4, PreIndex},
1625                             false,
1626                             al,
1627                             "al r1 r2 plus r4 PreIndex",
1628                             "al_r1_r2_plus_r4_PreIndex"},
1629                            {{al, r5, r9, minus, r14, PostIndex},
1630                             false,
1631                             al,
1632                             "al r5 r9 minus r14 PostIndex",
1633                             "al_r5_r9_minus_r14_PostIndex"},
1634                            {{al, r1, r8, plus, r6, PreIndex},
1635                             false,
1636                             al,
1637                             "al r1 r8 plus r6 PreIndex",
1638                             "al_r1_r8_plus_r6_PreIndex"},
1639                            {{al, r13, r1, minus, r7, PreIndex},
1640                             false,
1641                             al,
1642                             "al r13 r1 minus r7 PreIndex",
1643                             "al_r13_r1_minus_r7_PreIndex"},
1644                            {{al, r14, r7, minus, r5, PostIndex},
1645                             false,
1646                             al,
1647                             "al r14 r7 minus r5 PostIndex",
1648                             "al_r14_r7_minus_r5_PostIndex"},
1649                            {{al, r1, r11, plus, r14, PostIndex},
1650                             false,
1651                             al,
1652                             "al r1 r11 plus r14 PostIndex",
1653                             "al_r1_r11_plus_r14_PostIndex"},
1654                            {{al, r10, r14, minus, r6, PreIndex},
1655                             false,
1656                             al,
1657                             "al r10 r14 minus r6 PreIndex",
1658                             "al_r10_r14_minus_r6_PreIndex"},
1659                            {{al, r1, r13, plus, r11, PostIndex},
1660                             false,
1661                             al,
1662                             "al r1 r13 plus r11 PostIndex",
1663                             "al_r1_r13_plus_r11_PostIndex"},
1664                            {{al, r6, r12, minus, r7, PostIndex},
1665                             false,
1666                             al,
1667                             "al r6 r12 minus r7 PostIndex",
1668                             "al_r6_r12_minus_r7_PostIndex"},
1669                            {{al, r8, r9, minus, r1, PreIndex},
1670                             false,
1671                             al,
1672                             "al r8 r9 minus r1 PreIndex",
1673                             "al_r8_r9_minus_r1_PreIndex"},
1674                            {{al, r2, r11, plus, r4, PostIndex},
1675                             false,
1676                             al,
1677                             "al r2 r11 plus r4 PostIndex",
1678                             "al_r2_r11_plus_r4_PostIndex"},
1679                            {{al, r7, r8, minus, r8, PreIndex},
1680                             false,
1681                             al,
1682                             "al r7 r8 minus r8 PreIndex",
1683                             "al_r7_r8_minus_r8_PreIndex"},
1684                            {{al, r5, r9, plus, r13, PreIndex},
1685                             false,
1686                             al,
1687                             "al r5 r9 plus r13 PreIndex",
1688                             "al_r5_r9_plus_r13_PreIndex"},
1689                            {{al, r1, r6, minus, r6, PostIndex},
1690                             false,
1691                             al,
1692                             "al r1 r6 minus r6 PostIndex",
1693                             "al_r1_r6_minus_r6_PostIndex"},
1694                            {{al, r11, r0, plus, r11, PreIndex},
1695                             false,
1696                             al,
1697                             "al r11 r0 plus r11 PreIndex",
1698                             "al_r11_r0_plus_r11_PreIndex"},
1699                            {{al, r1, r4, minus, r10, PreIndex},
1700                             false,
1701                             al,
1702                             "al r1 r4 minus r10 PreIndex",
1703                             "al_r1_r4_minus_r10_PreIndex"},
1704                            {{al, r10, r3, minus, r1, PreIndex},
1705                             false,
1706                             al,
1707                             "al r10 r3 minus r1 PreIndex",
1708                             "al_r10_r3_minus_r1_PreIndex"},
1709                            {{al, r11, r14, minus, r10, PreIndex},
1710                             false,
1711                             al,
1712                             "al r11 r14 minus r10 PreIndex",
1713                             "al_r11_r14_minus_r10_PreIndex"},
1714                            {{al, r11, r4, plus, r4, PreIndex},
1715                             false,
1716                             al,
1717                             "al r11 r4 plus r4 PreIndex",
1718                             "al_r11_r4_plus_r4_PreIndex"},
1719                            {{al, r8, r4, minus, r7, PreIndex},
1720                             false,
1721                             al,
1722                             "al r8 r4 minus r7 PreIndex",
1723                             "al_r8_r4_minus_r7_PreIndex"},
1724                            {{al, r2, r11, plus, r8, PreIndex},
1725                             false,
1726                             al,
1727                             "al r2 r11 plus r8 PreIndex",
1728                             "al_r2_r11_plus_r8_PreIndex"},
1729                            {{al, r12, r10, minus, r7, PreIndex},
1730                             false,
1731                             al,
1732                             "al r12 r10 minus r7 PreIndex",
1733                             "al_r12_r10_minus_r7_PreIndex"},
1734                            {{al, r14, r2, minus, r7, PreIndex},
1735                             false,
1736                             al,
1737                             "al r14 r2 minus r7 PreIndex",
1738                             "al_r14_r2_minus_r7_PreIndex"},
1739                            {{al, r2, r4, minus, r8, PreIndex},
1740                             false,
1741                             al,
1742                             "al r2 r4 minus r8 PreIndex",
1743                             "al_r2_r4_minus_r8_PreIndex"},
1744                            {{al, r8, r6, plus, r13, PreIndex},
1745                             false,
1746                             al,
1747                             "al r8 r6 plus r13 PreIndex",
1748                             "al_r8_r6_plus_r13_PreIndex"},
1749                            {{al, r9, r13, plus, r3, PostIndex},
1750                             false,
1751                             al,
1752                             "al r9 r13 plus r3 PostIndex",
1753                             "al_r9_r13_plus_r3_PostIndex"},
1754                            {{al, r7, r11, plus, r13, PostIndex},
1755                             false,
1756                             al,
1757                             "al r7 r11 plus r13 PostIndex",
1758                             "al_r7_r11_plus_r13_PostIndex"},
1759                            {{al, r1, r9, minus, r9, PostIndex},
1760                             false,
1761                             al,
1762                             "al r1 r9 minus r9 PostIndex",
1763                             "al_r1_r9_minus_r9_PostIndex"},
1764                            {{al, r5, r8, minus, r11, PostIndex},
1765                             false,
1766                             al,
1767                             "al r5 r8 minus r11 PostIndex",
1768                             "al_r5_r8_minus_r11_PostIndex"},
1769                            {{al, r0, r10, minus, r6, PreIndex},
1770                             false,
1771                             al,
1772                             "al r0 r10 minus r6 PreIndex",
1773                             "al_r0_r10_minus_r6_PreIndex"},
1774                            {{al, r11, r14, minus, r6, PostIndex},
1775                             false,
1776                             al,
1777                             "al r11 r14 minus r6 PostIndex",
1778                             "al_r11_r14_minus_r6_PostIndex"},
1779                            {{al, r5, r8, minus, r10, PreIndex},
1780                             false,
1781                             al,
1782                             "al r5 r8 minus r10 PreIndex",
1783                             "al_r5_r8_minus_r10_PreIndex"},
1784                            {{al, r9, r10, minus, r10, PreIndex},
1785                             false,
1786                             al,
1787                             "al r9 r10 minus r10 PreIndex",
1788                             "al_r9_r10_minus_r10_PreIndex"},
1789                            {{al, r1, r4, plus, r6, PreIndex},
1790                             false,
1791                             al,
1792                             "al r1 r4 plus r6 PreIndex",
1793                             "al_r1_r4_plus_r6_PreIndex"},
1794                            {{al, r11, r10, minus, r2, PreIndex},
1795                             false,
1796                             al,
1797                             "al r11 r10 minus r2 PreIndex",
1798                             "al_r11_r10_minus_r2_PreIndex"},
1799                            {{al, r3, r2, minus, r6, PostIndex},
1800                             false,
1801                             al,
1802                             "al r3 r2 minus r6 PostIndex",
1803                             "al_r3_r2_minus_r6_PostIndex"},
1804                            {{al, r4, r1, plus, r13, PreIndex},
1805                             false,
1806                             al,
1807                             "al r4 r1 plus r13 PreIndex",
1808                             "al_r4_r1_plus_r13_PreIndex"},
1809                            {{al, r2, r7, plus, r3, PostIndex},
1810                             false,
1811                             al,
1812                             "al r2 r7 plus r3 PostIndex",
1813                             "al_r2_r7_plus_r3_PostIndex"},
1814                            {{al, r4, r9, minus, r8, PostIndex},
1815                             false,
1816                             al,
1817                             "al r4 r9 minus r8 PostIndex",
1818                             "al_r4_r9_minus_r8_PostIndex"},
1819                            {{al, r1, r8, plus, r11, PostIndex},
1820                             false,
1821                             al,
1822                             "al r1 r8 plus r11 PostIndex",
1823                             "al_r1_r8_plus_r11_PostIndex"},
1824                            {{al, r0, r2, minus, r7, PostIndex},
1825                             false,
1826                             al,
1827                             "al r0 r2 minus r7 PostIndex",
1828                             "al_r0_r2_minus_r7_PostIndex"},
1829                            {{al, r6, r5, plus, r12, PreIndex},
1830                             false,
1831                             al,
1832                             "al r6 r5 plus r12 PreIndex",
1833                             "al_r6_r5_plus_r12_PreIndex"},
1834                            {{al, r0, r3, plus, r0, PreIndex},
1835                             false,
1836                             al,
1837                             "al r0 r3 plus r0 PreIndex",
1838                             "al_r0_r3_plus_r0_PreIndex"},
1839                            {{al, r5, r4, plus, r8, PostIndex},
1840                             false,
1841                             al,
1842                             "al r5 r4 plus r8 PostIndex",
1843                             "al_r5_r4_plus_r8_PostIndex"},
1844                            {{al, r6, r0, plus, r6, PostIndex},
1845                             false,
1846                             al,
1847                             "al r6 r0 plus r6 PostIndex",
1848                             "al_r6_r0_plus_r6_PostIndex"},
1849                            {{al, r1, r12, plus, r9, PreIndex},
1850                             false,
1851                             al,
1852                             "al r1 r12 plus r9 PreIndex",
1853                             "al_r1_r12_plus_r9_PreIndex"},
1854                            {{al, r1, r6, plus, r11, PreIndex},
1855                             false,
1856                             al,
1857                             "al r1 r6 plus r11 PreIndex",
1858                             "al_r1_r6_plus_r11_PreIndex"},
1859                            {{al, r6, r8, minus, r6, PostIndex},
1860                             false,
1861                             al,
1862                             "al r6 r8 minus r6 PostIndex",
1863                             "al_r6_r8_minus_r6_PostIndex"},
1864                            {{al, r3, r2, plus, r14, PreIndex},
1865                             false,
1866                             al,
1867                             "al r3 r2 plus r14 PreIndex",
1868                             "al_r3_r2_plus_r14_PreIndex"},
1869                            {{al, r9, r0, minus, r6, PreIndex},
1870                             false,
1871                             al,
1872                             "al r9 r0 minus r6 PreIndex",
1873                             "al_r9_r0_minus_r6_PreIndex"},
1874                            {{al, r7, r2, minus, r2, PreIndex},
1875                             false,
1876                             al,
1877                             "al r7 r2 minus r2 PreIndex",
1878                             "al_r7_r2_minus_r2_PreIndex"},
1879                            {{al, r13, r0, plus, r12, PreIndex},
1880                             false,
1881                             al,
1882                             "al r13 r0 plus r12 PreIndex",
1883                             "al_r13_r0_plus_r12_PreIndex"},
1884                            {{al, r7, r14, minus, r3, PreIndex},
1885                             false,
1886                             al,
1887                             "al r7 r14 minus r3 PreIndex",
1888                             "al_r7_r14_minus_r3_PreIndex"},
1889                            {{al, r1, r3, plus, r13, PreIndex},
1890                             false,
1891                             al,
1892                             "al r1 r3 plus r13 PreIndex",
1893                             "al_r1_r3_plus_r13_PreIndex"},
1894                            {{al, r0, r4, plus, r8, PostIndex},
1895                             false,
1896                             al,
1897                             "al r0 r4 plus r8 PostIndex",
1898                             "al_r0_r4_plus_r8_PostIndex"},
1899                            {{al, r0, r11, minus, r2, PostIndex},
1900                             false,
1901                             al,
1902                             "al r0 r11 minus r2 PostIndex",
1903                             "al_r0_r11_minus_r2_PostIndex"},
1904                            {{al, r9, r6, minus, r12, PreIndex},
1905                             false,
1906                             al,
1907                             "al r9 r6 minus r12 PreIndex",
1908                             "al_r9_r6_minus_r12_PreIndex"},
1909                            {{al, r8, r12, minus, r9, PreIndex},
1910                             false,
1911                             al,
1912                             "al r8 r12 minus r9 PreIndex",
1913                             "al_r8_r12_minus_r9_PreIndex"},
1914                            {{al, r12, r10, minus, r11, PreIndex},
1915                             false,
1916                             al,
1917                             "al r12 r10 minus r11 PreIndex",
1918                             "al_r12_r10_minus_r11_PreIndex"},
1919                            {{al, r10, r7, plus, r1, PostIndex},
1920                             false,
1921                             al,
1922                             "al r10 r7 plus r1 PostIndex",
1923                             "al_r10_r7_plus_r1_PostIndex"},
1924                            {{al, r8, r14, minus, r6, PreIndex},
1925                             false,
1926                             al,
1927                             "al r8 r14 minus r6 PreIndex",
1928                             "al_r8_r14_minus_r6_PreIndex"},
1929                            {{al, r6, r8, minus, r2, PostIndex},
1930                             false,
1931                             al,
1932                             "al r6 r8 minus r2 PostIndex",
1933                             "al_r6_r8_minus_r2_PostIndex"},
1934                            {{al, r10, r9, plus, r5, PostIndex},
1935                             false,
1936                             al,
1937                             "al r10 r9 plus r5 PostIndex",
1938                             "al_r10_r9_plus_r5_PostIndex"},
1939                            {{al, r5, r12, minus, r4, PreIndex},
1940                             false,
1941                             al,
1942                             "al r5 r12 minus r4 PreIndex",
1943                             "al_r5_r12_minus_r4_PreIndex"},
1944                            {{al, r5, r4, plus, r4, PreIndex},
1945                             false,
1946                             al,
1947                             "al r5 r4 plus r4 PreIndex",
1948                             "al_r5_r4_plus_r4_PreIndex"},
1949                            {{al, r8, r9, minus, r3, PreIndex},
1950                             false,
1951                             al,
1952                             "al r8 r9 minus r3 PreIndex",
1953                             "al_r8_r9_minus_r3_PreIndex"},
1954                            {{al, r7, r11, minus, r5, PreIndex},
1955                             false,
1956                             al,
1957                             "al r7 r11 minus r5 PreIndex",
1958                             "al_r7_r11_minus_r5_PreIndex"},
1959                            {{al, r9, r6, minus, r6, PostIndex},
1960                             false,
1961                             al,
1962                             "al r9 r6 minus r6 PostIndex",
1963                             "al_r9_r6_minus_r6_PostIndex"},
1964                            {{al, r11, r5, plus, r3, PreIndex},
1965                             false,
1966                             al,
1967                             "al r11 r5 plus r3 PreIndex",
1968                             "al_r11_r5_plus_r3_PreIndex"},
1969                            {{al, r9, r0, minus, r4, PreIndex},
1970                             false,
1971                             al,
1972                             "al r9 r0 minus r4 PreIndex",
1973                             "al_r9_r0_minus_r4_PreIndex"},
1974                            {{al, r0, r12, plus, r1, PostIndex},
1975                             false,
1976                             al,
1977                             "al r0 r12 plus r1 PostIndex",
1978                             "al_r0_r12_plus_r1_PostIndex"},
1979                            {{al, r1, r0, minus, r6, PreIndex},
1980                             false,
1981                             al,
1982                             "al r1 r0 minus r6 PreIndex",
1983                             "al_r1_r0_minus_r6_PreIndex"},
1984                            {{al, r10, r0, minus, r5, PreIndex},
1985                             false,
1986                             al,
1987                             "al r10 r0 minus r5 PreIndex",
1988                             "al_r10_r0_minus_r5_PreIndex"},
1989                            {{al, r8, r4, plus, r3, PreIndex},
1990                             false,
1991                             al,
1992                             "al r8 r4 plus r3 PreIndex",
1993                             "al_r8_r4_plus_r3_PreIndex"},
1994                            {{al, r14, r12, minus, r5, PreIndex},
1995                             false,
1996                             al,
1997                             "al r14 r12 minus r5 PreIndex",
1998                             "al_r14_r12_minus_r5_PreIndex"},
1999                            {{al, r4, r13, minus, r9, PreIndex},
2000                             false,
2001                             al,
2002                             "al r4 r13 minus r9 PreIndex",
2003                             "al_r4_r13_minus_r9_PreIndex"},
2004                            {{al, r8, r13, minus, r4, PreIndex},
2005                             false,
2006                             al,
2007                             "al r8 r13 minus r4 PreIndex",
2008                             "al_r8_r13_minus_r4_PreIndex"},
2009                            {{al, r11, r6, minus, r8, PostIndex},
2010                             false,
2011                             al,
2012                             "al r11 r6 minus r8 PostIndex",
2013                             "al_r11_r6_minus_r8_PostIndex"},
2014                            {{al, r9, r5, plus, r9, PostIndex},
2015                             false,
2016                             al,
2017                             "al r9 r5 plus r9 PostIndex",
2018                             "al_r9_r5_plus_r9_PostIndex"},
2019                            {{al, r9, r4, minus, r6, PreIndex},
2020                             false,
2021                             al,
2022                             "al r9 r4 minus r6 PreIndex",
2023                             "al_r9_r4_minus_r6_PreIndex"},
2024                            {{al, r4, r9, minus, r13, PreIndex},
2025                             false,
2026                             al,
2027                             "al r4 r9 minus r13 PreIndex",
2028                             "al_r4_r9_minus_r13_PreIndex"},
2029                            {{al, r2, r10, plus, r10, PreIndex},
2030                             false,
2031                             al,
2032                             "al r2 r10 plus r10 PreIndex",
2033                             "al_r2_r10_plus_r10_PreIndex"},
2034                            {{al, r11, r8, plus, r4, PreIndex},
2035                             false,
2036                             al,
2037                             "al r11 r8 plus r4 PreIndex",
2038                             "al_r11_r8_plus_r4_PreIndex"},
2039                            {{al, r7, r1, minus, r0, PreIndex},
2040                             false,
2041                             al,
2042                             "al r7 r1 minus r0 PreIndex",
2043                             "al_r7_r1_minus_r0_PreIndex"},
2044                            {{al, r5, r10, plus, r12, PreIndex},
2045                             false,
2046                             al,
2047                             "al r5 r10 plus r12 PreIndex",
2048                             "al_r5_r10_plus_r12_PreIndex"},
2049                            {{al, r0, r5, minus, r9, PostIndex},
2050                             false,
2051                             al,
2052                             "al r0 r5 minus r9 PostIndex",
2053                             "al_r0_r5_minus_r9_PostIndex"},
2054                            {{al, r14, r7, minus, r7, PostIndex},
2055                             false,
2056                             al,
2057                             "al r14 r7 minus r7 PostIndex",
2058                             "al_r14_r7_minus_r7_PostIndex"},
2059                            {{al, r12, r0, minus, r12, PostIndex},
2060                             false,
2061                             al,
2062                             "al r12 r0 minus r12 PostIndex",
2063                             "al_r12_r0_minus_r12_PostIndex"},
2064                            {{al, r0, r13, minus, r13, PreIndex},
2065                             false,
2066                             al,
2067                             "al r0 r13 minus r13 PreIndex",
2068                             "al_r0_r13_minus_r13_PreIndex"},
2069                            {{al, r9, r7, minus, r4, PostIndex},
2070                             false,
2071                             al,
2072                             "al r9 r7 minus r4 PostIndex",
2073                             "al_r9_r7_minus_r4_PostIndex"},
2074                            {{al, r7, r10, minus, r0, PostIndex},
2075                             false,
2076                             al,
2077                             "al r7 r10 minus r0 PostIndex",
2078                             "al_r7_r10_minus_r0_PostIndex"},
2079                            {{al, r7, r0, plus, r11, PostIndex},
2080                             false,
2081                             al,
2082                             "al r7 r0 plus r11 PostIndex",
2083                             "al_r7_r0_plus_r11_PostIndex"},
2084                            {{al, r2, r8, plus, r9, PreIndex},
2085                             false,
2086                             al,
2087                             "al r2 r8 plus r9 PreIndex",
2088                             "al_r2_r8_plus_r9_PreIndex"},
2089                            {{al, r12, r14, plus, r2, PreIndex},
2090                             false,
2091                             al,
2092                             "al r12 r14 plus r2 PreIndex",
2093                             "al_r12_r14_plus_r2_PreIndex"},
2094                            {{al, r3, r6, minus, r8, PostIndex},
2095                             false,
2096                             al,
2097                             "al r3 r6 minus r8 PostIndex",
2098                             "al_r3_r6_minus_r8_PostIndex"},
2099                            {{al, r10, r11, plus, r8, PreIndex},
2100                             false,
2101                             al,
2102                             "al r10 r11 plus r8 PreIndex",
2103                             "al_r10_r11_plus_r8_PreIndex"},
2104                            {{al, r0, r7, minus, r8, PostIndex},
2105                             false,
2106                             al,
2107                             "al r0 r7 minus r8 PostIndex",
2108                             "al_r0_r7_minus_r8_PostIndex"},
2109                            {{al, r14, r9, plus, r1, PostIndex},
2110                             false,
2111                             al,
2112                             "al r14 r9 plus r1 PostIndex",
2113                             "al_r14_r9_plus_r1_PostIndex"},
2114                            {{al, r0, r9, plus, r9, PostIndex},
2115                             false,
2116                             al,
2117                             "al r0 r9 plus r9 PostIndex",
2118                             "al_r0_r9_plus_r9_PostIndex"},
2119                            {{al, r3, r2, plus, r14, PostIndex},
2120                             false,
2121                             al,
2122                             "al r3 r2 plus r14 PostIndex",
2123                             "al_r3_r2_plus_r14_PostIndex"},
2124                            {{al, r3, r5, plus, r12, PostIndex},
2125                             false,
2126                             al,
2127                             "al r3 r5 plus r12 PostIndex",
2128                             "al_r3_r5_plus_r12_PostIndex"},
2129                            {{al, r9, r5, plus, r4, PreIndex},
2130                             false,
2131                             al,
2132                             "al r9 r5 plus r4 PreIndex",
2133                             "al_r9_r5_plus_r4_PreIndex"},
2134                            {{al, r7, r11, minus, r5, PostIndex},
2135                             false,
2136                             al,
2137                             "al r7 r11 minus r5 PostIndex",
2138                             "al_r7_r11_minus_r5_PostIndex"},
2139                            {{al, r0, r4, plus, r13, PreIndex},
2140                             false,
2141                             al,
2142                             "al r0 r4 plus r13 PreIndex",
2143                             "al_r0_r4_plus_r13_PreIndex"},
2144                            {{al, r2, r4, plus, r10, PreIndex},
2145                             false,
2146                             al,
2147                             "al r2 r4 plus r10 PreIndex",
2148                             "al_r2_r4_plus_r10_PreIndex"},
2149                            {{al, r14, r9, plus, r2, PostIndex},
2150                             false,
2151                             al,
2152                             "al r14 r9 plus r2 PostIndex",
2153                             "al_r14_r9_plus_r2_PostIndex"},
2154                            {{al, r10, r9, plus, r1, PostIndex},
2155                             false,
2156                             al,
2157                             "al r10 r9 plus r1 PostIndex",
2158                             "al_r10_r9_plus_r1_PostIndex"},
2159                            {{al, r0, r13, minus, r6, PreIndex},
2160                             false,
2161                             al,
2162                             "al r0 r13 minus r6 PreIndex",
2163                             "al_r0_r13_minus_r6_PreIndex"},
2164                            {{al, r2, r0, minus, r10, PostIndex},
2165                             false,
2166                             al,
2167                             "al r2 r0 minus r10 PostIndex",
2168                             "al_r2_r0_minus_r10_PostIndex"},
2169                            {{al, r0, r10, minus, r3, PreIndex},
2170                             false,
2171                             al,
2172                             "al r0 r10 minus r3 PreIndex",
2173                             "al_r0_r10_minus_r3_PreIndex"},
2174                            {{al, r1, r7, minus, r9, PreIndex},
2175                             false,
2176                             al,
2177                             "al r1 r7 minus r9 PreIndex",
2178                             "al_r1_r7_minus_r9_PreIndex"},
2179                            {{al, r13, r6, minus, r11, PostIndex},
2180                             false,
2181                             al,
2182                             "al r13 r6 minus r11 PostIndex",
2183                             "al_r13_r6_minus_r11_PostIndex"},
2184                            {{al, r4, r6, plus, r12, PreIndex},
2185                             false,
2186                             al,
2187                             "al r4 r6 plus r12 PreIndex",
2188                             "al_r4_r6_plus_r12_PreIndex"},
2189                            {{al, r12, r7, minus, r2, PostIndex},
2190                             false,
2191                             al,
2192                             "al r12 r7 minus r2 PostIndex",
2193                             "al_r12_r7_minus_r2_PostIndex"},
2194                            {{al, r11, r9, minus, r6, PreIndex},
2195                             false,
2196                             al,
2197                             "al r11 r9 minus r6 PreIndex",
2198                             "al_r11_r9_minus_r6_PreIndex"},
2199                            {{al, r13, r11, minus, r8, PostIndex},
2200                             false,
2201                             al,
2202                             "al r13 r11 minus r8 PostIndex",
2203                             "al_r13_r11_minus_r8_PostIndex"},
2204                            {{al, r13, r3, minus, r13, PreIndex},
2205                             false,
2206                             al,
2207                             "al r13 r3 minus r13 PreIndex",
2208                             "al_r13_r3_minus_r13_PreIndex"},
2209                            {{al, r2, r9, plus, r1, PostIndex},
2210                             false,
2211                             al,
2212                             "al r2 r9 plus r1 PostIndex",
2213                             "al_r2_r9_plus_r1_PostIndex"},
2214                            {{al, r9, r2, minus, r12, PostIndex},
2215                             false,
2216                             al,
2217                             "al r9 r2 minus r12 PostIndex",
2218                             "al_r9_r2_minus_r12_PostIndex"},
2219                            {{al, r10, r0, minus, r9, PreIndex},
2220                             false,
2221                             al,
2222                             "al r10 r0 minus r9 PreIndex",
2223                             "al_r10_r0_minus_r9_PreIndex"},
2224                            {{al, r4, r11, minus, r3, PreIndex},
2225                             false,
2226                             al,
2227                             "al r4 r11 minus r3 PreIndex",
2228                             "al_r4_r11_minus_r3_PreIndex"},
2229                            {{al, r2, r7, plus, r12, PreIndex},
2230                             false,
2231                             al,
2232                             "al r2 r7 plus r12 PreIndex",
2233                             "al_r2_r7_plus_r12_PreIndex"},
2234                            {{al, r14, r2, plus, r0, PreIndex},
2235                             false,
2236                             al,
2237                             "al r14 r2 plus r0 PreIndex",
2238                             "al_r14_r2_plus_r0_PreIndex"},
2239                            {{al, r13, r4, minus, r2, PreIndex},
2240                             false,
2241                             al,
2242                             "al r13 r4 minus r2 PreIndex",
2243                             "al_r13_r4_minus_r2_PreIndex"},
2244                            {{al, r13, r6, plus, r13, PreIndex},
2245                             false,
2246                             al,
2247                             "al r13 r6 plus r13 PreIndex",
2248                             "al_r13_r6_plus_r13_PreIndex"},
2249                            {{al, r2, r1, minus, r4, PostIndex},
2250                             false,
2251                             al,
2252                             "al r2 r1 minus r4 PostIndex",
2253                             "al_r2_r1_minus_r4_PostIndex"},
2254                            {{al, r4, r2, minus, r8, PreIndex},
2255                             false,
2256                             al,
2257                             "al r4 r2 minus r8 PreIndex",
2258                             "al_r4_r2_minus_r8_PreIndex"},
2259                            {{al, r0, r8, plus, r6, PostIndex},
2260                             false,
2261                             al,
2262                             "al r0 r8 plus r6 PostIndex",
2263                             "al_r0_r8_plus_r6_PostIndex"},
2264                            {{al, r11, r10, minus, r13, PreIndex},
2265                             false,
2266                             al,
2267                             "al r11 r10 minus r13 PreIndex",
2268                             "al_r11_r10_minus_r13_PreIndex"},
2269                            {{al, r10, r0, plus, r3, PreIndex},
2270                             false,
2271                             al,
2272                             "al r10 r0 plus r3 PreIndex",
2273                             "al_r10_r0_plus_r3_PreIndex"},
2274                            {{al, r1, r6, minus, r10, PreIndex},
2275                             false,
2276                             al,
2277                             "al r1 r6 minus r10 PreIndex",
2278                             "al_r1_r6_minus_r10_PreIndex"},
2279                            {{al, r12, r2, plus, r13, PostIndex},
2280                             false,
2281                             al,
2282                             "al r12 r2 plus r13 PostIndex",
2283                             "al_r12_r2_plus_r13_PostIndex"},
2284                            {{al, r14, r2, minus, r0, PostIndex},
2285                             false,
2286                             al,
2287                             "al r14 r2 minus r0 PostIndex",
2288                             "al_r14_r2_minus_r0_PostIndex"},
2289                            {{al, r4, r9, minus, r10, PreIndex},
2290                             false,
2291                             al,
2292                             "al r4 r9 minus r10 PreIndex",
2293                             "al_r4_r9_minus_r10_PreIndex"},
2294                            {{al, r8, r1, plus, r14, PostIndex},
2295                             false,
2296                             al,
2297                             "al r8 r1 plus r14 PostIndex",
2298                             "al_r8_r1_plus_r14_PostIndex"},
2299                            {{al, r14, r2, minus, r13, PostIndex},
2300                             false,
2301                             al,
2302                             "al r14 r2 minus r13 PostIndex",
2303                             "al_r14_r2_minus_r13_PostIndex"},
2304                            {{al, r4, r5, plus, r6, PostIndex},
2305                             false,
2306                             al,
2307                             "al r4 r5 plus r6 PostIndex",
2308                             "al_r4_r5_plus_r6_PostIndex"},
2309                            {{al, r13, r2, minus, r0, PostIndex},
2310                             false,
2311                             al,
2312                             "al r13 r2 minus r0 PostIndex",
2313                             "al_r13_r2_minus_r0_PostIndex"},
2314                            {{al, r12, r0, plus, r14, PostIndex},
2315                             false,
2316                             al,
2317                             "al r12 r0 plus r14 PostIndex",
2318                             "al_r12_r0_plus_r14_PostIndex"},
2319                            {{al, r3, r2, plus, r8, PostIndex},
2320                             false,
2321                             al,
2322                             "al r3 r2 plus r8 PostIndex",
2323                             "al_r3_r2_plus_r8_PostIndex"},
2324                            {{al, r12, r2, minus, r0, PreIndex},
2325                             false,
2326                             al,
2327                             "al r12 r2 minus r0 PreIndex",
2328                             "al_r12_r2_minus_r0_PreIndex"},
2329                            {{al, r14, r7, minus, r13, PostIndex},
2330                             false,
2331                             al,
2332                             "al r14 r7 minus r13 PostIndex",
2333                             "al_r14_r7_minus_r13_PostIndex"},
2334                            {{al, r2, r12, minus, r7, PreIndex},
2335                             false,
2336                             al,
2337                             "al r2 r12 minus r7 PreIndex",
2338                             "al_r2_r12_minus_r7_PreIndex"},
2339                            {{al, r12, r10, plus, r12, PreIndex},
2340                             false,
2341                             al,
2342                             "al r12 r10 plus r12 PreIndex",
2343                             "al_r12_r10_plus_r12_PreIndex"},
2344                            {{al, r11, r1, plus, r4, PostIndex},
2345                             false,
2346                             al,
2347                             "al r11 r1 plus r4 PostIndex",
2348                             "al_r11_r1_plus_r4_PostIndex"},
2349                            {{al, r0, r8, plus, r12, PostIndex},
2350                             false,
2351                             al,
2352                             "al r0 r8 plus r12 PostIndex",
2353                             "al_r0_r8_plus_r12_PostIndex"},
2354                            {{al, r8, r13, minus, r3, PreIndex},
2355                             false,
2356                             al,
2357                             "al r8 r13 minus r3 PreIndex",
2358                             "al_r8_r13_minus_r3_PreIndex"},
2359                            {{al, r8, r4, minus, r6, PostIndex},
2360                             false,
2361                             al,
2362                             "al r8 r4 minus r6 PostIndex",
2363                             "al_r8_r4_minus_r6_PostIndex"},
2364                            {{al, r0, r7, minus, r6, PreIndex},
2365                             false,
2366                             al,
2367                             "al r0 r7 minus r6 PreIndex",
2368                             "al_r0_r7_minus_r6_PreIndex"},
2369                            {{al, r5, r6, plus, r2, PreIndex},
2370                             false,
2371                             al,
2372                             "al r5 r6 plus r2 PreIndex",
2373                             "al_r5_r6_plus_r2_PreIndex"},
2374                            {{al, r8, r1, minus, r4, PreIndex},
2375                             false,
2376                             al,
2377                             "al r8 r1 minus r4 PreIndex",
2378                             "al_r8_r1_minus_r4_PreIndex"},
2379                            {{al, r8, r6, minus, r11, PreIndex},
2380                             false,
2381                             al,
2382                             "al r8 r6 minus r11 PreIndex",
2383                             "al_r8_r6_minus_r11_PreIndex"},
2384                            {{al, r10, r5, plus, r12, PreIndex},
2385                             false,
2386                             al,
2387                             "al r10 r5 plus r12 PreIndex",
2388                             "al_r10_r5_plus_r12_PreIndex"},
2389                            {{al, r5, r9, plus, r6, PreIndex},
2390                             false,
2391                             al,
2392                             "al r5 r9 plus r6 PreIndex",
2393                             "al_r5_r9_plus_r6_PreIndex"},
2394                            {{al, r0, r5, plus, r7, PostIndex},
2395                             false,
2396                             al,
2397                             "al r0 r5 plus r7 PostIndex",
2398                             "al_r0_r5_plus_r7_PostIndex"},
2399                            {{al, r3, r13, plus, r5, PostIndex},
2400                             false,
2401                             al,
2402                             "al r3 r13 plus r5 PostIndex",
2403                             "al_r3_r13_plus_r5_PostIndex"},
2404                            {{al, r3, r14, minus, r1, PostIndex},
2405                             false,
2406                             al,
2407                             "al r3 r14 minus r1 PostIndex",
2408                             "al_r3_r14_minus_r1_PostIndex"},
2409                            {{al, r0, r13, minus, r11, PostIndex},
2410                             false,
2411                             al,
2412                             "al r0 r13 minus r11 PostIndex",
2413                             "al_r0_r13_minus_r11_PostIndex"},
2414                            {{al, r3, r7, plus, r14, PreIndex},
2415                             false,
2416                             al,
2417                             "al r3 r7 plus r14 PreIndex",
2418                             "al_r3_r7_plus_r14_PreIndex"},
2419                            {{al, r1, r8, minus, r7, PostIndex},
2420                             false,
2421                             al,
2422                             "al r1 r8 minus r7 PostIndex",
2423                             "al_r1_r8_minus_r7_PostIndex"},
2424                            {{al, r6, r3, minus, r1, PostIndex},
2425                             false,
2426                             al,
2427                             "al r6 r3 minus r1 PostIndex",
2428                             "al_r6_r3_minus_r1_PostIndex"},
2429                            {{al, r5, r8, plus, r7, PostIndex},
2430                             false,
2431                             al,
2432                             "al r5 r8 plus r7 PostIndex",
2433                             "al_r5_r8_plus_r7_PostIndex"},
2434                            {{al, r3, r1, plus, r6, PostIndex},
2435                             false,
2436                             al,
2437                             "al r3 r1 plus r6 PostIndex",
2438                             "al_r3_r1_plus_r6_PostIndex"},
2439                            {{al, r4, r0, minus, r9, PostIndex},
2440                             false,
2441                             al,
2442                             "al r4 r0 minus r9 PostIndex",
2443                             "al_r4_r0_minus_r9_PostIndex"},
2444                            {{al, r14, r7, minus, r6, PostIndex},
2445                             false,
2446                             al,
2447                             "al r14 r7 minus r6 PostIndex",
2448                             "al_r14_r7_minus_r6_PostIndex"},
2449                            {{al, r3, r5, minus, r4, PreIndex},
2450                             false,
2451                             al,
2452                             "al r3 r5 minus r4 PreIndex",
2453                             "al_r3_r5_minus_r4_PreIndex"},
2454                            {{al, r11, r14, plus, r14, PreIndex},
2455                             false,
2456                             al,
2457                             "al r11 r14 plus r14 PreIndex",
2458                             "al_r11_r14_plus_r14_PreIndex"},
2459                            {{al, r3, r14, plus, r5, PreIndex},
2460                             false,
2461                             al,
2462                             "al r3 r14 plus r5 PreIndex",
2463                             "al_r3_r14_plus_r5_PreIndex"},
2464                            {{al, r1, r11, minus, r11, PreIndex},
2465                             false,
2466                             al,
2467                             "al r1 r11 minus r11 PreIndex",
2468                             "al_r1_r11_minus_r11_PreIndex"},
2469                            {{al, r11, r7, plus, r14, PostIndex},
2470                             false,
2471                             al,
2472                             "al r11 r7 plus r14 PostIndex",
2473                             "al_r11_r7_plus_r14_PostIndex"},
2474                            {{al, r7, r9, plus, r13, PostIndex},
2475                             false,
2476                             al,
2477                             "al r7 r9 plus r13 PostIndex",
2478                             "al_r7_r9_plus_r13_PostIndex"},
2479                            {{al, r3, r11, plus, r14, PostIndex},
2480                             false,
2481                             al,
2482                             "al r3 r11 plus r14 PostIndex",
2483                             "al_r3_r11_plus_r14_PostIndex"},
2484                            {{al, r3, r6, minus, r6, PreIndex},
2485                             false,
2486                             al,
2487                             "al r3 r6 minus r6 PreIndex",
2488                             "al_r3_r6_minus_r6_PreIndex"},
2489                            {{al, r2, r3, minus, r6, PreIndex},
2490                             false,
2491                             al,
2492                             "al r2 r3 minus r6 PreIndex",
2493                             "al_r2_r3_minus_r6_PreIndex"},
2494                            {{al, r2, r11, plus, r1, PostIndex},
2495                             false,
2496                             al,
2497                             "al r2 r11 plus r1 PostIndex",
2498                             "al_r2_r11_plus_r1_PostIndex"},
2499                            {{al, r13, r12, plus, r10, PostIndex},
2500                             false,
2501                             al,
2502                             "al r13 r12 plus r10 PostIndex",
2503                             "al_r13_r12_plus_r10_PostIndex"},
2504                            {{al, r1, r2, plus, r11, PreIndex},
2505                             false,
2506                             al,
2507                             "al r1 r2 plus r11 PreIndex",
2508                             "al_r1_r2_plus_r11_PreIndex"},
2509                            {{al, r3, r12, plus, r14, PreIndex},
2510                             false,
2511                             al,
2512                             "al r3 r12 plus r14 PreIndex",
2513                             "al_r3_r12_plus_r14_PreIndex"},
2514                            {{al, r0, r6, plus, r11, PostIndex},
2515                             false,
2516                             al,
2517                             "al r0 r6 plus r11 PostIndex",
2518                             "al_r0_r6_plus_r11_PostIndex"},
2519                            {{al, r4, r6, minus, r13, PostIndex},
2520                             false,
2521                             al,
2522                             "al r4 r6 minus r13 PostIndex",
2523                             "al_r4_r6_minus_r13_PostIndex"},
2524                            {{al, r11, r8, minus, r13, PreIndex},
2525                             false,
2526                             al,
2527                             "al r11 r8 minus r13 PreIndex",
2528                             "al_r11_r8_minus_r13_PreIndex"},
2529                            {{al, r5, r3, minus, r6, PostIndex},
2530                             false,
2531                             al,
2532                             "al r5 r3 minus r6 PostIndex",
2533                             "al_r5_r3_minus_r6_PostIndex"},
2534                            {{al, r8, r1, plus, r2, PostIndex},
2535                             false,
2536                             al,
2537                             "al r8 r1 plus r2 PostIndex",
2538                             "al_r8_r1_plus_r2_PostIndex"},
2539                            {{al, r11, r5, minus, r13, PreIndex},
2540                             false,
2541                             al,
2542                             "al r11 r5 minus r13 PreIndex",
2543                             "al_r11_r5_minus_r13_PreIndex"},
2544                            {{al, r7, r9, plus, r2, PostIndex},
2545                             false,
2546                             al,
2547                             "al r7 r9 plus r2 PostIndex",
2548                             "al_r7_r9_plus_r2_PostIndex"},
2549                            {{al, r3, r10, plus, r11, PostIndex},
2550                             false,
2551                             al,
2552                             "al r3 r10 plus r11 PostIndex",
2553                             "al_r3_r10_plus_r11_PostIndex"},
2554                            {{al, r0, r12, plus, r11, PreIndex},
2555                             false,
2556                             al,
2557                             "al r0 r12 plus r11 PreIndex",
2558                             "al_r0_r12_plus_r11_PreIndex"},
2559                            {{al, r7, r4, plus, r14, PostIndex},
2560                             false,
2561                             al,
2562                             "al r7 r4 plus r14 PostIndex",
2563                             "al_r7_r4_plus_r14_PostIndex"},
2564                            {{al, r11, r5, plus, r1, PreIndex},
2565                             false,
2566                             al,
2567                             "al r11 r5 plus r1 PreIndex",
2568                             "al_r11_r5_plus_r1_PreIndex"},
2569                            {{al, r3, r2, plus, r3, PostIndex},
2570                             false,
2571                             al,
2572                             "al r3 r2 plus r3 PostIndex",
2573                             "al_r3_r2_plus_r3_PostIndex"},
2574                            {{al, r11, r8, minus, r4, PostIndex},
2575                             false,
2576                             al,
2577                             "al r11 r8 minus r4 PostIndex",
2578                             "al_r11_r8_minus_r4_PostIndex"},
2579                            {{al, r14, r5, plus, r10, PostIndex},
2580                             false,
2581                             al,
2582                             "al r14 r5 plus r10 PostIndex",
2583                             "al_r14_r5_plus_r10_PostIndex"},
2584                            {{al, r13, r3, minus, r3, PreIndex},
2585                             false,
2586                             al,
2587                             "al r13 r3 minus r3 PreIndex",
2588                             "al_r13_r3_minus_r3_PreIndex"},
2589                            {{al, r2, r3, minus, r8, PostIndex},
2590                             false,
2591                             al,
2592                             "al r2 r3 minus r8 PostIndex",
2593                             "al_r2_r3_minus_r8_PostIndex"},
2594                            {{al, r2, r13, minus, r1, PreIndex},
2595                             false,
2596                             al,
2597                             "al r2 r13 minus r1 PreIndex",
2598                             "al_r2_r13_minus_r1_PreIndex"},
2599                            {{al, r0, r13, plus, r1, PostIndex},
2600                             false,
2601                             al,
2602                             "al r0 r13 plus r1 PostIndex",
2603                             "al_r0_r13_plus_r1_PostIndex"},
2604                            {{al, r6, r5, plus, r3, PreIndex},
2605                             false,
2606                             al,
2607                             "al r6 r5 plus r3 PreIndex",
2608                             "al_r6_r5_plus_r3_PreIndex"},
2609                            {{al, r0, r3, plus, r12, PreIndex},
2610                             false,
2611                             al,
2612                             "al r0 r3 plus r12 PreIndex",
2613                             "al_r0_r3_plus_r12_PreIndex"},
2614                            {{al, r4, r7, plus, r3, PreIndex},
2615                             false,
2616                             al,
2617                             "al r4 r7 plus r3 PreIndex",
2618                             "al_r4_r7_plus_r3_PreIndex"},
2619                            {{al, r11, r14, plus, r11, PostIndex},
2620                             false,
2621                             al,
2622                             "al r11 r14 plus r11 PostIndex",
2623                             "al_r11_r14_plus_r11_PostIndex"},
2624                            {{al, r0, r11, minus, r14, PreIndex},
2625                             false,
2626                             al,
2627                             "al r0 r11 minus r14 PreIndex",
2628                             "al_r0_r11_minus_r14_PreIndex"},
2629                            {{al, r11, r9, plus, r2, PostIndex},
2630                             false,
2631                             al,
2632                             "al r11 r9 plus r2 PostIndex",
2633                             "al_r11_r9_plus_r2_PostIndex"},
2634                            {{al, r14, r1, minus, r12, PreIndex},
2635                             false,
2636                             al,
2637                             "al r14 r1 minus r12 PreIndex",
2638                             "al_r14_r1_minus_r12_PreIndex"},
2639                            {{al, r5, r6, plus, r1, PreIndex},
2640                             false,
2641                             al,
2642                             "al r5 r6 plus r1 PreIndex",
2643                             "al_r5_r6_plus_r1_PreIndex"},
2644                            {{al, r10, r5, minus, r3, PostIndex},
2645                             false,
2646                             al,
2647                             "al r10 r5 minus r3 PostIndex",
2648                             "al_r10_r5_minus_r3_PostIndex"},
2649                            {{al, r1, r4, plus, r8, PreIndex},
2650                             false,
2651                             al,
2652                             "al r1 r4 plus r8 PreIndex",
2653                             "al_r1_r4_plus_r8_PreIndex"},
2654                            {{al, r12, r14, plus, r0, PostIndex},
2655                             false,
2656                             al,
2657                             "al r12 r14 plus r0 PostIndex",
2658                             "al_r12_r14_plus_r0_PostIndex"},
2659                            {{al, r1, r0, plus, r10, PreIndex},
2660                             false,
2661                             al,
2662                             "al r1 r0 plus r10 PreIndex",
2663                             "al_r1_r0_plus_r10_PreIndex"},
2664                            {{al, r13, r11, plus, r14, PreIndex},
2665                             false,
2666                             al,
2667                             "al r13 r11 plus r14 PreIndex",
2668                             "al_r13_r11_plus_r14_PreIndex"},
2669                            {{al, r7, r8, plus, r13, PostIndex},
2670                             false,
2671                             al,
2672                             "al r7 r8 plus r13 PostIndex",
2673                             "al_r7_r8_plus_r13_PostIndex"},
2674                            {{al, r2, r3, minus, r11, PostIndex},
2675                             false,
2676                             al,
2677                             "al r2 r3 minus r11 PostIndex",
2678                             "al_r2_r3_minus_r11_PostIndex"},
2679                            {{al, r8, r11, plus, r8, PreIndex},
2680                             false,
2681                             al,
2682                             "al r8 r11 plus r8 PreIndex",
2683                             "al_r8_r11_plus_r8_PreIndex"},
2684                            {{al, r7, r13, plus, r12, PreIndex},
2685                             false,
2686                             al,
2687                             "al r7 r13 plus r12 PreIndex",
2688                             "al_r7_r13_plus_r12_PreIndex"},
2689                            {{al, r2, r10, plus, r7, PostIndex},
2690                             false,
2691                             al,
2692                             "al r2 r10 plus r7 PostIndex",
2693                             "al_r2_r10_plus_r7_PostIndex"},
2694                            {{al, r5, r4, minus, r6, PreIndex},
2695                             false,
2696                             al,
2697                             "al r5 r4 minus r6 PreIndex",
2698                             "al_r5_r4_minus_r6_PreIndex"},
2699                            {{al, r10, r2, plus, r4, PostIndex},
2700                             false,
2701                             al,
2702                             "al r10 r2 plus r4 PostIndex",
2703                             "al_r10_r2_plus_r4_PostIndex"},
2704                            {{al, r4, r9, minus, r14, PreIndex},
2705                             false,
2706                             al,
2707                             "al r4 r9 minus r14 PreIndex",
2708                             "al_r4_r9_minus_r14_PreIndex"},
2709                            {{al, r3, r11, plus, r8, PostIndex},
2710                             false,
2711                             al,
2712                             "al r3 r11 plus r8 PostIndex",
2713                             "al_r3_r11_plus_r8_PostIndex"},
2714                            {{al, r14, r13, minus, r8, PreIndex},
2715                             false,
2716                             al,
2717                             "al r14 r13 minus r8 PreIndex",
2718                             "al_r14_r13_minus_r8_PreIndex"},
2719                            {{al, r5, r13, minus, r7, PreIndex},
2720                             false,
2721                             al,
2722                             "al r5 r13 minus r7 PreIndex",
2723                             "al_r5_r13_minus_r7_PreIndex"},
2724                            {{al, r5, r2, minus, r2, PreIndex},
2725                             false,
2726                             al,
2727                             "al r5 r2 minus r2 PreIndex",
2728                             "al_r5_r2_minus_r2_PreIndex"},
2729                            {{al, r9, r2, minus, r9, PreIndex},
2730                             false,
2731                             al,
2732                             "al r9 r2 minus r9 PreIndex",
2733                             "al_r9_r2_minus_r9_PreIndex"},
2734                            {{al, r2, r7, plus, r11, PreIndex},
2735                             false,
2736                             al,
2737                             "al r2 r7 plus r11 PreIndex",
2738                             "al_r2_r7_plus_r11_PreIndex"},
2739                            {{al, r2, r6, minus, r14, PreIndex},
2740                             false,
2741                             al,
2742                             "al r2 r6 minus r14 PreIndex",
2743                             "al_r2_r6_minus_r14_PreIndex"},
2744                            {{al, r7, r6, minus, r6, PreIndex},
2745                             false,
2746                             al,
2747                             "al r7 r6 minus r6 PreIndex",
2748                             "al_r7_r6_minus_r6_PreIndex"},
2749                            {{al, r10, r1, minus, r13, PreIndex},
2750                             false,
2751                             al,
2752                             "al r10 r1 minus r13 PreIndex",
2753                             "al_r10_r1_minus_r13_PreIndex"},
2754                            {{al, r7, r3, minus, r13, PostIndex},
2755                             false,
2756                             al,
2757                             "al r7 r3 minus r13 PostIndex",
2758                             "al_r7_r3_minus_r13_PostIndex"},
2759                            {{al, r3, r1, minus, r8, PreIndex},
2760                             false,
2761                             al,
2762                             "al r3 r1 minus r8 PreIndex",
2763                             "al_r3_r1_minus_r8_PreIndex"},
2764                            {{al, r13, r1, plus, r12, PostIndex},
2765                             false,
2766                             al,
2767                             "al r13 r1 plus r12 PostIndex",
2768                             "al_r13_r1_plus_r12_PostIndex"},
2769                            {{al, r13, r14, plus, r3, PostIndex},
2770                             false,
2771                             al,
2772                             "al r13 r14 plus r3 PostIndex",
2773                             "al_r13_r14_plus_r3_PostIndex"},
2774                            {{al, r9, r5, plus, r7, PostIndex},
2775                             false,
2776                             al,
2777                             "al r9 r5 plus r7 PostIndex",
2778                             "al_r9_r5_plus_r7_PostIndex"},
2779                            {{al, r3, r2, plus, r8, PreIndex},
2780                             false,
2781                             al,
2782                             "al r3 r2 plus r8 PreIndex",
2783                             "al_r3_r2_plus_r8_PreIndex"},
2784                            {{al, r1, r8, minus, r9, PostIndex},
2785                             false,
2786                             al,
2787                             "al r1 r8 minus r9 PostIndex",
2788                             "al_r1_r8_minus_r9_PostIndex"},
2789                            {{al, r11, r14, minus, r8, PostIndex},
2790                             false,
2791                             al,
2792                             "al r11 r14 minus r8 PostIndex",
2793                             "al_r11_r14_minus_r8_PostIndex"},
2794                            {{al, r2, r12, minus, r6, PostIndex},
2795                             false,
2796                             al,
2797                             "al r2 r12 minus r6 PostIndex",
2798                             "al_r2_r12_minus_r6_PostIndex"},
2799                            {{al, r4, r1, minus, r12, PostIndex},
2800                             false,
2801                             al,
2802                             "al r4 r1 minus r12 PostIndex",
2803                             "al_r4_r1_minus_r12_PostIndex"},
2804                            {{al, r13, r6, minus, r13, PreIndex},
2805                             false,
2806                             al,
2807                             "al r13 r6 minus r13 PreIndex",
2808                             "al_r13_r6_minus_r13_PreIndex"},
2809                            {{al, r5, r9, minus, r13, PostIndex},
2810                             false,
2811                             al,
2812                             "al r5 r9 minus r13 PostIndex",
2813                             "al_r5_r9_minus_r13_PostIndex"},
2814                            {{al, r4, r8, minus, r12, PostIndex},
2815                             false,
2816                             al,
2817                             "al r4 r8 minus r12 PostIndex",
2818                             "al_r4_r8_minus_r12_PostIndex"},
2819                            {{al, r5, r9, plus, r12, PreIndex},
2820                             false,
2821                             al,
2822                             "al r5 r9 plus r12 PreIndex",
2823                             "al_r5_r9_plus_r12_PreIndex"},
2824                            {{al, r11, r13, minus, r3, PreIndex},
2825                             false,
2826                             al,
2827                             "al r11 r13 minus r3 PreIndex",
2828                             "al_r11_r13_minus_r3_PreIndex"},
2829                            {{al, r4, r13, minus, r13, PreIndex},
2830                             false,
2831                             al,
2832                             "al r4 r13 minus r13 PreIndex",
2833                             "al_r4_r13_minus_r13_PreIndex"},
2834                            {{al, r3, r7, plus, r0, PostIndex},
2835                             false,
2836                             al,
2837                             "al r3 r7 plus r0 PostIndex",
2838                             "al_r3_r7_plus_r0_PostIndex"},
2839                            {{al, r5, r11, minus, r8, PostIndex},
2840                             false,
2841                             al,
2842                             "al r5 r11 minus r8 PostIndex",
2843                             "al_r5_r11_minus_r8_PostIndex"},
2844                            {{al, r5, r0, minus, r0, PreIndex},
2845                             false,
2846                             al,
2847                             "al r5 r0 minus r0 PreIndex",
2848                             "al_r5_r0_minus_r0_PreIndex"},
2849                            {{al, r0, r1, minus, r1, PostIndex},
2850                             false,
2851                             al,
2852                             "al r0 r1 minus r1 PostIndex",
2853                             "al_r0_r1_minus_r1_PostIndex"},
2854                            {{al, r5, r12, minus, r0, PreIndex},
2855                             false,
2856                             al,
2857                             "al r5 r12 minus r0 PreIndex",
2858                             "al_r5_r12_minus_r0_PreIndex"},
2859                            {{al, r6, r1, plus, r7, PreIndex},
2860                             false,
2861                             al,
2862                             "al r6 r1 plus r7 PreIndex",
2863                             "al_r6_r1_plus_r7_PreIndex"},
2864                            {{al, r5, r13, minus, r8, PreIndex},
2865                             false,
2866                             al,
2867                             "al r5 r13 minus r8 PreIndex",
2868                             "al_r5_r13_minus_r8_PreIndex"},
2869                            {{al, r3, r8, plus, r11, PostIndex},
2870                             false,
2871                             al,
2872                             "al r3 r8 plus r11 PostIndex",
2873                             "al_r3_r8_plus_r11_PostIndex"},
2874                            {{al, r8, r0, plus, r2, PreIndex},
2875                             false,
2876                             al,
2877                             "al r8 r0 plus r2 PreIndex",
2878                             "al_r8_r0_plus_r2_PreIndex"},
2879                            {{al, r10, r14, plus, r6, PreIndex},
2880                             false,
2881                             al,
2882                             "al r10 r14 plus r6 PreIndex",
2883                             "al_r10_r14_plus_r6_PreIndex"},
2884                            {{al, r12, r2, minus, r0, PostIndex},
2885                             false,
2886                             al,
2887                             "al r12 r2 minus r0 PostIndex",
2888                             "al_r12_r2_minus_r0_PostIndex"},
2889                            {{al, r13, r0, minus, r1, PreIndex},
2890                             false,
2891                             al,
2892                             "al r13 r0 minus r1 PreIndex",
2893                             "al_r13_r0_minus_r1_PreIndex"},
2894                            {{al, r12, r6, minus, r10, PreIndex},
2895                             false,
2896                             al,
2897                             "al r12 r6 minus r10 PreIndex",
2898                             "al_r12_r6_minus_r10_PreIndex"},
2899                            {{al, r0, r7, minus, r0, PostIndex},
2900                             false,
2901                             al,
2902                             "al r0 r7 minus r0 PostIndex",
2903                             "al_r0_r7_minus_r0_PostIndex"},
2904                            {{al, r1, r7, minus, r3, PreIndex},
2905                             false,
2906                             al,
2907                             "al r1 r7 minus r3 PreIndex",
2908                             "al_r1_r7_minus_r3_PreIndex"},
2909                            {{al, r9, r2, plus, r13, PostIndex},
2910                             false,
2911                             al,
2912                             "al r9 r2 plus r13 PostIndex",
2913                             "al_r9_r2_plus_r13_PostIndex"},
2914                            {{al, r0, r11, minus, r3, PostIndex},
2915                             false,
2916                             al,
2917                             "al r0 r11 minus r3 PostIndex",
2918                             "al_r0_r11_minus_r3_PostIndex"},
2919                            {{al, r2, r1, plus, r1, PreIndex},
2920                             false,
2921                             al,
2922                             "al r2 r1 plus r1 PreIndex",
2923                             "al_r2_r1_plus_r1_PreIndex"},
2924                            {{al, r5, r4, plus, r5, PostIndex},
2925                             false,
2926                             al,
2927                             "al r5 r4 plus r5 PostIndex",
2928                             "al_r5_r4_plus_r5_PostIndex"},
2929                            {{al, r7, r13, plus, r4, PostIndex},
2930                             false,
2931                             al,
2932                             "al r7 r13 plus r4 PostIndex",
2933                             "al_r7_r13_plus_r4_PostIndex"},
2934                            {{al, r0, r14, plus, r6, PreIndex},
2935                             false,
2936                             al,
2937                             "al r0 r14 plus r6 PreIndex",
2938                             "al_r0_r14_plus_r6_PreIndex"},
2939                            {{al, r10, r1, plus, r7, PostIndex},
2940                             false,
2941                             al,
2942                             "al r10 r1 plus r7 PostIndex",
2943                             "al_r10_r1_plus_r7_PostIndex"},
2944                            {{al, r12, r5, plus, r12, PostIndex},
2945                             false,
2946                             al,
2947                             "al r12 r5 plus r12 PostIndex",
2948                             "al_r12_r5_plus_r12_PostIndex"},
2949                            {{al, r0, r10, plus, r2, PreIndex},
2950                             false,
2951                             al,
2952                             "al r0 r10 plus r2 PreIndex",
2953                             "al_r0_r10_plus_r2_PreIndex"},
2954                            {{al, r7, r13, plus, r8, PreIndex},
2955                             false,
2956                             al,
2957                             "al r7 r13 plus r8 PreIndex",
2958                             "al_r7_r13_plus_r8_PreIndex"},
2959                            {{al, r14, r10, plus, r9, PreIndex},
2960                             false,
2961                             al,
2962                             "al r14 r10 plus r9 PreIndex",
2963                             "al_r14_r10_plus_r9_PreIndex"},
2964                            {{al, r1, r2, plus, r1, PreIndex},
2965                             false,
2966                             al,
2967                             "al r1 r2 plus r1 PreIndex",
2968                             "al_r1_r2_plus_r1_PreIndex"},
2969                            {{al, r6, r7, plus, r12, PreIndex},
2970                             false,
2971                             al,
2972                             "al r6 r7 plus r12 PreIndex",
2973                             "al_r6_r7_plus_r12_PreIndex"},
2974                            {{al, r10, r1, plus, r3, PreIndex},
2975                             false,
2976                             al,
2977                             "al r10 r1 plus r3 PreIndex",
2978                             "al_r10_r1_plus_r3_PreIndex"},
2979                            {{al, r6, r4, plus, r11, PostIndex},
2980                             false,
2981                             al,
2982                             "al r6 r4 plus r11 PostIndex",
2983                             "al_r6_r4_plus_r11_PostIndex"},
2984                            {{al, r14, r0, plus, r12, PostIndex},
2985                             false,
2986                             al,
2987                             "al r14 r0 plus r12 PostIndex",
2988                             "al_r14_r0_plus_r12_PostIndex"},
2989                            {{al, r4, r7, minus, r12, PostIndex},
2990                             false,
2991                             al,
2992                             "al r4 r7 minus r12 PostIndex",
2993                             "al_r4_r7_minus_r12_PostIndex"},
2994                            {{al, r13, r10, plus, r10, PostIndex},
2995                             false,
2996                             al,
2997                             "al r13 r10 plus r10 PostIndex",
2998                             "al_r13_r10_plus_r10_PostIndex"},
2999                            {{al, r9, r4, minus, r1, PreIndex},
3000                             false,
3001                             al,
3002                             "al r9 r4 minus r1 PreIndex",
3003                             "al_r9_r4_minus_r1_PreIndex"},
3004                            {{al, r2, r7, minus, r2, PreIndex},
3005                             false,
3006                             al,
3007                             "al r2 r7 minus r2 PreIndex",
3008                             "al_r2_r7_minus_r2_PreIndex"},
3009                            {{al, r10, r6, plus, r2, PreIndex},
3010                             false,
3011                             al,
3012                             "al r10 r6 plus r2 PreIndex",
3013                             "al_r10_r6_plus_r2_PreIndex"},
3014                            {{al, r8, r14, minus, r2, PostIndex},
3015                             false,
3016                             al,
3017                             "al r8 r14 minus r2 PostIndex",
3018                             "al_r8_r14_minus_r2_PostIndex"},
3019                            {{al, r4, r9, minus, r14, PostIndex},
3020                             false,
3021                             al,
3022                             "al r4 r9 minus r14 PostIndex",
3023                             "al_r4_r9_minus_r14_PostIndex"},
3024                            {{al, r3, r8, plus, r12, PostIndex},
3025                             false,
3026                             al,
3027                             "al r3 r8 plus r12 PostIndex",
3028                             "al_r3_r8_plus_r12_PostIndex"},
3029                            {{al, r3, r12, plus, r8, PostIndex},
3030                             false,
3031                             al,
3032                             "al r3 r12 plus r8 PostIndex",
3033                             "al_r3_r12_plus_r8_PostIndex"},
3034                            {{al, r4, r6, minus, r10, PreIndex},
3035                             false,
3036                             al,
3037                             "al r4 r6 minus r10 PreIndex",
3038                             "al_r4_r6_minus_r10_PreIndex"},
3039                            {{al, r3, r14, plus, r6, PreIndex},
3040                             false,
3041                             al,
3042                             "al r3 r14 plus r6 PreIndex",
3043                             "al_r3_r14_plus_r6_PreIndex"},
3044                            {{al, r2, r1, plus, r7, PreIndex},
3045                             false,
3046                             al,
3047                             "al r2 r1 plus r7 PreIndex",
3048                             "al_r2_r1_plus_r7_PreIndex"},
3049                            {{al, r7, r9, plus, r2, PreIndex},
3050                             false,
3051                             al,
3052                             "al r7 r9 plus r2 PreIndex",
3053                             "al_r7_r9_plus_r2_PreIndex"},
3054                            {{al, r11, r6, plus, r10, PostIndex},
3055                             false,
3056                             al,
3057                             "al r11 r6 plus r10 PostIndex",
3058                             "al_r11_r6_plus_r10_PostIndex"},
3059                            {{al, r5, r2, plus, r11, PostIndex},
3060                             false,
3061                             al,
3062                             "al r5 r2 plus r11 PostIndex",
3063                             "al_r5_r2_plus_r11_PostIndex"},
3064                            {{al, r8, r10, plus, r10, PreIndex},
3065                             false,
3066                             al,
3067                             "al r8 r10 plus r10 PreIndex",
3068                             "al_r8_r10_plus_r10_PreIndex"},
3069                            {{al, r8, r0, minus, r10, PreIndex},
3070                             false,
3071                             al,
3072                             "al r8 r0 minus r10 PreIndex",
3073                             "al_r8_r0_minus_r10_PreIndex"},
3074                            {{al, r0, r4, plus, r2, PreIndex},
3075                             false,
3076                             al,
3077                             "al r0 r4 plus r2 PreIndex",
3078                             "al_r0_r4_plus_r2_PreIndex"},
3079                            {{al, r3, r4, minus, r8, PreIndex},
3080                             false,
3081                             al,
3082                             "al r3 r4 minus r8 PreIndex",
3083                             "al_r3_r4_minus_r8_PreIndex"},
3084                            {{al, r1, r0, minus, r11, PreIndex},
3085                             false,
3086                             al,
3087                             "al r1 r0 minus r11 PreIndex",
3088                             "al_r1_r0_minus_r11_PreIndex"},
3089                            {{al, r0, r2, minus, r9, PreIndex},
3090                             false,
3091                             al,
3092                             "al r0 r2 minus r9 PreIndex",
3093                             "al_r0_r2_minus_r9_PreIndex"},
3094                            {{al, r14, r12, plus, r13, PostIndex},
3095                             false,
3096                             al,
3097                             "al r14 r12 plus r13 PostIndex",
3098                             "al_r14_r12_plus_r13_PostIndex"},
3099                            {{al, r13, r10, minus, r5, PreIndex},
3100                             false,
3101                             al,
3102                             "al r13 r10 minus r5 PreIndex",
3103                             "al_r13_r10_minus_r5_PreIndex"},
3104                            {{al, r9, r0, plus, r11, PostIndex},
3105                             false,
3106                             al,
3107                             "al r9 r0 plus r11 PostIndex",
3108                             "al_r9_r0_plus_r11_PostIndex"},
3109                            {{al, r2, r11, plus, r7, PostIndex},
3110                             false,
3111                             al,
3112                             "al r2 r11 plus r7 PostIndex",
3113                             "al_r2_r11_plus_r7_PostIndex"},
3114                            {{al, r7, r5, plus, r10, PreIndex},
3115                             false,
3116                             al,
3117                             "al r7 r5 plus r10 PreIndex",
3118                             "al_r7_r5_plus_r10_PreIndex"},
3119                            {{al, r4, r3, minus, r2, PostIndex},
3120                             false,
3121                             al,
3122                             "al r4 r3 minus r2 PostIndex",
3123                             "al_r4_r3_minus_r2_PostIndex"},
3124                            {{al, r2, r6, minus, r6, PostIndex},
3125                             false,
3126                             al,
3127                             "al r2 r6 minus r6 PostIndex",
3128                             "al_r2_r6_minus_r6_PostIndex"},
3129                            {{al, r11, r1, minus, r9, PreIndex},
3130                             false,
3131                             al,
3132                             "al r11 r1 minus r9 PreIndex",
3133                             "al_r11_r1_minus_r9_PreIndex"},
3134                            {{al, r5, r13, plus, r5, PostIndex},
3135                             false,
3136                             al,
3137                             "al r5 r13 plus r5 PostIndex",
3138                             "al_r5_r13_plus_r5_PostIndex"},
3139                            {{al, r1, r13, minus, r13, PostIndex},
3140                             false,
3141                             al,
3142                             "al r1 r13 minus r13 PostIndex",
3143                             "al_r1_r13_minus_r13_PostIndex"},
3144                            {{al, r0, r10, plus, r10, PostIndex},
3145                             false,
3146                             al,
3147                             "al r0 r10 plus r10 PostIndex",
3148                             "al_r0_r10_plus_r10_PostIndex"},
3149                            {{al, r5, r10, plus, r9, PreIndex},
3150                             false,
3151                             al,
3152                             "al r5 r10 plus r9 PreIndex",
3153                             "al_r5_r10_plus_r9_PreIndex"},
3154                            {{al, r0, r13, minus, r2, PostIndex},
3155                             false,
3156                             al,
3157                             "al r0 r13 minus r2 PostIndex",
3158                             "al_r0_r13_minus_r2_PostIndex"},
3159                            {{al, r7, r8, minus, r0, PostIndex},
3160                             false,
3161                             al,
3162                             "al r7 r8 minus r0 PostIndex",
3163                             "al_r7_r8_minus_r0_PostIndex"},
3164                            {{al, r2, r9, minus, r12, PostIndex},
3165                             false,
3166                             al,
3167                             "al r2 r9 minus r12 PostIndex",
3168                             "al_r2_r9_minus_r12_PostIndex"},
3169                            {{al, r9, r3, minus, r5, PostIndex},
3170                             false,
3171                             al,
3172                             "al r9 r3 minus r5 PostIndex",
3173                             "al_r9_r3_minus_r5_PostIndex"},
3174                            {{al, r6, r5, minus, r12, PostIndex},
3175                             false,
3176                             al,
3177                             "al r6 r5 minus r12 PostIndex",
3178                             "al_r6_r5_minus_r12_PostIndex"},
3179                            {{al, r11, r4, minus, r10, PreIndex},
3180                             false,
3181                             al,
3182                             "al r11 r4 minus r10 PreIndex",
3183                             "al_r11_r4_minus_r10_PreIndex"},
3184                            {{al, r10, r14, plus, r1, PostIndex},
3185                             false,
3186                             al,
3187                             "al r10 r14 plus r1 PostIndex",
3188                             "al_r10_r14_plus_r1_PostIndex"},
3189                            {{al, r8, r5, plus, r0, PreIndex},
3190                             false,
3191                             al,
3192                             "al r8 r5 plus r0 PreIndex",
3193                             "al_r8_r5_plus_r0_PreIndex"},
3194                            {{al, r10, r13, plus, r13, PreIndex},
3195                             false,
3196                             al,
3197                             "al r10 r13 plus r13 PreIndex",
3198                             "al_r10_r13_plus_r13_PreIndex"},
3199                            {{al, r0, r8, plus, r13, PreIndex},
3200                             false,
3201                             al,
3202                             "al r0 r8 plus r13 PreIndex",
3203                             "al_r0_r8_plus_r13_PreIndex"},
3204                            {{al, r10, r13, plus, r8, PreIndex},
3205                             false,
3206                             al,
3207                             "al r10 r13 plus r8 PreIndex",
3208                             "al_r10_r13_plus_r8_PreIndex"},
3209                            {{al, r11, r6, minus, r4, PreIndex},
3210                             false,
3211                             al,
3212                             "al r11 r6 minus r4 PreIndex",
3213                             "al_r11_r6_minus_r4_PreIndex"},
3214                            {{al, r1, r9, plus, r10, PostIndex},
3215                             false,
3216                             al,
3217                             "al r1 r9 plus r10 PostIndex",
3218                             "al_r1_r9_plus_r10_PostIndex"},
3219                            {{al, r3, r12, minus, r12, PostIndex},
3220                             false,
3221                             al,
3222                             "al r3 r12 minus r12 PostIndex",
3223                             "al_r3_r12_minus_r12_PostIndex"},
3224                            {{al, r13, r6, minus, r6, PreIndex},
3225                             false,
3226                             al,
3227                             "al r13 r6 minus r6 PreIndex",
3228                             "al_r13_r6_minus_r6_PreIndex"},
3229                            {{al, r9, r14, plus, r4, PostIndex},
3230                             false,
3231                             al,
3232                             "al r9 r14 plus r4 PostIndex",
3233                             "al_r9_r14_plus_r4_PostIndex"},
3234                            {{al, r12, r10, minus, r13, PostIndex},
3235                             false,
3236                             al,
3237                             "al r12 r10 minus r13 PostIndex",
3238                             "al_r12_r10_minus_r13_PostIndex"},
3239                            {{al, r7, r11, minus, r7, PreIndex},
3240                             false,
3241                             al,
3242                             "al r7 r11 minus r7 PreIndex",
3243                             "al_r7_r11_minus_r7_PreIndex"},
3244                            {{al, r11, r4, minus, r12, PostIndex},
3245                             false,
3246                             al,
3247                             "al r11 r4 minus r12 PostIndex",
3248                             "al_r11_r4_minus_r12_PostIndex"},
3249                            {{al, r8, r14, plus, r8, PreIndex},
3250                             false,
3251                             al,
3252                             "al r8 r14 plus r8 PreIndex",
3253                             "al_r8_r14_plus_r8_PreIndex"},
3254                            {{al, r12, r1, plus, r14, PreIndex},
3255                             false,
3256                             al,
3257                             "al r12 r1 plus r14 PreIndex",
3258                             "al_r12_r1_plus_r14_PreIndex"},
3259                            {{al, r3, r4, plus, r2, PostIndex},
3260                             false,
3261                             al,
3262                             "al r3 r4 plus r2 PostIndex",
3263                             "al_r3_r4_plus_r2_PostIndex"},
3264                            {{al, r6, r8, minus, r5, PostIndex},
3265                             false,
3266                             al,
3267                             "al r6 r8 minus r5 PostIndex",
3268                             "al_r6_r8_minus_r5_PostIndex"},
3269                            {{al, r12, r14, plus, r4, PostIndex},
3270                             false,
3271                             al,
3272                             "al r12 r14 plus r4 PostIndex",
3273                             "al_r12_r14_plus_r4_PostIndex"},
3274                            {{al, r3, r10, minus, r8, PostIndex},
3275                             false,
3276                             al,
3277                             "al r3 r10 minus r8 PostIndex",
3278                             "al_r3_r10_minus_r8_PostIndex"},
3279                            {{al, r12, r7, plus, r1, PreIndex},
3280                             false,
3281                             al,
3282                             "al r12 r7 plus r1 PreIndex",
3283                             "al_r12_r7_plus_r1_PreIndex"},
3284                            {{al, r14, r9, minus, r7, PreIndex},
3285                             false,
3286                             al,
3287                             "al r14 r9 minus r7 PreIndex",
3288                             "al_r14_r9_minus_r7_PreIndex"},
3289                            {{al, r7, r12, plus, r1, PreIndex},
3290                             false,
3291                             al,
3292                             "al r7 r12 plus r1 PreIndex",
3293                             "al_r7_r12_plus_r1_PreIndex"},
3294                            {{al, r10, r11, minus, r4, PreIndex},
3295                             false,
3296                             al,
3297                             "al r10 r11 minus r4 PreIndex",
3298                             "al_r10_r11_minus_r4_PreIndex"},
3299                            {{al, r4, r9, minus, r3, PreIndex},
3300                             false,
3301                             al,
3302                             "al r4 r9 minus r3 PreIndex",
3303                             "al_r4_r9_minus_r3_PreIndex"},
3304                            {{al, r2, r13, plus, r14, PreIndex},
3305                             false,
3306                             al,
3307                             "al r2 r13 plus r14 PreIndex",
3308                             "al_r2_r13_plus_r14_PreIndex"},
3309                            {{al, r1, r12, minus, r13, PreIndex},
3310                             false,
3311                             al,
3312                             "al r1 r12 minus r13 PreIndex",
3313                             "al_r1_r12_minus_r13_PreIndex"},
3314                            {{al, r6, r10, plus, r6, PostIndex},
3315                             false,
3316                             al,
3317                             "al r6 r10 plus r6 PostIndex",
3318                             "al_r6_r10_plus_r6_PostIndex"},
3319                            {{al, r0, r14, minus, r7, PreIndex},
3320                             false,
3321                             al,
3322                             "al r0 r14 minus r7 PreIndex",
3323                             "al_r0_r14_minus_r7_PreIndex"},
3324                            {{al, r5, r13, minus, r13, PostIndex},
3325                             false,
3326                             al,
3327                             "al r5 r13 minus r13 PostIndex",
3328                             "al_r5_r13_minus_r13_PostIndex"},
3329                            {{al, r2, r11, minus, r6, PostIndex},
3330                             false,
3331                             al,
3332                             "al r2 r11 minus r6 PostIndex",
3333                             "al_r2_r11_minus_r6_PostIndex"},
3334                            {{al, r5, r9, plus, r14, PostIndex},
3335                             false,
3336                             al,
3337                             "al r5 r9 plus r14 PostIndex",
3338                             "al_r5_r9_plus_r14_PostIndex"},
3339                            {{al, r7, r2, plus, r7, PostIndex},
3340                             false,
3341                             al,
3342                             "al r7 r2 plus r7 PostIndex",
3343                             "al_r7_r2_plus_r7_PostIndex"},
3344                            {{al, r9, r2, plus, r2, PreIndex},
3345                             false,
3346                             al,
3347                             "al r9 r2 plus r2 PreIndex",
3348                             "al_r9_r2_plus_r2_PreIndex"},
3349                            {{al, r0, r14, plus, r14, PreIndex},
3350                             false,
3351                             al,
3352                             "al r0 r14 plus r14 PreIndex",
3353                             "al_r0_r14_plus_r14_PreIndex"},
3354                            {{al, r14, r13, minus, r0, PreIndex},
3355                             false,
3356                             al,
3357                             "al r14 r13 minus r0 PreIndex",
3358                             "al_r14_r13_minus_r0_PreIndex"},
3359                            {{al, r7, r3, minus, r5, PreIndex},
3360                             false,
3361                             al,
3362                             "al r7 r3 minus r5 PreIndex",
3363                             "al_r7_r3_minus_r5_PreIndex"},
3364                            {{al, r14, r0, minus, r10, PostIndex},
3365                             false,
3366                             al,
3367                             "al r14 r0 minus r10 PostIndex",
3368                             "al_r14_r0_minus_r10_PostIndex"},
3369                            {{al, r1, r2, minus, r4, PreIndex},
3370                             false,
3371                             al,
3372                             "al r1 r2 minus r4 PreIndex",
3373                             "al_r1_r2_minus_r4_PreIndex"},
3374                            {{al, r8, r3, minus, r5, PostIndex},
3375                             false,
3376                             al,
3377                             "al r8 r3 minus r5 PostIndex",
3378                             "al_r8_r3_minus_r5_PostIndex"},
3379                            {{al, r3, r5, plus, r6, PreIndex},
3380                             false,
3381                             al,
3382                             "al r3 r5 plus r6 PreIndex",
3383                             "al_r3_r5_plus_r6_PreIndex"},
3384                            {{al, r4, r12, plus, r9, PostIndex},
3385                             false,
3386                             al,
3387                             "al r4 r12 plus r9 PostIndex",
3388                             "al_r4_r12_plus_r9_PostIndex"},
3389                            {{al, r4, r12, minus, r3, PreIndex},
3390                             false,
3391                             al,
3392                             "al r4 r12 minus r3 PreIndex",
3393                             "al_r4_r12_minus_r3_PreIndex"},
3394                            {{al, r12, r0, minus, r5, PostIndex},
3395                             false,
3396                             al,
3397                             "al r12 r0 minus r5 PostIndex",
3398                             "al_r12_r0_minus_r5_PostIndex"},
3399                            {{al, r12, r4, plus, r7, PostIndex},
3400                             false,
3401                             al,
3402                             "al r12 r4 plus r7 PostIndex",
3403                             "al_r12_r4_plus_r7_PostIndex"},
3404                            {{al, r6, r5, minus, r7, PreIndex},
3405                             false,
3406                             al,
3407                             "al r6 r5 minus r7 PreIndex",
3408                             "al_r6_r5_minus_r7_PreIndex"},
3409                            {{al, r10, r11, plus, r4, PostIndex},
3410                             false,
3411                             al,
3412                             "al r10 r11 plus r4 PostIndex",
3413                             "al_r10_r11_plus_r4_PostIndex"},
3414                            {{al, r3, r12, plus, r7, PreIndex},
3415                             false,
3416                             al,
3417                             "al r3 r12 plus r7 PreIndex",
3418                             "al_r3_r12_plus_r7_PreIndex"},
3419                            {{al, r3, r10, plus, r4, PreIndex},
3420                             false,
3421                             al,
3422                             "al r3 r10 plus r4 PreIndex",
3423                             "al_r3_r10_plus_r4_PreIndex"},
3424                            {{al, r6, r8, plus, r6, PreIndex},
3425                             false,
3426                             al,
3427                             "al r6 r8 plus r6 PreIndex",
3428                             "al_r6_r8_plus_r6_PreIndex"},
3429                            {{al, r4, r5, plus, r8, PostIndex},
3430                             false,
3431                             al,
3432                             "al r4 r5 plus r8 PostIndex",
3433                             "al_r4_r5_plus_r8_PostIndex"},
3434                            {{al, r13, r0, minus, r3, PostIndex},
3435                             false,
3436                             al,
3437                             "al r13 r0 minus r3 PostIndex",
3438                             "al_r13_r0_minus_r3_PostIndex"},
3439                            {{al, r7, r2, minus, r14, PreIndex},
3440                             false,
3441                             al,
3442                             "al r7 r2 minus r14 PreIndex",
3443                             "al_r7_r2_minus_r14_PreIndex"},
3444                            {{al, r3, r10, plus, r3, PostIndex},
3445                             false,
3446                             al,
3447                             "al r3 r10 plus r3 PostIndex",
3448                             "al_r3_r10_plus_r3_PostIndex"},
3449                            {{al, r10, r4, minus, r1, PostIndex},
3450                             false,
3451                             al,
3452                             "al r10 r4 minus r1 PostIndex",
3453                             "al_r10_r4_minus_r1_PostIndex"},
3454                            {{al, r6, r5, minus, r1, PreIndex},
3455                             false,
3456                             al,
3457                             "al r6 r5 minus r1 PreIndex",
3458                             "al_r6_r5_minus_r1_PreIndex"},
3459                            {{al, r7, r3, plus, r5, PostIndex},
3460                             false,
3461                             al,
3462                             "al r7 r3 plus r5 PostIndex",
3463                             "al_r7_r3_plus_r5_PostIndex"},
3464                            {{al, r7, r8, plus, r13, PreIndex},
3465                             false,
3466                             al,
3467                             "al r7 r8 plus r13 PreIndex",
3468                             "al_r7_r8_plus_r13_PreIndex"},
3469                            {{al, r10, r13, plus, r4, PreIndex},
3470                             false,
3471                             al,
3472                             "al r10 r13 plus r4 PreIndex",
3473                             "al_r10_r13_plus_r4_PreIndex"},
3474                            {{al, r8, r3, plus, r1, PostIndex},
3475                             false,
3476                             al,
3477                             "al r8 r3 plus r1 PostIndex",
3478                             "al_r8_r3_plus_r1_PostIndex"},
3479                            {{al, r14, r6, plus, r3, PreIndex},
3480                             false,
3481                             al,
3482                             "al r14 r6 plus r3 PreIndex",
3483                             "al_r14_r6_plus_r3_PreIndex"},
3484                            {{al, r3, r5, minus, r4, PostIndex},
3485                             false,
3486                             al,
3487                             "al r3 r5 minus r4 PostIndex",
3488                             "al_r3_r5_minus_r4_PostIndex"},
3489                            {{al, r5, r7, plus, r6, PreIndex},
3490                             false,
3491                             al,
3492                             "al r5 r7 plus r6 PreIndex",
3493                             "al_r5_r7_plus_r6_PreIndex"},
3494                            {{al, r4, r12, minus, r9, PostIndex},
3495                             false,
3496                             al,
3497                             "al r4 r12 minus r9 PostIndex",
3498                             "al_r4_r12_minus_r9_PostIndex"},
3499                            {{al, r7, r3, plus, r14, PreIndex},
3500                             false,
3501                             al,
3502                             "al r7 r3 plus r14 PreIndex",
3503                             "al_r7_r3_plus_r14_PreIndex"},
3504                            {{al, r14, r8, minus, r7, PreIndex},
3505                             false,
3506                             al,
3507                             "al r14 r8 minus r7 PreIndex",
3508                             "al_r14_r8_minus_r7_PreIndex"},
3509                            {{al, r2, r7, minus, r11, PreIndex},
3510                             false,
3511                             al,
3512                             "al r2 r7 minus r11 PreIndex",
3513                             "al_r2_r7_minus_r11_PreIndex"},
3514                            {{al, r8, r6, plus, r7, PreIndex},
3515                             false,
3516                             al,
3517                             "al r8 r6 plus r7 PreIndex",
3518                             "al_r8_r6_plus_r7_PreIndex"},
3519                            {{al, r9, r3, plus, r7, PostIndex},
3520                             false,
3521                             al,
3522                             "al r9 r3 plus r7 PostIndex",
3523                             "al_r9_r3_plus_r7_PostIndex"},
3524                            {{al, r7, r0, minus, r8, PreIndex},
3525                             false,
3526                             al,
3527                             "al r7 r0 minus r8 PreIndex",
3528                             "al_r7_r0_minus_r8_PreIndex"},
3529                            {{al, r6, r1, plus, r9, PreIndex},
3530                             false,
3531                             al,
3532                             "al r6 r1 plus r9 PreIndex",
3533                             "al_r6_r1_plus_r9_PreIndex"},
3534                            {{al, r2, r13, plus, r6, PostIndex},
3535                             false,
3536                             al,
3537                             "al r2 r13 plus r6 PostIndex",
3538                             "al_r2_r13_plus_r6_PostIndex"},
3539                            {{al, r11, r7, plus, r10, PostIndex},
3540                             false,
3541                             al,
3542                             "al r11 r7 plus r10 PostIndex",
3543                             "al_r11_r7_plus_r10_PostIndex"},
3544                            {{al, r9, r8, plus, r0, PostIndex},
3545                             false,
3546                             al,
3547                             "al r9 r8 plus r0 PostIndex",
3548                             "al_r9_r8_plus_r0_PostIndex"},
3549                            {{al, r3, r4, minus, r12, PostIndex},
3550                             false,
3551                             al,
3552                             "al r3 r4 minus r12 PostIndex",
3553                             "al_r3_r4_minus_r12_PostIndex"},
3554                            {{al, r8, r5, minus, r7, PostIndex},
3555                             false,
3556                             al,
3557                             "al r8 r5 minus r7 PostIndex",
3558                             "al_r8_r5_minus_r7_PostIndex"},
3559                            {{al, r8, r1, plus, r4, PreIndex},
3560                             false,
3561                             al,
3562                             "al r8 r1 plus r4 PreIndex",
3563                             "al_r8_r1_plus_r4_PreIndex"},
3564                            {{al, r10, r12, plus, r1, PreIndex},
3565                             false,
3566                             al,
3567                             "al r10 r12 plus r1 PreIndex",
3568                             "al_r10_r12_plus_r1_PreIndex"},
3569                            {{al, r9, r12, plus, r3, PostIndex},
3570                             false,
3571                             al,
3572                             "al r9 r12 plus r3 PostIndex",
3573                             "al_r9_r12_plus_r3_PostIndex"},
3574                            {{al, r10, r3, minus, r13, PostIndex},
3575                             false,
3576                             al,
3577                             "al r10 r3 minus r13 PostIndex",
3578                             "al_r10_r3_minus_r13_PostIndex"},
3579                            {{al, r5, r10, plus, r5, PostIndex},
3580                             false,
3581                             al,
3582                             "al r5 r10 plus r5 PostIndex",
3583                             "al_r5_r10_plus_r5_PostIndex"},
3584                            {{al, r12, r4, plus, r2, PostIndex},
3585                             false,
3586                             al,
3587                             "al r12 r4 plus r2 PostIndex",
3588                             "al_r12_r4_plus_r2_PostIndex"},
3589                            {{al, r3, r4, plus, r8, PreIndex},
3590                             false,
3591                             al,
3592                             "al r3 r4 plus r8 PreIndex",
3593                             "al_r3_r4_plus_r8_PreIndex"},
3594                            {{al, r6, r9, minus, r12, PostIndex},
3595                             false,
3596                             al,
3597                             "al r6 r9 minus r12 PostIndex",
3598                             "al_r6_r9_minus_r12_PostIndex"},
3599                            {{al, r11, r13, plus, r7, PostIndex},
3600                             false,
3601                             al,
3602                             "al r11 r13 plus r7 PostIndex",
3603                             "al_r11_r13_plus_r7_PostIndex"}};
3604 
3605 // These headers each contain an array of `TestResult` with the reference output
3606 // values. The reference arrays are names `kReference{mnemonic}`.
3607 #include "aarch32/traces/assembler-cond-rd-memop-rs-ldr-a32.h"
3608 #include "aarch32/traces/assembler-cond-rd-memop-rs-ldrb-a32.h"
3609 #include "aarch32/traces/assembler-cond-rd-memop-rs-ldrh-a32.h"
3610 #include "aarch32/traces/assembler-cond-rd-memop-rs-ldrsb-a32.h"
3611 #include "aarch32/traces/assembler-cond-rd-memop-rs-ldrsh-a32.h"
3612 #include "aarch32/traces/assembler-cond-rd-memop-rs-str-a32.h"
3613 #include "aarch32/traces/assembler-cond-rd-memop-rs-strb-a32.h"
3614 #include "aarch32/traces/assembler-cond-rd-memop-rs-strh-a32.h"
3615 
3616 
3617 // The maximum number of errors to report in detail for each test.
3618 const unsigned kErrorReportLimit = 8;
3619 
3620 typedef void (MacroAssembler::*Fn)(Condition cond,
3621                                    Register rd,
3622                                    const MemOperand& memop);
3623 
TestHelper(Fn instruction,const char * mnemonic,const TestResult reference[])3624 void TestHelper(Fn instruction,
3625                 const char* mnemonic,
3626                 const TestResult reference[]) {
3627   unsigned total_error_count = 0;
3628   MacroAssembler masm(BUF_SIZE);
3629 
3630   masm.UseA32();
3631 
3632   for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
3633     // Values to pass to the macro-assembler.
3634     Condition cond = kTests[i].operands.cond;
3635     Register rd = kTests[i].operands.rd;
3636     Register rn = kTests[i].operands.rn;
3637     Sign sign = kTests[i].operands.sign;
3638     Register rm = kTests[i].operands.rm;
3639     AddrMode addr_mode = kTests[i].operands.addr_mode;
3640     MemOperand memop(rn, sign, rm, addr_mode);
3641 
3642     int32_t start = masm.GetCursorOffset();
3643     {
3644       // We never generate more that 4 bytes, as IT instructions are only
3645       // allowed for narrow encodings.
3646       ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
3647       if (kTests[i].in_it_block) {
3648         masm.it(kTests[i].it_condition);
3649       }
3650       (masm.*instruction)(cond, rd, memop);
3651     }
3652     int32_t end = masm.GetCursorOffset();
3653 
3654     const byte* result_ptr =
3655         masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
3656     VIXL_ASSERT(start < end);
3657     uint32_t result_size = end - start;
3658 
3659     if (Test::generate_test_trace()) {
3660       // Print the result bytes.
3661       printf("const byte kInstruction_%s_%s[] = {\n",
3662              mnemonic,
3663              kTests[i].identifier);
3664       for (uint32_t j = 0; j < result_size; j++) {
3665         if (j == 0) {
3666           printf("  0x%02" PRIx8, result_ptr[j]);
3667         } else {
3668           printf(", 0x%02" PRIx8, result_ptr[j]);
3669         }
3670       }
3671       // This comment is meant to be used by external tools to validate
3672       // the encoding. We can parse the comment to figure out what
3673       // instruction this corresponds to.
3674       if (kTests[i].in_it_block) {
3675         printf(" // It %s; %s %s\n};\n",
3676                kTests[i].it_condition.GetName(),
3677                mnemonic,
3678                kTests[i].operands_description);
3679       } else {
3680         printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
3681       }
3682     } else {
3683       // Check we've emitted the exact same encoding as present in the
3684       // trace file. Only print up to `kErrorReportLimit` errors.
3685       if (((result_size != reference[i].size) ||
3686            (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
3687             0)) &&
3688           (++total_error_count <= kErrorReportLimit)) {
3689         printf("Error when testing \"%s\" with operands \"%s\":\n",
3690                mnemonic,
3691                kTests[i].operands_description);
3692         printf("  Expected: ");
3693         for (uint32_t j = 0; j < reference[i].size; j++) {
3694           if (j == 0) {
3695             printf("0x%02" PRIx8, reference[i].encoding[j]);
3696           } else {
3697             printf(", 0x%02" PRIx8, reference[i].encoding[j]);
3698           }
3699         }
3700         printf("\n");
3701         printf("  Found:    ");
3702         for (uint32_t j = 0; j < result_size; j++) {
3703           if (j == 0) {
3704             printf("0x%02" PRIx8, result_ptr[j]);
3705           } else {
3706             printf(", 0x%02" PRIx8, result_ptr[j]);
3707           }
3708         }
3709         printf("\n");
3710       }
3711     }
3712   }
3713 
3714   masm.FinalizeCode();
3715 
3716   if (Test::generate_test_trace()) {
3717     // Finalize the trace file by writing the final `TestResult` array
3718     // which links all generated instruction encodings.
3719     printf("const TestResult kReference%s[] = {\n", mnemonic);
3720     for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
3721       printf("  {\n");
3722       printf("    ARRAY_SIZE(kInstruction_%s_%s),\n",
3723              mnemonic,
3724              kTests[i].identifier);
3725       printf("    kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
3726       printf("  },\n");
3727     }
3728     printf("};\n");
3729   } else {
3730     if (total_error_count > kErrorReportLimit) {
3731       printf("%u other errors follow.\n",
3732              total_error_count - kErrorReportLimit);
3733     }
3734     // Crash if the test failed.
3735     VIXL_CHECK(total_error_count == 0);
3736   }
3737 }
3738 
3739 // Instantiate tests for each instruction in the list.
3740 #define TEST(mnemonic)                                                         \
3741   void Test_##mnemonic() {                                                     \
3742     TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic);    \
3743   }                                                                            \
3744   Test test_##mnemonic("AARCH32_ASSEMBLER_COND_RD_MEMOP_RS_" #mnemonic "_A32", \
3745                        &Test_##mnemonic);
3746 FOREACH_INSTRUCTION(TEST)
3747 #undef TEST
3748 
3749 }  // namespace
3750 #endif
3751 
3752 }  // namespace aarch32
3753 }  // namespace vixl
3754