test-assembler-cond-rd-memop-rs-shift-amount-1to31-a32.cc revision 1661f51a172e7c3dcce6caca55b6fe6d10ebd416
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(str)                       \
55  M(strb)
56
57
58// The following definitions are defined again in each generated test, therefore
59// we need to place them in an anomymous namespace. It expresses that they are
60// local to this file only, and the compiler is not allowed to share these types
61// across test files during template instantiation. Specifically, `Operands` has
62// various layouts across generated tests so it absolutely cannot be shared.
63
64namespace {
65
66// Values to be passed to the assembler to produce the instruction under test.
67struct Operands {
68  Condition cond;
69  Register rd;
70  Register rn;
71  Sign sign;
72  Register rm;
73  ShiftType shift;
74  uint32_t amount;
75  AddrMode addr_mode;
76};
77
78// This structure contains all data needed to test one specific
79// instruction.
80struct TestData {
81  // The `operands` field represents what to pass to the assembler to
82  // produce the instruction.
83  Operands operands;
84  // True if we need to generate an IT instruction for this test to be valid.
85  bool in_it_block;
86  // The condition to give the IT instruction, this will be set to "al" by
87  // default.
88  Condition it_condition;
89  // Description of the operands, used for error reporting.
90  const char* operands_description;
91  // Unique identifier, used for generating traces.
92  const char* identifier;
93};
94
95struct TestResult {
96  size_t size;
97  const byte* encoding;
98};
99
100// Each element of this array produce one instruction encoding.
101const TestData kTests[] = {{{pl, r8, r11, plus, r6, LSL, 1, Offset},
102                            false,
103                            al,
104                            "pl r8 r11 plus r6 LSL 1 Offset",
105                            "pl_r8_r11_plus_r6_LSL_1_Offset"},
106                           {{le, r4, r8, plus, r5, LSL, 1, Offset},
107                            false,
108                            al,
109                            "le r4 r8 plus r5 LSL 1 Offset",
110                            "le_r4_r8_plus_r5_LSL_1_Offset"},
111                           {{vs, r2, r6, plus, r14, LSL, 1, Offset},
112                            false,
113                            al,
114                            "vs r2 r6 plus r14 LSL 1 Offset",
115                            "vs_r2_r6_plus_r14_LSL_1_Offset"},
116                           {{ls, r1, r7, plus, r8, LSL, 1, Offset},
117                            false,
118                            al,
119                            "ls r1 r7 plus r8 LSL 1 Offset",
120                            "ls_r1_r7_plus_r8_LSL_1_Offset"},
121                           {{ge, r14, r6, plus, r14, LSL, 1, Offset},
122                            false,
123                            al,
124                            "ge r14 r6 plus r14 LSL 1 Offset",
125                            "ge_r14_r6_plus_r14_LSL_1_Offset"},
126                           {{cs, r7, r0, plus, r7, LSL, 1, Offset},
127                            false,
128                            al,
129                            "cs r7 r0 plus r7 LSL 1 Offset",
130                            "cs_r7_r0_plus_r7_LSL_1_Offset"},
131                           {{ge, r11, r0, plus, r9, LSL, 1, Offset},
132                            false,
133                            al,
134                            "ge r11 r0 plus r9 LSL 1 Offset",
135                            "ge_r11_r0_plus_r9_LSL_1_Offset"},
136                           {{eq, r7, r10, plus, r4, LSL, 1, Offset},
137                            false,
138                            al,
139                            "eq r7 r10 plus r4 LSL 1 Offset",
140                            "eq_r7_r10_plus_r4_LSL_1_Offset"},
141                           {{al, r9, r2, plus, r3, LSL, 1, Offset},
142                            false,
143                            al,
144                            "al r9 r2 plus r3 LSL 1 Offset",
145                            "al_r9_r2_plus_r3_LSL_1_Offset"},
146                           {{cc, r11, r10, plus, r6, LSL, 1, Offset},
147                            false,
148                            al,
149                            "cc r11 r10 plus r6 LSL 1 Offset",
150                            "cc_r11_r10_plus_r6_LSL_1_Offset"},
151                           {{lt, r9, r6, plus, r1, LSL, 1, Offset},
152                            false,
153                            al,
154                            "lt r9 r6 plus r1 LSL 1 Offset",
155                            "lt_r9_r6_plus_r1_LSL_1_Offset"},
156                           {{ge, r4, r0, plus, r4, LSL, 1, Offset},
157                            false,
158                            al,
159                            "ge r4 r0 plus r4 LSL 1 Offset",
160                            "ge_r4_r0_plus_r4_LSL_1_Offset"},
161                           {{al, r9, r13, plus, r14, LSL, 1, Offset},
162                            false,
163                            al,
164                            "al r9 r13 plus r14 LSL 1 Offset",
165                            "al_r9_r13_plus_r14_LSL_1_Offset"},
166                           {{cc, r9, r0, plus, r7, LSL, 1, Offset},
167                            false,
168                            al,
169                            "cc r9 r0 plus r7 LSL 1 Offset",
170                            "cc_r9_r0_plus_r7_LSL_1_Offset"},
171                           {{cs, r11, r7, plus, r8, LSL, 1, Offset},
172                            false,
173                            al,
174                            "cs r11 r7 plus r8 LSL 1 Offset",
175                            "cs_r11_r7_plus_r8_LSL_1_Offset"},
176                           {{eq, r8, r0, plus, r8, LSL, 1, Offset},
177                            false,
178                            al,
179                            "eq r8 r0 plus r8 LSL 1 Offset",
180                            "eq_r8_r0_plus_r8_LSL_1_Offset"},
181                           {{hi, r9, r10, plus, r8, LSL, 1, Offset},
182                            false,
183                            al,
184                            "hi r9 r10 plus r8 LSL 1 Offset",
185                            "hi_r9_r10_plus_r8_LSL_1_Offset"},
186                           {{le, r8, r0, plus, r0, LSL, 1, Offset},
187                            false,
188                            al,
189                            "le r8 r0 plus r0 LSL 1 Offset",
190                            "le_r8_r0_plus_r0_LSL_1_Offset"},
191                           {{cs, r4, r5, plus, r2, LSL, 1, Offset},
192                            false,
193                            al,
194                            "cs r4 r5 plus r2 LSL 1 Offset",
195                            "cs_r4_r5_plus_r2_LSL_1_Offset"},
196                           {{eq, r14, r11, plus, r8, LSL, 1, Offset},
197                            false,
198                            al,
199                            "eq r14 r11 plus r8 LSL 1 Offset",
200                            "eq_r14_r11_plus_r8_LSL_1_Offset"},
201                           {{cs, r7, r6, plus, r14, LSL, 1, Offset},
202                            false,
203                            al,
204                            "cs r7 r6 plus r14 LSL 1 Offset",
205                            "cs_r7_r6_plus_r14_LSL_1_Offset"},
206                           {{ne, r0, r9, plus, r7, LSL, 1, Offset},
207                            false,
208                            al,
209                            "ne r0 r9 plus r7 LSL 1 Offset",
210                            "ne_r0_r9_plus_r7_LSL_1_Offset"},
211                           {{le, r7, r3, plus, r11, LSL, 1, Offset},
212                            false,
213                            al,
214                            "le r7 r3 plus r11 LSL 1 Offset",
215                            "le_r7_r3_plus_r11_LSL_1_Offset"},
216                           {{gt, r7, r9, plus, r9, LSL, 1, Offset},
217                            false,
218                            al,
219                            "gt r7 r9 plus r9 LSL 1 Offset",
220                            "gt_r7_r9_plus_r9_LSL_1_Offset"},
221                           {{le, r9, r12, plus, r9, LSL, 1, Offset},
222                            false,
223                            al,
224                            "le r9 r12 plus r9 LSL 1 Offset",
225                            "le_r9_r12_plus_r9_LSL_1_Offset"},
226                           {{pl, r2, r11, plus, r14, LSL, 1, Offset},
227                            false,
228                            al,
229                            "pl r2 r11 plus r14 LSL 1 Offset",
230                            "pl_r2_r11_plus_r14_LSL_1_Offset"},
231                           {{cs, r1, r7, plus, r2, LSL, 1, Offset},
232                            false,
233                            al,
234                            "cs r1 r7 plus r2 LSL 1 Offset",
235                            "cs_r1_r7_plus_r2_LSL_1_Offset"},
236                           {{al, r5, r1, plus, r12, LSL, 1, Offset},
237                            false,
238                            al,
239                            "al r5 r1 plus r12 LSL 1 Offset",
240                            "al_r5_r1_plus_r12_LSL_1_Offset"},
241                           {{eq, r10, r13, plus, r12, LSL, 1, Offset},
242                            false,
243                            al,
244                            "eq r10 r13 plus r12 LSL 1 Offset",
245                            "eq_r10_r13_plus_r12_LSL_1_Offset"},
246                           {{eq, r10, r11, plus, r3, LSL, 1, Offset},
247                            false,
248                            al,
249                            "eq r10 r11 plus r3 LSL 1 Offset",
250                            "eq_r10_r11_plus_r3_LSL_1_Offset"},
251                           {{al, r9, r12, plus, r0, LSL, 1, Offset},
252                            false,
253                            al,
254                            "al r9 r12 plus r0 LSL 1 Offset",
255                            "al_r9_r12_plus_r0_LSL_1_Offset"},
256                           {{ls, r3, r14, plus, r1, LSL, 1, Offset},
257                            false,
258                            al,
259                            "ls r3 r14 plus r1 LSL 1 Offset",
260                            "ls_r3_r14_plus_r1_LSL_1_Offset"},
261                           {{le, r13, r4, plus, r9, LSL, 1, Offset},
262                            false,
263                            al,
264                            "le r13 r4 plus r9 LSL 1 Offset",
265                            "le_r13_r4_plus_r9_LSL_1_Offset"},
266                           {{ls, r3, r14, plus, r3, LSL, 1, Offset},
267                            false,
268                            al,
269                            "ls r3 r14 plus r3 LSL 1 Offset",
270                            "ls_r3_r14_plus_r3_LSL_1_Offset"},
271                           {{cc, r7, r4, plus, r4, LSL, 1, Offset},
272                            false,
273                            al,
274                            "cc r7 r4 plus r4 LSL 1 Offset",
275                            "cc_r7_r4_plus_r4_LSL_1_Offset"},
276                           {{ls, r5, r9, plus, r5, LSL, 1, Offset},
277                            false,
278                            al,
279                            "ls r5 r9 plus r5 LSL 1 Offset",
280                            "ls_r5_r9_plus_r5_LSL_1_Offset"},
281                           {{ge, r6, r4, plus, r13, LSL, 1, Offset},
282                            false,
283                            al,
284                            "ge r6 r4 plus r13 LSL 1 Offset",
285                            "ge_r6_r4_plus_r13_LSL_1_Offset"},
286                           {{al, r1, r11, plus, r12, LSL, 1, Offset},
287                            false,
288                            al,
289                            "al r1 r11 plus r12 LSL 1 Offset",
290                            "al_r1_r11_plus_r12_LSL_1_Offset"},
291                           {{le, r6, r11, plus, r3, LSL, 1, Offset},
292                            false,
293                            al,
294                            "le r6 r11 plus r3 LSL 1 Offset",
295                            "le_r6_r11_plus_r3_LSL_1_Offset"},
296                           {{al, r6, r6, plus, r13, LSL, 1, Offset},
297                            false,
298                            al,
299                            "al r6 r6 plus r13 LSL 1 Offset",
300                            "al_r6_r6_plus_r13_LSL_1_Offset"},
301                           {{gt, r14, r11, plus, r2, LSL, 1, Offset},
302                            false,
303                            al,
304                            "gt r14 r11 plus r2 LSL 1 Offset",
305                            "gt_r14_r11_plus_r2_LSL_1_Offset"},
306                           {{vs, r5, r8, plus, r12, LSL, 1, Offset},
307                            false,
308                            al,
309                            "vs r5 r8 plus r12 LSL 1 Offset",
310                            "vs_r5_r8_plus_r12_LSL_1_Offset"},
311                           {{ls, r8, r12, plus, r6, LSL, 1, Offset},
312                            false,
313                            al,
314                            "ls r8 r12 plus r6 LSL 1 Offset",
315                            "ls_r8_r12_plus_r6_LSL_1_Offset"},
316                           {{vs, r6, r12, plus, r14, LSL, 1, Offset},
317                            false,
318                            al,
319                            "vs r6 r12 plus r14 LSL 1 Offset",
320                            "vs_r6_r12_plus_r14_LSL_1_Offset"},
321                           {{pl, r7, r2, plus, r7, LSL, 1, Offset},
322                            false,
323                            al,
324                            "pl r7 r2 plus r7 LSL 1 Offset",
325                            "pl_r7_r2_plus_r7_LSL_1_Offset"},
326                           {{gt, r5, r4, plus, r13, LSL, 1, Offset},
327                            false,
328                            al,
329                            "gt r5 r4 plus r13 LSL 1 Offset",
330                            "gt_r5_r4_plus_r13_LSL_1_Offset"},
331                           {{hi, r2, r7, plus, r12, LSL, 1, Offset},
332                            false,
333                            al,
334                            "hi r2 r7 plus r12 LSL 1 Offset",
335                            "hi_r2_r7_plus_r12_LSL_1_Offset"},
336                           {{ne, r2, r3, plus, r10, LSL, 1, Offset},
337                            false,
338                            al,
339                            "ne r2 r3 plus r10 LSL 1 Offset",
340                            "ne_r2_r3_plus_r10_LSL_1_Offset"},
341                           {{lt, r13, r2, plus, r6, LSL, 1, Offset},
342                            false,
343                            al,
344                            "lt r13 r2 plus r6 LSL 1 Offset",
345                            "lt_r13_r2_plus_r6_LSL_1_Offset"},
346                           {{hi, r14, r10, plus, r11, LSL, 1, Offset},
347                            false,
348                            al,
349                            "hi r14 r10 plus r11 LSL 1 Offset",
350                            "hi_r14_r10_plus_r11_LSL_1_Offset"},
351                           {{hi, r7, r10, plus, r12, LSL, 1, Offset},
352                            false,
353                            al,
354                            "hi r7 r10 plus r12 LSL 1 Offset",
355                            "hi_r7_r10_plus_r12_LSL_1_Offset"},
356                           {{cs, r3, r12, plus, r2, LSL, 1, Offset},
357                            false,
358                            al,
359                            "cs r3 r12 plus r2 LSL 1 Offset",
360                            "cs_r3_r12_plus_r2_LSL_1_Offset"},
361                           {{ls, r11, r5, plus, r1, LSL, 1, Offset},
362                            false,
363                            al,
364                            "ls r11 r5 plus r1 LSL 1 Offset",
365                            "ls_r11_r5_plus_r1_LSL_1_Offset"},
366                           {{hi, r5, r2, plus, r11, LSL, 1, Offset},
367                            false,
368                            al,
369                            "hi r5 r2 plus r11 LSL 1 Offset",
370                            "hi_r5_r2_plus_r11_LSL_1_Offset"},
371                           {{cc, r11, r8, plus, r6, LSL, 1, Offset},
372                            false,
373                            al,
374                            "cc r11 r8 plus r6 LSL 1 Offset",
375                            "cc_r11_r8_plus_r6_LSL_1_Offset"},
376                           {{lt, r11, r3, plus, r9, LSL, 1, Offset},
377                            false,
378                            al,
379                            "lt r11 r3 plus r9 LSL 1 Offset",
380                            "lt_r11_r3_plus_r9_LSL_1_Offset"},
381                           {{ne, r11, r9, plus, r8, LSL, 1, Offset},
382                            false,
383                            al,
384                            "ne r11 r9 plus r8 LSL 1 Offset",
385                            "ne_r11_r9_plus_r8_LSL_1_Offset"},
386                           {{lt, r7, r0, plus, r14, LSL, 1, Offset},
387                            false,
388                            al,
389                            "lt r7 r0 plus r14 LSL 1 Offset",
390                            "lt_r7_r0_plus_r14_LSL_1_Offset"},
391                           {{ge, r12, r3, plus, r1, LSL, 1, Offset},
392                            false,
393                            al,
394                            "ge r12 r3 plus r1 LSL 1 Offset",
395                            "ge_r12_r3_plus_r1_LSL_1_Offset"},
396                           {{le, r0, r8, plus, r13, LSL, 1, Offset},
397                            false,
398                            al,
399                            "le r0 r8 plus r13 LSL 1 Offset",
400                            "le_r0_r8_plus_r13_LSL_1_Offset"},
401                           {{vc, r5, r13, plus, r7, LSL, 1, Offset},
402                            false,
403                            al,
404                            "vc r5 r13 plus r7 LSL 1 Offset",
405                            "vc_r5_r13_plus_r7_LSL_1_Offset"},
406                           {{ge, r7, r5, plus, r11, LSL, 1, Offset},
407                            false,
408                            al,
409                            "ge r7 r5 plus r11 LSL 1 Offset",
410                            "ge_r7_r5_plus_r11_LSL_1_Offset"},
411                           {{ge, r10, r9, plus, r3, LSL, 1, Offset},
412                            false,
413                            al,
414                            "ge r10 r9 plus r3 LSL 1 Offset",
415                            "ge_r10_r9_plus_r3_LSL_1_Offset"},
416                           {{vs, r9, r5, plus, r2, LSL, 1, Offset},
417                            false,
418                            al,
419                            "vs r9 r5 plus r2 LSL 1 Offset",
420                            "vs_r9_r5_plus_r2_LSL_1_Offset"},
421                           {{hi, r2, r10, plus, r4, LSL, 1, Offset},
422                            false,
423                            al,
424                            "hi r2 r10 plus r4 LSL 1 Offset",
425                            "hi_r2_r10_plus_r4_LSL_1_Offset"},
426                           {{ge, r1, r11, plus, r1, LSL, 1, Offset},
427                            false,
428                            al,
429                            "ge r1 r11 plus r1 LSL 1 Offset",
430                            "ge_r1_r11_plus_r1_LSL_1_Offset"},
431                           {{ls, r9, r14, plus, r12, LSL, 1, Offset},
432                            false,
433                            al,
434                            "ls r9 r14 plus r12 LSL 1 Offset",
435                            "ls_r9_r14_plus_r12_LSL_1_Offset"},
436                           {{mi, r1, r9, plus, r4, LSL, 1, Offset},
437                            false,
438                            al,
439                            "mi r1 r9 plus r4 LSL 1 Offset",
440                            "mi_r1_r9_plus_r4_LSL_1_Offset"},
441                           {{mi, r7, r10, plus, r4, LSL, 1, Offset},
442                            false,
443                            al,
444                            "mi r7 r10 plus r4 LSL 1 Offset",
445                            "mi_r7_r10_plus_r4_LSL_1_Offset"},
446                           {{gt, r6, r2, plus, r5, LSL, 1, Offset},
447                            false,
448                            al,
449                            "gt r6 r2 plus r5 LSL 1 Offset",
450                            "gt_r6_r2_plus_r5_LSL_1_Offset"},
451                           {{eq, r10, r8, plus, r11, LSL, 1, Offset},
452                            false,
453                            al,
454                            "eq r10 r8 plus r11 LSL 1 Offset",
455                            "eq_r10_r8_plus_r11_LSL_1_Offset"},
456                           {{le, r10, r1, plus, r7, LSL, 1, Offset},
457                            false,
458                            al,
459                            "le r10 r1 plus r7 LSL 1 Offset",
460                            "le_r10_r1_plus_r7_LSL_1_Offset"},
461                           {{pl, r8, r14, plus, r8, LSL, 1, Offset},
462                            false,
463                            al,
464                            "pl r8 r14 plus r8 LSL 1 Offset",
465                            "pl_r8_r14_plus_r8_LSL_1_Offset"},
466                           {{gt, r5, r1, plus, r3, LSL, 1, Offset},
467                            false,
468                            al,
469                            "gt r5 r1 plus r3 LSL 1 Offset",
470                            "gt_r5_r1_plus_r3_LSL_1_Offset"},
471                           {{cs, r10, r4, plus, r13, LSL, 1, Offset},
472                            false,
473                            al,
474                            "cs r10 r4 plus r13 LSL 1 Offset",
475                            "cs_r10_r4_plus_r13_LSL_1_Offset"},
476                           {{mi, r10, r5, plus, r2, LSL, 1, Offset},
477                            false,
478                            al,
479                            "mi r10 r5 plus r2 LSL 1 Offset",
480                            "mi_r10_r5_plus_r2_LSL_1_Offset"},
481                           {{cc, r6, r0, plus, r11, LSL, 1, Offset},
482                            false,
483                            al,
484                            "cc r6 r0 plus r11 LSL 1 Offset",
485                            "cc_r6_r0_plus_r11_LSL_1_Offset"},
486                           {{eq, r3, r9, plus, r2, LSL, 1, Offset},
487                            false,
488                            al,
489                            "eq r3 r9 plus r2 LSL 1 Offset",
490                            "eq_r3_r9_plus_r2_LSL_1_Offset"},
491                           {{al, r1, r0, plus, r3, LSL, 1, Offset},
492                            false,
493                            al,
494                            "al r1 r0 plus r3 LSL 1 Offset",
495                            "al_r1_r0_plus_r3_LSL_1_Offset"},
496                           {{mi, r1, r0, plus, r13, LSL, 1, Offset},
497                            false,
498                            al,
499                            "mi r1 r0 plus r13 LSL 1 Offset",
500                            "mi_r1_r0_plus_r13_LSL_1_Offset"},
501                           {{cc, r4, r4, plus, r5, LSL, 1, Offset},
502                            false,
503                            al,
504                            "cc r4 r4 plus r5 LSL 1 Offset",
505                            "cc_r4_r4_plus_r5_LSL_1_Offset"},
506                           {{al, r2, r6, plus, r11, LSL, 1, Offset},
507                            false,
508                            al,
509                            "al r2 r6 plus r11 LSL 1 Offset",
510                            "al_r2_r6_plus_r11_LSL_1_Offset"},
511                           {{ls, r1, r5, plus, r4, LSL, 1, Offset},
512                            false,
513                            al,
514                            "ls r1 r5 plus r4 LSL 1 Offset",
515                            "ls_r1_r5_plus_r4_LSL_1_Offset"},
516                           {{eq, r0, r3, plus, r4, LSL, 1, Offset},
517                            false,
518                            al,
519                            "eq r0 r3 plus r4 LSL 1 Offset",
520                            "eq_r0_r3_plus_r4_LSL_1_Offset"},
521                           {{lt, r7, r11, plus, r10, LSL, 1, Offset},
522                            false,
523                            al,
524                            "lt r7 r11 plus r10 LSL 1 Offset",
525                            "lt_r7_r11_plus_r10_LSL_1_Offset"},
526                           {{vc, r3, r0, plus, r13, LSL, 1, Offset},
527                            false,
528                            al,
529                            "vc r3 r0 plus r13 LSL 1 Offset",
530                            "vc_r3_r0_plus_r13_LSL_1_Offset"},
531                           {{ls, r3, r3, plus, r7, LSL, 1, Offset},
532                            false,
533                            al,
534                            "ls r3 r3 plus r7 LSL 1 Offset",
535                            "ls_r3_r3_plus_r7_LSL_1_Offset"},
536                           {{al, r5, r14, plus, r3, LSL, 1, Offset},
537                            false,
538                            al,
539                            "al r5 r14 plus r3 LSL 1 Offset",
540                            "al_r5_r14_plus_r3_LSL_1_Offset"},
541                           {{ne, r2, r13, plus, r9, LSL, 1, Offset},
542                            false,
543                            al,
544                            "ne r2 r13 plus r9 LSL 1 Offset",
545                            "ne_r2_r13_plus_r9_LSL_1_Offset"},
546                           {{lt, r6, r2, plus, r11, LSL, 1, Offset},
547                            false,
548                            al,
549                            "lt r6 r2 plus r11 LSL 1 Offset",
550                            "lt_r6_r2_plus_r11_LSL_1_Offset"},
551                           {{vc, r9, r2, plus, r13, LSL, 1, Offset},
552                            false,
553                            al,
554                            "vc r9 r2 plus r13 LSL 1 Offset",
555                            "vc_r9_r2_plus_r13_LSL_1_Offset"},
556                           {{ne, r5, r9, plus, r6, LSL, 1, Offset},
557                            false,
558                            al,
559                            "ne r5 r9 plus r6 LSL 1 Offset",
560                            "ne_r5_r9_plus_r6_LSL_1_Offset"},
561                           {{vc, r4, r9, plus, r8, LSL, 1, Offset},
562                            false,
563                            al,
564                            "vc r4 r9 plus r8 LSL 1 Offset",
565                            "vc_r4_r9_plus_r8_LSL_1_Offset"},
566                           {{cc, r6, r9, plus, r2, LSL, 1, Offset},
567                            false,
568                            al,
569                            "cc r6 r9 plus r2 LSL 1 Offset",
570                            "cc_r6_r9_plus_r2_LSL_1_Offset"},
571                           {{vs, r8, r7, plus, r13, LSL, 1, Offset},
572                            false,
573                            al,
574                            "vs r8 r7 plus r13 LSL 1 Offset",
575                            "vs_r8_r7_plus_r13_LSL_1_Offset"},
576                           {{pl, r14, r14, plus, r7, LSL, 1, Offset},
577                            false,
578                            al,
579                            "pl r14 r14 plus r7 LSL 1 Offset",
580                            "pl_r14_r14_plus_r7_LSL_1_Offset"},
581                           {{eq, r8, r2, plus, r6, LSL, 1, Offset},
582                            false,
583                            al,
584                            "eq r8 r2 plus r6 LSL 1 Offset",
585                            "eq_r8_r2_plus_r6_LSL_1_Offset"},
586                           {{al, r13, r13, plus, r13, LSL, 1, Offset},
587                            false,
588                            al,
589                            "al r13 r13 plus r13 LSL 1 Offset",
590                            "al_r13_r13_plus_r13_LSL_1_Offset"},
591                           {{gt, r12, r14, plus, r5, LSL, 1, Offset},
592                            false,
593                            al,
594                            "gt r12 r14 plus r5 LSL 1 Offset",
595                            "gt_r12_r14_plus_r5_LSL_1_Offset"},
596                           {{lt, r14, r7, plus, r1, LSL, 1, Offset},
597                            false,
598                            al,
599                            "lt r14 r7 plus r1 LSL 1 Offset",
600                            "lt_r14_r7_plus_r1_LSL_1_Offset"},
601                           {{al, r0, r2, plus, r14, ROR, 9, Offset},
602                            false,
603                            al,
604                            "al r0 r2 plus r14 ROR 9 Offset",
605                            "al_r0_r2_plus_r14_ROR_9_Offset"},
606                           {{al, r0, r4, plus, r8, LSL, 19, Offset},
607                            false,
608                            al,
609                            "al r0 r4 plus r8 LSL 19 Offset",
610                            "al_r0_r4_plus_r8_LSL_19_Offset"},
611                           {{al, r0, r13, minus, r1, LSL, 8, Offset},
612                            false,
613                            al,
614                            "al r0 r13 minus r1 LSL 8 Offset",
615                            "al_r0_r13_minus_r1_LSL_8_Offset"},
616                           {{al, r0, r4, plus, r12, ROR, 13, Offset},
617                            false,
618                            al,
619                            "al r0 r4 plus r12 ROR 13 Offset",
620                            "al_r0_r4_plus_r12_ROR_13_Offset"},
621                           {{al, r0, r9, minus, r11, LSL, 10, Offset},
622                            false,
623                            al,
624                            "al r0 r9 minus r11 LSL 10 Offset",
625                            "al_r0_r9_minus_r11_LSL_10_Offset"},
626                           {{al, r0, r7, plus, r0, ROR, 25, Offset},
627                            false,
628                            al,
629                            "al r0 r7 plus r0 ROR 25 Offset",
630                            "al_r0_r7_plus_r0_ROR_25_Offset"},
631                           {{al, r0, r0, plus, r14, LSL, 9, Offset},
632                            false,
633                            al,
634                            "al r0 r0 plus r14 LSL 9 Offset",
635                            "al_r0_r0_plus_r14_LSL_9_Offset"},
636                           {{al, r0, r10, plus, r2, LSL, 19, Offset},
637                            false,
638                            al,
639                            "al r0 r10 plus r2 LSL 19 Offset",
640                            "al_r0_r10_plus_r2_LSL_19_Offset"},
641                           {{al, r0, r14, plus, r4, LSL, 9, Offset},
642                            false,
643                            al,
644                            "al r0 r14 plus r4 LSL 9 Offset",
645                            "al_r0_r14_plus_r4_LSL_9_Offset"},
646                           {{al, r0, r7, plus, r12, ROR, 11, Offset},
647                            false,
648                            al,
649                            "al r0 r7 plus r12 ROR 11 Offset",
650                            "al_r0_r7_plus_r12_ROR_11_Offset"},
651                           {{al, r0, r3, minus, r10, LSL, 2, Offset},
652                            false,
653                            al,
654                            "al r0 r3 minus r10 LSL 2 Offset",
655                            "al_r0_r3_minus_r10_LSL_2_Offset"},
656                           {{al, r0, r7, plus, r12, LSL, 23, Offset},
657                            false,
658                            al,
659                            "al r0 r7 plus r12 LSL 23 Offset",
660                            "al_r0_r7_plus_r12_LSL_23_Offset"},
661                           {{al, r0, r2, minus, r8, LSL, 25, Offset},
662                            false,
663                            al,
664                            "al r0 r2 minus r8 LSL 25 Offset",
665                            "al_r0_r2_minus_r8_LSL_25_Offset"},
666                           {{al, r0, r11, plus, r3, LSL, 12, Offset},
667                            false,
668                            al,
669                            "al r0 r11 plus r3 LSL 12 Offset",
670                            "al_r0_r11_plus_r3_LSL_12_Offset"},
671                           {{al, r0, r0, minus, r2, LSL, 12, Offset},
672                            false,
673                            al,
674                            "al r0 r0 minus r2 LSL 12 Offset",
675                            "al_r0_r0_minus_r2_LSL_12_Offset"},
676                           {{al, r0, r8, minus, r7, ROR, 30, Offset},
677                            false,
678                            al,
679                            "al r0 r8 minus r7 ROR 30 Offset",
680                            "al_r0_r8_minus_r7_ROR_30_Offset"},
681                           {{al, r0, r4, minus, r11, ROR, 19, Offset},
682                            false,
683                            al,
684                            "al r0 r4 minus r11 ROR 19 Offset",
685                            "al_r0_r4_minus_r11_ROR_19_Offset"},
686                           {{al, r0, r9, minus, r11, ROR, 23, Offset},
687                            false,
688                            al,
689                            "al r0 r9 minus r11 ROR 23 Offset",
690                            "al_r0_r9_minus_r11_ROR_23_Offset"},
691                           {{al, r0, r12, plus, r12, ROR, 28, Offset},
692                            false,
693                            al,
694                            "al r0 r12 plus r12 ROR 28 Offset",
695                            "al_r0_r12_plus_r12_ROR_28_Offset"},
696                           {{al, r0, r9, plus, r12, ROR, 25, Offset},
697                            false,
698                            al,
699                            "al r0 r9 plus r12 ROR 25 Offset",
700                            "al_r0_r9_plus_r12_ROR_25_Offset"},
701                           {{al, r0, r6, minus, r5, LSL, 26, Offset},
702                            false,
703                            al,
704                            "al r0 r6 minus r5 LSL 26 Offset",
705                            "al_r0_r6_minus_r5_LSL_26_Offset"},
706                           {{al, r0, r6, minus, r12, ROR, 24, Offset},
707                            false,
708                            al,
709                            "al r0 r6 minus r12 ROR 24 Offset",
710                            "al_r0_r6_minus_r12_ROR_24_Offset"},
711                           {{al, r0, r12, minus, r5, ROR, 7, Offset},
712                            false,
713                            al,
714                            "al r0 r12 minus r5 ROR 7 Offset",
715                            "al_r0_r12_minus_r5_ROR_7_Offset"},
716                           {{al, r0, r0, plus, r7, ROR, 15, Offset},
717                            false,
718                            al,
719                            "al r0 r0 plus r7 ROR 15 Offset",
720                            "al_r0_r0_plus_r7_ROR_15_Offset"},
721                           {{al, r0, r10, minus, r12, ROR, 6, Offset},
722                            false,
723                            al,
724                            "al r0 r10 minus r12 ROR 6 Offset",
725                            "al_r0_r10_minus_r12_ROR_6_Offset"},
726                           {{al, r0, r2, plus, r3, LSL, 31, Offset},
727                            false,
728                            al,
729                            "al r0 r2 plus r3 LSL 31 Offset",
730                            "al_r0_r2_plus_r3_LSL_31_Offset"},
731                           {{al, r0, r14, plus, r9, LSL, 28, Offset},
732                            false,
733                            al,
734                            "al r0 r14 plus r9 LSL 28 Offset",
735                            "al_r0_r14_plus_r9_LSL_28_Offset"},
736                           {{al, r0, r8, minus, r4, LSL, 16, Offset},
737                            false,
738                            al,
739                            "al r0 r8 minus r4 LSL 16 Offset",
740                            "al_r0_r8_minus_r4_LSL_16_Offset"},
741                           {{al, r0, r0, plus, r8, ROR, 18, Offset},
742                            false,
743                            al,
744                            "al r0 r0 plus r8 ROR 18 Offset",
745                            "al_r0_r0_plus_r8_ROR_18_Offset"},
746                           {{al, r0, r4, minus, r11, LSL, 18, Offset},
747                            false,
748                            al,
749                            "al r0 r4 minus r11 LSL 18 Offset",
750                            "al_r0_r4_minus_r11_LSL_18_Offset"},
751                           {{al, r0, r2, minus, r4, LSL, 23, Offset},
752                            false,
753                            al,
754                            "al r0 r2 minus r4 LSL 23 Offset",
755                            "al_r0_r2_minus_r4_LSL_23_Offset"},
756                           {{al, r0, r12, minus, r3, LSL, 9, Offset},
757                            false,
758                            al,
759                            "al r0 r12 minus r3 LSL 9 Offset",
760                            "al_r0_r12_minus_r3_LSL_9_Offset"},
761                           {{al, r0, r6, minus, r3, ROR, 31, Offset},
762                            false,
763                            al,
764                            "al r0 r6 minus r3 ROR 31 Offset",
765                            "al_r0_r6_minus_r3_ROR_31_Offset"},
766                           {{al, r0, r9, minus, r7, LSL, 23, Offset},
767                            false,
768                            al,
769                            "al r0 r9 minus r7 LSL 23 Offset",
770                            "al_r0_r9_minus_r7_LSL_23_Offset"},
771                           {{al, r0, r6, plus, r12, LSL, 26, Offset},
772                            false,
773                            al,
774                            "al r0 r6 plus r12 LSL 26 Offset",
775                            "al_r0_r6_plus_r12_LSL_26_Offset"},
776                           {{al, r0, r4, minus, r14, LSL, 24, Offset},
777                            false,
778                            al,
779                            "al r0 r4 minus r14 LSL 24 Offset",
780                            "al_r0_r4_minus_r14_LSL_24_Offset"},
781                           {{al, r0, r0, plus, r7, ROR, 21, Offset},
782                            false,
783                            al,
784                            "al r0 r0 plus r7 ROR 21 Offset",
785                            "al_r0_r0_plus_r7_ROR_21_Offset"},
786                           {{al, r0, r14, minus, r7, LSL, 29, Offset},
787                            false,
788                            al,
789                            "al r0 r14 minus r7 LSL 29 Offset",
790                            "al_r0_r14_minus_r7_LSL_29_Offset"},
791                           {{al, r0, r10, minus, r1, ROR, 29, Offset},
792                            false,
793                            al,
794                            "al r0 r10 minus r1 ROR 29 Offset",
795                            "al_r0_r10_minus_r1_ROR_29_Offset"},
796                           {{al, r0, r11, plus, r13, ROR, 28, Offset},
797                            false,
798                            al,
799                            "al r0 r11 plus r13 ROR 28 Offset",
800                            "al_r0_r11_plus_r13_ROR_28_Offset"},
801                           {{al, r0, r13, minus, r1, LSL, 5, Offset},
802                            false,
803                            al,
804                            "al r0 r13 minus r1 LSL 5 Offset",
805                            "al_r0_r13_minus_r1_LSL_5_Offset"},
806                           {{al, r0, r4, plus, r7, ROR, 12, Offset},
807                            false,
808                            al,
809                            "al r0 r4 plus r7 ROR 12 Offset",
810                            "al_r0_r4_plus_r7_ROR_12_Offset"},
811                           {{al, r0, r4, minus, r6, LSL, 28, Offset},
812                            false,
813                            al,
814                            "al r0 r4 minus r6 LSL 28 Offset",
815                            "al_r0_r4_minus_r6_LSL_28_Offset"},
816                           {{al, r0, r14, plus, r5, LSL, 19, Offset},
817                            false,
818                            al,
819                            "al r0 r14 plus r5 LSL 19 Offset",
820                            "al_r0_r14_plus_r5_LSL_19_Offset"},
821                           {{al, r0, r11, plus, r4, ROR, 4, Offset},
822                            false,
823                            al,
824                            "al r0 r11 plus r4 ROR 4 Offset",
825                            "al_r0_r11_plus_r4_ROR_4_Offset"},
826                           {{al, r0, r0, plus, r0, LSL, 10, Offset},
827                            false,
828                            al,
829                            "al r0 r0 plus r0 LSL 10 Offset",
830                            "al_r0_r0_plus_r0_LSL_10_Offset"},
831                           {{al, r0, r5, minus, r6, ROR, 14, Offset},
832                            false,
833                            al,
834                            "al r0 r5 minus r6 ROR 14 Offset",
835                            "al_r0_r5_minus_r6_ROR_14_Offset"},
836                           {{al, r0, r3, plus, r13, ROR, 4, Offset},
837                            false,
838                            al,
839                            "al r0 r3 plus r13 ROR 4 Offset",
840                            "al_r0_r3_plus_r13_ROR_4_Offset"},
841                           {{al, r0, r1, plus, r13, LSL, 12, Offset},
842                            false,
843                            al,
844                            "al r0 r1 plus r13 LSL 12 Offset",
845                            "al_r0_r1_plus_r13_LSL_12_Offset"},
846                           {{al, r0, r4, minus, r11, ROR, 1, Offset},
847                            false,
848                            al,
849                            "al r0 r4 minus r11 ROR 1 Offset",
850                            "al_r0_r4_minus_r11_ROR_1_Offset"},
851                           {{al, r0, r4, plus, r14, ROR, 10, Offset},
852                            false,
853                            al,
854                            "al r0 r4 plus r14 ROR 10 Offset",
855                            "al_r0_r4_plus_r14_ROR_10_Offset"},
856                           {{al, r0, r4, plus, r7, LSL, 8, Offset},
857                            false,
858                            al,
859                            "al r0 r4 plus r7 LSL 8 Offset",
860                            "al_r0_r4_plus_r7_LSL_8_Offset"},
861                           {{al, r0, r5, plus, r8, LSL, 2, Offset},
862                            false,
863                            al,
864                            "al r0 r5 plus r8 LSL 2 Offset",
865                            "al_r0_r5_plus_r8_LSL_2_Offset"},
866                           {{al, r0, r3, minus, r13, LSL, 30, Offset},
867                            false,
868                            al,
869                            "al r0 r3 minus r13 LSL 30 Offset",
870                            "al_r0_r3_minus_r13_LSL_30_Offset"},
871                           {{al, r0, r3, minus, r14, ROR, 4, Offset},
872                            false,
873                            al,
874                            "al r0 r3 minus r14 ROR 4 Offset",
875                            "al_r0_r3_minus_r14_ROR_4_Offset"},
876                           {{al, r0, r9, minus, r13, ROR, 23, Offset},
877                            false,
878                            al,
879                            "al r0 r9 minus r13 ROR 23 Offset",
880                            "al_r0_r9_minus_r13_ROR_23_Offset"},
881                           {{al, r0, r4, plus, r11, LSL, 29, Offset},
882                            false,
883                            al,
884                            "al r0 r4 plus r11 LSL 29 Offset",
885                            "al_r0_r4_plus_r11_LSL_29_Offset"},
886                           {{al, r0, r4, plus, r13, ROR, 28, Offset},
887                            false,
888                            al,
889                            "al r0 r4 plus r13 ROR 28 Offset",
890                            "al_r0_r4_plus_r13_ROR_28_Offset"},
891                           {{al, r0, r2, plus, r3, ROR, 13, Offset},
892                            false,
893                            al,
894                            "al r0 r2 plus r3 ROR 13 Offset",
895                            "al_r0_r2_plus_r3_ROR_13_Offset"},
896                           {{al, r0, r7, minus, r11, LSL, 6, Offset},
897                            false,
898                            al,
899                            "al r0 r7 minus r11 LSL 6 Offset",
900                            "al_r0_r7_minus_r11_LSL_6_Offset"},
901                           {{al, r0, r6, minus, r14, LSL, 15, Offset},
902                            false,
903                            al,
904                            "al r0 r6 minus r14 LSL 15 Offset",
905                            "al_r0_r6_minus_r14_LSL_15_Offset"},
906                           {{al, r0, r3, minus, r3, LSL, 17, Offset},
907                            false,
908                            al,
909                            "al r0 r3 minus r3 LSL 17 Offset",
910                            "al_r0_r3_minus_r3_LSL_17_Offset"},
911                           {{al, r0, r5, plus, r13, LSL, 20, Offset},
912                            false,
913                            al,
914                            "al r0 r5 plus r13 LSL 20 Offset",
915                            "al_r0_r5_plus_r13_LSL_20_Offset"},
916                           {{al, r0, r6, plus, r1, ROR, 21, Offset},
917                            false,
918                            al,
919                            "al r0 r6 plus r1 ROR 21 Offset",
920                            "al_r0_r6_plus_r1_ROR_21_Offset"},
921                           {{al, r0, r0, plus, r12, LSL, 6, Offset},
922                            false,
923                            al,
924                            "al r0 r0 plus r12 LSL 6 Offset",
925                            "al_r0_r0_plus_r12_LSL_6_Offset"},
926                           {{al, r0, r9, minus, r6, LSL, 21, Offset},
927                            false,
928                            al,
929                            "al r0 r9 minus r6 LSL 21 Offset",
930                            "al_r0_r9_minus_r6_LSL_21_Offset"},
931                           {{al, r0, r3, minus, r11, LSL, 11, Offset},
932                            false,
933                            al,
934                            "al r0 r3 minus r11 LSL 11 Offset",
935                            "al_r0_r3_minus_r11_LSL_11_Offset"},
936                           {{al, r0, r4, minus, r12, ROR, 11, Offset},
937                            false,
938                            al,
939                            "al r0 r4 minus r12 ROR 11 Offset",
940                            "al_r0_r4_minus_r12_ROR_11_Offset"},
941                           {{al, r0, r5, plus, r4, ROR, 1, Offset},
942                            false,
943                            al,
944                            "al r0 r5 plus r4 ROR 1 Offset",
945                            "al_r0_r5_plus_r4_ROR_1_Offset"},
946                           {{al, r0, r1, plus, r2, ROR, 11, Offset},
947                            false,
948                            al,
949                            "al r0 r1 plus r2 ROR 11 Offset",
950                            "al_r0_r1_plus_r2_ROR_11_Offset"},
951                           {{al, r0, r5, plus, r12, LSL, 28, Offset},
952                            false,
953                            al,
954                            "al r0 r5 plus r12 LSL 28 Offset",
955                            "al_r0_r5_plus_r12_LSL_28_Offset"},
956                           {{al, r0, r10, plus, r11, ROR, 25, Offset},
957                            false,
958                            al,
959                            "al r0 r10 plus r11 ROR 25 Offset",
960                            "al_r0_r10_plus_r11_ROR_25_Offset"},
961                           {{al, r0, r14, plus, r1, ROR, 8, Offset},
962                            false,
963                            al,
964                            "al r0 r14 plus r1 ROR 8 Offset",
965                            "al_r0_r14_plus_r1_ROR_8_Offset"},
966                           {{al, r0, r9, plus, r1, ROR, 21, Offset},
967                            false,
968                            al,
969                            "al r0 r9 plus r1 ROR 21 Offset",
970                            "al_r0_r9_plus_r1_ROR_21_Offset"},
971                           {{al, r0, r12, minus, r7, LSL, 6, Offset},
972                            false,
973                            al,
974                            "al r0 r12 minus r7 LSL 6 Offset",
975                            "al_r0_r12_minus_r7_LSL_6_Offset"},
976                           {{al, r0, r3, minus, r0, ROR, 12, Offset},
977                            false,
978                            al,
979                            "al r0 r3 minus r0 ROR 12 Offset",
980                            "al_r0_r3_minus_r0_ROR_12_Offset"},
981                           {{al, r0, r2, minus, r0, ROR, 27, Offset},
982                            false,
983                            al,
984                            "al r0 r2 minus r0 ROR 27 Offset",
985                            "al_r0_r2_minus_r0_ROR_27_Offset"},
986                           {{al, r0, r6, minus, r2, ROR, 3, Offset},
987                            false,
988                            al,
989                            "al r0 r6 minus r2 ROR 3 Offset",
990                            "al_r0_r6_minus_r2_ROR_3_Offset"},
991                           {{al, r0, r1, plus, r6, LSL, 16, Offset},
992                            false,
993                            al,
994                            "al r0 r1 plus r6 LSL 16 Offset",
995                            "al_r0_r1_plus_r6_LSL_16_Offset"},
996                           {{al, r0, r6, minus, r14, ROR, 15, Offset},
997                            false,
998                            al,
999                            "al r0 r6 minus r14 ROR 15 Offset",
1000                            "al_r0_r6_minus_r14_ROR_15_Offset"},
1001                           {{al, r0, r4, plus, r10, LSL, 20, Offset},
1002                            false,
1003                            al,
1004                            "al r0 r4 plus r10 LSL 20 Offset",
1005                            "al_r0_r4_plus_r10_LSL_20_Offset"},
1006                           {{al, r0, r7, minus, r4, LSL, 16, Offset},
1007                            false,
1008                            al,
1009                            "al r0 r7 minus r4 LSL 16 Offset",
1010                            "al_r0_r7_minus_r4_LSL_16_Offset"},
1011                           {{al, r0, r12, minus, r5, ROR, 4, Offset},
1012                            false,
1013                            al,
1014                            "al r0 r12 minus r5 ROR 4 Offset",
1015                            "al_r0_r12_minus_r5_ROR_4_Offset"},
1016                           {{al, r0, r11, minus, r12, LSL, 27, Offset},
1017                            false,
1018                            al,
1019                            "al r0 r11 minus r12 LSL 27 Offset",
1020                            "al_r0_r11_minus_r12_LSL_27_Offset"},
1021                           {{al, r0, r4, minus, r4, LSL, 30, Offset},
1022                            false,
1023                            al,
1024                            "al r0 r4 minus r4 LSL 30 Offset",
1025                            "al_r0_r4_minus_r4_LSL_30_Offset"},
1026                           {{al, r0, r6, plus, r4, ROR, 19, Offset},
1027                            false,
1028                            al,
1029                            "al r0 r6 plus r4 ROR 19 Offset",
1030                            "al_r0_r6_plus_r4_ROR_19_Offset"},
1031                           {{al, r0, r11, plus, r3, ROR, 19, Offset},
1032                            false,
1033                            al,
1034                            "al r0 r11 plus r3 ROR 19 Offset",
1035                            "al_r0_r11_plus_r3_ROR_19_Offset"},
1036                           {{al, r0, r9, plus, r6, LSL, 12, Offset},
1037                            false,
1038                            al,
1039                            "al r0 r9 plus r6 LSL 12 Offset",
1040                            "al_r0_r9_plus_r6_LSL_12_Offset"},
1041                           {{al, r0, r3, minus, r8, LSL, 29, Offset},
1042                            false,
1043                            al,
1044                            "al r0 r3 minus r8 LSL 29 Offset",
1045                            "al_r0_r3_minus_r8_LSL_29_Offset"},
1046                           {{al, r0, r13, plus, r5, ROR, 16, Offset},
1047                            false,
1048                            al,
1049                            "al r0 r13 plus r5 ROR 16 Offset",
1050                            "al_r0_r13_plus_r5_ROR_16_Offset"},
1051                           {{al, r0, r11, plus, r8, ROR, 10, Offset},
1052                            false,
1053                            al,
1054                            "al r0 r11 plus r8 ROR 10 Offset",
1055                            "al_r0_r11_plus_r8_ROR_10_Offset"},
1056                           {{al, r0, r0, minus, r9, LSL, 10, Offset},
1057                            false,
1058                            al,
1059                            "al r0 r0 minus r9 LSL 10 Offset",
1060                            "al_r0_r0_minus_r9_LSL_10_Offset"},
1061                           {{al, r0, r4, minus, r5, ROR, 11, Offset},
1062                            false,
1063                            al,
1064                            "al r0 r4 minus r5 ROR 11 Offset",
1065                            "al_r0_r4_minus_r5_ROR_11_Offset"},
1066                           {{al, r0, r3, plus, r7, LSL, 28, Offset},
1067                            false,
1068                            al,
1069                            "al r0 r3 plus r7 LSL 28 Offset",
1070                            "al_r0_r3_plus_r7_LSL_28_Offset"},
1071                           {{al, r0, r6, plus, r7, LSL, 17, Offset},
1072                            false,
1073                            al,
1074                            "al r0 r6 plus r7 LSL 17 Offset",
1075                            "al_r0_r6_plus_r7_LSL_17_Offset"},
1076                           {{al, r0, r6, plus, r4, LSL, 9, Offset},
1077                            false,
1078                            al,
1079                            "al r0 r6 plus r4 LSL 9 Offset",
1080                            "al_r0_r6_plus_r4_LSL_9_Offset"},
1081                           {{al, r0, r6, minus, r9, LSL, 15, Offset},
1082                            false,
1083                            al,
1084                            "al r0 r6 minus r9 LSL 15 Offset",
1085                            "al_r0_r6_minus_r9_LSL_15_Offset"},
1086                           {{al, r0, r14, plus, r1, LSL, 31, Offset},
1087                            false,
1088                            al,
1089                            "al r0 r14 plus r1 LSL 31 Offset",
1090                            "al_r0_r14_plus_r1_LSL_31_Offset"},
1091                           {{al, r0, r13, plus, r4, ROR, 31, Offset},
1092                            false,
1093                            al,
1094                            "al r0 r13 plus r4 ROR 31 Offset",
1095                            "al_r0_r13_plus_r4_ROR_31_Offset"},
1096                           {{al, r0, r0, plus, r0, ROR, 20, Offset},
1097                            false,
1098                            al,
1099                            "al r0 r0 plus r0 ROR 20 Offset",
1100                            "al_r0_r0_plus_r0_ROR_20_Offset"},
1101                           {{al, r0, r9, minus, r5, LSL, 8, Offset},
1102                            false,
1103                            al,
1104                            "al r0 r9 minus r5 LSL 8 Offset",
1105                            "al_r0_r9_minus_r5_LSL_8_Offset"},
1106                           {{al, r0, r11, plus, r8, ROR, 1, Offset},
1107                            false,
1108                            al,
1109                            "al r0 r11 plus r8 ROR 1 Offset",
1110                            "al_r0_r11_plus_r8_ROR_1_Offset"},
1111                           {{al, r0, r1, minus, r4, ROR, 18, Offset},
1112                            false,
1113                            al,
1114                            "al r0 r1 minus r4 ROR 18 Offset",
1115                            "al_r0_r1_minus_r4_ROR_18_Offset"},
1116                           {{al, r0, r0, plus, r3, LSL, 11, Offset},
1117                            false,
1118                            al,
1119                            "al r0 r0 plus r3 LSL 11 Offset",
1120                            "al_r0_r0_plus_r3_LSL_11_Offset"},
1121                           {{al, r0, r2, plus, r11, ROR, 31, Offset},
1122                            false,
1123                            al,
1124                            "al r0 r2 plus r11 ROR 31 Offset",
1125                            "al_r0_r2_plus_r11_ROR_31_Offset"},
1126                           {{al, r0, r7, minus, r11, LSL, 22, Offset},
1127                            false,
1128                            al,
1129                            "al r0 r7 minus r11 LSL 22 Offset",
1130                            "al_r0_r7_minus_r11_LSL_22_Offset"},
1131                           {{al, r0, r10, minus, r12, LSL, 13, Offset},
1132                            false,
1133                            al,
1134                            "al r0 r10 minus r12 LSL 13 Offset",
1135                            "al_r0_r10_minus_r12_LSL_13_Offset"},
1136                           {{al, r0, r12, plus, r3, ROR, 17, Offset},
1137                            false,
1138                            al,
1139                            "al r0 r12 plus r3 ROR 17 Offset",
1140                            "al_r0_r12_plus_r3_ROR_17_Offset"},
1141                           {{al, r0, r0, minus, r4, ROR, 15, Offset},
1142                            false,
1143                            al,
1144                            "al r0 r0 minus r4 ROR 15 Offset",
1145                            "al_r0_r0_minus_r4_ROR_15_Offset"},
1146                           {{al, r0, r3, plus, r4, LSL, 1, Offset},
1147                            false,
1148                            al,
1149                            "al r0 r3 plus r4 LSL 1 Offset",
1150                            "al_r0_r3_plus_r4_LSL_1_Offset"},
1151                           {{al, r0, r2, plus, r10, ROR, 20, Offset},
1152                            false,
1153                            al,
1154                            "al r0 r2 plus r10 ROR 20 Offset",
1155                            "al_r0_r2_plus_r10_ROR_20_Offset"},
1156                           {{al, r0, r11, minus, r8, ROR, 10, Offset},
1157                            false,
1158                            al,
1159                            "al r0 r11 minus r8 ROR 10 Offset",
1160                            "al_r0_r11_minus_r8_ROR_10_Offset"},
1161                           {{al, r0, r14, minus, r5, LSL, 3, Offset},
1162                            false,
1163                            al,
1164                            "al r0 r14 minus r5 LSL 3 Offset",
1165                            "al_r0_r14_minus_r5_LSL_3_Offset"},
1166                           {{al, r0, r0, minus, r7, LSL, 24, Offset},
1167                            false,
1168                            al,
1169                            "al r0 r0 minus r7 LSL 24 Offset",
1170                            "al_r0_r0_minus_r7_LSL_24_Offset"},
1171                           {{al, r0, r2, minus, r11, LSL, 4, Offset},
1172                            false,
1173                            al,
1174                            "al r0 r2 minus r11 LSL 4 Offset",
1175                            "al_r0_r2_minus_r11_LSL_4_Offset"},
1176                           {{al, r0, r3, plus, r0, ROR, 25, Offset},
1177                            false,
1178                            al,
1179                            "al r0 r3 plus r0 ROR 25 Offset",
1180                            "al_r0_r3_plus_r0_ROR_25_Offset"},
1181                           {{al, r0, r12, plus, r8, ROR, 7, Offset},
1182                            false,
1183                            al,
1184                            "al r0 r12 plus r8 ROR 7 Offset",
1185                            "al_r0_r12_plus_r8_ROR_7_Offset"},
1186                           {{al, r0, r0, plus, r9, ROR, 31, Offset},
1187                            false,
1188                            al,
1189                            "al r0 r0 plus r9 ROR 31 Offset",
1190                            "al_r0_r0_plus_r9_ROR_31_Offset"},
1191                           {{al, r0, r5, minus, r0, LSL, 3, Offset},
1192                            false,
1193                            al,
1194                            "al r0 r5 minus r0 LSL 3 Offset",
1195                            "al_r0_r5_minus_r0_LSL_3_Offset"},
1196                           {{al, r0, r0, minus, r9, ROR, 8, Offset},
1197                            false,
1198                            al,
1199                            "al r0 r0 minus r9 ROR 8 Offset",
1200                            "al_r0_r0_minus_r9_ROR_8_Offset"},
1201                           {{al, r0, r8, plus, r12, ROR, 22, Offset},
1202                            false,
1203                            al,
1204                            "al r0 r8 plus r12 ROR 22 Offset",
1205                            "al_r0_r8_plus_r12_ROR_22_Offset"},
1206                           {{al, r0, r0, minus, r1, ROR, 26, Offset},
1207                            false,
1208                            al,
1209                            "al r0 r0 minus r1 ROR 26 Offset",
1210                            "al_r0_r0_minus_r1_ROR_26_Offset"},
1211                           {{al, r0, r1, minus, r1, ROR, 22, Offset},
1212                            false,
1213                            al,
1214                            "al r0 r1 minus r1 ROR 22 Offset",
1215                            "al_r0_r1_minus_r1_ROR_22_Offset"},
1216                           {{al, r0, r2, minus, r0, ROR, 23, Offset},
1217                            false,
1218                            al,
1219                            "al r0 r2 minus r0 ROR 23 Offset",
1220                            "al_r0_r2_minus_r0_ROR_23_Offset"},
1221                           {{al, r0, r9, plus, r11, ROR, 29, Offset},
1222                            false,
1223                            al,
1224                            "al r0 r9 plus r11 ROR 29 Offset",
1225                            "al_r0_r9_plus_r11_ROR_29_Offset"},
1226                           {{al, r0, r5, minus, r9, ROR, 18, Offset},
1227                            false,
1228                            al,
1229                            "al r0 r5 minus r9 ROR 18 Offset",
1230                            "al_r0_r5_minus_r9_ROR_18_Offset"},
1231                           {{al, r0, r2, minus, r8, LSL, 4, Offset},
1232                            false,
1233                            al,
1234                            "al r0 r2 minus r8 LSL 4 Offset",
1235                            "al_r0_r2_minus_r8_LSL_4_Offset"},
1236                           {{al, r0, r2, plus, r10, ROR, 7, Offset},
1237                            false,
1238                            al,
1239                            "al r0 r2 plus r10 ROR 7 Offset",
1240                            "al_r0_r2_plus_r10_ROR_7_Offset"},
1241                           {{al, r0, r6, plus, r1, LSL, 22, Offset},
1242                            false,
1243                            al,
1244                            "al r0 r6 plus r1 LSL 22 Offset",
1245                            "al_r0_r6_plus_r1_LSL_22_Offset"},
1246                           {{al, r0, r14, minus, r14, ROR, 24, Offset},
1247                            false,
1248                            al,
1249                            "al r0 r14 minus r14 ROR 24 Offset",
1250                            "al_r0_r14_minus_r14_ROR_24_Offset"},
1251                           {{al, r0, r5, plus, r11, ROR, 4, Offset},
1252                            false,
1253                            al,
1254                            "al r0 r5 plus r11 ROR 4 Offset",
1255                            "al_r0_r5_plus_r11_ROR_4_Offset"},
1256                           {{al, r0, r3, minus, r7, LSL, 16, Offset},
1257                            false,
1258                            al,
1259                            "al r0 r3 minus r7 LSL 16 Offset",
1260                            "al_r0_r3_minus_r7_LSL_16_Offset"},
1261                           {{al, r0, r12, plus, r11, ROR, 17, Offset},
1262                            false,
1263                            al,
1264                            "al r0 r12 plus r11 ROR 17 Offset",
1265                            "al_r0_r12_plus_r11_ROR_17_Offset"},
1266                           {{al, r0, r11, minus, r1, LSL, 25, Offset},
1267                            false,
1268                            al,
1269                            "al r0 r11 minus r1 LSL 25 Offset",
1270                            "al_r0_r11_minus_r1_LSL_25_Offset"},
1271                           {{al, r0, r4, plus, r0, ROR, 4, Offset},
1272                            false,
1273                            al,
1274                            "al r0 r4 plus r0 ROR 4 Offset",
1275                            "al_r0_r4_plus_r0_ROR_4_Offset"},
1276                           {{al, r0, r4, minus, r9, ROR, 28, Offset},
1277                            false,
1278                            al,
1279                            "al r0 r4 minus r9 ROR 28 Offset",
1280                            "al_r0_r4_minus_r9_ROR_28_Offset"},
1281                           {{al, r0, r3, plus, r8, ROR, 22, Offset},
1282                            false,
1283                            al,
1284                            "al r0 r3 plus r8 ROR 22 Offset",
1285                            "al_r0_r3_plus_r8_ROR_22_Offset"},
1286                           {{al, r0, r8, plus, r13, LSL, 12, Offset},
1287                            false,
1288                            al,
1289                            "al r0 r8 plus r13 LSL 12 Offset",
1290                            "al_r0_r8_plus_r13_LSL_12_Offset"},
1291                           {{al, r0, r8, minus, r4, ROR, 31, Offset},
1292                            false,
1293                            al,
1294                            "al r0 r8 minus r4 ROR 31 Offset",
1295                            "al_r0_r8_minus_r4_ROR_31_Offset"},
1296                           {{al, r0, r10, minus, r7, ROR, 3, Offset},
1297                            false,
1298                            al,
1299                            "al r0 r10 minus r7 ROR 3 Offset",
1300                            "al_r0_r10_minus_r7_ROR_3_Offset"},
1301                           {{al, r0, r8, minus, r11, ROR, 30, Offset},
1302                            false,
1303                            al,
1304                            "al r0 r8 minus r11 ROR 30 Offset",
1305                            "al_r0_r8_minus_r11_ROR_30_Offset"},
1306                           {{al, r0, r11, minus, r5, ROR, 8, Offset},
1307                            false,
1308                            al,
1309                            "al r0 r11 minus r5 ROR 8 Offset",
1310                            "al_r0_r11_minus_r5_ROR_8_Offset"},
1311                           {{al, r0, r10, minus, r2, LSL, 16, Offset},
1312                            false,
1313                            al,
1314                            "al r0 r10 minus r2 LSL 16 Offset",
1315                            "al_r0_r10_minus_r2_LSL_16_Offset"},
1316                           {{al, r0, r10, minus, r2, ROR, 8, Offset},
1317                            false,
1318                            al,
1319                            "al r0 r10 minus r2 ROR 8 Offset",
1320                            "al_r0_r10_minus_r2_ROR_8_Offset"},
1321                           {{al, r0, r7, minus, r5, ROR, 2, Offset},
1322                            false,
1323                            al,
1324                            "al r0 r7 minus r5 ROR 2 Offset",
1325                            "al_r0_r7_minus_r5_ROR_2_Offset"},
1326                           {{al, r0, r12, minus, r13, LSL, 24, Offset},
1327                            false,
1328                            al,
1329                            "al r0 r12 minus r13 LSL 24 Offset",
1330                            "al_r0_r12_minus_r13_LSL_24_Offset"},
1331                           {{al, r0, r2, minus, r4, ROR, 3, Offset},
1332                            false,
1333                            al,
1334                            "al r0 r2 minus r4 ROR 3 Offset",
1335                            "al_r0_r2_minus_r4_ROR_3_Offset"},
1336                           {{al, r0, r14, plus, r12, LSL, 19, Offset},
1337                            false,
1338                            al,
1339                            "al r0 r14 plus r12 LSL 19 Offset",
1340                            "al_r0_r14_plus_r12_LSL_19_Offset"},
1341                           {{al, r0, r2, plus, r6, LSL, 17, Offset},
1342                            false,
1343                            al,
1344                            "al r0 r2 plus r6 LSL 17 Offset",
1345                            "al_r0_r2_plus_r6_LSL_17_Offset"},
1346                           {{al, r0, r9, plus, r10, LSL, 16, Offset},
1347                            false,
1348                            al,
1349                            "al r0 r9 plus r10 LSL 16 Offset",
1350                            "al_r0_r9_plus_r10_LSL_16_Offset"},
1351                           {{al, r0, r3, plus, r9, ROR, 28, Offset},
1352                            false,
1353                            al,
1354                            "al r0 r3 plus r9 ROR 28 Offset",
1355                            "al_r0_r3_plus_r9_ROR_28_Offset"},
1356                           {{al, r0, r2, plus, r3, LSL, 3, Offset},
1357                            false,
1358                            al,
1359                            "al r0 r2 plus r3 LSL 3 Offset",
1360                            "al_r0_r2_plus_r3_LSL_3_Offset"},
1361                           {{al, r0, r0, minus, r12, LSL, 28, Offset},
1362                            false,
1363                            al,
1364                            "al r0 r0 minus r12 LSL 28 Offset",
1365                            "al_r0_r0_minus_r12_LSL_28_Offset"},
1366                           {{al, r0, r2, minus, r12, ROR, 14, Offset},
1367                            false,
1368                            al,
1369                            "al r0 r2 minus r12 ROR 14 Offset",
1370                            "al_r0_r2_minus_r12_ROR_14_Offset"},
1371                           {{al, r0, r0, plus, r11, LSL, 28, Offset},
1372                            false,
1373                            al,
1374                            "al r0 r0 plus r11 LSL 28 Offset",
1375                            "al_r0_r0_plus_r11_LSL_28_Offset"},
1376                           {{al, r0, r11, plus, r6, ROR, 15, Offset},
1377                            false,
1378                            al,
1379                            "al r0 r11 plus r6 ROR 15 Offset",
1380                            "al_r0_r11_plus_r6_ROR_15_Offset"},
1381                           {{al, r0, r0, plus, r14, ROR, 21, Offset},
1382                            false,
1383                            al,
1384                            "al r0 r0 plus r14 ROR 21 Offset",
1385                            "al_r0_r0_plus_r14_ROR_21_Offset"},
1386                           {{al, r0, r0, plus, r2, LSL, 12, Offset},
1387                            false,
1388                            al,
1389                            "al r0 r0 plus r2 LSL 12 Offset",
1390                            "al_r0_r0_plus_r2_LSL_12_Offset"},
1391                           {{al, r0, r14, plus, r11, LSL, 8, Offset},
1392                            false,
1393                            al,
1394                            "al r0 r14 plus r11 LSL 8 Offset",
1395                            "al_r0_r14_plus_r11_LSL_8_Offset"},
1396                           {{al, r0, r2, plus, r4, LSL, 12, Offset},
1397                            false,
1398                            al,
1399                            "al r0 r2 plus r4 LSL 12 Offset",
1400                            "al_r0_r2_plus_r4_LSL_12_Offset"},
1401                           {{al, r0, r12, minus, r7, LSL, 26, Offset},
1402                            false,
1403                            al,
1404                            "al r0 r12 minus r7 LSL 26 Offset",
1405                            "al_r0_r12_minus_r7_LSL_26_Offset"},
1406                           {{al, r0, r8, minus, r8, ROR, 24, Offset},
1407                            false,
1408                            al,
1409                            "al r0 r8 minus r8 ROR 24 Offset",
1410                            "al_r0_r8_minus_r8_ROR_24_Offset"},
1411                           {{al, r0, r10, plus, r0, LSL, 28, Offset},
1412                            false,
1413                            al,
1414                            "al r0 r10 plus r0 LSL 28 Offset",
1415                            "al_r0_r10_plus_r0_LSL_28_Offset"},
1416                           {{al, r0, r3, minus, r2, ROR, 26, Offset},
1417                            false,
1418                            al,
1419                            "al r0 r3 minus r2 ROR 26 Offset",
1420                            "al_r0_r3_minus_r2_ROR_26_Offset"},
1421                           {{al, r0, r7, minus, r0, LSL, 7, Offset},
1422                            false,
1423                            al,
1424                            "al r0 r7 minus r0 LSL 7 Offset",
1425                            "al_r0_r7_minus_r0_LSL_7_Offset"},
1426                           {{al, r0, r0, minus, r14, ROR, 12, Offset},
1427                            false,
1428                            al,
1429                            "al r0 r0 minus r14 ROR 12 Offset",
1430                            "al_r0_r0_minus_r14_ROR_12_Offset"},
1431                           {{al, r0, r3, minus, r10, ROR, 9, Offset},
1432                            false,
1433                            al,
1434                            "al r0 r3 minus r10 ROR 9 Offset",
1435                            "al_r0_r3_minus_r10_ROR_9_Offset"},
1436                           {{al, r0, r9, plus, r2, LSL, 15, Offset},
1437                            false,
1438                            al,
1439                            "al r0 r9 plus r2 LSL 15 Offset",
1440                            "al_r0_r9_plus_r2_LSL_15_Offset"},
1441                           {{al, r0, r13, minus, r10, ROR, 28, Offset},
1442                            false,
1443                            al,
1444                            "al r0 r13 minus r10 ROR 28 Offset",
1445                            "al_r0_r13_minus_r10_ROR_28_Offset"},
1446                           {{al, r0, r10, plus, r14, LSL, 10, Offset},
1447                            false,
1448                            al,
1449                            "al r0 r10 plus r14 LSL 10 Offset",
1450                            "al_r0_r10_plus_r14_LSL_10_Offset"},
1451                           {{al, r0, r2, plus, r3, ROR, 23, Offset},
1452                            false,
1453                            al,
1454                            "al r0 r2 plus r3 ROR 23 Offset",
1455                            "al_r0_r2_plus_r3_ROR_23_Offset"},
1456                           {{al, r0, r3, plus, r4, LSL, 2, Offset},
1457                            false,
1458                            al,
1459                            "al r0 r3 plus r4 LSL 2 Offset",
1460                            "al_r0_r3_plus_r4_LSL_2_Offset"},
1461                           {{al, r0, r7, plus, r12, LSL, 28, Offset},
1462                            false,
1463                            al,
1464                            "al r0 r7 plus r12 LSL 28 Offset",
1465                            "al_r0_r7_plus_r12_LSL_28_Offset"},
1466                           {{al, r0, r12, minus, r3, LSL, 18, Offset},
1467                            false,
1468                            al,
1469                            "al r0 r12 minus r3 LSL 18 Offset",
1470                            "al_r0_r12_minus_r3_LSL_18_Offset"},
1471                           {{al, r0, r13, minus, r11, ROR, 7, Offset},
1472                            false,
1473                            al,
1474                            "al r0 r13 minus r11 ROR 7 Offset",
1475                            "al_r0_r13_minus_r11_ROR_7_Offset"},
1476                           {{al, r0, r14, minus, r14, LSL, 6, Offset},
1477                            false,
1478                            al,
1479                            "al r0 r14 minus r14 LSL 6 Offset",
1480                            "al_r0_r14_minus_r14_LSL_6_Offset"},
1481                           {{al, r0, r7, minus, r11, ROR, 31, Offset},
1482                            false,
1483                            al,
1484                            "al r0 r7 minus r11 ROR 31 Offset",
1485                            "al_r0_r7_minus_r11_ROR_31_Offset"},
1486                           {{al, r0, r9, minus, r7, ROR, 14, Offset},
1487                            false,
1488                            al,
1489                            "al r0 r9 minus r7 ROR 14 Offset",
1490                            "al_r0_r9_minus_r7_ROR_14_Offset"},
1491                           {{al, r0, r8, minus, r2, LSL, 7, Offset},
1492                            false,
1493                            al,
1494                            "al r0 r8 minus r2 LSL 7 Offset",
1495                            "al_r0_r8_minus_r2_LSL_7_Offset"},
1496                           {{al, r0, r3, plus, r14, LSL, 23, Offset},
1497                            false,
1498                            al,
1499                            "al r0 r3 plus r14 LSL 23 Offset",
1500                            "al_r0_r3_plus_r14_LSL_23_Offset"},
1501                           {{al, r0, r5, plus, r7, LSL, 5, Offset},
1502                            false,
1503                            al,
1504                            "al r0 r5 plus r7 LSL 5 Offset",
1505                            "al_r0_r5_plus_r7_LSL_5_Offset"},
1506                           {{al, r0, r10, minus, r14, LSL, 30, Offset},
1507                            false,
1508                            al,
1509                            "al r0 r10 minus r14 LSL 30 Offset",
1510                            "al_r0_r10_minus_r14_LSL_30_Offset"},
1511                           {{al, r0, r0, minus, r1, LSL, 25, Offset},
1512                            false,
1513                            al,
1514                            "al r0 r0 minus r1 LSL 25 Offset",
1515                            "al_r0_r0_minus_r1_LSL_25_Offset"},
1516                           {{al, r0, r14, plus, r8, ROR, 31, Offset},
1517                            false,
1518                            al,
1519                            "al r0 r14 plus r8 ROR 31 Offset",
1520                            "al_r0_r14_plus_r8_ROR_31_Offset"},
1521                           {{al, r0, r11, plus, r11, ROR, 31, Offset},
1522                            false,
1523                            al,
1524                            "al r0 r11 plus r11 ROR 31 Offset",
1525                            "al_r0_r11_plus_r11_ROR_31_Offset"},
1526                           {{al, r0, r14, plus, r8, LSL, 27, Offset},
1527                            false,
1528                            al,
1529                            "al r0 r14 plus r8 LSL 27 Offset",
1530                            "al_r0_r14_plus_r8_LSL_27_Offset"},
1531                           {{al, r0, r6, minus, r0, ROR, 9, Offset},
1532                            false,
1533                            al,
1534                            "al r0 r6 minus r0 ROR 9 Offset",
1535                            "al_r0_r6_minus_r0_ROR_9_Offset"},
1536                           {{al, r0, r4, minus, r12, LSL, 29, Offset},
1537                            false,
1538                            al,
1539                            "al r0 r4 minus r12 LSL 29 Offset",
1540                            "al_r0_r4_minus_r12_LSL_29_Offset"},
1541                           {{al, r0, r14, plus, r8, ROR, 4, Offset},
1542                            false,
1543                            al,
1544                            "al r0 r14 plus r8 ROR 4 Offset",
1545                            "al_r0_r14_plus_r8_ROR_4_Offset"},
1546                           {{al, r0, r9, minus, r9, LSL, 27, Offset},
1547                            false,
1548                            al,
1549                            "al r0 r9 minus r9 LSL 27 Offset",
1550                            "al_r0_r9_minus_r9_LSL_27_Offset"},
1551                           {{al, r0, r3, plus, r8, ROR, 28, Offset},
1552                            false,
1553                            al,
1554                            "al r0 r3 plus r8 ROR 28 Offset",
1555                            "al_r0_r3_plus_r8_ROR_28_Offset"},
1556                           {{al, r0, r12, plus, r0, ROR, 13, Offset},
1557                            false,
1558                            al,
1559                            "al r0 r12 plus r0 ROR 13 Offset",
1560                            "al_r0_r12_plus_r0_ROR_13_Offset"},
1561                           {{al, r0, r8, minus, r4, ROR, 20, Offset},
1562                            false,
1563                            al,
1564                            "al r0 r8 minus r4 ROR 20 Offset",
1565                            "al_r0_r8_minus_r4_ROR_20_Offset"},
1566                           {{al, r0, r1, plus, r14, ROR, 4, Offset},
1567                            false,
1568                            al,
1569                            "al r0 r1 plus r14 ROR 4 Offset",
1570                            "al_r0_r1_plus_r14_ROR_4_Offset"},
1571                           {{al, r0, r11, plus, r2, ROR, 10, Offset},
1572                            false,
1573                            al,
1574                            "al r0 r11 plus r2 ROR 10 Offset",
1575                            "al_r0_r11_plus_r2_ROR_10_Offset"},
1576                           {{al, r0, r0, plus, r10, ROR, 18, Offset},
1577                            false,
1578                            al,
1579                            "al r0 r0 plus r10 ROR 18 Offset",
1580                            "al_r0_r0_plus_r10_ROR_18_Offset"},
1581                           {{al, r0, r11, minus, r7, ROR, 3, Offset},
1582                            false,
1583                            al,
1584                            "al r0 r11 minus r7 ROR 3 Offset",
1585                            "al_r0_r11_minus_r7_ROR_3_Offset"},
1586                           {{al, r0, r0, plus, r14, LSL, 10, Offset},
1587                            false,
1588                            al,
1589                            "al r0 r0 plus r14 LSL 10 Offset",
1590                            "al_r0_r0_plus_r14_LSL_10_Offset"},
1591                           {{al, r0, r12, minus, r9, ROR, 5, Offset},
1592                            false,
1593                            al,
1594                            "al r0 r12 minus r9 ROR 5 Offset",
1595                            "al_r0_r12_minus_r9_ROR_5_Offset"},
1596                           {{al, r0, r11, plus, r14, ROR, 26, Offset},
1597                            false,
1598                            al,
1599                            "al r0 r11 plus r14 ROR 26 Offset",
1600                            "al_r0_r11_plus_r14_ROR_26_Offset"},
1601                           {{al, r8, r3, minus, r4, ROR, 30, PreIndex},
1602                            false,
1603                            al,
1604                            "al r8 r3 minus r4 ROR 30 PreIndex",
1605                            "al_r8_r3_minus_r4_ROR_30_PreIndex"},
1606                           {{al, r1, r0, plus, r5, LSL, 13, PreIndex},
1607                            false,
1608                            al,
1609                            "al r1 r0 plus r5 LSL 13 PreIndex",
1610                            "al_r1_r0_plus_r5_LSL_13_PreIndex"},
1611                           {{al, r13, r3, minus, r1, ROR, 31, PostIndex},
1612                            false,
1613                            al,
1614                            "al r13 r3 minus r1 ROR 31 PostIndex",
1615                            "al_r13_r3_minus_r1_ROR_31_PostIndex"},
1616                           {{al, r9, r7, minus, r1, LSL, 8, PostIndex},
1617                            false,
1618                            al,
1619                            "al r9 r7 minus r1 LSL 8 PostIndex",
1620                            "al_r9_r7_minus_r1_LSL_8_PostIndex"},
1621                           {{al, r2, r6, plus, r7, ROR, 18, PreIndex},
1622                            false,
1623                            al,
1624                            "al r2 r6 plus r7 ROR 18 PreIndex",
1625                            "al_r2_r6_plus_r7_ROR_18_PreIndex"},
1626                           {{al, r0, r11, minus, r11, ROR, 26, PreIndex},
1627                            false,
1628                            al,
1629                            "al r0 r11 minus r11 ROR 26 PreIndex",
1630                            "al_r0_r11_minus_r11_ROR_26_PreIndex"},
1631                           {{al, r14, r4, plus, r14, LSL, 12, PreIndex},
1632                            false,
1633                            al,
1634                            "al r14 r4 plus r14 LSL 12 PreIndex",
1635                            "al_r14_r4_plus_r14_LSL_12_PreIndex"},
1636                           {{al, r10, r6, minus, r13, LSL, 15, PreIndex},
1637                            false,
1638                            al,
1639                            "al r10 r6 minus r13 LSL 15 PreIndex",
1640                            "al_r10_r6_minus_r13_LSL_15_PreIndex"},
1641                           {{al, r0, r2, minus, r13, ROR, 30, PreIndex},
1642                            false,
1643                            al,
1644                            "al r0 r2 minus r13 ROR 30 PreIndex",
1645                            "al_r0_r2_minus_r13_ROR_30_PreIndex"},
1646                           {{al, r0, r14, plus, r2, LSL, 10, PostIndex},
1647                            false,
1648                            al,
1649                            "al r0 r14 plus r2 LSL 10 PostIndex",
1650                            "al_r0_r14_plus_r2_LSL_10_PostIndex"},
1651                           {{al, r8, r3, plus, r8, ROR, 26, PreIndex},
1652                            false,
1653                            al,
1654                            "al r8 r3 plus r8 ROR 26 PreIndex",
1655                            "al_r8_r3_plus_r8_ROR_26_PreIndex"},
1656                           {{al, r0, r4, minus, r12, LSL, 31, PostIndex},
1657                            false,
1658                            al,
1659                            "al r0 r4 minus r12 LSL 31 PostIndex",
1660                            "al_r0_r4_minus_r12_LSL_31_PostIndex"},
1661                           {{al, r11, r12, plus, r7, LSL, 25, PostIndex},
1662                            false,
1663                            al,
1664                            "al r11 r12 plus r7 LSL 25 PostIndex",
1665                            "al_r11_r12_plus_r7_LSL_25_PostIndex"},
1666                           {{al, r2, r10, minus, r7, ROR, 22, PostIndex},
1667                            false,
1668                            al,
1669                            "al r2 r10 minus r7 ROR 22 PostIndex",
1670                            "al_r2_r10_minus_r7_ROR_22_PostIndex"},
1671                           {{al, r3, r6, plus, r8, LSL, 28, PreIndex},
1672                            false,
1673                            al,
1674                            "al r3 r6 plus r8 LSL 28 PreIndex",
1675                            "al_r3_r6_plus_r8_LSL_28_PreIndex"},
1676                           {{al, r9, r3, plus, r12, ROR, 21, PreIndex},
1677                            false,
1678                            al,
1679                            "al r9 r3 plus r12 ROR 21 PreIndex",
1680                            "al_r9_r3_plus_r12_ROR_21_PreIndex"},
1681                           {{al, r11, r5, plus, r3, ROR, 29, PostIndex},
1682                            false,
1683                            al,
1684                            "al r11 r5 plus r3 ROR 29 PostIndex",
1685                            "al_r11_r5_plus_r3_ROR_29_PostIndex"},
1686                           {{al, r4, r9, plus, r3, LSL, 4, PreIndex},
1687                            false,
1688                            al,
1689                            "al r4 r9 plus r3 LSL 4 PreIndex",
1690                            "al_r4_r9_plus_r3_LSL_4_PreIndex"},
1691                           {{al, r8, r11, plus, r12, LSL, 14, PreIndex},
1692                            false,
1693                            al,
1694                            "al r8 r11 plus r12 LSL 14 PreIndex",
1695                            "al_r8_r11_plus_r12_LSL_14_PreIndex"},
1696                           {{al, r4, r7, plus, r14, LSL, 24, PreIndex},
1697                            false,
1698                            al,
1699                            "al r4 r7 plus r14 LSL 24 PreIndex",
1700                            "al_r4_r7_plus_r14_LSL_24_PreIndex"},
1701                           {{al, r5, r14, plus, r14, ROR, 15, PostIndex},
1702                            false,
1703                            al,
1704                            "al r5 r14 plus r14 ROR 15 PostIndex",
1705                            "al_r5_r14_plus_r14_ROR_15_PostIndex"},
1706                           {{al, r12, r10, plus, r9, ROR, 24, PreIndex},
1707                            false,
1708                            al,
1709                            "al r12 r10 plus r9 ROR 24 PreIndex",
1710                            "al_r12_r10_plus_r9_ROR_24_PreIndex"},
1711                           {{al, r6, r0, plus, r5, ROR, 11, PreIndex},
1712                            false,
1713                            al,
1714                            "al r6 r0 plus r5 ROR 11 PreIndex",
1715                            "al_r6_r0_plus_r5_ROR_11_PreIndex"},
1716                           {{al, r8, r7, plus, r6, ROR, 27, PostIndex},
1717                            false,
1718                            al,
1719                            "al r8 r7 plus r6 ROR 27 PostIndex",
1720                            "al_r8_r7_plus_r6_ROR_27_PostIndex"},
1721                           {{al, r2, r12, plus, r12, LSL, 8, PreIndex},
1722                            false,
1723                            al,
1724                            "al r2 r12 plus r12 LSL 8 PreIndex",
1725                            "al_r2_r12_plus_r12_LSL_8_PreIndex"},
1726                           {{al, r6, r5, plus, r13, ROR, 7, PreIndex},
1727                            false,
1728                            al,
1729                            "al r6 r5 plus r13 ROR 7 PreIndex",
1730                            "al_r6_r5_plus_r13_ROR_7_PreIndex"},
1731                           {{al, r10, r7, plus, r3, LSL, 14, PreIndex},
1732                            false,
1733                            al,
1734                            "al r10 r7 plus r3 LSL 14 PreIndex",
1735                            "al_r10_r7_plus_r3_LSL_14_PreIndex"},
1736                           {{al, r7, r0, plus, r0, ROR, 23, PostIndex},
1737                            false,
1738                            al,
1739                            "al r7 r0 plus r0 ROR 23 PostIndex",
1740                            "al_r7_r0_plus_r0_ROR_23_PostIndex"},
1741                           {{al, r12, r0, plus, r3, LSL, 15, PostIndex},
1742                            false,
1743                            al,
1744                            "al r12 r0 plus r3 LSL 15 PostIndex",
1745                            "al_r12_r0_plus_r3_LSL_15_PostIndex"},
1746                           {{al, r2, r4, plus, r11, ROR, 17, PostIndex},
1747                            false,
1748                            al,
1749                            "al r2 r4 plus r11 ROR 17 PostIndex",
1750                            "al_r2_r4_plus_r11_ROR_17_PostIndex"},
1751                           {{al, r1, r7, plus, r9, ROR, 18, PostIndex},
1752                            false,
1753                            al,
1754                            "al r1 r7 plus r9 ROR 18 PostIndex",
1755                            "al_r1_r7_plus_r9_ROR_18_PostIndex"},
1756                           {{al, r8, r10, plus, r14, ROR, 3, PreIndex},
1757                            false,
1758                            al,
1759                            "al r8 r10 plus r14 ROR 3 PreIndex",
1760                            "al_r8_r10_plus_r14_ROR_3_PreIndex"},
1761                           {{al, r2, r3, minus, r13, LSL, 26, PostIndex},
1762                            false,
1763                            al,
1764                            "al r2 r3 minus r13 LSL 26 PostIndex",
1765                            "al_r2_r3_minus_r13_LSL_26_PostIndex"},
1766                           {{al, r8, r1, plus, r4, LSL, 20, PostIndex},
1767                            false,
1768                            al,
1769                            "al r8 r1 plus r4 LSL 20 PostIndex",
1770                            "al_r8_r1_plus_r4_LSL_20_PostIndex"},
1771                           {{al, r8, r10, minus, r6, ROR, 31, PreIndex},
1772                            false,
1773                            al,
1774                            "al r8 r10 minus r6 ROR 31 PreIndex",
1775                            "al_r8_r10_minus_r6_ROR_31_PreIndex"},
1776                           {{al, r8, r7, minus, r8, LSL, 9, PreIndex},
1777                            false,
1778                            al,
1779                            "al r8 r7 minus r8 LSL 9 PreIndex",
1780                            "al_r8_r7_minus_r8_LSL_9_PreIndex"},
1781                           {{al, r2, r1, minus, r13, LSL, 3, PostIndex},
1782                            false,
1783                            al,
1784                            "al r2 r1 minus r13 LSL 3 PostIndex",
1785                            "al_r2_r1_minus_r13_LSL_3_PostIndex"},
1786                           {{al, r7, r1, minus, r12, LSL, 8, PostIndex},
1787                            false,
1788                            al,
1789                            "al r7 r1 minus r12 LSL 8 PostIndex",
1790                            "al_r7_r1_minus_r12_LSL_8_PostIndex"},
1791                           {{al, r3, r8, plus, r5, LSL, 28, PostIndex},
1792                            false,
1793                            al,
1794                            "al r3 r8 plus r5 LSL 28 PostIndex",
1795                            "al_r3_r8_plus_r5_LSL_28_PostIndex"},
1796                           {{al, r13, r0, plus, r0, ROR, 9, PreIndex},
1797                            false,
1798                            al,
1799                            "al r13 r0 plus r0 ROR 9 PreIndex",
1800                            "al_r13_r0_plus_r0_ROR_9_PreIndex"},
1801                           {{al, r2, r5, plus, r4, ROR, 22, PreIndex},
1802                            false,
1803                            al,
1804                            "al r2 r5 plus r4 ROR 22 PreIndex",
1805                            "al_r2_r5_plus_r4_ROR_22_PreIndex"},
1806                           {{al, r4, r0, plus, r0, LSL, 12, PreIndex},
1807                            false,
1808                            al,
1809                            "al r4 r0 plus r0 LSL 12 PreIndex",
1810                            "al_r4_r0_plus_r0_LSL_12_PreIndex"},
1811                           {{al, r11, r7, plus, r0, LSL, 10, PostIndex},
1812                            false,
1813                            al,
1814                            "al r11 r7 plus r0 LSL 10 PostIndex",
1815                            "al_r11_r7_plus_r0_LSL_10_PostIndex"},
1816                           {{al, r13, r0, minus, r12, LSL, 25, PostIndex},
1817                            false,
1818                            al,
1819                            "al r13 r0 minus r12 LSL 25 PostIndex",
1820                            "al_r13_r0_minus_r12_LSL_25_PostIndex"},
1821                           {{al, r1, r3, minus, r12, ROR, 22, PreIndex},
1822                            false,
1823                            al,
1824                            "al r1 r3 minus r12 ROR 22 PreIndex",
1825                            "al_r1_r3_minus_r12_ROR_22_PreIndex"},
1826                           {{al, r10, r6, minus, r5, LSL, 26, PostIndex},
1827                            false,
1828                            al,
1829                            "al r10 r6 minus r5 LSL 26 PostIndex",
1830                            "al_r10_r6_minus_r5_LSL_26_PostIndex"},
1831                           {{al, r0, r7, plus, r11, LSL, 17, PreIndex},
1832                            false,
1833                            al,
1834                            "al r0 r7 plus r11 LSL 17 PreIndex",
1835                            "al_r0_r7_plus_r11_LSL_17_PreIndex"},
1836                           {{al, r12, r13, minus, r9, ROR, 28, PreIndex},
1837                            false,
1838                            al,
1839                            "al r12 r13 minus r9 ROR 28 PreIndex",
1840                            "al_r12_r13_minus_r9_ROR_28_PreIndex"},
1841                           {{al, r11, r1, plus, r6, ROR, 10, PostIndex},
1842                            false,
1843                            al,
1844                            "al r11 r1 plus r6 ROR 10 PostIndex",
1845                            "al_r11_r1_plus_r6_ROR_10_PostIndex"},
1846                           {{al, r3, r0, minus, r8, ROR, 31, PreIndex},
1847                            false,
1848                            al,
1849                            "al r3 r0 minus r8 ROR 31 PreIndex",
1850                            "al_r3_r0_minus_r8_ROR_31_PreIndex"},
1851                           {{al, r13, r6, plus, r12, ROR, 29, PreIndex},
1852                            false,
1853                            al,
1854                            "al r13 r6 plus r12 ROR 29 PreIndex",
1855                            "al_r13_r6_plus_r12_ROR_29_PreIndex"},
1856                           {{al, r2, r5, minus, r9, LSL, 10, PostIndex},
1857                            false,
1858                            al,
1859                            "al r2 r5 minus r9 LSL 10 PostIndex",
1860                            "al_r2_r5_minus_r9_LSL_10_PostIndex"},
1861                           {{al, r11, r3, minus, r6, ROR, 5, PostIndex},
1862                            false,
1863                            al,
1864                            "al r11 r3 minus r6 ROR 5 PostIndex",
1865                            "al_r11_r3_minus_r6_ROR_5_PostIndex"},
1866                           {{al, r6, r2, minus, r14, LSL, 10, PostIndex},
1867                            false,
1868                            al,
1869                            "al r6 r2 minus r14 LSL 10 PostIndex",
1870                            "al_r6_r2_minus_r14_LSL_10_PostIndex"},
1871                           {{al, r3, r10, minus, r10, LSL, 24, PreIndex},
1872                            false,
1873                            al,
1874                            "al r3 r10 minus r10 LSL 24 PreIndex",
1875                            "al_r3_r10_minus_r10_LSL_24_PreIndex"},
1876                           {{al, r4, r3, plus, r11, LSL, 12, PreIndex},
1877                            false,
1878                            al,
1879                            "al r4 r3 plus r11 LSL 12 PreIndex",
1880                            "al_r4_r3_plus_r11_LSL_12_PreIndex"},
1881                           {{al, r4, r13, minus, r0, ROR, 22, PostIndex},
1882                            false,
1883                            al,
1884                            "al r4 r13 minus r0 ROR 22 PostIndex",
1885                            "al_r4_r13_minus_r0_ROR_22_PostIndex"},
1886                           {{al, r2, r13, plus, r1, ROR, 2, PostIndex},
1887                            false,
1888                            al,
1889                            "al r2 r13 plus r1 ROR 2 PostIndex",
1890                            "al_r2_r13_plus_r1_ROR_2_PostIndex"},
1891                           {{al, r11, r9, plus, r8, LSL, 3, PreIndex},
1892                            false,
1893                            al,
1894                            "al r11 r9 plus r8 LSL 3 PreIndex",
1895                            "al_r11_r9_plus_r8_LSL_3_PreIndex"},
1896                           {{al, r10, r6, minus, r6, ROR, 23, PostIndex},
1897                            false,
1898                            al,
1899                            "al r10 r6 minus r6 ROR 23 PostIndex",
1900                            "al_r10_r6_minus_r6_ROR_23_PostIndex"},
1901                           {{al, r4, r0, minus, r4, LSL, 8, PreIndex},
1902                            false,
1903                            al,
1904                            "al r4 r0 minus r4 LSL 8 PreIndex",
1905                            "al_r4_r0_minus_r4_LSL_8_PreIndex"},
1906                           {{al, r14, r9, plus, r2, ROR, 6, PreIndex},
1907                            false,
1908                            al,
1909                            "al r14 r9 plus r2 ROR 6 PreIndex",
1910                            "al_r14_r9_plus_r2_ROR_6_PreIndex"},
1911                           {{al, r8, r10, plus, r9, LSL, 3, PostIndex},
1912                            false,
1913                            al,
1914                            "al r8 r10 plus r9 LSL 3 PostIndex",
1915                            "al_r8_r10_plus_r9_LSL_3_PostIndex"},
1916                           {{al, r9, r14, plus, r13, ROR, 25, PostIndex},
1917                            false,
1918                            al,
1919                            "al r9 r14 plus r13 ROR 25 PostIndex",
1920                            "al_r9_r14_plus_r13_ROR_25_PostIndex"},
1921                           {{al, r13, r3, plus, r6, LSL, 3, PostIndex},
1922                            false,
1923                            al,
1924                            "al r13 r3 plus r6 LSL 3 PostIndex",
1925                            "al_r13_r3_plus_r6_LSL_3_PostIndex"},
1926                           {{al, r9, r14, plus, r4, LSL, 24, PreIndex},
1927                            false,
1928                            al,
1929                            "al r9 r14 plus r4 LSL 24 PreIndex",
1930                            "al_r9_r14_plus_r4_LSL_24_PreIndex"},
1931                           {{al, r5, r10, plus, r4, LSL, 29, PreIndex},
1932                            false,
1933                            al,
1934                            "al r5 r10 plus r4 LSL 29 PreIndex",
1935                            "al_r5_r10_plus_r4_LSL_29_PreIndex"},
1936                           {{al, r7, r5, minus, r11, LSL, 13, PreIndex},
1937                            false,
1938                            al,
1939                            "al r7 r5 minus r11 LSL 13 PreIndex",
1940                            "al_r7_r5_minus_r11_LSL_13_PreIndex"},
1941                           {{al, r8, r1, plus, r2, ROR, 27, PreIndex},
1942                            false,
1943                            al,
1944                            "al r8 r1 plus r2 ROR 27 PreIndex",
1945                            "al_r8_r1_plus_r2_ROR_27_PreIndex"},
1946                           {{al, r14, r11, minus, r8, ROR, 1, PreIndex},
1947                            false,
1948                            al,
1949                            "al r14 r11 minus r8 ROR 1 PreIndex",
1950                            "al_r14_r11_minus_r8_ROR_1_PreIndex"},
1951                           {{al, r14, r6, plus, r4, ROR, 29, PostIndex},
1952                            false,
1953                            al,
1954                            "al r14 r6 plus r4 ROR 29 PostIndex",
1955                            "al_r14_r6_plus_r4_ROR_29_PostIndex"},
1956                           {{al, r13, r0, plus, r1, LSL, 21, PreIndex},
1957                            false,
1958                            al,
1959                            "al r13 r0 plus r1 LSL 21 PreIndex",
1960                            "al_r13_r0_plus_r1_LSL_21_PreIndex"},
1961                           {{al, r1, r8, plus, r2, LSL, 22, PostIndex},
1962                            false,
1963                            al,
1964                            "al r1 r8 plus r2 LSL 22 PostIndex",
1965                            "al_r1_r8_plus_r2_LSL_22_PostIndex"},
1966                           {{al, r11, r8, plus, r5, LSL, 19, PreIndex},
1967                            false,
1968                            al,
1969                            "al r11 r8 plus r5 LSL 19 PreIndex",
1970                            "al_r11_r8_plus_r5_LSL_19_PreIndex"},
1971                           {{al, r12, r10, plus, r7, ROR, 15, PostIndex},
1972                            false,
1973                            al,
1974                            "al r12 r10 plus r7 ROR 15 PostIndex",
1975                            "al_r12_r10_plus_r7_ROR_15_PostIndex"},
1976                           {{al, r2, r6, plus, r14, ROR, 4, PostIndex},
1977                            false,
1978                            al,
1979                            "al r2 r6 plus r14 ROR 4 PostIndex",
1980                            "al_r2_r6_plus_r14_ROR_4_PostIndex"},
1981                           {{al, r3, r6, plus, r12, LSL, 9, PostIndex},
1982                            false,
1983                            al,
1984                            "al r3 r6 plus r12 LSL 9 PostIndex",
1985                            "al_r3_r6_plus_r12_LSL_9_PostIndex"},
1986                           {{al, r1, r0, minus, r6, LSL, 24, PreIndex},
1987                            false,
1988                            al,
1989                            "al r1 r0 minus r6 LSL 24 PreIndex",
1990                            "al_r1_r0_minus_r6_LSL_24_PreIndex"},
1991                           {{al, r5, r12, plus, r2, ROR, 30, PostIndex},
1992                            false,
1993                            al,
1994                            "al r5 r12 plus r2 ROR 30 PostIndex",
1995                            "al_r5_r12_plus_r2_ROR_30_PostIndex"},
1996                           {{al, r14, r3, plus, r8, ROR, 6, PostIndex},
1997                            false,
1998                            al,
1999                            "al r14 r3 plus r8 ROR 6 PostIndex",
2000                            "al_r14_r3_plus_r8_ROR_6_PostIndex"},
2001                           {{al, r8, r14, minus, r10, ROR, 25, PostIndex},
2002                            false,
2003                            al,
2004                            "al r8 r14 minus r10 ROR 25 PostIndex",
2005                            "al_r8_r14_minus_r10_ROR_25_PostIndex"},
2006                           {{al, r7, r12, plus, r2, ROR, 3, PreIndex},
2007                            false,
2008                            al,
2009                            "al r7 r12 plus r2 ROR 3 PreIndex",
2010                            "al_r7_r12_plus_r2_ROR_3_PreIndex"},
2011                           {{al, r9, r13, plus, r11, ROR, 29, PreIndex},
2012                            false,
2013                            al,
2014                            "al r9 r13 plus r11 ROR 29 PreIndex",
2015                            "al_r9_r13_plus_r11_ROR_29_PreIndex"},
2016                           {{al, r5, r2, plus, r10, ROR, 21, PostIndex},
2017                            false,
2018                            al,
2019                            "al r5 r2 plus r10 ROR 21 PostIndex",
2020                            "al_r5_r2_plus_r10_ROR_21_PostIndex"},
2021                           {{al, r13, r8, minus, r2, LSL, 21, PreIndex},
2022                            false,
2023                            al,
2024                            "al r13 r8 minus r2 LSL 21 PreIndex",
2025                            "al_r13_r8_minus_r2_LSL_21_PreIndex"},
2026                           {{al, r1, r13, plus, r5, LSL, 20, PostIndex},
2027                            false,
2028                            al,
2029                            "al r1 r13 plus r5 LSL 20 PostIndex",
2030                            "al_r1_r13_plus_r5_LSL_20_PostIndex"},
2031                           {{al, r6, r0, plus, r6, LSL, 15, PostIndex},
2032                            false,
2033                            al,
2034                            "al r6 r0 plus r6 LSL 15 PostIndex",
2035                            "al_r6_r0_plus_r6_LSL_15_PostIndex"},
2036                           {{al, r7, r3, minus, r6, LSL, 31, PreIndex},
2037                            false,
2038                            al,
2039                            "al r7 r3 minus r6 LSL 31 PreIndex",
2040                            "al_r7_r3_minus_r6_LSL_31_PreIndex"},
2041                           {{al, r5, r10, minus, r11, ROR, 6, PostIndex},
2042                            false,
2043                            al,
2044                            "al r5 r10 minus r11 ROR 6 PostIndex",
2045                            "al_r5_r10_minus_r11_ROR_6_PostIndex"},
2046                           {{al, r7, r3, minus, r13, ROR, 29, PreIndex},
2047                            false,
2048                            al,
2049                            "al r7 r3 minus r13 ROR 29 PreIndex",
2050                            "al_r7_r3_minus_r13_ROR_29_PreIndex"},
2051                           {{al, r4, r6, plus, r3, LSL, 10, PreIndex},
2052                            false,
2053                            al,
2054                            "al r4 r6 plus r3 LSL 10 PreIndex",
2055                            "al_r4_r6_plus_r3_LSL_10_PreIndex"},
2056                           {{al, r7, r13, plus, r4, ROR, 8, PreIndex},
2057                            false,
2058                            al,
2059                            "al r7 r13 plus r4 ROR 8 PreIndex",
2060                            "al_r7_r13_plus_r4_ROR_8_PreIndex"},
2061                           {{al, r2, r5, plus, r0, LSL, 30, PreIndex},
2062                            false,
2063                            al,
2064                            "al r2 r5 plus r0 LSL 30 PreIndex",
2065                            "al_r2_r5_plus_r0_LSL_30_PreIndex"},
2066                           {{al, r10, r12, plus, r5, LSL, 8, PreIndex},
2067                            false,
2068                            al,
2069                            "al r10 r12 plus r5 LSL 8 PreIndex",
2070                            "al_r10_r12_plus_r5_LSL_8_PreIndex"},
2071                           {{al, r4, r10, minus, r11, ROR, 2, PreIndex},
2072                            false,
2073                            al,
2074                            "al r4 r10 minus r11 ROR 2 PreIndex",
2075                            "al_r4_r10_minus_r11_ROR_2_PreIndex"},
2076                           {{al, r4, r11, plus, r12, LSL, 14, PreIndex},
2077                            false,
2078                            al,
2079                            "al r4 r11 plus r12 LSL 14 PreIndex",
2080                            "al_r4_r11_plus_r12_LSL_14_PreIndex"},
2081                           {{al, r1, r6, plus, r1, LSL, 10, PostIndex},
2082                            false,
2083                            al,
2084                            "al r1 r6 plus r1 LSL 10 PostIndex",
2085                            "al_r1_r6_plus_r1_LSL_10_PostIndex"},
2086                           {{al, r8, r11, plus, r11, LSL, 11, PreIndex},
2087                            false,
2088                            al,
2089                            "al r8 r11 plus r11 LSL 11 PreIndex",
2090                            "al_r8_r11_plus_r11_LSL_11_PreIndex"},
2091                           {{al, r12, r8, minus, r7, ROR, 10, PostIndex},
2092                            false,
2093                            al,
2094                            "al r12 r8 minus r7 ROR 10 PostIndex",
2095                            "al_r12_r8_minus_r7_ROR_10_PostIndex"},
2096                           {{al, r13, r11, plus, r1, LSL, 11, PreIndex},
2097                            false,
2098                            al,
2099                            "al r13 r11 plus r1 LSL 11 PreIndex",
2100                            "al_r13_r11_plus_r1_LSL_11_PreIndex"},
2101                           {{al, r5, r3, plus, r9, ROR, 9, PreIndex},
2102                            false,
2103                            al,
2104                            "al r5 r3 plus r9 ROR 9 PreIndex",
2105                            "al_r5_r3_plus_r9_ROR_9_PreIndex"},
2106                           {{al, r6, r10, plus, r6, LSL, 18, PreIndex},
2107                            false,
2108                            al,
2109                            "al r6 r10 plus r6 LSL 18 PreIndex",
2110                            "al_r6_r10_plus_r6_LSL_18_PreIndex"},
2111                           {{al, r6, r1, minus, r14, LSL, 14, PostIndex},
2112                            false,
2113                            al,
2114                            "al r6 r1 minus r14 LSL 14 PostIndex",
2115                            "al_r6_r1_minus_r14_LSL_14_PostIndex"},
2116                           {{al, r10, r3, minus, r6, LSL, 5, PreIndex},
2117                            false,
2118                            al,
2119                            "al r10 r3 minus r6 LSL 5 PreIndex",
2120                            "al_r10_r3_minus_r6_LSL_5_PreIndex"},
2121                           {{al, r6, r7, minus, r13, ROR, 26, PreIndex},
2122                            false,
2123                            al,
2124                            "al r6 r7 minus r13 ROR 26 PreIndex",
2125                            "al_r6_r7_minus_r13_ROR_26_PreIndex"},
2126                           {{al, r8, r12, minus, r7, ROR, 30, PreIndex},
2127                            false,
2128                            al,
2129                            "al r8 r12 minus r7 ROR 30 PreIndex",
2130                            "al_r8_r12_minus_r7_ROR_30_PreIndex"},
2131                           {{al, r9, r7, plus, r5, LSL, 27, PostIndex},
2132                            false,
2133                            al,
2134                            "al r9 r7 plus r5 LSL 27 PostIndex",
2135                            "al_r9_r7_plus_r5_LSL_27_PostIndex"},
2136                           {{al, r8, r10, minus, r14, LSL, 26, PreIndex},
2137                            false,
2138                            al,
2139                            "al r8 r10 minus r14 LSL 26 PreIndex",
2140                            "al_r8_r10_minus_r14_LSL_26_PreIndex"},
2141                           {{al, r9, r13, minus, r2, LSL, 30, PostIndex},
2142                            false,
2143                            al,
2144                            "al r9 r13 minus r2 LSL 30 PostIndex",
2145                            "al_r9_r13_minus_r2_LSL_30_PostIndex"},
2146                           {{al, r12, r9, minus, r8, ROR, 7, PostIndex},
2147                            false,
2148                            al,
2149                            "al r12 r9 minus r8 ROR 7 PostIndex",
2150                            "al_r12_r9_minus_r8_ROR_7_PostIndex"},
2151                           {{al, r4, r9, minus, r5, ROR, 2, PreIndex},
2152                            false,
2153                            al,
2154                            "al r4 r9 minus r5 ROR 2 PreIndex",
2155                            "al_r4_r9_minus_r5_ROR_2_PreIndex"},
2156                           {{al, r1, r5, plus, r9, ROR, 16, PostIndex},
2157                            false,
2158                            al,
2159                            "al r1 r5 plus r9 ROR 16 PostIndex",
2160                            "al_r1_r5_plus_r9_ROR_16_PostIndex"},
2161                           {{al, r3, r2, minus, r9, LSL, 25, PostIndex},
2162                            false,
2163                            al,
2164                            "al r3 r2 minus r9 LSL 25 PostIndex",
2165                            "al_r3_r2_minus_r9_LSL_25_PostIndex"},
2166                           {{al, r14, r0, minus, r4, LSL, 22, PreIndex},
2167                            false,
2168                            al,
2169                            "al r14 r0 minus r4 LSL 22 PreIndex",
2170                            "al_r14_r0_minus_r4_LSL_22_PreIndex"},
2171                           {{al, r1, r4, plus, r2, LSL, 7, PostIndex},
2172                            false,
2173                            al,
2174                            "al r1 r4 plus r2 LSL 7 PostIndex",
2175                            "al_r1_r4_plus_r2_LSL_7_PostIndex"},
2176                           {{al, r13, r9, minus, r4, LSL, 31, PostIndex},
2177                            false,
2178                            al,
2179                            "al r13 r9 minus r4 LSL 31 PostIndex",
2180                            "al_r13_r9_minus_r4_LSL_31_PostIndex"},
2181                           {{al, r11, r14, minus, r2, LSL, 13, PostIndex},
2182                            false,
2183                            al,
2184                            "al r11 r14 minus r2 LSL 13 PostIndex",
2185                            "al_r11_r14_minus_r2_LSL_13_PostIndex"},
2186                           {{al, r10, r5, plus, r1, LSL, 22, PreIndex},
2187                            false,
2188                            al,
2189                            "al r10 r5 plus r1 LSL 22 PreIndex",
2190                            "al_r10_r5_plus_r1_LSL_22_PreIndex"},
2191                           {{al, r13, r2, minus, r10, LSL, 25, PreIndex},
2192                            false,
2193                            al,
2194                            "al r13 r2 minus r10 LSL 25 PreIndex",
2195                            "al_r13_r2_minus_r10_LSL_25_PreIndex"},
2196                           {{al, r12, r2, plus, r0, ROR, 27, PostIndex},
2197                            false,
2198                            al,
2199                            "al r12 r2 plus r0 ROR 27 PostIndex",
2200                            "al_r12_r2_plus_r0_ROR_27_PostIndex"},
2201                           {{al, r5, r13, plus, r13, LSL, 5, PostIndex},
2202                            false,
2203                            al,
2204                            "al r5 r13 plus r13 LSL 5 PostIndex",
2205                            "al_r5_r13_plus_r13_LSL_5_PostIndex"},
2206                           {{al, r14, r0, minus, r11, ROR, 3, PreIndex},
2207                            false,
2208                            al,
2209                            "al r14 r0 minus r11 ROR 3 PreIndex",
2210                            "al_r14_r0_minus_r11_ROR_3_PreIndex"},
2211                           {{al, r1, r10, minus, r8, LSL, 4, PreIndex},
2212                            false,
2213                            al,
2214                            "al r1 r10 minus r8 LSL 4 PreIndex",
2215                            "al_r1_r10_minus_r8_LSL_4_PreIndex"},
2216                           {{al, r11, r4, plus, r3, ROR, 23, PostIndex},
2217                            false,
2218                            al,
2219                            "al r11 r4 plus r3 ROR 23 PostIndex",
2220                            "al_r11_r4_plus_r3_ROR_23_PostIndex"},
2221                           {{al, r1, r4, plus, r11, LSL, 29, PreIndex},
2222                            false,
2223                            al,
2224                            "al r1 r4 plus r11 LSL 29 PreIndex",
2225                            "al_r1_r4_plus_r11_LSL_29_PreIndex"},
2226                           {{al, r12, r4, plus, r7, ROR, 4, PreIndex},
2227                            false,
2228                            al,
2229                            "al r12 r4 plus r7 ROR 4 PreIndex",
2230                            "al_r12_r4_plus_r7_ROR_4_PreIndex"},
2231                           {{al, r4, r11, plus, r14, ROR, 17, PostIndex},
2232                            false,
2233                            al,
2234                            "al r4 r11 plus r14 ROR 17 PostIndex",
2235                            "al_r4_r11_plus_r14_ROR_17_PostIndex"},
2236                           {{al, r3, r10, plus, r0, LSL, 2, PostIndex},
2237                            false,
2238                            al,
2239                            "al r3 r10 plus r0 LSL 2 PostIndex",
2240                            "al_r3_r10_plus_r0_LSL_2_PostIndex"},
2241                           {{al, r11, r13, minus, r8, ROR, 26, PostIndex},
2242                            false,
2243                            al,
2244                            "al r11 r13 minus r8 ROR 26 PostIndex",
2245                            "al_r11_r13_minus_r8_ROR_26_PostIndex"},
2246                           {{al, r0, r8, plus, r14, ROR, 21, PostIndex},
2247                            false,
2248                            al,
2249                            "al r0 r8 plus r14 ROR 21 PostIndex",
2250                            "al_r0_r8_plus_r14_ROR_21_PostIndex"},
2251                           {{al, r8, r5, plus, r7, LSL, 9, PreIndex},
2252                            false,
2253                            al,
2254                            "al r8 r5 plus r7 LSL 9 PreIndex",
2255                            "al_r8_r5_plus_r7_LSL_9_PreIndex"},
2256                           {{al, r9, r10, plus, r14, LSL, 14, PostIndex},
2257                            false,
2258                            al,
2259                            "al r9 r10 plus r14 LSL 14 PostIndex",
2260                            "al_r9_r10_plus_r14_LSL_14_PostIndex"},
2261                           {{al, r1, r9, minus, r4, LSL, 26, PostIndex},
2262                            false,
2263                            al,
2264                            "al r1 r9 minus r4 LSL 26 PostIndex",
2265                            "al_r1_r9_minus_r4_LSL_26_PostIndex"},
2266                           {{al, r8, r4, plus, r1, LSL, 8, PreIndex},
2267                            false,
2268                            al,
2269                            "al r8 r4 plus r1 LSL 8 PreIndex",
2270                            "al_r8_r4_plus_r1_LSL_8_PreIndex"},
2271                           {{al, r13, r6, minus, r7, ROR, 23, PostIndex},
2272                            false,
2273                            al,
2274                            "al r13 r6 minus r7 ROR 23 PostIndex",
2275                            "al_r13_r6_minus_r7_ROR_23_PostIndex"},
2276                           {{al, r12, r9, plus, r4, LSL, 15, PreIndex},
2277                            false,
2278                            al,
2279                            "al r12 r9 plus r4 LSL 15 PreIndex",
2280                            "al_r12_r9_plus_r4_LSL_15_PreIndex"},
2281                           {{al, r7, r8, plus, r1, ROR, 24, PostIndex},
2282                            false,
2283                            al,
2284                            "al r7 r8 plus r1 ROR 24 PostIndex",
2285                            "al_r7_r8_plus_r1_ROR_24_PostIndex"},
2286                           {{al, r5, r7, minus, r2, LSL, 20, PreIndex},
2287                            false,
2288                            al,
2289                            "al r5 r7 minus r2 LSL 20 PreIndex",
2290                            "al_r5_r7_minus_r2_LSL_20_PreIndex"},
2291                           {{al, r3, r11, minus, r6, LSL, 16, PostIndex},
2292                            false,
2293                            al,
2294                            "al r3 r11 minus r6 LSL 16 PostIndex",
2295                            "al_r3_r11_minus_r6_LSL_16_PostIndex"},
2296                           {{al, r6, r14, minus, r8, ROR, 15, PostIndex},
2297                            false,
2298                            al,
2299                            "al r6 r14 minus r8 ROR 15 PostIndex",
2300                            "al_r6_r14_minus_r8_ROR_15_PostIndex"},
2301                           {{al, r13, r14, minus, r7, LSL, 28, PreIndex},
2302                            false,
2303                            al,
2304                            "al r13 r14 minus r7 LSL 28 PreIndex",
2305                            "al_r13_r14_minus_r7_LSL_28_PreIndex"},
2306                           {{al, r3, r12, plus, r9, LSL, 3, PreIndex},
2307                            false,
2308                            al,
2309                            "al r3 r12 plus r9 LSL 3 PreIndex",
2310                            "al_r3_r12_plus_r9_LSL_3_PreIndex"},
2311                           {{al, r1, r3, plus, r10, ROR, 14, PreIndex},
2312                            false,
2313                            al,
2314                            "al r1 r3 plus r10 ROR 14 PreIndex",
2315                            "al_r1_r3_plus_r10_ROR_14_PreIndex"},
2316                           {{al, r1, r3, minus, r12, LSL, 9, PreIndex},
2317                            false,
2318                            al,
2319                            "al r1 r3 minus r12 LSL 9 PreIndex",
2320                            "al_r1_r3_minus_r12_LSL_9_PreIndex"},
2321                           {{al, r3, r6, plus, r8, ROR, 21, PostIndex},
2322                            false,
2323                            al,
2324                            "al r3 r6 plus r8 ROR 21 PostIndex",
2325                            "al_r3_r6_plus_r8_ROR_21_PostIndex"},
2326                           {{al, r14, r3, plus, r9, LSL, 7, PreIndex},
2327                            false,
2328                            al,
2329                            "al r14 r3 plus r9 LSL 7 PreIndex",
2330                            "al_r14_r3_plus_r9_LSL_7_PreIndex"},
2331                           {{al, r4, r8, plus, r1, ROR, 27, PreIndex},
2332                            false,
2333                            al,
2334                            "al r4 r8 plus r1 ROR 27 PreIndex",
2335                            "al_r4_r8_plus_r1_ROR_27_PreIndex"},
2336                           {{al, r1, r13, minus, r5, ROR, 19, PreIndex},
2337                            false,
2338                            al,
2339                            "al r1 r13 minus r5 ROR 19 PreIndex",
2340                            "al_r1_r13_minus_r5_ROR_19_PreIndex"},
2341                           {{al, r5, r1, plus, r14, LSL, 15, PostIndex},
2342                            false,
2343                            al,
2344                            "al r5 r1 plus r14 LSL 15 PostIndex",
2345                            "al_r5_r1_plus_r14_LSL_15_PostIndex"},
2346                           {{al, r12, r3, minus, r11, ROR, 28, PreIndex},
2347                            false,
2348                            al,
2349                            "al r12 r3 minus r11 ROR 28 PreIndex",
2350                            "al_r12_r3_minus_r11_ROR_28_PreIndex"},
2351                           {{al, r14, r3, plus, r4, LSL, 20, PostIndex},
2352                            false,
2353                            al,
2354                            "al r14 r3 plus r4 LSL 20 PostIndex",
2355                            "al_r14_r3_plus_r4_LSL_20_PostIndex"},
2356                           {{al, r6, r2, plus, r10, ROR, 14, PreIndex},
2357                            false,
2358                            al,
2359                            "al r6 r2 plus r10 ROR 14 PreIndex",
2360                            "al_r6_r2_plus_r10_ROR_14_PreIndex"},
2361                           {{al, r8, r12, plus, r13, ROR, 26, PreIndex},
2362                            false,
2363                            al,
2364                            "al r8 r12 plus r13 ROR 26 PreIndex",
2365                            "al_r8_r12_plus_r13_ROR_26_PreIndex"},
2366                           {{al, r12, r13, minus, r13, LSL, 11, PostIndex},
2367                            false,
2368                            al,
2369                            "al r12 r13 minus r13 LSL 11 PostIndex",
2370                            "al_r12_r13_minus_r13_LSL_11_PostIndex"},
2371                           {{al, r0, r6, minus, r10, LSL, 24, PostIndex},
2372                            false,
2373                            al,
2374                            "al r0 r6 minus r10 LSL 24 PostIndex",
2375                            "al_r0_r6_minus_r10_LSL_24_PostIndex"},
2376                           {{al, r6, r0, minus, r13, LSL, 29, PreIndex},
2377                            false,
2378                            al,
2379                            "al r6 r0 minus r13 LSL 29 PreIndex",
2380                            "al_r6_r0_minus_r13_LSL_29_PreIndex"},
2381                           {{al, r4, r2, plus, r10, LSL, 15, PostIndex},
2382                            false,
2383                            al,
2384                            "al r4 r2 plus r10 LSL 15 PostIndex",
2385                            "al_r4_r2_plus_r10_LSL_15_PostIndex"},
2386                           {{al, r13, r9, plus, r14, ROR, 21, PreIndex},
2387                            false,
2388                            al,
2389                            "al r13 r9 plus r14 ROR 21 PreIndex",
2390                            "al_r13_r9_plus_r14_ROR_21_PreIndex"},
2391                           {{al, r4, r1, minus, r0, ROR, 26, PostIndex},
2392                            false,
2393                            al,
2394                            "al r4 r1 minus r0 ROR 26 PostIndex",
2395                            "al_r4_r1_minus_r0_ROR_26_PostIndex"},
2396                           {{al, r12, r7, minus, r12, ROR, 28, PreIndex},
2397                            false,
2398                            al,
2399                            "al r12 r7 minus r12 ROR 28 PreIndex",
2400                            "al_r12_r7_minus_r12_ROR_28_PreIndex"},
2401                           {{al, r10, r0, minus, r5, LSL, 7, PreIndex},
2402                            false,
2403                            al,
2404                            "al r10 r0 minus r5 LSL 7 PreIndex",
2405                            "al_r10_r0_minus_r5_LSL_7_PreIndex"},
2406                           {{al, r4, r1, plus, r2, ROR, 23, PreIndex},
2407                            false,
2408                            al,
2409                            "al r4 r1 plus r2 ROR 23 PreIndex",
2410                            "al_r4_r1_plus_r2_ROR_23_PreIndex"},
2411                           {{al, r12, r6, minus, r1, LSL, 31, PostIndex},
2412                            false,
2413                            al,
2414                            "al r12 r6 minus r1 LSL 31 PostIndex",
2415                            "al_r12_r6_minus_r1_LSL_31_PostIndex"},
2416                           {{al, r4, r8, plus, r3, LSL, 28, PreIndex},
2417                            false,
2418                            al,
2419                            "al r4 r8 plus r3 LSL 28 PreIndex",
2420                            "al_r4_r8_plus_r3_LSL_28_PreIndex"},
2421                           {{al, r11, r7, minus, r5, ROR, 3, PreIndex},
2422                            false,
2423                            al,
2424                            "al r11 r7 minus r5 ROR 3 PreIndex",
2425                            "al_r11_r7_minus_r5_ROR_3_PreIndex"},
2426                           {{al, r4, r3, plus, r11, LSL, 16, PostIndex},
2427                            false,
2428                            al,
2429                            "al r4 r3 plus r11 LSL 16 PostIndex",
2430                            "al_r4_r3_plus_r11_LSL_16_PostIndex"},
2431                           {{al, r12, r11, plus, r12, ROR, 11, PreIndex},
2432                            false,
2433                            al,
2434                            "al r12 r11 plus r12 ROR 11 PreIndex",
2435                            "al_r12_r11_plus_r12_ROR_11_PreIndex"},
2436                           {{al, r11, r5, minus, r0, ROR, 29, PreIndex},
2437                            false,
2438                            al,
2439                            "al r11 r5 minus r0 ROR 29 PreIndex",
2440                            "al_r11_r5_minus_r0_ROR_29_PreIndex"},
2441                           {{al, r11, r7, plus, r12, LSL, 24, PostIndex},
2442                            false,
2443                            al,
2444                            "al r11 r7 plus r12 LSL 24 PostIndex",
2445                            "al_r11_r7_plus_r12_LSL_24_PostIndex"},
2446                           {{al, r13, r4, plus, r4, ROR, 9, PostIndex},
2447                            false,
2448                            al,
2449                            "al r13 r4 plus r4 ROR 9 PostIndex",
2450                            "al_r13_r4_plus_r4_ROR_9_PostIndex"},
2451                           {{al, r0, r9, minus, r11, LSL, 17, PostIndex},
2452                            false,
2453                            al,
2454                            "al r0 r9 minus r11 LSL 17 PostIndex",
2455                            "al_r0_r9_minus_r11_LSL_17_PostIndex"},
2456                           {{al, r1, r11, plus, r5, ROR, 27, PostIndex},
2457                            false,
2458                            al,
2459                            "al r1 r11 plus r5 ROR 27 PostIndex",
2460                            "al_r1_r11_plus_r5_ROR_27_PostIndex"},
2461                           {{al, r6, r0, plus, r5, ROR, 16, PostIndex},
2462                            false,
2463                            al,
2464                            "al r6 r0 plus r5 ROR 16 PostIndex",
2465                            "al_r6_r0_plus_r5_ROR_16_PostIndex"},
2466                           {{al, r14, r8, plus, r8, LSL, 23, PreIndex},
2467                            false,
2468                            al,
2469                            "al r14 r8 plus r8 LSL 23 PreIndex",
2470                            "al_r14_r8_plus_r8_LSL_23_PreIndex"},
2471                           {{al, r7, r0, plus, r12, LSL, 29, PostIndex},
2472                            false,
2473                            al,
2474                            "al r7 r0 plus r12 LSL 29 PostIndex",
2475                            "al_r7_r0_plus_r12_LSL_29_PostIndex"},
2476                           {{al, r5, r4, minus, r12, ROR, 28, PreIndex},
2477                            false,
2478                            al,
2479                            "al r5 r4 minus r12 ROR 28 PreIndex",
2480                            "al_r5_r4_minus_r12_ROR_28_PreIndex"},
2481                           {{al, r1, r13, plus, r1, LSL, 12, PreIndex},
2482                            false,
2483                            al,
2484                            "al r1 r13 plus r1 LSL 12 PreIndex",
2485                            "al_r1_r13_plus_r1_LSL_12_PreIndex"},
2486                           {{al, r7, r9, minus, r11, ROR, 24, PostIndex},
2487                            false,
2488                            al,
2489                            "al r7 r9 minus r11 ROR 24 PostIndex",
2490                            "al_r7_r9_minus_r11_ROR_24_PostIndex"},
2491                           {{al, r4, r8, minus, r0, ROR, 6, PreIndex},
2492                            false,
2493                            al,
2494                            "al r4 r8 minus r0 ROR 6 PreIndex",
2495                            "al_r4_r8_minus_r0_ROR_6_PreIndex"},
2496                           {{al, r6, r9, plus, r9, ROR, 30, PreIndex},
2497                            false,
2498                            al,
2499                            "al r6 r9 plus r9 ROR 30 PreIndex",
2500                            "al_r6_r9_plus_r9_ROR_30_PreIndex"},
2501                           {{al, r1, r14, minus, r10, LSL, 4, PreIndex},
2502                            false,
2503                            al,
2504                            "al r1 r14 minus r10 LSL 4 PreIndex",
2505                            "al_r1_r14_minus_r10_LSL_4_PreIndex"},
2506                           {{al, r6, r0, minus, r13, ROR, 12, PreIndex},
2507                            false,
2508                            al,
2509                            "al r6 r0 minus r13 ROR 12 PreIndex",
2510                            "al_r6_r0_minus_r13_ROR_12_PreIndex"},
2511                           {{al, r1, r4, minus, r2, LSL, 23, PreIndex},
2512                            false,
2513                            al,
2514                            "al r1 r4 minus r2 LSL 23 PreIndex",
2515                            "al_r1_r4_minus_r2_LSL_23_PreIndex"},
2516                           {{al, r0, r12, minus, r11, ROR, 26, PostIndex},
2517                            false,
2518                            al,
2519                            "al r0 r12 minus r11 ROR 26 PostIndex",
2520                            "al_r0_r12_minus_r11_ROR_26_PostIndex"},
2521                           {{al, r5, r8, plus, r4, LSL, 31, PostIndex},
2522                            false,
2523                            al,
2524                            "al r5 r8 plus r4 LSL 31 PostIndex",
2525                            "al_r5_r8_plus_r4_LSL_31_PostIndex"},
2526                           {{al, r14, r11, plus, r10, LSL, 8, PreIndex},
2527                            false,
2528                            al,
2529                            "al r14 r11 plus r10 LSL 8 PreIndex",
2530                            "al_r14_r11_plus_r10_LSL_8_PreIndex"},
2531                           {{al, r4, r14, minus, r2, LSL, 31, PostIndex},
2532                            false,
2533                            al,
2534                            "al r4 r14 minus r2 LSL 31 PostIndex",
2535                            "al_r4_r14_minus_r2_LSL_31_PostIndex"},
2536                           {{al, r9, r6, plus, r11, LSL, 30, PostIndex},
2537                            false,
2538                            al,
2539                            "al r9 r6 plus r11 LSL 30 PostIndex",
2540                            "al_r9_r6_plus_r11_LSL_30_PostIndex"},
2541                           {{al, r14, r5, minus, r1, ROR, 9, PostIndex},
2542                            false,
2543                            al,
2544                            "al r14 r5 minus r1 ROR 9 PostIndex",
2545                            "al_r14_r5_minus_r1_ROR_9_PostIndex"},
2546                           {{al, r2, r8, minus, r14, ROR, 28, PreIndex},
2547                            false,
2548                            al,
2549                            "al r2 r8 minus r14 ROR 28 PreIndex",
2550                            "al_r2_r8_minus_r14_ROR_28_PreIndex"},
2551                           {{al, r0, r4, plus, r12, ROR, 8, PostIndex},
2552                            false,
2553                            al,
2554                            "al r0 r4 plus r12 ROR 8 PostIndex",
2555                            "al_r0_r4_plus_r12_ROR_8_PostIndex"},
2556                           {{al, r6, r12, minus, r10, LSL, 19, PostIndex},
2557                            false,
2558                            al,
2559                            "al r6 r12 minus r10 LSL 19 PostIndex",
2560                            "al_r6_r12_minus_r10_LSL_19_PostIndex"},
2561                           {{al, r7, r8, minus, r11, LSL, 9, PostIndex},
2562                            false,
2563                            al,
2564                            "al r7 r8 minus r11 LSL 9 PostIndex",
2565                            "al_r7_r8_minus_r11_LSL_9_PostIndex"},
2566                           {{al, r6, r4, plus, r4, ROR, 6, PostIndex},
2567                            false,
2568                            al,
2569                            "al r6 r4 plus r4 ROR 6 PostIndex",
2570                            "al_r6_r4_plus_r4_ROR_6_PostIndex"},
2571                           {{al, r12, r14, minus, r3, LSL, 19, PostIndex},
2572                            false,
2573                            al,
2574                            "al r12 r14 minus r3 LSL 19 PostIndex",
2575                            "al_r12_r14_minus_r3_LSL_19_PostIndex"},
2576                           {{al, r14, r4, plus, r14, ROR, 22, PostIndex},
2577                            false,
2578                            al,
2579                            "al r14 r4 plus r14 ROR 22 PostIndex",
2580                            "al_r14_r4_plus_r14_ROR_22_PostIndex"},
2581                           {{al, r2, r5, minus, r2, LSL, 15, PostIndex},
2582                            false,
2583                            al,
2584                            "al r2 r5 minus r2 LSL 15 PostIndex",
2585                            "al_r2_r5_minus_r2_LSL_15_PostIndex"},
2586                           {{al, r6, r5, minus, r12, ROR, 24, PreIndex},
2587                            false,
2588                            al,
2589                            "al r6 r5 minus r12 ROR 24 PreIndex",
2590                            "al_r6_r5_minus_r12_ROR_24_PreIndex"},
2591                           {{al, r0, r1, plus, r0, LSL, 8, PostIndex},
2592                            false,
2593                            al,
2594                            "al r0 r1 plus r0 LSL 8 PostIndex",
2595                            "al_r0_r1_plus_r0_LSL_8_PostIndex"},
2596                           {{al, r6, r3, plus, r10, LSL, 23, PostIndex},
2597                            false,
2598                            al,
2599                            "al r6 r3 plus r10 LSL 23 PostIndex",
2600                            "al_r6_r3_plus_r10_LSL_23_PostIndex"},
2601                           {{al, r10, r1, plus, r0, ROR, 15, PostIndex},
2602                            false,
2603                            al,
2604                            "al r10 r1 plus r0 ROR 15 PostIndex",
2605                            "al_r10_r1_plus_r0_ROR_15_PostIndex"},
2606                           {{al, r1, r14, plus, r8, ROR, 31, PostIndex},
2607                            false,
2608                            al,
2609                            "al r1 r14 plus r8 ROR 31 PostIndex",
2610                            "al_r1_r14_plus_r8_ROR_31_PostIndex"},
2611                           {{al, r14, r10, plus, r6, LSL, 6, PreIndex},
2612                            false,
2613                            al,
2614                            "al r14 r10 plus r6 LSL 6 PreIndex",
2615                            "al_r14_r10_plus_r6_LSL_6_PreIndex"},
2616                           {{al, r12, r2, plus, r10, ROR, 18, PostIndex},
2617                            false,
2618                            al,
2619                            "al r12 r2 plus r10 ROR 18 PostIndex",
2620                            "al_r12_r2_plus_r10_ROR_18_PostIndex"},
2621                           {{al, r4, r8, minus, r0, LSL, 9, PostIndex},
2622                            false,
2623                            al,
2624                            "al r4 r8 minus r0 LSL 9 PostIndex",
2625                            "al_r4_r8_minus_r0_LSL_9_PostIndex"},
2626                           {{al, r9, r3, plus, r3, ROR, 16, PreIndex},
2627                            false,
2628                            al,
2629                            "al r9 r3 plus r3 ROR 16 PreIndex",
2630                            "al_r9_r3_plus_r3_ROR_16_PreIndex"},
2631                           {{al, r1, r7, minus, r3, LSL, 2, PostIndex},
2632                            false,
2633                            al,
2634                            "al r1 r7 minus r3 LSL 2 PostIndex",
2635                            "al_r1_r7_minus_r3_LSL_2_PostIndex"},
2636                           {{al, r8, r13, plus, r14, ROR, 16, PreIndex},
2637                            false,
2638                            al,
2639                            "al r8 r13 plus r14 ROR 16 PreIndex",
2640                            "al_r8_r13_plus_r14_ROR_16_PreIndex"},
2641                           {{al, r3, r0, minus, r3, LSL, 30, PreIndex},
2642                            false,
2643                            al,
2644                            "al r3 r0 minus r3 LSL 30 PreIndex",
2645                            "al_r3_r0_minus_r3_LSL_30_PreIndex"},
2646                           {{al, r1, r11, plus, r13, ROR, 26, PostIndex},
2647                            false,
2648                            al,
2649                            "al r1 r11 plus r13 ROR 26 PostIndex",
2650                            "al_r1_r11_plus_r13_ROR_26_PostIndex"},
2651                           {{al, r3, r1, plus, r9, ROR, 3, PostIndex},
2652                            false,
2653                            al,
2654                            "al r3 r1 plus r9 ROR 3 PostIndex",
2655                            "al_r3_r1_plus_r9_ROR_3_PostIndex"},
2656                           {{al, r14, r11, minus, r4, ROR, 22, PostIndex},
2657                            false,
2658                            al,
2659                            "al r14 r11 minus r4 ROR 22 PostIndex",
2660                            "al_r14_r11_minus_r4_ROR_22_PostIndex"},
2661                           {{al, r3, r1, plus, r10, LSL, 29, PostIndex},
2662                            false,
2663                            al,
2664                            "al r3 r1 plus r10 LSL 29 PostIndex",
2665                            "al_r3_r1_plus_r10_LSL_29_PostIndex"},
2666                           {{al, r12, r6, plus, r13, ROR, 6, PostIndex},
2667                            false,
2668                            al,
2669                            "al r12 r6 plus r13 ROR 6 PostIndex",
2670                            "al_r12_r6_plus_r13_ROR_6_PostIndex"},
2671                           {{al, r12, r11, plus, r2, LSL, 19, PostIndex},
2672                            false,
2673                            al,
2674                            "al r12 r11 plus r2 LSL 19 PostIndex",
2675                            "al_r12_r11_plus_r2_LSL_19_PostIndex"},
2676                           {{al, r14, r10, plus, r4, LSL, 31, PostIndex},
2677                            false,
2678                            al,
2679                            "al r14 r10 plus r4 LSL 31 PostIndex",
2680                            "al_r14_r10_plus_r4_LSL_31_PostIndex"},
2681                           {{al, r1, r4, minus, r2, ROR, 28, PostIndex},
2682                            false,
2683                            al,
2684                            "al r1 r4 minus r2 ROR 28 PostIndex",
2685                            "al_r1_r4_minus_r2_ROR_28_PostIndex"},
2686                           {{al, r3, r4, minus, r6, ROR, 20, PreIndex},
2687                            false,
2688                            al,
2689                            "al r3 r4 minus r6 ROR 20 PreIndex",
2690                            "al_r3_r4_minus_r6_ROR_20_PreIndex"},
2691                           {{al, r6, r8, plus, r13, ROR, 11, PostIndex},
2692                            false,
2693                            al,
2694                            "al r6 r8 plus r13 ROR 11 PostIndex",
2695                            "al_r6_r8_plus_r13_ROR_11_PostIndex"},
2696                           {{al, r8, r0, plus, r14, LSL, 27, PreIndex},
2697                            false,
2698                            al,
2699                            "al r8 r0 plus r14 LSL 27 PreIndex",
2700                            "al_r8_r0_plus_r14_LSL_27_PreIndex"},
2701                           {{al, r10, r2, minus, r9, ROR, 3, PreIndex},
2702                            false,
2703                            al,
2704                            "al r10 r2 minus r9 ROR 3 PreIndex",
2705                            "al_r10_r2_minus_r9_ROR_3_PreIndex"},
2706                           {{al, r7, r9, minus, r3, ROR, 11, PostIndex},
2707                            false,
2708                            al,
2709                            "al r7 r9 minus r3 ROR 11 PostIndex",
2710                            "al_r7_r9_minus_r3_ROR_11_PostIndex"},
2711                           {{al, r12, r14, minus, r3, LSL, 24, PostIndex},
2712                            false,
2713                            al,
2714                            "al r12 r14 minus r3 LSL 24 PostIndex",
2715                            "al_r12_r14_minus_r3_LSL_24_PostIndex"},
2716                           {{al, r1, r6, plus, r8, LSL, 26, PreIndex},
2717                            false,
2718                            al,
2719                            "al r1 r6 plus r8 LSL 26 PreIndex",
2720                            "al_r1_r6_plus_r8_LSL_26_PreIndex"},
2721                           {{al, r12, r10, minus, r7, LSL, 11, PostIndex},
2722                            false,
2723                            al,
2724                            "al r12 r10 minus r7 LSL 11 PostIndex",
2725                            "al_r12_r10_minus_r7_LSL_11_PostIndex"},
2726                           {{al, r11, r2, minus, r8, LSL, 13, PreIndex},
2727                            false,
2728                            al,
2729                            "al r11 r2 minus r8 LSL 13 PreIndex",
2730                            "al_r11_r2_minus_r8_LSL_13_PreIndex"},
2731                           {{al, r13, r8, plus, r3, ROR, 9, PreIndex},
2732                            false,
2733                            al,
2734                            "al r13 r8 plus r3 ROR 9 PreIndex",
2735                            "al_r13_r8_plus_r3_ROR_9_PreIndex"},
2736                           {{al, r7, r4, minus, r10, ROR, 19, PostIndex},
2737                            false,
2738                            al,
2739                            "al r7 r4 minus r10 ROR 19 PostIndex",
2740                            "al_r7_r4_minus_r10_ROR_19_PostIndex"},
2741                           {{al, r7, r4, plus, r11, LSL, 8, PostIndex},
2742                            false,
2743                            al,
2744                            "al r7 r4 plus r11 LSL 8 PostIndex",
2745                            "al_r7_r4_plus_r11_LSL_8_PostIndex"},
2746                           {{al, r7, r3, plus, r8, ROR, 24, PostIndex},
2747                            false,
2748                            al,
2749                            "al r7 r3 plus r8 ROR 24 PostIndex",
2750                            "al_r7_r3_plus_r8_ROR_24_PostIndex"},
2751                           {{al, r5, r14, plus, r12, LSL, 9, PostIndex},
2752                            false,
2753                            al,
2754                            "al r5 r14 plus r12 LSL 9 PostIndex",
2755                            "al_r5_r14_plus_r12_LSL_9_PostIndex"},
2756                           {{al, r10, r1, minus, r5, LSL, 17, PostIndex},
2757                            false,
2758                            al,
2759                            "al r10 r1 minus r5 LSL 17 PostIndex",
2760                            "al_r10_r1_minus_r5_LSL_17_PostIndex"},
2761                           {{al, r10, r5, plus, r11, LSL, 26, PostIndex},
2762                            false,
2763                            al,
2764                            "al r10 r5 plus r11 LSL 26 PostIndex",
2765                            "al_r10_r5_plus_r11_LSL_26_PostIndex"},
2766                           {{al, r6, r0, plus, r2, ROR, 29, PostIndex},
2767                            false,
2768                            al,
2769                            "al r6 r0 plus r2 ROR 29 PostIndex",
2770                            "al_r6_r0_plus_r2_ROR_29_PostIndex"},
2771                           {{al, r14, r4, plus, r11, LSL, 4, PreIndex},
2772                            false,
2773                            al,
2774                            "al r14 r4 plus r11 LSL 4 PreIndex",
2775                            "al_r14_r4_plus_r11_LSL_4_PreIndex"},
2776                           {{al, r5, r0, minus, r14, LSL, 6, PreIndex},
2777                            false,
2778                            al,
2779                            "al r5 r0 minus r14 LSL 6 PreIndex",
2780                            "al_r5_r0_minus_r14_LSL_6_PreIndex"},
2781                           {{al, r2, r14, plus, r6, LSL, 17, PostIndex},
2782                            false,
2783                            al,
2784                            "al r2 r14 plus r6 LSL 17 PostIndex",
2785                            "al_r2_r14_plus_r6_LSL_17_PostIndex"},
2786                           {{al, r14, r0, minus, r0, LSL, 16, PostIndex},
2787                            false,
2788                            al,
2789                            "al r14 r0 minus r0 LSL 16 PostIndex",
2790                            "al_r14_r0_minus_r0_LSL_16_PostIndex"},
2791                           {{al, r6, r9, minus, r9, ROR, 7, PostIndex},
2792                            false,
2793                            al,
2794                            "al r6 r9 minus r9 ROR 7 PostIndex",
2795                            "al_r6_r9_minus_r9_ROR_7_PostIndex"},
2796                           {{al, r10, r1, minus, r13, LSL, 3, PreIndex},
2797                            false,
2798                            al,
2799                            "al r10 r1 minus r13 LSL 3 PreIndex",
2800                            "al_r10_r1_minus_r13_LSL_3_PreIndex"},
2801                           {{al, r13, r14, minus, r9, LSL, 21, PreIndex},
2802                            false,
2803                            al,
2804                            "al r13 r14 minus r9 LSL 21 PreIndex",
2805                            "al_r13_r14_minus_r9_LSL_21_PreIndex"},
2806                           {{al, r14, r11, plus, r8, LSL, 20, PostIndex},
2807                            false,
2808                            al,
2809                            "al r14 r11 plus r8 LSL 20 PostIndex",
2810                            "al_r14_r11_plus_r8_LSL_20_PostIndex"},
2811                           {{al, r1, r4, minus, r11, LSL, 4, PreIndex},
2812                            false,
2813                            al,
2814                            "al r1 r4 minus r11 LSL 4 PreIndex",
2815                            "al_r1_r4_minus_r11_LSL_4_PreIndex"},
2816                           {{al, r11, r14, minus, r5, LSL, 24, PostIndex},
2817                            false,
2818                            al,
2819                            "al r11 r14 minus r5 LSL 24 PostIndex",
2820                            "al_r11_r14_minus_r5_LSL_24_PostIndex"},
2821                           {{al, r3, r1, minus, r0, LSL, 8, PreIndex},
2822                            false,
2823                            al,
2824                            "al r3 r1 minus r0 LSL 8 PreIndex",
2825                            "al_r3_r1_minus_r0_LSL_8_PreIndex"},
2826                           {{al, r9, r13, plus, r12, LSL, 3, PostIndex},
2827                            false,
2828                            al,
2829                            "al r9 r13 plus r12 LSL 3 PostIndex",
2830                            "al_r9_r13_plus_r12_LSL_3_PostIndex"},
2831                           {{al, r6, r13, plus, r5, ROR, 7, PostIndex},
2832                            false,
2833                            al,
2834                            "al r6 r13 plus r5 ROR 7 PostIndex",
2835                            "al_r6_r13_plus_r5_ROR_7_PostIndex"},
2836                           {{al, r13, r4, minus, r7, ROR, 19, PreIndex},
2837                            false,
2838                            al,
2839                            "al r13 r4 minus r7 ROR 19 PreIndex",
2840                            "al_r13_r4_minus_r7_ROR_19_PreIndex"},
2841                           {{al, r12, r7, minus, r9, ROR, 2, PostIndex},
2842                            false,
2843                            al,
2844                            "al r12 r7 minus r9 ROR 2 PostIndex",
2845                            "al_r12_r7_minus_r9_ROR_2_PostIndex"},
2846                           {{al, r12, r4, plus, r4, ROR, 7, PreIndex},
2847                            false,
2848                            al,
2849                            "al r12 r4 plus r4 ROR 7 PreIndex",
2850                            "al_r12_r4_plus_r4_ROR_7_PreIndex"},
2851                           {{al, r6, r8, minus, r7, LSL, 1, PreIndex},
2852                            false,
2853                            al,
2854                            "al r6 r8 minus r7 LSL 1 PreIndex",
2855                            "al_r6_r8_minus_r7_LSL_1_PreIndex"},
2856                           {{al, r3, r7, minus, r2, LSL, 16, PostIndex},
2857                            false,
2858                            al,
2859                            "al r3 r7 minus r2 LSL 16 PostIndex",
2860                            "al_r3_r7_minus_r2_LSL_16_PostIndex"},
2861                           {{al, r9, r6, plus, r4, ROR, 16, PreIndex},
2862                            false,
2863                            al,
2864                            "al r9 r6 plus r4 ROR 16 PreIndex",
2865                            "al_r9_r6_plus_r4_ROR_16_PreIndex"},
2866                           {{al, r8, r9, minus, r2, LSL, 15, PostIndex},
2867                            false,
2868                            al,
2869                            "al r8 r9 minus r2 LSL 15 PostIndex",
2870                            "al_r8_r9_minus_r2_LSL_15_PostIndex"},
2871                           {{al, r0, r12, minus, r0, ROR, 31, PostIndex},
2872                            false,
2873                            al,
2874                            "al r0 r12 minus r0 ROR 31 PostIndex",
2875                            "al_r0_r12_minus_r0_ROR_31_PostIndex"},
2876                           {{al, r6, r9, plus, r0, LSL, 15, PostIndex},
2877                            false,
2878                            al,
2879                            "al r6 r9 plus r0 LSL 15 PostIndex",
2880                            "al_r6_r9_plus_r0_LSL_15_PostIndex"},
2881                           {{al, r0, r2, minus, r13, ROR, 5, PostIndex},
2882                            false,
2883                            al,
2884                            "al r0 r2 minus r13 ROR 5 PostIndex",
2885                            "al_r0_r2_minus_r13_ROR_5_PostIndex"},
2886                           {{al, r11, r4, minus, r5, ROR, 30, PreIndex},
2887                            false,
2888                            al,
2889                            "al r11 r4 minus r5 ROR 30 PreIndex",
2890                            "al_r11_r4_minus_r5_ROR_30_PreIndex"},
2891                           {{al, r2, r11, minus, r5, LSL, 16, PostIndex},
2892                            false,
2893                            al,
2894                            "al r2 r11 minus r5 LSL 16 PostIndex",
2895                            "al_r2_r11_minus_r5_LSL_16_PostIndex"},
2896                           {{al, r8, r2, minus, r0, ROR, 25, PreIndex},
2897                            false,
2898                            al,
2899                            "al r8 r2 minus r0 ROR 25 PreIndex",
2900                            "al_r8_r2_minus_r0_ROR_25_PreIndex"},
2901                           {{al, r6, r1, minus, r7, LSL, 11, PreIndex},
2902                            false,
2903                            al,
2904                            "al r6 r1 minus r7 LSL 11 PreIndex",
2905                            "al_r6_r1_minus_r7_LSL_11_PreIndex"},
2906                           {{al, r7, r11, minus, r5, LSL, 4, PreIndex},
2907                            false,
2908                            al,
2909                            "al r7 r11 minus r5 LSL 4 PreIndex",
2910                            "al_r7_r11_minus_r5_LSL_4_PreIndex"},
2911                           {{al, r6, r11, plus, r5, LSL, 17, PostIndex},
2912                            false,
2913                            al,
2914                            "al r6 r11 plus r5 LSL 17 PostIndex",
2915                            "al_r6_r11_plus_r5_LSL_17_PostIndex"},
2916                           {{al, r9, r4, minus, r2, LSL, 29, PostIndex},
2917                            false,
2918                            al,
2919                            "al r9 r4 minus r2 LSL 29 PostIndex",
2920                            "al_r9_r4_minus_r2_LSL_29_PostIndex"},
2921                           {{al, r14, r5, minus, r0, ROR, 26, PostIndex},
2922                            false,
2923                            al,
2924                            "al r14 r5 minus r0 ROR 26 PostIndex",
2925                            "al_r14_r5_minus_r0_ROR_26_PostIndex"},
2926                           {{al, r5, r11, plus, r0, ROR, 27, PostIndex},
2927                            false,
2928                            al,
2929                            "al r5 r11 plus r0 ROR 27 PostIndex",
2930                            "al_r5_r11_plus_r0_ROR_27_PostIndex"},
2931                           {{al, r1, r9, minus, r11, ROR, 8, PostIndex},
2932                            false,
2933                            al,
2934                            "al r1 r9 minus r11 ROR 8 PostIndex",
2935                            "al_r1_r9_minus_r11_ROR_8_PostIndex"},
2936                           {{al, r7, r0, plus, r14, ROR, 11, PostIndex},
2937                            false,
2938                            al,
2939                            "al r7 r0 plus r14 ROR 11 PostIndex",
2940                            "al_r7_r0_plus_r14_ROR_11_PostIndex"},
2941                           {{al, r7, r0, minus, r9, LSL, 9, PreIndex},
2942                            false,
2943                            al,
2944                            "al r7 r0 minus r9 LSL 9 PreIndex",
2945                            "al_r7_r0_minus_r9_LSL_9_PreIndex"},
2946                           {{al, r4, r3, plus, r10, LSL, 6, PostIndex},
2947                            false,
2948                            al,
2949                            "al r4 r3 plus r10 LSL 6 PostIndex",
2950                            "al_r4_r3_plus_r10_LSL_6_PostIndex"},
2951                           {{al, r10, r0, minus, r5, ROR, 14, PostIndex},
2952                            false,
2953                            al,
2954                            "al r10 r0 minus r5 ROR 14 PostIndex",
2955                            "al_r10_r0_minus_r5_ROR_14_PostIndex"},
2956                           {{al, r1, r2, plus, r13, LSL, 17, PostIndex},
2957                            false,
2958                            al,
2959                            "al r1 r2 plus r13 LSL 17 PostIndex",
2960                            "al_r1_r2_plus_r13_LSL_17_PostIndex"},
2961                           {{al, r11, r2, plus, r9, ROR, 22, PostIndex},
2962                            false,
2963                            al,
2964                            "al r11 r2 plus r9 ROR 22 PostIndex",
2965                            "al_r11_r2_plus_r9_ROR_22_PostIndex"},
2966                           {{al, r2, r9, plus, r3, LSL, 19, PostIndex},
2967                            false,
2968                            al,
2969                            "al r2 r9 plus r3 LSL 19 PostIndex",
2970                            "al_r2_r9_plus_r3_LSL_19_PostIndex"},
2971                           {{al, r7, r3, plus, r4, ROR, 23, PostIndex},
2972                            false,
2973                            al,
2974                            "al r7 r3 plus r4 ROR 23 PostIndex",
2975                            "al_r7_r3_plus_r4_ROR_23_PostIndex"},
2976                           {{al, r2, r9, plus, r11, LSL, 8, PostIndex},
2977                            false,
2978                            al,
2979                            "al r2 r9 plus r11 LSL 8 PostIndex",
2980                            "al_r2_r9_plus_r11_LSL_8_PostIndex"},
2981                           {{al, r5, r13, minus, r1, ROR, 15, PreIndex},
2982                            false,
2983                            al,
2984                            "al r5 r13 minus r1 ROR 15 PreIndex",
2985                            "al_r5_r13_minus_r1_ROR_15_PreIndex"},
2986                           {{al, r8, r12, plus, r2, LSL, 15, PreIndex},
2987                            false,
2988                            al,
2989                            "al r8 r12 plus r2 LSL 15 PreIndex",
2990                            "al_r8_r12_plus_r2_LSL_15_PreIndex"},
2991                           {{al, r7, r1, plus, r13, LSL, 24, PreIndex},
2992                            false,
2993                            al,
2994                            "al r7 r1 plus r13 LSL 24 PreIndex",
2995                            "al_r7_r1_plus_r13_LSL_24_PreIndex"},
2996                           {{al, r0, r9, minus, r1, ROR, 13, PostIndex},
2997                            false,
2998                            al,
2999                            "al r0 r9 minus r1 ROR 13 PostIndex",
3000                            "al_r0_r9_minus_r1_ROR_13_PostIndex"},
3001                           {{al, r5, r9, minus, r1, LSL, 1, PostIndex},
3002                            false,
3003                            al,
3004                            "al r5 r9 minus r1 LSL 1 PostIndex",
3005                            "al_r5_r9_minus_r1_LSL_1_PostIndex"},
3006                           {{al, r3, r4, minus, r2, LSL, 4, PreIndex},
3007                            false,
3008                            al,
3009                            "al r3 r4 minus r2 LSL 4 PreIndex",
3010                            "al_r3_r4_minus_r2_LSL_4_PreIndex"},
3011                           {{al, r3, r10, minus, r6, ROR, 5, PreIndex},
3012                            false,
3013                            al,
3014                            "al r3 r10 minus r6 ROR 5 PreIndex",
3015                            "al_r3_r10_minus_r6_ROR_5_PreIndex"},
3016                           {{al, r2, r14, minus, r6, ROR, 16, PreIndex},
3017                            false,
3018                            al,
3019                            "al r2 r14 minus r6 ROR 16 PreIndex",
3020                            "al_r2_r14_minus_r6_ROR_16_PreIndex"},
3021                           {{al, r2, r1, plus, r14, ROR, 3, PostIndex},
3022                            false,
3023                            al,
3024                            "al r2 r1 plus r14 ROR 3 PostIndex",
3025                            "al_r2_r1_plus_r14_ROR_3_PostIndex"},
3026                           {{al, r6, r2, plus, r2, LSL, 22, PreIndex},
3027                            false,
3028                            al,
3029                            "al r6 r2 plus r2 LSL 22 PreIndex",
3030                            "al_r6_r2_plus_r2_LSL_22_PreIndex"},
3031                           {{al, r5, r7, plus, r4, ROR, 3, PostIndex},
3032                            false,
3033                            al,
3034                            "al r5 r7 plus r4 ROR 3 PostIndex",
3035                            "al_r5_r7_plus_r4_ROR_3_PostIndex"},
3036                           {{al, r12, r9, plus, r6, ROR, 3, PreIndex},
3037                            false,
3038                            al,
3039                            "al r12 r9 plus r6 ROR 3 PreIndex",
3040                            "al_r12_r9_plus_r6_ROR_3_PreIndex"},
3041                           {{al, r3, r7, plus, r10, ROR, 29, PreIndex},
3042                            false,
3043                            al,
3044                            "al r3 r7 plus r10 ROR 29 PreIndex",
3045                            "al_r3_r7_plus_r10_ROR_29_PreIndex"},
3046                           {{al, r2, r0, minus, r9, ROR, 9, PreIndex},
3047                            false,
3048                            al,
3049                            "al r2 r0 minus r9 ROR 9 PreIndex",
3050                            "al_r2_r0_minus_r9_ROR_9_PreIndex"},
3051                           {{al, r7, r12, plus, r7, LSL, 3, PreIndex},
3052                            false,
3053                            al,
3054                            "al r7 r12 plus r7 LSL 3 PreIndex",
3055                            "al_r7_r12_plus_r7_LSL_3_PreIndex"},
3056                           {{al, r7, r5, plus, r10, LSL, 15, PostIndex},
3057                            false,
3058                            al,
3059                            "al r7 r5 plus r10 LSL 15 PostIndex",
3060                            "al_r7_r5_plus_r10_LSL_15_PostIndex"},
3061                           {{al, r14, r4, minus, r6, ROR, 13, PreIndex},
3062                            false,
3063                            al,
3064                            "al r14 r4 minus r6 ROR 13 PreIndex",
3065                            "al_r14_r4_minus_r6_ROR_13_PreIndex"},
3066                           {{al, r0, r6, plus, r7, ROR, 27, PreIndex},
3067                            false,
3068                            al,
3069                            "al r0 r6 plus r7 ROR 27 PreIndex",
3070                            "al_r0_r6_plus_r7_ROR_27_PreIndex"},
3071                           {{al, r0, r14, plus, r13, ROR, 23, PreIndex},
3072                            false,
3073                            al,
3074                            "al r0 r14 plus r13 ROR 23 PreIndex",
3075                            "al_r0_r14_plus_r13_ROR_23_PreIndex"},
3076                           {{al, r9, r5, plus, r1, LSL, 8, PreIndex},
3077                            false,
3078                            al,
3079                            "al r9 r5 plus r1 LSL 8 PreIndex",
3080                            "al_r9_r5_plus_r1_LSL_8_PreIndex"},
3081                           {{al, r8, r3, plus, r7, LSL, 12, PostIndex},
3082                            false,
3083                            al,
3084                            "al r8 r3 plus r7 LSL 12 PostIndex",
3085                            "al_r8_r3_plus_r7_LSL_12_PostIndex"},
3086                           {{al, r2, r5, plus, r3, LSL, 16, PostIndex},
3087                            false,
3088                            al,
3089                            "al r2 r5 plus r3 LSL 16 PostIndex",
3090                            "al_r2_r5_plus_r3_LSL_16_PostIndex"},
3091                           {{al, r4, r12, minus, r7, LSL, 8, PostIndex},
3092                            false,
3093                            al,
3094                            "al r4 r12 minus r7 LSL 8 PostIndex",
3095                            "al_r4_r12_minus_r7_LSL_8_PostIndex"},
3096                           {{al, r0, r7, minus, r5, LSL, 6, PostIndex},
3097                            false,
3098                            al,
3099                            "al r0 r7 minus r5 LSL 6 PostIndex",
3100                            "al_r0_r7_minus_r5_LSL_6_PostIndex"},
3101                           {{al, r9, r4, plus, r12, ROR, 14, PreIndex},
3102                            false,
3103                            al,
3104                            "al r9 r4 plus r12 ROR 14 PreIndex",
3105                            "al_r9_r4_plus_r12_ROR_14_PreIndex"},
3106                           {{al, r6, r2, minus, r14, LSL, 8, PostIndex},
3107                            false,
3108                            al,
3109                            "al r6 r2 minus r14 LSL 8 PostIndex",
3110                            "al_r6_r2_minus_r14_LSL_8_PostIndex"},
3111                           {{al, r6, r12, minus, r9, ROR, 14, PostIndex},
3112                            false,
3113                            al,
3114                            "al r6 r12 minus r9 ROR 14 PostIndex",
3115                            "al_r6_r12_minus_r9_ROR_14_PostIndex"},
3116                           {{al, r13, r7, minus, r9, LSL, 3, PreIndex},
3117                            false,
3118                            al,
3119                            "al r13 r7 minus r9 LSL 3 PreIndex",
3120                            "al_r13_r7_minus_r9_LSL_3_PreIndex"},
3121                           {{al, r13, r1, plus, r13, ROR, 20, PostIndex},
3122                            false,
3123                            al,
3124                            "al r13 r1 plus r13 ROR 20 PostIndex",
3125                            "al_r13_r1_plus_r13_ROR_20_PostIndex"},
3126                           {{al, r8, r11, minus, r6, ROR, 4, PreIndex},
3127                            false,
3128                            al,
3129                            "al r8 r11 minus r6 ROR 4 PreIndex",
3130                            "al_r8_r11_minus_r6_ROR_4_PreIndex"},
3131                           {{al, r0, r14, plus, r8, ROR, 17, PostIndex},
3132                            false,
3133                            al,
3134                            "al r0 r14 plus r8 ROR 17 PostIndex",
3135                            "al_r0_r14_plus_r8_ROR_17_PostIndex"},
3136                           {{al, r12, r9, plus, r10, LSL, 9, PreIndex},
3137                            false,
3138                            al,
3139                            "al r12 r9 plus r10 LSL 9 PreIndex",
3140                            "al_r12_r9_plus_r10_LSL_9_PreIndex"},
3141                           {{al, r10, r13, plus, r1, LSL, 18, PostIndex},
3142                            false,
3143                            al,
3144                            "al r10 r13 plus r1 LSL 18 PostIndex",
3145                            "al_r10_r13_plus_r1_LSL_18_PostIndex"},
3146                           {{al, r10, r9, plus, r3, LSL, 13, PreIndex},
3147                            false,
3148                            al,
3149                            "al r10 r9 plus r3 LSL 13 PreIndex",
3150                            "al_r10_r9_plus_r3_LSL_13_PreIndex"},
3151                           {{al, r8, r14, plus, r5, LSL, 19, PreIndex},
3152                            false,
3153                            al,
3154                            "al r8 r14 plus r5 LSL 19 PreIndex",
3155                            "al_r8_r14_plus_r5_LSL_19_PreIndex"},
3156                           {{al, r2, r10, minus, r6, ROR, 21, PostIndex},
3157                            false,
3158                            al,
3159                            "al r2 r10 minus r6 ROR 21 PostIndex",
3160                            "al_r2_r10_minus_r6_ROR_21_PostIndex"},
3161                           {{al, r9, r6, plus, r5, LSL, 3, PreIndex},
3162                            false,
3163                            al,
3164                            "al r9 r6 plus r5 LSL 3 PreIndex",
3165                            "al_r9_r6_plus_r5_LSL_3_PreIndex"},
3166                           {{al, r13, r10, plus, r4, ROR, 29, PreIndex},
3167                            false,
3168                            al,
3169                            "al r13 r10 plus r4 ROR 29 PreIndex",
3170                            "al_r13_r10_plus_r4_ROR_29_PreIndex"},
3171                           {{al, r3, r4, plus, r5, LSL, 22, PostIndex},
3172                            false,
3173                            al,
3174                            "al r3 r4 plus r5 LSL 22 PostIndex",
3175                            "al_r3_r4_plus_r5_LSL_22_PostIndex"},
3176                           {{al, r0, r5, minus, r10, LSL, 11, PreIndex},
3177                            false,
3178                            al,
3179                            "al r0 r5 minus r10 LSL 11 PreIndex",
3180                            "al_r0_r5_minus_r10_LSL_11_PreIndex"},
3181                           {{al, r11, r12, minus, r14, ROR, 30, PostIndex},
3182                            false,
3183                            al,
3184                            "al r11 r12 minus r14 ROR 30 PostIndex",
3185                            "al_r11_r12_minus_r14_ROR_30_PostIndex"},
3186                           {{al, r12, r14, minus, r10, LSL, 23, PostIndex},
3187                            false,
3188                            al,
3189                            "al r12 r14 minus r10 LSL 23 PostIndex",
3190                            "al_r12_r14_minus_r10_LSL_23_PostIndex"},
3191                           {{al, r3, r7, plus, r5, ROR, 5, PostIndex},
3192                            false,
3193                            al,
3194                            "al r3 r7 plus r5 ROR 5 PostIndex",
3195                            "al_r3_r7_plus_r5_ROR_5_PostIndex"},
3196                           {{al, r1, r0, minus, r14, LSL, 23, PostIndex},
3197                            false,
3198                            al,
3199                            "al r1 r0 minus r14 LSL 23 PostIndex",
3200                            "al_r1_r0_minus_r14_LSL_23_PostIndex"},
3201                           {{al, r14, r0, plus, r13, LSL, 16, PostIndex},
3202                            false,
3203                            al,
3204                            "al r14 r0 plus r13 LSL 16 PostIndex",
3205                            "al_r14_r0_plus_r13_LSL_16_PostIndex"},
3206                           {{al, r1, r7, minus, r10, ROR, 31, PreIndex},
3207                            false,
3208                            al,
3209                            "al r1 r7 minus r10 ROR 31 PreIndex",
3210                            "al_r1_r7_minus_r10_ROR_31_PreIndex"},
3211                           {{al, r14, r10, minus, r12, LSL, 12, PostIndex},
3212                            false,
3213                            al,
3214                            "al r14 r10 minus r12 LSL 12 PostIndex",
3215                            "al_r14_r10_minus_r12_LSL_12_PostIndex"},
3216                           {{al, r14, r9, minus, r9, ROR, 18, PreIndex},
3217                            false,
3218                            al,
3219                            "al r14 r9 minus r9 ROR 18 PreIndex",
3220                            "al_r14_r9_minus_r9_ROR_18_PreIndex"},
3221                           {{al, r10, r12, plus, r2, ROR, 15, PreIndex},
3222                            false,
3223                            al,
3224                            "al r10 r12 plus r2 ROR 15 PreIndex",
3225                            "al_r10_r12_plus_r2_ROR_15_PreIndex"},
3226                           {{al, r13, r14, minus, r0, LSL, 11, PreIndex},
3227                            false,
3228                            al,
3229                            "al r13 r14 minus r0 LSL 11 PreIndex",
3230                            "al_r13_r14_minus_r0_LSL_11_PreIndex"},
3231                           {{al, r3, r5, plus, r6, ROR, 2, PreIndex},
3232                            false,
3233                            al,
3234                            "al r3 r5 plus r6 ROR 2 PreIndex",
3235                            "al_r3_r5_plus_r6_ROR_2_PreIndex"},
3236                           {{al, r9, r3, minus, r14, ROR, 27, PostIndex},
3237                            false,
3238                            al,
3239                            "al r9 r3 minus r14 ROR 27 PostIndex",
3240                            "al_r9_r3_minus_r14_ROR_27_PostIndex"},
3241                           {{al, r2, r10, minus, r7, ROR, 19, PostIndex},
3242                            false,
3243                            al,
3244                            "al r2 r10 minus r7 ROR 19 PostIndex",
3245                            "al_r2_r10_minus_r7_ROR_19_PostIndex"},
3246                           {{al, r12, r5, plus, r11, LSL, 29, PostIndex},
3247                            false,
3248                            al,
3249                            "al r12 r5 plus r11 LSL 29 PostIndex",
3250                            "al_r12_r5_plus_r11_LSL_29_PostIndex"},
3251                           {{al, r2, r9, minus, r12, ROR, 13, PreIndex},
3252                            false,
3253                            al,
3254                            "al r2 r9 minus r12 ROR 13 PreIndex",
3255                            "al_r2_r9_minus_r12_ROR_13_PreIndex"},
3256                           {{al, r11, r1, plus, r13, LSL, 26, PreIndex},
3257                            false,
3258                            al,
3259                            "al r11 r1 plus r13 LSL 26 PreIndex",
3260                            "al_r11_r1_plus_r13_LSL_26_PreIndex"},
3261                           {{al, r12, r0, minus, r1, ROR, 3, PreIndex},
3262                            false,
3263                            al,
3264                            "al r12 r0 minus r1 ROR 3 PreIndex",
3265                            "al_r12_r0_minus_r1_ROR_3_PreIndex"},
3266                           {{al, r11, r14, plus, r4, LSL, 19, PreIndex},
3267                            false,
3268                            al,
3269                            "al r11 r14 plus r4 LSL 19 PreIndex",
3270                            "al_r11_r14_plus_r4_LSL_19_PreIndex"},
3271                           {{al, r8, r12, plus, r3, ROR, 30, PreIndex},
3272                            false,
3273                            al,
3274                            "al r8 r12 plus r3 ROR 30 PreIndex",
3275                            "al_r8_r12_plus_r3_ROR_30_PreIndex"},
3276                           {{al, r6, r0, plus, r6, LSL, 24, PostIndex},
3277                            false,
3278                            al,
3279                            "al r6 r0 plus r6 LSL 24 PostIndex",
3280                            "al_r6_r0_plus_r6_LSL_24_PostIndex"},
3281                           {{al, r4, r6, minus, r11, ROR, 16, PreIndex},
3282                            false,
3283                            al,
3284                            "al r4 r6 minus r11 ROR 16 PreIndex",
3285                            "al_r4_r6_minus_r11_ROR_16_PreIndex"},
3286                           {{al, r8, r0, plus, r11, ROR, 8, PostIndex},
3287                            false,
3288                            al,
3289                            "al r8 r0 plus r11 ROR 8 PostIndex",
3290                            "al_r8_r0_plus_r11_ROR_8_PostIndex"},
3291                           {{al, r7, r5, plus, r1, ROR, 25, PostIndex},
3292                            false,
3293                            al,
3294                            "al r7 r5 plus r1 ROR 25 PostIndex",
3295                            "al_r7_r5_plus_r1_ROR_25_PostIndex"},
3296                           {{al, r1, r12, plus, r11, ROR, 12, PreIndex},
3297                            false,
3298                            al,
3299                            "al r1 r12 plus r11 ROR 12 PreIndex",
3300                            "al_r1_r12_plus_r11_ROR_12_PreIndex"},
3301                           {{al, r4, r2, plus, r14, ROR, 8, PostIndex},
3302                            false,
3303                            al,
3304                            "al r4 r2 plus r14 ROR 8 PostIndex",
3305                            "al_r4_r2_plus_r14_ROR_8_PostIndex"},
3306                           {{al, r5, r0, plus, r1, LSL, 10, PostIndex},
3307                            false,
3308                            al,
3309                            "al r5 r0 plus r1 LSL 10 PostIndex",
3310                            "al_r5_r0_plus_r1_LSL_10_PostIndex"},
3311                           {{al, r0, r11, minus, r4, ROR, 30, PostIndex},
3312                            false,
3313                            al,
3314                            "al r0 r11 minus r4 ROR 30 PostIndex",
3315                            "al_r0_r11_minus_r4_ROR_30_PostIndex"},
3316                           {{al, r14, r3, minus, r7, LSL, 2, PostIndex},
3317                            false,
3318                            al,
3319                            "al r14 r3 minus r7 LSL 2 PostIndex",
3320                            "al_r14_r3_minus_r7_LSL_2_PostIndex"},
3321                           {{al, r4, r8, plus, r10, LSL, 26, PostIndex},
3322                            false,
3323                            al,
3324                            "al r4 r8 plus r10 LSL 26 PostIndex",
3325                            "al_r4_r8_plus_r10_LSL_26_PostIndex"},
3326                           {{al, r12, r2, minus, r8, LSL, 21, PreIndex},
3327                            false,
3328                            al,
3329                            "al r12 r2 minus r8 LSL 21 PreIndex",
3330                            "al_r12_r2_minus_r8_LSL_21_PreIndex"},
3331                           {{al, r9, r14, minus, r14, LSL, 24, PreIndex},
3332                            false,
3333                            al,
3334                            "al r9 r14 minus r14 LSL 24 PreIndex",
3335                            "al_r9_r14_minus_r14_LSL_24_PreIndex"},
3336                           {{al, r7, r13, minus, r11, LSL, 2, PostIndex},
3337                            false,
3338                            al,
3339                            "al r7 r13 minus r11 LSL 2 PostIndex",
3340                            "al_r7_r13_minus_r11_LSL_2_PostIndex"},
3341                           {{al, r0, r2, plus, r0, ROR, 30, PreIndex},
3342                            false,
3343                            al,
3344                            "al r0 r2 plus r0 ROR 30 PreIndex",
3345                            "al_r0_r2_plus_r0_ROR_30_PreIndex"},
3346                           {{al, r1, r6, minus, r0, ROR, 1, PreIndex},
3347                            false,
3348                            al,
3349                            "al r1 r6 minus r0 ROR 1 PreIndex",
3350                            "al_r1_r6_minus_r0_ROR_1_PreIndex"},
3351                           {{al, r6, r5, plus, r12, LSL, 4, PostIndex},
3352                            false,
3353                            al,
3354                            "al r6 r5 plus r12 LSL 4 PostIndex",
3355                            "al_r6_r5_plus_r12_LSL_4_PostIndex"},
3356                           {{al, r7, r9, plus, r13, LSL, 11, PostIndex},
3357                            false,
3358                            al,
3359                            "al r7 r9 plus r13 LSL 11 PostIndex",
3360                            "al_r7_r9_plus_r13_LSL_11_PostIndex"},
3361                           {{al, r5, r12, minus, r2, ROR, 5, PostIndex},
3362                            false,
3363                            al,
3364                            "al r5 r12 minus r2 ROR 5 PostIndex",
3365                            "al_r5_r12_minus_r2_ROR_5_PostIndex"},
3366                           {{al, r6, r7, plus, r14, LSL, 30, PreIndex},
3367                            false,
3368                            al,
3369                            "al r6 r7 plus r14 LSL 30 PreIndex",
3370                            "al_r6_r7_plus_r14_LSL_30_PreIndex"},
3371                           {{al, r2, r11, minus, r0, ROR, 20, PostIndex},
3372                            false,
3373                            al,
3374                            "al r2 r11 minus r0 ROR 20 PostIndex",
3375                            "al_r2_r11_minus_r0_ROR_20_PostIndex"},
3376                           {{al, r6, r2, minus, r10, ROR, 11, PostIndex},
3377                            false,
3378                            al,
3379                            "al r6 r2 minus r10 ROR 11 PostIndex",
3380                            "al_r6_r2_minus_r10_ROR_11_PostIndex"},
3381                           {{al, r3, r2, plus, r0, ROR, 4, PostIndex},
3382                            false,
3383                            al,
3384                            "al r3 r2 plus r0 ROR 4 PostIndex",
3385                            "al_r3_r2_plus_r0_ROR_4_PostIndex"},
3386                           {{al, r8, r6, plus, r12, LSL, 11, PostIndex},
3387                            false,
3388                            al,
3389                            "al r8 r6 plus r12 LSL 11 PostIndex",
3390                            "al_r8_r6_plus_r12_LSL_11_PostIndex"},
3391                           {{al, r0, r6, minus, r4, ROR, 8, PreIndex},
3392                            false,
3393                            al,
3394                            "al r0 r6 minus r4 ROR 8 PreIndex",
3395                            "al_r0_r6_minus_r4_ROR_8_PreIndex"},
3396                           {{al, r10, r1, minus, r3, ROR, 5, PostIndex},
3397                            false,
3398                            al,
3399                            "al r10 r1 minus r3 ROR 5 PostIndex",
3400                            "al_r10_r1_minus_r3_ROR_5_PostIndex"},
3401                           {{al, r10, r4, plus, r12, LSL, 9, PreIndex},
3402                            false,
3403                            al,
3404                            "al r10 r4 plus r12 LSL 9 PreIndex",
3405                            "al_r10_r4_plus_r12_LSL_9_PreIndex"},
3406                           {{al, r1, r9, minus, r5, ROR, 7, PostIndex},
3407                            false,
3408                            al,
3409                            "al r1 r9 minus r5 ROR 7 PostIndex",
3410                            "al_r1_r9_minus_r5_ROR_7_PostIndex"},
3411                           {{al, r5, r7, plus, r1, ROR, 14, PreIndex},
3412                            false,
3413                            al,
3414                            "al r5 r7 plus r1 ROR 14 PreIndex",
3415                            "al_r5_r7_plus_r1_ROR_14_PreIndex"},
3416                           {{al, r9, r1, plus, r2, LSL, 20, PreIndex},
3417                            false,
3418                            al,
3419                            "al r9 r1 plus r2 LSL 20 PreIndex",
3420                            "al_r9_r1_plus_r2_LSL_20_PreIndex"},
3421                           {{al, r6, r8, minus, r5, ROR, 13, PostIndex},
3422                            false,
3423                            al,
3424                            "al r6 r8 minus r5 ROR 13 PostIndex",
3425                            "al_r6_r8_minus_r5_ROR_13_PostIndex"},
3426                           {{al, r4, r8, plus, r1, LSL, 17, PreIndex},
3427                            false,
3428                            al,
3429                            "al r4 r8 plus r1 LSL 17 PreIndex",
3430                            "al_r4_r8_plus_r1_LSL_17_PreIndex"},
3431                           {{al, r11, r13, plus, r6, LSL, 31, PostIndex},
3432                            false,
3433                            al,
3434                            "al r11 r13 plus r6 LSL 31 PostIndex",
3435                            "al_r11_r13_plus_r6_LSL_31_PostIndex"},
3436                           {{al, r9, r0, minus, r4, LSL, 7, PostIndex},
3437                            false,
3438                            al,
3439                            "al r9 r0 minus r4 LSL 7 PostIndex",
3440                            "al_r9_r0_minus_r4_LSL_7_PostIndex"},
3441                           {{al, r4, r1, minus, r6, LSL, 11, PreIndex},
3442                            false,
3443                            al,
3444                            "al r4 r1 minus r6 LSL 11 PreIndex",
3445                            "al_r4_r1_minus_r6_LSL_11_PreIndex"},
3446                           {{al, r10, r13, plus, r11, ROR, 14, PostIndex},
3447                            false,
3448                            al,
3449                            "al r10 r13 plus r11 ROR 14 PostIndex",
3450                            "al_r10_r13_plus_r11_ROR_14_PostIndex"},
3451                           {{al, r12, r11, plus, r9, ROR, 31, PreIndex},
3452                            false,
3453                            al,
3454                            "al r12 r11 plus r9 ROR 31 PreIndex",
3455                            "al_r12_r11_plus_r9_ROR_31_PreIndex"},
3456                           {{al, r9, r1, minus, r2, ROR, 5, PreIndex},
3457                            false,
3458                            al,
3459                            "al r9 r1 minus r2 ROR 5 PreIndex",
3460                            "al_r9_r1_minus_r2_ROR_5_PreIndex"},
3461                           {{al, r1, r10, minus, r4, LSL, 18, PostIndex},
3462                            false,
3463                            al,
3464                            "al r1 r10 minus r4 LSL 18 PostIndex",
3465                            "al_r1_r10_minus_r4_LSL_18_PostIndex"},
3466                           {{al, r5, r14, plus, r0, ROR, 24, PostIndex},
3467                            false,
3468                            al,
3469                            "al r5 r14 plus r0 ROR 24 PostIndex",
3470                            "al_r5_r14_plus_r0_ROR_24_PostIndex"},
3471                           {{al, r9, r10, plus, r1, ROR, 22, PreIndex},
3472                            false,
3473                            al,
3474                            "al r9 r10 plus r1 ROR 22 PreIndex",
3475                            "al_r9_r10_plus_r1_ROR_22_PreIndex"},
3476                           {{al, r12, r0, plus, r9, LSL, 9, PostIndex},
3477                            false,
3478                            al,
3479                            "al r12 r0 plus r9 LSL 9 PostIndex",
3480                            "al_r12_r0_plus_r9_LSL_9_PostIndex"},
3481                           {{al, r3, r11, plus, r11, ROR, 22, PreIndex},
3482                            false,
3483                            al,
3484                            "al r3 r11 plus r11 ROR 22 PreIndex",
3485                            "al_r3_r11_plus_r11_ROR_22_PreIndex"},
3486                           {{al, r0, r4, minus, r12, LSL, 23, PostIndex},
3487                            false,
3488                            al,
3489                            "al r0 r4 minus r12 LSL 23 PostIndex",
3490                            "al_r0_r4_minus_r12_LSL_23_PostIndex"},
3491                           {{al, r13, r3, minus, r6, ROR, 6, PostIndex},
3492                            false,
3493                            al,
3494                            "al r13 r3 minus r6 ROR 6 PostIndex",
3495                            "al_r13_r3_minus_r6_ROR_6_PostIndex"},
3496                           {{al, r10, r2, plus, r8, ROR, 10, PostIndex},
3497                            false,
3498                            al,
3499                            "al r10 r2 plus r8 ROR 10 PostIndex",
3500                            "al_r10_r2_plus_r8_ROR_10_PostIndex"},
3501                           {{al, r6, r13, minus, r6, ROR, 19, PostIndex},
3502                            false,
3503                            al,
3504                            "al r6 r13 minus r6 ROR 19 PostIndex",
3505                            "al_r6_r13_minus_r6_ROR_19_PostIndex"},
3506                           {{al, r4, r3, plus, r5, LSL, 20, PostIndex},
3507                            false,
3508                            al,
3509                            "al r4 r3 plus r5 LSL 20 PostIndex",
3510                            "al_r4_r3_plus_r5_LSL_20_PostIndex"},
3511                           {{al, r1, r12, minus, r6, ROR, 28, PostIndex},
3512                            false,
3513                            al,
3514                            "al r1 r12 minus r6 ROR 28 PostIndex",
3515                            "al_r1_r12_minus_r6_ROR_28_PostIndex"},
3516                           {{al, r2, r8, plus, r7, ROR, 17, PreIndex},
3517                            false,
3518                            al,
3519                            "al r2 r8 plus r7 ROR 17 PreIndex",
3520                            "al_r2_r8_plus_r7_ROR_17_PreIndex"},
3521                           {{al, r2, r5, minus, r10, ROR, 3, PreIndex},
3522                            false,
3523                            al,
3524                            "al r2 r5 minus r10 ROR 3 PreIndex",
3525                            "al_r2_r5_minus_r10_ROR_3_PreIndex"},
3526                           {{al, r9, r14, minus, r0, LSL, 16, PreIndex},
3527                            false,
3528                            al,
3529                            "al r9 r14 minus r0 LSL 16 PreIndex",
3530                            "al_r9_r14_minus_r0_LSL_16_PreIndex"},
3531                           {{al, r6, r3, minus, r10, ROR, 23, PreIndex},
3532                            false,
3533                            al,
3534                            "al r6 r3 minus r10 ROR 23 PreIndex",
3535                            "al_r6_r3_minus_r10_ROR_23_PreIndex"},
3536                           {{al, r0, r9, minus, r8, LSL, 11, PostIndex},
3537                            false,
3538                            al,
3539                            "al r0 r9 minus r8 LSL 11 PostIndex",
3540                            "al_r0_r9_minus_r8_LSL_11_PostIndex"},
3541                           {{al, r9, r2, plus, r14, LSL, 9, PreIndex},
3542                            false,
3543                            al,
3544                            "al r9 r2 plus r14 LSL 9 PreIndex",
3545                            "al_r9_r2_plus_r14_LSL_9_PreIndex"},
3546                           {{al, r13, r7, minus, r6, LSL, 19, PreIndex},
3547                            false,
3548                            al,
3549                            "al r13 r7 minus r6 LSL 19 PreIndex",
3550                            "al_r13_r7_minus_r6_LSL_19_PreIndex"},
3551                           {{al, r13, r4, minus, r2, LSL, 10, PostIndex},
3552                            false,
3553                            al,
3554                            "al r13 r4 minus r2 LSL 10 PostIndex",
3555                            "al_r13_r4_minus_r2_LSL_10_PostIndex"},
3556                           {{al, r9, r11, minus, r0, LSL, 3, PostIndex},
3557                            false,
3558                            al,
3559                            "al r9 r11 minus r0 LSL 3 PostIndex",
3560                            "al_r9_r11_minus_r0_LSL_3_PostIndex"},
3561                           {{al, r11, r13, plus, r8, LSL, 28, PreIndex},
3562                            false,
3563                            al,
3564                            "al r11 r13 plus r8 LSL 28 PreIndex",
3565                            "al_r11_r13_plus_r8_LSL_28_PreIndex"},
3566                           {{al, r7, r9, minus, r7, ROR, 13, PreIndex},
3567                            false,
3568                            al,
3569                            "al r7 r9 minus r7 ROR 13 PreIndex",
3570                            "al_r7_r9_minus_r7_ROR_13_PreIndex"},
3571                           {{al, r13, r7, plus, r5, LSL, 3, PostIndex},
3572                            false,
3573                            al,
3574                            "al r13 r7 plus r5 LSL 3 PostIndex",
3575                            "al_r13_r7_plus_r5_LSL_3_PostIndex"},
3576                           {{al, r14, r10, plus, r14, ROR, 1, PostIndex},
3577                            false,
3578                            al,
3579                            "al r14 r10 plus r14 ROR 1 PostIndex",
3580                            "al_r14_r10_plus_r14_ROR_1_PostIndex"},
3581                           {{al, r1, r6, plus, r14, ROR, 3, PostIndex},
3582                            false,
3583                            al,
3584                            "al r1 r6 plus r14 ROR 3 PostIndex",
3585                            "al_r1_r6_plus_r14_ROR_3_PostIndex"},
3586                           {{al, r12, r14, minus, r11, ROR, 17, PreIndex},
3587                            false,
3588                            al,
3589                            "al r12 r14 minus r11 ROR 17 PreIndex",
3590                            "al_r12_r14_minus_r11_ROR_17_PreIndex"},
3591                           {{al, r4, r5, minus, r10, LSL, 3, PostIndex},
3592                            false,
3593                            al,
3594                            "al r4 r5 minus r10 LSL 3 PostIndex",
3595                            "al_r4_r5_minus_r10_LSL_3_PostIndex"},
3596                           {{al, r0, r14, minus, r5, ROR, 16, PreIndex},
3597                            false,
3598                            al,
3599                            "al r0 r14 minus r5 ROR 16 PreIndex",
3600                            "al_r0_r14_minus_r5_ROR_16_PreIndex"}};
3601
3602// These headers each contain an array of `TestResult` with the reference output
3603// values. The reference arrays are names `kReference{mnemonic}`.
3604#include "aarch32/traces/assembler-cond-rd-memop-rs-shift-amount-1to31-a32-ldr.h"
3605#include "aarch32/traces/assembler-cond-rd-memop-rs-shift-amount-1to31-a32-ldrb.h"
3606#include "aarch32/traces/assembler-cond-rd-memop-rs-shift-amount-1to31-a32-str.h"
3607#include "aarch32/traces/assembler-cond-rd-memop-rs-shift-amount-1to31-a32-strb.h"
3608
3609
3610// The maximum number of errors to report in detail for each test.
3611const unsigned kErrorReportLimit = 8;
3612
3613typedef void (MacroAssembler::*Fn)(Condition cond,
3614                                   Register rd,
3615                                   const MemOperand& memop);
3616
3617void TestHelper(Fn instruction,
3618                const char* mnemonic,
3619                const TestResult reference[]) {
3620  unsigned total_error_count = 0;
3621  MacroAssembler masm(BUF_SIZE);
3622
3623  masm.UseA32();
3624
3625  for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
3626    // Values to pass to the macro-assembler.
3627    Condition cond = kTests[i].operands.cond;
3628    Register rd = kTests[i].operands.rd;
3629    Register rn = kTests[i].operands.rn;
3630    Sign sign = kTests[i].operands.sign;
3631    Register rm = kTests[i].operands.rm;
3632    ShiftType shift = kTests[i].operands.shift;
3633    uint32_t amount = kTests[i].operands.amount;
3634    AddrMode addr_mode = kTests[i].operands.addr_mode;
3635    MemOperand memop(rn, sign, rm, shift, amount, addr_mode);
3636
3637    int32_t start = masm.GetCursorOffset();
3638    {
3639      // We never generate more that 4 bytes, as IT instructions are only
3640      // allowed for narrow encodings.
3641      ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
3642      if (kTests[i].in_it_block) {
3643        masm.it(kTests[i].it_condition);
3644      }
3645      (masm.*instruction)(cond, rd, memop);
3646    }
3647    int32_t end = masm.GetCursorOffset();
3648
3649    const byte* result_ptr =
3650        masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
3651    VIXL_ASSERT(start < end);
3652    uint32_t result_size = end - start;
3653
3654    if (Test::generate_test_trace()) {
3655      // Print the result bytes.
3656      printf("const byte kInstruction_%s_%s[] = {\n",
3657             mnemonic,
3658             kTests[i].identifier);
3659      for (uint32_t j = 0; j < result_size; j++) {
3660        if (j == 0) {
3661          printf("  0x%02" PRIx8, result_ptr[j]);
3662        } else {
3663          printf(", 0x%02" PRIx8, result_ptr[j]);
3664        }
3665      }
3666      // This comment is meant to be used by external tools to validate
3667      // the encoding. We can parse the comment to figure out what
3668      // instruction this corresponds to.
3669      if (kTests[i].in_it_block) {
3670        printf(" // It %s; %s %s\n};\n",
3671               kTests[i].it_condition.GetName(),
3672               mnemonic,
3673               kTests[i].operands_description);
3674      } else {
3675        printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
3676      }
3677    } else {
3678      // Check we've emitted the exact same encoding as present in the
3679      // trace file. Only print up to `kErrorReportLimit` errors.
3680      if (((result_size != reference[i].size) ||
3681           (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
3682            0)) &&
3683          (++total_error_count <= kErrorReportLimit)) {
3684        printf("Error when testing \"%s\" with operands \"%s\":\n",
3685               mnemonic,
3686               kTests[i].operands_description);
3687        printf("  Expected: ");
3688        for (uint32_t j = 0; j < reference[i].size; j++) {
3689          if (j == 0) {
3690            printf("0x%02" PRIx8, reference[i].encoding[j]);
3691          } else {
3692            printf(", 0x%02" PRIx8, reference[i].encoding[j]);
3693          }
3694        }
3695        printf("\n");
3696        printf("  Found:    ");
3697        for (uint32_t j = 0; j < result_size; j++) {
3698          if (j == 0) {
3699            printf("0x%02" PRIx8, result_ptr[j]);
3700          } else {
3701            printf(", 0x%02" PRIx8, result_ptr[j]);
3702          }
3703        }
3704        printf("\n");
3705      }
3706    }
3707  }
3708
3709  masm.FinalizeCode();
3710
3711  if (Test::generate_test_trace()) {
3712    // Finalize the trace file by writing the final `TestResult` array
3713    // which links all generated instruction encodings.
3714    printf("const TestResult kReference%s[] = {\n", mnemonic);
3715    for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
3716      printf("  {\n");
3717      printf("    ARRAY_SIZE(kInstruction_%s_%s),\n",
3718             mnemonic,
3719             kTests[i].identifier);
3720      printf("    kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
3721      printf("  },\n");
3722    }
3723    printf("};\n");
3724  } else {
3725    if (total_error_count > kErrorReportLimit) {
3726      printf("%u other errors follow.\n",
3727             total_error_count - kErrorReportLimit);
3728    }
3729    // Crash if the test failed.
3730    VIXL_CHECK(total_error_count == 0);
3731  }
3732}
3733
3734// Instantiate tests for each instruction in the list.
3735#define TEST(mnemonic)                                                        \
3736  void Test_##mnemonic() {                                                    \
3737    TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic);   \
3738  }                                                                           \
3739  Test test_##mnemonic(                                                       \
3740      "AARCH32_ASSEMBLER_COND_RD_MEMOP_RS_SHIFT_AMOUNT_1TO31_A32_" #mnemonic, \
3741      &Test_##mnemonic);
3742FOREACH_INSTRUCTION(TEST)
3743#undef TEST
3744
3745}  // namespace
3746
3747}  // namespace aarch32
3748}  // namespace vixl
3749