1// Copyright 2016, VIXL authors
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are met:
6//
7//   * Redistributions of source code must retain the above copyright notice,
8//     this list of conditions and the following disclaimer.
9//   * Redistributions in binary form must reproduce the above copyright notice,
10//     this list of conditions and the following disclaimer in the documentation
11//     and/or other materials provided with the distribution.
12//   * Neither the name of ARM Limited nor the names of its contributors may be
13//     used to endorse or promote products derived from this software without
14//     specific prior written permission.
15//
16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27
28// -----------------------------------------------------------------------------
29// This file is auto generated from the
30// test/aarch32/config/template-assembler-aarch32.cc.in template file using
31// tools/generate_tests.py.
32//
33// PLEASE DO NOT EDIT.
34// -----------------------------------------------------------------------------
35
36
37#include "test-runner.h"
38
39#include "test-utils.h"
40#include "test-utils-aarch32.h"
41
42#include "aarch32/assembler-aarch32.h"
43#include "aarch32/macro-assembler-aarch32.h"
44
45#define BUF_SIZE (4096)
46
47namespace vixl {
48namespace aarch32 {
49
50// List of instruction mnemonics.
51#define FOREACH_INSTRUCTION(M) \
52  M(adc)                       \
53  M(adcs)                      \
54  M(add)                       \
55  M(adds)                      \
56  M(and_)                      \
57  M(ands)                      \
58  M(bic)                       \
59  M(bics)                      \
60  M(eor)                       \
61  M(eors)                      \
62  M(orr)                       \
63  M(orrs)                      \
64  M(rsb)                       \
65  M(rsbs)                      \
66  M(rsc)                       \
67  M(rscs)                      \
68  M(sbc)                       \
69  M(sbcs)                      \
70  M(sub)                       \
71  M(subs)
72
73
74// The following definitions are defined again in each generated test, therefore
75// we need to place them in an anomymous namespace. It expresses that they are
76// local to this file only, and the compiler is not allowed to share these types
77// across test files during template instantiation. Specifically, `Operands` has
78// various layouts across generated tests so it absolutely cannot be shared.
79
80#ifdef VIXL_INCLUDE_TARGET_A32
81namespace {
82
83// Values to be passed to the assembler to produce the instruction under test.
84struct Operands {
85  Condition cond;
86  Register rd;
87  Register rn;
88  Register rm;
89  ShiftType shift;
90  Register rs;
91};
92
93// This structure contains all data needed to test one specific
94// instruction.
95struct TestData {
96  // The `operands` field represents what to pass to the assembler to
97  // produce the instruction.
98  Operands operands;
99  // True if we need to generate an IT instruction for this test to be valid.
100  bool in_it_block;
101  // The condition to give the IT instruction, this will be set to "al" by
102  // default.
103  Condition it_condition;
104  // Description of the operands, used for error reporting.
105  const char* operands_description;
106  // Unique identifier, used for generating traces.
107  const char* identifier;
108};
109
110struct TestResult {
111  size_t size;
112  const byte* encoding;
113};
114
115// Each element of this array produce one instruction encoding.
116const TestData kTests[] = {{{mi, r8, r10, r8, LSL, r0},
117                            false,
118                            al,
119                            "mi r8 r10 r8 LSL r0",
120                            "mi_r8_r10_r8_LSL_r0"},
121                           {{cc, r11, r4, r13, ROR, r8},
122                            false,
123                            al,
124                            "cc r11 r4 r13 ROR r8",
125                            "cc_r11_r4_r13_ROR_r8"},
126                           {{al, r13, r11, r3, ROR, r4},
127                            false,
128                            al,
129                            "al r13 r11 r3 ROR r4",
130                            "al_r13_r11_r3_ROR_r4"},
131                           {{gt, r11, r5, r4, LSR, r11},
132                            false,
133                            al,
134                            "gt r11 r5 r4 LSR r11",
135                            "gt_r11_r5_r4_LSR_r11"},
136                           {{vs, r12, r0, r8, ROR, r13},
137                            false,
138                            al,
139                            "vs r12 r0 r8 ROR r13",
140                            "vs_r12_r0_r8_ROR_r13"},
141                           {{pl, r10, r12, r5, LSL, r5},
142                            false,
143                            al,
144                            "pl r10 r12 r5 LSL r5",
145                            "pl_r10_r12_r5_LSL_r5"},
146                           {{ls, r10, r2, r2, LSL, r9},
147                            false,
148                            al,
149                            "ls r10 r2 r2 LSL r9",
150                            "ls_r10_r2_r2_LSL_r9"},
151                           {{eq, r12, r7, r9, LSR, r7},
152                            false,
153                            al,
154                            "eq r12 r7 r9 LSR r7",
155                            "eq_r12_r7_r9_LSR_r7"},
156                           {{mi, r3, r13, r0, ROR, r11},
157                            false,
158                            al,
159                            "mi r3 r13 r0 ROR r11",
160                            "mi_r3_r13_r0_ROR_r11"},
161                           {{lt, r9, r0, r9, ASR, r12},
162                            false,
163                            al,
164                            "lt r9 r0 r9 ASR r12",
165                            "lt_r9_r0_r9_ASR_r12"},
166                           {{le, r12, r8, r14, ROR, r1},
167                            false,
168                            al,
169                            "le r12 r8 r14 ROR r1",
170                            "le_r12_r8_r14_ROR_r1"},
171                           {{cc, r7, r1, r14, LSL, r0},
172                            false,
173                            al,
174                            "cc r7 r1 r14 LSL r0",
175                            "cc_r7_r1_r14_LSL_r0"},
176                           {{le, r11, r13, r3, ROR, r6},
177                            false,
178                            al,
179                            "le r11 r13 r3 ROR r6",
180                            "le_r11_r13_r3_ROR_r6"},
181                           {{al, r5, r8, r9, ASR, r14},
182                            false,
183                            al,
184                            "al r5 r8 r9 ASR r14",
185                            "al_r5_r8_r9_ASR_r14"},
186                           {{hi, r1, r2, r7, ASR, r13},
187                            false,
188                            al,
189                            "hi r1 r2 r7 ASR r13",
190                            "hi_r1_r2_r7_ASR_r13"},
191                           {{al, r13, r8, r7, LSR, r12},
192                            false,
193                            al,
194                            "al r13 r8 r7 LSR r12",
195                            "al_r13_r8_r7_LSR_r12"},
196                           {{vc, r3, r6, r4, ASR, r4},
197                            false,
198                            al,
199                            "vc r3 r6 r4 ASR r4",
200                            "vc_r3_r6_r4_ASR_r4"},
201                           {{lt, r12, r4, r6, LSL, r5},
202                            false,
203                            al,
204                            "lt r12 r4 r6 LSL r5",
205                            "lt_r12_r4_r6_LSL_r5"},
206                           {{ls, r13, r5, r11, ROR, r8},
207                            false,
208                            al,
209                            "ls r13 r5 r11 ROR r8",
210                            "ls_r13_r5_r11_ROR_r8"},
211                           {{vc, r11, r10, r11, LSL, r9},
212                            false,
213                            al,
214                            "vc r11 r10 r11 LSL r9",
215                            "vc_r11_r10_r11_LSL_r9"},
216                           {{al, r13, r14, r10, LSR, r4},
217                            false,
218                            al,
219                            "al r13 r14 r10 LSR r4",
220                            "al_r13_r14_r10_LSR_r4"},
221                           {{ge, r12, r13, r6, ASR, r12},
222                            false,
223                            al,
224                            "ge r12 r13 r6 ASR r12",
225                            "ge_r12_r13_r6_ASR_r12"},
226                           {{ne, r14, r6, r12, ROR, r0},
227                            false,
228                            al,
229                            "ne r14 r6 r12 ROR r0",
230                            "ne_r14_r6_r12_ROR_r0"},
231                           {{ls, r13, r14, r14, ASR, r13},
232                            false,
233                            al,
234                            "ls r13 r14 r14 ASR r13",
235                            "ls_r13_r14_r14_ASR_r13"},
236                           {{lt, r10, r13, r7, ROR, r8},
237                            false,
238                            al,
239                            "lt r10 r13 r7 ROR r8",
240                            "lt_r10_r13_r7_ROR_r8"},
241                           {{lt, r8, r8, r9, ASR, r0},
242                            false,
243                            al,
244                            "lt r8 r8 r9 ASR r0",
245                            "lt_r8_r8_r9_ASR_r0"},
246                           {{ne, r7, r5, r4, LSR, r8},
247                            false,
248                            al,
249                            "ne r7 r5 r4 LSR r8",
250                            "ne_r7_r5_r4_LSR_r8"},
251                           {{mi, r11, r5, r1, LSL, r13},
252                            false,
253                            al,
254                            "mi r11 r5 r1 LSL r13",
255                            "mi_r11_r5_r1_LSL_r13"},
256                           {{ge, r14, r1, r2, LSL, r1},
257                            false,
258                            al,
259                            "ge r14 r1 r2 LSL r1",
260                            "ge_r14_r1_r2_LSL_r1"},
261                           {{ls, r6, r11, r4, ASR, r11},
262                            false,
263                            al,
264                            "ls r6 r11 r4 ASR r11",
265                            "ls_r6_r11_r4_ASR_r11"},
266                           {{hi, r11, r12, r4, LSR, r13},
267                            false,
268                            al,
269                            "hi r11 r12 r4 LSR r13",
270                            "hi_r11_r12_r4_LSR_r13"},
271                           {{le, r9, r3, r0, LSL, r7},
272                            false,
273                            al,
274                            "le r9 r3 r0 LSL r7",
275                            "le_r9_r3_r0_LSL_r7"},
276                           {{ls, r8, r7, r4, ASR, r3},
277                            false,
278                            al,
279                            "ls r8 r7 r4 ASR r3",
280                            "ls_r8_r7_r4_ASR_r3"},
281                           {{pl, r9, r13, r11, LSL, r7},
282                            false,
283                            al,
284                            "pl r9 r13 r11 LSL r7",
285                            "pl_r9_r13_r11_LSL_r7"},
286                           {{eq, r12, r7, r11, ASR, r3},
287                            false,
288                            al,
289                            "eq r12 r7 r11 ASR r3",
290                            "eq_r12_r7_r11_ASR_r3"},
291                           {{mi, r3, r9, r13, ROR, r10},
292                            false,
293                            al,
294                            "mi r3 r9 r13 ROR r10",
295                            "mi_r3_r9_r13_ROR_r10"},
296                           {{mi, r14, r8, r10, ROR, r10},
297                            false,
298                            al,
299                            "mi r14 r8 r10 ROR r10",
300                            "mi_r14_r8_r10_ROR_r10"},
301                           {{lt, r5, r3, r5, LSL, r1},
302                            false,
303                            al,
304                            "lt r5 r3 r5 LSL r1",
305                            "lt_r5_r3_r5_LSL_r1"},
306                           {{ne, r12, r6, r1, LSL, r7},
307                            false,
308                            al,
309                            "ne r12 r6 r1 LSL r7",
310                            "ne_r12_r6_r1_LSL_r7"},
311                           {{lt, r3, r6, r5, ASR, r1},
312                            false,
313                            al,
314                            "lt r3 r6 r5 ASR r1",
315                            "lt_r3_r6_r5_ASR_r1"},
316                           {{lt, r14, r0, r0, LSR, r11},
317                            false,
318                            al,
319                            "lt r14 r0 r0 LSR r11",
320                            "lt_r14_r0_r0_LSR_r11"},
321                           {{eq, r11, r10, r4, LSL, r14},
322                            false,
323                            al,
324                            "eq r11 r10 r4 LSL r14",
325                            "eq_r11_r10_r4_LSL_r14"},
326                           {{lt, r2, r14, r11, LSL, r9},
327                            false,
328                            al,
329                            "lt r2 r14 r11 LSL r9",
330                            "lt_r2_r14_r11_LSL_r9"},
331                           {{mi, r0, r6, r14, ASR, r11},
332                            false,
333                            al,
334                            "mi r0 r6 r14 ASR r11",
335                            "mi_r0_r6_r14_ASR_r11"},
336                           {{le, r4, r6, r3, LSR, r11},
337                            false,
338                            al,
339                            "le r4 r6 r3 LSR r11",
340                            "le_r4_r6_r3_LSR_r11"},
341                           {{cs, r2, r6, r1, ROR, r5},
342                            false,
343                            al,
344                            "cs r2 r6 r1 ROR r5",
345                            "cs_r2_r6_r1_ROR_r5"},
346                           {{ne, r10, r9, r10, ROR, r4},
347                            false,
348                            al,
349                            "ne r10 r9 r10 ROR r4",
350                            "ne_r10_r9_r10_ROR_r4"},
351                           {{pl, r7, r9, r11, LSR, r14},
352                            false,
353                            al,
354                            "pl r7 r9 r11 LSR r14",
355                            "pl_r7_r9_r11_LSR_r14"},
356                           {{pl, r11, r8, r3, ASR, r5},
357                            false,
358                            al,
359                            "pl r11 r8 r3 ASR r5",
360                            "pl_r11_r8_r3_ASR_r5"},
361                           {{le, r10, r4, r10, ROR, r8},
362                            false,
363                            al,
364                            "le r10 r4 r10 ROR r8",
365                            "le_r10_r4_r10_ROR_r8"},
366                           {{ne, r8, r14, r8, LSL, r5},
367                            false,
368                            al,
369                            "ne r8 r14 r8 LSL r5",
370                            "ne_r8_r14_r8_LSL_r5"},
371                           {{eq, r12, r5, r2, LSL, r11},
372                            false,
373                            al,
374                            "eq r12 r5 r2 LSL r11",
375                            "eq_r12_r5_r2_LSL_r11"},
376                           {{pl, r9, r9, r8, ASR, r2},
377                            false,
378                            al,
379                            "pl r9 r9 r8 ASR r2",
380                            "pl_r9_r9_r8_ASR_r2"},
381                           {{hi, r8, r12, r3, LSL, r5},
382                            false,
383                            al,
384                            "hi r8 r12 r3 LSL r5",
385                            "hi_r8_r12_r3_LSL_r5"},
386                           {{eq, r6, r5, r9, LSL, r3},
387                            false,
388                            al,
389                            "eq r6 r5 r9 LSL r3",
390                            "eq_r6_r5_r9_LSL_r3"},
391                           {{lt, r5, r1, r9, LSR, r6},
392                            false,
393                            al,
394                            "lt r5 r1 r9 LSR r6",
395                            "lt_r5_r1_r9_LSR_r6"},
396                           {{hi, r9, r9, r0, LSL, r5},
397                            false,
398                            al,
399                            "hi r9 r9 r0 LSL r5",
400                            "hi_r9_r9_r0_LSL_r5"},
401                           {{cs, r6, r6, r5, LSL, r8},
402                            false,
403                            al,
404                            "cs r6 r6 r5 LSL r8",
405                            "cs_r6_r6_r5_LSL_r8"},
406                           {{cs, r0, r1, r6, LSR, r12},
407                            false,
408                            al,
409                            "cs r0 r1 r6 LSR r12",
410                            "cs_r0_r1_r6_LSR_r12"},
411                           {{cc, r4, r6, r13, ASR, r6},
412                            false,
413                            al,
414                            "cc r4 r6 r13 ASR r6",
415                            "cc_r4_r6_r13_ASR_r6"},
416                           {{hi, r11, r8, r10, LSR, r5},
417                            false,
418                            al,
419                            "hi r11 r8 r10 LSR r5",
420                            "hi_r11_r8_r10_LSR_r5"},
421                           {{ls, r8, r1, r14, ROR, r14},
422                            false,
423                            al,
424                            "ls r8 r1 r14 ROR r14",
425                            "ls_r8_r1_r14_ROR_r14"},
426                           {{pl, r8, r2, r12, ASR, r7},
427                            false,
428                            al,
429                            "pl r8 r2 r12 ASR r7",
430                            "pl_r8_r2_r12_ASR_r7"},
431                           {{gt, r14, r7, r5, ROR, r11},
432                            false,
433                            al,
434                            "gt r14 r7 r5 ROR r11",
435                            "gt_r14_r7_r5_ROR_r11"},
436                           {{eq, r3, r6, r13, ROR, r0},
437                            false,
438                            al,
439                            "eq r3 r6 r13 ROR r0",
440                            "eq_r3_r6_r13_ROR_r0"},
441                           {{le, r4, r8, r8, ROR, r11},
442                            false,
443                            al,
444                            "le r4 r8 r8 ROR r11",
445                            "le_r4_r8_r8_ROR_r11"},
446                           {{ge, r2, r7, r5, ASR, r6},
447                            false,
448                            al,
449                            "ge r2 r7 r5 ASR r6",
450                            "ge_r2_r7_r5_ASR_r6"},
451                           {{cc, r8, r12, r5, LSL, r11},
452                            false,
453                            al,
454                            "cc r8 r12 r5 LSL r11",
455                            "cc_r8_r12_r5_LSL_r11"},
456                           {{vc, r11, r10, r3, ROR, r5},
457                            false,
458                            al,
459                            "vc r11 r10 r3 ROR r5",
460                            "vc_r11_r10_r3_ROR_r5"},
461                           {{vc, r11, r9, r11, LSL, r6},
462                            false,
463                            al,
464                            "vc r11 r9 r11 LSL r6",
465                            "vc_r11_r9_r11_LSL_r6"},
466                           {{lt, r6, r5, r0, ROR, r9},
467                            false,
468                            al,
469                            "lt r6 r5 r0 ROR r9",
470                            "lt_r6_r5_r0_ROR_r9"},
471                           {{cs, r13, r7, r11, ASR, r9},
472                            false,
473                            al,
474                            "cs r13 r7 r11 ASR r9",
475                            "cs_r13_r7_r11_ASR_r9"},
476                           {{cs, r9, r7, r9, ROR, r11},
477                            false,
478                            al,
479                            "cs r9 r7 r9 ROR r11",
480                            "cs_r9_r7_r9_ROR_r11"},
481                           {{ls, r14, r3, r2, ASR, r11},
482                            false,
483                            al,
484                            "ls r14 r3 r2 ASR r11",
485                            "ls_r14_r3_r2_ASR_r11"},
486                           {{vc, r0, r1, r1, LSR, r0},
487                            false,
488                            al,
489                            "vc r0 r1 r1 LSR r0",
490                            "vc_r0_r1_r1_LSR_r0"},
491                           {{mi, r10, r8, r8, LSR, r13},
492                            false,
493                            al,
494                            "mi r10 r8 r8 LSR r13",
495                            "mi_r10_r8_r8_LSR_r13"},
496                           {{pl, r8, r14, r3, LSL, r8},
497                            false,
498                            al,
499                            "pl r8 r14 r3 LSL r8",
500                            "pl_r8_r14_r3_LSL_r8"},
501                           {{ne, r6, r4, r1, LSL, r12},
502                            false,
503                            al,
504                            "ne r6 r4 r1 LSL r12",
505                            "ne_r6_r4_r1_LSL_r12"},
506                           {{lt, r2, r2, r7, ROR, r0},
507                            false,
508                            al,
509                            "lt r2 r2 r7 ROR r0",
510                            "lt_r2_r2_r7_ROR_r0"},
511                           {{lt, r2, r4, r13, ASR, r5},
512                            false,
513                            al,
514                            "lt r2 r4 r13 ASR r5",
515                            "lt_r2_r4_r13_ASR_r5"},
516                           {{eq, r8, r1, r2, ROR, r13},
517                            false,
518                            al,
519                            "eq r8 r1 r2 ROR r13",
520                            "eq_r8_r1_r2_ROR_r13"},
521                           {{lt, r1, r8, r10, LSR, r7},
522                            false,
523                            al,
524                            "lt r1 r8 r10 LSR r7",
525                            "lt_r1_r8_r10_LSR_r7"},
526                           {{cs, r7, r5, r9, LSL, r9},
527                            false,
528                            al,
529                            "cs r7 r5 r9 LSL r9",
530                            "cs_r7_r5_r9_LSL_r9"},
531                           {{mi, r8, r0, r6, LSL, r8},
532                            false,
533                            al,
534                            "mi r8 r0 r6 LSL r8",
535                            "mi_r8_r0_r6_LSL_r8"},
536                           {{cs, r7, r12, r3, ROR, r6},
537                            false,
538                            al,
539                            "cs r7 r12 r3 ROR r6",
540                            "cs_r7_r12_r3_ROR_r6"},
541                           {{vs, r13, r8, r13, LSR, r4},
542                            false,
543                            al,
544                            "vs r13 r8 r13 LSR r4",
545                            "vs_r13_r8_r13_LSR_r4"},
546                           {{cc, r4, r13, r7, ROR, r11},
547                            false,
548                            al,
549                            "cc r4 r13 r7 ROR r11",
550                            "cc_r4_r13_r7_ROR_r11"},
551                           {{ge, r10, r5, r9, LSR, r13},
552                            false,
553                            al,
554                            "ge r10 r5 r9 LSR r13",
555                            "ge_r10_r5_r9_LSR_r13"},
556                           {{cc, r0, r5, r9, ASR, r4},
557                            false,
558                            al,
559                            "cc r0 r5 r9 ASR r4",
560                            "cc_r0_r5_r9_ASR_r4"},
561                           {{cc, r1, r5, r8, LSR, r12},
562                            false,
563                            al,
564                            "cc r1 r5 r8 LSR r12",
565                            "cc_r1_r5_r8_LSR_r12"},
566                           {{ls, r12, r3, r5, LSL, r6},
567                            false,
568                            al,
569                            "ls r12 r3 r5 LSL r6",
570                            "ls_r12_r3_r5_LSL_r6"},
571                           {{cs, r10, r0, r4, ASR, r7},
572                            false,
573                            al,
574                            "cs r10 r0 r4 ASR r7",
575                            "cs_r10_r0_r4_ASR_r7"},
576                           {{ge, r10, r13, r14, ROR, r6},
577                            false,
578                            al,
579                            "ge r10 r13 r14 ROR r6",
580                            "ge_r10_r13_r14_ROR_r6"},
581                           {{al, r9, r0, r9, ROR, r3},
582                            false,
583                            al,
584                            "al r9 r0 r9 ROR r3",
585                            "al_r9_r0_r9_ROR_r3"},
586                           {{vs, r4, r5, r12, ASR, r6},
587                            false,
588                            al,
589                            "vs r4 r5 r12 ASR r6",
590                            "vs_r4_r5_r12_ASR_r6"},
591                           {{lt, r4, r1, r14, LSL, r12},
592                            false,
593                            al,
594                            "lt r4 r1 r14 LSL r12",
595                            "lt_r4_r1_r14_LSL_r12"},
596                           {{cs, r14, r11, r8, ROR, r4},
597                            false,
598                            al,
599                            "cs r14 r11 r8 ROR r4",
600                            "cs_r14_r11_r8_ROR_r4"},
601                           {{hi, r12, r0, r14, LSR, r11},
602                            false,
603                            al,
604                            "hi r12 r0 r14 LSR r11",
605                            "hi_r12_r0_r14_LSR_r11"},
606                           {{le, r8, r6, r4, ASR, r7},
607                            false,
608                            al,
609                            "le r8 r6 r4 ASR r7",
610                            "le_r8_r6_r4_ASR_r7"},
611                           {{mi, r13, r4, r14, LSR, r10},
612                            false,
613                            al,
614                            "mi r13 r4 r14 LSR r10",
615                            "mi_r13_r4_r14_LSR_r10"},
616                           {{vs, r11, r10, r5, LSL, r10},
617                            false,
618                            al,
619                            "vs r11 r10 r5 LSL r10",
620                            "vs_r11_r10_r5_LSL_r10"},
621                           {{cc, r4, r0, r5, LSR, r2},
622                            false,
623                            al,
624                            "cc r4 r0 r5 LSR r2",
625                            "cc_r4_r0_r5_LSR_r2"},
626                           {{pl, r9, r14, r0, LSL, r3},
627                            false,
628                            al,
629                            "pl r9 r14 r0 LSL r3",
630                            "pl_r9_r14_r0_LSL_r3"},
631                           {{vc, r7, r2, r14, ASR, r1},
632                            false,
633                            al,
634                            "vc r7 r2 r14 ASR r1",
635                            "vc_r7_r2_r14_ASR_r1"},
636                           {{gt, r4, r14, r1, ROR, r10},
637                            false,
638                            al,
639                            "gt r4 r14 r1 ROR r10",
640                            "gt_r4_r14_r1_ROR_r10"},
641                           {{lt, r6, r4, r10, LSL, r7},
642                            false,
643                            al,
644                            "lt r6 r4 r10 LSL r7",
645                            "lt_r6_r4_r10_LSL_r7"},
646                           {{hi, r1, r14, r5, LSL, r12},
647                            false,
648                            al,
649                            "hi r1 r14 r5 LSL r12",
650                            "hi_r1_r14_r5_LSL_r12"},
651                           {{cc, r14, r12, r4, ASR, r14},
652                            false,
653                            al,
654                            "cc r14 r12 r4 ASR r14",
655                            "cc_r14_r12_r4_ASR_r14"},
656                           {{cc, r0, r8, r5, ROR, r8},
657                            false,
658                            al,
659                            "cc r0 r8 r5 ROR r8",
660                            "cc_r0_r8_r5_ROR_r8"},
661                           {{gt, r9, r9, r0, ASR, r4},
662                            false,
663                            al,
664                            "gt r9 r9 r0 ASR r4",
665                            "gt_r9_r9_r0_ASR_r4"},
666                           {{mi, r8, r11, r12, ASR, r4},
667                            false,
668                            al,
669                            "mi r8 r11 r12 ASR r4",
670                            "mi_r8_r11_r12_ASR_r4"},
671                           {{vs, r0, r12, r0, LSR, r11},
672                            false,
673                            al,
674                            "vs r0 r12 r0 LSR r11",
675                            "vs_r0_r12_r0_LSR_r11"},
676                           {{ge, r0, r9, r1, ASR, r0},
677                            false,
678                            al,
679                            "ge r0 r9 r1 ASR r0",
680                            "ge_r0_r9_r1_ASR_r0"},
681                           {{al, r10, r11, r5, LSR, r4},
682                            false,
683                            al,
684                            "al r10 r11 r5 LSR r4",
685                            "al_r10_r11_r5_LSR_r4"},
686                           {{eq, r0, r6, r8, LSR, r10},
687                            false,
688                            al,
689                            "eq r0 r6 r8 LSR r10",
690                            "eq_r0_r6_r8_LSR_r10"},
691                           {{cc, r13, r12, r14, ROR, r9},
692                            false,
693                            al,
694                            "cc r13 r12 r14 ROR r9",
695                            "cc_r13_r12_r14_ROR_r9"},
696                           {{ls, r4, r11, r0, LSL, r14},
697                            false,
698                            al,
699                            "ls r4 r11 r0 LSL r14",
700                            "ls_r4_r11_r0_LSL_r14"},
701                           {{hi, r1, r6, r12, LSR, r13},
702                            false,
703                            al,
704                            "hi r1 r6 r12 LSR r13",
705                            "hi_r1_r6_r12_LSR_r13"},
706                           {{cs, r7, r11, r1, ASR, r5},
707                            false,
708                            al,
709                            "cs r7 r11 r1 ASR r5",
710                            "cs_r7_r11_r1_ASR_r5"},
711                           {{cc, r7, r5, r4, ASR, r11},
712                            false,
713                            al,
714                            "cc r7 r5 r4 ASR r11",
715                            "cc_r7_r5_r4_ASR_r11"},
716                           {{hi, r7, r2, r5, ROR, r5},
717                            false,
718                            al,
719                            "hi r7 r2 r5 ROR r5",
720                            "hi_r7_r2_r5_ROR_r5"},
721                           {{vc, r11, r9, r7, LSL, r14},
722                            false,
723                            al,
724                            "vc r11 r9 r7 LSL r14",
725                            "vc_r11_r9_r7_LSL_r14"},
726                           {{le, r12, r1, r3, ROR, r7},
727                            false,
728                            al,
729                            "le r12 r1 r3 ROR r7",
730                            "le_r12_r1_r3_ROR_r7"},
731                           {{al, r8, r14, r0, ASR, r12},
732                            false,
733                            al,
734                            "al r8 r14 r0 ASR r12",
735                            "al_r8_r14_r0_ASR_r12"},
736                           {{vc, r14, r3, r0, ROR, r1},
737                            false,
738                            al,
739                            "vc r14 r3 r0 ROR r1",
740                            "vc_r14_r3_r0_ROR_r1"},
741                           {{pl, r10, r8, r3, ROR, r4},
742                            false,
743                            al,
744                            "pl r10 r8 r3 ROR r4",
745                            "pl_r10_r8_r3_ROR_r4"},
746                           {{al, r9, r14, r12, LSL, r4},
747                            false,
748                            al,
749                            "al r9 r14 r12 LSL r4",
750                            "al_r9_r14_r12_LSL_r4"},
751                           {{vs, r8, r3, r14, ASR, r7},
752                            false,
753                            al,
754                            "vs r8 r3 r14 ASR r7",
755                            "vs_r8_r3_r14_ASR_r7"},
756                           {{hi, r4, r8, r13, LSL, r1},
757                            false,
758                            al,
759                            "hi r4 r8 r13 LSL r1",
760                            "hi_r4_r8_r13_LSL_r1"},
761                           {{al, r6, r11, r11, LSL, r14},
762                            false,
763                            al,
764                            "al r6 r11 r11 LSL r14",
765                            "al_r6_r11_r11_LSL_r14"},
766                           {{al, r7, r2, r4, LSR, r1},
767                            false,
768                            al,
769                            "al r7 r2 r4 LSR r1",
770                            "al_r7_r2_r4_LSR_r1"},
771                           {{vc, r5, r10, r3, ASR, r8},
772                            false,
773                            al,
774                            "vc r5 r10 r3 ASR r8",
775                            "vc_r5_r10_r3_ASR_r8"},
776                           {{cc, r3, r10, r9, ROR, r11},
777                            false,
778                            al,
779                            "cc r3 r10 r9 ROR r11",
780                            "cc_r3_r10_r9_ROR_r11"},
781                           {{eq, r11, r9, r8, LSL, r2},
782                            false,
783                            al,
784                            "eq r11 r9 r8 LSL r2",
785                            "eq_r11_r9_r8_LSL_r2"},
786                           {{mi, r6, r9, r5, ASR, r12},
787                            false,
788                            al,
789                            "mi r6 r9 r5 ASR r12",
790                            "mi_r6_r9_r5_ASR_r12"},
791                           {{hi, r6, r6, r0, ASR, r9},
792                            false,
793                            al,
794                            "hi r6 r6 r0 ASR r9",
795                            "hi_r6_r6_r0_ASR_r9"},
796                           {{ge, r12, r13, r1, LSL, r9},
797                            false,
798                            al,
799                            "ge r12 r13 r1 LSL r9",
800                            "ge_r12_r13_r1_LSL_r9"},
801                           {{le, r4, r9, r14, ASR, r2},
802                            false,
803                            al,
804                            "le r4 r9 r14 ASR r2",
805                            "le_r4_r9_r14_ASR_r2"},
806                           {{gt, r5, r3, r9, ROR, r5},
807                            false,
808                            al,
809                            "gt r5 r3 r9 ROR r5",
810                            "gt_r5_r3_r9_ROR_r5"},
811                           {{al, r14, r5, r13, ROR, r7},
812                            false,
813                            al,
814                            "al r14 r5 r13 ROR r7",
815                            "al_r14_r5_r13_ROR_r7"},
816                           {{lt, r2, r1, r14, ASR, r8},
817                            false,
818                            al,
819                            "lt r2 r1 r14 ASR r8",
820                            "lt_r2_r1_r14_ASR_r8"},
821                           {{al, r12, r7, r8, LSL, r11},
822                            false,
823                            al,
824                            "al r12 r7 r8 LSL r11",
825                            "al_r12_r7_r8_LSL_r11"},
826                           {{ne, r4, r12, r14, LSL, r1},
827                            false,
828                            al,
829                            "ne r4 r12 r14 LSL r1",
830                            "ne_r4_r12_r14_LSL_r1"},
831                           {{vs, r7, r14, r4, LSL, r6},
832                            false,
833                            al,
834                            "vs r7 r14 r4 LSL r6",
835                            "vs_r7_r14_r4_LSL_r6"},
836                           {{ge, r12, r5, r11, ASR, r4},
837                            false,
838                            al,
839                            "ge r12 r5 r11 ASR r4",
840                            "ge_r12_r5_r11_ASR_r4"},
841                           {{gt, r4, r10, r6, LSR, r6},
842                            false,
843                            al,
844                            "gt r4 r10 r6 LSR r6",
845                            "gt_r4_r10_r6_LSR_r6"},
846                           {{cc, r14, r8, r14, LSR, r8},
847                            false,
848                            al,
849                            "cc r14 r8 r14 LSR r8",
850                            "cc_r14_r8_r14_LSR_r8"},
851                           {{al, r1, r14, r11, LSR, r7},
852                            false,
853                            al,
854                            "al r1 r14 r11 LSR r7",
855                            "al_r1_r14_r11_LSR_r7"},
856                           {{pl, r13, r6, r5, ASR, r14},
857                            false,
858                            al,
859                            "pl r13 r6 r5 ASR r14",
860                            "pl_r13_r6_r5_ASR_r14"},
861                           {{cc, r10, r6, r9, ROR, r13},
862                            false,
863                            al,
864                            "cc r10 r6 r9 ROR r13",
865                            "cc_r10_r6_r9_ROR_r13"},
866                           {{ne, r0, r4, r7, ROR, r13},
867                            false,
868                            al,
869                            "ne r0 r4 r7 ROR r13",
870                            "ne_r0_r4_r7_ROR_r13"},
871                           {{vc, r12, r0, r14, LSL, r13},
872                            false,
873                            al,
874                            "vc r12 r0 r14 LSL r13",
875                            "vc_r12_r0_r14_LSL_r13"},
876                           {{al, r10, r13, r13, ROR, r5},
877                            false,
878                            al,
879                            "al r10 r13 r13 ROR r5",
880                            "al_r10_r13_r13_ROR_r5"},
881                           {{cs, r10, r3, r0, ROR, r7},
882                            false,
883                            al,
884                            "cs r10 r3 r0 ROR r7",
885                            "cs_r10_r3_r0_ROR_r7"},
886                           {{ge, r10, r14, r14, ROR, r6},
887                            false,
888                            al,
889                            "ge r10 r14 r14 ROR r6",
890                            "ge_r10_r14_r14_ROR_r6"},
891                           {{pl, r0, r10, r10, LSL, r4},
892                            false,
893                            al,
894                            "pl r0 r10 r10 LSL r4",
895                            "pl_r0_r10_r10_LSL_r4"},
896                           {{vs, r1, r2, r7, ASR, r6},
897                            false,
898                            al,
899                            "vs r1 r2 r7 ASR r6",
900                            "vs_r1_r2_r7_ASR_r6"},
901                           {{cs, r9, r11, r9, LSL, r9},
902                            false,
903                            al,
904                            "cs r9 r11 r9 LSL r9",
905                            "cs_r9_r11_r9_LSL_r9"},
906                           {{eq, r10, r8, r4, LSL, r6},
907                            false,
908                            al,
909                            "eq r10 r8 r4 LSL r6",
910                            "eq_r10_r8_r4_LSL_r6"},
911                           {{vc, r8, r5, r12, LSL, r8},
912                            false,
913                            al,
914                            "vc r8 r5 r12 LSL r8",
915                            "vc_r8_r5_r12_LSL_r8"},
916                           {{pl, r1, r13, r11, LSL, r8},
917                            false,
918                            al,
919                            "pl r1 r13 r11 LSL r8",
920                            "pl_r1_r13_r11_LSL_r8"},
921                           {{le, r9, r10, r5, ROR, r4},
922                            false,
923                            al,
924                            "le r9 r10 r5 ROR r4",
925                            "le_r9_r10_r5_ROR_r4"},
926                           {{vs, r8, r3, r0, ASR, r11},
927                            false,
928                            al,
929                            "vs r8 r3 r0 ASR r11",
930                            "vs_r8_r3_r0_ASR_r11"},
931                           {{hi, r12, r0, r13, LSL, r2},
932                            false,
933                            al,
934                            "hi r12 r0 r13 LSL r2",
935                            "hi_r12_r0_r13_LSL_r2"},
936                           {{lt, r4, r2, r8, LSL, r5},
937                            false,
938                            al,
939                            "lt r4 r2 r8 LSL r5",
940                            "lt_r4_r2_r8_LSL_r5"},
941                           {{ge, r9, r4, r13, LSL, r13},
942                            false,
943                            al,
944                            "ge r9 r4 r13 LSL r13",
945                            "ge_r9_r4_r13_LSL_r13"},
946                           {{ge, r0, r2, r1, ROR, r8},
947                            false,
948                            al,
949                            "ge r0 r2 r1 ROR r8",
950                            "ge_r0_r2_r1_ROR_r8"},
951                           {{le, r6, r13, r9, LSR, r0},
952                            false,
953                            al,
954                            "le r6 r13 r9 LSR r0",
955                            "le_r6_r13_r9_LSR_r0"},
956                           {{ls, r13, r7, r4, ASR, r3},
957                            false,
958                            al,
959                            "ls r13 r7 r4 ASR r3",
960                            "ls_r13_r7_r4_ASR_r3"},
961                           {{vc, r8, r13, r6, LSR, r14},
962                            false,
963                            al,
964                            "vc r8 r13 r6 LSR r14",
965                            "vc_r8_r13_r6_LSR_r14"},
966                           {{pl, r10, r5, r3, LSR, r9},
967                            false,
968                            al,
969                            "pl r10 r5 r3 LSR r9",
970                            "pl_r10_r5_r3_LSR_r9"},
971                           {{al, r6, r3, r14, LSR, r7},
972                            false,
973                            al,
974                            "al r6 r3 r14 LSR r7",
975                            "al_r6_r3_r14_LSR_r7"},
976                           {{cc, r3, r5, r3, ROR, r10},
977                            false,
978                            al,
979                            "cc r3 r5 r3 ROR r10",
980                            "cc_r3_r5_r3_ROR_r10"},
981                           {{cs, r4, r11, r2, LSR, r10},
982                            false,
983                            al,
984                            "cs r4 r11 r2 LSR r10",
985                            "cs_r4_r11_r2_LSR_r10"},
986                           {{lt, r6, r10, r5, ASR, r8},
987                            false,
988                            al,
989                            "lt r6 r10 r5 ASR r8",
990                            "lt_r6_r10_r5_ASR_r8"},
991                           {{ge, r0, r13, r10, ASR, r8},
992                            false,
993                            al,
994                            "ge r0 r13 r10 ASR r8",
995                            "ge_r0_r13_r10_ASR_r8"},
996                           {{cs, r8, r8, r0, LSL, r9},
997                            false,
998                            al,
999                            "cs r8 r8 r0 LSL r9",
1000                            "cs_r8_r8_r0_LSL_r9"},
1001                           {{gt, r1, r1, r1, ASR, r2},
1002                            false,
1003                            al,
1004                            "gt r1 r1 r1 ASR r2",
1005                            "gt_r1_r1_r1_ASR_r2"},
1006                           {{al, r5, r0, r14, ROR, r3},
1007                            false,
1008                            al,
1009                            "al r5 r0 r14 ROR r3",
1010                            "al_r5_r0_r14_ROR_r3"},
1011                           {{mi, r3, r9, r14, LSL, r9},
1012                            false,
1013                            al,
1014                            "mi r3 r9 r14 LSL r9",
1015                            "mi_r3_r9_r14_LSL_r9"},
1016                           {{ls, r9, r6, r5, LSL, r9},
1017                            false,
1018                            al,
1019                            "ls r9 r6 r5 LSL r9",
1020                            "ls_r9_r6_r5_LSL_r9"},
1021                           {{lt, r13, r3, r1, LSL, r13},
1022                            false,
1023                            al,
1024                            "lt r13 r3 r1 LSL r13",
1025                            "lt_r13_r3_r1_LSL_r13"},
1026                           {{lt, r9, r14, r3, ASR, r3},
1027                            false,
1028                            al,
1029                            "lt r9 r14 r3 ASR r3",
1030                            "lt_r9_r14_r3_ASR_r3"},
1031                           {{cc, r5, r4, r1, LSR, r0},
1032                            false,
1033                            al,
1034                            "cc r5 r4 r1 LSR r0",
1035                            "cc_r5_r4_r1_LSR_r0"},
1036                           {{cs, r9, r7, r8, ASR, r0},
1037                            false,
1038                            al,
1039                            "cs r9 r7 r8 ASR r0",
1040                            "cs_r9_r7_r8_ASR_r0"},
1041                           {{ge, r8, r6, r14, ROR, r7},
1042                            false,
1043                            al,
1044                            "ge r8 r6 r14 ROR r7",
1045                            "ge_r8_r6_r14_ROR_r7"},
1046                           {{le, r14, r8, r12, LSL, r0},
1047                            false,
1048                            al,
1049                            "le r14 r8 r12 LSL r0",
1050                            "le_r14_r8_r12_LSL_r0"},
1051                           {{mi, r0, r13, r14, ASR, r3},
1052                            false,
1053                            al,
1054                            "mi r0 r13 r14 ASR r3",
1055                            "mi_r0_r13_r14_ASR_r3"},
1056                           {{cs, r7, r4, r9, ROR, r8},
1057                            false,
1058                            al,
1059                            "cs r7 r4 r9 ROR r8",
1060                            "cs_r7_r4_r9_ROR_r8"},
1061                           {{ne, r4, r6, r11, ROR, r2},
1062                            false,
1063                            al,
1064                            "ne r4 r6 r11 ROR r2",
1065                            "ne_r4_r6_r11_ROR_r2"},
1066                           {{gt, r8, r8, r9, ROR, r12},
1067                            false,
1068                            al,
1069                            "gt r8 r8 r9 ROR r12",
1070                            "gt_r8_r8_r9_ROR_r12"},
1071                           {{hi, r1, r2, r0, LSR, r13},
1072                            false,
1073                            al,
1074                            "hi r1 r2 r0 LSR r13",
1075                            "hi_r1_r2_r0_LSR_r13"},
1076                           {{ge, r14, r12, r6, ASR, r5},
1077                            false,
1078                            al,
1079                            "ge r14 r12 r6 ASR r5",
1080                            "ge_r14_r12_r6_ASR_r5"},
1081                           {{ge, r5, r4, r7, LSR, r14},
1082                            false,
1083                            al,
1084                            "ge r5 r4 r7 LSR r14",
1085                            "ge_r5_r4_r7_LSR_r14"},
1086                           {{cc, r13, r11, r10, LSR, r2},
1087                            false,
1088                            al,
1089                            "cc r13 r11 r10 LSR r2",
1090                            "cc_r13_r11_r10_LSR_r2"},
1091                           {{mi, r3, r9, r14, LSR, r14},
1092                            false,
1093                            al,
1094                            "mi r3 r9 r14 LSR r14",
1095                            "mi_r3_r9_r14_LSR_r14"},
1096                           {{ne, r10, r3, r4, LSR, r3},
1097                            false,
1098                            al,
1099                            "ne r10 r3 r4 LSR r3",
1100                            "ne_r10_r3_r4_LSR_r3"},
1101                           {{ls, r14, r9, r6, LSL, r9},
1102                            false,
1103                            al,
1104                            "ls r14 r9 r6 LSL r9",
1105                            "ls_r14_r9_r6_LSL_r9"},
1106                           {{ls, r8, r2, r8, ROR, r7},
1107                            false,
1108                            al,
1109                            "ls r8 r2 r8 ROR r7",
1110                            "ls_r8_r2_r8_ROR_r7"},
1111                           {{ne, r2, r6, r3, ROR, r3},
1112                            false,
1113                            al,
1114                            "ne r2 r6 r3 ROR r3",
1115                            "ne_r2_r6_r3_ROR_r3"},
1116                           {{mi, r12, r3, r11, ASR, r11},
1117                            false,
1118                            al,
1119                            "mi r12 r3 r11 ASR r11",
1120                            "mi_r12_r3_r11_ASR_r11"},
1121                           {{le, r7, r10, r11, LSL, r9},
1122                            false,
1123                            al,
1124                            "le r7 r10 r11 LSL r9",
1125                            "le_r7_r10_r11_LSL_r9"},
1126                           {{al, r1, r2, r10, ROR, r8},
1127                            false,
1128                            al,
1129                            "al r1 r2 r10 ROR r8",
1130                            "al_r1_r2_r10_ROR_r8"},
1131                           {{cc, r7, r9, r14, LSL, r7},
1132                            false,
1133                            al,
1134                            "cc r7 r9 r14 LSL r7",
1135                            "cc_r7_r9_r14_LSL_r7"},
1136                           {{cc, r9, r3, r5, LSL, r8},
1137                            false,
1138                            al,
1139                            "cc r9 r3 r5 LSL r8",
1140                            "cc_r9_r3_r5_LSL_r8"},
1141                           {{hi, r8, r3, r8, ROR, r2},
1142                            false,
1143                            al,
1144                            "hi r8 r3 r8 ROR r2",
1145                            "hi_r8_r3_r8_ROR_r2"},
1146                           {{pl, r10, r13, r14, LSR, r10},
1147                            false,
1148                            al,
1149                            "pl r10 r13 r14 LSR r10",
1150                            "pl_r10_r13_r14_LSR_r10"},
1151                           {{lt, r13, r4, r13, LSR, r12},
1152                            false,
1153                            al,
1154                            "lt r13 r4 r13 LSR r12",
1155                            "lt_r13_r4_r13_LSR_r12"},
1156                           {{ls, r12, r14, r11, LSR, r13},
1157                            false,
1158                            al,
1159                            "ls r12 r14 r11 LSR r13",
1160                            "ls_r12_r14_r11_LSR_r13"},
1161                           {{vs, r11, r10, r10, ASR, r2},
1162                            false,
1163                            al,
1164                            "vs r11 r10 r10 ASR r2",
1165                            "vs_r11_r10_r10_ASR_r2"},
1166                           {{cc, r5, r8, r13, LSL, r10},
1167                            false,
1168                            al,
1169                            "cc r5 r8 r13 LSL r10",
1170                            "cc_r5_r8_r13_LSL_r10"},
1171                           {{cs, r7, r4, r11, LSR, r14},
1172                            false,
1173                            al,
1174                            "cs r7 r4 r11 LSR r14",
1175                            "cs_r7_r4_r11_LSR_r14"},
1176                           {{lt, r1, r12, r7, ASR, r11},
1177                            false,
1178                            al,
1179                            "lt r1 r12 r7 ASR r11",
1180                            "lt_r1_r12_r7_ASR_r11"},
1181                           {{vc, r11, r4, r4, LSL, r10},
1182                            false,
1183                            al,
1184                            "vc r11 r4 r4 LSL r10",
1185                            "vc_r11_r4_r4_LSL_r10"},
1186                           {{vc, r7, r4, r6, LSR, r7},
1187                            false,
1188                            al,
1189                            "vc r7 r4 r6 LSR r7",
1190                            "vc_r7_r4_r6_LSR_r7"},
1191                           {{vc, r0, r3, r0, ASR, r14},
1192                            false,
1193                            al,
1194                            "vc r0 r3 r0 ASR r14",
1195                            "vc_r0_r3_r0_ASR_r14"},
1196                           {{mi, r11, r8, r13, ASR, r8},
1197                            false,
1198                            al,
1199                            "mi r11 r8 r13 ASR r8",
1200                            "mi_r11_r8_r13_ASR_r8"},
1201                           {{gt, r13, r14, r6, LSL, r11},
1202                            false,
1203                            al,
1204                            "gt r13 r14 r6 LSL r11",
1205                            "gt_r13_r14_r6_LSL_r11"},
1206                           {{cs, r3, r2, r6, LSL, r8},
1207                            false,
1208                            al,
1209                            "cs r3 r2 r6 LSL r8",
1210                            "cs_r3_r2_r6_LSL_r8"},
1211                           {{ne, r7, r5, r5, LSL, r8},
1212                            false,
1213                            al,
1214                            "ne r7 r5 r5 LSL r8",
1215                            "ne_r7_r5_r5_LSL_r8"},
1216                           {{lt, r0, r12, r6, LSR, r0},
1217                            false,
1218                            al,
1219                            "lt r0 r12 r6 LSR r0",
1220                            "lt_r0_r12_r6_LSR_r0"},
1221                           {{ls, r11, r9, r12, ROR, r2},
1222                            false,
1223                            al,
1224                            "ls r11 r9 r12 ROR r2",
1225                            "ls_r11_r9_r12_ROR_r2"},
1226                           {{ls, r6, r0, r8, LSR, r4},
1227                            false,
1228                            al,
1229                            "ls r6 r0 r8 LSR r4",
1230                            "ls_r6_r0_r8_LSR_r4"},
1231                           {{lt, r6, r7, r0, ROR, r13},
1232                            false,
1233                            al,
1234                            "lt r6 r7 r0 ROR r13",
1235                            "lt_r6_r7_r0_ROR_r13"},
1236                           {{gt, r14, r4, r1, LSL, r8},
1237                            false,
1238                            al,
1239                            "gt r14 r4 r1 LSL r8",
1240                            "gt_r14_r4_r1_LSL_r8"},
1241                           {{al, r14, r5, r6, LSL, r7},
1242                            false,
1243                            al,
1244                            "al r14 r5 r6 LSL r7",
1245                            "al_r14_r5_r6_LSL_r7"},
1246                           {{ge, r9, r6, r4, LSR, r8},
1247                            false,
1248                            al,
1249                            "ge r9 r6 r4 LSR r8",
1250                            "ge_r9_r6_r4_LSR_r8"},
1251                           {{lt, r2, r14, r13, ROR, r3},
1252                            false,
1253                            al,
1254                            "lt r2 r14 r13 ROR r3",
1255                            "lt_r2_r14_r13_ROR_r3"},
1256                           {{al, r11, r1, r13, LSR, r9},
1257                            false,
1258                            al,
1259                            "al r11 r1 r13 LSR r9",
1260                            "al_r11_r1_r13_LSR_r9"},
1261                           {{vs, r8, r2, r5, LSL, r11},
1262                            false,
1263                            al,
1264                            "vs r8 r2 r5 LSL r11",
1265                            "vs_r8_r2_r5_LSL_r11"},
1266                           {{pl, r8, r14, r8, LSL, r7},
1267                            false,
1268                            al,
1269                            "pl r8 r14 r8 LSL r7",
1270                            "pl_r8_r14_r8_LSL_r7"},
1271                           {{cs, r10, r5, r5, ASR, r4},
1272                            false,
1273                            al,
1274                            "cs r10 r5 r5 ASR r4",
1275                            "cs_r10_r5_r5_ASR_r4"},
1276                           {{eq, r12, r14, r9, LSR, r11},
1277                            false,
1278                            al,
1279                            "eq r12 r14 r9 LSR r11",
1280                            "eq_r12_r14_r9_LSR_r11"},
1281                           {{lt, r1, r3, r3, LSL, r1},
1282                            false,
1283                            al,
1284                            "lt r1 r3 r3 LSL r1",
1285                            "lt_r1_r3_r3_LSL_r1"},
1286                           {{le, r4, r13, r4, ASR, r8},
1287                            false,
1288                            al,
1289                            "le r4 r13 r4 ASR r8",
1290                            "le_r4_r13_r4_ASR_r8"},
1291                           {{ne, r5, r4, r2, LSL, r8},
1292                            false,
1293                            al,
1294                            "ne r5 r4 r2 LSL r8",
1295                            "ne_r5_r4_r2_LSL_r8"},
1296                           {{le, r3, r14, r13, LSR, r1},
1297                            false,
1298                            al,
1299                            "le r3 r14 r13 LSR r1",
1300                            "le_r3_r14_r13_LSR_r1"},
1301                           {{cc, r6, r3, r5, LSL, r1},
1302                            false,
1303                            al,
1304                            "cc r6 r3 r5 LSL r1",
1305                            "cc_r6_r3_r5_LSL_r1"},
1306                           {{lt, r9, r6, r11, LSR, r14},
1307                            false,
1308                            al,
1309                            "lt r9 r6 r11 LSR r14",
1310                            "lt_r9_r6_r11_LSR_r14"},
1311                           {{cc, r13, r8, r10, ROR, r1},
1312                            false,
1313                            al,
1314                            "cc r13 r8 r10 ROR r1",
1315                            "cc_r13_r8_r10_ROR_r1"},
1316                           {{lt, r7, r10, r11, LSR, r2},
1317                            false,
1318                            al,
1319                            "lt r7 r10 r11 LSR r2",
1320                            "lt_r7_r10_r11_LSR_r2"},
1321                           {{pl, r0, r9, r5, LSR, r8},
1322                            false,
1323                            al,
1324                            "pl r0 r9 r5 LSR r8",
1325                            "pl_r0_r9_r5_LSR_r8"},
1326                           {{eq, r8, r9, r11, LSR, r13},
1327                            false,
1328                            al,
1329                            "eq r8 r9 r11 LSR r13",
1330                            "eq_r8_r9_r11_LSR_r13"},
1331                           {{hi, r10, r1, r9, ROR, r12},
1332                            false,
1333                            al,
1334                            "hi r10 r1 r9 ROR r12",
1335                            "hi_r10_r1_r9_ROR_r12"},
1336                           {{pl, r13, r1, r14, LSL, r14},
1337                            false,
1338                            al,
1339                            "pl r13 r1 r14 LSL r14",
1340                            "pl_r13_r1_r14_LSL_r14"},
1341                           {{eq, r13, r3, r7, LSR, r13},
1342                            false,
1343                            al,
1344                            "eq r13 r3 r7 LSR r13",
1345                            "eq_r13_r3_r7_LSR_r13"},
1346                           {{eq, r3, r6, r6, ASR, r14},
1347                            false,
1348                            al,
1349                            "eq r3 r6 r6 ASR r14",
1350                            "eq_r3_r6_r6_ASR_r14"},
1351                           {{gt, r5, r4, r8, ROR, r13},
1352                            false,
1353                            al,
1354                            "gt r5 r4 r8 ROR r13",
1355                            "gt_r5_r4_r8_ROR_r13"},
1356                           {{al, r9, r7, r0, ROR, r3},
1357                            false,
1358                            al,
1359                            "al r9 r7 r0 ROR r3",
1360                            "al_r9_r7_r0_ROR_r3"},
1361                           {{mi, r13, r11, r3, LSL, r1},
1362                            false,
1363                            al,
1364                            "mi r13 r11 r3 LSL r1",
1365                            "mi_r13_r11_r3_LSL_r1"},
1366                           {{ls, r11, r14, r6, LSL, r14},
1367                            false,
1368                            al,
1369                            "ls r11 r14 r6 LSL r14",
1370                            "ls_r11_r14_r6_LSL_r14"},
1371                           {{al, r14, r3, r7, LSL, r9},
1372                            false,
1373                            al,
1374                            "al r14 r3 r7 LSL r9",
1375                            "al_r14_r3_r7_LSL_r9"},
1376                           {{cs, r14, r2, r14, LSL, r13},
1377                            false,
1378                            al,
1379                            "cs r14 r2 r14 LSL r13",
1380                            "cs_r14_r2_r14_LSL_r13"},
1381                           {{ls, r11, r10, r6, ASR, r11},
1382                            false,
1383                            al,
1384                            "ls r11 r10 r6 ASR r11",
1385                            "ls_r11_r10_r6_ASR_r11"},
1386                           {{pl, r13, r4, r2, LSL, r4},
1387                            false,
1388                            al,
1389                            "pl r13 r4 r2 LSL r4",
1390                            "pl_r13_r4_r2_LSL_r4"},
1391                           {{mi, r8, r10, r5, ASR, r0},
1392                            false,
1393                            al,
1394                            "mi r8 r10 r5 ASR r0",
1395                            "mi_r8_r10_r5_ASR_r0"},
1396                           {{cs, r2, r1, r6, ASR, r4},
1397                            false,
1398                            al,
1399                            "cs r2 r1 r6 ASR r4",
1400                            "cs_r2_r1_r6_ASR_r4"},
1401                           {{cc, r0, r11, r8, LSR, r14},
1402                            false,
1403                            al,
1404                            "cc r0 r11 r8 LSR r14",
1405                            "cc_r0_r11_r8_LSR_r14"},
1406                           {{ge, r5, r4, r6, ROR, r1},
1407                            false,
1408                            al,
1409                            "ge r5 r4 r6 ROR r1",
1410                            "ge_r5_r4_r6_ROR_r1"},
1411                           {{cs, r0, r14, r3, LSR, r11},
1412                            false,
1413                            al,
1414                            "cs r0 r14 r3 LSR r11",
1415                            "cs_r0_r14_r3_LSR_r11"},
1416                           {{ge, r9, r4, r10, LSR, r13},
1417                            false,
1418                            al,
1419                            "ge r9 r4 r10 LSR r13",
1420                            "ge_r9_r4_r10_LSR_r13"},
1421                           {{ne, r11, r0, r9, LSL, r8},
1422                            false,
1423                            al,
1424                            "ne r11 r0 r9 LSL r8",
1425                            "ne_r11_r0_r9_LSL_r8"},
1426                           {{vs, r4, r1, r0, LSL, r8},
1427                            false,
1428                            al,
1429                            "vs r4 r1 r0 LSL r8",
1430                            "vs_r4_r1_r0_LSL_r8"},
1431                           {{le, r5, r5, r4, ROR, r10},
1432                            false,
1433                            al,
1434                            "le r5 r5 r4 ROR r10",
1435                            "le_r5_r5_r4_ROR_r10"},
1436                           {{al, r9, r5, r0, ROR, r6},
1437                            false,
1438                            al,
1439                            "al r9 r5 r0 ROR r6",
1440                            "al_r9_r5_r0_ROR_r6"},
1441                           {{hi, r6, r6, r9, LSR, r12},
1442                            false,
1443                            al,
1444                            "hi r6 r6 r9 LSR r12",
1445                            "hi_r6_r6_r9_LSR_r12"},
1446                           {{lt, r1, r4, r9, ROR, r4},
1447                            false,
1448                            al,
1449                            "lt r1 r4 r9 ROR r4",
1450                            "lt_r1_r4_r9_ROR_r4"},
1451                           {{vc, r4, r7, r0, ROR, r11},
1452                            false,
1453                            al,
1454                            "vc r4 r7 r0 ROR r11",
1455                            "vc_r4_r7_r0_ROR_r11"},
1456                           {{gt, r1, r4, r2, ROR, r8},
1457                            false,
1458                            al,
1459                            "gt r1 r4 r2 ROR r8",
1460                            "gt_r1_r4_r2_ROR_r8"},
1461                           {{ne, r4, r5, r9, LSL, r6},
1462                            false,
1463                            al,
1464                            "ne r4 r5 r9 LSL r6",
1465                            "ne_r4_r5_r9_LSL_r6"},
1466                           {{gt, r3, r4, r10, LSR, r5},
1467                            false,
1468                            al,
1469                            "gt r3 r4 r10 LSR r5",
1470                            "gt_r3_r4_r10_LSR_r5"},
1471                           {{al, r7, r9, r2, ROR, r2},
1472                            false,
1473                            al,
1474                            "al r7 r9 r2 ROR r2",
1475                            "al_r7_r9_r2_ROR_r2"},
1476                           {{le, r3, r8, r2, LSL, r2},
1477                            false,
1478                            al,
1479                            "le r3 r8 r2 LSL r2",
1480                            "le_r3_r8_r2_LSL_r2"},
1481                           {{hi, r3, r8, r0, LSL, r1},
1482                            false,
1483                            al,
1484                            "hi r3 r8 r0 LSL r1",
1485                            "hi_r3_r8_r0_LSL_r1"},
1486                           {{ge, r11, r4, r4, LSL, r14},
1487                            false,
1488                            al,
1489                            "ge r11 r4 r4 LSL r14",
1490                            "ge_r11_r4_r4_LSL_r14"},
1491                           {{mi, r8, r14, r1, LSR, r13},
1492                            false,
1493                            al,
1494                            "mi r8 r14 r1 LSR r13",
1495                            "mi_r8_r14_r1_LSR_r13"},
1496                           {{pl, r6, r1, r10, LSL, r0},
1497                            false,
1498                            al,
1499                            "pl r6 r1 r10 LSL r0",
1500                            "pl_r6_r1_r10_LSL_r0"},
1501                           {{eq, r11, r7, r13, LSL, r0},
1502                            false,
1503                            al,
1504                            "eq r11 r7 r13 LSL r0",
1505                            "eq_r11_r7_r13_LSL_r0"},
1506                           {{cc, r4, r9, r11, LSR, r1},
1507                            false,
1508                            al,
1509                            "cc r4 r9 r11 LSR r1",
1510                            "cc_r4_r9_r11_LSR_r1"},
1511                           {{cc, r8, r2, r3, LSR, r8},
1512                            false,
1513                            al,
1514                            "cc r8 r2 r3 LSR r8",
1515                            "cc_r8_r2_r3_LSR_r8"},
1516                           {{ne, r5, r1, r14, LSL, r12},
1517                            false,
1518                            al,
1519                            "ne r5 r1 r14 LSL r12",
1520                            "ne_r5_r1_r14_LSL_r12"},
1521                           {{le, r13, r5, r2, ASR, r1},
1522                            false,
1523                            al,
1524                            "le r13 r5 r2 ASR r1",
1525                            "le_r13_r5_r2_ASR_r1"},
1526                           {{al, r0, r5, r0, LSL, r4},
1527                            false,
1528                            al,
1529                            "al r0 r5 r0 LSL r4",
1530                            "al_r0_r5_r0_LSL_r4"},
1531                           {{mi, r3, r1, r4, LSR, r3},
1532                            false,
1533                            al,
1534                            "mi r3 r1 r4 LSR r3",
1535                            "mi_r3_r1_r4_LSR_r3"},
1536                           {{cs, r3, r7, r0, ROR, r8},
1537                            false,
1538                            al,
1539                            "cs r3 r7 r0 ROR r8",
1540                            "cs_r3_r7_r0_ROR_r8"},
1541                           {{cs, r11, r14, r4, LSR, r13},
1542                            false,
1543                            al,
1544                            "cs r11 r14 r4 LSR r13",
1545                            "cs_r11_r14_r4_LSR_r13"},
1546                           {{vs, r11, r10, r8, ASR, r3},
1547                            false,
1548                            al,
1549                            "vs r11 r10 r8 ASR r3",
1550                            "vs_r11_r10_r8_ASR_r3"},
1551                           {{gt, r10, r8, r9, LSL, r13},
1552                            false,
1553                            al,
1554                            "gt r10 r8 r9 LSL r13",
1555                            "gt_r10_r8_r9_LSL_r13"},
1556                           {{eq, r10, r1, r8, ASR, r9},
1557                            false,
1558                            al,
1559                            "eq r10 r1 r8 ASR r9",
1560                            "eq_r10_r1_r8_ASR_r9"},
1561                           {{al, r2, r1, r10, ASR, r8},
1562                            false,
1563                            al,
1564                            "al r2 r1 r10 ASR r8",
1565                            "al_r2_r1_r10_ASR_r8"},
1566                           {{al, r7, r1, r7, ROR, r11},
1567                            false,
1568                            al,
1569                            "al r7 r1 r7 ROR r11",
1570                            "al_r7_r1_r7_ROR_r11"},
1571                           {{cs, r0, r5, r6, ASR, r1},
1572                            false,
1573                            al,
1574                            "cs r0 r5 r6 ASR r1",
1575                            "cs_r0_r5_r6_ASR_r1"},
1576                           {{lt, r12, r11, r10, LSR, r14},
1577                            false,
1578                            al,
1579                            "lt r12 r11 r10 LSR r14",
1580                            "lt_r12_r11_r10_LSR_r14"},
1581                           {{pl, r13, r7, r5, LSL, r2},
1582                            false,
1583                            al,
1584                            "pl r13 r7 r5 LSL r2",
1585                            "pl_r13_r7_r5_LSL_r2"},
1586                           {{ne, r2, r0, r12, LSL, r11},
1587                            false,
1588                            al,
1589                            "ne r2 r0 r12 LSL r11",
1590                            "ne_r2_r0_r12_LSL_r11"},
1591                           {{ls, r14, r9, r12, ROR, r6},
1592                            false,
1593                            al,
1594                            "ls r14 r9 r12 ROR r6",
1595                            "ls_r14_r9_r12_ROR_r6"},
1596                           {{cc, r9, r2, r8, ASR, r3},
1597                            false,
1598                            al,
1599                            "cc r9 r2 r8 ASR r3",
1600                            "cc_r9_r2_r8_ASR_r3"},
1601                           {{pl, r12, r11, r0, ASR, r7},
1602                            false,
1603                            al,
1604                            "pl r12 r11 r0 ASR r7",
1605                            "pl_r12_r11_r0_ASR_r7"},
1606                           {{vs, r12, r2, r3, ROR, r1},
1607                            false,
1608                            al,
1609                            "vs r12 r2 r3 ROR r1",
1610                            "vs_r12_r2_r3_ROR_r1"},
1611                           {{al, r3, r1, r8, LSL, r4},
1612                            false,
1613                            al,
1614                            "al r3 r1 r8 LSL r4",
1615                            "al_r3_r1_r8_LSL_r4"},
1616                           {{mi, r7, r9, r13, ASR, r5},
1617                            false,
1618                            al,
1619                            "mi r7 r9 r13 ASR r5",
1620                            "mi_r7_r9_r13_ASR_r5"},
1621                           {{vs, r13, r4, r10, ROR, r9},
1622                            false,
1623                            al,
1624                            "vs r13 r4 r10 ROR r9",
1625                            "vs_r13_r4_r10_ROR_r9"},
1626                           {{eq, r8, r2, r3, LSR, r2},
1627                            false,
1628                            al,
1629                            "eq r8 r2 r3 LSR r2",
1630                            "eq_r8_r2_r3_LSR_r2"},
1631                           {{cs, r0, r3, r11, LSR, r7},
1632                            false,
1633                            al,
1634                            "cs r0 r3 r11 LSR r7",
1635                            "cs_r0_r3_r11_LSR_r7"},
1636                           {{pl, r2, r10, r9, ASR, r13},
1637                            false,
1638                            al,
1639                            "pl r2 r10 r9 ASR r13",
1640                            "pl_r2_r10_r9_ASR_r13"},
1641                           {{eq, r14, r0, r7, ASR, r0},
1642                            false,
1643                            al,
1644                            "eq r14 r0 r7 ASR r0",
1645                            "eq_r14_r0_r7_ASR_r0"},
1646                           {{lt, r12, r11, r7, ROR, r7},
1647                            false,
1648                            al,
1649                            "lt r12 r11 r7 ROR r7",
1650                            "lt_r12_r11_r7_ROR_r7"},
1651                           {{eq, r4, r10, r1, LSL, r2},
1652                            false,
1653                            al,
1654                            "eq r4 r10 r1 LSL r2",
1655                            "eq_r4_r10_r1_LSL_r2"},
1656                           {{al, r7, r14, r12, ASR, r6},
1657                            false,
1658                            al,
1659                            "al r7 r14 r12 ASR r6",
1660                            "al_r7_r14_r12_ASR_r6"},
1661                           {{al, r2, r5, r13, ASR, r1},
1662                            false,
1663                            al,
1664                            "al r2 r5 r13 ASR r1",
1665                            "al_r2_r5_r13_ASR_r1"},
1666                           {{hi, r0, r3, r14, LSL, r11},
1667                            false,
1668                            al,
1669                            "hi r0 r3 r14 LSL r11",
1670                            "hi_r0_r3_r14_LSL_r11"},
1671                           {{vs, r5, r6, r9, LSR, r13},
1672                            false,
1673                            al,
1674                            "vs r5 r6 r9 LSR r13",
1675                            "vs_r5_r6_r9_LSR_r13"},
1676                           {{hi, r14, r0, r14, ROR, r14},
1677                            false,
1678                            al,
1679                            "hi r14 r0 r14 ROR r14",
1680                            "hi_r14_r0_r14_ROR_r14"},
1681                           {{eq, r9, r3, r13, ROR, r9},
1682                            false,
1683                            al,
1684                            "eq r9 r3 r13 ROR r9",
1685                            "eq_r9_r3_r13_ROR_r9"},
1686                           {{hi, r6, r8, r1, ASR, r14},
1687                            false,
1688                            al,
1689                            "hi r6 r8 r1 ASR r14",
1690                            "hi_r6_r8_r1_ASR_r14"},
1691                           {{vs, r13, r2, r8, LSR, r7},
1692                            false,
1693                            al,
1694                            "vs r13 r2 r8 LSR r7",
1695                            "vs_r13_r2_r8_LSR_r7"},
1696                           {{cc, r13, r0, r8, LSR, r7},
1697                            false,
1698                            al,
1699                            "cc r13 r0 r8 LSR r7",
1700                            "cc_r13_r0_r8_LSR_r7"},
1701                           {{le, r12, r0, r11, ASR, r9},
1702                            false,
1703                            al,
1704                            "le r12 r0 r11 ASR r9",
1705                            "le_r12_r0_r11_ASR_r9"},
1706                           {{le, r8, r8, r1, LSR, r6},
1707                            false,
1708                            al,
1709                            "le r8 r8 r1 LSR r6",
1710                            "le_r8_r8_r1_LSR_r6"},
1711                           {{cs, r5, r14, r7, ASR, r3},
1712                            false,
1713                            al,
1714                            "cs r5 r14 r7 ASR r3",
1715                            "cs_r5_r14_r7_ASR_r3"},
1716                           {{eq, r13, r13, r10, ROR, r12},
1717                            false,
1718                            al,
1719                            "eq r13 r13 r10 ROR r12",
1720                            "eq_r13_r13_r10_ROR_r12"},
1721                           {{lt, r4, r7, r7, LSR, r5},
1722                            false,
1723                            al,
1724                            "lt r4 r7 r7 LSR r5",
1725                            "lt_r4_r7_r7_LSR_r5"},
1726                           {{le, r6, r13, r10, LSR, r2},
1727                            false,
1728                            al,
1729                            "le r6 r13 r10 LSR r2",
1730                            "le_r6_r13_r10_LSR_r2"},
1731                           {{eq, r10, r13, r10, ASR, r8},
1732                            false,
1733                            al,
1734                            "eq r10 r13 r10 ASR r8",
1735                            "eq_r10_r13_r10_ASR_r8"},
1736                           {{ne, r6, r5, r12, LSR, r12},
1737                            false,
1738                            al,
1739                            "ne r6 r5 r12 LSR r12",
1740                            "ne_r6_r5_r12_LSR_r12"},
1741                           {{vc, r10, r8, r10, ROR, r8},
1742                            false,
1743                            al,
1744                            "vc r10 r8 r10 ROR r8",
1745                            "vc_r10_r8_r10_ROR_r8"},
1746                           {{gt, r10, r1, r8, LSR, r1},
1747                            false,
1748                            al,
1749                            "gt r10 r1 r8 LSR r1",
1750                            "gt_r10_r1_r8_LSR_r1"},
1751                           {{pl, r5, r12, r9, LSR, r13},
1752                            false,
1753                            al,
1754                            "pl r5 r12 r9 LSR r13",
1755                            "pl_r5_r12_r9_LSR_r13"},
1756                           {{gt, r10, r6, r4, ROR, r12},
1757                            false,
1758                            al,
1759                            "gt r10 r6 r4 ROR r12",
1760                            "gt_r10_r6_r4_ROR_r12"},
1761                           {{cs, r14, r10, r10, ASR, r6},
1762                            false,
1763                            al,
1764                            "cs r14 r10 r10 ASR r6",
1765                            "cs_r14_r10_r10_ASR_r6"},
1766                           {{le, r6, r8, r2, ROR, r7},
1767                            false,
1768                            al,
1769                            "le r6 r8 r2 ROR r7",
1770                            "le_r6_r8_r2_ROR_r7"},
1771                           {{le, r13, r12, r0, ROR, r14},
1772                            false,
1773                            al,
1774                            "le r13 r12 r0 ROR r14",
1775                            "le_r13_r12_r0_ROR_r14"},
1776                           {{le, r7, r6, r0, ASR, r10},
1777                            false,
1778                            al,
1779                            "le r7 r6 r0 ASR r10",
1780                            "le_r7_r6_r0_ASR_r10"},
1781                           {{cs, r10, r4, r1, ASR, r10},
1782                            false,
1783                            al,
1784                            "cs r10 r4 r1 ASR r10",
1785                            "cs_r10_r4_r1_ASR_r10"},
1786                           {{ne, r12, r9, r11, ASR, r6},
1787                            false,
1788                            al,
1789                            "ne r12 r9 r11 ASR r6",
1790                            "ne_r12_r9_r11_ASR_r6"},
1791                           {{vs, r9, r14, r6, ASR, r12},
1792                            false,
1793                            al,
1794                            "vs r9 r14 r6 ASR r12",
1795                            "vs_r9_r14_r6_ASR_r12"},
1796                           {{mi, r1, r8, r0, ASR, r7},
1797                            false,
1798                            al,
1799                            "mi r1 r8 r0 ASR r7",
1800                            "mi_r1_r8_r0_ASR_r7"},
1801                           {{gt, r11, r2, r3, ROR, r11},
1802                            false,
1803                            al,
1804                            "gt r11 r2 r3 ROR r11",
1805                            "gt_r11_r2_r3_ROR_r11"},
1806                           {{cs, r3, r1, r12, LSR, r0},
1807                            false,
1808                            al,
1809                            "cs r3 r1 r12 LSR r0",
1810                            "cs_r3_r1_r12_LSR_r0"},
1811                           {{hi, r12, r14, r11, LSL, r2},
1812                            false,
1813                            al,
1814                            "hi r12 r14 r11 LSL r2",
1815                            "hi_r12_r14_r11_LSL_r2"},
1816                           {{mi, r10, r11, r14, LSL, r10},
1817                            false,
1818                            al,
1819                            "mi r10 r11 r14 LSL r10",
1820                            "mi_r10_r11_r14_LSL_r10"},
1821                           {{al, r11, r6, r13, ASR, r2},
1822                            false,
1823                            al,
1824                            "al r11 r6 r13 ASR r2",
1825                            "al_r11_r6_r13_ASR_r2"},
1826                           {{gt, r2, r14, r3, ROR, r6},
1827                            false,
1828                            al,
1829                            "gt r2 r14 r3 ROR r6",
1830                            "gt_r2_r14_r3_ROR_r6"},
1831                           {{hi, r1, r10, r6, LSR, r6},
1832                            false,
1833                            al,
1834                            "hi r1 r10 r6 LSR r6",
1835                            "hi_r1_r10_r6_LSR_r6"},
1836                           {{gt, r2, r8, r3, LSL, r6},
1837                            false,
1838                            al,
1839                            "gt r2 r8 r3 LSL r6",
1840                            "gt_r2_r8_r3_LSL_r6"},
1841                           {{ls, r13, r4, r12, ROR, r13},
1842                            false,
1843                            al,
1844                            "ls r13 r4 r12 ROR r13",
1845                            "ls_r13_r4_r12_ROR_r13"},
1846                           {{vs, r13, r11, r7, ROR, r8},
1847                            false,
1848                            al,
1849                            "vs r13 r11 r7 ROR r8",
1850                            "vs_r13_r11_r7_ROR_r8"},
1851                           {{hi, r5, r12, r14, LSR, r3},
1852                            false,
1853                            al,
1854                            "hi r5 r12 r14 LSR r3",
1855                            "hi_r5_r12_r14_LSR_r3"},
1856                           {{cs, r14, r8, r3, ROR, r13},
1857                            false,
1858                            al,
1859                            "cs r14 r8 r3 ROR r13",
1860                            "cs_r14_r8_r3_ROR_r13"},
1861                           {{cs, r9, r10, r0, LSL, r10},
1862                            false,
1863                            al,
1864                            "cs r9 r10 r0 LSL r10",
1865                            "cs_r9_r10_r0_LSL_r10"},
1866                           {{lt, r0, r13, r12, ASR, r5},
1867                            false,
1868                            al,
1869                            "lt r0 r13 r12 ASR r5",
1870                            "lt_r0_r13_r12_ASR_r5"},
1871                           {{cs, r4, r5, r7, ROR, r7},
1872                            false,
1873                            al,
1874                            "cs r4 r5 r7 ROR r7",
1875                            "cs_r4_r5_r7_ROR_r7"},
1876                           {{lt, r0, r14, r7, LSR, r7},
1877                            false,
1878                            al,
1879                            "lt r0 r14 r7 LSR r7",
1880                            "lt_r0_r14_r7_LSR_r7"},
1881                           {{hi, r10, r5, r3, LSL, r10},
1882                            false,
1883                            al,
1884                            "hi r10 r5 r3 LSL r10",
1885                            "hi_r10_r5_r3_LSL_r10"},
1886                           {{ls, r6, r2, r4, ROR, r0},
1887                            false,
1888                            al,
1889                            "ls r6 r2 r4 ROR r0",
1890                            "ls_r6_r2_r4_ROR_r0"},
1891                           {{hi, r9, r7, r7, ASR, r10},
1892                            false,
1893                            al,
1894                            "hi r9 r7 r7 ASR r10",
1895                            "hi_r9_r7_r7_ASR_r10"},
1896                           {{cc, r0, r9, r4, LSR, r2},
1897                            false,
1898                            al,
1899                            "cc r0 r9 r4 LSR r2",
1900                            "cc_r0_r9_r4_LSR_r2"},
1901                           {{le, r3, r14, r2, ASR, r0},
1902                            false,
1903                            al,
1904                            "le r3 r14 r2 ASR r0",
1905                            "le_r3_r14_r2_ASR_r0"},
1906                           {{pl, r2, r8, r7, LSL, r13},
1907                            false,
1908                            al,
1909                            "pl r2 r8 r7 LSL r13",
1910                            "pl_r2_r8_r7_LSL_r13"},
1911                           {{al, r10, r1, r9, LSR, r6},
1912                            false,
1913                            al,
1914                            "al r10 r1 r9 LSR r6",
1915                            "al_r10_r1_r9_LSR_r6"},
1916                           {{vs, r1, r6, r14, ASR, r14},
1917                            false,
1918                            al,
1919                            "vs r1 r6 r14 ASR r14",
1920                            "vs_r1_r6_r14_ASR_r14"},
1921                           {{lt, r3, r3, r13, LSR, r0},
1922                            false,
1923                            al,
1924                            "lt r3 r3 r13 LSR r0",
1925                            "lt_r3_r3_r13_LSR_r0"},
1926                           {{le, r9, r3, r2, ASR, r11},
1927                            false,
1928                            al,
1929                            "le r9 r3 r2 ASR r11",
1930                            "le_r9_r3_r2_ASR_r11"},
1931                           {{mi, r4, r14, r6, LSL, r11},
1932                            false,
1933                            al,
1934                            "mi r4 r14 r6 LSL r11",
1935                            "mi_r4_r14_r6_LSL_r11"},
1936                           {{ne, r7, r5, r14, ASR, r9},
1937                            false,
1938                            al,
1939                            "ne r7 r5 r14 ASR r9",
1940                            "ne_r7_r5_r14_ASR_r9"},
1941                           {{cs, r11, r11, r13, LSR, r11},
1942                            false,
1943                            al,
1944                            "cs r11 r11 r13 LSR r11",
1945                            "cs_r11_r11_r13_LSR_r11"},
1946                           {{lt, r12, r9, r5, LSR, r9},
1947                            false,
1948                            al,
1949                            "lt r12 r9 r5 LSR r9",
1950                            "lt_r12_r9_r5_LSR_r9"},
1951                           {{hi, r13, r1, r10, LSL, r4},
1952                            false,
1953                            al,
1954                            "hi r13 r1 r10 LSL r4",
1955                            "hi_r13_r1_r10_LSL_r4"},
1956                           {{mi, r14, r6, r8, ASR, r14},
1957                            false,
1958                            al,
1959                            "mi r14 r6 r8 ASR r14",
1960                            "mi_r14_r6_r8_ASR_r14"},
1961                           {{vc, r3, r2, r6, ASR, r3},
1962                            false,
1963                            al,
1964                            "vc r3 r2 r6 ASR r3",
1965                            "vc_r3_r2_r6_ASR_r3"},
1966                           {{ne, r13, r14, r0, ASR, r2},
1967                            false,
1968                            al,
1969                            "ne r13 r14 r0 ASR r2",
1970                            "ne_r13_r14_r0_ASR_r2"},
1971                           {{gt, r2, r14, r5, ROR, r1},
1972                            false,
1973                            al,
1974                            "gt r2 r14 r5 ROR r1",
1975                            "gt_r2_r14_r5_ROR_r1"},
1976                           {{ls, r7, r7, r9, LSR, r10},
1977                            false,
1978                            al,
1979                            "ls r7 r7 r9 LSR r10",
1980                            "ls_r7_r7_r9_LSR_r10"},
1981                           {{gt, r2, r12, r8, ASR, r5},
1982                            false,
1983                            al,
1984                            "gt r2 r12 r8 ASR r5",
1985                            "gt_r2_r12_r8_ASR_r5"},
1986                           {{lt, r13, r2, r11, ROR, r6},
1987                            false,
1988                            al,
1989                            "lt r13 r2 r11 ROR r6",
1990                            "lt_r13_r2_r11_ROR_r6"},
1991                           {{cc, r2, r13, r13, ASR, r1},
1992                            false,
1993                            al,
1994                            "cc r2 r13 r13 ASR r1",
1995                            "cc_r2_r13_r13_ASR_r1"},
1996                           {{vs, r0, r6, r14, ROR, r3},
1997                            false,
1998                            al,
1999                            "vs r0 r6 r14 ROR r3",
2000                            "vs_r0_r6_r14_ROR_r3"},
2001                           {{vs, r2, r13, r8, LSL, r9},
2002                            false,
2003                            al,
2004                            "vs r2 r13 r8 LSL r9",
2005                            "vs_r2_r13_r8_LSL_r9"},
2006                           {{pl, r2, r12, r12, ROR, r6},
2007                            false,
2008                            al,
2009                            "pl r2 r12 r12 ROR r6",
2010                            "pl_r2_r12_r12_ROR_r6"},
2011                           {{vc, r4, r0, r12, ASR, r13},
2012                            false,
2013                            al,
2014                            "vc r4 r0 r12 ASR r13",
2015                            "vc_r4_r0_r12_ASR_r13"},
2016                           {{mi, r8, r12, r7, ASR, r7},
2017                            false,
2018                            al,
2019                            "mi r8 r12 r7 ASR r7",
2020                            "mi_r8_r12_r7_ASR_r7"},
2021                           {{al, r13, r5, r0, LSL, r5},
2022                            false,
2023                            al,
2024                            "al r13 r5 r0 LSL r5",
2025                            "al_r13_r5_r0_LSL_r5"},
2026                           {{le, r9, r1, r12, LSR, r8},
2027                            false,
2028                            al,
2029                            "le r9 r1 r12 LSR r8",
2030                            "le_r9_r1_r12_LSR_r8"},
2031                           {{vs, r5, r10, r13, ROR, r1},
2032                            false,
2033                            al,
2034                            "vs r5 r10 r13 ROR r1",
2035                            "vs_r5_r10_r13_ROR_r1"},
2036                           {{vs, r8, r5, r0, LSR, r11},
2037                            false,
2038                            al,
2039                            "vs r8 r5 r0 LSR r11",
2040                            "vs_r8_r5_r0_LSR_r11"},
2041                           {{ne, r7, r2, r0, LSL, r4},
2042                            false,
2043                            al,
2044                            "ne r7 r2 r0 LSL r4",
2045                            "ne_r7_r2_r0_LSL_r4"},
2046                           {{lt, r6, r6, r9, LSL, r10},
2047                            false,
2048                            al,
2049                            "lt r6 r6 r9 LSL r10",
2050                            "lt_r6_r6_r9_LSL_r10"},
2051                           {{cs, r13, r3, r4, ROR, r12},
2052                            false,
2053                            al,
2054                            "cs r13 r3 r4 ROR r12",
2055                            "cs_r13_r3_r4_ROR_r12"},
2056                           {{ne, r11, r11, r0, LSL, r7},
2057                            false,
2058                            al,
2059                            "ne r11 r11 r0 LSL r7",
2060                            "ne_r11_r11_r0_LSL_r7"},
2061                           {{pl, r3, r14, r12, LSR, r13},
2062                            false,
2063                            al,
2064                            "pl r3 r14 r12 LSR r13",
2065                            "pl_r3_r14_r12_LSR_r13"},
2066                           {{al, r2, r14, r3, LSL, r11},
2067                            false,
2068                            al,
2069                            "al r2 r14 r3 LSL r11",
2070                            "al_r2_r14_r3_LSL_r11"},
2071                           {{vc, r4, r6, r3, LSR, r7},
2072                            false,
2073                            al,
2074                            "vc r4 r6 r3 LSR r7",
2075                            "vc_r4_r6_r3_LSR_r7"},
2076                           {{ls, r6, r2, r1, LSR, r6},
2077                            false,
2078                            al,
2079                            "ls r6 r2 r1 LSR r6",
2080                            "ls_r6_r2_r1_LSR_r6"},
2081                           {{le, r0, r2, r5, ASR, r3},
2082                            false,
2083                            al,
2084                            "le r0 r2 r5 ASR r3",
2085                            "le_r0_r2_r5_ASR_r3"},
2086                           {{ge, r12, r9, r12, ROR, r13},
2087                            false,
2088                            al,
2089                            "ge r12 r9 r12 ROR r13",
2090                            "ge_r12_r9_r12_ROR_r13"},
2091                           {{cc, r10, r5, r3, ROR, r12},
2092                            false,
2093                            al,
2094                            "cc r10 r5 r3 ROR r12",
2095                            "cc_r10_r5_r3_ROR_r12"},
2096                           {{mi, r14, r0, r10, ASR, r4},
2097                            false,
2098                            al,
2099                            "mi r14 r0 r10 ASR r4",
2100                            "mi_r14_r0_r10_ASR_r4"},
2101                           {{al, r12, r0, r3, ROR, r13},
2102                            false,
2103                            al,
2104                            "al r12 r0 r3 ROR r13",
2105                            "al_r12_r0_r3_ROR_r13"},
2106                           {{hi, r1, r8, r13, ASR, r2},
2107                            false,
2108                            al,
2109                            "hi r1 r8 r13 ASR r2",
2110                            "hi_r1_r8_r13_ASR_r2"},
2111                           {{ls, r7, r9, r9, ASR, r2},
2112                            false,
2113                            al,
2114                            "ls r7 r9 r9 ASR r2",
2115                            "ls_r7_r9_r9_ASR_r2"},
2116                           {{ls, r9, r13, r6, ROR, r11},
2117                            false,
2118                            al,
2119                            "ls r9 r13 r6 ROR r11",
2120                            "ls_r9_r13_r6_ROR_r11"},
2121                           {{pl, r11, r12, r14, LSL, r14},
2122                            false,
2123                            al,
2124                            "pl r11 r12 r14 LSL r14",
2125                            "pl_r11_r12_r14_LSL_r14"},
2126                           {{eq, r1, r3, r10, ASR, r9},
2127                            false,
2128                            al,
2129                            "eq r1 r3 r10 ASR r9",
2130                            "eq_r1_r3_r10_ASR_r9"},
2131                           {{al, r1, r6, r6, LSL, r9},
2132                            false,
2133                            al,
2134                            "al r1 r6 r6 LSL r9",
2135                            "al_r1_r6_r6_LSL_r9"},
2136                           {{ne, r4, r14, r7, ROR, r12},
2137                            false,
2138                            al,
2139                            "ne r4 r14 r7 ROR r12",
2140                            "ne_r4_r14_r7_ROR_r12"},
2141                           {{vc, r2, r13, r1, ROR, r7},
2142                            false,
2143                            al,
2144                            "vc r2 r13 r1 ROR r7",
2145                            "vc_r2_r13_r1_ROR_r7"},
2146                           {{cs, r13, r12, r8, LSR, r11},
2147                            false,
2148                            al,
2149                            "cs r13 r12 r8 LSR r11",
2150                            "cs_r13_r12_r8_LSR_r11"},
2151                           {{le, r10, r14, r12, LSL, r4},
2152                            false,
2153                            al,
2154                            "le r10 r14 r12 LSL r4",
2155                            "le_r10_r14_r12_LSL_r4"},
2156                           {{cs, r14, r9, r4, ROR, r13},
2157                            false,
2158                            al,
2159                            "cs r14 r9 r4 ROR r13",
2160                            "cs_r14_r9_r4_ROR_r13"},
2161                           {{ge, r10, r12, r8, ASR, r14},
2162                            false,
2163                            al,
2164                            "ge r10 r12 r8 ASR r14",
2165                            "ge_r10_r12_r8_ASR_r14"},
2166                           {{cs, r14, r10, r3, LSL, r13},
2167                            false,
2168                            al,
2169                            "cs r14 r10 r3 LSL r13",
2170                            "cs_r14_r10_r3_LSL_r13"},
2171                           {{lt, r4, r3, r10, LSR, r2},
2172                            false,
2173                            al,
2174                            "lt r4 r3 r10 LSR r2",
2175                            "lt_r4_r3_r10_LSR_r2"},
2176                           {{ls, r13, r12, r8, ASR, r14},
2177                            false,
2178                            al,
2179                            "ls r13 r12 r8 ASR r14",
2180                            "ls_r13_r12_r8_ASR_r14"},
2181                           {{ge, r3, r2, r0, ASR, r8},
2182                            false,
2183                            al,
2184                            "ge r3 r2 r0 ASR r8",
2185                            "ge_r3_r2_r0_ASR_r8"},
2186                           {{vs, r3, r7, r1, LSL, r0},
2187                            false,
2188                            al,
2189                            "vs r3 r7 r1 LSL r0",
2190                            "vs_r3_r7_r1_LSL_r0"},
2191                           {{lt, r5, r13, r7, LSR, r7},
2192                            false,
2193                            al,
2194                            "lt r5 r13 r7 LSR r7",
2195                            "lt_r5_r13_r7_LSR_r7"},
2196                           {{ls, r8, r4, r3, ROR, r14},
2197                            false,
2198                            al,
2199                            "ls r8 r4 r3 ROR r14",
2200                            "ls_r8_r4_r3_ROR_r14"},
2201                           {{vc, r5, r4, r13, LSL, r12},
2202                            false,
2203                            al,
2204                            "vc r5 r4 r13 LSL r12",
2205                            "vc_r5_r4_r13_LSL_r12"},
2206                           {{pl, r6, r10, r11, LSR, r2},
2207                            false,
2208                            al,
2209                            "pl r6 r10 r11 LSR r2",
2210                            "pl_r6_r10_r11_LSR_r2"},
2211                           {{ne, r4, r0, r6, ASR, r10},
2212                            false,
2213                            al,
2214                            "ne r4 r0 r6 ASR r10",
2215                            "ne_r4_r0_r6_ASR_r10"},
2216                           {{vc, r2, r6, r7, LSR, r4},
2217                            false,
2218                            al,
2219                            "vc r2 r6 r7 LSR r4",
2220                            "vc_r2_r6_r7_LSR_r4"},
2221                           {{pl, r4, r12, r1, ROR, r14},
2222                            false,
2223                            al,
2224                            "pl r4 r12 r1 ROR r14",
2225                            "pl_r4_r12_r1_ROR_r14"},
2226                           {{cs, r13, r1, r10, LSL, r12},
2227                            false,
2228                            al,
2229                            "cs r13 r1 r10 LSL r12",
2230                            "cs_r13_r1_r10_LSL_r12"},
2231                           {{al, r7, r12, r7, LSL, r10},
2232                            false,
2233                            al,
2234                            "al r7 r12 r7 LSL r10",
2235                            "al_r7_r12_r7_LSL_r10"},
2236                           {{ge, r1, r9, r13, LSR, r8},
2237                            false,
2238                            al,
2239                            "ge r1 r9 r13 LSR r8",
2240                            "ge_r1_r9_r13_LSR_r8"},
2241                           {{eq, r12, r5, r11, ASR, r2},
2242                            false,
2243                            al,
2244                            "eq r12 r5 r11 ASR r2",
2245                            "eq_r12_r5_r11_ASR_r2"},
2246                           {{ls, r7, r9, r3, ASR, r14},
2247                            false,
2248                            al,
2249                            "ls r7 r9 r3 ASR r14",
2250                            "ls_r7_r9_r3_ASR_r14"},
2251                           {{pl, r5, r10, r3, LSL, r12},
2252                            false,
2253                            al,
2254                            "pl r5 r10 r3 LSL r12",
2255                            "pl_r5_r10_r3_LSL_r12"},
2256                           {{vs, r5, r14, r11, ASR, r13},
2257                            false,
2258                            al,
2259                            "vs r5 r14 r11 ASR r13",
2260                            "vs_r5_r14_r11_ASR_r13"},
2261                           {{al, r9, r2, r8, LSR, r10},
2262                            false,
2263                            al,
2264                            "al r9 r2 r8 LSR r10",
2265                            "al_r9_r2_r8_LSR_r10"},
2266                           {{cc, r11, r12, r6, ROR, r11},
2267                            false,
2268                            al,
2269                            "cc r11 r12 r6 ROR r11",
2270                            "cc_r11_r12_r6_ROR_r11"},
2271                           {{ge, r10, r3, r1, LSR, r5},
2272                            false,
2273                            al,
2274                            "ge r10 r3 r1 LSR r5",
2275                            "ge_r10_r3_r1_LSR_r5"},
2276                           {{lt, r13, r4, r7, ROR, r0},
2277                            false,
2278                            al,
2279                            "lt r13 r4 r7 ROR r0",
2280                            "lt_r13_r4_r7_ROR_r0"},
2281                           {{ne, r2, r12, r12, LSR, r0},
2282                            false,
2283                            al,
2284                            "ne r2 r12 r12 LSR r0",
2285                            "ne_r2_r12_r12_LSR_r0"},
2286                           {{gt, r2, r10, r14, ASR, r10},
2287                            false,
2288                            al,
2289                            "gt r2 r10 r14 ASR r10",
2290                            "gt_r2_r10_r14_ASR_r10"},
2291                           {{cc, r5, r6, r10, ASR, r11},
2292                            false,
2293                            al,
2294                            "cc r5 r6 r10 ASR r11",
2295                            "cc_r5_r6_r10_ASR_r11"},
2296                           {{hi, r8, r13, r1, ROR, r9},
2297                            false,
2298                            al,
2299                            "hi r8 r13 r1 ROR r9",
2300                            "hi_r8_r13_r1_ROR_r9"},
2301                           {{cc, r3, r1, r14, LSR, r3},
2302                            false,
2303                            al,
2304                            "cc r3 r1 r14 LSR r3",
2305                            "cc_r3_r1_r14_LSR_r3"},
2306                           {{lt, r11, r9, r8, ASR, r13},
2307                            false,
2308                            al,
2309                            "lt r11 r9 r8 ASR r13",
2310                            "lt_r11_r9_r8_ASR_r13"},
2311                           {{mi, r0, r3, r13, ASR, r5},
2312                            false,
2313                            al,
2314                            "mi r0 r3 r13 ASR r5",
2315                            "mi_r0_r3_r13_ASR_r5"},
2316                           {{vc, r7, r6, r10, ASR, r6},
2317                            false,
2318                            al,
2319                            "vc r7 r6 r10 ASR r6",
2320                            "vc_r7_r6_r10_ASR_r6"},
2321                           {{mi, r2, r6, r4, LSL, r9},
2322                            false,
2323                            al,
2324                            "mi r2 r6 r4 LSL r9",
2325                            "mi_r2_r6_r4_LSL_r9"},
2326                           {{ne, r12, r9, r4, ROR, r6},
2327                            false,
2328                            al,
2329                            "ne r12 r9 r4 ROR r6",
2330                            "ne_r12_r9_r4_ROR_r6"},
2331                           {{hi, r4, r3, r0, ROR, r4},
2332                            false,
2333                            al,
2334                            "hi r4 r3 r0 ROR r4",
2335                            "hi_r4_r3_r0_ROR_r4"},
2336                           {{gt, r9, r2, r11, LSL, r13},
2337                            false,
2338                            al,
2339                            "gt r9 r2 r11 LSL r13",
2340                            "gt_r9_r2_r11_LSL_r13"},
2341                           {{eq, r14, r4, r3, LSL, r10},
2342                            false,
2343                            al,
2344                            "eq r14 r4 r3 LSL r10",
2345                            "eq_r14_r4_r3_LSL_r10"},
2346                           {{le, r8, r2, r12, LSL, r10},
2347                            false,
2348                            al,
2349                            "le r8 r2 r12 LSL r10",
2350                            "le_r8_r2_r12_LSL_r10"},
2351                           {{ls, r8, r0, r1, ASR, r8},
2352                            false,
2353                            al,
2354                            "ls r8 r0 r1 ASR r8",
2355                            "ls_r8_r0_r1_ASR_r8"},
2356                           {{cc, r13, r9, r7, LSR, r3},
2357                            false,
2358                            al,
2359                            "cc r13 r9 r7 LSR r3",
2360                            "cc_r13_r9_r7_LSR_r3"},
2361                           {{gt, r6, r0, r7, ROR, r9},
2362                            false,
2363                            al,
2364                            "gt r6 r0 r7 ROR r9",
2365                            "gt_r6_r0_r7_ROR_r9"},
2366                           {{hi, r14, r12, r6, LSR, r12},
2367                            false,
2368                            al,
2369                            "hi r14 r12 r6 LSR r12",
2370                            "hi_r14_r12_r6_LSR_r12"},
2371                           {{cs, r3, r7, r10, LSR, r8},
2372                            false,
2373                            al,
2374                            "cs r3 r7 r10 LSR r8",
2375                            "cs_r3_r7_r10_LSR_r8"},
2376                           {{le, r7, r7, r7, LSL, r11},
2377                            false,
2378                            al,
2379                            "le r7 r7 r7 LSL r11",
2380                            "le_r7_r7_r7_LSL_r11"},
2381                           {{le, r11, r11, r14, ASR, r3},
2382                            false,
2383                            al,
2384                            "le r11 r11 r14 ASR r3",
2385                            "le_r11_r11_r14_ASR_r3"},
2386                           {{vc, r13, r5, r6, LSL, r13},
2387                            false,
2388                            al,
2389                            "vc r13 r5 r6 LSL r13",
2390                            "vc_r13_r5_r6_LSL_r13"},
2391                           {{cc, r12, r3, r12, LSL, r8},
2392                            false,
2393                            al,
2394                            "cc r12 r3 r12 LSL r8",
2395                            "cc_r12_r3_r12_LSL_r8"},
2396                           {{gt, r4, r14, r12, ASR, r11},
2397                            false,
2398                            al,
2399                            "gt r4 r14 r12 ASR r11",
2400                            "gt_r4_r14_r12_ASR_r11"},
2401                           {{cs, r9, r6, r7, LSL, r10},
2402                            false,
2403                            al,
2404                            "cs r9 r6 r7 LSL r10",
2405                            "cs_r9_r6_r7_LSL_r10"},
2406                           {{ge, r9, r5, r3, ROR, r5},
2407                            false,
2408                            al,
2409                            "ge r9 r5 r3 ROR r5",
2410                            "ge_r9_r5_r3_ROR_r5"},
2411                           {{vc, r4, r5, r14, LSR, r4},
2412                            false,
2413                            al,
2414                            "vc r4 r5 r14 LSR r4",
2415                            "vc_r4_r5_r14_LSR_r4"},
2416                           {{ne, r13, r12, r2, ASR, r14},
2417                            false,
2418                            al,
2419                            "ne r13 r12 r2 ASR r14",
2420                            "ne_r13_r12_r2_ASR_r14"},
2421                           {{gt, r2, r9, r11, LSR, r13},
2422                            false,
2423                            al,
2424                            "gt r2 r9 r11 LSR r13",
2425                            "gt_r2_r9_r11_LSR_r13"},
2426                           {{mi, r10, r11, r8, LSR, r1},
2427                            false,
2428                            al,
2429                            "mi r10 r11 r8 LSR r1",
2430                            "mi_r10_r11_r8_LSR_r1"},
2431                           {{hi, r6, r8, r1, ASR, r6},
2432                            false,
2433                            al,
2434                            "hi r6 r8 r1 ASR r6",
2435                            "hi_r6_r8_r1_ASR_r6"},
2436                           {{eq, r10, r12, r5, ROR, r11},
2437                            false,
2438                            al,
2439                            "eq r10 r12 r5 ROR r11",
2440                            "eq_r10_r12_r5_ROR_r11"},
2441                           {{mi, r9, r6, r4, LSL, r1},
2442                            false,
2443                            al,
2444                            "mi r9 r6 r4 LSL r1",
2445                            "mi_r9_r6_r4_LSL_r1"},
2446                           {{vc, r14, r6, r0, ROR, r7},
2447                            false,
2448                            al,
2449                            "vc r14 r6 r0 ROR r7",
2450                            "vc_r14_r6_r0_ROR_r7"},
2451                           {{mi, r10, r3, r12, LSL, r2},
2452                            false,
2453                            al,
2454                            "mi r10 r3 r12 LSL r2",
2455                            "mi_r10_r3_r12_LSL_r2"},
2456                           {{pl, r9, r6, r9, LSR, r14},
2457                            false,
2458                            al,
2459                            "pl r9 r6 r9 LSR r14",
2460                            "pl_r9_r6_r9_LSR_r14"},
2461                           {{al, r10, r5, r10, ROR, r1},
2462                            false,
2463                            al,
2464                            "al r10 r5 r10 ROR r1",
2465                            "al_r10_r5_r10_ROR_r1"},
2466                           {{ne, r9, r6, r2, ASR, r3},
2467                            false,
2468                            al,
2469                            "ne r9 r6 r2 ASR r3",
2470                            "ne_r9_r6_r2_ASR_r3"},
2471                           {{hi, r4, r9, r4, LSL, r6},
2472                            false,
2473                            al,
2474                            "hi r4 r9 r4 LSL r6",
2475                            "hi_r4_r9_r4_LSL_r6"},
2476                           {{vs, r1, r9, r7, ASR, r7},
2477                            false,
2478                            al,
2479                            "vs r1 r9 r7 ASR r7",
2480                            "vs_r1_r9_r7_ASR_r7"},
2481                           {{ne, r10, r13, r9, ASR, r14},
2482                            false,
2483                            al,
2484                            "ne r10 r13 r9 ASR r14",
2485                            "ne_r10_r13_r9_ASR_r14"},
2486                           {{gt, r11, r13, r12, ASR, r12},
2487                            false,
2488                            al,
2489                            "gt r11 r13 r12 ASR r12",
2490                            "gt_r11_r13_r12_ASR_r12"},
2491                           {{lt, r3, r5, r0, LSR, r10},
2492                            false,
2493                            al,
2494                            "lt r3 r5 r0 LSR r10",
2495                            "lt_r3_r5_r0_LSR_r10"},
2496                           {{gt, r4, r8, r13, ROR, r7},
2497                            false,
2498                            al,
2499                            "gt r4 r8 r13 ROR r7",
2500                            "gt_r4_r8_r13_ROR_r7"},
2501                           {{ls, r14, r14, r0, ASR, r3},
2502                            false,
2503                            al,
2504                            "ls r14 r14 r0 ASR r3",
2505                            "ls_r14_r14_r0_ASR_r3"},
2506                           {{vc, r2, r7, r9, ASR, r5},
2507                            false,
2508                            al,
2509                            "vc r2 r7 r9 ASR r5",
2510                            "vc_r2_r7_r9_ASR_r5"},
2511                           {{mi, r9, r3, r10, LSR, r10},
2512                            false,
2513                            al,
2514                            "mi r9 r3 r10 LSR r10",
2515                            "mi_r9_r3_r10_LSR_r10"},
2516                           {{gt, r11, r10, r3, ASR, r11},
2517                            false,
2518                            al,
2519                            "gt r11 r10 r3 ASR r11",
2520                            "gt_r11_r10_r3_ASR_r11"},
2521                           {{cc, r3, r14, r2, ROR, r12},
2522                            false,
2523                            al,
2524                            "cc r3 r14 r2 ROR r12",
2525                            "cc_r3_r14_r2_ROR_r12"},
2526                           {{ls, r3, r5, r14, ROR, r12},
2527                            false,
2528                            al,
2529                            "ls r3 r5 r14 ROR r12",
2530                            "ls_r3_r5_r14_ROR_r12"},
2531                           {{al, r6, r0, r11, ASR, r0},
2532                            false,
2533                            al,
2534                            "al r6 r0 r11 ASR r0",
2535                            "al_r6_r0_r11_ASR_r0"},
2536                           {{al, r14, r12, r13, LSL, r8},
2537                            false,
2538                            al,
2539                            "al r14 r12 r13 LSL r8",
2540                            "al_r14_r12_r13_LSL_r8"},
2541                           {{cs, r12, r9, r14, ROR, r4},
2542                            false,
2543                            al,
2544                            "cs r12 r9 r14 ROR r4",
2545                            "cs_r12_r9_r14_ROR_r4"},
2546                           {{vs, r4, r9, r6, LSL, r10},
2547                            false,
2548                            al,
2549                            "vs r4 r9 r6 LSL r10",
2550                            "vs_r4_r9_r6_LSL_r10"},
2551                           {{eq, r6, r1, r4, ASR, r6},
2552                            false,
2553                            al,
2554                            "eq r6 r1 r4 ASR r6",
2555                            "eq_r6_r1_r4_ASR_r6"},
2556                           {{ge, r6, r11, r2, LSR, r10},
2557                            false,
2558                            al,
2559                            "ge r6 r11 r2 LSR r10",
2560                            "ge_r6_r11_r2_LSR_r10"},
2561                           {{cc, r10, r14, r4, LSR, r0},
2562                            false,
2563                            al,
2564                            "cc r10 r14 r4 LSR r0",
2565                            "cc_r10_r14_r4_LSR_r0"},
2566                           {{ge, r0, r12, r1, ROR, r5},
2567                            false,
2568                            al,
2569                            "ge r0 r12 r1 ROR r5",
2570                            "ge_r0_r12_r1_ROR_r5"},
2571                           {{ls, r1, r13, r10, ASR, r5},
2572                            false,
2573                            al,
2574                            "ls r1 r13 r10 ASR r5",
2575                            "ls_r1_r13_r10_ASR_r5"},
2576                           {{cc, r9, r8, r5, ASR, r5},
2577                            false,
2578                            al,
2579                            "cc r9 r8 r5 ASR r5",
2580                            "cc_r9_r8_r5_ASR_r5"},
2581                           {{ls, r6, r5, r1, LSL, r11},
2582                            false,
2583                            al,
2584                            "ls r6 r5 r1 LSL r11",
2585                            "ls_r6_r5_r1_LSL_r11"},
2586                           {{ne, r2, r12, r1, ROR, r10},
2587                            false,
2588                            al,
2589                            "ne r2 r12 r1 ROR r10",
2590                            "ne_r2_r12_r1_ROR_r10"},
2591                           {{cc, r2, r9, r9, LSR, r1},
2592                            false,
2593                            al,
2594                            "cc r2 r9 r9 LSR r1",
2595                            "cc_r2_r9_r9_LSR_r1"},
2596                           {{ne, r1, r8, r1, ASR, r14},
2597                            false,
2598                            al,
2599                            "ne r1 r8 r1 ASR r14",
2600                            "ne_r1_r8_r1_ASR_r14"},
2601                           {{lt, r9, r2, r1, LSR, r10},
2602                            false,
2603                            al,
2604                            "lt r9 r2 r1 LSR r10",
2605                            "lt_r9_r2_r1_LSR_r10"},
2606                           {{cc, r14, r11, r9, ROR, r6},
2607                            false,
2608                            al,
2609                            "cc r14 r11 r9 ROR r6",
2610                            "cc_r14_r11_r9_ROR_r6"},
2611                           {{eq, r3, r12, r13, ASR, r0},
2612                            false,
2613                            al,
2614                            "eq r3 r12 r13 ASR r0",
2615                            "eq_r3_r12_r13_ASR_r0"},
2616                           {{le, r6, r6, r6, ASR, r2},
2617                            false,
2618                            al,
2619                            "le r6 r6 r6 ASR r2",
2620                            "le_r6_r6_r6_ASR_r2"},
2621                           {{mi, r11, r14, r4, ASR, r1},
2622                            false,
2623                            al,
2624                            "mi r11 r14 r4 ASR r1",
2625                            "mi_r11_r14_r4_ASR_r1"},
2626                           {{ls, r5, r9, r10, LSL, r9},
2627                            false,
2628                            al,
2629                            "ls r5 r9 r10 LSL r9",
2630                            "ls_r5_r9_r10_LSL_r9"},
2631                           {{vc, r12, r9, r3, LSR, r10},
2632                            false,
2633                            al,
2634                            "vc r12 r9 r3 LSR r10",
2635                            "vc_r12_r9_r3_LSR_r10"},
2636                           {{lt, r12, r0, r4, ASR, r0},
2637                            false,
2638                            al,
2639                            "lt r12 r0 r4 ASR r0",
2640                            "lt_r12_r0_r4_ASR_r0"},
2641                           {{mi, r0, r10, r6, ROR, r9},
2642                            false,
2643                            al,
2644                            "mi r0 r10 r6 ROR r9",
2645                            "mi_r0_r10_r6_ROR_r9"},
2646                           {{hi, r7, r10, r1, LSL, r7},
2647                            false,
2648                            al,
2649                            "hi r7 r10 r1 LSL r7",
2650                            "hi_r7_r10_r1_LSL_r7"},
2651                           {{ls, r2, r0, r14, ROR, r5},
2652                            false,
2653                            al,
2654                            "ls r2 r0 r14 ROR r5",
2655                            "ls_r2_r0_r14_ROR_r5"},
2656                           {{cs, r12, r14, r12, LSR, r10},
2657                            false,
2658                            al,
2659                            "cs r12 r14 r12 LSR r10",
2660                            "cs_r12_r14_r12_LSR_r10"},
2661                           {{le, r9, r0, r6, ROR, r2},
2662                            false,
2663                            al,
2664                            "le r9 r0 r6 ROR r2",
2665                            "le_r9_r0_r6_ROR_r2"},
2666                           {{cc, r3, r10, r4, LSR, r12},
2667                            false,
2668                            al,
2669                            "cc r3 r10 r4 LSR r12",
2670                            "cc_r3_r10_r4_LSR_r12"},
2671                           {{mi, r4, r5, r2, ASR, r14},
2672                            false,
2673                            al,
2674                            "mi r4 r5 r2 ASR r14",
2675                            "mi_r4_r5_r2_ASR_r14"},
2676                           {{vc, r12, r8, r10, ROR, r14},
2677                            false,
2678                            al,
2679                            "vc r12 r8 r10 ROR r14",
2680                            "vc_r12_r8_r10_ROR_r14"},
2681                           {{al, r5, r14, r4, ASR, r10},
2682                            false,
2683                            al,
2684                            "al r5 r14 r4 ASR r10",
2685                            "al_r5_r14_r4_ASR_r10"},
2686                           {{ls, r13, r8, r3, ASR, r1},
2687                            false,
2688                            al,
2689                            "ls r13 r8 r3 ASR r1",
2690                            "ls_r13_r8_r3_ASR_r1"},
2691                           {{le, r10, r1, r2, LSR, r4},
2692                            false,
2693                            al,
2694                            "le r10 r1 r2 LSR r4",
2695                            "le_r10_r1_r2_LSR_r4"},
2696                           {{ne, r0, r2, r10, ROR, r7},
2697                            false,
2698                            al,
2699                            "ne r0 r2 r10 ROR r7",
2700                            "ne_r0_r2_r10_ROR_r7"},
2701                           {{vs, r11, r13, r11, LSR, r12},
2702                            false,
2703                            al,
2704                            "vs r11 r13 r11 LSR r12",
2705                            "vs_r11_r13_r11_LSR_r12"},
2706                           {{vs, r10, r10, r8, ROR, r8},
2707                            false,
2708                            al,
2709                            "vs r10 r10 r8 ROR r8",
2710                            "vs_r10_r10_r8_ROR_r8"},
2711                           {{ne, r7, r2, r9, LSL, r11},
2712                            false,
2713                            al,
2714                            "ne r7 r2 r9 LSL r11",
2715                            "ne_r7_r2_r9_LSL_r11"},
2716                           {{mi, r5, r12, r11, ASR, r5},
2717                            false,
2718                            al,
2719                            "mi r5 r12 r11 ASR r5",
2720                            "mi_r5_r12_r11_ASR_r5"},
2721                           {{le, r1, r10, r5, ROR, r5},
2722                            false,
2723                            al,
2724                            "le r1 r10 r5 ROR r5",
2725                            "le_r1_r10_r5_ROR_r5"},
2726                           {{cc, r3, r14, r3, ASR, r6},
2727                            false,
2728                            al,
2729                            "cc r3 r14 r3 ASR r6",
2730                            "cc_r3_r14_r3_ASR_r6"},
2731                           {{vc, r4, r4, r0, ROR, r2},
2732                            false,
2733                            al,
2734                            "vc r4 r4 r0 ROR r2",
2735                            "vc_r4_r4_r0_ROR_r2"},
2736                           {{le, r3, r4, r12, ROR, r14},
2737                            false,
2738                            al,
2739                            "le r3 r4 r12 ROR r14",
2740                            "le_r3_r4_r12_ROR_r14"},
2741                           {{al, r3, r7, r14, LSL, r11},
2742                            false,
2743                            al,
2744                            "al r3 r7 r14 LSL r11",
2745                            "al_r3_r7_r14_LSL_r11"},
2746                           {{vc, r8, r11, r0, LSL, r11},
2747                            false,
2748                            al,
2749                            "vc r8 r11 r0 LSL r11",
2750                            "vc_r8_r11_r0_LSL_r11"},
2751                           {{vs, r12, r9, r14, LSR, r2},
2752                            false,
2753                            al,
2754                            "vs r12 r9 r14 LSR r2",
2755                            "vs_r12_r9_r14_LSR_r2"},
2756                           {{hi, r3, r5, r5, ROR, r6},
2757                            false,
2758                            al,
2759                            "hi r3 r5 r5 ROR r6",
2760                            "hi_r3_r5_r5_ROR_r6"},
2761                           {{cs, r9, r3, r13, ASR, r7},
2762                            false,
2763                            al,
2764                            "cs r9 r3 r13 ASR r7",
2765                            "cs_r9_r3_r13_ASR_r7"},
2766                           {{eq, r14, r3, r6, LSR, r5},
2767                            false,
2768                            al,
2769                            "eq r14 r3 r6 LSR r5",
2770                            "eq_r14_r3_r6_LSR_r5"},
2771                           {{lt, r8, r3, r4, LSR, r13},
2772                            false,
2773                            al,
2774                            "lt r8 r3 r4 LSR r13",
2775                            "lt_r8_r3_r4_LSR_r13"},
2776                           {{vc, r7, r4, r12, ROR, r6},
2777                            false,
2778                            al,
2779                            "vc r7 r4 r12 ROR r6",
2780                            "vc_r7_r4_r12_ROR_r6"},
2781                           {{vs, r5, r3, r3, ASR, r1},
2782                            false,
2783                            al,
2784                            "vs r5 r3 r3 ASR r1",
2785                            "vs_r5_r3_r3_ASR_r1"},
2786                           {{le, r5, r6, r1, ROR, r7},
2787                            false,
2788                            al,
2789                            "le r5 r6 r1 ROR r7",
2790                            "le_r5_r6_r1_ROR_r7"},
2791                           {{ge, r11, r5, r11, LSL, r12},
2792                            false,
2793                            al,
2794                            "ge r11 r5 r11 LSL r12",
2795                            "ge_r11_r5_r11_LSL_r12"},
2796                           {{lt, r0, r3, r7, ASR, r14},
2797                            false,
2798                            al,
2799                            "lt r0 r3 r7 ASR r14",
2800                            "lt_r0_r3_r7_ASR_r14"},
2801                           {{cs, r9, r2, r10, LSL, r1},
2802                            false,
2803                            al,
2804                            "cs r9 r2 r10 LSL r1",
2805                            "cs_r9_r2_r10_LSL_r1"},
2806                           {{cs, r6, r8, r6, ASR, r1},
2807                            false,
2808                            al,
2809                            "cs r6 r8 r6 ASR r1",
2810                            "cs_r6_r8_r6_ASR_r1"},
2811                           {{lt, r0, r11, r14, ASR, r5},
2812                            false,
2813                            al,
2814                            "lt r0 r11 r14 ASR r5",
2815                            "lt_r0_r11_r14_ASR_r5"},
2816                           {{ge, r11, r11, r2, ASR, r3},
2817                            false,
2818                            al,
2819                            "ge r11 r11 r2 ASR r3",
2820                            "ge_r11_r11_r2_ASR_r3"},
2821                           {{lt, r0, r0, r14, LSL, r2},
2822                            false,
2823                            al,
2824                            "lt r0 r0 r14 LSL r2",
2825                            "lt_r0_r0_r14_LSL_r2"},
2826                           {{cs, r8, r9, r11, ROR, r8},
2827                            false,
2828                            al,
2829                            "cs r8 r9 r11 ROR r8",
2830                            "cs_r8_r9_r11_ROR_r8"},
2831                           {{pl, r9, r5, r12, ASR, r14},
2832                            false,
2833                            al,
2834                            "pl r9 r5 r12 ASR r14",
2835                            "pl_r9_r5_r12_ASR_r14"},
2836                           {{eq, r13, r11, r1, LSR, r1},
2837                            false,
2838                            al,
2839                            "eq r13 r11 r1 LSR r1",
2840                            "eq_r13_r11_r1_LSR_r1"},
2841                           {{ne, r1, r0, r13, ROR, r0},
2842                            false,
2843                            al,
2844                            "ne r1 r0 r13 ROR r0",
2845                            "ne_r1_r0_r13_ROR_r0"},
2846                           {{hi, r6, r5, r9, LSR, r10},
2847                            false,
2848                            al,
2849                            "hi r6 r5 r9 LSR r10",
2850                            "hi_r6_r5_r9_LSR_r10"},
2851                           {{lt, r4, r7, r7, ASR, r9},
2852                            false,
2853                            al,
2854                            "lt r4 r7 r7 ASR r9",
2855                            "lt_r4_r7_r7_ASR_r9"},
2856                           {{ls, r13, r13, r5, LSR, r1},
2857                            false,
2858                            al,
2859                            "ls r13 r13 r5 LSR r1",
2860                            "ls_r13_r13_r5_LSR_r1"},
2861                           {{cs, r12, r1, r6, LSR, r14},
2862                            false,
2863                            al,
2864                            "cs r12 r1 r6 LSR r14",
2865                            "cs_r12_r1_r6_LSR_r14"},
2866                           {{hi, r11, r0, r5, LSR, r3},
2867                            false,
2868                            al,
2869                            "hi r11 r0 r5 LSR r3",
2870                            "hi_r11_r0_r5_LSR_r3"},
2871                           {{ne, r5, r2, r14, LSR, r1},
2872                            false,
2873                            al,
2874                            "ne r5 r2 r14 LSR r1",
2875                            "ne_r5_r2_r14_LSR_r1"},
2876                           {{le, r6, r12, r9, LSR, r5},
2877                            false,
2878                            al,
2879                            "le r6 r12 r9 LSR r5",
2880                            "le_r6_r12_r9_LSR_r5"},
2881                           {{cs, r1, r11, r1, LSL, r2},
2882                            false,
2883                            al,
2884                            "cs r1 r11 r1 LSL r2",
2885                            "cs_r1_r11_r1_LSL_r2"},
2886                           {{al, r14, r10, r8, ASR, r4},
2887                            false,
2888                            al,
2889                            "al r14 r10 r8 ASR r4",
2890                            "al_r14_r10_r8_ASR_r4"},
2891                           {{al, r11, r10, r8, LSL, r6},
2892                            false,
2893                            al,
2894                            "al r11 r10 r8 LSL r6",
2895                            "al_r11_r10_r8_LSL_r6"},
2896                           {{vs, r1, r2, r1, LSL, r11},
2897                            false,
2898                            al,
2899                            "vs r1 r2 r1 LSL r11",
2900                            "vs_r1_r2_r1_LSL_r11"},
2901                           {{cs, r10, r14, r14, LSL, r0},
2902                            false,
2903                            al,
2904                            "cs r10 r14 r14 LSL r0",
2905                            "cs_r10_r14_r14_LSL_r0"},
2906                           {{pl, r0, r1, r14, ROR, r10},
2907                            false,
2908                            al,
2909                            "pl r0 r1 r14 ROR r10",
2910                            "pl_r0_r1_r14_ROR_r10"},
2911                           {{pl, r3, r7, r5, LSR, r1},
2912                            false,
2913                            al,
2914                            "pl r3 r7 r5 LSR r1",
2915                            "pl_r3_r7_r5_LSR_r1"},
2916                           {{gt, r2, r14, r10, LSL, r6},
2917                            false,
2918                            al,
2919                            "gt r2 r14 r10 LSL r6",
2920                            "gt_r2_r14_r10_LSL_r6"},
2921                           {{le, r7, r7, r8, ROR, r0},
2922                            false,
2923                            al,
2924                            "le r7 r7 r8 ROR r0",
2925                            "le_r7_r7_r8_ROR_r0"},
2926                           {{cs, r7, r9, r8, LSL, r14},
2927                            false,
2928                            al,
2929                            "cs r7 r9 r8 LSL r14",
2930                            "cs_r7_r9_r8_LSL_r14"},
2931                           {{cs, r11, r4, r3, LSR, r10},
2932                            false,
2933                            al,
2934                            "cs r11 r4 r3 LSR r10",
2935                            "cs_r11_r4_r3_LSR_r10"},
2936                           {{cc, r9, r1, r12, ROR, r4},
2937                            false,
2938                            al,
2939                            "cc r9 r1 r12 ROR r4",
2940                            "cc_r9_r1_r12_ROR_r4"},
2941                           {{hi, r10, r0, r10, LSL, r8},
2942                            false,
2943                            al,
2944                            "hi r10 r0 r10 LSL r8",
2945                            "hi_r10_r0_r10_LSL_r8"},
2946                           {{eq, r14, r1, r0, LSL, r11},
2947                            false,
2948                            al,
2949                            "eq r14 r1 r0 LSL r11",
2950                            "eq_r14_r1_r0_LSL_r11"},
2951                           {{mi, r9, r11, r5, ROR, r5},
2952                            false,
2953                            al,
2954                            "mi r9 r11 r5 ROR r5",
2955                            "mi_r9_r11_r5_ROR_r5"},
2956                           {{le, r5, r9, r2, LSL, r1},
2957                            false,
2958                            al,
2959                            "le r5 r9 r2 LSL r1",
2960                            "le_r5_r9_r2_LSL_r1"},
2961                           {{pl, r7, r7, r8, ASR, r13},
2962                            false,
2963                            al,
2964                            "pl r7 r7 r8 ASR r13",
2965                            "pl_r7_r7_r8_ASR_r13"},
2966                           {{gt, r14, r13, r10, ASR, r11},
2967                            false,
2968                            al,
2969                            "gt r14 r13 r10 ASR r11",
2970                            "gt_r14_r13_r10_ASR_r11"},
2971                           {{cs, r4, r6, r5, LSR, r7},
2972                            false,
2973                            al,
2974                            "cs r4 r6 r5 LSR r7",
2975                            "cs_r4_r6_r5_LSR_r7"},
2976                           {{lt, r2, r7, r7, LSL, r6},
2977                            false,
2978                            al,
2979                            "lt r2 r7 r7 LSL r6",
2980                            "lt_r2_r7_r7_LSL_r6"},
2981                           {{al, r4, r5, r2, ROR, r5},
2982                            false,
2983                            al,
2984                            "al r4 r5 r2 ROR r5",
2985                            "al_r4_r5_r2_ROR_r5"},
2986                           {{cc, r6, r2, r9, ROR, r7},
2987                            false,
2988                            al,
2989                            "cc r6 r2 r9 ROR r7",
2990                            "cc_r6_r2_r9_ROR_r7"},
2991                           {{pl, r4, r0, r0, LSR, r11},
2992                            false,
2993                            al,
2994                            "pl r4 r0 r0 LSR r11",
2995                            "pl_r4_r0_r0_LSR_r11"},
2996                           {{pl, r6, r10, r12, LSL, r11},
2997                            false,
2998                            al,
2999                            "pl r6 r10 r12 LSL r11",
3000                            "pl_r6_r10_r12_LSL_r11"},
3001                           {{al, r0, r14, r1, LSR, r6},
3002                            false,
3003                            al,
3004                            "al r0 r14 r1 LSR r6",
3005                            "al_r0_r14_r1_LSR_r6"},
3006                           {{cs, r7, r9, r13, LSR, r1},
3007                            false,
3008                            al,
3009                            "cs r7 r9 r13 LSR r1",
3010                            "cs_r7_r9_r13_LSR_r1"},
3011                           {{al, r4, r2, r10, ROR, r3},
3012                            false,
3013                            al,
3014                            "al r4 r2 r10 ROR r3",
3015                            "al_r4_r2_r10_ROR_r3"},
3016                           {{gt, r12, r4, r14, ROR, r7},
3017                            false,
3018                            al,
3019                            "gt r12 r4 r14 ROR r7",
3020                            "gt_r12_r4_r14_ROR_r7"},
3021                           {{cs, r11, r0, r14, ASR, r7},
3022                            false,
3023                            al,
3024                            "cs r11 r0 r14 ASR r7",
3025                            "cs_r11_r0_r14_ASR_r7"},
3026                           {{pl, r0, r2, r4, ASR, r14},
3027                            false,
3028                            al,
3029                            "pl r0 r2 r4 ASR r14",
3030                            "pl_r0_r2_r4_ASR_r14"},
3031                           {{mi, r14, r4, r9, LSR, r5},
3032                            false,
3033                            al,
3034                            "mi r14 r4 r9 LSR r5",
3035                            "mi_r14_r4_r9_LSR_r5"},
3036                           {{ge, r13, r0, r1, ROR, r5},
3037                            false,
3038                            al,
3039                            "ge r13 r0 r1 ROR r5",
3040                            "ge_r13_r0_r1_ROR_r5"},
3041                           {{eq, r12, r14, r0, LSL, r11},
3042                            false,
3043                            al,
3044                            "eq r12 r14 r0 LSL r11",
3045                            "eq_r12_r14_r0_LSL_r11"},
3046                           {{ge, r6, r4, r10, ROR, r13},
3047                            false,
3048                            al,
3049                            "ge r6 r4 r10 ROR r13",
3050                            "ge_r6_r4_r10_ROR_r13"},
3051                           {{lt, r3, r7, r2, ASR, r5},
3052                            false,
3053                            al,
3054                            "lt r3 r7 r2 ASR r5",
3055                            "lt_r3_r7_r2_ASR_r5"},
3056                           {{al, r9, r0, r12, ROR, r0},
3057                            false,
3058                            al,
3059                            "al r9 r0 r12 ROR r0",
3060                            "al_r9_r0_r12_ROR_r0"},
3061                           {{le, r1, r9, r7, LSL, r12},
3062                            false,
3063                            al,
3064                            "le r1 r9 r7 LSL r12",
3065                            "le_r1_r9_r7_LSL_r12"},
3066                           {{lt, r14, r7, r4, ASR, r7},
3067                            false,
3068                            al,
3069                            "lt r14 r7 r4 ASR r7",
3070                            "lt_r14_r7_r4_ASR_r7"},
3071                           {{ne, r4, r6, r9, LSR, r8},
3072                            false,
3073                            al,
3074                            "ne r4 r6 r9 LSR r8",
3075                            "ne_r4_r6_r9_LSR_r8"},
3076                           {{cc, r0, r5, r1, ASR, r6},
3077                            false,
3078                            al,
3079                            "cc r0 r5 r1 ASR r6",
3080                            "cc_r0_r5_r1_ASR_r6"},
3081                           {{cc, r2, r13, r2, ROR, r6},
3082                            false,
3083                            al,
3084                            "cc r2 r13 r2 ROR r6",
3085                            "cc_r2_r13_r2_ROR_r6"},
3086                           {{ge, r10, r0, r9, ROR, r6},
3087                            false,
3088                            al,
3089                            "ge r10 r0 r9 ROR r6",
3090                            "ge_r10_r0_r9_ROR_r6"},
3091                           {{gt, r8, r1, r11, LSR, r0},
3092                            false,
3093                            al,
3094                            "gt r8 r1 r11 LSR r0",
3095                            "gt_r8_r1_r11_LSR_r0"},
3096                           {{al, r14, r0, r9, LSL, r0},
3097                            false,
3098                            al,
3099                            "al r14 r0 r9 LSL r0",
3100                            "al_r14_r0_r9_LSL_r0"},
3101                           {{hi, r12, r3, r12, ROR, r9},
3102                            false,
3103                            al,
3104                            "hi r12 r3 r12 ROR r9",
3105                            "hi_r12_r3_r12_ROR_r9"},
3106                           {{eq, r4, r12, r3, LSL, r2},
3107                            false,
3108                            al,
3109                            "eq r4 r12 r3 LSL r2",
3110                            "eq_r4_r12_r3_LSL_r2"},
3111                           {{ne, r5, r3, r4, LSL, r4},
3112                            false,
3113                            al,
3114                            "ne r5 r3 r4 LSL r4",
3115                            "ne_r5_r3_r4_LSL_r4"},
3116                           {{vc, r8, r6, r10, LSL, r11},
3117                            false,
3118                            al,
3119                            "vc r8 r6 r10 LSL r11",
3120                            "vc_r8_r6_r10_LSL_r11"},
3121                           {{lt, r0, r1, r4, ASR, r3},
3122                            false,
3123                            al,
3124                            "lt r0 r1 r4 ASR r3",
3125                            "lt_r0_r1_r4_ASR_r3"},
3126                           {{le, r14, r4, r1, ROR, r7},
3127                            false,
3128                            al,
3129                            "le r14 r4 r1 ROR r7",
3130                            "le_r14_r4_r1_ROR_r7"},
3131                           {{al, r12, r12, r5, LSL, r2},
3132                            false,
3133                            al,
3134                            "al r12 r12 r5 LSL r2",
3135                            "al_r12_r12_r5_LSL_r2"},
3136                           {{eq, r10, r3, r10, ROR, r13},
3137                            false,
3138                            al,
3139                            "eq r10 r3 r10 ROR r13",
3140                            "eq_r10_r3_r10_ROR_r13"},
3141                           {{ne, r7, r10, r1, LSR, r14},
3142                            false,
3143                            al,
3144                            "ne r7 r10 r1 LSR r14",
3145                            "ne_r7_r10_r1_LSR_r14"},
3146                           {{lt, r10, r4, r10, LSR, r5},
3147                            false,
3148                            al,
3149                            "lt r10 r4 r10 LSR r5",
3150                            "lt_r10_r4_r10_LSR_r5"},
3151                           {{pl, r0, r14, r0, LSL, r2},
3152                            false,
3153                            al,
3154                            "pl r0 r14 r0 LSL r2",
3155                            "pl_r0_r14_r0_LSL_r2"},
3156                           {{gt, r7, r4, r11, LSL, r3},
3157                            false,
3158                            al,
3159                            "gt r7 r4 r11 LSL r3",
3160                            "gt_r7_r4_r11_LSL_r3"},
3161                           {{cs, r8, r2, r1, LSR, r8},
3162                            false,
3163                            al,
3164                            "cs r8 r2 r1 LSR r8",
3165                            "cs_r8_r2_r1_LSR_r8"},
3166                           {{pl, r9, r11, r4, ASR, r7},
3167                            false,
3168                            al,
3169                            "pl r9 r11 r4 ASR r7",
3170                            "pl_r9_r11_r4_ASR_r7"},
3171                           {{cc, r9, r5, r12, ROR, r4},
3172                            false,
3173                            al,
3174                            "cc r9 r5 r12 ROR r4",
3175                            "cc_r9_r5_r12_ROR_r4"},
3176                           {{vc, r0, r11, r3, LSR, r12},
3177                            false,
3178                            al,
3179                            "vc r0 r11 r3 LSR r12",
3180                            "vc_r0_r11_r3_LSR_r12"},
3181                           {{gt, r6, r2, r4, LSR, r4},
3182                            false,
3183                            al,
3184                            "gt r6 r2 r4 LSR r4",
3185                            "gt_r6_r2_r4_LSR_r4"},
3186                           {{lt, r4, r2, r0, LSL, r12},
3187                            false,
3188                            al,
3189                            "lt r4 r2 r0 LSL r12",
3190                            "lt_r4_r2_r0_LSL_r12"},
3191                           {{le, r9, r4, r13, ROR, r5},
3192                            false,
3193                            al,
3194                            "le r9 r4 r13 ROR r5",
3195                            "le_r9_r4_r13_ROR_r5"},
3196                           {{vs, r9, r3, r8, LSR, r8},
3197                            false,
3198                            al,
3199                            "vs r9 r3 r8 LSR r8",
3200                            "vs_r9_r3_r8_LSR_r8"},
3201                           {{ne, r3, r8, r14, ROR, r8},
3202                            false,
3203                            al,
3204                            "ne r3 r8 r14 ROR r8",
3205                            "ne_r3_r8_r14_ROR_r8"},
3206                           {{vc, r12, r13, r4, LSR, r9},
3207                            false,
3208                            al,
3209                            "vc r12 r13 r4 LSR r9",
3210                            "vc_r12_r13_r4_LSR_r9"},
3211                           {{cc, r14, r0, r8, LSL, r1},
3212                            false,
3213                            al,
3214                            "cc r14 r0 r8 LSL r1",
3215                            "cc_r14_r0_r8_LSL_r1"},
3216                           {{hi, r6, r3, r5, ASR, r9},
3217                            false,
3218                            al,
3219                            "hi r6 r3 r5 ASR r9",
3220                            "hi_r6_r3_r5_ASR_r9"},
3221                           {{ne, r14, r4, r3, LSL, r8},
3222                            false,
3223                            al,
3224                            "ne r14 r4 r3 LSL r8",
3225                            "ne_r14_r4_r3_LSL_r8"},
3226                           {{ge, r1, r10, r13, LSR, r4},
3227                            false,
3228                            al,
3229                            "ge r1 r10 r13 LSR r4",
3230                            "ge_r1_r10_r13_LSR_r4"},
3231                           {{vc, r12, r7, r6, ROR, r3},
3232                            false,
3233                            al,
3234                            "vc r12 r7 r6 ROR r3",
3235                            "vc_r12_r7_r6_ROR_r3"},
3236                           {{gt, r0, r6, r7, ROR, r2},
3237                            false,
3238                            al,
3239                            "gt r0 r6 r7 ROR r2",
3240                            "gt_r0_r6_r7_ROR_r2"},
3241                           {{al, r4, r6, r9, LSL, r0},
3242                            false,
3243                            al,
3244                            "al r4 r6 r9 LSL r0",
3245                            "al_r4_r6_r9_LSL_r0"},
3246                           {{ls, r1, r3, r11, LSR, r11},
3247                            false,
3248                            al,
3249                            "ls r1 r3 r11 LSR r11",
3250                            "ls_r1_r3_r11_LSR_r11"},
3251                           {{lt, r3, r11, r1, LSR, r14},
3252                            false,
3253                            al,
3254                            "lt r3 r11 r1 LSR r14",
3255                            "lt_r3_r11_r1_LSR_r14"},
3256                           {{vc, r6, r13, r7, ROR, r11},
3257                            false,
3258                            al,
3259                            "vc r6 r13 r7 ROR r11",
3260                            "vc_r6_r13_r7_ROR_r11"},
3261                           {{vc, r5, r14, r13, ROR, r13},
3262                            false,
3263                            al,
3264                            "vc r5 r14 r13 ROR r13",
3265                            "vc_r5_r14_r13_ROR_r13"},
3266                           {{vc, r1, r4, r11, LSL, r1},
3267                            false,
3268                            al,
3269                            "vc r1 r4 r11 LSL r1",
3270                            "vc_r1_r4_r11_LSL_r1"},
3271                           {{ls, r7, r3, r5, LSR, r6},
3272                            false,
3273                            al,
3274                            "ls r7 r3 r5 LSR r6",
3275                            "ls_r7_r3_r5_LSR_r6"},
3276                           {{vc, r13, r8, r3, ASR, r4},
3277                            false,
3278                            al,
3279                            "vc r13 r8 r3 ASR r4",
3280                            "vc_r13_r8_r3_ASR_r4"},
3281                           {{ls, r2, r3, r10, ROR, r11},
3282                            false,
3283                            al,
3284                            "ls r2 r3 r10 ROR r11",
3285                            "ls_r2_r3_r10_ROR_r11"},
3286                           {{ge, r6, r1, r12, ASR, r11},
3287                            false,
3288                            al,
3289                            "ge r6 r1 r12 ASR r11",
3290                            "ge_r6_r1_r12_ASR_r11"},
3291                           {{lt, r3, r1, r1, ASR, r14},
3292                            false,
3293                            al,
3294                            "lt r3 r1 r1 ASR r14",
3295                            "lt_r3_r1_r1_ASR_r14"},
3296                           {{hi, r2, r7, r14, LSL, r12},
3297                            false,
3298                            al,
3299                            "hi r2 r7 r14 LSL r12",
3300                            "hi_r2_r7_r14_LSL_r12"},
3301                           {{ge, r13, r10, r10, LSL, r14},
3302                            false,
3303                            al,
3304                            "ge r13 r10 r10 LSL r14",
3305                            "ge_r13_r10_r10_LSL_r14"},
3306                           {{le, r0, r1, r3, LSR, r3},
3307                            false,
3308                            al,
3309                            "le r0 r1 r3 LSR r3",
3310                            "le_r0_r1_r3_LSR_r3"},
3311                           {{vs, r10, r7, r7, LSR, r6},
3312                            false,
3313                            al,
3314                            "vs r10 r7 r7 LSR r6",
3315                            "vs_r10_r7_r7_LSR_r6"},
3316                           {{al, r6, r3, r6, LSL, r7},
3317                            false,
3318                            al,
3319                            "al r6 r3 r6 LSL r7",
3320                            "al_r6_r3_r6_LSL_r7"},
3321                           {{ne, r3, r8, r14, ASR, r1},
3322                            false,
3323                            al,
3324                            "ne r3 r8 r14 ASR r1",
3325                            "ne_r3_r8_r14_ASR_r1"},
3326                           {{cc, r4, r10, r4, LSR, r9},
3327                            false,
3328                            al,
3329                            "cc r4 r10 r4 LSR r9",
3330                            "cc_r4_r10_r4_LSR_r9"},
3331                           {{cs, r4, r1, r5, LSR, r10},
3332                            false,
3333                            al,
3334                            "cs r4 r1 r5 LSR r10",
3335                            "cs_r4_r1_r5_LSR_r10"},
3336                           {{eq, r7, r6, r1, LSL, r4},
3337                            false,
3338                            al,
3339                            "eq r7 r6 r1 LSL r4",
3340                            "eq_r7_r6_r1_LSL_r4"},
3341                           {{hi, r3, r7, r1, LSL, r5},
3342                            false,
3343                            al,
3344                            "hi r3 r7 r1 LSL r5",
3345                            "hi_r3_r7_r1_LSL_r5"},
3346                           {{al, r6, r11, r8, LSR, r12},
3347                            false,
3348                            al,
3349                            "al r6 r11 r8 LSR r12",
3350                            "al_r6_r11_r8_LSR_r12"},
3351                           {{ls, r2, r5, r0, LSR, r5},
3352                            false,
3353                            al,
3354                            "ls r2 r5 r0 LSR r5",
3355                            "ls_r2_r5_r0_LSR_r5"},
3356                           {{pl, r4, r5, r13, LSL, r9},
3357                            false,
3358                            al,
3359                            "pl r4 r5 r13 LSL r9",
3360                            "pl_r4_r5_r13_LSL_r9"},
3361                           {{lt, r13, r12, r0, ASR, r8},
3362                            false,
3363                            al,
3364                            "lt r13 r12 r0 ASR r8",
3365                            "lt_r13_r12_r0_ASR_r8"},
3366                           {{cc, r11, r5, r0, LSL, r12},
3367                            false,
3368                            al,
3369                            "cc r11 r5 r0 LSL r12",
3370                            "cc_r11_r5_r0_LSL_r12"},
3371                           {{ne, r6, r2, r2, ROR, r0},
3372                            false,
3373                            al,
3374                            "ne r6 r2 r2 ROR r0",
3375                            "ne_r6_r2_r2_ROR_r0"},
3376                           {{ne, r9, r13, r12, ASR, r6},
3377                            false,
3378                            al,
3379                            "ne r9 r13 r12 ASR r6",
3380                            "ne_r9_r13_r12_ASR_r6"},
3381                           {{cs, r8, r6, r10, ROR, r10},
3382                            false,
3383                            al,
3384                            "cs r8 r6 r10 ROR r10",
3385                            "cs_r8_r6_r10_ROR_r10"},
3386                           {{vs, r10, r6, r1, LSL, r6},
3387                            false,
3388                            al,
3389                            "vs r10 r6 r1 LSL r6",
3390                            "vs_r10_r6_r1_LSL_r6"},
3391                           {{vc, r12, r0, r4, ASR, r10},
3392                            false,
3393                            al,
3394                            "vc r12 r0 r4 ASR r10",
3395                            "vc_r12_r0_r4_ASR_r10"},
3396                           {{cs, r10, r2, r11, ROR, r8},
3397                            false,
3398                            al,
3399                            "cs r10 r2 r11 ROR r8",
3400                            "cs_r10_r2_r11_ROR_r8"},
3401                           {{ne, r0, r9, r14, ASR, r14},
3402                            false,
3403                            al,
3404                            "ne r0 r9 r14 ASR r14",
3405                            "ne_r0_r9_r14_ASR_r14"},
3406                           {{eq, r0, r10, r1, ASR, r8},
3407                            false,
3408                            al,
3409                            "eq r0 r10 r1 ASR r8",
3410                            "eq_r0_r10_r1_ASR_r8"},
3411                           {{gt, r0, r11, r3, LSR, r0},
3412                            false,
3413                            al,
3414                            "gt r0 r11 r3 LSR r0",
3415                            "gt_r0_r11_r3_LSR_r0"},
3416                           {{al, r5, r11, r6, ROR, r14},
3417                            false,
3418                            al,
3419                            "al r5 r11 r6 ROR r14",
3420                            "al_r5_r11_r6_ROR_r14"},
3421                           {{ls, r2, r11, r11, ROR, r2},
3422                            false,
3423                            al,
3424                            "ls r2 r11 r11 ROR r2",
3425                            "ls_r2_r11_r11_ROR_r2"},
3426                           {{cs, r2, r11, r6, ROR, r11},
3427                            false,
3428                            al,
3429                            "cs r2 r11 r6 ROR r11",
3430                            "cs_r2_r11_r6_ROR_r11"},
3431                           {{cs, r4, r9, r11, ASR, r5},
3432                            false,
3433                            al,
3434                            "cs r4 r9 r11 ASR r5",
3435                            "cs_r4_r9_r11_ASR_r5"},
3436                           {{ls, r5, r0, r2, ASR, r3},
3437                            false,
3438                            al,
3439                            "ls r5 r0 r2 ASR r3",
3440                            "ls_r5_r0_r2_ASR_r3"},
3441                           {{cc, r14, r1, r13, LSR, r2},
3442                            false,
3443                            al,
3444                            "cc r14 r1 r13 LSR r2",
3445                            "cc_r14_r1_r13_LSR_r2"},
3446                           {{lt, r4, r5, r6, ASR, r0},
3447                            false,
3448                            al,
3449                            "lt r4 r5 r6 ASR r0",
3450                            "lt_r4_r5_r6_ASR_r0"},
3451                           {{vc, r0, r12, r6, ASR, r6},
3452                            false,
3453                            al,
3454                            "vc r0 r12 r6 ASR r6",
3455                            "vc_r0_r12_r6_ASR_r6"},
3456                           {{pl, r3, r10, r4, LSR, r8},
3457                            false,
3458                            al,
3459                            "pl r3 r10 r4 LSR r8",
3460                            "pl_r3_r10_r4_LSR_r8"},
3461                           {{cc, r10, r5, r10, ASR, r10},
3462                            false,
3463                            al,
3464                            "cc r10 r5 r10 ASR r10",
3465                            "cc_r10_r5_r10_ASR_r10"},
3466                           {{pl, r2, r14, r1, ASR, r10},
3467                            false,
3468                            al,
3469                            "pl r2 r14 r1 ASR r10",
3470                            "pl_r2_r14_r1_ASR_r10"},
3471                           {{eq, r12, r13, r8, ROR, r12},
3472                            false,
3473                            al,
3474                            "eq r12 r13 r8 ROR r12",
3475                            "eq_r12_r13_r8_ROR_r12"},
3476                           {{gt, r9, r8, r2, LSL, r2},
3477                            false,
3478                            al,
3479                            "gt r9 r8 r2 LSL r2",
3480                            "gt_r9_r8_r2_LSL_r2"},
3481                           {{al, r13, r10, r10, LSL, r9},
3482                            false,
3483                            al,
3484                            "al r13 r10 r10 LSL r9",
3485                            "al_r13_r10_r10_LSL_r9"},
3486                           {{eq, r8, r8, r6, ROR, r14},
3487                            false,
3488                            al,
3489                            "eq r8 r8 r6 ROR r14",
3490                            "eq_r8_r8_r6_ROR_r14"},
3491                           {{le, r14, r12, r4, ASR, r13},
3492                            false,
3493                            al,
3494                            "le r14 r12 r4 ASR r13",
3495                            "le_r14_r12_r4_ASR_r13"},
3496                           {{cc, r3, r6, r12, LSR, r2},
3497                            false,
3498                            al,
3499                            "cc r3 r6 r12 LSR r2",
3500                            "cc_r3_r6_r12_LSR_r2"},
3501                           {{ls, r5, r14, r10, LSL, r6},
3502                            false,
3503                            al,
3504                            "ls r5 r14 r10 LSL r6",
3505                            "ls_r5_r14_r10_LSL_r6"},
3506                           {{hi, r12, r2, r1, ROR, r3},
3507                            false,
3508                            al,
3509                            "hi r12 r2 r1 ROR r3",
3510                            "hi_r12_r2_r1_ROR_r3"},
3511                           {{vc, r7, r13, r1, LSL, r12},
3512                            false,
3513                            al,
3514                            "vc r7 r13 r1 LSL r12",
3515                            "vc_r7_r13_r1_LSL_r12"},
3516                           {{cc, r0, r3, r13, LSL, r9},
3517                            false,
3518                            al,
3519                            "cc r0 r3 r13 LSL r9",
3520                            "cc_r0_r3_r13_LSL_r9"},
3521                           {{hi, r0, r11, r5, LSL, r11},
3522                            false,
3523                            al,
3524                            "hi r0 r11 r5 LSL r11",
3525                            "hi_r0_r11_r5_LSL_r11"},
3526                           {{ge, r9, r6, r14, LSR, r14},
3527                            false,
3528                            al,
3529                            "ge r9 r6 r14 LSR r14",
3530                            "ge_r9_r6_r14_LSR_r14"},
3531                           {{vc, r2, r5, r2, ROR, r12},
3532                            false,
3533                            al,
3534                            "vc r2 r5 r2 ROR r12",
3535                            "vc_r2_r5_r2_ROR_r12"},
3536                           {{mi, r9, r6, r9, ASR, r13},
3537                            false,
3538                            al,
3539                            "mi r9 r6 r9 ASR r13",
3540                            "mi_r9_r6_r9_ASR_r13"},
3541                           {{pl, r1, r3, r10, ASR, r2},
3542                            false,
3543                            al,
3544                            "pl r1 r3 r10 ASR r2",
3545                            "pl_r1_r3_r10_ASR_r2"},
3546                           {{le, r10, r9, r7, LSL, r4},
3547                            false,
3548                            al,
3549                            "le r10 r9 r7 LSL r4",
3550                            "le_r10_r9_r7_LSL_r4"},
3551                           {{hi, r7, r4, r10, LSR, r6},
3552                            false,
3553                            al,
3554                            "hi r7 r4 r10 LSR r6",
3555                            "hi_r7_r4_r10_LSR_r6"},
3556                           {{cc, r6, r8, r13, LSR, r3},
3557                            false,
3558                            al,
3559                            "cc r6 r8 r13 LSR r3",
3560                            "cc_r6_r8_r13_LSR_r3"},
3561                           {{cs, r4, r9, r6, ASR, r0},
3562                            false,
3563                            al,
3564                            "cs r4 r9 r6 ASR r0",
3565                            "cs_r4_r9_r6_ASR_r0"},
3566                           {{ls, r0, r2, r4, ASR, r8},
3567                            false,
3568                            al,
3569                            "ls r0 r2 r4 ASR r8",
3570                            "ls_r0_r2_r4_ASR_r8"},
3571                           {{hi, r11, r5, r11, LSR, r1},
3572                            false,
3573                            al,
3574                            "hi r11 r5 r11 LSR r1",
3575                            "hi_r11_r5_r11_LSR_r1"},
3576                           {{vc, r0, r3, r6, LSR, r7},
3577                            false,
3578                            al,
3579                            "vc r0 r3 r6 LSR r7",
3580                            "vc_r0_r3_r6_LSR_r7"},
3581                           {{cs, r13, r10, r8, LSL, r6},
3582                            false,
3583                            al,
3584                            "cs r13 r10 r8 LSL r6",
3585                            "cs_r13_r10_r8_LSL_r6"},
3586                           {{al, r12, r12, r10, ASR, r13},
3587                            false,
3588                            al,
3589                            "al r12 r12 r10 ASR r13",
3590                            "al_r12_r12_r10_ASR_r13"},
3591                           {{ge, r7, r7, r2, ASR, r8},
3592                            false,
3593                            al,
3594                            "ge r7 r7 r2 ASR r8",
3595                            "ge_r7_r7_r2_ASR_r8"},
3596                           {{ne, r10, r7, r6, LSL, r14},
3597                            false,
3598                            al,
3599                            "ne r10 r7 r6 LSL r14",
3600                            "ne_r10_r7_r6_LSL_r14"},
3601                           {{cs, r9, r9, r14, ROR, r0},
3602                            false,
3603                            al,
3604                            "cs r9 r9 r14 ROR r0",
3605                            "cs_r9_r9_r14_ROR_r0"},
3606                           {{lt, r3, r12, r0, ASR, r12},
3607                            false,
3608                            al,
3609                            "lt r3 r12 r0 ASR r12",
3610                            "lt_r3_r12_r0_ASR_r12"},
3611                           {{ne, r6, r9, r3, ASR, r11},
3612                            false,
3613                            al,
3614                            "ne r6 r9 r3 ASR r11",
3615                            "ne_r6_r9_r3_ASR_r11"},
3616                           {{vc, r4, r7, r7, ASR, r7},
3617                            false,
3618                            al,
3619                            "vc r4 r7 r7 ASR r7",
3620                            "vc_r4_r7_r7_ASR_r7"},
3621                           {{ne, r0, r9, r5, LSR, r14},
3622                            false,
3623                            al,
3624                            "ne r0 r9 r5 LSR r14",
3625                            "ne_r0_r9_r5_LSR_r14"},
3626                           {{hi, r8, r13, r1, ROR, r0},
3627                            false,
3628                            al,
3629                            "hi r8 r13 r1 ROR r0",
3630                            "hi_r8_r13_r1_ROR_r0"},
3631                           {{cc, r6, r1, r7, ROR, r5},
3632                            false,
3633                            al,
3634                            "cc r6 r1 r7 ROR r5",
3635                            "cc_r6_r1_r7_ROR_r5"},
3636                           {{vc, r7, r13, r2, LSL, r4},
3637                            false,
3638                            al,
3639                            "vc r7 r13 r2 LSL r4",
3640                            "vc_r7_r13_r2_LSL_r4"},
3641                           {{al, r4, r2, r3, ROR, r10},
3642                            false,
3643                            al,
3644                            "al r4 r2 r3 ROR r10",
3645                            "al_r4_r2_r3_ROR_r10"},
3646                           {{ls, r0, r7, r3, LSR, r12},
3647                            false,
3648                            al,
3649                            "ls r0 r7 r3 LSR r12",
3650                            "ls_r0_r7_r3_LSR_r12"},
3651                           {{ls, r5, r8, r8, ASR, r13},
3652                            false,
3653                            al,
3654                            "ls r5 r8 r8 ASR r13",
3655                            "ls_r5_r8_r8_ASR_r13"},
3656                           {{gt, r0, r6, r12, ASR, r14},
3657                            false,
3658                            al,
3659                            "gt r0 r6 r12 ASR r14",
3660                            "gt_r0_r6_r12_ASR_r14"},
3661                           {{vs, r7, r13, r14, LSR, r11},
3662                            false,
3663                            al,
3664                            "vs r7 r13 r14 LSR r11",
3665                            "vs_r7_r13_r14_LSR_r11"},
3666                           {{mi, r12, r9, r11, LSL, r13},
3667                            false,
3668                            al,
3669                            "mi r12 r9 r11 LSL r13",
3670                            "mi_r12_r9_r11_LSL_r13"},
3671                           {{ge, r0, r0, r7, ROR, r13},
3672                            false,
3673                            al,
3674                            "ge r0 r0 r7 ROR r13",
3675                            "ge_r0_r0_r7_ROR_r13"},
3676                           {{hi, r14, r12, r6, LSR, r8},
3677                            false,
3678                            al,
3679                            "hi r14 r12 r6 LSR r8",
3680                            "hi_r14_r12_r6_LSR_r8"},
3681                           {{cs, r0, r3, r6, LSL, r6},
3682                            false,
3683                            al,
3684                            "cs r0 r3 r6 LSL r6",
3685                            "cs_r0_r3_r6_LSL_r6"},
3686                           {{al, r6, r9, r4, ASR, r3},
3687                            false,
3688                            al,
3689                            "al r6 r9 r4 ASR r3",
3690                            "al_r6_r9_r4_ASR_r3"},
3691                           {{ls, r5, r6, r1, LSR, r3},
3692                            false,
3693                            al,
3694                            "ls r5 r6 r1 LSR r3",
3695                            "ls_r5_r6_r1_LSR_r3"},
3696                           {{ls, r3, r6, r14, ROR, r7},
3697                            false,
3698                            al,
3699                            "ls r3 r6 r14 ROR r7",
3700                            "ls_r3_r6_r14_ROR_r7"},
3701                           {{le, r10, r5, r1, ASR, r12},
3702                            false,
3703                            al,
3704                            "le r10 r5 r1 ASR r12",
3705                            "le_r10_r5_r1_ASR_r12"},
3706                           {{hi, r3, r6, r10, ASR, r5},
3707                            false,
3708                            al,
3709                            "hi r3 r6 r10 ASR r5",
3710                            "hi_r3_r6_r10_ASR_r5"},
3711                           {{mi, r9, r3, r5, ROR, r8},
3712                            false,
3713                            al,
3714                            "mi r9 r3 r5 ROR r8",
3715                            "mi_r9_r3_r5_ROR_r8"},
3716                           {{hi, r10, r13, r8, ROR, r11},
3717                            false,
3718                            al,
3719                            "hi r10 r13 r8 ROR r11",
3720                            "hi_r10_r13_r8_ROR_r11"},
3721                           {{al, r11, r14, r2, ROR, r1},
3722                            false,
3723                            al,
3724                            "al r11 r14 r2 ROR r1",
3725                            "al_r11_r14_r2_ROR_r1"},
3726                           {{gt, r12, r8, r0, ROR, r11},
3727                            false,
3728                            al,
3729                            "gt r12 r8 r0 ROR r11",
3730                            "gt_r12_r8_r0_ROR_r11"},
3731                           {{vc, r1, r0, r1, ROR, r9},
3732                            false,
3733                            al,
3734                            "vc r1 r0 r1 ROR r9",
3735                            "vc_r1_r0_r1_ROR_r9"},
3736                           {{mi, r6, r6, r3, ASR, r5},
3737                            false,
3738                            al,
3739                            "mi r6 r6 r3 ASR r5",
3740                            "mi_r6_r6_r3_ASR_r5"},
3741                           {{ge, r12, r12, r4, ROR, r9},
3742                            false,
3743                            al,
3744                            "ge r12 r12 r4 ROR r9",
3745                            "ge_r12_r12_r4_ROR_r9"},
3746                           {{ls, r4, r6, r9, ASR, r6},
3747                            false,
3748                            al,
3749                            "ls r4 r6 r9 ASR r6",
3750                            "ls_r4_r6_r9_ASR_r6"},
3751                           {{pl, r11, r3, r4, LSR, r9},
3752                            false,
3753                            al,
3754                            "pl r11 r3 r4 LSR r9",
3755                            "pl_r11_r3_r4_LSR_r9"},
3756                           {{hi, r0, r2, r2, ROR, r7},
3757                            false,
3758                            al,
3759                            "hi r0 r2 r2 ROR r7",
3760                            "hi_r0_r2_r2_ROR_r7"},
3761                           {{pl, r3, r12, r0, ASR, r2},
3762                            false,
3763                            al,
3764                            "pl r3 r12 r0 ASR r2",
3765                            "pl_r3_r12_r0_ASR_r2"},
3766                           {{ne, r6, r0, r9, LSL, r4},
3767                            false,
3768                            al,
3769                            "ne r6 r0 r9 LSL r4",
3770                            "ne_r6_r0_r9_LSL_r4"},
3771                           {{vc, r1, r2, r6, ROR, r13},
3772                            false,
3773                            al,
3774                            "vc r1 r2 r6 ROR r13",
3775                            "vc_r1_r2_r6_ROR_r13"},
3776                           {{ge, r9, r1, r12, LSL, r14},
3777                            false,
3778                            al,
3779                            "ge r9 r1 r12 LSL r14",
3780                            "ge_r9_r1_r12_LSL_r14"},
3781                           {{pl, r13, r9, r6, ROR, r14},
3782                            false,
3783                            al,
3784                            "pl r13 r9 r6 ROR r14",
3785                            "pl_r13_r9_r6_ROR_r14"},
3786                           {{gt, r0, r13, r13, LSL, r9},
3787                            false,
3788                            al,
3789                            "gt r0 r13 r13 LSL r9",
3790                            "gt_r0_r13_r13_LSL_r9"},
3791                           {{mi, r13, r5, r5, ASR, r8},
3792                            false,
3793                            al,
3794                            "mi r13 r5 r5 ASR r8",
3795                            "mi_r13_r5_r5_ASR_r8"},
3796                           {{gt, r1, r4, r0, LSL, r6},
3797                            false,
3798                            al,
3799                            "gt r1 r4 r0 LSL r6",
3800                            "gt_r1_r4_r0_LSL_r6"},
3801                           {{ls, r5, r4, r7, ROR, r4},
3802                            false,
3803                            al,
3804                            "ls r5 r4 r7 ROR r4",
3805                            "ls_r5_r4_r7_ROR_r4"},
3806                           {{vc, r8, r8, r0, ROR, r9},
3807                            false,
3808                            al,
3809                            "vc r8 r8 r0 ROR r9",
3810                            "vc_r8_r8_r0_ROR_r9"},
3811                           {{mi, r12, r12, r10, ROR, r8},
3812                            false,
3813                            al,
3814                            "mi r12 r12 r10 ROR r8",
3815                            "mi_r12_r12_r10_ROR_r8"},
3816                           {{hi, r6, r6, r6, LSL, r2},
3817                            false,
3818                            al,
3819                            "hi r6 r6 r6 LSL r2",
3820                            "hi_r6_r6_r6_LSL_r2"},
3821                           {{le, r7, r10, r14, LSL, r1},
3822                            false,
3823                            al,
3824                            "le r7 r10 r14 LSL r1",
3825                            "le_r7_r10_r14_LSL_r1"},
3826                           {{ne, r13, r10, r6, ASR, r9},
3827                            false,
3828                            al,
3829                            "ne r13 r10 r6 ASR r9",
3830                            "ne_r13_r10_r6_ASR_r9"},
3831                           {{ne, r8, r8, r2, LSR, r13},
3832                            false,
3833                            al,
3834                            "ne r8 r8 r2 LSR r13",
3835                            "ne_r8_r8_r2_LSR_r13"},
3836                           {{mi, r0, r10, r14, ROR, r12},
3837                            false,
3838                            al,
3839                            "mi r0 r10 r14 ROR r12",
3840                            "mi_r0_r10_r14_ROR_r12"},
3841                           {{cc, r11, r14, r4, LSL, r5},
3842                            false,
3843                            al,
3844                            "cc r11 r14 r4 LSL r5",
3845                            "cc_r11_r14_r4_LSL_r5"},
3846                           {{cc, r3, r6, r3, ROR, r4},
3847                            false,
3848                            al,
3849                            "cc r3 r6 r3 ROR r4",
3850                            "cc_r3_r6_r3_ROR_r4"},
3851                           {{mi, r11, r1, r7, LSR, r7},
3852                            false,
3853                            al,
3854                            "mi r11 r1 r7 LSR r7",
3855                            "mi_r11_r1_r7_LSR_r7"},
3856                           {{vs, r12, r2, r2, LSL, r12},
3857                            false,
3858                            al,
3859                            "vs r12 r2 r2 LSL r12",
3860                            "vs_r12_r2_r2_LSL_r12"},
3861                           {{pl, r2, r2, r6, LSR, r0},
3862                            false,
3863                            al,
3864                            "pl r2 r2 r6 LSR r0",
3865                            "pl_r2_r2_r6_LSR_r0"},
3866                           {{gt, r11, r12, r7, LSR, r12},
3867                            false,
3868                            al,
3869                            "gt r11 r12 r7 LSR r12",
3870                            "gt_r11_r12_r7_LSR_r12"},
3871                           {{al, r13, r4, r4, ASR, r12},
3872                            false,
3873                            al,
3874                            "al r13 r4 r4 ASR r12",
3875                            "al_r13_r4_r4_ASR_r12"},
3876                           {{le, r9, r1, r9, ROR, r1},
3877                            false,
3878                            al,
3879                            "le r9 r1 r9 ROR r1",
3880                            "le_r9_r1_r9_ROR_r1"},
3881                           {{le, r1, r12, r8, ASR, r14},
3882                            false,
3883                            al,
3884                            "le r1 r12 r8 ASR r14",
3885                            "le_r1_r12_r8_ASR_r14"},
3886                           {{cs, r1, r0, r7, ROR, r13},
3887                            false,
3888                            al,
3889                            "cs r1 r0 r7 ROR r13",
3890                            "cs_r1_r0_r7_ROR_r13"},
3891                           {{le, r0, r7, r7, ROR, r5},
3892                            false,
3893                            al,
3894                            "le r0 r7 r7 ROR r5",
3895                            "le_r0_r7_r7_ROR_r5"},
3896                           {{hi, r6, r5, r7, ROR, r4},
3897                            false,
3898                            al,
3899                            "hi r6 r5 r7 ROR r4",
3900                            "hi_r6_r5_r7_ROR_r4"},
3901                           {{eq, r6, r14, r13, ASR, r1},
3902                            false,
3903                            al,
3904                            "eq r6 r14 r13 ASR r1",
3905                            "eq_r6_r14_r13_ASR_r1"},
3906                           {{lt, r1, r14, r13, LSR, r13},
3907                            false,
3908                            al,
3909                            "lt r1 r14 r13 LSR r13",
3910                            "lt_r1_r14_r13_LSR_r13"},
3911                           {{vs, r13, r1, r2, ROR, r6},
3912                            false,
3913                            al,
3914                            "vs r13 r1 r2 ROR r6",
3915                            "vs_r13_r1_r2_ROR_r6"},
3916                           {{gt, r11, r7, r8, ASR, r3},
3917                            false,
3918                            al,
3919                            "gt r11 r7 r8 ASR r3",
3920                            "gt_r11_r7_r8_ASR_r3"},
3921                           {{hi, r9, r5, r8, ASR, r8},
3922                            false,
3923                            al,
3924                            "hi r9 r5 r8 ASR r8",
3925                            "hi_r9_r5_r8_ASR_r8"},
3926                           {{lt, r10, r9, r5, LSL, r8},
3927                            false,
3928                            al,
3929                            "lt r10 r9 r5 LSL r8",
3930                            "lt_r10_r9_r5_LSL_r8"},
3931                           {{vs, r6, r1, r2, LSL, r4},
3932                            false,
3933                            al,
3934                            "vs r6 r1 r2 LSL r4",
3935                            "vs_r6_r1_r2_LSL_r4"},
3936                           {{pl, r13, r4, r10, LSR, r12},
3937                            false,
3938                            al,
3939                            "pl r13 r4 r10 LSR r12",
3940                            "pl_r13_r4_r10_LSR_r12"},
3941                           {{cs, r9, r8, r8, LSL, r6},
3942                            false,
3943                            al,
3944                            "cs r9 r8 r8 LSL r6",
3945                            "cs_r9_r8_r8_LSL_r6"},
3946                           {{ne, r1, r7, r0, ASR, r2},
3947                            false,
3948                            al,
3949                            "ne r1 r7 r0 ASR r2",
3950                            "ne_r1_r7_r0_ASR_r2"},
3951                           {{cc, r6, r3, r9, ASR, r3},
3952                            false,
3953                            al,
3954                            "cc r6 r3 r9 ASR r3",
3955                            "cc_r6_r3_r9_ASR_r3"},
3956                           {{hi, r13, r14, r7, ROR, r13},
3957                            false,
3958                            al,
3959                            "hi r13 r14 r7 ROR r13",
3960                            "hi_r13_r14_r7_ROR_r13"},
3961                           {{vc, r7, r11, r0, LSR, r8},
3962                            false,
3963                            al,
3964                            "vc r7 r11 r0 LSR r8",
3965                            "vc_r7_r11_r0_LSR_r8"},
3966                           {{al, r3, r2, r7, LSL, r12},
3967                            false,
3968                            al,
3969                            "al r3 r2 r7 LSL r12",
3970                            "al_r3_r2_r7_LSL_r12"},
3971                           {{lt, r0, r5, r5, LSR, r1},
3972                            false,
3973                            al,
3974                            "lt r0 r5 r5 LSR r1",
3975                            "lt_r0_r5_r5_LSR_r1"},
3976                           {{ge, r10, r10, r4, ROR, r11},
3977                            false,
3978                            al,
3979                            "ge r10 r10 r4 ROR r11",
3980                            "ge_r10_r10_r4_ROR_r11"},
3981                           {{ne, r13, r9, r1, ROR, r12},
3982                            false,
3983                            al,
3984                            "ne r13 r9 r1 ROR r12",
3985                            "ne_r13_r9_r1_ROR_r12"},
3986                           {{eq, r6, r6, r2, ROR, r3},
3987                            false,
3988                            al,
3989                            "eq r6 r6 r2 ROR r3",
3990                            "eq_r6_r6_r2_ROR_r3"},
3991                           {{gt, r0, r4, r1, ROR, r5},
3992                            false,
3993                            al,
3994                            "gt r0 r4 r1 ROR r5",
3995                            "gt_r0_r4_r1_ROR_r5"},
3996                           {{lt, r5, r8, r0, ROR, r0},
3997                            false,
3998                            al,
3999                            "lt r5 r8 r0 ROR r0",
4000                            "lt_r5_r8_r0_ROR_r0"},
4001                           {{cs, r5, r13, r2, LSR, r8},
4002                            false,
4003                            al,
4004                            "cs r5 r13 r2 LSR r8",
4005                            "cs_r5_r13_r2_LSR_r8"},
4006                           {{le, r7, r13, r2, LSL, r7},
4007                            false,
4008                            al,
4009                            "le r7 r13 r2 LSL r7",
4010                            "le_r7_r13_r2_LSL_r7"},
4011                           {{gt, r7, r1, r3, LSL, r1},
4012                            false,
4013                            al,
4014                            "gt r7 r1 r3 LSL r1",
4015                            "gt_r7_r1_r3_LSL_r1"},
4016                           {{vc, r4, r13, r10, ROR, r8},
4017                            false,
4018                            al,
4019                            "vc r4 r13 r10 ROR r8",
4020                            "vc_r4_r13_r10_ROR_r8"},
4021                           {{eq, r2, r8, r11, ROR, r4},
4022                            false,
4023                            al,
4024                            "eq r2 r8 r11 ROR r4",
4025                            "eq_r2_r8_r11_ROR_r4"},
4026                           {{le, r10, r1, r6, LSR, r9},
4027                            false,
4028                            al,
4029                            "le r10 r1 r6 LSR r9",
4030                            "le_r10_r1_r6_LSR_r9"},
4031                           {{ge, r5, r1, r9, ASR, r10},
4032                            false,
4033                            al,
4034                            "ge r5 r1 r9 ASR r10",
4035                            "ge_r5_r1_r9_ASR_r10"},
4036                           {{al, r1, r5, r5, LSR, r7},
4037                            false,
4038                            al,
4039                            "al r1 r5 r5 LSR r7",
4040                            "al_r1_r5_r5_LSR_r7"},
4041                           {{cs, r2, r13, r5, LSR, r8},
4042                            false,
4043                            al,
4044                            "cs r2 r13 r5 LSR r8",
4045                            "cs_r2_r13_r5_LSR_r8"},
4046                           {{le, r6, r6, r3, ROR, r3},
4047                            false,
4048                            al,
4049                            "le r6 r6 r3 ROR r3",
4050                            "le_r6_r6_r3_ROR_r3"},
4051                           {{le, r5, r1, r7, ROR, r12},
4052                            false,
4053                            al,
4054                            "le r5 r1 r7 ROR r12",
4055                            "le_r5_r1_r7_ROR_r12"},
4056                           {{cc, r9, r3, r9, ASR, r4},
4057                            false,
4058                            al,
4059                            "cc r9 r3 r9 ASR r4",
4060                            "cc_r9_r3_r9_ASR_r4"},
4061                           {{mi, r6, r2, r9, LSL, r5},
4062                            false,
4063                            al,
4064                            "mi r6 r2 r9 LSL r5",
4065                            "mi_r6_r2_r9_LSL_r5"},
4066                           {{cc, r5, r0, r4, ASR, r12},
4067                            false,
4068                            al,
4069                            "cc r5 r0 r4 ASR r12",
4070                            "cc_r5_r0_r4_ASR_r12"},
4071                           {{vc, r8, r13, r12, LSL, r11},
4072                            false,
4073                            al,
4074                            "vc r8 r13 r12 LSL r11",
4075                            "vc_r8_r13_r12_LSL_r11"},
4076                           {{lt, r7, r14, r9, LSR, r11},
4077                            false,
4078                            al,
4079                            "lt r7 r14 r9 LSR r11",
4080                            "lt_r7_r14_r9_LSR_r11"},
4081                           {{cs, r1, r5, r3, ASR, r1},
4082                            false,
4083                            al,
4084                            "cs r1 r5 r3 ASR r1",
4085                            "cs_r1_r5_r3_ASR_r1"},
4086                           {{lt, r14, r11, r6, ASR, r9},
4087                            false,
4088                            al,
4089                            "lt r14 r11 r6 ASR r9",
4090                            "lt_r14_r11_r6_ASR_r9"},
4091                           {{gt, r10, r5, r13, LSR, r3},
4092                            false,
4093                            al,
4094                            "gt r10 r5 r13 LSR r3",
4095                            "gt_r10_r5_r13_LSR_r3"},
4096                           {{cc, r6, r4, r12, LSL, r4},
4097                            false,
4098                            al,
4099                            "cc r6 r4 r12 LSL r4",
4100                            "cc_r6_r4_r12_LSL_r4"},
4101                           {{ne, r2, r12, r10, ROR, r11},
4102                            false,
4103                            al,
4104                            "ne r2 r12 r10 ROR r11",
4105                            "ne_r2_r12_r10_ROR_r11"},
4106                           {{eq, r8, r0, r6, ASR, r10},
4107                            false,
4108                            al,
4109                            "eq r8 r0 r6 ASR r10",
4110                            "eq_r8_r0_r6_ASR_r10"},
4111                           {{cc, r14, r3, r14, LSR, r7},
4112                            false,
4113                            al,
4114                            "cc r14 r3 r14 LSR r7",
4115                            "cc_r14_r3_r14_LSR_r7"},
4116                           {{lt, r1, r10, r1, ASR, r13},
4117                            false,
4118                            al,
4119                            "lt r1 r10 r1 ASR r13",
4120                            "lt_r1_r10_r1_ASR_r13"},
4121                           {{cc, r14, r3, r0, LSL, r12},
4122                            false,
4123                            al,
4124                            "cc r14 r3 r0 LSL r12",
4125                            "cc_r14_r3_r0_LSL_r12"},
4126                           {{vs, r8, r10, r7, LSL, r2},
4127                            false,
4128                            al,
4129                            "vs r8 r10 r7 LSL r2",
4130                            "vs_r8_r10_r7_LSL_r2"},
4131                           {{ls, r5, r6, r3, ASR, r2},
4132                            false,
4133                            al,
4134                            "ls r5 r6 r3 ASR r2",
4135                            "ls_r5_r6_r3_ASR_r2"},
4136                           {{vc, r11, r5, r13, LSL, r10},
4137                            false,
4138                            al,
4139                            "vc r11 r5 r13 LSL r10",
4140                            "vc_r11_r5_r13_LSL_r10"},
4141                           {{hi, r2, r10, r7, LSR, r0},
4142                            false,
4143                            al,
4144                            "hi r2 r10 r7 LSR r0",
4145                            "hi_r2_r10_r7_LSR_r0"},
4146                           {{ne, r5, r6, r8, ASR, r4},
4147                            false,
4148                            al,
4149                            "ne r5 r6 r8 ASR r4",
4150                            "ne_r5_r6_r8_ASR_r4"},
4151                           {{cs, r3, r12, r8, ASR, r5},
4152                            false,
4153                            al,
4154                            "cs r3 r12 r8 ASR r5",
4155                            "cs_r3_r12_r8_ASR_r5"},
4156                           {{ge, r3, r4, r4, LSR, r0},
4157                            false,
4158                            al,
4159                            "ge r3 r4 r4 LSR r0",
4160                            "ge_r3_r4_r4_LSR_r0"},
4161                           {{ge, r13, r13, r6, ROR, r13},
4162                            false,
4163                            al,
4164                            "ge r13 r13 r6 ROR r13",
4165                            "ge_r13_r13_r6_ROR_r13"},
4166                           {{eq, r4, r9, r0, LSL, r9},
4167                            false,
4168                            al,
4169                            "eq r4 r9 r0 LSL r9",
4170                            "eq_r4_r9_r0_LSL_r9"},
4171                           {{le, r7, r3, r1, ROR, r8},
4172                            false,
4173                            al,
4174                            "le r7 r3 r1 ROR r8",
4175                            "le_r7_r3_r1_ROR_r8"},
4176                           {{gt, r9, r2, r5, LSL, r4},
4177                            false,
4178                            al,
4179                            "gt r9 r2 r5 LSL r4",
4180                            "gt_r9_r2_r5_LSL_r4"},
4181                           {{gt, r10, r12, r9, ROR, r12},
4182                            false,
4183                            al,
4184                            "gt r10 r12 r9 ROR r12",
4185                            "gt_r10_r12_r9_ROR_r12"},
4186                           {{hi, r4, r9, r6, LSR, r14},
4187                            false,
4188                            al,
4189                            "hi r4 r9 r6 LSR r14",
4190                            "hi_r4_r9_r6_LSR_r14"},
4191                           {{pl, r1, r10, r9, LSR, r8},
4192                            false,
4193                            al,
4194                            "pl r1 r10 r9 LSR r8",
4195                            "pl_r1_r10_r9_LSR_r8"},
4196                           {{mi, r0, r11, r2, ROR, r13},
4197                            false,
4198                            al,
4199                            "mi r0 r11 r2 ROR r13",
4200                            "mi_r0_r11_r2_ROR_r13"},
4201                           {{ge, r14, r5, r4, ASR, r2},
4202                            false,
4203                            al,
4204                            "ge r14 r5 r4 ASR r2",
4205                            "ge_r14_r5_r4_ASR_r2"},
4206                           {{vc, r7, r8, r9, ROR, r10},
4207                            false,
4208                            al,
4209                            "vc r7 r8 r9 ROR r10",
4210                            "vc_r7_r8_r9_ROR_r10"},
4211                           {{cs, r3, r1, r0, ROR, r7},
4212                            false,
4213                            al,
4214                            "cs r3 r1 r0 ROR r7",
4215                            "cs_r3_r1_r0_ROR_r7"},
4216                           {{hi, r9, r11, r4, ASR, r14},
4217                            false,
4218                            al,
4219                            "hi r9 r11 r4 ASR r14",
4220                            "hi_r9_r11_r4_ASR_r14"},
4221                           {{mi, r3, r8, r6, LSR, r12},
4222                            false,
4223                            al,
4224                            "mi r3 r8 r6 LSR r12",
4225                            "mi_r3_r8_r6_LSR_r12"},
4226                           {{vc, r5, r5, r6, LSL, r1},
4227                            false,
4228                            al,
4229                            "vc r5 r5 r6 LSL r1",
4230                            "vc_r5_r5_r6_LSL_r1"},
4231                           {{mi, r4, r8, r1, ASR, r3},
4232                            false,
4233                            al,
4234                            "mi r4 r8 r1 ASR r3",
4235                            "mi_r4_r8_r1_ASR_r3"},
4236                           {{le, r6, r0, r0, LSL, r0},
4237                            false,
4238                            al,
4239                            "le r6 r0 r0 LSL r0",
4240                            "le_r6_r0_r0_LSL_r0"},
4241                           {{hi, r8, r11, r8, LSL, r14},
4242                            false,
4243                            al,
4244                            "hi r8 r11 r8 LSL r14",
4245                            "hi_r8_r11_r8_LSL_r14"},
4246                           {{gt, r14, r8, r12, ASR, r13},
4247                            false,
4248                            al,
4249                            "gt r14 r8 r12 ASR r13",
4250                            "gt_r14_r8_r12_ASR_r13"},
4251                           {{ge, r7, r7, r4, ROR, r7},
4252                            false,
4253                            al,
4254                            "ge r7 r7 r4 ROR r7",
4255                            "ge_r7_r7_r4_ROR_r7"},
4256                           {{eq, r11, r4, r13, LSL, r3},
4257                            false,
4258                            al,
4259                            "eq r11 r4 r13 LSL r3",
4260                            "eq_r11_r4_r13_LSL_r3"},
4261                           {{eq, r3, r6, r6, LSL, r10},
4262                            false,
4263                            al,
4264                            "eq r3 r6 r6 LSL r10",
4265                            "eq_r3_r6_r6_LSL_r10"},
4266                           {{al, r3, r10, r11, ROR, r12},
4267                            false,
4268                            al,
4269                            "al r3 r10 r11 ROR r12",
4270                            "al_r3_r10_r11_ROR_r12"},
4271                           {{pl, r13, r7, r8, LSL, r13},
4272                            false,
4273                            al,
4274                            "pl r13 r7 r8 LSL r13",
4275                            "pl_r13_r7_r8_LSL_r13"},
4276                           {{pl, r9, r2, r11, LSR, r2},
4277                            false,
4278                            al,
4279                            "pl r9 r2 r11 LSR r2",
4280                            "pl_r9_r2_r11_LSR_r2"},
4281                           {{al, r3, r12, r8, LSR, r2},
4282                            false,
4283                            al,
4284                            "al r3 r12 r8 LSR r2",
4285                            "al_r3_r12_r8_LSR_r2"},
4286                           {{ne, r4, r14, r6, ROR, r0},
4287                            false,
4288                            al,
4289                            "ne r4 r14 r6 ROR r0",
4290                            "ne_r4_r14_r6_ROR_r0"},
4291                           {{cs, r6, r14, r13, ASR, r3},
4292                            false,
4293                            al,
4294                            "cs r6 r14 r13 ASR r3",
4295                            "cs_r6_r14_r13_ASR_r3"},
4296                           {{pl, r10, r6, r8, LSR, r7},
4297                            false,
4298                            al,
4299                            "pl r10 r6 r8 LSR r7",
4300                            "pl_r10_r6_r8_LSR_r7"},
4301                           {{ls, r10, r1, r12, ROR, r6},
4302                            false,
4303                            al,
4304                            "ls r10 r1 r12 ROR r6",
4305                            "ls_r10_r1_r12_ROR_r6"},
4306                           {{eq, r12, r0, r1, LSL, r9},
4307                            false,
4308                            al,
4309                            "eq r12 r0 r1 LSL r9",
4310                            "eq_r12_r0_r1_LSL_r9"},
4311                           {{hi, r11, r14, r8, ROR, r6},
4312                            false,
4313                            al,
4314                            "hi r11 r14 r8 ROR r6",
4315                            "hi_r11_r14_r8_ROR_r6"},
4316                           {{vc, r9, r2, r5, LSL, r6},
4317                            false,
4318                            al,
4319                            "vc r9 r2 r5 LSL r6",
4320                            "vc_r9_r2_r5_LSL_r6"},
4321                           {{ne, r11, r8, r5, LSR, r11},
4322                            false,
4323                            al,
4324                            "ne r11 r8 r5 LSR r11",
4325                            "ne_r11_r8_r5_LSR_r11"},
4326                           {{mi, r1, r12, r3, ASR, r5},
4327                            false,
4328                            al,
4329                            "mi r1 r12 r3 ASR r5",
4330                            "mi_r1_r12_r3_ASR_r5"},
4331                           {{pl, r14, r7, r1, ASR, r12},
4332                            false,
4333                            al,
4334                            "pl r14 r7 r1 ASR r12",
4335                            "pl_r14_r7_r1_ASR_r12"},
4336                           {{pl, r9, r4, r1, ASR, r1},
4337                            false,
4338                            al,
4339                            "pl r9 r4 r1 ASR r1",
4340                            "pl_r9_r4_r1_ASR_r1"},
4341                           {{ls, r11, r0, r5, ROR, r14},
4342                            false,
4343                            al,
4344                            "ls r11 r0 r5 ROR r14",
4345                            "ls_r11_r0_r5_ROR_r14"},
4346                           {{lt, r13, r10, r14, ROR, r13},
4347                            false,
4348                            al,
4349                            "lt r13 r10 r14 ROR r13",
4350                            "lt_r13_r10_r14_ROR_r13"},
4351                           {{gt, r3, r14, r10, LSR, r4},
4352                            false,
4353                            al,
4354                            "gt r3 r14 r10 LSR r4",
4355                            "gt_r3_r14_r10_LSR_r4"},
4356                           {{cc, r1, r0, r5, ROR, r7},
4357                            false,
4358                            al,
4359                            "cc r1 r0 r5 ROR r7",
4360                            "cc_r1_r0_r5_ROR_r7"},
4361                           {{hi, r2, r14, r0, LSR, r14},
4362                            false,
4363                            al,
4364                            "hi r2 r14 r0 LSR r14",
4365                            "hi_r2_r14_r0_LSR_r14"},
4366                           {{pl, r3, r7, r2, ASR, r9},
4367                            false,
4368                            al,
4369                            "pl r3 r7 r2 ASR r9",
4370                            "pl_r3_r7_r2_ASR_r9"},
4371                           {{eq, r7, r5, r0, ROR, r6},
4372                            false,
4373                            al,
4374                            "eq r7 r5 r0 ROR r6",
4375                            "eq_r7_r5_r0_ROR_r6"},
4376                           {{mi, r14, r9, r14, LSR, r5},
4377                            false,
4378                            al,
4379                            "mi r14 r9 r14 LSR r5",
4380                            "mi_r14_r9_r14_LSR_r5"},
4381                           {{mi, r6, r1, r1, LSL, r12},
4382                            false,
4383                            al,
4384                            "mi r6 r1 r1 LSL r12",
4385                            "mi_r6_r1_r1_LSL_r12"},
4386                           {{ge, r12, r0, r8, LSR, r0},
4387                            false,
4388                            al,
4389                            "ge r12 r0 r8 LSR r0",
4390                            "ge_r12_r0_r8_LSR_r0"},
4391                           {{cc, r13, r8, r3, ROR, r7},
4392                            false,
4393                            al,
4394                            "cc r13 r8 r3 ROR r7",
4395                            "cc_r13_r8_r3_ROR_r7"},
4396                           {{vs, r7, r9, r4, LSL, r11},
4397                            false,
4398                            al,
4399                            "vs r7 r9 r4 LSL r11",
4400                            "vs_r7_r9_r4_LSL_r11"},
4401                           {{ge, r9, r10, r9, LSR, r5},
4402                            false,
4403                            al,
4404                            "ge r9 r10 r9 LSR r5",
4405                            "ge_r9_r10_r9_LSR_r5"},
4406                           {{ls, r5, r3, r0, LSR, r7},
4407                            false,
4408                            al,
4409                            "ls r5 r3 r0 LSR r7",
4410                            "ls_r5_r3_r0_LSR_r7"},
4411                           {{eq, r0, r6, r1, LSL, r11},
4412                            false,
4413                            al,
4414                            "eq r0 r6 r1 LSL r11",
4415                            "eq_r0_r6_r1_LSL_r11"},
4416                           {{ge, r9, r7, r0, ROR, r11},
4417                            false,
4418                            al,
4419                            "ge r9 r7 r0 ROR r11",
4420                            "ge_r9_r7_r0_ROR_r11"},
4421                           {{mi, r4, r2, r3, LSL, r12},
4422                            false,
4423                            al,
4424                            "mi r4 r2 r3 LSL r12",
4425                            "mi_r4_r2_r3_LSL_r12"},
4426                           {{hi, r7, r5, r0, ASR, r5},
4427                            false,
4428                            al,
4429                            "hi r7 r5 r0 ASR r5",
4430                            "hi_r7_r5_r0_ASR_r5"},
4431                           {{cc, r7, r13, r7, LSL, r14},
4432                            false,
4433                            al,
4434                            "cc r7 r13 r7 LSL r14",
4435                            "cc_r7_r13_r7_LSL_r14"},
4436                           {{ne, r2, r11, r2, LSL, r14},
4437                            false,
4438                            al,
4439                            "ne r2 r11 r2 LSL r14",
4440                            "ne_r2_r11_r2_LSL_r14"},
4441                           {{cc, r7, r5, r3, LSR, r11},
4442                            false,
4443                            al,
4444                            "cc r7 r5 r3 LSR r11",
4445                            "cc_r7_r5_r3_LSR_r11"},
4446                           {{ge, r12, r0, r12, ASR, r10},
4447                            false,
4448                            al,
4449                            "ge r12 r0 r12 ASR r10",
4450                            "ge_r12_r0_r12_ASR_r10"},
4451                           {{al, r11, r0, r2, LSR, r11},
4452                            false,
4453                            al,
4454                            "al r11 r0 r2 LSR r11",
4455                            "al_r11_r0_r2_LSR_r11"},
4456                           {{cc, r1, r12, r1, ROR, r1},
4457                            false,
4458                            al,
4459                            "cc r1 r12 r1 ROR r1",
4460                            "cc_r1_r12_r1_ROR_r1"},
4461                           {{ls, r5, r9, r6, ASR, r4},
4462                            false,
4463                            al,
4464                            "ls r5 r9 r6 ASR r4",
4465                            "ls_r5_r9_r6_ASR_r4"},
4466                           {{ne, r5, r13, r2, ROR, r12},
4467                            false,
4468                            al,
4469                            "ne r5 r13 r2 ROR r12",
4470                            "ne_r5_r13_r2_ROR_r12"},
4471                           {{ge, r9, r10, r12, ROR, r10},
4472                            false,
4473                            al,
4474                            "ge r9 r10 r12 ROR r10",
4475                            "ge_r9_r10_r12_ROR_r10"},
4476                           {{cc, r10, r1, r8, LSR, r12},
4477                            false,
4478                            al,
4479                            "cc r10 r1 r8 LSR r12",
4480                            "cc_r10_r1_r8_LSR_r12"},
4481                           {{le, r9, r6, r11, ROR, r3},
4482                            false,
4483                            al,
4484                            "le r9 r6 r11 ROR r3",
4485                            "le_r9_r6_r11_ROR_r3"},
4486                           {{le, r9, r9, r13, ASR, r5},
4487                            false,
4488                            al,
4489                            "le r9 r9 r13 ASR r5",
4490                            "le_r9_r9_r13_ASR_r5"},
4491                           {{ge, r1, r12, r11, LSL, r12},
4492                            false,
4493                            al,
4494                            "ge r1 r12 r11 LSL r12",
4495                            "ge_r1_r12_r11_LSL_r12"},
4496                           {{vs, r11, r4, r6, LSL, r10},
4497                            false,
4498                            al,
4499                            "vs r11 r4 r6 LSL r10",
4500                            "vs_r11_r4_r6_LSL_r10"},
4501                           {{vs, r3, r3, r1, ROR, r2},
4502                            false,
4503                            al,
4504                            "vs r3 r3 r1 ROR r2",
4505                            "vs_r3_r3_r1_ROR_r2"},
4506                           {{ne, r12, r8, r12, ASR, r11},
4507                            false,
4508                            al,
4509                            "ne r12 r8 r12 ASR r11",
4510                            "ne_r12_r8_r12_ASR_r11"},
4511                           {{pl, r4, r8, r1, ROR, r8},
4512                            false,
4513                            al,
4514                            "pl r4 r8 r1 ROR r8",
4515                            "pl_r4_r8_r1_ROR_r8"},
4516                           {{gt, r3, r11, r13, ROR, r9},
4517                            false,
4518                            al,
4519                            "gt r3 r11 r13 ROR r9",
4520                            "gt_r3_r11_r13_ROR_r9"},
4521                           {{pl, r6, r0, r3, LSR, r9},
4522                            false,
4523                            al,
4524                            "pl r6 r0 r3 LSR r9",
4525                            "pl_r6_r0_r3_LSR_r9"},
4526                           {{ne, r5, r7, r9, LSL, r10},
4527                            false,
4528                            al,
4529                            "ne r5 r7 r9 LSL r10",
4530                            "ne_r5_r7_r9_LSL_r10"},
4531                           {{lt, r1, r12, r12, LSR, r8},
4532                            false,
4533                            al,
4534                            "lt r1 r12 r12 LSR r8",
4535                            "lt_r1_r12_r12_LSR_r8"},
4536                           {{cc, r2, r0, r0, ROR, r5},
4537                            false,
4538                            al,
4539                            "cc r2 r0 r0 ROR r5",
4540                            "cc_r2_r0_r0_ROR_r5"},
4541                           {{vc, r7, r11, r8, LSR, r14},
4542                            false,
4543                            al,
4544                            "vc r7 r11 r8 LSR r14",
4545                            "vc_r7_r11_r8_LSR_r14"},
4546                           {{ge, r0, r11, r6, ROR, r10},
4547                            false,
4548                            al,
4549                            "ge r0 r11 r6 ROR r10",
4550                            "ge_r0_r11_r6_ROR_r10"},
4551                           {{vs, r0, r9, r1, LSR, r0},
4552                            false,
4553                            al,
4554                            "vs r0 r9 r1 LSR r0",
4555                            "vs_r0_r9_r1_LSR_r0"},
4556                           {{gt, r13, r7, r11, LSR, r1},
4557                            false,
4558                            al,
4559                            "gt r13 r7 r11 LSR r1",
4560                            "gt_r13_r7_r11_LSR_r1"},
4561                           {{eq, r9, r10, r2, ROR, r12},
4562                            false,
4563                            al,
4564                            "eq r9 r10 r2 ROR r12",
4565                            "eq_r9_r10_r2_ROR_r12"},
4566                           {{eq, r0, r4, r0, LSR, r3},
4567                            false,
4568                            al,
4569                            "eq r0 r4 r0 LSR r3",
4570                            "eq_r0_r4_r0_LSR_r3"},
4571                           {{cs, r14, r2, r9, ASR, r12},
4572                            false,
4573                            al,
4574                            "cs r14 r2 r9 ASR r12",
4575                            "cs_r14_r2_r9_ASR_r12"},
4576                           {{lt, r9, r4, r9, ASR, r8},
4577                            false,
4578                            al,
4579                            "lt r9 r4 r9 ASR r8",
4580                            "lt_r9_r4_r9_ASR_r8"},
4581                           {{vs, r6, r12, r3, LSL, r11},
4582                            false,
4583                            al,
4584                            "vs r6 r12 r3 LSL r11",
4585                            "vs_r6_r12_r3_LSL_r11"},
4586                           {{ge, r9, r14, r10, ROR, r0},
4587                            false,
4588                            al,
4589                            "ge r9 r14 r10 ROR r0",
4590                            "ge_r9_r14_r10_ROR_r0"},
4591                           {{pl, r10, r2, r5, LSL, r12},
4592                            false,
4593                            al,
4594                            "pl r10 r2 r5 LSL r12",
4595                            "pl_r10_r2_r5_LSL_r12"},
4596                           {{al, r8, r0, r6, ROR, r6},
4597                            false,
4598                            al,
4599                            "al r8 r0 r6 ROR r6",
4600                            "al_r8_r0_r6_ROR_r6"},
4601                           {{le, r9, r7, r7, LSR, r11},
4602                            false,
4603                            al,
4604                            "le r9 r7 r7 LSR r11",
4605                            "le_r9_r7_r7_LSR_r11"},
4606                           {{vc, r3, r4, r5, LSR, r1},
4607                            false,
4608                            al,
4609                            "vc r3 r4 r5 LSR r1",
4610                            "vc_r3_r4_r5_LSR_r1"},
4611                           {{cc, r13, r1, r4, LSR, r11},
4612                            false,
4613                            al,
4614                            "cc r13 r1 r4 LSR r11",
4615                            "cc_r13_r1_r4_LSR_r11"},
4616                           {{vc, r13, r4, r0, LSL, r10},
4617                            false,
4618                            al,
4619                            "vc r13 r4 r0 LSL r10",
4620                            "vc_r13_r4_r0_LSL_r10"},
4621                           {{vc, r5, r0, r1, LSR, r1},
4622                            false,
4623                            al,
4624                            "vc r5 r0 r1 LSR r1",
4625                            "vc_r5_r0_r1_LSR_r1"},
4626                           {{ls, r5, r11, r1, ASR, r9},
4627                            false,
4628                            al,
4629                            "ls r5 r11 r1 ASR r9",
4630                            "ls_r5_r11_r1_ASR_r9"},
4631                           {{vs, r3, r2, r8, ASR, r1},
4632                            false,
4633                            al,
4634                            "vs r3 r2 r8 ASR r1",
4635                            "vs_r3_r2_r8_ASR_r1"},
4636                           {{hi, r8, r4, r6, ASR, r4},
4637                            false,
4638                            al,
4639                            "hi r8 r4 r6 ASR r4",
4640                            "hi_r8_r4_r6_ASR_r4"},
4641                           {{mi, r11, r12, r14, ASR, r13},
4642                            false,
4643                            al,
4644                            "mi r11 r12 r14 ASR r13",
4645                            "mi_r11_r12_r14_ASR_r13"},
4646                           {{gt, r7, r12, r12, LSL, r14},
4647                            false,
4648                            al,
4649                            "gt r7 r12 r12 LSL r14",
4650                            "gt_r7_r12_r12_LSL_r14"},
4651                           {{ge, r11, r4, r9, LSR, r7},
4652                            false,
4653                            al,
4654                            "ge r11 r4 r9 LSR r7",
4655                            "ge_r11_r4_r9_LSR_r7"},
4656                           {{vs, r0, r4, r10, LSL, r2},
4657                            false,
4658                            al,
4659                            "vs r0 r4 r10 LSL r2",
4660                            "vs_r0_r4_r10_LSL_r2"},
4661                           {{pl, r6, r4, r13, ASR, r0},
4662                            false,
4663                            al,
4664                            "pl r6 r4 r13 ASR r0",
4665                            "pl_r6_r4_r13_ASR_r0"},
4666                           {{eq, r2, r3, r11, ROR, r1},
4667                            false,
4668                            al,
4669                            "eq r2 r3 r11 ROR r1",
4670                            "eq_r2_r3_r11_ROR_r1"},
4671                           {{vs, r10, r9, r0, LSL, r4},
4672                            false,
4673                            al,
4674                            "vs r10 r9 r0 LSL r4",
4675                            "vs_r10_r9_r0_LSL_r4"},
4676                           {{cs, r0, r7, r10, LSL, r0},
4677                            false,
4678                            al,
4679                            "cs r0 r7 r10 LSL r0",
4680                            "cs_r0_r7_r10_LSL_r0"},
4681                           {{eq, r11, r2, r3, ASR, r13},
4682                            false,
4683                            al,
4684                            "eq r11 r2 r3 ASR r13",
4685                            "eq_r11_r2_r3_ASR_r13"},
4686                           {{eq, r14, r3, r7, ASR, r14},
4687                            false,
4688                            al,
4689                            "eq r14 r3 r7 ASR r14",
4690                            "eq_r14_r3_r7_ASR_r14"},
4691                           {{gt, r0, r2, r0, LSL, r12},
4692                            false,
4693                            al,
4694                            "gt r0 r2 r0 LSL r12",
4695                            "gt_r0_r2_r0_LSL_r12"},
4696                           {{mi, r0, r12, r6, LSR, r13},
4697                            false,
4698                            al,
4699                            "mi r0 r12 r6 LSR r13",
4700                            "mi_r0_r12_r6_LSR_r13"},
4701                           {{gt, r4, r4, r9, LSR, r12},
4702                            false,
4703                            al,
4704                            "gt r4 r4 r9 LSR r12",
4705                            "gt_r4_r4_r9_LSR_r12"},
4706                           {{vc, r6, r7, r10, ROR, r2},
4707                            false,
4708                            al,
4709                            "vc r6 r7 r10 ROR r2",
4710                            "vc_r6_r7_r10_ROR_r2"},
4711                           {{lt, r10, r8, r13, ROR, r13},
4712                            false,
4713                            al,
4714                            "lt r10 r8 r13 ROR r13",
4715                            "lt_r10_r8_r13_ROR_r13"},
4716                           {{lt, r13, r10, r4, ROR, r0},
4717                            false,
4718                            al,
4719                            "lt r13 r10 r4 ROR r0",
4720                            "lt_r13_r10_r4_ROR_r0"},
4721                           {{pl, r1, r6, r0, LSR, r12},
4722                            false,
4723                            al,
4724                            "pl r1 r6 r0 LSR r12",
4725                            "pl_r1_r6_r0_LSR_r12"},
4726                           {{ge, r14, r7, r1, LSR, r8},
4727                            false,
4728                            al,
4729                            "ge r14 r7 r1 LSR r8",
4730                            "ge_r14_r7_r1_LSR_r8"},
4731                           {{cc, r8, r13, r6, LSL, r13},
4732                            false,
4733                            al,
4734                            "cc r8 r13 r6 LSL r13",
4735                            "cc_r8_r13_r6_LSL_r13"},
4736                           {{gt, r13, r4, r7, LSR, r2},
4737                            false,
4738                            al,
4739                            "gt r13 r4 r7 LSR r2",
4740                            "gt_r13_r4_r7_LSR_r2"},
4741                           {{eq, r11, r3, r5, LSR, r3},
4742                            false,
4743                            al,
4744                            "eq r11 r3 r5 LSR r3",
4745                            "eq_r11_r3_r5_LSR_r3"},
4746                           {{vc, r8, r11, r2, ROR, r7},
4747                            false,
4748                            al,
4749                            "vc r8 r11 r2 ROR r7",
4750                            "vc_r8_r11_r2_ROR_r7"},
4751                           {{vc, r11, r2, r0, LSL, r2},
4752                            false,
4753                            al,
4754                            "vc r11 r2 r0 LSL r2",
4755                            "vc_r11_r2_r0_LSL_r2"},
4756                           {{cs, r9, r11, r11, LSL, r11},
4757                            false,
4758                            al,
4759                            "cs r9 r11 r11 LSL r11",
4760                            "cs_r9_r11_r11_LSL_r11"},
4761                           {{ge, r14, r4, r12, LSL, r11},
4762                            false,
4763                            al,
4764                            "ge r14 r4 r12 LSL r11",
4765                            "ge_r14_r4_r12_LSL_r11"},
4766                           {{vs, r4, r10, r3, LSL, r1},
4767                            false,
4768                            al,
4769                            "vs r4 r10 r3 LSL r1",
4770                            "vs_r4_r10_r3_LSL_r1"},
4771                           {{mi, r13, r1, r8, LSR, r2},
4772                            false,
4773                            al,
4774                            "mi r13 r1 r8 LSR r2",
4775                            "mi_r13_r1_r8_LSR_r2"},
4776                           {{le, r3, r13, r13, LSL, r8},
4777                            false,
4778                            al,
4779                            "le r3 r13 r13 LSL r8",
4780                            "le_r3_r13_r13_LSL_r8"},
4781                           {{mi, r9, r12, r8, LSR, r14},
4782                            false,
4783                            al,
4784                            "mi r9 r12 r8 LSR r14",
4785                            "mi_r9_r12_r8_LSR_r14"},
4786                           {{pl, r7, r11, r10, ASR, r2},
4787                            false,
4788                            al,
4789                            "pl r7 r11 r10 ASR r2",
4790                            "pl_r7_r11_r10_ASR_r2"},
4791                           {{lt, r12, r2, r9, ASR, r5},
4792                            false,
4793                            al,
4794                            "lt r12 r2 r9 ASR r5",
4795                            "lt_r12_r2_r9_ASR_r5"},
4796                           {{gt, r13, r0, r5, LSL, r2},
4797                            false,
4798                            al,
4799                            "gt r13 r0 r5 LSL r2",
4800                            "gt_r13_r0_r5_LSL_r2"},
4801                           {{le, r5, r10, r9, ROR, r0},
4802                            false,
4803                            al,
4804                            "le r5 r10 r9 ROR r0",
4805                            "le_r5_r10_r9_ROR_r0"},
4806                           {{lt, r6, r1, r4, ASR, r11},
4807                            false,
4808                            al,
4809                            "lt r6 r1 r4 ASR r11",
4810                            "lt_r6_r1_r4_ASR_r11"},
4811                           {{pl, r11, r5, r14, LSR, r4},
4812                            false,
4813                            al,
4814                            "pl r11 r5 r14 LSR r4",
4815                            "pl_r11_r5_r14_LSR_r4"},
4816                           {{eq, r9, r0, r6, ROR, r9},
4817                            false,
4818                            al,
4819                            "eq r9 r0 r6 ROR r9",
4820                            "eq_r9_r0_r6_ROR_r9"},
4821                           {{mi, r3, r11, r2, ASR, r4},
4822                            false,
4823                            al,
4824                            "mi r3 r11 r2 ASR r4",
4825                            "mi_r3_r11_r2_ASR_r4"},
4826                           {{pl, r13, r8, r0, ROR, r6},
4827                            false,
4828                            al,
4829                            "pl r13 r8 r0 ROR r6",
4830                            "pl_r13_r8_r0_ROR_r6"},
4831                           {{vc, r8, r2, r6, ASR, r4},
4832                            false,
4833                            al,
4834                            "vc r8 r2 r6 ASR r4",
4835                            "vc_r8_r2_r6_ASR_r4"},
4836                           {{ge, r1, r0, r4, ASR, r1},
4837                            false,
4838                            al,
4839                            "ge r1 r0 r4 ASR r1",
4840                            "ge_r1_r0_r4_ASR_r1"},
4841                           {{vc, r2, r4, r13, LSL, r13},
4842                            false,
4843                            al,
4844                            "vc r2 r4 r13 LSL r13",
4845                            "vc_r2_r4_r13_LSL_r13"},
4846                           {{lt, r4, r3, r5, ASR, r11},
4847                            false,
4848                            al,
4849                            "lt r4 r3 r5 ASR r11",
4850                            "lt_r4_r3_r5_ASR_r11"},
4851                           {{pl, r5, r12, r3, LSL, r4},
4852                            false,
4853                            al,
4854                            "pl r5 r12 r3 LSL r4",
4855                            "pl_r5_r12_r3_LSL_r4"},
4856                           {{pl, r14, r6, r6, LSR, r10},
4857                            false,
4858                            al,
4859                            "pl r14 r6 r6 LSR r10",
4860                            "pl_r14_r6_r6_LSR_r10"},
4861                           {{gt, r14, r13, r3, LSL, r9},
4862                            false,
4863                            al,
4864                            "gt r14 r13 r3 LSL r9",
4865                            "gt_r14_r13_r3_LSL_r9"},
4866                           {{pl, r10, r9, r4, LSL, r3},
4867                            false,
4868                            al,
4869                            "pl r10 r9 r4 LSL r3",
4870                            "pl_r10_r9_r4_LSL_r3"},
4871                           {{al, r10, r8, r4, ROR, r1},
4872                            false,
4873                            al,
4874                            "al r10 r8 r4 ROR r1",
4875                            "al_r10_r8_r4_ROR_r1"},
4876                           {{pl, r14, r9, r11, ASR, r13},
4877                            false,
4878                            al,
4879                            "pl r14 r9 r11 ASR r13",
4880                            "pl_r14_r9_r11_ASR_r13"},
4881                           {{cc, r8, r1, r4, ROR, r12},
4882                            false,
4883                            al,
4884                            "cc r8 r1 r4 ROR r12",
4885                            "cc_r8_r1_r4_ROR_r12"},
4886                           {{vs, r5, r14, r7, LSR, r0},
4887                            false,
4888                            al,
4889                            "vs r5 r14 r7 LSR r0",
4890                            "vs_r5_r14_r7_LSR_r0"},
4891                           {{gt, r1, r10, r13, ROR, r9},
4892                            false,
4893                            al,
4894                            "gt r1 r10 r13 ROR r9",
4895                            "gt_r1_r10_r13_ROR_r9"},
4896                           {{mi, r8, r14, r9, LSR, r5},
4897                            false,
4898                            al,
4899                            "mi r8 r14 r9 LSR r5",
4900                            "mi_r8_r14_r9_LSR_r5"},
4901                           {{ge, r12, r10, r7, ROR, r2},
4902                            false,
4903                            al,
4904                            "ge r12 r10 r7 ROR r2",
4905                            "ge_r12_r10_r7_ROR_r2"},
4906                           {{al, r11, r8, r1, LSR, r10},
4907                            false,
4908                            al,
4909                            "al r11 r8 r1 LSR r10",
4910                            "al_r11_r8_r1_LSR_r10"},
4911                           {{al, r7, r13, r11, LSL, r14},
4912                            false,
4913                            al,
4914                            "al r7 r13 r11 LSL r14",
4915                            "al_r7_r13_r11_LSL_r14"},
4916                           {{vc, r13, r11, r11, ASR, r9},
4917                            false,
4918                            al,
4919                            "vc r13 r11 r11 ASR r9",
4920                            "vc_r13_r11_r11_ASR_r9"},
4921                           {{gt, r10, r5, r11, LSR, r14},
4922                            false,
4923                            al,
4924                            "gt r10 r5 r11 LSR r14",
4925                            "gt_r10_r5_r11_LSR_r14"},
4926                           {{vc, r10, r11, r7, ROR, r3},
4927                            false,
4928                            al,
4929                            "vc r10 r11 r7 ROR r3",
4930                            "vc_r10_r11_r7_ROR_r3"},
4931                           {{le, r10, r2, r7, LSL, r6},
4932                            false,
4933                            al,
4934                            "le r10 r2 r7 LSL r6",
4935                            "le_r10_r2_r7_LSL_r6"},
4936                           {{al, r1, r3, r6, ASR, r5},
4937                            false,
4938                            al,
4939                            "al r1 r3 r6 ASR r5",
4940                            "al_r1_r3_r6_ASR_r5"},
4941                           {{cs, r14, r9, r7, LSL, r12},
4942                            false,
4943                            al,
4944                            "cs r14 r9 r7 LSL r12",
4945                            "cs_r14_r9_r7_LSL_r12"},
4946                           {{ls, r10, r1, r4, LSL, r4},
4947                            false,
4948                            al,
4949                            "ls r10 r1 r4 LSL r4",
4950                            "ls_r10_r1_r4_LSL_r4"},
4951                           {{vs, r2, r5, r4, ROR, r3},
4952                            false,
4953                            al,
4954                            "vs r2 r5 r4 ROR r3",
4955                            "vs_r2_r5_r4_ROR_r3"},
4956                           {{vs, r1, r7, r10, ASR, r0},
4957                            false,
4958                            al,
4959                            "vs r1 r7 r10 ASR r0",
4960                            "vs_r1_r7_r10_ASR_r0"},
4961                           {{cs, r10, r12, r0, LSR, r4},
4962                            false,
4963                            al,
4964                            "cs r10 r12 r0 LSR r4",
4965                            "cs_r10_r12_r0_LSR_r4"},
4966                           {{vs, r8, r8, r1, LSR, r13},
4967                            false,
4968                            al,
4969                            "vs r8 r8 r1 LSR r13",
4970                            "vs_r8_r8_r1_LSR_r13"},
4971                           {{mi, r14, r5, r9, LSR, r7},
4972                            false,
4973                            al,
4974                            "mi r14 r5 r9 LSR r7",
4975                            "mi_r14_r5_r9_LSR_r7"},
4976                           {{vs, r6, r6, r14, ASR, r8},
4977                            false,
4978                            al,
4979                            "vs r6 r6 r14 ASR r8",
4980                            "vs_r6_r6_r14_ASR_r8"},
4981                           {{vc, r0, r1, r14, ROR, r0},
4982                            false,
4983                            al,
4984                            "vc r0 r1 r14 ROR r0",
4985                            "vc_r0_r1_r14_ROR_r0"},
4986                           {{ls, r9, r3, r11, ASR, r3},
4987                            false,
4988                            al,
4989                            "ls r9 r3 r11 ASR r3",
4990                            "ls_r9_r3_r11_ASR_r3"},
4991                           {{ls, r1, r12, r1, ASR, r6},
4992                            false,
4993                            al,
4994                            "ls r1 r12 r1 ASR r6",
4995                            "ls_r1_r12_r1_ASR_r6"},
4996                           {{hi, r6, r10, r0, ASR, r2},
4997                            false,
4998                            al,
4999                            "hi r6 r10 r0 ASR r2",
5000                            "hi_r6_r10_r0_ASR_r2"},
5001                           {{vc, r6, r14, r7, ASR, r1},
5002                            false,
5003                            al,
5004                            "vc r6 r14 r7 ASR r1",
5005                            "vc_r6_r14_r7_ASR_r1"},
5006                           {{eq, r14, r11, r10, LSL, r13},
5007                            false,
5008                            al,
5009                            "eq r14 r11 r10 LSL r13",
5010                            "eq_r14_r11_r10_LSL_r13"},
5011                           {{ge, r6, r12, r5, LSR, r9},
5012                            false,
5013                            al,
5014                            "ge r6 r12 r5 LSR r9",
5015                            "ge_r6_r12_r5_LSR_r9"},
5016                           {{mi, r1, r5, r0, ROR, r9},
5017                            false,
5018                            al,
5019                            "mi r1 r5 r0 ROR r9",
5020                            "mi_r1_r5_r0_ROR_r9"},
5021                           {{al, r7, r8, r2, ROR, r4},
5022                            false,
5023                            al,
5024                            "al r7 r8 r2 ROR r4",
5025                            "al_r7_r8_r2_ROR_r4"},
5026                           {{hi, r8, r1, r5, ASR, r10},
5027                            false,
5028                            al,
5029                            "hi r8 r1 r5 ASR r10",
5030                            "hi_r8_r1_r5_ASR_r10"},
5031                           {{ne, r14, r5, r0, LSR, r7},
5032                            false,
5033                            al,
5034                            "ne r14 r5 r0 LSR r7",
5035                            "ne_r14_r5_r0_LSR_r7"},
5036                           {{vc, r3, r13, r9, LSL, r9},
5037                            false,
5038                            al,
5039                            "vc r3 r13 r9 LSL r9",
5040                            "vc_r3_r13_r9_LSL_r9"},
5041                           {{vs, r2, r2, r7, LSL, r5},
5042                            false,
5043                            al,
5044                            "vs r2 r2 r7 LSL r5",
5045                            "vs_r2_r2_r7_LSL_r5"},
5046                           {{vc, r7, r3, r6, ASR, r6},
5047                            false,
5048                            al,
5049                            "vc r7 r3 r6 ASR r6",
5050                            "vc_r7_r3_r6_ASR_r6"},
5051                           {{eq, r2, r5, r8, ROR, r1},
5052                            false,
5053                            al,
5054                            "eq r2 r5 r8 ROR r1",
5055                            "eq_r2_r5_r8_ROR_r1"},
5056                           {{eq, r0, r0, r10, ROR, r3},
5057                            false,
5058                            al,
5059                            "eq r0 r0 r10 ROR r3",
5060                            "eq_r0_r0_r10_ROR_r3"},
5061                           {{lt, r6, r1, r0, ROR, r9},
5062                            false,
5063                            al,
5064                            "lt r6 r1 r0 ROR r9",
5065                            "lt_r6_r1_r0_ROR_r9"},
5066                           {{ls, r7, r7, r12, LSR, r5},
5067                            false,
5068                            al,
5069                            "ls r7 r7 r12 LSR r5",
5070                            "ls_r7_r7_r12_LSR_r5"},
5071                           {{vs, r0, r9, r7, ROR, r14},
5072                            false,
5073                            al,
5074                            "vs r0 r9 r7 ROR r14",
5075                            "vs_r0_r9_r7_ROR_r14"},
5076                           {{al, r0, r8, r2, ROR, r2},
5077                            false,
5078                            al,
5079                            "al r0 r8 r2 ROR r2",
5080                            "al_r0_r8_r2_ROR_r2"},
5081                           {{vc, r1, r14, r14, LSL, r11},
5082                            false,
5083                            al,
5084                            "vc r1 r14 r14 LSL r11",
5085                            "vc_r1_r14_r14_LSL_r11"},
5086                           {{ge, r9, r14, r10, ASR, r11},
5087                            false,
5088                            al,
5089                            "ge r9 r14 r10 ASR r11",
5090                            "ge_r9_r14_r10_ASR_r11"},
5091                           {{vs, r0, r3, r9, LSL, r4},
5092                            false,
5093                            al,
5094                            "vs r0 r3 r9 LSL r4",
5095                            "vs_r0_r3_r9_LSL_r4"},
5096                           {{pl, r14, r13, r7, LSR, r14},
5097                            false,
5098                            al,
5099                            "pl r14 r13 r7 LSR r14",
5100                            "pl_r14_r13_r7_LSR_r14"},
5101                           {{le, r2, r4, r6, LSR, r3},
5102                            false,
5103                            al,
5104                            "le r2 r4 r6 LSR r3",
5105                            "le_r2_r4_r6_LSR_r3"},
5106                           {{vc, r7, r14, r6, LSR, r10},
5107                            false,
5108                            al,
5109                            "vc r7 r14 r6 LSR r10",
5110                            "vc_r7_r14_r6_LSR_r10"},
5111                           {{mi, r13, r11, r14, ASR, r7},
5112                            false,
5113                            al,
5114                            "mi r13 r11 r14 ASR r7",
5115                            "mi_r13_r11_r14_ASR_r7"}};
5116
5117// These headers each contain an array of `TestResult` with the reference output
5118// values. The reference arrays are names `kReference{mnemonic}`.
5119#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-adc-a32.h"
5120#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-adcs-a32.h"
5121#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-add-a32.h"
5122#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-adds-a32.h"
5123#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-and-a32.h"
5124#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-ands-a32.h"
5125#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-bic-a32.h"
5126#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-bics-a32.h"
5127#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-eor-a32.h"
5128#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-eors-a32.h"
5129#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-orr-a32.h"
5130#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-orrs-a32.h"
5131#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-rsb-a32.h"
5132#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-rsbs-a32.h"
5133#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-rsc-a32.h"
5134#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-rscs-a32.h"
5135#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-sbc-a32.h"
5136#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-sbcs-a32.h"
5137#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-sub-a32.h"
5138#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-subs-a32.h"
5139
5140
5141// The maximum number of errors to report in detail for each test.
5142const unsigned kErrorReportLimit = 8;
5143
5144typedef void (MacroAssembler::*Fn)(Condition cond,
5145                                   Register rd,
5146                                   Register rn,
5147                                   const Operand& op);
5148
5149void TestHelper(Fn instruction,
5150                const char* mnemonic,
5151                const TestResult reference[]) {
5152  unsigned total_error_count = 0;
5153  MacroAssembler masm(BUF_SIZE);
5154
5155  masm.UseA32();
5156
5157  for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
5158    // Values to pass to the macro-assembler.
5159    Condition cond = kTests[i].operands.cond;
5160    Register rd = kTests[i].operands.rd;
5161    Register rn = kTests[i].operands.rn;
5162    Register rm = kTests[i].operands.rm;
5163    ShiftType shift = kTests[i].operands.shift;
5164    Register rs = kTests[i].operands.rs;
5165    Operand op(rm, shift, rs);
5166
5167    int32_t start = masm.GetCursorOffset();
5168    {
5169      // We never generate more that 4 bytes, as IT instructions are only
5170      // allowed for narrow encodings.
5171      ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
5172      if (kTests[i].in_it_block) {
5173        masm.it(kTests[i].it_condition);
5174      }
5175      (masm.*instruction)(cond, rd, rn, op);
5176    }
5177    int32_t end = masm.GetCursorOffset();
5178
5179    const byte* result_ptr =
5180        masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
5181    VIXL_ASSERT(start < end);
5182    uint32_t result_size = end - start;
5183
5184    if (Test::generate_test_trace()) {
5185      // Print the result bytes.
5186      printf("const byte kInstruction_%s_%s[] = {\n",
5187             mnemonic,
5188             kTests[i].identifier);
5189      for (uint32_t j = 0; j < result_size; j++) {
5190        if (j == 0) {
5191          printf("  0x%02" PRIx8, result_ptr[j]);
5192        } else {
5193          printf(", 0x%02" PRIx8, result_ptr[j]);
5194        }
5195      }
5196      // This comment is meant to be used by external tools to validate
5197      // the encoding. We can parse the comment to figure out what
5198      // instruction this corresponds to.
5199      if (kTests[i].in_it_block) {
5200        printf(" // It %s; %s %s\n};\n",
5201               kTests[i].it_condition.GetName(),
5202               mnemonic,
5203               kTests[i].operands_description);
5204      } else {
5205        printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
5206      }
5207    } else {
5208      // Check we've emitted the exact same encoding as present in the
5209      // trace file. Only print up to `kErrorReportLimit` errors.
5210      if (((result_size != reference[i].size) ||
5211           (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
5212            0)) &&
5213          (++total_error_count <= kErrorReportLimit)) {
5214        printf("Error when testing \"%s\" with operands \"%s\":\n",
5215               mnemonic,
5216               kTests[i].operands_description);
5217        printf("  Expected: ");
5218        for (uint32_t j = 0; j < reference[i].size; j++) {
5219          if (j == 0) {
5220            printf("0x%02" PRIx8, reference[i].encoding[j]);
5221          } else {
5222            printf(", 0x%02" PRIx8, reference[i].encoding[j]);
5223          }
5224        }
5225        printf("\n");
5226        printf("  Found:    ");
5227        for (uint32_t j = 0; j < result_size; j++) {
5228          if (j == 0) {
5229            printf("0x%02" PRIx8, result_ptr[j]);
5230          } else {
5231            printf(", 0x%02" PRIx8, result_ptr[j]);
5232          }
5233        }
5234        printf("\n");
5235      }
5236    }
5237  }
5238
5239  masm.FinalizeCode();
5240
5241  if (Test::generate_test_trace()) {
5242    // Finalize the trace file by writing the final `TestResult` array
5243    // which links all generated instruction encodings.
5244    printf("const TestResult kReference%s[] = {\n", mnemonic);
5245    for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
5246      printf("  {\n");
5247      printf("    ARRAY_SIZE(kInstruction_%s_%s),\n",
5248             mnemonic,
5249             kTests[i].identifier);
5250      printf("    kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
5251      printf("  },\n");
5252    }
5253    printf("};\n");
5254  } else {
5255    if (total_error_count > kErrorReportLimit) {
5256      printf("%u other errors follow.\n",
5257             total_error_count - kErrorReportLimit);
5258    }
5259    // Crash if the test failed.
5260    VIXL_CHECK(total_error_count == 0);
5261  }
5262}
5263
5264// Instantiate tests for each instruction in the list.
5265#define TEST(mnemonic)                                                      \
5266  void Test_##mnemonic() {                                                  \
5267    TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \
5268  }                                                                         \
5269  Test test_##mnemonic(                                                     \
5270      "AARCH32_ASSEMBLER_COND_RD_RN_OPERAND_RM_SHIFT_RS_" #mnemonic "_A32", \
5271      &Test_##mnemonic);
5272FOREACH_INSTRUCTION(TEST)
5273#undef TEST
5274
5275}  // namespace
5276#endif
5277
5278}  // namespace aarch32
5279}  // namespace vixl
5280