1// Copyright 2016, VIXL authors
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are met:
6//
7//   * Redistributions of source code must retain the above copyright notice,
8//     this list of conditions and the following disclaimer.
9//   * Redistributions in binary form must reproduce the above copyright notice,
10//     this list of conditions and the following disclaimer in the documentation
11//     and/or other materials provided with the distribution.
12//   * Neither the name of ARM Limited nor the names of its contributors may be
13//     used to endorse or promote products derived from this software without
14//     specific prior written permission.
15//
16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27
28// -----------------------------------------------------------------------------
29// This file is auto generated from the
30// test/aarch32/config/template-assembler-aarch32.cc.in template file using
31// tools/generate_tests.py.
32//
33// PLEASE DO NOT EDIT.
34// -----------------------------------------------------------------------------
35
36
37#include "test-runner.h"
38
39#include "test-utils.h"
40#include "test-utils-aarch32.h"
41
42#include "aarch32/assembler-aarch32.h"
43#include "aarch32/macro-assembler-aarch32.h"
44
45#define BUF_SIZE (4096)
46
47namespace vixl {
48namespace aarch32 {
49
50// List of instruction mnemonics.
51#define FOREACH_INSTRUCTION(M) \
52  M(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
69namespace {
70
71// Values to be passed to the assembler to produce the instruction under test.
72struct 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.
83struct 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
98struct TestResult {
99  size_t size;
100  const byte* encoding;
101};
102
103// Each element of this array produce one instruction encoding.
104const 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.
3618const unsigned kErrorReportLimit = 8;
3619
3620typedef void (MacroAssembler::*Fn)(Condition cond,
3621                                   Register rd,
3622                                   const MemOperand& memop);
3623
3624void 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);
3746FOREACH_INSTRUCTION(TEST)
3747#undef TEST
3748
3749}  // namespace
3750#endif
3751
3752}  // namespace aarch32
3753}  // namespace vixl
3754