• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016, VIXL authors
2 // All rights reserved.
3 //
4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are met:
6 //
7 //   * Redistributions of source code must retain the above copyright notice,
8 //     this list of conditions and the following disclaimer.
9 //   * Redistributions in binary form must reproduce the above copyright notice,
10 //     this list of conditions and the following disclaimer in the documentation
11 //     and/or other materials provided with the distribution.
12 //   * Neither the name of ARM Limited nor the names of its contributors may be
13 //     used to endorse or promote products derived from this software without
14 //     specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 
27 
28 // -----------------------------------------------------------------------------
29 // This file is auto generated from the
30 // test/aarch32/config/template-assembler-aarch32.cc.in template file using
31 // tools/generate_tests.py.
32 //
33 // PLEASE DO NOT EDIT.
34 // -----------------------------------------------------------------------------
35 
36 
37 #include "test-runner.h"
38 
39 #include "test-utils.h"
40 #include "test-utils-aarch32.h"
41 
42 #include "aarch32/assembler-aarch32.h"
43 #include "aarch32/macro-assembler-aarch32.h"
44 
45 #define BUF_SIZE (4096)
46 
47 namespace vixl {
48 namespace aarch32 {
49 
50 // List of instruction mnemonics.
51 #define FOREACH_INSTRUCTION(M) \
52   M(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
81 namespace {
82 
83 // Values to be passed to the assembler to produce the instruction under test.
84 struct 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.
95 struct 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 
110 struct TestResult {
111   size_t size;
112   const byte* encoding;
113 };
114 
115 // Each element of this array produce one instruction encoding.
116 const TestData kTests[] = {{{al, r6, r8, r10, LSL, r12},
117                             false,
118                             al,
119                             "al r6 r8 r10 LSL r12",
120                             "al_r6_r8_r10_LSL_r12"},
121                            {{hi, r5, r13, r6, LSL, r4},
122                             false,
123                             al,
124                             "hi r5 r13 r6 LSL r4",
125                             "hi_r5_r13_r6_LSL_r4"},
126                            {{vs, r11, r0, r14, ROR, r1},
127                             false,
128                             al,
129                             "vs r11 r0 r14 ROR r1",
130                             "vs_r11_r0_r14_ROR_r1"},
131                            {{vc, r5, r0, r11, ROR, r4},
132                             false,
133                             al,
134                             "vc r5 r0 r11 ROR r4",
135                             "vc_r5_r0_r11_ROR_r4"},
136                            {{eq, r9, r7, r6, LSL, r1},
137                             false,
138                             al,
139                             "eq r9 r7 r6 LSL r1",
140                             "eq_r9_r7_r6_LSL_r1"},
141                            {{cs, r12, r9, r12, LSR, r0},
142                             false,
143                             al,
144                             "cs r12 r9 r12 LSR r0",
145                             "cs_r12_r9_r12_LSR_r0"},
146                            {{mi, r12, r3, r13, ASR, r3},
147                             false,
148                             al,
149                             "mi r12 r3 r13 ASR r3",
150                             "mi_r12_r3_r13_ASR_r3"},
151                            {{vs, r13, r4, r0, LSR, r1},
152                             false,
153                             al,
154                             "vs r13 r4 r0 LSR r1",
155                             "vs_r13_r4_r0_LSR_r1"},
156                            {{cc, r3, r7, r3, LSL, r13},
157                             false,
158                             al,
159                             "cc r3 r7 r3 LSL r13",
160                             "cc_r3_r7_r3_LSL_r13"},
161                            {{le, r10, r1, r1, LSL, r6},
162                             false,
163                             al,
164                             "le r10 r1 r1 LSL r6",
165                             "le_r10_r1_r1_LSL_r6"},
166                            {{vc, r0, r5, r14, ASR, r12},
167                             false,
168                             al,
169                             "vc r0 r5 r14 ASR r12",
170                             "vc_r0_r5_r14_ASR_r12"},
171                            {{cc, r0, r8, r0, LSL, r3},
172                             false,
173                             al,
174                             "cc r0 r8 r0 LSL r3",
175                             "cc_r0_r8_r0_LSL_r3"},
176                            {{le, r14, r6, r7, ASR, r1},
177                             false,
178                             al,
179                             "le r14 r6 r7 ASR r1",
180                             "le_r14_r6_r7_ASR_r1"},
181                            {{le, r5, r2, r13, LSL, r3},
182                             false,
183                             al,
184                             "le r5 r2 r13 LSL r3",
185                             "le_r5_r2_r13_LSL_r3"},
186                            {{hi, r6, r3, r0, ROR, r4},
187                             false,
188                             al,
189                             "hi r6 r3 r0 ROR r4",
190                             "hi_r6_r3_r0_ROR_r4"},
191                            {{vs, r9, r5, r4, LSR, r0},
192                             false,
193                             al,
194                             "vs r9 r5 r4 LSR r0",
195                             "vs_r9_r5_r4_LSR_r0"},
196                            {{eq, r3, r8, r2, LSR, r7},
197                             false,
198                             al,
199                             "eq r3 r8 r2 LSR r7",
200                             "eq_r3_r8_r2_LSR_r7"},
201                            {{mi, r11, r14, r7, LSR, r5},
202                             false,
203                             al,
204                             "mi r11 r14 r7 LSR r5",
205                             "mi_r11_r14_r7_LSR_r5"},
206                            {{ge, r1, r1, r9, LSR, r3},
207                             false,
208                             al,
209                             "ge r1 r1 r9 LSR r3",
210                             "ge_r1_r1_r9_LSR_r3"},
211                            {{lt, r10, r10, r5, LSL, r8},
212                             false,
213                             al,
214                             "lt r10 r10 r5 LSL r8",
215                             "lt_r10_r10_r5_LSL_r8"},
216                            {{ne, r4, r10, r9, ROR, r5},
217                             false,
218                             al,
219                             "ne r4 r10 r9 ROR r5",
220                             "ne_r4_r10_r9_ROR_r5"},
221                            {{lt, r10, r4, r3, LSL, r0},
222                             false,
223                             al,
224                             "lt r10 r4 r3 LSL r0",
225                             "lt_r10_r4_r3_LSL_r0"},
226                            {{pl, r1, r0, r1, ROR, r1},
227                             false,
228                             al,
229                             "pl r1 r0 r1 ROR r1",
230                             "pl_r1_r0_r1_ROR_r1"},
231                            {{vs, r14, r14, r11, LSR, r6},
232                             false,
233                             al,
234                             "vs r14 r14 r11 LSR r6",
235                             "vs_r14_r14_r11_LSR_r6"},
236                            {{lt, r4, r6, r12, LSL, r8},
237                             false,
238                             al,
239                             "lt r4 r6 r12 LSL r8",
240                             "lt_r4_r6_r12_LSL_r8"},
241                            {{cs, r12, r3, r3, ASR, r2},
242                             false,
243                             al,
244                             "cs r12 r3 r3 ASR r2",
245                             "cs_r12_r3_r3_ASR_r2"},
246                            {{ge, r7, r5, r1, LSL, r2},
247                             false,
248                             al,
249                             "ge r7 r5 r1 LSL r2",
250                             "ge_r7_r5_r1_LSL_r2"},
251                            {{vs, r9, r10, r2, ASR, r9},
252                             false,
253                             al,
254                             "vs r9 r10 r2 ASR r9",
255                             "vs_r9_r10_r2_ASR_r9"},
256                            {{gt, r5, r10, r4, LSL, r1},
257                             false,
258                             al,
259                             "gt r5 r10 r4 LSL r1",
260                             "gt_r5_r10_r4_LSL_r1"},
261                            {{hi, r13, r7, r6, ASR, r4},
262                             false,
263                             al,
264                             "hi r13 r7 r6 ASR r4",
265                             "hi_r13_r7_r6_ASR_r4"},
266                            {{hi, r8, r1, r6, LSR, r7},
267                             false,
268                             al,
269                             "hi r8 r1 r6 LSR r7",
270                             "hi_r8_r1_r6_LSR_r7"},
271                            {{lt, r5, r8, r12, ROR, r0},
272                             false,
273                             al,
274                             "lt r5 r8 r12 ROR r0",
275                             "lt_r5_r8_r12_ROR_r0"},
276                            {{hi, r4, r2, r14, LSR, r9},
277                             false,
278                             al,
279                             "hi r4 r2 r14 LSR r9",
280                             "hi_r4_r2_r14_LSR_r9"},
281                            {{ge, r7, r9, r1, ASR, r1},
282                             false,
283                             al,
284                             "ge r7 r9 r1 ASR r1",
285                             "ge_r7_r9_r1_ASR_r1"},
286                            {{vc, r13, r6, r7, LSL, r5},
287                             false,
288                             al,
289                             "vc r13 r6 r7 LSL r5",
290                             "vc_r13_r6_r7_LSL_r5"},
291                            {{hi, r13, r14, r5, LSR, r10},
292                             false,
293                             al,
294                             "hi r13 r14 r5 LSR r10",
295                             "hi_r13_r14_r5_LSR_r10"},
296                            {{cc, r8, r1, r5, ROR, r8},
297                             false,
298                             al,
299                             "cc r8 r1 r5 ROR r8",
300                             "cc_r8_r1_r5_ROR_r8"},
301                            {{mi, r6, r12, r4, ASR, r9},
302                             false,
303                             al,
304                             "mi r6 r12 r4 ASR r9",
305                             "mi_r6_r12_r4_ASR_r9"},
306                            {{cs, r12, r0, r12, LSL, r9},
307                             false,
308                             al,
309                             "cs r12 r0 r12 LSL r9",
310                             "cs_r12_r0_r12_LSL_r9"},
311                            {{ls, r3, r14, r1, LSL, r14},
312                             false,
313                             al,
314                             "ls r3 r14 r1 LSL r14",
315                             "ls_r3_r14_r1_LSL_r14"},
316                            {{vs, r1, r10, r1, LSR, r7},
317                             false,
318                             al,
319                             "vs r1 r10 r1 LSR r7",
320                             "vs_r1_r10_r1_LSR_r7"},
321                            {{pl, r0, r9, r6, ASR, r4},
322                             false,
323                             al,
324                             "pl r0 r9 r6 ASR r4",
325                             "pl_r0_r9_r6_ASR_r4"},
326                            {{al, r13, r13, r3, LSR, r2},
327                             false,
328                             al,
329                             "al r13 r13 r3 LSR r2",
330                             "al_r13_r13_r3_LSR_r2"},
331                            {{le, r4, r3, r7, LSL, r5},
332                             false,
333                             al,
334                             "le r4 r3 r7 LSL r5",
335                             "le_r4_r3_r7_LSL_r5"},
336                            {{vc, r11, r9, r14, LSR, r12},
337                             false,
338                             al,
339                             "vc r11 r9 r14 LSR r12",
340                             "vc_r11_r9_r14_LSR_r12"},
341                            {{le, r1, r7, r10, ROR, r7},
342                             false,
343                             al,
344                             "le r1 r7 r10 ROR r7",
345                             "le_r1_r7_r10_ROR_r7"},
346                            {{al, r10, r4, r5, ASR, r13},
347                             false,
348                             al,
349                             "al r10 r4 r5 ASR r13",
350                             "al_r10_r4_r5_ASR_r13"},
351                            {{cs, r9, r9, r7, LSL, r11},
352                             false,
353                             al,
354                             "cs r9 r9 r7 LSL r11",
355                             "cs_r9_r9_r7_LSL_r11"},
356                            {{hi, r12, r4, r6, LSR, r9},
357                             false,
358                             al,
359                             "hi r12 r4 r6 LSR r9",
360                             "hi_r12_r4_r6_LSR_r9"},
361                            {{ne, r7, r11, r1, ROR, r2},
362                             false,
363                             al,
364                             "ne r7 r11 r1 ROR r2",
365                             "ne_r7_r11_r1_ROR_r2"},
366                            {{ne, r3, r13, r5, LSR, r6},
367                             false,
368                             al,
369                             "ne r3 r13 r5 LSR r6",
370                             "ne_r3_r13_r5_LSR_r6"},
371                            {{cc, r13, r9, r7, ASR, r4},
372                             false,
373                             al,
374                             "cc r13 r9 r7 ASR r4",
375                             "cc_r13_r9_r7_ASR_r4"},
376                            {{al, r6, r13, r7, LSL, r13},
377                             false,
378                             al,
379                             "al r6 r13 r7 LSL r13",
380                             "al_r6_r13_r7_LSL_r13"},
381                            {{ge, r1, r6, r6, ROR, r12},
382                             false,
383                             al,
384                             "ge r1 r6 r6 ROR r12",
385                             "ge_r1_r6_r6_ROR_r12"},
386                            {{al, r6, r10, r0, ASR, r8},
387                             false,
388                             al,
389                             "al r6 r10 r0 ASR r8",
390                             "al_r6_r10_r0_ASR_r8"},
391                            {{le, r5, r13, r4, ASR, r8},
392                             false,
393                             al,
394                             "le r5 r13 r4 ASR r8",
395                             "le_r5_r13_r4_ASR_r8"},
396                            {{gt, r5, r1, r4, LSR, r6},
397                             false,
398                             al,
399                             "gt r5 r1 r4 LSR r6",
400                             "gt_r5_r1_r4_LSR_r6"},
401                            {{cs, r2, r10, r14, ROR, r13},
402                             false,
403                             al,
404                             "cs r2 r10 r14 ROR r13",
405                             "cs_r2_r10_r14_ROR_r13"},
406                            {{le, r2, r7, r0, ROR, r7},
407                             false,
408                             al,
409                             "le r2 r7 r0 ROR r7",
410                             "le_r2_r7_r0_ROR_r7"},
411                            {{al, r12, r7, r13, ASR, r7},
412                             false,
413                             al,
414                             "al r12 r7 r13 ASR r7",
415                             "al_r12_r7_r13_ASR_r7"},
416                            {{le, r10, r3, r2, LSR, r13},
417                             false,
418                             al,
419                             "le r10 r3 r2 LSR r13",
420                             "le_r10_r3_r2_LSR_r13"},
421                            {{al, r2, r14, r11, ROR, r0},
422                             false,
423                             al,
424                             "al r2 r14 r11 ROR r0",
425                             "al_r2_r14_r11_ROR_r0"},
426                            {{eq, r11, r1, r6, ASR, r10},
427                             false,
428                             al,
429                             "eq r11 r1 r6 ASR r10",
430                             "eq_r11_r1_r6_ASR_r10"},
431                            {{vs, r11, r9, r5, LSL, r10},
432                             false,
433                             al,
434                             "vs r11 r9 r5 LSL r10",
435                             "vs_r11_r9_r5_LSL_r10"},
436                            {{ne, r14, r8, r4, LSL, r8},
437                             false,
438                             al,
439                             "ne r14 r8 r4 LSL r8",
440                             "ne_r14_r8_r4_LSL_r8"},
441                            {{vs, r0, r7, r5, ASR, r1},
442                             false,
443                             al,
444                             "vs r0 r7 r5 ASR r1",
445                             "vs_r0_r7_r5_ASR_r1"},
446                            {{ne, r12, r6, r1, LSR, r12},
447                             false,
448                             al,
449                             "ne r12 r6 r1 LSR r12",
450                             "ne_r12_r6_r1_LSR_r12"},
451                            {{vs, r8, r4, r12, ASR, r1},
452                             false,
453                             al,
454                             "vs r8 r4 r12 ASR r1",
455                             "vs_r8_r4_r12_ASR_r1"},
456                            {{pl, r9, r14, r1, LSL, r13},
457                             false,
458                             al,
459                             "pl r9 r14 r1 LSL r13",
460                             "pl_r9_r14_r1_LSL_r13"},
461                            {{pl, r3, r0, r10, LSR, r0},
462                             false,
463                             al,
464                             "pl r3 r0 r10 LSR r0",
465                             "pl_r3_r0_r10_LSR_r0"},
466                            {{pl, r13, r9, r5, LSL, r0},
467                             false,
468                             al,
469                             "pl r13 r9 r5 LSL r0",
470                             "pl_r13_r9_r5_LSL_r0"},
471                            {{vs, r2, r3, r13, ROR, r11},
472                             false,
473                             al,
474                             "vs r2 r3 r13 ROR r11",
475                             "vs_r2_r3_r13_ROR_r11"},
476                            {{ls, r8, r2, r1, LSL, r5},
477                             false,
478                             al,
479                             "ls r8 r2 r1 LSL r5",
480                             "ls_r8_r2_r1_LSL_r5"},
481                            {{vs, r6, r7, r10, LSL, r1},
482                             false,
483                             al,
484                             "vs r6 r7 r10 LSL r1",
485                             "vs_r6_r7_r10_LSL_r1"},
486                            {{ge, r10, r8, r7, LSL, r5},
487                             false,
488                             al,
489                             "ge r10 r8 r7 LSL r5",
490                             "ge_r10_r8_r7_LSL_r5"},
491                            {{ge, r6, r11, r13, ROR, r7},
492                             false,
493                             al,
494                             "ge r6 r11 r13 ROR r7",
495                             "ge_r6_r11_r13_ROR_r7"},
496                            {{eq, r10, r4, r4, LSL, r14},
497                             false,
498                             al,
499                             "eq r10 r4 r4 LSL r14",
500                             "eq_r10_r4_r4_LSL_r14"},
501                            {{cc, r13, r6, r0, LSR, r9},
502                             false,
503                             al,
504                             "cc r13 r6 r0 LSR r9",
505                             "cc_r13_r6_r0_LSR_r9"},
506                            {{gt, r8, r7, r0, ASR, r3},
507                             false,
508                             al,
509                             "gt r8 r7 r0 ASR r3",
510                             "gt_r8_r7_r0_ASR_r3"},
511                            {{pl, r11, r7, r0, ROR, r14},
512                             false,
513                             al,
514                             "pl r11 r7 r0 ROR r14",
515                             "pl_r11_r7_r0_ROR_r14"},
516                            {{vc, r3, r10, r0, LSR, r10},
517                             false,
518                             al,
519                             "vc r3 r10 r0 LSR r10",
520                             "vc_r3_r10_r0_LSR_r10"},
521                            {{vs, r6, r3, r9, LSR, r12},
522                             false,
523                             al,
524                             "vs r6 r3 r9 LSR r12",
525                             "vs_r6_r3_r9_LSR_r12"},
526                            {{hi, r5, r3, r3, ROR, r1},
527                             false,
528                             al,
529                             "hi r5 r3 r3 ROR r1",
530                             "hi_r5_r3_r3_ROR_r1"},
531                            {{mi, r9, r10, r0, ROR, r4},
532                             false,
533                             al,
534                             "mi r9 r10 r0 ROR r4",
535                             "mi_r9_r10_r0_ROR_r4"},
536                            {{cc, r5, r13, r6, LSL, r6},
537                             false,
538                             al,
539                             "cc r5 r13 r6 LSL r6",
540                             "cc_r5_r13_r6_LSL_r6"},
541                            {{le, r1, r4, r0, LSL, r5},
542                             false,
543                             al,
544                             "le r1 r4 r0 LSL r5",
545                             "le_r1_r4_r0_LSL_r5"},
546                            {{mi, r11, r1, r5, LSL, r13},
547                             false,
548                             al,
549                             "mi r11 r1 r5 LSL r13",
550                             "mi_r11_r1_r5_LSL_r13"},
551                            {{ne, r14, r1, r10, LSR, r4},
552                             false,
553                             al,
554                             "ne r14 r1 r10 LSR r4",
555                             "ne_r14_r1_r10_LSR_r4"},
556                            {{le, r11, r5, r6, ASR, r1},
557                             false,
558                             al,
559                             "le r11 r5 r6 ASR r1",
560                             "le_r11_r5_r6_ASR_r1"},
561                            {{al, r0, r9, r5, ASR, r1},
562                             false,
563                             al,
564                             "al r0 r9 r5 ASR r1",
565                             "al_r0_r9_r5_ASR_r1"},
566                            {{ne, r6, r13, r4, LSL, r11},
567                             false,
568                             al,
569                             "ne r6 r13 r4 LSL r11",
570                             "ne_r6_r13_r4_LSL_r11"},
571                            {{pl, r10, r4, r14, ROR, r8},
572                             false,
573                             al,
574                             "pl r10 r4 r14 ROR r8",
575                             "pl_r10_r4_r14_ROR_r8"},
576                            {{cs, r1, r8, r5, ASR, r14},
577                             false,
578                             al,
579                             "cs r1 r8 r5 ASR r14",
580                             "cs_r1_r8_r5_ASR_r14"},
581                            {{ls, r12, r1, r3, LSL, r7},
582                             false,
583                             al,
584                             "ls r12 r1 r3 LSL r7",
585                             "ls_r12_r1_r3_LSL_r7"},
586                            {{pl, r11, r3, r8, ROR, r10},
587                             false,
588                             al,
589                             "pl r11 r3 r8 ROR r10",
590                             "pl_r11_r3_r8_ROR_r10"},
591                            {{ge, r7, r7, r5, ROR, r7},
592                             false,
593                             al,
594                             "ge r7 r7 r5 ROR r7",
595                             "ge_r7_r7_r5_ROR_r7"},
596                            {{ls, r2, r11, r7, LSR, r11},
597                             false,
598                             al,
599                             "ls r2 r11 r7 LSR r11",
600                             "ls_r2_r11_r7_LSR_r11"},
601                            {{le, r9, r11, r9, ASR, r2},
602                             false,
603                             al,
604                             "le r9 r11 r9 ASR r2",
605                             "le_r9_r11_r9_ASR_r2"},
606                            {{mi, r7, r7, r4, ASR, r1},
607                             false,
608                             al,
609                             "mi r7 r7 r4 ASR r1",
610                             "mi_r7_r7_r4_ASR_r1"},
611                            {{cc, r7, r1, r0, ROR, r7},
612                             false,
613                             al,
614                             "cc r7 r1 r0 ROR r7",
615                             "cc_r7_r1_r0_ROR_r7"},
616                            {{vs, r12, r12, r1, LSR, r10},
617                             false,
618                             al,
619                             "vs r12 r12 r1 LSR r10",
620                             "vs_r12_r12_r1_LSR_r10"},
621                            {{hi, r3, r10, r12, LSR, r4},
622                             false,
623                             al,
624                             "hi r3 r10 r12 LSR r4",
625                             "hi_r3_r10_r12_LSR_r4"},
626                            {{cs, r0, r14, r3, ASR, r6},
627                             false,
628                             al,
629                             "cs r0 r14 r3 ASR r6",
630                             "cs_r0_r14_r3_ASR_r6"},
631                            {{ls, r7, r11, r6, ROR, r1},
632                             false,
633                             al,
634                             "ls r7 r11 r6 ROR r1",
635                             "ls_r7_r11_r6_ROR_r1"},
636                            {{cs, r9, r3, r14, LSR, r0},
637                             false,
638                             al,
639                             "cs r9 r3 r14 LSR r0",
640                             "cs_r9_r3_r14_LSR_r0"},
641                            {{gt, r8, r3, r11, LSL, r12},
642                             false,
643                             al,
644                             "gt r8 r3 r11 LSL r12",
645                             "gt_r8_r3_r11_LSL_r12"},
646                            {{cs, r12, r6, r5, LSR, r11},
647                             false,
648                             al,
649                             "cs r12 r6 r5 LSR r11",
650                             "cs_r12_r6_r5_LSR_r11"},
651                            {{gt, r3, r10, r1, ROR, r14},
652                             false,
653                             al,
654                             "gt r3 r10 r1 ROR r14",
655                             "gt_r3_r10_r1_ROR_r14"},
656                            {{le, r8, r4, r3, ASR, r1},
657                             false,
658                             al,
659                             "le r8 r4 r3 ASR r1",
660                             "le_r8_r4_r3_ASR_r1"},
661                            {{ne, r6, r8, r5, ROR, r11},
662                             false,
663                             al,
664                             "ne r6 r8 r5 ROR r11",
665                             "ne_r6_r8_r5_ROR_r11"},
666                            {{al, r9, r1, r11, ROR, r3},
667                             false,
668                             al,
669                             "al r9 r1 r11 ROR r3",
670                             "al_r9_r1_r11_ROR_r3"},
671                            {{ge, r13, r8, r11, ROR, r8},
672                             false,
673                             al,
674                             "ge r13 r8 r11 ROR r8",
675                             "ge_r13_r8_r11_ROR_r8"},
676                            {{pl, r0, r1, r2, LSR, r9},
677                             false,
678                             al,
679                             "pl r0 r1 r2 LSR r9",
680                             "pl_r0_r1_r2_LSR_r9"},
681                            {{pl, r6, r7, r13, LSL, r11},
682                             false,
683                             al,
684                             "pl r6 r7 r13 LSL r11",
685                             "pl_r6_r7_r13_LSL_r11"},
686                            {{vs, r10, r9, r13, LSR, r13},
687                             false,
688                             al,
689                             "vs r10 r9 r13 LSR r13",
690                             "vs_r10_r9_r13_LSR_r13"},
691                            {{le, r0, r7, r13, ROR, r9},
692                             false,
693                             al,
694                             "le r0 r7 r13 ROR r9",
695                             "le_r0_r7_r13_ROR_r9"},
696                            {{gt, r1, r14, r12, LSR, r8},
697                             false,
698                             al,
699                             "gt r1 r14 r12 LSR r8",
700                             "gt_r1_r14_r12_LSR_r8"},
701                            {{ls, r14, r12, r7, LSR, r14},
702                             false,
703                             al,
704                             "ls r14 r12 r7 LSR r14",
705                             "ls_r14_r12_r7_LSR_r14"},
706                            {{cs, r9, r5, r3, ASR, r9},
707                             false,
708                             al,
709                             "cs r9 r5 r3 ASR r9",
710                             "cs_r9_r5_r3_ASR_r9"},
711                            {{gt, r7, r11, r11, ASR, r14},
712                             false,
713                             al,
714                             "gt r7 r11 r11 ASR r14",
715                             "gt_r7_r11_r11_ASR_r14"},
716                            {{pl, r10, r14, r12, LSL, r11},
717                             false,
718                             al,
719                             "pl r10 r14 r12 LSL r11",
720                             "pl_r10_r14_r12_LSL_r11"},
721                            {{mi, r5, r5, r10, LSL, r13},
722                             false,
723                             al,
724                             "mi r5 r5 r10 LSL r13",
725                             "mi_r5_r5_r10_LSL_r13"},
726                            {{hi, r2, r13, r12, ASR, r10},
727                             false,
728                             al,
729                             "hi r2 r13 r12 ASR r10",
730                             "hi_r2_r13_r12_ASR_r10"},
731                            {{ge, r13, r9, r12, LSR, r11},
732                             false,
733                             al,
734                             "ge r13 r9 r12 LSR r11",
735                             "ge_r13_r9_r12_LSR_r11"},
736                            {{ls, r9, r3, r7, ROR, r14},
737                             false,
738                             al,
739                             "ls r9 r3 r7 ROR r14",
740                             "ls_r9_r3_r7_ROR_r14"},
741                            {{al, r2, r12, r9, ROR, r10},
742                             false,
743                             al,
744                             "al r2 r12 r9 ROR r10",
745                             "al_r2_r12_r9_ROR_r10"},
746                            {{al, r10, r6, r11, ASR, r14},
747                             false,
748                             al,
749                             "al r10 r6 r11 ASR r14",
750                             "al_r10_r6_r11_ASR_r14"},
751                            {{pl, r8, r3, r9, ASR, r13},
752                             false,
753                             al,
754                             "pl r8 r3 r9 ASR r13",
755                             "pl_r8_r3_r9_ASR_r13"},
756                            {{al, r0, r1, r10, ROR, r11},
757                             false,
758                             al,
759                             "al r0 r1 r10 ROR r11",
760                             "al_r0_r1_r10_ROR_r11"},
761                            {{gt, r10, r6, r10, ASR, r7},
762                             false,
763                             al,
764                             "gt r10 r6 r10 ASR r7",
765                             "gt_r10_r6_r10_ASR_r7"},
766                            {{pl, r7, r10, r14, LSR, r4},
767                             false,
768                             al,
769                             "pl r7 r10 r14 LSR r4",
770                             "pl_r7_r10_r14_LSR_r4"},
771                            {{cs, r13, r5, r9, LSL, r5},
772                             false,
773                             al,
774                             "cs r13 r5 r9 LSL r5",
775                             "cs_r13_r5_r9_LSL_r5"},
776                            {{gt, r11, r14, r9, LSR, r4},
777                             false,
778                             al,
779                             "gt r11 r14 r9 LSR r4",
780                             "gt_r11_r14_r9_LSR_r4"},
781                            {{mi, r9, r6, r9, ASR, r7},
782                             false,
783                             al,
784                             "mi r9 r6 r9 ASR r7",
785                             "mi_r9_r6_r9_ASR_r7"},
786                            {{ls, r14, r12, r14, LSR, r4},
787                             false,
788                             al,
789                             "ls r14 r12 r14 LSR r4",
790                             "ls_r14_r12_r14_LSR_r4"},
791                            {{al, r8, r5, r14, LSR, r1},
792                             false,
793                             al,
794                             "al r8 r5 r14 LSR r1",
795                             "al_r8_r5_r14_LSR_r1"},
796                            {{le, r7, r10, r10, LSL, r14},
797                             false,
798                             al,
799                             "le r7 r10 r10 LSL r14",
800                             "le_r7_r10_r10_LSL_r14"},
801                            {{pl, r7, r9, r5, ROR, r8},
802                             false,
803                             al,
804                             "pl r7 r9 r5 ROR r8",
805                             "pl_r7_r9_r5_ROR_r8"},
806                            {{mi, r1, r6, r12, LSL, r0},
807                             false,
808                             al,
809                             "mi r1 r6 r12 LSL r0",
810                             "mi_r1_r6_r12_LSL_r0"},
811                            {{ls, r9, r8, r2, LSL, r8},
812                             false,
813                             al,
814                             "ls r9 r8 r2 LSL r8",
815                             "ls_r9_r8_r2_LSL_r8"},
816                            {{ge, r8, r6, r2, LSR, r3},
817                             false,
818                             al,
819                             "ge r8 r6 r2 LSR r3",
820                             "ge_r8_r6_r2_LSR_r3"},
821                            {{al, r8, r6, r8, LSL, r7},
822                             false,
823                             al,
824                             "al r8 r6 r8 LSL r7",
825                             "al_r8_r6_r8_LSL_r7"},
826                            {{ls, r2, r6, r14, LSL, r8},
827                             false,
828                             al,
829                             "ls r2 r6 r14 LSL r8",
830                             "ls_r2_r6_r14_LSL_r8"},
831                            {{lt, r12, r9, r5, ROR, r10},
832                             false,
833                             al,
834                             "lt r12 r9 r5 ROR r10",
835                             "lt_r12_r9_r5_ROR_r10"},
836                            {{ls, r7, r12, r5, ASR, r14},
837                             false,
838                             al,
839                             "ls r7 r12 r5 ASR r14",
840                             "ls_r7_r12_r5_ASR_r14"},
841                            {{cc, r0, r4, r13, ASR, r12},
842                             false,
843                             al,
844                             "cc r0 r4 r13 ASR r12",
845                             "cc_r0_r4_r13_ASR_r12"},
846                            {{vc, r10, r14, r5, ROR, r1},
847                             false,
848                             al,
849                             "vc r10 r14 r5 ROR r1",
850                             "vc_r10_r14_r5_ROR_r1"},
851                            {{cs, r13, r3, r2, LSR, r13},
852                             false,
853                             al,
854                             "cs r13 r3 r2 LSR r13",
855                             "cs_r13_r3_r2_LSR_r13"},
856                            {{le, r1, r11, r4, ASR, r7},
857                             false,
858                             al,
859                             "le r1 r11 r4 ASR r7",
860                             "le_r1_r11_r4_ASR_r7"},
861                            {{cc, r0, r13, r3, ASR, r1},
862                             false,
863                             al,
864                             "cc r0 r13 r3 ASR r1",
865                             "cc_r0_r13_r3_ASR_r1"},
866                            {{le, r0, r1, r11, ROR, r6},
867                             false,
868                             al,
869                             "le r0 r1 r11 ROR r6",
870                             "le_r0_r1_r11_ROR_r6"},
871                            {{ls, r8, r14, r12, LSR, r8},
872                             false,
873                             al,
874                             "ls r8 r14 r12 LSR r8",
875                             "ls_r8_r14_r12_LSR_r8"},
876                            {{ne, r5, r0, r7, ASR, r9},
877                             false,
878                             al,
879                             "ne r5 r0 r7 ASR r9",
880                             "ne_r5_r0_r7_ASR_r9"},
881                            {{vs, r2, r12, r3, ROR, r7},
882                             false,
883                             al,
884                             "vs r2 r12 r3 ROR r7",
885                             "vs_r2_r12_r3_ROR_r7"},
886                            {{ne, r8, r9, r0, LSR, r10},
887                             false,
888                             al,
889                             "ne r8 r9 r0 LSR r10",
890                             "ne_r8_r9_r0_LSR_r10"},
891                            {{pl, r8, r6, r8, ASR, r1},
892                             false,
893                             al,
894                             "pl r8 r6 r8 ASR r1",
895                             "pl_r8_r6_r8_ASR_r1"},
896                            {{vc, r13, r1, r0, ASR, r13},
897                             false,
898                             al,
899                             "vc r13 r1 r0 ASR r13",
900                             "vc_r13_r1_r0_ASR_r13"},
901                            {{vc, r9, r3, r1, LSL, r6},
902                             false,
903                             al,
904                             "vc r9 r3 r1 LSL r6",
905                             "vc_r9_r3_r1_LSL_r6"},
906                            {{pl, r0, r2, r4, LSL, r1},
907                             false,
908                             al,
909                             "pl r0 r2 r4 LSL r1",
910                             "pl_r0_r2_r4_LSL_r1"},
911                            {{lt, r14, r8, r13, LSR, r7},
912                             false,
913                             al,
914                             "lt r14 r8 r13 LSR r7",
915                             "lt_r14_r8_r13_LSR_r7"},
916                            {{pl, r4, r9, r6, LSL, r3},
917                             false,
918                             al,
919                             "pl r4 r9 r6 LSL r3",
920                             "pl_r4_r9_r6_LSL_r3"},
921                            {{hi, r0, r4, r10, LSR, r9},
922                             false,
923                             al,
924                             "hi r0 r4 r10 LSR r9",
925                             "hi_r0_r4_r10_LSR_r9"},
926                            {{ne, r0, r11, r9, ASR, r14},
927                             false,
928                             al,
929                             "ne r0 r11 r9 ASR r14",
930                             "ne_r0_r11_r9_ASR_r14"},
931                            {{vs, r2, r8, r2, LSL, r12},
932                             false,
933                             al,
934                             "vs r2 r8 r2 LSL r12",
935                             "vs_r2_r8_r2_LSL_r12"},
936                            {{lt, r2, r0, r7, ROR, r9},
937                             false,
938                             al,
939                             "lt r2 r0 r7 ROR r9",
940                             "lt_r2_r0_r7_ROR_r9"},
941                            {{gt, r10, r6, r12, ASR, r2},
942                             false,
943                             al,
944                             "gt r10 r6 r12 ASR r2",
945                             "gt_r10_r6_r12_ASR_r2"},
946                            {{ne, r3, r2, r8, ASR, r6},
947                             false,
948                             al,
949                             "ne r3 r2 r8 ASR r6",
950                             "ne_r3_r2_r8_ASR_r6"},
951                            {{ls, r6, r3, r12, ASR, r7},
952                             false,
953                             al,
954                             "ls r6 r3 r12 ASR r7",
955                             "ls_r6_r3_r12_ASR_r7"},
956                            {{cs, r8, r4, r2, LSL, r3},
957                             false,
958                             al,
959                             "cs r8 r4 r2 LSL r3",
960                             "cs_r8_r4_r2_LSL_r3"},
961                            {{eq, r12, r9, r4, ASR, r11},
962                             false,
963                             al,
964                             "eq r12 r9 r4 ASR r11",
965                             "eq_r12_r9_r4_ASR_r11"},
966                            {{lt, r10, r4, r5, ROR, r13},
967                             false,
968                             al,
969                             "lt r10 r4 r5 ROR r13",
970                             "lt_r10_r4_r5_ROR_r13"},
971                            {{pl, r9, r9, r13, LSL, r11},
972                             false,
973                             al,
974                             "pl r9 r9 r13 LSL r11",
975                             "pl_r9_r9_r13_LSL_r11"},
976                            {{lt, r2, r12, r13, ASR, r9},
977                             false,
978                             al,
979                             "lt r2 r12 r13 ASR r9",
980                             "lt_r2_r12_r13_ASR_r9"},
981                            {{ls, r1, r12, r8, LSL, r3},
982                             false,
983                             al,
984                             "ls r1 r12 r8 LSL r3",
985                             "ls_r1_r12_r8_LSL_r3"},
986                            {{vs, r0, r1, r4, ASR, r11},
987                             false,
988                             al,
989                             "vs r0 r1 r4 ASR r11",
990                             "vs_r0_r1_r4_ASR_r11"},
991                            {{vc, r2, r8, r9, LSR, r12},
992                             false,
993                             al,
994                             "vc r2 r8 r9 LSR r12",
995                             "vc_r2_r8_r9_LSR_r12"},
996                            {{ne, r14, r12, r3, ASR, r9},
997                             false,
998                             al,
999                             "ne r14 r12 r3 ASR r9",
1000                             "ne_r14_r12_r3_ASR_r9"},
1001                            {{gt, r14, r5, r12, LSL, r9},
1002                             false,
1003                             al,
1004                             "gt r14 r5 r12 LSL r9",
1005                             "gt_r14_r5_r12_LSL_r9"},
1006                            {{ls, r5, r8, r2, LSR, r5},
1007                             false,
1008                             al,
1009                             "ls r5 r8 r2 LSR r5",
1010                             "ls_r5_r8_r2_LSR_r5"},
1011                            {{cs, r12, r5, r3, ROR, r8},
1012                             false,
1013                             al,
1014                             "cs r12 r5 r3 ROR r8",
1015                             "cs_r12_r5_r3_ROR_r8"},
1016                            {{vs, r5, r11, r5, ROR, r9},
1017                             false,
1018                             al,
1019                             "vs r5 r11 r5 ROR r9",
1020                             "vs_r5_r11_r5_ROR_r9"},
1021                            {{lt, r4, r14, r11, LSL, r0},
1022                             false,
1023                             al,
1024                             "lt r4 r14 r11 LSL r0",
1025                             "lt_r4_r14_r11_LSL_r0"},
1026                            {{eq, r1, r0, r14, ROR, r13},
1027                             false,
1028                             al,
1029                             "eq r1 r0 r14 ROR r13",
1030                             "eq_r1_r0_r14_ROR_r13"},
1031                            {{ge, r12, r1, r13, LSR, r2},
1032                             false,
1033                             al,
1034                             "ge r12 r1 r13 LSR r2",
1035                             "ge_r12_r1_r13_LSR_r2"},
1036                            {{pl, r12, r8, r4, LSL, r9},
1037                             false,
1038                             al,
1039                             "pl r12 r8 r4 LSL r9",
1040                             "pl_r12_r8_r4_LSL_r9"},
1041                            {{eq, r7, r6, r6, LSR, r2},
1042                             false,
1043                             al,
1044                             "eq r7 r6 r6 LSR r2",
1045                             "eq_r7_r6_r6_LSR_r2"},
1046                            {{ls, r3, r4, r4, LSL, r9},
1047                             false,
1048                             al,
1049                             "ls r3 r4 r4 LSL r9",
1050                             "ls_r3_r4_r4_LSL_r9"},
1051                            {{eq, r7, r2, r0, LSR, r6},
1052                             false,
1053                             al,
1054                             "eq r7 r2 r0 LSR r6",
1055                             "eq_r7_r2_r0_LSR_r6"},
1056                            {{eq, r3, r13, r4, ROR, r7},
1057                             false,
1058                             al,
1059                             "eq r3 r13 r4 ROR r7",
1060                             "eq_r3_r13_r4_ROR_r7"},
1061                            {{eq, r12, r6, r9, LSR, r0},
1062                             false,
1063                             al,
1064                             "eq r12 r6 r9 LSR r0",
1065                             "eq_r12_r6_r9_LSR_r0"},
1066                            {{lt, r13, r10, r0, LSL, r10},
1067                             false,
1068                             al,
1069                             "lt r13 r10 r0 LSL r10",
1070                             "lt_r13_r10_r0_LSL_r10"},
1071                            {{ls, r12, r14, r13, ROR, r6},
1072                             false,
1073                             al,
1074                             "ls r12 r14 r13 ROR r6",
1075                             "ls_r12_r14_r13_ROR_r6"},
1076                            {{ls, r6, r3, r2, LSR, r3},
1077                             false,
1078                             al,
1079                             "ls r6 r3 r2 LSR r3",
1080                             "ls_r6_r3_r2_LSR_r3"},
1081                            {{lt, r13, r6, r4, ROR, r11},
1082                             false,
1083                             al,
1084                             "lt r13 r6 r4 ROR r11",
1085                             "lt_r13_r6_r4_ROR_r11"},
1086                            {{eq, r7, r9, r1, ROR, r12},
1087                             false,
1088                             al,
1089                             "eq r7 r9 r1 ROR r12",
1090                             "eq_r7_r9_r1_ROR_r12"},
1091                            {{pl, r12, r13, r3, LSL, r5},
1092                             false,
1093                             al,
1094                             "pl r12 r13 r3 LSL r5",
1095                             "pl_r12_r13_r3_LSL_r5"},
1096                            {{vs, r1, r3, r3, LSR, r9},
1097                             false,
1098                             al,
1099                             "vs r1 r3 r3 LSR r9",
1100                             "vs_r1_r3_r3_LSR_r9"},
1101                            {{pl, r3, r11, r12, ASR, r8},
1102                             false,
1103                             al,
1104                             "pl r3 r11 r12 ASR r8",
1105                             "pl_r3_r11_r12_ASR_r8"},
1106                            {{ne, r0, r3, r13, ASR, r11},
1107                             false,
1108                             al,
1109                             "ne r0 r3 r13 ASR r11",
1110                             "ne_r0_r3_r13_ASR_r11"},
1111                            {{ge, r13, r5, r3, LSR, r11},
1112                             false,
1113                             al,
1114                             "ge r13 r5 r3 LSR r11",
1115                             "ge_r13_r5_r3_LSR_r11"},
1116                            {{al, r0, r6, r9, LSR, r1},
1117                             false,
1118                             al,
1119                             "al r0 r6 r9 LSR r1",
1120                             "al_r0_r6_r9_LSR_r1"},
1121                            {{ls, r3, r3, r5, LSR, r9},
1122                             false,
1123                             al,
1124                             "ls r3 r3 r5 LSR r9",
1125                             "ls_r3_r3_r5_LSR_r9"},
1126                            {{mi, r13, r3, r7, ASR, r0},
1127                             false,
1128                             al,
1129                             "mi r13 r3 r7 ASR r0",
1130                             "mi_r13_r3_r7_ASR_r0"},
1131                            {{vc, r1, r5, r10, LSL, r6},
1132                             false,
1133                             al,
1134                             "vc r1 r5 r10 LSL r6",
1135                             "vc_r1_r5_r10_LSL_r6"},
1136                            {{eq, r9, r13, r6, LSL, r0},
1137                             false,
1138                             al,
1139                             "eq r9 r13 r6 LSL r0",
1140                             "eq_r9_r13_r6_LSL_r0"},
1141                            {{cs, r14, r11, r9, ASR, r8},
1142                             false,
1143                             al,
1144                             "cs r14 r11 r9 ASR r8",
1145                             "cs_r14_r11_r9_ASR_r8"},
1146                            {{pl, r2, r3, r4, LSL, r1},
1147                             false,
1148                             al,
1149                             "pl r2 r3 r4 LSL r1",
1150                             "pl_r2_r3_r4_LSL_r1"},
1151                            {{vc, r0, r2, r13, ASR, r14},
1152                             false,
1153                             al,
1154                             "vc r0 r2 r13 ASR r14",
1155                             "vc_r0_r2_r13_ASR_r14"},
1156                            {{le, r10, r7, r13, ROR, r6},
1157                             false,
1158                             al,
1159                             "le r10 r7 r13 ROR r6",
1160                             "le_r10_r7_r13_ROR_r6"},
1161                            {{hi, r12, r6, r1, LSL, r0},
1162                             false,
1163                             al,
1164                             "hi r12 r6 r1 LSL r0",
1165                             "hi_r12_r6_r1_LSL_r0"},
1166                            {{ls, r10, r12, r12, ROR, r4},
1167                             false,
1168                             al,
1169                             "ls r10 r12 r12 ROR r4",
1170                             "ls_r10_r12_r12_ROR_r4"},
1171                            {{gt, r13, r4, r11, LSL, r2},
1172                             false,
1173                             al,
1174                             "gt r13 r4 r11 LSL r2",
1175                             "gt_r13_r4_r11_LSL_r2"},
1176                            {{ne, r13, r10, r5, LSR, r9},
1177                             false,
1178                             al,
1179                             "ne r13 r10 r5 LSR r9",
1180                             "ne_r13_r10_r5_LSR_r9"},
1181                            {{ge, r0, r0, r9, LSR, r5},
1182                             false,
1183                             al,
1184                             "ge r0 r0 r9 LSR r5",
1185                             "ge_r0_r0_r9_LSR_r5"},
1186                            {{vs, r7, r8, r13, ROR, r4},
1187                             false,
1188                             al,
1189                             "vs r7 r8 r13 ROR r4",
1190                             "vs_r7_r8_r13_ROR_r4"},
1191                            {{cc, r1, r2, r8, LSL, r6},
1192                             false,
1193                             al,
1194                             "cc r1 r2 r8 LSL r6",
1195                             "cc_r1_r2_r8_LSL_r6"},
1196                            {{le, r7, r11, r3, LSL, r4},
1197                             false,
1198                             al,
1199                             "le r7 r11 r3 LSL r4",
1200                             "le_r7_r11_r3_LSL_r4"},
1201                            {{hi, r11, r7, r3, LSL, r14},
1202                             false,
1203                             al,
1204                             "hi r11 r7 r3 LSL r14",
1205                             "hi_r11_r7_r3_LSL_r14"},
1206                            {{ge, r12, r4, r5, ASR, r8},
1207                             false,
1208                             al,
1209                             "ge r12 r4 r5 ASR r8",
1210                             "ge_r12_r4_r5_ASR_r8"},
1211                            {{vc, r12, r5, r13, LSL, r1},
1212                             false,
1213                             al,
1214                             "vc r12 r5 r13 LSL r1",
1215                             "vc_r12_r5_r13_LSL_r1"},
1216                            {{ls, r0, r8, r3, LSR, r3},
1217                             false,
1218                             al,
1219                             "ls r0 r8 r3 LSR r3",
1220                             "ls_r0_r8_r3_LSR_r3"},
1221                            {{cs, r2, r0, r11, ASR, r5},
1222                             false,
1223                             al,
1224                             "cs r2 r0 r11 ASR r5",
1225                             "cs_r2_r0_r11_ASR_r5"},
1226                            {{mi, r9, r1, r2, ASR, r2},
1227                             false,
1228                             al,
1229                             "mi r9 r1 r2 ASR r2",
1230                             "mi_r9_r1_r2_ASR_r2"},
1231                            {{pl, r7, r10, r13, LSR, r8},
1232                             false,
1233                             al,
1234                             "pl r7 r10 r13 LSR r8",
1235                             "pl_r7_r10_r13_LSR_r8"},
1236                            {{ne, r12, r14, r10, ROR, r1},
1237                             false,
1238                             al,
1239                             "ne r12 r14 r10 ROR r1",
1240                             "ne_r12_r14_r10_ROR_r1"},
1241                            {{gt, r0, r5, r9, LSL, r10},
1242                             false,
1243                             al,
1244                             "gt r0 r5 r9 LSL r10",
1245                             "gt_r0_r5_r9_LSL_r10"},
1246                            {{ls, r12, r12, r1, ASR, r2},
1247                             false,
1248                             al,
1249                             "ls r12 r12 r1 ASR r2",
1250                             "ls_r12_r12_r1_ASR_r2"},
1251                            {{ne, r14, r0, r6, ROR, r5},
1252                             false,
1253                             al,
1254                             "ne r14 r0 r6 ROR r5",
1255                             "ne_r14_r0_r6_ROR_r5"},
1256                            {{gt, r10, r7, r0, ROR, r1},
1257                             false,
1258                             al,
1259                             "gt r10 r7 r0 ROR r1",
1260                             "gt_r10_r7_r0_ROR_r1"},
1261                            {{ls, r7, r3, r0, ROR, r8},
1262                             false,
1263                             al,
1264                             "ls r7 r3 r0 ROR r8",
1265                             "ls_r7_r3_r0_ROR_r8"},
1266                            {{mi, r1, r11, r9, ROR, r1},
1267                             false,
1268                             al,
1269                             "mi r1 r11 r9 ROR r1",
1270                             "mi_r1_r11_r9_ROR_r1"},
1271                            {{pl, r8, r7, r9, ROR, r9},
1272                             false,
1273                             al,
1274                             "pl r8 r7 r9 ROR r9",
1275                             "pl_r8_r7_r9_ROR_r9"},
1276                            {{lt, r3, r1, r7, LSR, r4},
1277                             false,
1278                             al,
1279                             "lt r3 r1 r7 LSR r4",
1280                             "lt_r3_r1_r7_LSR_r4"},
1281                            {{mi, r11, r4, r4, LSL, r5},
1282                             false,
1283                             al,
1284                             "mi r11 r4 r4 LSL r5",
1285                             "mi_r11_r4_r4_LSL_r5"},
1286                            {{cs, r1, r7, r5, LSR, r13},
1287                             false,
1288                             al,
1289                             "cs r1 r7 r5 LSR r13",
1290                             "cs_r1_r7_r5_LSR_r13"},
1291                            {{ls, r0, r2, r10, ASR, r4},
1292                             false,
1293                             al,
1294                             "ls r0 r2 r10 ASR r4",
1295                             "ls_r0_r2_r10_ASR_r4"},
1296                            {{ge, r5, r12, r11, ASR, r3},
1297                             false,
1298                             al,
1299                             "ge r5 r12 r11 ASR r3",
1300                             "ge_r5_r12_r11_ASR_r3"},
1301                            {{vc, r13, r4, r13, ASR, r13},
1302                             false,
1303                             al,
1304                             "vc r13 r4 r13 ASR r13",
1305                             "vc_r13_r4_r13_ASR_r13"},
1306                            {{le, r9, r3, r4, LSL, r12},
1307                             false,
1308                             al,
1309                             "le r9 r3 r4 LSL r12",
1310                             "le_r9_r3_r4_LSL_r12"},
1311                            {{al, r8, r14, r3, ROR, r1},
1312                             false,
1313                             al,
1314                             "al r8 r14 r3 ROR r1",
1315                             "al_r8_r14_r3_ROR_r1"},
1316                            {{ls, r2, r0, r1, LSR, r4},
1317                             false,
1318                             al,
1319                             "ls r2 r0 r1 LSR r4",
1320                             "ls_r2_r0_r1_LSR_r4"},
1321                            {{cc, r4, r11, r0, ASR, r5},
1322                             false,
1323                             al,
1324                             "cc r4 r11 r0 ASR r5",
1325                             "cc_r4_r11_r0_ASR_r5"},
1326                            {{lt, r13, r1, r8, ROR, r9},
1327                             false,
1328                             al,
1329                             "lt r13 r1 r8 ROR r9",
1330                             "lt_r13_r1_r8_ROR_r9"},
1331                            {{mi, r5, r12, r13, ROR, r14},
1332                             false,
1333                             al,
1334                             "mi r5 r12 r13 ROR r14",
1335                             "mi_r5_r12_r13_ROR_r14"},
1336                            {{cs, r4, r1, r13, ASR, r13},
1337                             false,
1338                             al,
1339                             "cs r4 r1 r13 ASR r13",
1340                             "cs_r4_r1_r13_ASR_r13"},
1341                            {{vs, r1, r14, r1, ASR, r9},
1342                             false,
1343                             al,
1344                             "vs r1 r14 r1 ASR r9",
1345                             "vs_r1_r14_r1_ASR_r9"},
1346                            {{al, r14, r5, r2, LSL, r8},
1347                             false,
1348                             al,
1349                             "al r14 r5 r2 LSL r8",
1350                             "al_r14_r5_r2_LSL_r8"},
1351                            {{ge, r1, r6, r5, ASR, r8},
1352                             false,
1353                             al,
1354                             "ge r1 r6 r5 ASR r8",
1355                             "ge_r1_r6_r5_ASR_r8"},
1356                            {{ls, r10, r3, r12, LSL, r13},
1357                             false,
1358                             al,
1359                             "ls r10 r3 r12 LSL r13",
1360                             "ls_r10_r3_r12_LSL_r13"},
1361                            {{vc, r8, r8, r3, ROR, r4},
1362                             false,
1363                             al,
1364                             "vc r8 r8 r3 ROR r4",
1365                             "vc_r8_r8_r3_ROR_r4"},
1366                            {{lt, r9, r5, r5, LSR, r6},
1367                             false,
1368                             al,
1369                             "lt r9 r5 r5 LSR r6",
1370                             "lt_r9_r5_r5_LSR_r6"},
1371                            {{lt, r7, r9, r12, ASR, r2},
1372                             false,
1373                             al,
1374                             "lt r7 r9 r12 ASR r2",
1375                             "lt_r7_r9_r12_ASR_r2"},
1376                            {{eq, r11, r14, r11, ROR, r0},
1377                             false,
1378                             al,
1379                             "eq r11 r14 r11 ROR r0",
1380                             "eq_r11_r14_r11_ROR_r0"},
1381                            {{hi, r5, r3, r11, LSL, r3},
1382                             false,
1383                             al,
1384                             "hi r5 r3 r11 LSL r3",
1385                             "hi_r5_r3_r11_LSL_r3"},
1386                            {{ls, r3, r8, r9, LSR, r10},
1387                             false,
1388                             al,
1389                             "ls r3 r8 r9 LSR r10",
1390                             "ls_r3_r8_r9_LSR_r10"},
1391                            {{cs, r14, r14, r0, LSL, r10},
1392                             false,
1393                             al,
1394                             "cs r14 r14 r0 LSL r10",
1395                             "cs_r14_r14_r0_LSL_r10"},
1396                            {{eq, r2, r8, r4, ROR, r1},
1397                             false,
1398                             al,
1399                             "eq r2 r8 r4 ROR r1",
1400                             "eq_r2_r8_r4_ROR_r1"},
1401                            {{gt, r3, r4, r7, ROR, r2},
1402                             false,
1403                             al,
1404                             "gt r3 r4 r7 ROR r2",
1405                             "gt_r3_r4_r7_ROR_r2"},
1406                            {{lt, r3, r5, r6, ROR, r7},
1407                             false,
1408                             al,
1409                             "lt r3 r5 r6 ROR r7",
1410                             "lt_r3_r5_r6_ROR_r7"},
1411                            {{hi, r14, r4, r2, ASR, r1},
1412                             false,
1413                             al,
1414                             "hi r14 r4 r2 ASR r1",
1415                             "hi_r14_r4_r2_ASR_r1"},
1416                            {{mi, r9, r6, r7, LSR, r1},
1417                             false,
1418                             al,
1419                             "mi r9 r6 r7 LSR r1",
1420                             "mi_r9_r6_r7_LSR_r1"},
1421                            {{pl, r11, r12, r11, LSR, r0},
1422                             false,
1423                             al,
1424                             "pl r11 r12 r11 LSR r0",
1425                             "pl_r11_r12_r11_LSR_r0"},
1426                            {{cs, r0, r0, r0, ROR, r4},
1427                             false,
1428                             al,
1429                             "cs r0 r0 r0 ROR r4",
1430                             "cs_r0_r0_r0_ROR_r4"},
1431                            {{vs, r7, r4, r13, ASR, r4},
1432                             false,
1433                             al,
1434                             "vs r7 r4 r13 ASR r4",
1435                             "vs_r7_r4_r13_ASR_r4"},
1436                            {{vc, r6, r8, r1, LSR, r5},
1437                             false,
1438                             al,
1439                             "vc r6 r8 r1 LSR r5",
1440                             "vc_r6_r8_r1_LSR_r5"},
1441                            {{gt, r6, r10, r14, LSR, r0},
1442                             false,
1443                             al,
1444                             "gt r6 r10 r14 LSR r0",
1445                             "gt_r6_r10_r14_LSR_r0"},
1446                            {{ne, r12, r4, r5, LSL, r10},
1447                             false,
1448                             al,
1449                             "ne r12 r4 r5 LSL r10",
1450                             "ne_r12_r4_r5_LSL_r10"},
1451                            {{ne, r9, r4, r5, ROR, r10},
1452                             false,
1453                             al,
1454                             "ne r9 r4 r5 ROR r10",
1455                             "ne_r9_r4_r5_ROR_r10"},
1456                            {{lt, r4, r2, r0, ROR, r5},
1457                             false,
1458                             al,
1459                             "lt r4 r2 r0 ROR r5",
1460                             "lt_r4_r2_r0_ROR_r5"},
1461                            {{ls, r0, r13, r3, ASR, r13},
1462                             false,
1463                             al,
1464                             "ls r0 r13 r3 ASR r13",
1465                             "ls_r0_r13_r3_ASR_r13"},
1466                            {{lt, r14, r8, r2, ROR, r1},
1467                             false,
1468                             al,
1469                             "lt r14 r8 r2 ROR r1",
1470                             "lt_r14_r8_r2_ROR_r1"},
1471                            {{hi, r7, r13, r2, LSR, r9},
1472                             false,
1473                             al,
1474                             "hi r7 r13 r2 LSR r9",
1475                             "hi_r7_r13_r2_LSR_r9"},
1476                            {{hi, r2, r5, r8, LSL, r8},
1477                             false,
1478                             al,
1479                             "hi r2 r5 r8 LSL r8",
1480                             "hi_r2_r5_r8_LSL_r8"},
1481                            {{vc, r1, r8, r6, LSR, r5},
1482                             false,
1483                             al,
1484                             "vc r1 r8 r6 LSR r5",
1485                             "vc_r1_r8_r6_LSR_r5"},
1486                            {{hi, r6, r12, r10, ROR, r2},
1487                             false,
1488                             al,
1489                             "hi r6 r12 r10 ROR r2",
1490                             "hi_r6_r12_r10_ROR_r2"},
1491                            {{al, r12, r13, r12, LSR, r14},
1492                             false,
1493                             al,
1494                             "al r12 r13 r12 LSR r14",
1495                             "al_r12_r13_r12_LSR_r14"},
1496                            {{mi, r4, r13, r5, LSL, r7},
1497                             false,
1498                             al,
1499                             "mi r4 r13 r5 LSL r7",
1500                             "mi_r4_r13_r5_LSL_r7"},
1501                            {{le, r6, r7, r10, ASR, r10},
1502                             false,
1503                             al,
1504                             "le r6 r7 r10 ASR r10",
1505                             "le_r6_r7_r10_ASR_r10"},
1506                            {{mi, r3, r1, r6, ASR, r2},
1507                             false,
1508                             al,
1509                             "mi r3 r1 r6 ASR r2",
1510                             "mi_r3_r1_r6_ASR_r2"},
1511                            {{le, r10, r2, r12, ROR, r1},
1512                             false,
1513                             al,
1514                             "le r10 r2 r12 ROR r1",
1515                             "le_r10_r2_r12_ROR_r1"},
1516                            {{le, r12, r3, r5, ROR, r0},
1517                             false,
1518                             al,
1519                             "le r12 r3 r5 ROR r0",
1520                             "le_r12_r3_r5_ROR_r0"},
1521                            {{ls, r9, r14, r5, ROR, r12},
1522                             false,
1523                             al,
1524                             "ls r9 r14 r5 ROR r12",
1525                             "ls_r9_r14_r5_ROR_r12"},
1526                            {{pl, r10, r5, r3, ROR, r0},
1527                             false,
1528                             al,
1529                             "pl r10 r5 r3 ROR r0",
1530                             "pl_r10_r5_r3_ROR_r0"},
1531                            {{hi, r8, r1, r9, LSL, r11},
1532                             false,
1533                             al,
1534                             "hi r8 r1 r9 LSL r11",
1535                             "hi_r8_r1_r9_LSL_r11"},
1536                            {{ls, r14, r5, r9, ROR, r9},
1537                             false,
1538                             al,
1539                             "ls r14 r5 r9 ROR r9",
1540                             "ls_r14_r5_r9_ROR_r9"},
1541                            {{hi, r7, r2, r10, LSR, r3},
1542                             false,
1543                             al,
1544                             "hi r7 r2 r10 LSR r3",
1545                             "hi_r7_r2_r10_LSR_r3"},
1546                            {{eq, r5, r7, r13, ROR, r11},
1547                             false,
1548                             al,
1549                             "eq r5 r7 r13 ROR r11",
1550                             "eq_r5_r7_r13_ROR_r11"},
1551                            {{vs, r4, r13, r9, LSR, r0},
1552                             false,
1553                             al,
1554                             "vs r4 r13 r9 LSR r0",
1555                             "vs_r4_r13_r9_LSR_r0"},
1556                            {{le, r3, r1, r12, ROR, r8},
1557                             false,
1558                             al,
1559                             "le r3 r1 r12 ROR r8",
1560                             "le_r3_r1_r12_ROR_r8"},
1561                            {{hi, r8, r10, r10, LSL, r1},
1562                             false,
1563                             al,
1564                             "hi r8 r10 r10 LSL r1",
1565                             "hi_r8_r10_r10_LSL_r1"},
1566                            {{gt, r0, r4, r9, ASR, r13},
1567                             false,
1568                             al,
1569                             "gt r0 r4 r9 ASR r13",
1570                             "gt_r0_r4_r9_ASR_r13"},
1571                            {{ne, r0, r0, r13, LSR, r5},
1572                             false,
1573                             al,
1574                             "ne r0 r0 r13 LSR r5",
1575                             "ne_r0_r0_r13_LSR_r5"},
1576                            {{cc, r8, r11, r0, ASR, r12},
1577                             false,
1578                             al,
1579                             "cc r8 r11 r0 ASR r12",
1580                             "cc_r8_r11_r0_ASR_r12"},
1581                            {{pl, r8, r5, r6, ASR, r7},
1582                             false,
1583                             al,
1584                             "pl r8 r5 r6 ASR r7",
1585                             "pl_r8_r5_r6_ASR_r7"},
1586                            {{vc, r8, r3, r14, LSR, r3},
1587                             false,
1588                             al,
1589                             "vc r8 r3 r14 LSR r3",
1590                             "vc_r8_r3_r14_LSR_r3"},
1591                            {{ne, r0, r0, r10, ASR, r7},
1592                             false,
1593                             al,
1594                             "ne r0 r0 r10 ASR r7",
1595                             "ne_r0_r0_r10_ASR_r7"},
1596                            {{le, r4, r1, r9, LSL, r7},
1597                             false,
1598                             al,
1599                             "le r4 r1 r9 LSL r7",
1600                             "le_r4_r1_r9_LSL_r7"},
1601                            {{ls, r3, r14, r9, LSR, r4},
1602                             false,
1603                             al,
1604                             "ls r3 r14 r9 LSR r4",
1605                             "ls_r3_r14_r9_LSR_r4"},
1606                            {{vc, r3, r0, r8, LSR, r1},
1607                             false,
1608                             al,
1609                             "vc r3 r0 r8 LSR r1",
1610                             "vc_r3_r0_r8_LSR_r1"},
1611                            {{pl, r8, r12, r1, LSL, r13},
1612                             false,
1613                             al,
1614                             "pl r8 r12 r1 LSL r13",
1615                             "pl_r8_r12_r1_LSL_r13"},
1616                            {{eq, r7, r12, r14, ROR, r11},
1617                             false,
1618                             al,
1619                             "eq r7 r12 r14 ROR r11",
1620                             "eq_r7_r12_r14_ROR_r11"},
1621                            {{hi, r12, r5, r6, LSL, r11},
1622                             false,
1623                             al,
1624                             "hi r12 r5 r6 LSL r11",
1625                             "hi_r12_r5_r6_LSL_r11"},
1626                            {{al, r8, r8, r1, LSL, r12},
1627                             false,
1628                             al,
1629                             "al r8 r8 r1 LSL r12",
1630                             "al_r8_r8_r1_LSL_r12"},
1631                            {{pl, r3, r4, r13, ASR, r6},
1632                             false,
1633                             al,
1634                             "pl r3 r4 r13 ASR r6",
1635                             "pl_r3_r4_r13_ASR_r6"},
1636                            {{vc, r4, r5, r13, LSL, r6},
1637                             false,
1638                             al,
1639                             "vc r4 r5 r13 LSL r6",
1640                             "vc_r4_r5_r13_LSL_r6"},
1641                            {{ls, r10, r7, r2, LSL, r10},
1642                             false,
1643                             al,
1644                             "ls r10 r7 r2 LSL r10",
1645                             "ls_r10_r7_r2_LSL_r10"},
1646                            {{hi, r6, r4, r5, LSR, r2},
1647                             false,
1648                             al,
1649                             "hi r6 r4 r5 LSR r2",
1650                             "hi_r6_r4_r5_LSR_r2"},
1651                            {{hi, r1, r5, r4, LSL, r11},
1652                             false,
1653                             al,
1654                             "hi r1 r5 r4 LSL r11",
1655                             "hi_r1_r5_r4_LSL_r11"},
1656                            {{cc, r6, r6, r2, LSL, r0},
1657                             false,
1658                             al,
1659                             "cc r6 r6 r2 LSL r0",
1660                             "cc_r6_r6_r2_LSL_r0"},
1661                            {{cs, r6, r7, r14, ASR, r2},
1662                             false,
1663                             al,
1664                             "cs r6 r7 r14 ASR r2",
1665                             "cs_r6_r7_r14_ASR_r2"},
1666                            {{pl, r12, r1, r13, ROR, r9},
1667                             false,
1668                             al,
1669                             "pl r12 r1 r13 ROR r9",
1670                             "pl_r12_r1_r13_ROR_r9"},
1671                            {{eq, r4, r8, r3, ASR, r5},
1672                             false,
1673                             al,
1674                             "eq r4 r8 r3 ASR r5",
1675                             "eq_r4_r8_r3_ASR_r5"},
1676                            {{hi, r3, r4, r9, ROR, r4},
1677                             false,
1678                             al,
1679                             "hi r3 r4 r9 ROR r4",
1680                             "hi_r3_r4_r9_ROR_r4"},
1681                            {{vs, r8, r11, r7, ROR, r8},
1682                             false,
1683                             al,
1684                             "vs r8 r11 r7 ROR r8",
1685                             "vs_r8_r11_r7_ROR_r8"},
1686                            {{cs, r4, r1, r9, LSL, r11},
1687                             false,
1688                             al,
1689                             "cs r4 r1 r9 LSL r11",
1690                             "cs_r4_r1_r9_LSL_r11"},
1691                            {{eq, r0, r11, r5, ASR, r0},
1692                             false,
1693                             al,
1694                             "eq r0 r11 r5 ASR r0",
1695                             "eq_r0_r11_r5_ASR_r0"},
1696                            {{ne, r2, r6, r9, LSL, r8},
1697                             false,
1698                             al,
1699                             "ne r2 r6 r9 LSL r8",
1700                             "ne_r2_r6_r9_LSL_r8"},
1701                            {{hi, r5, r7, r12, LSL, r14},
1702                             false,
1703                             al,
1704                             "hi r5 r7 r12 LSL r14",
1705                             "hi_r5_r7_r12_LSL_r14"},
1706                            {{cc, r5, r6, r4, LSL, r8},
1707                             false,
1708                             al,
1709                             "cc r5 r6 r4 LSL r8",
1710                             "cc_r5_r6_r4_LSL_r8"},
1711                            {{eq, r6, r14, r13, LSR, r1},
1712                             false,
1713                             al,
1714                             "eq r6 r14 r13 LSR r1",
1715                             "eq_r6_r14_r13_LSR_r1"},
1716                            {{gt, r7, r3, r12, ASR, r10},
1717                             false,
1718                             al,
1719                             "gt r7 r3 r12 ASR r10",
1720                             "gt_r7_r3_r12_ASR_r10"},
1721                            {{al, r10, r3, r11, ASR, r2},
1722                             false,
1723                             al,
1724                             "al r10 r3 r11 ASR r2",
1725                             "al_r10_r3_r11_ASR_r2"},
1726                            {{cs, r6, r11, r13, LSL, r12},
1727                             false,
1728                             al,
1729                             "cs r6 r11 r13 LSL r12",
1730                             "cs_r6_r11_r13_LSL_r12"},
1731                            {{ne, r4, r12, r5, ROR, r11},
1732                             false,
1733                             al,
1734                             "ne r4 r12 r5 ROR r11",
1735                             "ne_r4_r12_r5_ROR_r11"},
1736                            {{vs, r12, r14, r2, ROR, r1},
1737                             false,
1738                             al,
1739                             "vs r12 r14 r2 ROR r1",
1740                             "vs_r12_r14_r2_ROR_r1"},
1741                            {{ls, r11, r3, r8, ASR, r4},
1742                             false,
1743                             al,
1744                             "ls r11 r3 r8 ASR r4",
1745                             "ls_r11_r3_r8_ASR_r4"},
1746                            {{vc, r9, r9, r5, LSL, r4},
1747                             false,
1748                             al,
1749                             "vc r9 r9 r5 LSL r4",
1750                             "vc_r9_r9_r5_LSL_r4"},
1751                            {{vc, r0, r2, r10, LSR, r4},
1752                             false,
1753                             al,
1754                             "vc r0 r2 r10 LSR r4",
1755                             "vc_r0_r2_r10_LSR_r4"},
1756                            {{vc, r6, r0, r11, LSR, r3},
1757                             false,
1758                             al,
1759                             "vc r6 r0 r11 LSR r3",
1760                             "vc_r6_r0_r11_LSR_r3"},
1761                            {{vs, r11, r11, r12, ROR, r0},
1762                             false,
1763                             al,
1764                             "vs r11 r11 r12 ROR r0",
1765                             "vs_r11_r11_r12_ROR_r0"},
1766                            {{ls, r0, r10, r2, LSL, r8},
1767                             false,
1768                             al,
1769                             "ls r0 r10 r2 LSL r8",
1770                             "ls_r0_r10_r2_LSL_r8"},
1771                            {{lt, r11, r10, r13, ASR, r10},
1772                             false,
1773                             al,
1774                             "lt r11 r10 r13 ASR r10",
1775                             "lt_r11_r10_r13_ASR_r10"},
1776                            {{eq, r4, r4, r13, LSR, r13},
1777                             false,
1778                             al,
1779                             "eq r4 r4 r13 LSR r13",
1780                             "eq_r4_r4_r13_LSR_r13"},
1781                            {{le, r11, r10, r4, LSL, r13},
1782                             false,
1783                             al,
1784                             "le r11 r10 r4 LSL r13",
1785                             "le_r11_r10_r4_LSL_r13"},
1786                            {{pl, r11, r7, r8, ROR, r7},
1787                             false,
1788                             al,
1789                             "pl r11 r7 r8 ROR r7",
1790                             "pl_r11_r7_r8_ROR_r7"},
1791                            {{eq, r10, r13, r5, LSR, r13},
1792                             false,
1793                             al,
1794                             "eq r10 r13 r5 LSR r13",
1795                             "eq_r10_r13_r5_LSR_r13"},
1796                            {{mi, r10, r5, r9, ASR, r7},
1797                             false,
1798                             al,
1799                             "mi r10 r5 r9 ASR r7",
1800                             "mi_r10_r5_r9_ASR_r7"},
1801                            {{lt, r7, r7, r0, ASR, r6},
1802                             false,
1803                             al,
1804                             "lt r7 r7 r0 ASR r6",
1805                             "lt_r7_r7_r0_ASR_r6"},
1806                            {{hi, r14, r12, r13, ROR, r3},
1807                             false,
1808                             al,
1809                             "hi r14 r12 r13 ROR r3",
1810                             "hi_r14_r12_r13_ROR_r3"},
1811                            {{hi, r9, r0, r10, LSR, r11},
1812                             false,
1813                             al,
1814                             "hi r9 r0 r10 LSR r11",
1815                             "hi_r9_r0_r10_LSR_r11"},
1816                            {{eq, r1, r10, r2, ASR, r10},
1817                             false,
1818                             al,
1819                             "eq r1 r10 r2 ASR r10",
1820                             "eq_r1_r10_r2_ASR_r10"},
1821                            {{lt, r1, r6, r0, ASR, r14},
1822                             false,
1823                             al,
1824                             "lt r1 r6 r0 ASR r14",
1825                             "lt_r1_r6_r0_ASR_r14"},
1826                            {{gt, r10, r2, r10, ROR, r4},
1827                             false,
1828                             al,
1829                             "gt r10 r2 r10 ROR r4",
1830                             "gt_r10_r2_r10_ROR_r4"},
1831                            {{ls, r3, r9, r10, LSR, r7},
1832                             false,
1833                             al,
1834                             "ls r3 r9 r10 LSR r7",
1835                             "ls_r3_r9_r10_LSR_r7"},
1836                            {{le, r1, r7, r7, LSR, r10},
1837                             false,
1838                             al,
1839                             "le r1 r7 r7 LSR r10",
1840                             "le_r1_r7_r7_LSR_r10"},
1841                            {{pl, r2, r6, r14, ASR, r0},
1842                             false,
1843                             al,
1844                             "pl r2 r6 r14 ASR r0",
1845                             "pl_r2_r6_r14_ASR_r0"},
1846                            {{gt, r9, r8, r9, ASR, r10},
1847                             false,
1848                             al,
1849                             "gt r9 r8 r9 ASR r10",
1850                             "gt_r9_r8_r9_ASR_r10"},
1851                            {{pl, r12, r11, r14, ASR, r5},
1852                             false,
1853                             al,
1854                             "pl r12 r11 r14 ASR r5",
1855                             "pl_r12_r11_r14_ASR_r5"},
1856                            {{gt, r1, r12, r4, LSL, r5},
1857                             false,
1858                             al,
1859                             "gt r1 r12 r4 LSL r5",
1860                             "gt_r1_r12_r4_LSL_r5"},
1861                            {{le, r1, r9, r4, ROR, r0},
1862                             false,
1863                             al,
1864                             "le r1 r9 r4 ROR r0",
1865                             "le_r1_r9_r4_ROR_r0"},
1866                            {{ne, r7, r2, r0, ASR, r5},
1867                             false,
1868                             al,
1869                             "ne r7 r2 r0 ASR r5",
1870                             "ne_r7_r2_r0_ASR_r5"},
1871                            {{cc, r4, r1, r9, LSR, r6},
1872                             false,
1873                             al,
1874                             "cc r4 r1 r9 LSR r6",
1875                             "cc_r4_r1_r9_LSR_r6"},
1876                            {{eq, r1, r6, r13, ASR, r12},
1877                             false,
1878                             al,
1879                             "eq r1 r6 r13 ASR r12",
1880                             "eq_r1_r6_r13_ASR_r12"},
1881                            {{pl, r3, r14, r13, LSR, r7},
1882                             false,
1883                             al,
1884                             "pl r3 r14 r13 LSR r7",
1885                             "pl_r3_r14_r13_LSR_r7"},
1886                            {{ge, r8, r2, r12, LSL, r7},
1887                             false,
1888                             al,
1889                             "ge r8 r2 r12 LSL r7",
1890                             "ge_r8_r2_r12_LSL_r7"},
1891                            {{ge, r10, r12, r9, ASR, r13},
1892                             false,
1893                             al,
1894                             "ge r10 r12 r9 ASR r13",
1895                             "ge_r10_r12_r9_ASR_r13"},
1896                            {{gt, r8, r7, r1, ASR, r7},
1897                             false,
1898                             al,
1899                             "gt r8 r7 r1 ASR r7",
1900                             "gt_r8_r7_r1_ASR_r7"},
1901                            {{vs, r8, r4, r5, ROR, r2},
1902                             false,
1903                             al,
1904                             "vs r8 r4 r5 ROR r2",
1905                             "vs_r8_r4_r5_ROR_r2"},
1906                            {{ls, r7, r3, r3, ASR, r5},
1907                             false,
1908                             al,
1909                             "ls r7 r3 r3 ASR r5",
1910                             "ls_r7_r3_r3_ASR_r5"},
1911                            {{al, r13, r10, r9, LSL, r4},
1912                             false,
1913                             al,
1914                             "al r13 r10 r9 LSL r4",
1915                             "al_r13_r10_r9_LSL_r4"},
1916                            {{cs, r9, r0, r5, ROR, r4},
1917                             false,
1918                             al,
1919                             "cs r9 r0 r5 ROR r4",
1920                             "cs_r9_r0_r5_ROR_r4"},
1921                            {{eq, r14, r12, r12, ASR, r13},
1922                             false,
1923                             al,
1924                             "eq r14 r12 r12 ASR r13",
1925                             "eq_r14_r12_r12_ASR_r13"},
1926                            {{hi, r9, r6, r8, ASR, r2},
1927                             false,
1928                             al,
1929                             "hi r9 r6 r8 ASR r2",
1930                             "hi_r9_r6_r8_ASR_r2"},
1931                            {{ne, r7, r9, r10, ROR, r7},
1932                             false,
1933                             al,
1934                             "ne r7 r9 r10 ROR r7",
1935                             "ne_r7_r9_r10_ROR_r7"},
1936                            {{vs, r2, r3, r0, ASR, r2},
1937                             false,
1938                             al,
1939                             "vs r2 r3 r0 ASR r2",
1940                             "vs_r2_r3_r0_ASR_r2"},
1941                            {{cc, r13, r2, r6, ASR, r11},
1942                             false,
1943                             al,
1944                             "cc r13 r2 r6 ASR r11",
1945                             "cc_r13_r2_r6_ASR_r11"},
1946                            {{lt, r3, r12, r14, ASR, r0},
1947                             false,
1948                             al,
1949                             "lt r3 r12 r14 ASR r0",
1950                             "lt_r3_r12_r14_ASR_r0"},
1951                            {{hi, r5, r11, r11, ROR, r4},
1952                             false,
1953                             al,
1954                             "hi r5 r11 r11 ROR r4",
1955                             "hi_r5_r11_r11_ROR_r4"},
1956                            {{mi, r14, r5, r5, ASR, r12},
1957                             false,
1958                             al,
1959                             "mi r14 r5 r5 ASR r12",
1960                             "mi_r14_r5_r5_ASR_r12"},
1961                            {{pl, r13, r12, r7, LSL, r9},
1962                             false,
1963                             al,
1964                             "pl r13 r12 r7 LSL r9",
1965                             "pl_r13_r12_r7_LSL_r9"},
1966                            {{gt, r11, r9, r6, LSR, r13},
1967                             false,
1968                             al,
1969                             "gt r11 r9 r6 LSR r13",
1970                             "gt_r11_r9_r6_LSR_r13"},
1971                            {{pl, r7, r10, r13, LSR, r12},
1972                             false,
1973                             al,
1974                             "pl r7 r10 r13 LSR r12",
1975                             "pl_r7_r10_r13_LSR_r12"},
1976                            {{hi, r0, r10, r12, LSL, r1},
1977                             false,
1978                             al,
1979                             "hi r0 r10 r12 LSL r1",
1980                             "hi_r0_r10_r12_LSL_r1"},
1981                            {{ge, r12, r5, r12, ASR, r1},
1982                             false,
1983                             al,
1984                             "ge r12 r5 r12 ASR r1",
1985                             "ge_r12_r5_r12_ASR_r1"},
1986                            {{cc, r1, r14, r10, LSR, r8},
1987                             false,
1988                             al,
1989                             "cc r1 r14 r10 LSR r8",
1990                             "cc_r1_r14_r10_LSR_r8"},
1991                            {{cs, r8, r10, r9, ROR, r5},
1992                             false,
1993                             al,
1994                             "cs r8 r10 r9 ROR r5",
1995                             "cs_r8_r10_r9_ROR_r5"},
1996                            {{cc, r1, r14, r13, ROR, r2},
1997                             false,
1998                             al,
1999                             "cc r1 r14 r13 ROR r2",
2000                             "cc_r1_r14_r13_ROR_r2"},
2001                            {{hi, r7, r1, r11, ROR, r7},
2002                             false,
2003                             al,
2004                             "hi r7 r1 r11 ROR r7",
2005                             "hi_r7_r1_r11_ROR_r7"},
2006                            {{lt, r8, r3, r6, ASR, r8},
2007                             false,
2008                             al,
2009                             "lt r8 r3 r6 ASR r8",
2010                             "lt_r8_r3_r6_ASR_r8"},
2011                            {{vc, r11, r9, r5, ROR, r0},
2012                             false,
2013                             al,
2014                             "vc r11 r9 r5 ROR r0",
2015                             "vc_r11_r9_r5_ROR_r0"},
2016                            {{pl, r6, r0, r13, ASR, r14},
2017                             false,
2018                             al,
2019                             "pl r6 r0 r13 ASR r14",
2020                             "pl_r6_r0_r13_ASR_r14"},
2021                            {{vc, r2, r12, r1, ROR, r3},
2022                             false,
2023                             al,
2024                             "vc r2 r12 r1 ROR r3",
2025                             "vc_r2_r12_r1_ROR_r3"},
2026                            {{gt, r11, r0, r2, ROR, r0},
2027                             false,
2028                             al,
2029                             "gt r11 r0 r2 ROR r0",
2030                             "gt_r11_r0_r2_ROR_r0"},
2031                            {{le, r1, r13, r9, ROR, r0},
2032                             false,
2033                             al,
2034                             "le r1 r13 r9 ROR r0",
2035                             "le_r1_r13_r9_ROR_r0"},
2036                            {{lt, r14, r0, r9, LSL, r3},
2037                             false,
2038                             al,
2039                             "lt r14 r0 r9 LSL r3",
2040                             "lt_r14_r0_r9_LSL_r3"},
2041                            {{al, r12, r6, r10, LSR, r8},
2042                             false,
2043                             al,
2044                             "al r12 r6 r10 LSR r8",
2045                             "al_r12_r6_r10_LSR_r8"},
2046                            {{cc, r4, r14, r1, LSR, r12},
2047                             false,
2048                             al,
2049                             "cc r4 r14 r1 LSR r12",
2050                             "cc_r4_r14_r1_LSR_r12"},
2051                            {{ge, r0, r3, r5, LSL, r1},
2052                             false,
2053                             al,
2054                             "ge r0 r3 r5 LSL r1",
2055                             "ge_r0_r3_r5_LSL_r1"},
2056                            {{eq, r1, r11, r12, ASR, r8},
2057                             false,
2058                             al,
2059                             "eq r1 r11 r12 ASR r8",
2060                             "eq_r1_r11_r12_ASR_r8"},
2061                            {{hi, r8, r7, r14, LSR, r4},
2062                             false,
2063                             al,
2064                             "hi r8 r7 r14 LSR r4",
2065                             "hi_r8_r7_r14_LSR_r4"},
2066                            {{eq, r14, r11, r1, LSR, r7},
2067                             false,
2068                             al,
2069                             "eq r14 r11 r1 LSR r7",
2070                             "eq_r14_r11_r1_LSR_r7"},
2071                            {{ge, r6, r12, r4, LSL, r1},
2072                             false,
2073                             al,
2074                             "ge r6 r12 r4 LSL r1",
2075                             "ge_r6_r12_r4_LSL_r1"},
2076                            {{vs, r12, r6, r0, ASR, r12},
2077                             false,
2078                             al,
2079                             "vs r12 r6 r0 ASR r12",
2080                             "vs_r12_r6_r0_ASR_r12"},
2081                            {{gt, r9, r3, r6, LSR, r13},
2082                             false,
2083                             al,
2084                             "gt r9 r3 r6 LSR r13",
2085                             "gt_r9_r3_r6_LSR_r13"},
2086                            {{lt, r4, r5, r6, LSR, r12},
2087                             false,
2088                             al,
2089                             "lt r4 r5 r6 LSR r12",
2090                             "lt_r4_r5_r6_LSR_r12"},
2091                            {{cc, r8, r2, r5, ROR, r10},
2092                             false,
2093                             al,
2094                             "cc r8 r2 r5 ROR r10",
2095                             "cc_r8_r2_r5_ROR_r10"},
2096                            {{eq, r2, r10, r10, ASR, r3},
2097                             false,
2098                             al,
2099                             "eq r2 r10 r10 ASR r3",
2100                             "eq_r2_r10_r10_ASR_r3"},
2101                            {{vc, r1, r2, r11, LSR, r10},
2102                             false,
2103                             al,
2104                             "vc r1 r2 r11 LSR r10",
2105                             "vc_r1_r2_r11_LSR_r10"},
2106                            {{hi, r6, r1, r9, LSR, r1},
2107                             false,
2108                             al,
2109                             "hi r6 r1 r9 LSR r1",
2110                             "hi_r6_r1_r9_LSR_r1"},
2111                            {{cs, r10, r14, r10, LSL, r5},
2112                             false,
2113                             al,
2114                             "cs r10 r14 r10 LSL r5",
2115                             "cs_r10_r14_r10_LSL_r5"},
2116                            {{mi, r3, r9, r3, LSL, r10},
2117                             false,
2118                             al,
2119                             "mi r3 r9 r3 LSL r10",
2120                             "mi_r3_r9_r3_LSL_r10"},
2121                            {{vs, r2, r14, r3, LSL, r10},
2122                             false,
2123                             al,
2124                             "vs r2 r14 r3 LSL r10",
2125                             "vs_r2_r14_r3_LSL_r10"},
2126                            {{hi, r1, r2, r10, ASR, r1},
2127                             false,
2128                             al,
2129                             "hi r1 r2 r10 ASR r1",
2130                             "hi_r1_r2_r10_ASR_r1"},
2131                            {{ne, r13, r8, r7, LSL, r11},
2132                             false,
2133                             al,
2134                             "ne r13 r8 r7 LSL r11",
2135                             "ne_r13_r8_r7_LSL_r11"},
2136                            {{eq, r10, r10, r9, LSR, r9},
2137                             false,
2138                             al,
2139                             "eq r10 r10 r9 LSR r9",
2140                             "eq_r10_r10_r9_LSR_r9"},
2141                            {{eq, r12, r6, r2, ASR, r12},
2142                             false,
2143                             al,
2144                             "eq r12 r6 r2 ASR r12",
2145                             "eq_r12_r6_r2_ASR_r12"},
2146                            {{cs, r14, r7, r3, LSR, r9},
2147                             false,
2148                             al,
2149                             "cs r14 r7 r3 LSR r9",
2150                             "cs_r14_r7_r3_LSR_r9"},
2151                            {{vc, r11, r14, r12, ROR, r2},
2152                             false,
2153                             al,
2154                             "vc r11 r14 r12 ROR r2",
2155                             "vc_r11_r14_r12_ROR_r2"},
2156                            {{lt, r11, r8, r3, LSR, r14},
2157                             false,
2158                             al,
2159                             "lt r11 r8 r3 LSR r14",
2160                             "lt_r11_r8_r3_LSR_r14"},
2161                            {{ls, r8, r8, r7, ROR, r14},
2162                             false,
2163                             al,
2164                             "ls r8 r8 r7 ROR r14",
2165                             "ls_r8_r8_r7_ROR_r14"},
2166                            {{hi, r14, r0, r3, ROR, r0},
2167                             false,
2168                             al,
2169                             "hi r14 r0 r3 ROR r0",
2170                             "hi_r14_r0_r3_ROR_r0"},
2171                            {{ge, r6, r2, r6, ROR, r13},
2172                             false,
2173                             al,
2174                             "ge r6 r2 r6 ROR r13",
2175                             "ge_r6_r2_r6_ROR_r13"},
2176                            {{le, r10, r10, r0, LSL, r2},
2177                             false,
2178                             al,
2179                             "le r10 r10 r0 LSL r2",
2180                             "le_r10_r10_r0_LSL_r2"},
2181                            {{cc, r4, r7, r1, LSR, r10},
2182                             false,
2183                             al,
2184                             "cc r4 r7 r1 LSR r10",
2185                             "cc_r4_r7_r1_LSR_r10"},
2186                            {{al, r4, r0, r8, ROR, r7},
2187                             false,
2188                             al,
2189                             "al r4 r0 r8 ROR r7",
2190                             "al_r4_r0_r8_ROR_r7"},
2191                            {{ne, r10, r5, r3, LSL, r9},
2192                             false,
2193                             al,
2194                             "ne r10 r5 r3 LSL r9",
2195                             "ne_r10_r5_r3_LSL_r9"},
2196                            {{vs, r11, r7, r5, LSL, r14},
2197                             false,
2198                             al,
2199                             "vs r11 r7 r5 LSL r14",
2200                             "vs_r11_r7_r5_LSL_r14"},
2201                            {{eq, r7, r10, r14, ASR, r8},
2202                             false,
2203                             al,
2204                             "eq r7 r10 r14 ASR r8",
2205                             "eq_r7_r10_r14_ASR_r8"},
2206                            {{ls, r4, r5, r9, ASR, r1},
2207                             false,
2208                             al,
2209                             "ls r4 r5 r9 ASR r1",
2210                             "ls_r4_r5_r9_ASR_r1"},
2211                            {{lt, r13, r14, r8, ROR, r2},
2212                             false,
2213                             al,
2214                             "lt r13 r14 r8 ROR r2",
2215                             "lt_r13_r14_r8_ROR_r2"},
2216                            {{cc, r7, r6, r9, LSR, r5},
2217                             false,
2218                             al,
2219                             "cc r7 r6 r9 LSR r5",
2220                             "cc_r7_r6_r9_LSR_r5"},
2221                            {{mi, r8, r7, r13, ASR, r2},
2222                             false,
2223                             al,
2224                             "mi r8 r7 r13 ASR r2",
2225                             "mi_r8_r7_r13_ASR_r2"},
2226                            {{al, r2, r11, r2, LSR, r8},
2227                             false,
2228                             al,
2229                             "al r2 r11 r2 LSR r8",
2230                             "al_r2_r11_r2_LSR_r8"},
2231                            {{al, r6, r7, r6, LSR, r1},
2232                             false,
2233                             al,
2234                             "al r6 r7 r6 LSR r1",
2235                             "al_r6_r7_r6_LSR_r1"},
2236                            {{cs, r4, r11, r6, LSR, r1},
2237                             false,
2238                             al,
2239                             "cs r4 r11 r6 LSR r1",
2240                             "cs_r4_r11_r6_LSR_r1"},
2241                            {{ne, r14, r2, r2, ROR, r1},
2242                             false,
2243                             al,
2244                             "ne r14 r2 r2 ROR r1",
2245                             "ne_r14_r2_r2_ROR_r1"},
2246                            {{ls, r5, r10, r3, LSR, r10},
2247                             false,
2248                             al,
2249                             "ls r5 r10 r3 LSR r10",
2250                             "ls_r5_r10_r3_LSR_r10"},
2251                            {{le, r12, r11, r9, ROR, r4},
2252                             false,
2253                             al,
2254                             "le r12 r11 r9 ROR r4",
2255                             "le_r12_r11_r9_ROR_r4"},
2256                            {{vs, r10, r1, r4, LSL, r4},
2257                             false,
2258                             al,
2259                             "vs r10 r1 r4 LSL r4",
2260                             "vs_r10_r1_r4_LSL_r4"},
2261                            {{hi, r2, r5, r5, LSL, r10},
2262                             false,
2263                             al,
2264                             "hi r2 r5 r5 LSL r10",
2265                             "hi_r2_r5_r5_LSL_r10"},
2266                            {{ls, r12, r3, r13, ROR, r4},
2267                             false,
2268                             al,
2269                             "ls r12 r3 r13 ROR r4",
2270                             "ls_r12_r3_r13_ROR_r4"},
2271                            {{pl, r3, r0, r2, ASR, r8},
2272                             false,
2273                             al,
2274                             "pl r3 r0 r2 ASR r8",
2275                             "pl_r3_r0_r2_ASR_r8"},
2276                            {{mi, r12, r5, r3, LSL, r1},
2277                             false,
2278                             al,
2279                             "mi r12 r5 r3 LSL r1",
2280                             "mi_r12_r5_r3_LSL_r1"},
2281                            {{eq, r6, r11, r3, ROR, r2},
2282                             false,
2283                             al,
2284                             "eq r6 r11 r3 ROR r2",
2285                             "eq_r6_r11_r3_ROR_r2"},
2286                            {{vs, r7, r10, r0, LSL, r6},
2287                             false,
2288                             al,
2289                             "vs r7 r10 r0 LSL r6",
2290                             "vs_r7_r10_r0_LSL_r6"},
2291                            {{cs, r14, r2, r12, LSL, r12},
2292                             false,
2293                             al,
2294                             "cs r14 r2 r12 LSL r12",
2295                             "cs_r14_r2_r12_LSL_r12"},
2296                            {{ls, r3, r5, r0, LSR, r10},
2297                             false,
2298                             al,
2299                             "ls r3 r5 r0 LSR r10",
2300                             "ls_r3_r5_r0_LSR_r10"},
2301                            {{gt, r0, r12, r13, ROR, r1},
2302                             false,
2303                             al,
2304                             "gt r0 r12 r13 ROR r1",
2305                             "gt_r0_r12_r13_ROR_r1"},
2306                            {{al, r4, r12, r1, ROR, r7},
2307                             false,
2308                             al,
2309                             "al r4 r12 r1 ROR r7",
2310                             "al_r4_r12_r1_ROR_r7"},
2311                            {{hi, r6, r1, r10, LSL, r6},
2312                             false,
2313                             al,
2314                             "hi r6 r1 r10 LSL r6",
2315                             "hi_r6_r1_r10_LSL_r6"},
2316                            {{ne, r9, r2, r0, ROR, r7},
2317                             false,
2318                             al,
2319                             "ne r9 r2 r0 ROR r7",
2320                             "ne_r9_r2_r0_ROR_r7"},
2321                            {{le, r5, r7, r5, LSR, r0},
2322                             false,
2323                             al,
2324                             "le r5 r7 r5 LSR r0",
2325                             "le_r5_r7_r5_LSR_r0"},
2326                            {{vs, r8, r11, r9, ROR, r10},
2327                             false,
2328                             al,
2329                             "vs r8 r11 r9 ROR r10",
2330                             "vs_r8_r11_r9_ROR_r10"},
2331                            {{gt, r6, r11, r12, ROR, r1},
2332                             false,
2333                             al,
2334                             "gt r6 r11 r12 ROR r1",
2335                             "gt_r6_r11_r12_ROR_r1"},
2336                            {{ne, r2, r10, r4, ASR, r14},
2337                             false,
2338                             al,
2339                             "ne r2 r10 r4 ASR r14",
2340                             "ne_r2_r10_r4_ASR_r14"},
2341                            {{al, r8, r7, r0, ROR, r8},
2342                             false,
2343                             al,
2344                             "al r8 r7 r0 ROR r8",
2345                             "al_r8_r7_r0_ROR_r8"},
2346                            {{hi, r7, r10, r10, LSR, r3},
2347                             false,
2348                             al,
2349                             "hi r7 r10 r10 LSR r3",
2350                             "hi_r7_r10_r10_LSR_r3"},
2351                            {{cs, r5, r5, r4, LSL, r1},
2352                             false,
2353                             al,
2354                             "cs r5 r5 r4 LSL r1",
2355                             "cs_r5_r5_r4_LSL_r1"},
2356                            {{gt, r11, r14, r14, LSL, r7},
2357                             false,
2358                             al,
2359                             "gt r11 r14 r14 LSL r7",
2360                             "gt_r11_r14_r14_LSL_r7"},
2361                            {{lt, r1, r8, r1, LSR, r2},
2362                             false,
2363                             al,
2364                             "lt r1 r8 r1 LSR r2",
2365                             "lt_r1_r8_r1_LSR_r2"},
2366                            {{hi, r2, r12, r9, ASR, r4},
2367                             false,
2368                             al,
2369                             "hi r2 r12 r9 ASR r4",
2370                             "hi_r2_r12_r9_ASR_r4"},
2371                            {{eq, r8, r6, r7, ASR, r3},
2372                             false,
2373                             al,
2374                             "eq r8 r6 r7 ASR r3",
2375                             "eq_r8_r6_r7_ASR_r3"},
2376                            {{mi, r7, r7, r1, ROR, r1},
2377                             false,
2378                             al,
2379                             "mi r7 r7 r1 ROR r1",
2380                             "mi_r7_r7_r1_ROR_r1"},
2381                            {{cc, r12, r3, r13, LSL, r4},
2382                             false,
2383                             al,
2384                             "cc r12 r3 r13 LSL r4",
2385                             "cc_r12_r3_r13_LSL_r4"},
2386                            {{vs, r14, r1, r0, ASR, r4},
2387                             false,
2388                             al,
2389                             "vs r14 r1 r0 ASR r4",
2390                             "vs_r14_r1_r0_ASR_r4"},
2391                            {{lt, r6, r2, r12, LSR, r4},
2392                             false,
2393                             al,
2394                             "lt r6 r2 r12 LSR r4",
2395                             "lt_r6_r2_r12_LSR_r4"},
2396                            {{pl, r13, r3, r1, LSL, r2},
2397                             false,
2398                             al,
2399                             "pl r13 r3 r1 LSL r2",
2400                             "pl_r13_r3_r1_LSL_r2"},
2401                            {{ne, r7, r14, r5, ROR, r10},
2402                             false,
2403                             al,
2404                             "ne r7 r14 r5 ROR r10",
2405                             "ne_r7_r14_r5_ROR_r10"},
2406                            {{al, r9, r8, r9, LSL, r0},
2407                             false,
2408                             al,
2409                             "al r9 r8 r9 LSL r0",
2410                             "al_r9_r8_r9_LSL_r0"},
2411                            {{ge, r8, r7, r3, LSL, r13},
2412                             false,
2413                             al,
2414                             "ge r8 r7 r3 LSL r13",
2415                             "ge_r8_r7_r3_LSL_r13"},
2416                            {{lt, r12, r10, r4, ROR, r13},
2417                             false,
2418                             al,
2419                             "lt r12 r10 r4 ROR r13",
2420                             "lt_r12_r10_r4_ROR_r13"},
2421                            {{vs, r9, r14, r5, LSR, r2},
2422                             false,
2423                             al,
2424                             "vs r9 r14 r5 LSR r2",
2425                             "vs_r9_r14_r5_LSR_r2"},
2426                            {{pl, r4, r10, r0, ROR, r13},
2427                             false,
2428                             al,
2429                             "pl r4 r10 r0 ROR r13",
2430                             "pl_r4_r10_r0_ROR_r13"},
2431                            {{vc, r1, r14, r5, ASR, r14},
2432                             false,
2433                             al,
2434                             "vc r1 r14 r5 ASR r14",
2435                             "vc_r1_r14_r5_ASR_r14"},
2436                            {{vs, r10, r3, r8, LSR, r10},
2437                             false,
2438                             al,
2439                             "vs r10 r3 r8 LSR r10",
2440                             "vs_r10_r3_r8_LSR_r10"},
2441                            {{eq, r1, r4, r11, ROR, r2},
2442                             false,
2443                             al,
2444                             "eq r1 r4 r11 ROR r2",
2445                             "eq_r1_r4_r11_ROR_r2"},
2446                            {{pl, r2, r6, r10, LSL, r4},
2447                             false,
2448                             al,
2449                             "pl r2 r6 r10 LSL r4",
2450                             "pl_r2_r6_r10_LSL_r4"},
2451                            {{ne, r9, r0, r3, ASR, r13},
2452                             false,
2453                             al,
2454                             "ne r9 r0 r3 ASR r13",
2455                             "ne_r9_r0_r3_ASR_r13"},
2456                            {{gt, r10, r5, r5, ROR, r1},
2457                             false,
2458                             al,
2459                             "gt r10 r5 r5 ROR r1",
2460                             "gt_r10_r5_r5_ROR_r1"},
2461                            {{gt, r0, r8, r2, LSL, r2},
2462                             false,
2463                             al,
2464                             "gt r0 r8 r2 LSL r2",
2465                             "gt_r0_r8_r2_LSL_r2"},
2466                            {{pl, r10, r9, r10, LSL, r10},
2467                             false,
2468                             al,
2469                             "pl r10 r9 r10 LSL r10",
2470                             "pl_r10_r9_r10_LSL_r10"},
2471                            {{ls, r5, r10, r0, LSR, r5},
2472                             false,
2473                             al,
2474                             "ls r5 r10 r0 LSR r5",
2475                             "ls_r5_r10_r0_LSR_r5"},
2476                            {{al, r5, r10, r4, ROR, r9},
2477                             false,
2478                             al,
2479                             "al r5 r10 r4 ROR r9",
2480                             "al_r5_r10_r4_ROR_r9"},
2481                            {{hi, r10, r7, r1, ROR, r10},
2482                             false,
2483                             al,
2484                             "hi r10 r7 r1 ROR r10",
2485                             "hi_r10_r7_r1_ROR_r10"},
2486                            {{cs, r10, r12, r11, ROR, r9},
2487                             false,
2488                             al,
2489                             "cs r10 r12 r11 ROR r9",
2490                             "cs_r10_r12_r11_ROR_r9"},
2491                            {{vs, r4, r0, r6, ASR, r3},
2492                             false,
2493                             al,
2494                             "vs r4 r0 r6 ASR r3",
2495                             "vs_r4_r0_r6_ASR_r3"},
2496                            {{hi, r8, r3, r4, LSR, r8},
2497                             false,
2498                             al,
2499                             "hi r8 r3 r4 LSR r8",
2500                             "hi_r8_r3_r4_LSR_r8"},
2501                            {{mi, r4, r2, r1, ROR, r6},
2502                             false,
2503                             al,
2504                             "mi r4 r2 r1 ROR r6",
2505                             "mi_r4_r2_r1_ROR_r6"},
2506                            {{cs, r7, r5, r4, LSR, r3},
2507                             false,
2508                             al,
2509                             "cs r7 r5 r4 LSR r3",
2510                             "cs_r7_r5_r4_LSR_r3"},
2511                            {{le, r12, r12, r9, ASR, r4},
2512                             false,
2513                             al,
2514                             "le r12 r12 r9 ASR r4",
2515                             "le_r12_r12_r9_ASR_r4"},
2516                            {{vc, r7, r4, r13, LSR, r8},
2517                             false,
2518                             al,
2519                             "vc r7 r4 r13 LSR r8",
2520                             "vc_r7_r4_r13_LSR_r8"},
2521                            {{le, r0, r14, r14, ROR, r9},
2522                             false,
2523                             al,
2524                             "le r0 r14 r14 ROR r9",
2525                             "le_r0_r14_r14_ROR_r9"},
2526                            {{le, r0, r8, r13, LSL, r2},
2527                             false,
2528                             al,
2529                             "le r0 r8 r13 LSL r2",
2530                             "le_r0_r8_r13_LSL_r2"},
2531                            {{vc, r6, r3, r0, LSL, r6},
2532                             false,
2533                             al,
2534                             "vc r6 r3 r0 LSL r6",
2535                             "vc_r6_r3_r0_LSL_r6"},
2536                            {{vc, r12, r1, r11, ASR, r8},
2537                             false,
2538                             al,
2539                             "vc r12 r1 r11 ASR r8",
2540                             "vc_r12_r1_r11_ASR_r8"},
2541                            {{lt, r13, r10, r0, LSL, r9},
2542                             false,
2543                             al,
2544                             "lt r13 r10 r0 LSL r9",
2545                             "lt_r13_r10_r0_LSL_r9"},
2546                            {{cc, r0, r1, r0, ASR, r6},
2547                             false,
2548                             al,
2549                             "cc r0 r1 r0 ASR r6",
2550                             "cc_r0_r1_r0_ASR_r6"},
2551                            {{eq, r12, r12, r14, LSR, r12},
2552                             false,
2553                             al,
2554                             "eq r12 r12 r14 LSR r12",
2555                             "eq_r12_r12_r14_LSR_r12"},
2556                            {{eq, r7, r12, r3, LSR, r7},
2557                             false,
2558                             al,
2559                             "eq r7 r12 r3 LSR r7",
2560                             "eq_r7_r12_r3_LSR_r7"},
2561                            {{lt, r6, r4, r6, ASR, r4},
2562                             false,
2563                             al,
2564                             "lt r6 r4 r6 ASR r4",
2565                             "lt_r6_r4_r6_ASR_r4"},
2566                            {{vs, r0, r3, r3, ROR, r8},
2567                             false,
2568                             al,
2569                             "vs r0 r3 r3 ROR r8",
2570                             "vs_r0_r3_r3_ROR_r8"},
2571                            {{vc, r2, r12, r3, LSR, r14},
2572                             false,
2573                             al,
2574                             "vc r2 r12 r3 LSR r14",
2575                             "vc_r2_r12_r3_LSR_r14"},
2576                            {{ne, r2, r0, r14, ASR, r9},
2577                             false,
2578                             al,
2579                             "ne r2 r0 r14 ASR r9",
2580                             "ne_r2_r0_r14_ASR_r9"},
2581                            {{al, r14, r2, r4, ROR, r10},
2582                             false,
2583                             al,
2584                             "al r14 r2 r4 ROR r10",
2585                             "al_r14_r2_r4_ROR_r10"},
2586                            {{ge, r10, r3, r12, LSR, r12},
2587                             false,
2588                             al,
2589                             "ge r10 r3 r12 LSR r12",
2590                             "ge_r10_r3_r12_LSR_r12"},
2591                            {{pl, r6, r11, r8, LSL, r14},
2592                             false,
2593                             al,
2594                             "pl r6 r11 r8 LSL r14",
2595                             "pl_r6_r11_r8_LSL_r14"},
2596                            {{gt, r8, r1, r7, LSR, r0},
2597                             false,
2598                             al,
2599                             "gt r8 r1 r7 LSR r0",
2600                             "gt_r8_r1_r7_LSR_r0"},
2601                            {{eq, r1, r14, r6, ASR, r12},
2602                             false,
2603                             al,
2604                             "eq r1 r14 r6 ASR r12",
2605                             "eq_r1_r14_r6_ASR_r12"},
2606                            {{gt, r8, r1, r11, LSR, r7},
2607                             false,
2608                             al,
2609                             "gt r8 r1 r11 LSR r7",
2610                             "gt_r8_r1_r11_LSR_r7"},
2611                            {{cc, r4, r13, r4, ROR, r4},
2612                             false,
2613                             al,
2614                             "cc r4 r13 r4 ROR r4",
2615                             "cc_r4_r13_r4_ROR_r4"},
2616                            {{vc, r5, r0, r12, LSR, r11},
2617                             false,
2618                             al,
2619                             "vc r5 r0 r12 LSR r11",
2620                             "vc_r5_r0_r12_LSR_r11"},
2621                            {{eq, r3, r0, r1, LSL, r13},
2622                             false,
2623                             al,
2624                             "eq r3 r0 r1 LSL r13",
2625                             "eq_r3_r0_r1_LSL_r13"},
2626                            {{lt, r1, r0, r11, ASR, r6},
2627                             false,
2628                             al,
2629                             "lt r1 r0 r11 ASR r6",
2630                             "lt_r1_r0_r11_ASR_r6"},
2631                            {{hi, r6, r2, r1, ASR, r0},
2632                             false,
2633                             al,
2634                             "hi r6 r2 r1 ASR r0",
2635                             "hi_r6_r2_r1_ASR_r0"},
2636                            {{eq, r1, r2, r11, LSL, r11},
2637                             false,
2638                             al,
2639                             "eq r1 r2 r11 LSL r11",
2640                             "eq_r1_r2_r11_LSL_r11"},
2641                            {{cs, r12, r9, r14, ROR, r10},
2642                             false,
2643                             al,
2644                             "cs r12 r9 r14 ROR r10",
2645                             "cs_r12_r9_r14_ROR_r10"},
2646                            {{ne, r8, r10, r7, ROR, r0},
2647                             false,
2648                             al,
2649                             "ne r8 r10 r7 ROR r0",
2650                             "ne_r8_r10_r7_ROR_r0"},
2651                            {{pl, r8, r14, r8, ASR, r10},
2652                             false,
2653                             al,
2654                             "pl r8 r14 r8 ASR r10",
2655                             "pl_r8_r14_r8_ASR_r10"},
2656                            {{cc, r4, r3, r10, LSR, r9},
2657                             false,
2658                             al,
2659                             "cc r4 r3 r10 LSR r9",
2660                             "cc_r4_r3_r10_LSR_r9"},
2661                            {{le, r4, r1, r2, ASR, r6},
2662                             false,
2663                             al,
2664                             "le r4 r1 r2 ASR r6",
2665                             "le_r4_r1_r2_ASR_r6"},
2666                            {{vs, r0, r3, r5, ASR, r3},
2667                             false,
2668                             al,
2669                             "vs r0 r3 r5 ASR r3",
2670                             "vs_r0_r3_r5_ASR_r3"},
2671                            {{lt, r5, r14, r1, ROR, r12},
2672                             false,
2673                             al,
2674                             "lt r5 r14 r1 ROR r12",
2675                             "lt_r5_r14_r1_ROR_r12"},
2676                            {{lt, r2, r0, r14, LSL, r13},
2677                             false,
2678                             al,
2679                             "lt r2 r0 r14 LSL r13",
2680                             "lt_r2_r0_r14_LSL_r13"},
2681                            {{cs, r5, r12, r12, ASR, r3},
2682                             false,
2683                             al,
2684                             "cs r5 r12 r12 ASR r3",
2685                             "cs_r5_r12_r12_ASR_r3"},
2686                            {{ls, r14, r1, r2, ROR, r7},
2687                             false,
2688                             al,
2689                             "ls r14 r1 r2 ROR r7",
2690                             "ls_r14_r1_r2_ROR_r7"},
2691                            {{ge, r6, r3, r14, ROR, r4},
2692                             false,
2693                             al,
2694                             "ge r6 r3 r14 ROR r4",
2695                             "ge_r6_r3_r14_ROR_r4"},
2696                            {{al, r13, r1, r9, ROR, r10},
2697                             false,
2698                             al,
2699                             "al r13 r1 r9 ROR r10",
2700                             "al_r13_r1_r9_ROR_r10"},
2701                            {{al, r0, r4, r5, ASR, r2},
2702                             false,
2703                             al,
2704                             "al r0 r4 r5 ASR r2",
2705                             "al_r0_r4_r5_ASR_r2"},
2706                            {{cc, r6, r13, r12, ASR, r8},
2707                             false,
2708                             al,
2709                             "cc r6 r13 r12 ASR r8",
2710                             "cc_r6_r13_r12_ASR_r8"},
2711                            {{eq, r0, r14, r13, LSR, r10},
2712                             false,
2713                             al,
2714                             "eq r0 r14 r13 LSR r10",
2715                             "eq_r0_r14_r13_LSR_r10"},
2716                            {{vs, r5, r8, r6, ASR, r7},
2717                             false,
2718                             al,
2719                             "vs r5 r8 r6 ASR r7",
2720                             "vs_r5_r8_r6_ASR_r7"},
2721                            {{cs, r9, r2, r10, LSL, r9},
2722                             false,
2723                             al,
2724                             "cs r9 r2 r10 LSL r9",
2725                             "cs_r9_r2_r10_LSL_r9"},
2726                            {{hi, r3, r0, r13, ASR, r5},
2727                             false,
2728                             al,
2729                             "hi r3 r0 r13 ASR r5",
2730                             "hi_r3_r0_r13_ASR_r5"},
2731                            {{al, r9, r10, r10, ASR, r5},
2732                             false,
2733                             al,
2734                             "al r9 r10 r10 ASR r5",
2735                             "al_r9_r10_r10_ASR_r5"},
2736                            {{eq, r3, r13, r3, LSL, r9},
2737                             false,
2738                             al,
2739                             "eq r3 r13 r3 LSL r9",
2740                             "eq_r3_r13_r3_LSL_r9"},
2741                            {{al, r0, r3, r13, LSL, r13},
2742                             false,
2743                             al,
2744                             "al r0 r3 r13 LSL r13",
2745                             "al_r0_r3_r13_LSL_r13"},
2746                            {{le, r0, r14, r10, ASR, r5},
2747                             false,
2748                             al,
2749                             "le r0 r14 r10 ASR r5",
2750                             "le_r0_r14_r10_ASR_r5"},
2751                            {{vs, r14, r1, r3, ASR, r0},
2752                             false,
2753                             al,
2754                             "vs r14 r1 r3 ASR r0",
2755                             "vs_r14_r1_r3_ASR_r0"},
2756                            {{pl, r8, r9, r3, LSL, r10},
2757                             false,
2758                             al,
2759                             "pl r8 r9 r3 LSL r10",
2760                             "pl_r8_r9_r3_LSL_r10"},
2761                            {{ge, r13, r9, r0, ROR, r0},
2762                             false,
2763                             al,
2764                             "ge r13 r9 r0 ROR r0",
2765                             "ge_r13_r9_r0_ROR_r0"},
2766                            {{gt, r14, r11, r1, LSR, r0},
2767                             false,
2768                             al,
2769                             "gt r14 r11 r1 LSR r0",
2770                             "gt_r14_r11_r1_LSR_r0"},
2771                            {{ls, r9, r2, r9, ROR, r14},
2772                             false,
2773                             al,
2774                             "ls r9 r2 r9 ROR r14",
2775                             "ls_r9_r2_r9_ROR_r14"},
2776                            {{mi, r12, r4, r9, LSR, r7},
2777                             false,
2778                             al,
2779                             "mi r12 r4 r9 LSR r7",
2780                             "mi_r12_r4_r9_LSR_r7"},
2781                            {{lt, r9, r14, r5, ASR, r14},
2782                             false,
2783                             al,
2784                             "lt r9 r14 r5 ASR r14",
2785                             "lt_r9_r14_r5_ASR_r14"},
2786                            {{ne, r11, r8, r12, LSL, r14},
2787                             false,
2788                             al,
2789                             "ne r11 r8 r12 LSL r14",
2790                             "ne_r11_r8_r12_LSL_r14"},
2791                            {{lt, r3, r11, r12, LSR, r3},
2792                             false,
2793                             al,
2794                             "lt r3 r11 r12 LSR r3",
2795                             "lt_r3_r11_r12_LSR_r3"},
2796                            {{cs, r8, r12, r8, LSL, r13},
2797                             false,
2798                             al,
2799                             "cs r8 r12 r8 LSL r13",
2800                             "cs_r8_r12_r8_LSL_r13"},
2801                            {{gt, r1, r4, r4, LSL, r5},
2802                             false,
2803                             al,
2804                             "gt r1 r4 r4 LSL r5",
2805                             "gt_r1_r4_r4_LSL_r5"},
2806                            {{ge, r5, r12, r10, ASR, r13},
2807                             false,
2808                             al,
2809                             "ge r5 r12 r10 ASR r13",
2810                             "ge_r5_r12_r10_ASR_r13"},
2811                            {{cs, r1, r6, r9, LSL, r6},
2812                             false,
2813                             al,
2814                             "cs r1 r6 r9 LSL r6",
2815                             "cs_r1_r6_r9_LSL_r6"},
2816                            {{pl, r0, r13, r7, ASR, r8},
2817                             false,
2818                             al,
2819                             "pl r0 r13 r7 ASR r8",
2820                             "pl_r0_r13_r7_ASR_r8"},
2821                            {{lt, r8, r11, r9, LSL, r4},
2822                             false,
2823                             al,
2824                             "lt r8 r11 r9 LSL r4",
2825                             "lt_r8_r11_r9_LSL_r4"},
2826                            {{hi, r9, r1, r6, LSL, r6},
2827                             false,
2828                             al,
2829                             "hi r9 r1 r6 LSL r6",
2830                             "hi_r9_r1_r6_LSL_r6"},
2831                            {{cc, r11, r9, r10, ASR, r2},
2832                             false,
2833                             al,
2834                             "cc r11 r9 r10 ASR r2",
2835                             "cc_r11_r9_r10_ASR_r2"},
2836                            {{gt, r4, r0, r10, LSR, r4},
2837                             false,
2838                             al,
2839                             "gt r4 r0 r10 LSR r4",
2840                             "gt_r4_r0_r10_LSR_r4"},
2841                            {{al, r8, r10, r4, LSL, r13},
2842                             false,
2843                             al,
2844                             "al r8 r10 r4 LSL r13",
2845                             "al_r8_r10_r4_LSL_r13"},
2846                            {{vs, r6, r8, r13, ASR, r10},
2847                             false,
2848                             al,
2849                             "vs r6 r8 r13 ASR r10",
2850                             "vs_r6_r8_r13_ASR_r10"},
2851                            {{mi, r13, r13, r14, ROR, r8},
2852                             false,
2853                             al,
2854                             "mi r13 r13 r14 ROR r8",
2855                             "mi_r13_r13_r14_ROR_r8"},
2856                            {{mi, r3, r13, r11, LSL, r8},
2857                             false,
2858                             al,
2859                             "mi r3 r13 r11 LSL r8",
2860                             "mi_r3_r13_r11_LSL_r8"},
2861                            {{cc, r11, r4, r1, LSR, r14},
2862                             false,
2863                             al,
2864                             "cc r11 r4 r1 LSR r14",
2865                             "cc_r11_r4_r1_LSR_r14"},
2866                            {{al, r6, r7, r9, ASR, r7},
2867                             false,
2868                             al,
2869                             "al r6 r7 r9 ASR r7",
2870                             "al_r6_r7_r9_ASR_r7"},
2871                            {{cs, r10, r2, r10, LSL, r13},
2872                             false,
2873                             al,
2874                             "cs r10 r2 r10 LSL r13",
2875                             "cs_r10_r2_r10_LSL_r13"},
2876                            {{eq, r1, r10, r14, ROR, r12},
2877                             false,
2878                             al,
2879                             "eq r1 r10 r14 ROR r12",
2880                             "eq_r1_r10_r14_ROR_r12"},
2881                            {{ge, r4, r5, r6, LSR, r13},
2882                             false,
2883                             al,
2884                             "ge r4 r5 r6 LSR r13",
2885                             "ge_r4_r5_r6_LSR_r13"},
2886                            {{cs, r11, r6, r1, LSR, r12},
2887                             false,
2888                             al,
2889                             "cs r11 r6 r1 LSR r12",
2890                             "cs_r11_r6_r1_LSR_r12"},
2891                            {{lt, r6, r6, r8, LSL, r10},
2892                             false,
2893                             al,
2894                             "lt r6 r6 r8 LSL r10",
2895                             "lt_r6_r6_r8_LSL_r10"},
2896                            {{mi, r2, r12, r8, LSL, r2},
2897                             false,
2898                             al,
2899                             "mi r2 r12 r8 LSL r2",
2900                             "mi_r2_r12_r8_LSL_r2"},
2901                            {{le, r2, r11, r3, ROR, r2},
2902                             false,
2903                             al,
2904                             "le r2 r11 r3 ROR r2",
2905                             "le_r2_r11_r3_ROR_r2"},
2906                            {{eq, r7, r4, r2, LSR, r11},
2907                             false,
2908                             al,
2909                             "eq r7 r4 r2 LSR r11",
2910                             "eq_r7_r4_r2_LSR_r11"},
2911                            {{pl, r10, r8, r3, ASR, r12},
2912                             false,
2913                             al,
2914                             "pl r10 r8 r3 ASR r12",
2915                             "pl_r10_r8_r3_ASR_r12"},
2916                            {{ge, r4, r8, r11, ROR, r13},
2917                             false,
2918                             al,
2919                             "ge r4 r8 r11 ROR r13",
2920                             "ge_r4_r8_r11_ROR_r13"},
2921                            {{ge, r13, r3, r14, LSL, r11},
2922                             false,
2923                             al,
2924                             "ge r13 r3 r14 LSL r11",
2925                             "ge_r13_r3_r14_LSL_r11"},
2926                            {{cc, r2, r8, r8, LSL, r14},
2927                             false,
2928                             al,
2929                             "cc r2 r8 r8 LSL r14",
2930                             "cc_r2_r8_r8_LSL_r14"},
2931                            {{le, r3, r2, r5, LSR, r6},
2932                             false,
2933                             al,
2934                             "le r3 r2 r5 LSR r6",
2935                             "le_r3_r2_r5_LSR_r6"},
2936                            {{ls, r1, r9, r9, ROR, r3},
2937                             false,
2938                             al,
2939                             "ls r1 r9 r9 ROR r3",
2940                             "ls_r1_r9_r9_ROR_r3"},
2941                            {{pl, r14, r9, r3, ASR, r9},
2942                             false,
2943                             al,
2944                             "pl r14 r9 r3 ASR r9",
2945                             "pl_r14_r9_r3_ASR_r9"},
2946                            {{cs, r13, r2, r9, ROR, r7},
2947                             false,
2948                             al,
2949                             "cs r13 r2 r9 ROR r7",
2950                             "cs_r13_r2_r9_ROR_r7"},
2951                            {{eq, r9, r10, r4, ROR, r8},
2952                             false,
2953                             al,
2954                             "eq r9 r10 r4 ROR r8",
2955                             "eq_r9_r10_r4_ROR_r8"},
2956                            {{lt, r1, r2, r0, ROR, r9},
2957                             false,
2958                             al,
2959                             "lt r1 r2 r0 ROR r9",
2960                             "lt_r1_r2_r0_ROR_r9"},
2961                            {{hi, r14, r1, r2, LSR, r8},
2962                             false,
2963                             al,
2964                             "hi r14 r1 r2 LSR r8",
2965                             "hi_r14_r1_r2_LSR_r8"},
2966                            {{ne, r10, r7, r3, ROR, r13},
2967                             false,
2968                             al,
2969                             "ne r10 r7 r3 ROR r13",
2970                             "ne_r10_r7_r3_ROR_r13"},
2971                            {{ls, r3, r6, r3, LSL, r1},
2972                             false,
2973                             al,
2974                             "ls r3 r6 r3 LSL r1",
2975                             "ls_r3_r6_r3_LSL_r1"},
2976                            {{eq, r3, r0, r12, ROR, r6},
2977                             false,
2978                             al,
2979                             "eq r3 r0 r12 ROR r6",
2980                             "eq_r3_r0_r12_ROR_r6"},
2981                            {{cc, r7, r4, r8, LSL, r6},
2982                             false,
2983                             al,
2984                             "cc r7 r4 r8 LSL r6",
2985                             "cc_r7_r4_r8_LSL_r6"},
2986                            {{al, r0, r7, r2, LSR, r3},
2987                             false,
2988                             al,
2989                             "al r0 r7 r2 LSR r3",
2990                             "al_r0_r7_r2_LSR_r3"},
2991                            {{pl, r13, r4, r14, ASR, r10},
2992                             false,
2993                             al,
2994                             "pl r13 r4 r14 ASR r10",
2995                             "pl_r13_r4_r14_ASR_r10"},
2996                            {{vs, r7, r14, r4, ASR, r12},
2997                             false,
2998                             al,
2999                             "vs r7 r14 r4 ASR r12",
3000                             "vs_r7_r14_r4_ASR_r12"},
3001                            {{al, r3, r2, r12, ASR, r13},
3002                             false,
3003                             al,
3004                             "al r3 r2 r12 ASR r13",
3005                             "al_r3_r2_r12_ASR_r13"},
3006                            {{vs, r12, r13, r12, LSL, r2},
3007                             false,
3008                             al,
3009                             "vs r12 r13 r12 LSL r2",
3010                             "vs_r12_r13_r12_LSL_r2"},
3011                            {{ge, r8, r7, r10, LSR, r8},
3012                             false,
3013                             al,
3014                             "ge r8 r7 r10 LSR r8",
3015                             "ge_r8_r7_r10_LSR_r8"},
3016                            {{vs, r14, r10, r1, LSR, r0},
3017                             false,
3018                             al,
3019                             "vs r14 r10 r1 LSR r0",
3020                             "vs_r14_r10_r1_LSR_r0"},
3021                            {{ls, r13, r11, r6, LSL, r6},
3022                             false,
3023                             al,
3024                             "ls r13 r11 r6 LSL r6",
3025                             "ls_r13_r11_r6_LSL_r6"},
3026                            {{ne, r3, r1, r2, ASR, r6},
3027                             false,
3028                             al,
3029                             "ne r3 r1 r2 ASR r6",
3030                             "ne_r3_r1_r2_ASR_r6"},
3031                            {{cs, r2, r9, r11, ROR, r0},
3032                             false,
3033                             al,
3034                             "cs r2 r9 r11 ROR r0",
3035                             "cs_r2_r9_r11_ROR_r0"},
3036                            {{ls, r7, r12, r9, LSR, r5},
3037                             false,
3038                             al,
3039                             "ls r7 r12 r9 LSR r5",
3040                             "ls_r7_r12_r9_LSR_r5"},
3041                            {{ls, r13, r9, r11, ASR, r8},
3042                             false,
3043                             al,
3044                             "ls r13 r9 r11 ASR r8",
3045                             "ls_r13_r9_r11_ASR_r8"},
3046                            {{mi, r6, r7, r4, ASR, r0},
3047                             false,
3048                             al,
3049                             "mi r6 r7 r4 ASR r0",
3050                             "mi_r6_r7_r4_ASR_r0"},
3051                            {{cc, r10, r7, r3, ROR, r2},
3052                             false,
3053                             al,
3054                             "cc r10 r7 r3 ROR r2",
3055                             "cc_r10_r7_r3_ROR_r2"},
3056                            {{ne, r3, r8, r12, ROR, r1},
3057                             false,
3058                             al,
3059                             "ne r3 r8 r12 ROR r1",
3060                             "ne_r3_r8_r12_ROR_r1"},
3061                            {{hi, r5, r11, r7, ROR, r11},
3062                             false,
3063                             al,
3064                             "hi r5 r11 r7 ROR r11",
3065                             "hi_r5_r11_r7_ROR_r11"},
3066                            {{eq, r12, r10, r1, LSL, r0},
3067                             false,
3068                             al,
3069                             "eq r12 r10 r1 LSL r0",
3070                             "eq_r12_r10_r1_LSL_r0"},
3071                            {{mi, r2, r7, r0, LSR, r10},
3072                             false,
3073                             al,
3074                             "mi r2 r7 r0 LSR r10",
3075                             "mi_r2_r7_r0_LSR_r10"},
3076                            {{ge, r8, r5, r12, LSR, r6},
3077                             false,
3078                             al,
3079                             "ge r8 r5 r12 LSR r6",
3080                             "ge_r8_r5_r12_LSR_r6"},
3081                            {{vc, r1, r0, r14, ROR, r4},
3082                             false,
3083                             al,
3084                             "vc r1 r0 r14 ROR r4",
3085                             "vc_r1_r0_r14_ROR_r4"},
3086                            {{gt, r5, r2, r1, LSR, r0},
3087                             false,
3088                             al,
3089                             "gt r5 r2 r1 LSR r0",
3090                             "gt_r5_r2_r1_LSR_r0"},
3091                            {{cs, r1, r1, r2, LSR, r5},
3092                             false,
3093                             al,
3094                             "cs r1 r1 r2 LSR r5",
3095                             "cs_r1_r1_r2_LSR_r5"},
3096                            {{ge, r9, r14, r9, ASR, r3},
3097                             false,
3098                             al,
3099                             "ge r9 r14 r9 ASR r3",
3100                             "ge_r9_r14_r9_ASR_r3"},
3101                            {{gt, r9, r1, r10, LSR, r14},
3102                             false,
3103                             al,
3104                             "gt r9 r1 r10 LSR r14",
3105                             "gt_r9_r1_r10_LSR_r14"},
3106                            {{ls, r3, r5, r2, ASR, r7},
3107                             false,
3108                             al,
3109                             "ls r3 r5 r2 ASR r7",
3110                             "ls_r3_r5_r2_ASR_r7"},
3111                            {{ls, r7, r11, r8, LSR, r12},
3112                             false,
3113                             al,
3114                             "ls r7 r11 r8 LSR r12",
3115                             "ls_r7_r11_r8_LSR_r12"},
3116                            {{ls, r14, r9, r6, LSR, r9},
3117                             false,
3118                             al,
3119                             "ls r14 r9 r6 LSR r9",
3120                             "ls_r14_r9_r6_LSR_r9"},
3121                            {{cs, r2, r12, r10, ROR, r5},
3122                             false,
3123                             al,
3124                             "cs r2 r12 r10 ROR r5",
3125                             "cs_r2_r12_r10_ROR_r5"},
3126                            {{eq, r8, r6, r14, LSR, r9},
3127                             false,
3128                             al,
3129                             "eq r8 r6 r14 LSR r9",
3130                             "eq_r8_r6_r14_LSR_r9"},
3131                            {{lt, r8, r0, r14, ASR, r12},
3132                             false,
3133                             al,
3134                             "lt r8 r0 r14 ASR r12",
3135                             "lt_r8_r0_r14_ASR_r12"},
3136                            {{al, r14, r7, r8, ROR, r8},
3137                             false,
3138                             al,
3139                             "al r14 r7 r8 ROR r8",
3140                             "al_r14_r7_r8_ROR_r8"},
3141                            {{lt, r5, r12, r3, LSL, r5},
3142                             false,
3143                             al,
3144                             "lt r5 r12 r3 LSL r5",
3145                             "lt_r5_r12_r3_LSL_r5"},
3146                            {{gt, r0, r0, r3, ROR, r12},
3147                             false,
3148                             al,
3149                             "gt r0 r0 r3 ROR r12",
3150                             "gt_r0_r0_r3_ROR_r12"},
3151                            {{ge, r6, r5, r10, ASR, r13},
3152                             false,
3153                             al,
3154                             "ge r6 r5 r10 ASR r13",
3155                             "ge_r6_r5_r10_ASR_r13"},
3156                            {{vc, r5, r11, r6, LSL, r11},
3157                             false,
3158                             al,
3159                             "vc r5 r11 r6 LSL r11",
3160                             "vc_r5_r11_r6_LSL_r11"},
3161                            {{gt, r10, r5, r9, LSR, r3},
3162                             false,
3163                             al,
3164                             "gt r10 r5 r9 LSR r3",
3165                             "gt_r10_r5_r9_LSR_r3"},
3166                            {{vc, r14, r3, r12, LSL, r2},
3167                             false,
3168                             al,
3169                             "vc r14 r3 r12 LSL r2",
3170                             "vc_r14_r3_r12_LSL_r2"},
3171                            {{eq, r12, r2, r13, LSL, r6},
3172                             false,
3173                             al,
3174                             "eq r12 r2 r13 LSL r6",
3175                             "eq_r12_r2_r13_LSL_r6"},
3176                            {{le, r5, r7, r12, LSL, r10},
3177                             false,
3178                             al,
3179                             "le r5 r7 r12 LSL r10",
3180                             "le_r5_r7_r12_LSL_r10"},
3181                            {{cc, r8, r4, r1, LSR, r3},
3182                             false,
3183                             al,
3184                             "cc r8 r4 r1 LSR r3",
3185                             "cc_r8_r4_r1_LSR_r3"},
3186                            {{ne, r2, r13, r1, LSL, r13},
3187                             false,
3188                             al,
3189                             "ne r2 r13 r1 LSL r13",
3190                             "ne_r2_r13_r1_LSL_r13"},
3191                            {{ls, r14, r7, r8, ASR, r0},
3192                             false,
3193                             al,
3194                             "ls r14 r7 r8 ASR r0",
3195                             "ls_r14_r7_r8_ASR_r0"},
3196                            {{mi, r3, r0, r5, ASR, r8},
3197                             false,
3198                             al,
3199                             "mi r3 r0 r5 ASR r8",
3200                             "mi_r3_r0_r5_ASR_r8"},
3201                            {{mi, r2, r3, r1, LSL, r3},
3202                             false,
3203                             al,
3204                             "mi r2 r3 r1 LSL r3",
3205                             "mi_r2_r3_r1_LSL_r3"},
3206                            {{vs, r14, r4, r4, LSR, r5},
3207                             false,
3208                             al,
3209                             "vs r14 r4 r4 LSR r5",
3210                             "vs_r14_r4_r4_LSR_r5"},
3211                            {{le, r7, r3, r1, LSL, r10},
3212                             false,
3213                             al,
3214                             "le r7 r3 r1 LSL r10",
3215                             "le_r7_r3_r1_LSL_r10"},
3216                            {{mi, r7, r14, r4, ASR, r14},
3217                             false,
3218                             al,
3219                             "mi r7 r14 r4 ASR r14",
3220                             "mi_r7_r14_r4_ASR_r14"},
3221                            {{mi, r11, r5, r4, ASR, r13},
3222                             false,
3223                             al,
3224                             "mi r11 r5 r4 ASR r13",
3225                             "mi_r11_r5_r4_ASR_r13"},
3226                            {{vs, r3, r10, r5, LSR, r9},
3227                             false,
3228                             al,
3229                             "vs r3 r10 r5 LSR r9",
3230                             "vs_r3_r10_r5_LSR_r9"},
3231                            {{hi, r11, r3, r11, LSR, r7},
3232                             false,
3233                             al,
3234                             "hi r11 r3 r11 LSR r7",
3235                             "hi_r11_r3_r11_LSR_r7"},
3236                            {{ls, r14, r4, r10, LSL, r13},
3237                             false,
3238                             al,
3239                             "ls r14 r4 r10 LSL r13",
3240                             "ls_r14_r4_r10_LSL_r13"},
3241                            {{cc, r11, r0, r13, LSL, r7},
3242                             false,
3243                             al,
3244                             "cc r11 r0 r13 LSL r7",
3245                             "cc_r11_r0_r13_LSL_r7"},
3246                            {{al, r10, r3, r7, ASR, r0},
3247                             false,
3248                             al,
3249                             "al r10 r3 r7 ASR r0",
3250                             "al_r10_r3_r7_ASR_r0"},
3251                            {{cs, r4, r7, r1, ROR, r8},
3252                             false,
3253                             al,
3254                             "cs r4 r7 r1 ROR r8",
3255                             "cs_r4_r7_r1_ROR_r8"},
3256                            {{lt, r4, r0, r2, LSR, r5},
3257                             false,
3258                             al,
3259                             "lt r4 r0 r2 LSR r5",
3260                             "lt_r4_r0_r2_LSR_r5"},
3261                            {{eq, r0, r11, r9, LSL, r8},
3262                             false,
3263                             al,
3264                             "eq r0 r11 r9 LSL r8",
3265                             "eq_r0_r11_r9_LSL_r8"},
3266                            {{mi, r6, r1, r4, LSL, r13},
3267                             false,
3268                             al,
3269                             "mi r6 r1 r4 LSL r13",
3270                             "mi_r6_r1_r4_LSL_r13"},
3271                            {{lt, r8, r13, r9, ASR, r5},
3272                             false,
3273                             al,
3274                             "lt r8 r13 r9 ASR r5",
3275                             "lt_r8_r13_r9_ASR_r5"},
3276                            {{lt, r13, r7, r1, ROR, r0},
3277                             false,
3278                             al,
3279                             "lt r13 r7 r1 ROR r0",
3280                             "lt_r13_r7_r1_ROR_r0"},
3281                            {{hi, r12, r10, r5, ASR, r5},
3282                             false,
3283                             al,
3284                             "hi r12 r10 r5 ASR r5",
3285                             "hi_r12_r10_r5_ASR_r5"},
3286                            {{hi, r12, r11, r7, ROR, r3},
3287                             false,
3288                             al,
3289                             "hi r12 r11 r7 ROR r3",
3290                             "hi_r12_r11_r7_ROR_r3"},
3291                            {{ge, r8, r5, r0, ASR, r14},
3292                             false,
3293                             al,
3294                             "ge r8 r5 r0 ASR r14",
3295                             "ge_r8_r5_r0_ASR_r14"},
3296                            {{mi, r5, r0, r11, LSR, r10},
3297                             false,
3298                             al,
3299                             "mi r5 r0 r11 LSR r10",
3300                             "mi_r5_r0_r11_LSR_r10"},
3301                            {{vs, r10, r11, r2, LSR, r0},
3302                             false,
3303                             al,
3304                             "vs r10 r11 r2 LSR r0",
3305                             "vs_r10_r11_r2_LSR_r0"},
3306                            {{ls, r10, r8, r6, ROR, r3},
3307                             false,
3308                             al,
3309                             "ls r10 r8 r6 ROR r3",
3310                             "ls_r10_r8_r6_ROR_r3"},
3311                            {{gt, r10, r0, r2, ROR, r3},
3312                             false,
3313                             al,
3314                             "gt r10 r0 r2 ROR r3",
3315                             "gt_r10_r0_r2_ROR_r3"},
3316                            {{vs, r4, r10, r10, LSL, r5},
3317                             false,
3318                             al,
3319                             "vs r4 r10 r10 LSL r5",
3320                             "vs_r4_r10_r10_LSL_r5"},
3321                            {{vc, r12, r11, r12, LSR, r2},
3322                             false,
3323                             al,
3324                             "vc r12 r11 r12 LSR r2",
3325                             "vc_r12_r11_r12_LSR_r2"},
3326                            {{eq, r5, r8, r2, LSR, r1},
3327                             false,
3328                             al,
3329                             "eq r5 r8 r2 LSR r1",
3330                             "eq_r5_r8_r2_LSR_r1"},
3331                            {{le, r8, r10, r4, LSL, r3},
3332                             false,
3333                             al,
3334                             "le r8 r10 r4 LSL r3",
3335                             "le_r8_r10_r4_LSL_r3"},
3336                            {{al, r1, r10, r10, ROR, r10},
3337                             false,
3338                             al,
3339                             "al r1 r10 r10 ROR r10",
3340                             "al_r1_r10_r10_ROR_r10"},
3341                            {{al, r5, r5, r6, ROR, r11},
3342                             false,
3343                             al,
3344                             "al r5 r5 r6 ROR r11",
3345                             "al_r5_r5_r6_ROR_r11"},
3346                            {{vs, r4, r0, r9, ASR, r4},
3347                             false,
3348                             al,
3349                             "vs r4 r0 r9 ASR r4",
3350                             "vs_r4_r0_r9_ASR_r4"},
3351                            {{gt, r6, r9, r1, LSL, r9},
3352                             false,
3353                             al,
3354                             "gt r6 r9 r1 LSL r9",
3355                             "gt_r6_r9_r1_LSL_r9"},
3356                            {{lt, r3, r12, r10, LSR, r0},
3357                             false,
3358                             al,
3359                             "lt r3 r12 r10 LSR r0",
3360                             "lt_r3_r12_r10_LSR_r0"},
3361                            {{eq, r2, r0, r8, LSR, r0},
3362                             false,
3363                             al,
3364                             "eq r2 r0 r8 LSR r0",
3365                             "eq_r2_r0_r8_LSR_r0"},
3366                            {{gt, r0, r11, r7, LSR, r14},
3367                             false,
3368                             al,
3369                             "gt r0 r11 r7 LSR r14",
3370                             "gt_r0_r11_r7_LSR_r14"},
3371                            {{ls, r6, r1, r9, LSL, r10},
3372                             false,
3373                             al,
3374                             "ls r6 r1 r9 LSL r10",
3375                             "ls_r6_r1_r9_LSL_r10"},
3376                            {{eq, r3, r13, r13, LSL, r13},
3377                             false,
3378                             al,
3379                             "eq r3 r13 r13 LSL r13",
3380                             "eq_r3_r13_r13_LSL_r13"},
3381                            {{ne, r11, r6, r6, LSR, r11},
3382                             false,
3383                             al,
3384                             "ne r11 r6 r6 LSR r11",
3385                             "ne_r11_r6_r6_LSR_r11"},
3386                            {{le, r12, r0, r3, LSL, r4},
3387                             false,
3388                             al,
3389                             "le r12 r0 r3 LSL r4",
3390                             "le_r12_r0_r3_LSL_r4"},
3391                            {{pl, r0, r0, r1, LSR, r6},
3392                             false,
3393                             al,
3394                             "pl r0 r0 r1 LSR r6",
3395                             "pl_r0_r0_r1_LSR_r6"},
3396                            {{vc, r1, r14, r7, LSL, r9},
3397                             false,
3398                             al,
3399                             "vc r1 r14 r7 LSL r9",
3400                             "vc_r1_r14_r7_LSL_r9"},
3401                            {{lt, r0, r11, r10, LSR, r13},
3402                             false,
3403                             al,
3404                             "lt r0 r11 r10 LSR r13",
3405                             "lt_r0_r11_r10_LSR_r13"},
3406                            {{cs, r4, r11, r9, ROR, r7},
3407                             false,
3408                             al,
3409                             "cs r4 r11 r9 ROR r7",
3410                             "cs_r4_r11_r9_ROR_r7"},
3411                            {{vc, r8, r10, r10, LSR, r14},
3412                             false,
3413                             al,
3414                             "vc r8 r10 r10 LSR r14",
3415                             "vc_r8_r10_r10_LSR_r14"},
3416                            {{ls, r4, r8, r0, LSR, r6},
3417                             false,
3418                             al,
3419                             "ls r4 r8 r0 LSR r6",
3420                             "ls_r4_r8_r0_LSR_r6"},
3421                            {{ne, r10, r12, r10, ASR, r3},
3422                             false,
3423                             al,
3424                             "ne r10 r12 r10 ASR r3",
3425                             "ne_r10_r12_r10_ASR_r3"},
3426                            {{ls, r13, r13, r12, LSL, r0},
3427                             false,
3428                             al,
3429                             "ls r13 r13 r12 LSL r0",
3430                             "ls_r13_r13_r12_LSL_r0"},
3431                            {{vs, r6, r10, r8, LSR, r11},
3432                             false,
3433                             al,
3434                             "vs r6 r10 r8 LSR r11",
3435                             "vs_r6_r10_r8_LSR_r11"},
3436                            {{vs, r2, r3, r5, ROR, r1},
3437                             false,
3438                             al,
3439                             "vs r2 r3 r5 ROR r1",
3440                             "vs_r2_r3_r5_ROR_r1"},
3441                            {{lt, r2, r9, r5, LSR, r5},
3442                             false,
3443                             al,
3444                             "lt r2 r9 r5 LSR r5",
3445                             "lt_r2_r9_r5_LSR_r5"},
3446                            {{ne, r11, r1, r8, LSL, r8},
3447                             false,
3448                             al,
3449                             "ne r11 r1 r8 LSL r8",
3450                             "ne_r11_r1_r8_LSL_r8"},
3451                            {{ne, r1, r3, r11, ROR, r10},
3452                             false,
3453                             al,
3454                             "ne r1 r3 r11 ROR r10",
3455                             "ne_r1_r3_r11_ROR_r10"},
3456                            {{gt, r6, r7, r7, ROR, r6},
3457                             false,
3458                             al,
3459                             "gt r6 r7 r7 ROR r6",
3460                             "gt_r6_r7_r7_ROR_r6"},
3461                            {{cc, r14, r6, r5, LSR, r5},
3462                             false,
3463                             al,
3464                             "cc r14 r6 r5 LSR r5",
3465                             "cc_r14_r6_r5_LSR_r5"},
3466                            {{eq, r11, r8, r8, ASR, r10},
3467                             false,
3468                             al,
3469                             "eq r11 r8 r8 ASR r10",
3470                             "eq_r11_r8_r8_ASR_r10"},
3471                            {{al, r11, r12, r12, ROR, r3},
3472                             false,
3473                             al,
3474                             "al r11 r12 r12 ROR r3",
3475                             "al_r11_r12_r12_ROR_r3"},
3476                            {{lt, r6, r13, r10, ASR, r6},
3477                             false,
3478                             al,
3479                             "lt r6 r13 r10 ASR r6",
3480                             "lt_r6_r13_r10_ASR_r6"},
3481                            {{gt, r3, r11, r0, ASR, r2},
3482                             false,
3483                             al,
3484                             "gt r3 r11 r0 ASR r2",
3485                             "gt_r3_r11_r0_ASR_r2"},
3486                            {{lt, r9, r1, r13, LSL, r6},
3487                             false,
3488                             al,
3489                             "lt r9 r1 r13 LSL r6",
3490                             "lt_r9_r1_r13_LSL_r6"},
3491                            {{pl, r0, r9, r10, LSL, r9},
3492                             false,
3493                             al,
3494                             "pl r0 r9 r10 LSL r9",
3495                             "pl_r0_r9_r10_LSL_r9"},
3496                            {{hi, r9, r4, r5, LSL, r14},
3497                             false,
3498                             al,
3499                             "hi r9 r4 r5 LSL r14",
3500                             "hi_r9_r4_r5_LSL_r14"},
3501                            {{ge, r9, r3, r2, LSL, r7},
3502                             false,
3503                             al,
3504                             "ge r9 r3 r2 LSL r7",
3505                             "ge_r9_r3_r2_LSL_r7"},
3506                            {{al, r3, r13, r9, ASR, r2},
3507                             false,
3508                             al,
3509                             "al r3 r13 r9 ASR r2",
3510                             "al_r3_r13_r9_ASR_r2"},
3511                            {{ne, r5, r2, r3, ROR, r6},
3512                             false,
3513                             al,
3514                             "ne r5 r2 r3 ROR r6",
3515                             "ne_r5_r2_r3_ROR_r6"},
3516                            {{cc, r11, r6, r13, ROR, r4},
3517                             false,
3518                             al,
3519                             "cc r11 r6 r13 ROR r4",
3520                             "cc_r11_r6_r13_ROR_r4"},
3521                            {{le, r11, r7, r9, LSR, r11},
3522                             false,
3523                             al,
3524                             "le r11 r7 r9 LSR r11",
3525                             "le_r11_r7_r9_LSR_r11"},
3526                            {{vs, r3, r13, r6, ASR, r7},
3527                             false,
3528                             al,
3529                             "vs r3 r13 r6 ASR r7",
3530                             "vs_r3_r13_r6_ASR_r7"},
3531                            {{mi, r3, r1, r14, LSL, r0},
3532                             false,
3533                             al,
3534                             "mi r3 r1 r14 LSL r0",
3535                             "mi_r3_r1_r14_LSL_r0"},
3536                            {{vc, r4, r6, r8, LSR, r7},
3537                             false,
3538                             al,
3539                             "vc r4 r6 r8 LSR r7",
3540                             "vc_r4_r6_r8_LSR_r7"},
3541                            {{gt, r5, r2, r0, LSL, r6},
3542                             false,
3543                             al,
3544                             "gt r5 r2 r0 LSL r6",
3545                             "gt_r5_r2_r0_LSL_r6"},
3546                            {{cc, r13, r13, r5, LSR, r10},
3547                             false,
3548                             al,
3549                             "cc r13 r13 r5 LSR r10",
3550                             "cc_r13_r13_r5_LSR_r10"},
3551                            {{eq, r7, r5, r6, ROR, r12},
3552                             false,
3553                             al,
3554                             "eq r7 r5 r6 ROR r12",
3555                             "eq_r7_r5_r6_ROR_r12"},
3556                            {{ls, r1, r5, r14, ROR, r0},
3557                             false,
3558                             al,
3559                             "ls r1 r5 r14 ROR r0",
3560                             "ls_r1_r5_r14_ROR_r0"},
3561                            {{mi, r11, r14, r6, LSL, r5},
3562                             false,
3563                             al,
3564                             "mi r11 r14 r6 LSL r5",
3565                             "mi_r11_r14_r6_LSL_r5"},
3566                            {{ne, r11, r8, r12, ASR, r0},
3567                             false,
3568                             al,
3569                             "ne r11 r8 r12 ASR r0",
3570                             "ne_r11_r8_r12_ASR_r0"},
3571                            {{vs, r6, r7, r13, LSL, r9},
3572                             false,
3573                             al,
3574                             "vs r6 r7 r13 LSL r9",
3575                             "vs_r6_r7_r13_LSL_r9"},
3576                            {{gt, r4, r9, r2, LSR, r9},
3577                             false,
3578                             al,
3579                             "gt r4 r9 r2 LSR r9",
3580                             "gt_r4_r9_r2_LSR_r9"},
3581                            {{ls, r2, r14, r6, ASR, r12},
3582                             false,
3583                             al,
3584                             "ls r2 r14 r6 ASR r12",
3585                             "ls_r2_r14_r6_ASR_r12"},
3586                            {{cc, r8, r10, r12, LSL, r8},
3587                             false,
3588                             al,
3589                             "cc r8 r10 r12 LSL r8",
3590                             "cc_r8_r10_r12_LSL_r8"},
3591                            {{ne, r8, r7, r0, LSL, r9},
3592                             false,
3593                             al,
3594                             "ne r8 r7 r0 LSL r9",
3595                             "ne_r8_r7_r0_LSL_r9"},
3596                            {{vs, r5, r14, r3, ASR, r10},
3597                             false,
3598                             al,
3599                             "vs r5 r14 r3 ASR r10",
3600                             "vs_r5_r14_r3_ASR_r10"},
3601                            {{al, r12, r6, r13, LSR, r14},
3602                             false,
3603                             al,
3604                             "al r12 r6 r13 LSR r14",
3605                             "al_r12_r6_r13_LSR_r14"},
3606                            {{ge, r14, r11, r11, ROR, r1},
3607                             false,
3608                             al,
3609                             "ge r14 r11 r11 ROR r1",
3610                             "ge_r14_r11_r11_ROR_r1"},
3611                            {{le, r9, r6, r0, LSR, r4},
3612                             false,
3613                             al,
3614                             "le r9 r6 r0 LSR r4",
3615                             "le_r9_r6_r0_LSR_r4"},
3616                            {{le, r0, r8, r14, ASR, r10},
3617                             false,
3618                             al,
3619                             "le r0 r8 r14 ASR r10",
3620                             "le_r0_r8_r14_ASR_r10"},
3621                            {{hi, r4, r13, r7, LSL, r6},
3622                             false,
3623                             al,
3624                             "hi r4 r13 r7 LSL r6",
3625                             "hi_r4_r13_r7_LSL_r6"},
3626                            {{vc, r13, r0, r14, ROR, r4},
3627                             false,
3628                             al,
3629                             "vc r13 r0 r14 ROR r4",
3630                             "vc_r13_r0_r14_ROR_r4"},
3631                            {{cc, r1, r6, r12, ASR, r10},
3632                             false,
3633                             al,
3634                             "cc r1 r6 r12 ASR r10",
3635                             "cc_r1_r6_r12_ASR_r10"},
3636                            {{le, r13, r0, r4, LSL, r9},
3637                             false,
3638                             al,
3639                             "le r13 r0 r4 LSL r9",
3640                             "le_r13_r0_r4_LSL_r9"},
3641                            {{vc, r5, r4, r3, LSR, r0},
3642                             false,
3643                             al,
3644                             "vc r5 r4 r3 LSR r0",
3645                             "vc_r5_r4_r3_LSR_r0"},
3646                            {{ne, r9, r14, r0, LSR, r11},
3647                             false,
3648                             al,
3649                             "ne r9 r14 r0 LSR r11",
3650                             "ne_r9_r14_r0_LSR_r11"},
3651                            {{hi, r7, r4, r9, ASR, r5},
3652                             false,
3653                             al,
3654                             "hi r7 r4 r9 ASR r5",
3655                             "hi_r7_r4_r9_ASR_r5"},
3656                            {{cc, r0, r8, r7, LSL, r5},
3657                             false,
3658                             al,
3659                             "cc r0 r8 r7 LSL r5",
3660                             "cc_r0_r8_r7_LSL_r5"},
3661                            {{vs, r3, r5, r1, ROR, r12},
3662                             false,
3663                             al,
3664                             "vs r3 r5 r1 ROR r12",
3665                             "vs_r3_r5_r1_ROR_r12"},
3666                            {{cc, r0, r4, r9, LSR, r5},
3667                             false,
3668                             al,
3669                             "cc r0 r4 r9 LSR r5",
3670                             "cc_r0_r4_r9_LSR_r5"},
3671                            {{cc, r5, r12, r1, LSL, r14},
3672                             false,
3673                             al,
3674                             "cc r5 r12 r1 LSL r14",
3675                             "cc_r5_r12_r1_LSL_r14"},
3676                            {{cs, r3, r6, r1, LSL, r14},
3677                             false,
3678                             al,
3679                             "cs r3 r6 r1 LSL r14",
3680                             "cs_r3_r6_r1_LSL_r14"},
3681                            {{gt, r2, r3, r0, ASR, r0},
3682                             false,
3683                             al,
3684                             "gt r2 r3 r0 ASR r0",
3685                             "gt_r2_r3_r0_ASR_r0"},
3686                            {{cs, r4, r9, r6, LSL, r11},
3687                             false,
3688                             al,
3689                             "cs r4 r9 r6 LSL r11",
3690                             "cs_r4_r9_r6_LSL_r11"},
3691                            {{ne, r8, r7, r3, ROR, r10},
3692                             false,
3693                             al,
3694                             "ne r8 r7 r3 ROR r10",
3695                             "ne_r8_r7_r3_ROR_r10"},
3696                            {{lt, r8, r4, r13, ROR, r5},
3697                             false,
3698                             al,
3699                             "lt r8 r4 r13 ROR r5",
3700                             "lt_r8_r4_r13_ROR_r5"},
3701                            {{gt, r5, r6, r6, ROR, r7},
3702                             false,
3703                             al,
3704                             "gt r5 r6 r6 ROR r7",
3705                             "gt_r5_r6_r6_ROR_r7"},
3706                            {{al, r13, r2, r4, ASR, r1},
3707                             false,
3708                             al,
3709                             "al r13 r2 r4 ASR r1",
3710                             "al_r13_r2_r4_ASR_r1"},
3711                            {{hi, r0, r6, r11, ASR, r2},
3712                             false,
3713                             al,
3714                             "hi r0 r6 r11 ASR r2",
3715                             "hi_r0_r6_r11_ASR_r2"},
3716                            {{mi, r10, r13, r13, LSR, r6},
3717                             false,
3718                             al,
3719                             "mi r10 r13 r13 LSR r6",
3720                             "mi_r10_r13_r13_LSR_r6"},
3721                            {{hi, r12, r1, r7, LSL, r7},
3722                             false,
3723                             al,
3724                             "hi r12 r1 r7 LSL r7",
3725                             "hi_r12_r1_r7_LSL_r7"},
3726                            {{ge, r10, r13, r12, LSL, r6},
3727                             false,
3728                             al,
3729                             "ge r10 r13 r12 LSL r6",
3730                             "ge_r10_r13_r12_LSL_r6"},
3731                            {{ls, r12, r4, r10, LSL, r9},
3732                             false,
3733                             al,
3734                             "ls r12 r4 r10 LSL r9",
3735                             "ls_r12_r4_r10_LSL_r9"},
3736                            {{hi, r7, r6, r7, ASR, r10},
3737                             false,
3738                             al,
3739                             "hi r7 r6 r7 ASR r10",
3740                             "hi_r7_r6_r7_ASR_r10"},
3741                            {{hi, r6, r11, r14, LSL, r9},
3742                             false,
3743                             al,
3744                             "hi r6 r11 r14 LSL r9",
3745                             "hi_r6_r11_r14_LSL_r9"},
3746                            {{cs, r5, r2, r8, ASR, r5},
3747                             false,
3748                             al,
3749                             "cs r5 r2 r8 ASR r5",
3750                             "cs_r5_r2_r8_ASR_r5"},
3751                            {{hi, r9, r14, r10, LSR, r4},
3752                             false,
3753                             al,
3754                             "hi r9 r14 r10 LSR r4",
3755                             "hi_r9_r14_r10_LSR_r4"},
3756                            {{ne, r4, r11, r5, ROR, r4},
3757                             false,
3758                             al,
3759                             "ne r4 r11 r5 ROR r4",
3760                             "ne_r4_r11_r5_ROR_r4"},
3761                            {{mi, r13, r12, r5, ROR, r4},
3762                             false,
3763                             al,
3764                             "mi r13 r12 r5 ROR r4",
3765                             "mi_r13_r12_r5_ROR_r4"},
3766                            {{gt, r5, r9, r10, LSR, r12},
3767                             false,
3768                             al,
3769                             "gt r5 r9 r10 LSR r12",
3770                             "gt_r5_r9_r10_LSR_r12"},
3771                            {{hi, r5, r7, r13, LSR, r1},
3772                             false,
3773                             al,
3774                             "hi r5 r7 r13 LSR r1",
3775                             "hi_r5_r7_r13_LSR_r1"},
3776                            {{cs, r8, r11, r5, LSR, r10},
3777                             false,
3778                             al,
3779                             "cs r8 r11 r5 LSR r10",
3780                             "cs_r8_r11_r5_LSR_r10"},
3781                            {{hi, r12, r0, r1, LSL, r7},
3782                             false,
3783                             al,
3784                             "hi r12 r0 r1 LSL r7",
3785                             "hi_r12_r0_r1_LSL_r7"},
3786                            {{al, r2, r3, r3, LSR, r12},
3787                             false,
3788                             al,
3789                             "al r2 r3 r3 LSR r12",
3790                             "al_r2_r3_r3_LSR_r12"},
3791                            {{vs, r12, r0, r0, LSL, r13},
3792                             false,
3793                             al,
3794                             "vs r12 r0 r0 LSL r13",
3795                             "vs_r12_r0_r0_LSL_r13"},
3796                            {{hi, r14, r9, r8, ROR, r2},
3797                             false,
3798                             al,
3799                             "hi r14 r9 r8 ROR r2",
3800                             "hi_r14_r9_r8_ROR_r2"},
3801                            {{ls, r4, r8, r5, LSL, r11},
3802                             false,
3803                             al,
3804                             "ls r4 r8 r5 LSL r11",
3805                             "ls_r4_r8_r5_LSL_r11"},
3806                            {{mi, r1, r8, r2, LSR, r5},
3807                             false,
3808                             al,
3809                             "mi r1 r8 r2 LSR r5",
3810                             "mi_r1_r8_r2_LSR_r5"},
3811                            {{mi, r4, r13, r7, LSR, r13},
3812                             false,
3813                             al,
3814                             "mi r4 r13 r7 LSR r13",
3815                             "mi_r4_r13_r7_LSR_r13"},
3816                            {{eq, r11, r1, r6, ROR, r10},
3817                             false,
3818                             al,
3819                             "eq r11 r1 r6 ROR r10",
3820                             "eq_r11_r1_r6_ROR_r10"},
3821                            {{le, r1, r4, r5, ROR, r6},
3822                             false,
3823                             al,
3824                             "le r1 r4 r5 ROR r6",
3825                             "le_r1_r4_r5_ROR_r6"},
3826                            {{lt, r0, r3, r7, LSL, r3},
3827                             false,
3828                             al,
3829                             "lt r0 r3 r7 LSL r3",
3830                             "lt_r0_r3_r7_LSL_r3"},
3831                            {{lt, r4, r13, r3, LSL, r0},
3832                             false,
3833                             al,
3834                             "lt r4 r13 r3 LSL r0",
3835                             "lt_r4_r13_r3_LSL_r0"},
3836                            {{lt, r12, r11, r6, ASR, r11},
3837                             false,
3838                             al,
3839                             "lt r12 r11 r6 ASR r11",
3840                             "lt_r12_r11_r6_ASR_r11"},
3841                            {{ge, r2, r1, r13, LSL, r14},
3842                             false,
3843                             al,
3844                             "ge r2 r1 r13 LSL r14",
3845                             "ge_r2_r1_r13_LSL_r14"},
3846                            {{ge, r6, r4, r7, ROR, r9},
3847                             false,
3848                             al,
3849                             "ge r6 r4 r7 ROR r9",
3850                             "ge_r6_r4_r7_ROR_r9"},
3851                            {{mi, r7, r5, r1, LSL, r3},
3852                             false,
3853                             al,
3854                             "mi r7 r5 r1 LSL r3",
3855                             "mi_r7_r5_r1_LSL_r3"},
3856                            {{le, r0, r2, r8, ASR, r13},
3857                             false,
3858                             al,
3859                             "le r0 r2 r8 ASR r13",
3860                             "le_r0_r2_r8_ASR_r13"},
3861                            {{vc, r0, r5, r12, LSR, r5},
3862                             false,
3863                             al,
3864                             "vc r0 r5 r12 LSR r5",
3865                             "vc_r0_r5_r12_LSR_r5"},
3866                            {{cs, r10, r10, r14, LSL, r11},
3867                             false,
3868                             al,
3869                             "cs r10 r10 r14 LSL r11",
3870                             "cs_r10_r10_r14_LSL_r11"},
3871                            {{hi, r12, r1, r6, ASR, r14},
3872                             false,
3873                             al,
3874                             "hi r12 r1 r6 ASR r14",
3875                             "hi_r12_r1_r6_ASR_r14"},
3876                            {{vc, r6, r8, r9, LSR, r5},
3877                             false,
3878                             al,
3879                             "vc r6 r8 r9 LSR r5",
3880                             "vc_r6_r8_r9_LSR_r5"},
3881                            {{mi, r7, r2, r4, ASR, r4},
3882                             false,
3883                             al,
3884                             "mi r7 r2 r4 ASR r4",
3885                             "mi_r7_r2_r4_ASR_r4"},
3886                            {{pl, r7, r6, r4, ROR, r12},
3887                             false,
3888                             al,
3889                             "pl r7 r6 r4 ROR r12",
3890                             "pl_r7_r6_r4_ROR_r12"},
3891                            {{ge, r0, r7, r8, LSR, r11},
3892                             false,
3893                             al,
3894                             "ge r0 r7 r8 LSR r11",
3895                             "ge_r0_r7_r8_LSR_r11"},
3896                            {{cc, r8, r14, r14, LSR, r14},
3897                             false,
3898                             al,
3899                             "cc r8 r14 r14 LSR r14",
3900                             "cc_r8_r14_r14_LSR_r14"},
3901                            {{ne, r10, r7, r10, LSL, r3},
3902                             false,
3903                             al,
3904                             "ne r10 r7 r10 LSL r3",
3905                             "ne_r10_r7_r10_LSL_r3"},
3906                            {{hi, r2, r11, r11, LSL, r10},
3907                             false,
3908                             al,
3909                             "hi r2 r11 r11 LSL r10",
3910                             "hi_r2_r11_r11_LSL_r10"},
3911                            {{eq, r7, r7, r3, LSR, r12},
3912                             false,
3913                             al,
3914                             "eq r7 r7 r3 LSR r12",
3915                             "eq_r7_r7_r3_LSR_r12"},
3916                            {{al, r7, r1, r12, LSR, r5},
3917                             false,
3918                             al,
3919                             "al r7 r1 r12 LSR r5",
3920                             "al_r7_r1_r12_LSR_r5"},
3921                            {{ge, r10, r3, r7, LSL, r0},
3922                             false,
3923                             al,
3924                             "ge r10 r3 r7 LSL r0",
3925                             "ge_r10_r3_r7_LSL_r0"},
3926                            {{ge, r6, r1, r6, LSL, r5},
3927                             false,
3928                             al,
3929                             "ge r6 r1 r6 LSL r5",
3930                             "ge_r6_r1_r6_LSL_r5"},
3931                            {{al, r3, r1, r0, LSL, r13},
3932                             false,
3933                             al,
3934                             "al r3 r1 r0 LSL r13",
3935                             "al_r3_r1_r0_LSL_r13"},
3936                            {{eq, r4, r8, r0, ASR, r0},
3937                             false,
3938                             al,
3939                             "eq r4 r8 r0 ASR r0",
3940                             "eq_r4_r8_r0_ASR_r0"},
3941                            {{cs, r8, r6, r6, LSL, r7},
3942                             false,
3943                             al,
3944                             "cs r8 r6 r6 LSL r7",
3945                             "cs_r8_r6_r6_LSL_r7"},
3946                            {{vs, r5, r9, r2, ASR, r6},
3947                             false,
3948                             al,
3949                             "vs r5 r9 r2 ASR r6",
3950                             "vs_r5_r9_r2_ASR_r6"},
3951                            {{lt, r1, r5, r2, ASR, r0},
3952                             false,
3953                             al,
3954                             "lt r1 r5 r2 ASR r0",
3955                             "lt_r1_r5_r2_ASR_r0"},
3956                            {{eq, r8, r14, r1, ASR, r2},
3957                             false,
3958                             al,
3959                             "eq r8 r14 r1 ASR r2",
3960                             "eq_r8_r14_r1_ASR_r2"},
3961                            {{mi, r6, r13, r12, LSL, r2},
3962                             false,
3963                             al,
3964                             "mi r6 r13 r12 LSL r2",
3965                             "mi_r6_r13_r12_LSL_r2"},
3966                            {{mi, r13, r4, r0, ROR, r1},
3967                             false,
3968                             al,
3969                             "mi r13 r4 r0 ROR r1",
3970                             "mi_r13_r4_r0_ROR_r1"},
3971                            {{cs, r7, r2, r1, ASR, r10},
3972                             false,
3973                             al,
3974                             "cs r7 r2 r1 ASR r10",
3975                             "cs_r7_r2_r1_ASR_r10"},
3976                            {{ge, r9, r4, r3, ASR, r5},
3977                             false,
3978                             al,
3979                             "ge r9 r4 r3 ASR r5",
3980                             "ge_r9_r4_r3_ASR_r5"},
3981                            {{gt, r7, r1, r12, LSL, r7},
3982                             false,
3983                             al,
3984                             "gt r7 r1 r12 LSL r7",
3985                             "gt_r7_r1_r12_LSL_r7"},
3986                            {{hi, r4, r5, r4, LSL, r11},
3987                             false,
3988                             al,
3989                             "hi r4 r5 r4 LSL r11",
3990                             "hi_r4_r5_r4_LSL_r11"},
3991                            {{cc, r13, r14, r9, LSL, r14},
3992                             false,
3993                             al,
3994                             "cc r13 r14 r9 LSL r14",
3995                             "cc_r13_r14_r9_LSL_r14"},
3996                            {{cs, r12, r8, r14, ROR, r12},
3997                             false,
3998                             al,
3999                             "cs r12 r8 r14 ROR r12",
4000                             "cs_r12_r8_r14_ROR_r12"},
4001                            {{vc, r12, r11, r10, ROR, r4},
4002                             false,
4003                             al,
4004                             "vc r12 r11 r10 ROR r4",
4005                             "vc_r12_r11_r10_ROR_r4"},
4006                            {{ge, r14, r13, r4, ROR, r11},
4007                             false,
4008                             al,
4009                             "ge r14 r13 r4 ROR r11",
4010                             "ge_r14_r13_r4_ROR_r11"},
4011                            {{le, r3, r5, r2, ROR, r6},
4012                             false,
4013                             al,
4014                             "le r3 r5 r2 ROR r6",
4015                             "le_r3_r5_r2_ROR_r6"},
4016                            {{eq, r3, r4, r13, ASR, r0},
4017                             false,
4018                             al,
4019                             "eq r3 r4 r13 ASR r0",
4020                             "eq_r3_r4_r13_ASR_r0"},
4021                            {{vc, r7, r6, r3, ASR, r11},
4022                             false,
4023                             al,
4024                             "vc r7 r6 r3 ASR r11",
4025                             "vc_r7_r6_r3_ASR_r11"},
4026                            {{pl, r6, r9, r11, LSL, r8},
4027                             false,
4028                             al,
4029                             "pl r6 r9 r11 LSL r8",
4030                             "pl_r6_r9_r11_LSL_r8"},
4031                            {{vc, r11, r14, r13, ASR, r4},
4032                             false,
4033                             al,
4034                             "vc r11 r14 r13 ASR r4",
4035                             "vc_r11_r14_r13_ASR_r4"},
4036                            {{cs, r4, r11, r3, LSR, r7},
4037                             false,
4038                             al,
4039                             "cs r4 r11 r3 LSR r7",
4040                             "cs_r4_r11_r3_LSR_r7"},
4041                            {{ge, r5, r7, r3, ASR, r8},
4042                             false,
4043                             al,
4044                             "ge r5 r7 r3 ASR r8",
4045                             "ge_r5_r7_r3_ASR_r8"},
4046                            {{vc, r5, r7, r10, ROR, r9},
4047                             false,
4048                             al,
4049                             "vc r5 r7 r10 ROR r9",
4050                             "vc_r5_r7_r10_ROR_r9"},
4051                            {{gt, r7, r12, r2, LSR, r5},
4052                             false,
4053                             al,
4054                             "gt r7 r12 r2 LSR r5",
4055                             "gt_r7_r12_r2_LSR_r5"},
4056                            {{mi, r14, r2, r6, LSL, r8},
4057                             false,
4058                             al,
4059                             "mi r14 r2 r6 LSL r8",
4060                             "mi_r14_r2_r6_LSL_r8"},
4061                            {{hi, r0, r2, r11, ASR, r1},
4062                             false,
4063                             al,
4064                             "hi r0 r2 r11 ASR r1",
4065                             "hi_r0_r2_r11_ASR_r1"},
4066                            {{al, r13, r7, r4, ASR, r5},
4067                             false,
4068                             al,
4069                             "al r13 r7 r4 ASR r5",
4070                             "al_r13_r7_r4_ASR_r5"},
4071                            {{le, r3, r4, r7, LSR, r14},
4072                             false,
4073                             al,
4074                             "le r3 r4 r7 LSR r14",
4075                             "le_r3_r4_r7_LSR_r14"},
4076                            {{lt, r4, r10, r8, LSR, r5},
4077                             false,
4078                             al,
4079                             "lt r4 r10 r8 LSR r5",
4080                             "lt_r4_r10_r8_LSR_r5"},
4081                            {{vc, r1, r1, r8, ROR, r14},
4082                             false,
4083                             al,
4084                             "vc r1 r1 r8 ROR r14",
4085                             "vc_r1_r1_r8_ROR_r14"},
4086                            {{le, r3, r10, r3, ROR, r0},
4087                             false,
4088                             al,
4089                             "le r3 r10 r3 ROR r0",
4090                             "le_r3_r10_r3_ROR_r0"},
4091                            {{ne, r4, r11, r7, ASR, r6},
4092                             false,
4093                             al,
4094                             "ne r4 r11 r7 ASR r6",
4095                             "ne_r4_r11_r7_ASR_r6"},
4096                            {{lt, r9, r10, r6, LSR, r1},
4097                             false,
4098                             al,
4099                             "lt r9 r10 r6 LSR r1",
4100                             "lt_r9_r10_r6_LSR_r1"},
4101                            {{ne, r9, r12, r8, LSR, r6},
4102                             false,
4103                             al,
4104                             "ne r9 r12 r8 LSR r6",
4105                             "ne_r9_r12_r8_LSR_r6"},
4106                            {{ne, r7, r6, r8, ASR, r12},
4107                             false,
4108                             al,
4109                             "ne r7 r6 r8 ASR r12",
4110                             "ne_r7_r6_r8_ASR_r12"},
4111                            {{ge, r0, r9, r1, ASR, r11},
4112                             false,
4113                             al,
4114                             "ge r0 r9 r1 ASR r11",
4115                             "ge_r0_r9_r1_ASR_r11"},
4116                            {{vc, r10, r14, r8, ASR, r11},
4117                             false,
4118                             al,
4119                             "vc r10 r14 r8 ASR r11",
4120                             "vc_r10_r14_r8_ASR_r11"},
4121                            {{ge, r6, r1, r14, ROR, r4},
4122                             false,
4123                             al,
4124                             "ge r6 r1 r14 ROR r4",
4125                             "ge_r6_r1_r14_ROR_r4"},
4126                            {{cs, r12, r2, r4, ROR, r13},
4127                             false,
4128                             al,
4129                             "cs r12 r2 r4 ROR r13",
4130                             "cs_r12_r2_r4_ROR_r13"},
4131                            {{hi, r9, r8, r5, ASR, r3},
4132                             false,
4133                             al,
4134                             "hi r9 r8 r5 ASR r3",
4135                             "hi_r9_r8_r5_ASR_r3"},
4136                            {{ge, r0, r3, r9, ASR, r7},
4137                             false,
4138                             al,
4139                             "ge r0 r3 r9 ASR r7",
4140                             "ge_r0_r3_r9_ASR_r7"},
4141                            {{le, r14, r6, r9, ASR, r5},
4142                             false,
4143                             al,
4144                             "le r14 r6 r9 ASR r5",
4145                             "le_r14_r6_r9_ASR_r5"},
4146                            {{hi, r2, r3, r6, LSR, r3},
4147                             false,
4148                             al,
4149                             "hi r2 r3 r6 LSR r3",
4150                             "hi_r2_r3_r6_LSR_r3"},
4151                            {{le, r4, r8, r2, ASR, r3},
4152                             false,
4153                             al,
4154                             "le r4 r8 r2 ASR r3",
4155                             "le_r4_r8_r2_ASR_r3"},
4156                            {{vs, r5, r9, r2, LSR, r5},
4157                             false,
4158                             al,
4159                             "vs r5 r9 r2 LSR r5",
4160                             "vs_r5_r9_r2_LSR_r5"},
4161                            {{vs, r7, r11, r6, ASR, r3},
4162                             false,
4163                             al,
4164                             "vs r7 r11 r6 ASR r3",
4165                             "vs_r7_r11_r6_ASR_r3"},
4166                            {{gt, r13, r11, r14, ROR, r1},
4167                             false,
4168                             al,
4169                             "gt r13 r11 r14 ROR r1",
4170                             "gt_r13_r11_r14_ROR_r1"},
4171                            {{al, r7, r3, r7, LSR, r12},
4172                             false,
4173                             al,
4174                             "al r7 r3 r7 LSR r12",
4175                             "al_r7_r3_r7_LSR_r12"},
4176                            {{cs, r10, r9, r4, LSR, r5},
4177                             false,
4178                             al,
4179                             "cs r10 r9 r4 LSR r5",
4180                             "cs_r10_r9_r4_LSR_r5"},
4181                            {{ls, r12, r10, r8, LSR, r8},
4182                             false,
4183                             al,
4184                             "ls r12 r10 r8 LSR r8",
4185                             "ls_r12_r10_r8_LSR_r8"},
4186                            {{lt, r14, r14, r13, LSR, r10},
4187                             false,
4188                             al,
4189                             "lt r14 r14 r13 LSR r10",
4190                             "lt_r14_r14_r13_LSR_r10"},
4191                            {{vc, r3, r4, r7, ROR, r2},
4192                             false,
4193                             al,
4194                             "vc r3 r4 r7 ROR r2",
4195                             "vc_r3_r4_r7_ROR_r2"},
4196                            {{cc, r14, r11, r0, ASR, r9},
4197                             false,
4198                             al,
4199                             "cc r14 r11 r0 ASR r9",
4200                             "cc_r14_r11_r0_ASR_r9"},
4201                            {{eq, r3, r11, r14, ASR, r13},
4202                             false,
4203                             al,
4204                             "eq r3 r11 r14 ASR r13",
4205                             "eq_r3_r11_r14_ASR_r13"},
4206                            {{mi, r13, r1, r11, ROR, r7},
4207                             false,
4208                             al,
4209                             "mi r13 r1 r11 ROR r7",
4210                             "mi_r13_r1_r11_ROR_r7"},
4211                            {{al, r9, r2, r12, ASR, r12},
4212                             false,
4213                             al,
4214                             "al r9 r2 r12 ASR r12",
4215                             "al_r9_r2_r12_ASR_r12"},
4216                            {{ls, r5, r10, r11, LSL, r10},
4217                             false,
4218                             al,
4219                             "ls r5 r10 r11 LSL r10",
4220                             "ls_r5_r10_r11_LSL_r10"},
4221                            {{gt, r10, r1, r0, LSL, r8},
4222                             false,
4223                             al,
4224                             "gt r10 r1 r0 LSL r8",
4225                             "gt_r10_r1_r0_LSL_r8"},
4226                            {{hi, r13, r1, r4, LSL, r9},
4227                             false,
4228                             al,
4229                             "hi r13 r1 r4 LSL r9",
4230                             "hi_r13_r1_r4_LSL_r9"},
4231                            {{ls, r7, r9, r0, ASR, r4},
4232                             false,
4233                             al,
4234                             "ls r7 r9 r0 ASR r4",
4235                             "ls_r7_r9_r0_ASR_r4"},
4236                            {{ls, r12, r7, r9, LSR, r1},
4237                             false,
4238                             al,
4239                             "ls r12 r7 r9 LSR r1",
4240                             "ls_r12_r7_r9_LSR_r1"},
4241                            {{mi, r0, r14, r7, LSL, r8},
4242                             false,
4243                             al,
4244                             "mi r0 r14 r7 LSL r8",
4245                             "mi_r0_r14_r7_LSL_r8"},
4246                            {{ge, r5, r0, r13, ROR, r12},
4247                             false,
4248                             al,
4249                             "ge r5 r0 r13 ROR r12",
4250                             "ge_r5_r0_r13_ROR_r12"},
4251                            {{lt, r5, r11, r1, LSL, r9},
4252                             false,
4253                             al,
4254                             "lt r5 r11 r1 LSL r9",
4255                             "lt_r5_r11_r1_LSL_r9"},
4256                            {{eq, r10, r13, r2, ROR, r11},
4257                             false,
4258                             al,
4259                             "eq r10 r13 r2 ROR r11",
4260                             "eq_r10_r13_r2_ROR_r11"},
4261                            {{vc, r2, r11, r0, ASR, r2},
4262                             false,
4263                             al,
4264                             "vc r2 r11 r0 ASR r2",
4265                             "vc_r2_r11_r0_ASR_r2"},
4266                            {{eq, r7, r7, r3, ASR, r8},
4267                             false,
4268                             al,
4269                             "eq r7 r7 r3 ASR r8",
4270                             "eq_r7_r7_r3_ASR_r8"},
4271                            {{cs, r9, r10, r0, LSL, r3},
4272                             false,
4273                             al,
4274                             "cs r9 r10 r0 LSL r3",
4275                             "cs_r9_r10_r0_LSL_r3"},
4276                            {{gt, r12, r14, r9, ASR, r0},
4277                             false,
4278                             al,
4279                             "gt r12 r14 r9 ASR r0",
4280                             "gt_r12_r14_r9_ASR_r0"},
4281                            {{vc, r6, r5, r0, ROR, r7},
4282                             false,
4283                             al,
4284                             "vc r6 r5 r0 ROR r7",
4285                             "vc_r6_r5_r0_ROR_r7"},
4286                            {{cs, r4, r14, r0, LSL, r12},
4287                             false,
4288                             al,
4289                             "cs r4 r14 r0 LSL r12",
4290                             "cs_r4_r14_r0_LSL_r12"},
4291                            {{ge, r12, r3, r0, ASR, r1},
4292                             false,
4293                             al,
4294                             "ge r12 r3 r0 ASR r1",
4295                             "ge_r12_r3_r0_ASR_r1"},
4296                            {{al, r12, r4, r12, LSR, r12},
4297                             false,
4298                             al,
4299                             "al r12 r4 r12 LSR r12",
4300                             "al_r12_r4_r12_LSR_r12"},
4301                            {{vs, r7, r12, r4, LSR, r7},
4302                             false,
4303                             al,
4304                             "vs r7 r12 r4 LSR r7",
4305                             "vs_r7_r12_r4_LSR_r7"},
4306                            {{hi, r14, r6, r10, LSR, r3},
4307                             false,
4308                             al,
4309                             "hi r14 r6 r10 LSR r3",
4310                             "hi_r14_r6_r10_LSR_r3"},
4311                            {{gt, r6, r9, r13, ROR, r0},
4312                             false,
4313                             al,
4314                             "gt r6 r9 r13 ROR r0",
4315                             "gt_r6_r9_r13_ROR_r0"},
4316                            {{le, r11, r11, r14, LSR, r13},
4317                             false,
4318                             al,
4319                             "le r11 r11 r14 LSR r13",
4320                             "le_r11_r11_r14_LSR_r13"},
4321                            {{hi, r10, r7, r5, ROR, r0},
4322                             false,
4323                             al,
4324                             "hi r10 r7 r5 ROR r0",
4325                             "hi_r10_r7_r5_ROR_r0"},
4326                            {{le, r9, r1, r6, ASR, r11},
4327                             false,
4328                             al,
4329                             "le r9 r1 r6 ASR r11",
4330                             "le_r9_r1_r6_ASR_r11"},
4331                            {{gt, r8, r2, r9, LSL, r14},
4332                             false,
4333                             al,
4334                             "gt r8 r2 r9 LSL r14",
4335                             "gt_r8_r2_r9_LSL_r14"},
4336                            {{le, r8, r3, r13, ASR, r0},
4337                             false,
4338                             al,
4339                             "le r8 r3 r13 ASR r0",
4340                             "le_r8_r3_r13_ASR_r0"},
4341                            {{ne, r3, r6, r12, LSR, r11},
4342                             false,
4343                             al,
4344                             "ne r3 r6 r12 LSR r11",
4345                             "ne_r3_r6_r12_LSR_r11"},
4346                            {{vs, r9, r13, r5, ASR, r1},
4347                             false,
4348                             al,
4349                             "vs r9 r13 r5 ASR r1",
4350                             "vs_r9_r13_r5_ASR_r1"},
4351                            {{al, r1, r12, r2, LSR, r4},
4352                             false,
4353                             al,
4354                             "al r1 r12 r2 LSR r4",
4355                             "al_r1_r12_r2_LSR_r4"},
4356                            {{eq, r9, r12, r5, ROR, r12},
4357                             false,
4358                             al,
4359                             "eq r9 r12 r5 ROR r12",
4360                             "eq_r9_r12_r5_ROR_r12"},
4361                            {{pl, r4, r4, r14, LSR, r6},
4362                             false,
4363                             al,
4364                             "pl r4 r4 r14 LSR r6",
4365                             "pl_r4_r4_r14_LSR_r6"},
4366                            {{lt, r12, r12, r2, LSL, r11},
4367                             false,
4368                             al,
4369                             "lt r12 r12 r2 LSL r11",
4370                             "lt_r12_r12_r2_LSL_r11"},
4371                            {{al, r5, r0, r2, ROR, r1},
4372                             false,
4373                             al,
4374                             "al r5 r0 r2 ROR r1",
4375                             "al_r5_r0_r2_ROR_r1"},
4376                            {{gt, r6, r4, r8, LSL, r1},
4377                             false,
4378                             al,
4379                             "gt r6 r4 r8 LSL r1",
4380                             "gt_r6_r4_r8_LSL_r1"},
4381                            {{ne, r1, r1, r10, LSR, r3},
4382                             false,
4383                             al,
4384                             "ne r1 r1 r10 LSR r3",
4385                             "ne_r1_r1_r10_LSR_r3"},
4386                            {{hi, r14, r11, r5, LSR, r4},
4387                             false,
4388                             al,
4389                             "hi r14 r11 r5 LSR r4",
4390                             "hi_r14_r11_r5_LSR_r4"},
4391                            {{al, r5, r13, r12, LSR, r14},
4392                             false,
4393                             al,
4394                             "al r5 r13 r12 LSR r14",
4395                             "al_r5_r13_r12_LSR_r14"},
4396                            {{cc, r6, r6, r12, ROR, r7},
4397                             false,
4398                             al,
4399                             "cc r6 r6 r12 ROR r7",
4400                             "cc_r6_r6_r12_ROR_r7"},
4401                            {{ls, r4, r11, r7, ROR, r2},
4402                             false,
4403                             al,
4404                             "ls r4 r11 r7 ROR r2",
4405                             "ls_r4_r11_r7_ROR_r2"},
4406                            {{eq, r7, r12, r0, LSL, r12},
4407                             false,
4408                             al,
4409                             "eq r7 r12 r0 LSL r12",
4410                             "eq_r7_r12_r0_LSL_r12"},
4411                            {{cs, r11, r9, r2, ASR, r13},
4412                             false,
4413                             al,
4414                             "cs r11 r9 r2 ASR r13",
4415                             "cs_r11_r9_r2_ASR_r13"},
4416                            {{ls, r5, r13, r13, LSL, r0},
4417                             false,
4418                             al,
4419                             "ls r5 r13 r13 LSL r0",
4420                             "ls_r5_r13_r13_LSL_r0"},
4421                            {{hi, r13, r13, r6, LSR, r9},
4422                             false,
4423                             al,
4424                             "hi r13 r13 r6 LSR r9",
4425                             "hi_r13_r13_r6_LSR_r9"},
4426                            {{eq, r7, r14, r10, LSR, r2},
4427                             false,
4428                             al,
4429                             "eq r7 r14 r10 LSR r2",
4430                             "eq_r7_r14_r10_LSR_r2"},
4431                            {{ne, r2, r12, r0, LSR, r12},
4432                             false,
4433                             al,
4434                             "ne r2 r12 r0 LSR r12",
4435                             "ne_r2_r12_r0_LSR_r12"},
4436                            {{pl, r11, r0, r14, ROR, r14},
4437                             false,
4438                             al,
4439                             "pl r11 r0 r14 ROR r14",
4440                             "pl_r11_r0_r14_ROR_r14"},
4441                            {{ge, r14, r11, r0, ASR, r0},
4442                             false,
4443                             al,
4444                             "ge r14 r11 r0 ASR r0",
4445                             "ge_r14_r11_r0_ASR_r0"},
4446                            {{ne, r7, r3, r11, ASR, r4},
4447                             false,
4448                             al,
4449                             "ne r7 r3 r11 ASR r4",
4450                             "ne_r7_r3_r11_ASR_r4"},
4451                            {{eq, r0, r11, r4, LSR, r1},
4452                             false,
4453                             al,
4454                             "eq r0 r11 r4 LSR r1",
4455                             "eq_r0_r11_r4_LSR_r1"},
4456                            {{cs, r5, r2, r5, ROR, r10},
4457                             false,
4458                             al,
4459                             "cs r5 r2 r5 ROR r10",
4460                             "cs_r5_r2_r5_ROR_r10"},
4461                            {{eq, r9, r10, r10, LSR, r0},
4462                             false,
4463                             al,
4464                             "eq r9 r10 r10 LSR r0",
4465                             "eq_r9_r10_r10_LSR_r0"},
4466                            {{vc, r2, r0, r11, ROR, r11},
4467                             false,
4468                             al,
4469                             "vc r2 r0 r11 ROR r11",
4470                             "vc_r2_r0_r11_ROR_r11"},
4471                            {{pl, r14, r2, r1, ROR, r8},
4472                             false,
4473                             al,
4474                             "pl r14 r2 r1 ROR r8",
4475                             "pl_r14_r2_r1_ROR_r8"},
4476                            {{hi, r13, r1, r14, LSR, r5},
4477                             false,
4478                             al,
4479                             "hi r13 r1 r14 LSR r5",
4480                             "hi_r13_r1_r14_LSR_r5"},
4481                            {{ls, r9, r2, r13, LSR, r14},
4482                             false,
4483                             al,
4484                             "ls r9 r2 r13 LSR r14",
4485                             "ls_r9_r2_r13_LSR_r14"},
4486                            {{le, r1, r12, r7, ROR, r1},
4487                             false,
4488                             al,
4489                             "le r1 r12 r7 ROR r1",
4490                             "le_r1_r12_r7_ROR_r1"},
4491                            {{mi, r10, r4, r6, LSR, r5},
4492                             false,
4493                             al,
4494                             "mi r10 r4 r6 LSR r5",
4495                             "mi_r10_r4_r6_LSR_r5"},
4496                            {{al, r11, r7, r7, LSR, r11},
4497                             false,
4498                             al,
4499                             "al r11 r7 r7 LSR r11",
4500                             "al_r11_r7_r7_LSR_r11"},
4501                            {{lt, r4, r2, r6, ROR, r1},
4502                             false,
4503                             al,
4504                             "lt r4 r2 r6 ROR r1",
4505                             "lt_r4_r2_r6_ROR_r1"},
4506                            {{vc, r12, r3, r7, LSL, r5},
4507                             false,
4508                             al,
4509                             "vc r12 r3 r7 LSL r5",
4510                             "vc_r12_r3_r7_LSL_r5"},
4511                            {{ge, r10, r7, r2, ROR, r0},
4512                             false,
4513                             al,
4514                             "ge r10 r7 r2 ROR r0",
4515                             "ge_r10_r7_r2_ROR_r0"},
4516                            {{lt, r1, r6, r0, LSR, r4},
4517                             false,
4518                             al,
4519                             "lt r1 r6 r0 LSR r4",
4520                             "lt_r1_r6_r0_LSR_r4"},
4521                            {{eq, r11, r2, r11, ROR, r3},
4522                             false,
4523                             al,
4524                             "eq r11 r2 r11 ROR r3",
4525                             "eq_r11_r2_r11_ROR_r3"},
4526                            {{ls, r1, r2, r11, LSL, r6},
4527                             false,
4528                             al,
4529                             "ls r1 r2 r11 LSL r6",
4530                             "ls_r1_r2_r11_LSL_r6"},
4531                            {{al, r4, r5, r10, LSR, r13},
4532                             false,
4533                             al,
4534                             "al r4 r5 r10 LSR r13",
4535                             "al_r4_r5_r10_LSR_r13"},
4536                            {{ls, r5, r3, r12, LSR, r10},
4537                             false,
4538                             al,
4539                             "ls r5 r3 r12 LSR r10",
4540                             "ls_r5_r3_r12_LSR_r10"},
4541                            {{hi, r5, r11, r9, LSL, r14},
4542                             false,
4543                             al,
4544                             "hi r5 r11 r9 LSL r14",
4545                             "hi_r5_r11_r9_LSL_r14"},
4546                            {{le, r0, r8, r14, LSL, r14},
4547                             false,
4548                             al,
4549                             "le r0 r8 r14 LSL r14",
4550                             "le_r0_r8_r14_LSL_r14"},
4551                            {{vs, r10, r10, r2, LSR, r8},
4552                             false,
4553                             al,
4554                             "vs r10 r10 r2 LSR r8",
4555                             "vs_r10_r10_r2_LSR_r8"},
4556                            {{lt, r1, r7, r14, LSR, r1},
4557                             false,
4558                             al,
4559                             "lt r1 r7 r14 LSR r1",
4560                             "lt_r1_r7_r14_LSR_r1"},
4561                            {{al, r1, r2, r8, LSL, r1},
4562                             false,
4563                             al,
4564                             "al r1 r2 r8 LSL r1",
4565                             "al_r1_r2_r8_LSL_r1"},
4566                            {{vc, r9, r14, r2, ASR, r7},
4567                             false,
4568                             al,
4569                             "vc r9 r14 r2 ASR r7",
4570                             "vc_r9_r14_r2_ASR_r7"},
4571                            {{eq, r8, r14, r12, LSL, r11},
4572                             false,
4573                             al,
4574                             "eq r8 r14 r12 LSL r11",
4575                             "eq_r8_r14_r12_LSL_r11"},
4576                            {{cc, r13, r2, r8, ASR, r9},
4577                             false,
4578                             al,
4579                             "cc r13 r2 r8 ASR r9",
4580                             "cc_r13_r2_r8_ASR_r9"},
4581                            {{cc, r13, r4, r1, ASR, r8},
4582                             false,
4583                             al,
4584                             "cc r13 r4 r1 ASR r8",
4585                             "cc_r13_r4_r1_ASR_r8"},
4586                            {{ne, r14, r14, r3, ASR, r0},
4587                             false,
4588                             al,
4589                             "ne r14 r14 r3 ASR r0",
4590                             "ne_r14_r14_r3_ASR_r0"},
4591                            {{mi, r12, r9, r5, ASR, r10},
4592                             false,
4593                             al,
4594                             "mi r12 r9 r5 ASR r10",
4595                             "mi_r12_r9_r5_ASR_r10"},
4596                            {{ne, r10, r12, r0, ASR, r10},
4597                             false,
4598                             al,
4599                             "ne r10 r12 r0 ASR r10",
4600                             "ne_r10_r12_r0_ASR_r10"},
4601                            {{gt, r1, r6, r10, LSL, r2},
4602                             false,
4603                             al,
4604                             "gt r1 r6 r10 LSL r2",
4605                             "gt_r1_r6_r10_LSL_r2"},
4606                            {{vs, r0, r6, r6, ASR, r5},
4607                             false,
4608                             al,
4609                             "vs r0 r6 r6 ASR r5",
4610                             "vs_r0_r6_r6_ASR_r5"},
4611                            {{mi, r6, r12, r13, LSR, r9},
4612                             false,
4613                             al,
4614                             "mi r6 r12 r13 LSR r9",
4615                             "mi_r6_r12_r13_LSR_r9"},
4616                            {{lt, r13, r11, r4, LSL, r1},
4617                             false,
4618                             al,
4619                             "lt r13 r11 r4 LSL r1",
4620                             "lt_r13_r11_r4_LSL_r1"},
4621                            {{cs, r12, r11, r4, LSL, r0},
4622                             false,
4623                             al,
4624                             "cs r12 r11 r4 LSL r0",
4625                             "cs_r12_r11_r4_LSL_r0"},
4626                            {{cs, r5, r1, r3, LSL, r3},
4627                             false,
4628                             al,
4629                             "cs r5 r1 r3 LSL r3",
4630                             "cs_r5_r1_r3_LSL_r3"},
4631                            {{ls, r0, r1, r12, LSR, r7},
4632                             false,
4633                             al,
4634                             "ls r0 r1 r12 LSR r7",
4635                             "ls_r0_r1_r12_LSR_r7"},
4636                            {{al, r14, r14, r4, LSL, r2},
4637                             false,
4638                             al,
4639                             "al r14 r14 r4 LSL r2",
4640                             "al_r14_r14_r4_LSL_r2"},
4641                            {{hi, r5, r12, r10, ASR, r1},
4642                             false,
4643                             al,
4644                             "hi r5 r12 r10 ASR r1",
4645                             "hi_r5_r12_r10_ASR_r1"},
4646                            {{pl, r11, r5, r2, LSL, r7},
4647                             false,
4648                             al,
4649                             "pl r11 r5 r2 LSL r7",
4650                             "pl_r11_r5_r2_LSL_r7"},
4651                            {{ge, r0, r4, r0, ASR, r8},
4652                             false,
4653                             al,
4654                             "ge r0 r4 r0 ASR r8",
4655                             "ge_r0_r4_r0_ASR_r8"},
4656                            {{cc, r11, r6, r12, LSR, r5},
4657                             false,
4658                             al,
4659                             "cc r11 r6 r12 LSR r5",
4660                             "cc_r11_r6_r12_LSR_r5"},
4661                            {{cs, r12, r11, r0, ASR, r14},
4662                             false,
4663                             al,
4664                             "cs r12 r11 r0 ASR r14",
4665                             "cs_r12_r11_r0_ASR_r14"},
4666                            {{hi, r6, r2, r3, LSL, r10},
4667                             false,
4668                             al,
4669                             "hi r6 r2 r3 LSL r10",
4670                             "hi_r6_r2_r3_LSL_r10"},
4671                            {{cs, r0, r9, r1, LSR, r8},
4672                             false,
4673                             al,
4674                             "cs r0 r9 r1 LSR r8",
4675                             "cs_r0_r9_r1_LSR_r8"},
4676                            {{eq, r6, r5, r1, LSR, r0},
4677                             false,
4678                             al,
4679                             "eq r6 r5 r1 LSR r0",
4680                             "eq_r6_r5_r1_LSR_r0"},
4681                            {{eq, r12, r7, r9, LSR, r1},
4682                             false,
4683                             al,
4684                             "eq r12 r7 r9 LSR r1",
4685                             "eq_r12_r7_r9_LSR_r1"},
4686                            {{pl, r4, r1, r2, LSL, r1},
4687                             false,
4688                             al,
4689                             "pl r4 r1 r2 LSL r1",
4690                             "pl_r4_r1_r2_LSL_r1"},
4691                            {{vc, r2, r0, r6, LSL, r13},
4692                             false,
4693                             al,
4694                             "vc r2 r0 r6 LSL r13",
4695                             "vc_r2_r0_r6_LSL_r13"},
4696                            {{vs, r1, r8, r2, LSR, r12},
4697                             false,
4698                             al,
4699                             "vs r1 r8 r2 LSR r12",
4700                             "vs_r1_r8_r2_LSR_r12"},
4701                            {{eq, r1, r5, r14, LSR, r4},
4702                             false,
4703                             al,
4704                             "eq r1 r5 r14 LSR r4",
4705                             "eq_r1_r5_r14_LSR_r4"},
4706                            {{cs, r5, r12, r8, LSR, r6},
4707                             false,
4708                             al,
4709                             "cs r5 r12 r8 LSR r6",
4710                             "cs_r5_r12_r8_LSR_r6"},
4711                            {{vs, r5, r9, r13, LSL, r10},
4712                             false,
4713                             al,
4714                             "vs r5 r9 r13 LSL r10",
4715                             "vs_r5_r9_r13_LSL_r10"},
4716                            {{le, r14, r14, r12, LSL, r9},
4717                             false,
4718                             al,
4719                             "le r14 r14 r12 LSL r9",
4720                             "le_r14_r14_r12_LSL_r9"},
4721                            {{cc, r13, r7, r12, LSR, r4},
4722                             false,
4723                             al,
4724                             "cc r13 r7 r12 LSR r4",
4725                             "cc_r13_r7_r12_LSR_r4"},
4726                            {{eq, r13, r2, r0, LSR, r14},
4727                             false,
4728                             al,
4729                             "eq r13 r2 r0 LSR r14",
4730                             "eq_r13_r2_r0_LSR_r14"},
4731                            {{eq, r13, r11, r0, LSL, r2},
4732                             false,
4733                             al,
4734                             "eq r13 r11 r0 LSL r2",
4735                             "eq_r13_r11_r0_LSL_r2"},
4736                            {{al, r7, r2, r13, ROR, r5},
4737                             false,
4738                             al,
4739                             "al r7 r2 r13 ROR r5",
4740                             "al_r7_r2_r13_ROR_r5"},
4741                            {{vc, r1, r9, r6, LSL, r11},
4742                             false,
4743                             al,
4744                             "vc r1 r9 r6 LSL r11",
4745                             "vc_r1_r9_r6_LSL_r11"},
4746                            {{lt, r1, r0, r0, ROR, r13},
4747                             false,
4748                             al,
4749                             "lt r1 r0 r0 ROR r13",
4750                             "lt_r1_r0_r0_ROR_r13"},
4751                            {{le, r11, r4, r5, ASR, r2},
4752                             false,
4753                             al,
4754                             "le r11 r4 r5 ASR r2",
4755                             "le_r11_r4_r5_ASR_r2"},
4756                            {{vs, r7, r7, r3, ROR, r1},
4757                             false,
4758                             al,
4759                             "vs r7 r7 r3 ROR r1",
4760                             "vs_r7_r7_r3_ROR_r1"},
4761                            {{ls, r7, r5, r5, ASR, r11},
4762                             false,
4763                             al,
4764                             "ls r7 r5 r5 ASR r11",
4765                             "ls_r7_r5_r5_ASR_r11"},
4766                            {{cc, r7, r10, r8, ROR, r12},
4767                             false,
4768                             al,
4769                             "cc r7 r10 r8 ROR r12",
4770                             "cc_r7_r10_r8_ROR_r12"},
4771                            {{ne, r11, r11, r10, ROR, r11},
4772                             false,
4773                             al,
4774                             "ne r11 r11 r10 ROR r11",
4775                             "ne_r11_r11_r10_ROR_r11"},
4776                            {{gt, r4, r11, r5, ASR, r12},
4777                             false,
4778                             al,
4779                             "gt r4 r11 r5 ASR r12",
4780                             "gt_r4_r11_r5_ASR_r12"},
4781                            {{al, r3, r13, r1, ROR, r8},
4782                             false,
4783                             al,
4784                             "al r3 r13 r1 ROR r8",
4785                             "al_r3_r13_r1_ROR_r8"},
4786                            {{le, r14, r4, r3, ROR, r10},
4787                             false,
4788                             al,
4789                             "le r14 r4 r3 ROR r10",
4790                             "le_r14_r4_r3_ROR_r10"},
4791                            {{ls, r9, r2, r13, LSL, r9},
4792                             false,
4793                             al,
4794                             "ls r9 r2 r13 LSL r9",
4795                             "ls_r9_r2_r13_LSL_r9"},
4796                            {{le, r12, r7, r4, ASR, r14},
4797                             false,
4798                             al,
4799                             "le r12 r7 r4 ASR r14",
4800                             "le_r12_r7_r4_ASR_r14"},
4801                            {{lt, r1, r8, r0, ASR, r3},
4802                             false,
4803                             al,
4804                             "lt r1 r8 r0 ASR r3",
4805                             "lt_r1_r8_r0_ASR_r3"},
4806                            {{ge, r1, r8, r10, ROR, r10},
4807                             false,
4808                             al,
4809                             "ge r1 r8 r10 ROR r10",
4810                             "ge_r1_r8_r10_ROR_r10"},
4811                            {{vc, r6, r1, r14, LSL, r4},
4812                             false,
4813                             al,
4814                             "vc r6 r1 r14 LSL r4",
4815                             "vc_r6_r1_r14_LSL_r4"},
4816                            {{gt, r13, r10, r0, ASR, r9},
4817                             false,
4818                             al,
4819                             "gt r13 r10 r0 ASR r9",
4820                             "gt_r13_r10_r0_ASR_r9"},
4821                            {{ne, r8, r6, r12, LSR, r13},
4822                             false,
4823                             al,
4824                             "ne r8 r6 r12 LSR r13",
4825                             "ne_r8_r6_r12_LSR_r13"},
4826                            {{vc, r2, r6, r8, LSL, r5},
4827                             false,
4828                             al,
4829                             "vc r2 r6 r8 LSL r5",
4830                             "vc_r2_r6_r8_LSL_r5"},
4831                            {{lt, r3, r14, r12, ROR, r0},
4832                             false,
4833                             al,
4834                             "lt r3 r14 r12 ROR r0",
4835                             "lt_r3_r14_r12_ROR_r0"},
4836                            {{hi, r14, r9, r5, LSL, r4},
4837                             false,
4838                             al,
4839                             "hi r14 r9 r5 LSL r4",
4840                             "hi_r14_r9_r5_LSL_r4"},
4841                            {{le, r1, r9, r3, LSL, r1},
4842                             false,
4843                             al,
4844                             "le r1 r9 r3 LSL r1",
4845                             "le_r1_r9_r3_LSL_r1"},
4846                            {{ne, r1, r1, r9, LSR, r9},
4847                             false,
4848                             al,
4849                             "ne r1 r1 r9 LSR r9",
4850                             "ne_r1_r1_r9_LSR_r9"},
4851                            {{mi, r11, r9, r13, ASR, r1},
4852                             false,
4853                             al,
4854                             "mi r11 r9 r13 ASR r1",
4855                             "mi_r11_r9_r13_ASR_r1"},
4856                            {{hi, r9, r3, r12, ASR, r8},
4857                             false,
4858                             al,
4859                             "hi r9 r3 r12 ASR r8",
4860                             "hi_r9_r3_r12_ASR_r8"},
4861                            {{le, r7, r10, r1, ASR, r12},
4862                             false,
4863                             al,
4864                             "le r7 r10 r1 ASR r12",
4865                             "le_r7_r10_r1_ASR_r12"},
4866                            {{vs, r12, r4, r1, ASR, r0},
4867                             false,
4868                             al,
4869                             "vs r12 r4 r1 ASR r0",
4870                             "vs_r12_r4_r1_ASR_r0"},
4871                            {{vc, r10, r1, r11, LSL, r3},
4872                             false,
4873                             al,
4874                             "vc r10 r1 r11 LSL r3",
4875                             "vc_r10_r1_r11_LSL_r3"},
4876                            {{cc, r9, r8, r13, ROR, r14},
4877                             false,
4878                             al,
4879                             "cc r9 r8 r13 ROR r14",
4880                             "cc_r9_r8_r13_ROR_r14"},
4881                            {{cs, r12, r9, r11, LSL, r12},
4882                             false,
4883                             al,
4884                             "cs r12 r9 r11 LSL r12",
4885                             "cs_r12_r9_r11_LSL_r12"},
4886                            {{al, r0, r0, r4, ASR, r12},
4887                             false,
4888                             al,
4889                             "al r0 r0 r4 ASR r12",
4890                             "al_r0_r0_r4_ASR_r12"},
4891                            {{gt, r1, r12, r3, LSR, r11},
4892                             false,
4893                             al,
4894                             "gt r1 r12 r3 LSR r11",
4895                             "gt_r1_r12_r3_LSR_r11"},
4896                            {{hi, r2, r3, r12, LSR, r12},
4897                             false,
4898                             al,
4899                             "hi r2 r3 r12 LSR r12",
4900                             "hi_r2_r3_r12_LSR_r12"},
4901                            {{vs, r7, r4, r8, LSR, r1},
4902                             false,
4903                             al,
4904                             "vs r7 r4 r8 LSR r1",
4905                             "vs_r7_r4_r8_LSR_r1"},
4906                            {{hi, r3, r0, r0, ASR, r1},
4907                             false,
4908                             al,
4909                             "hi r3 r0 r0 ASR r1",
4910                             "hi_r3_r0_r0_ASR_r1"},
4911                            {{mi, r6, r7, r2, ROR, r8},
4912                             false,
4913                             al,
4914                             "mi r6 r7 r2 ROR r8",
4915                             "mi_r6_r7_r2_ROR_r8"},
4916                            {{lt, r5, r8, r10, ASR, r3},
4917                             false,
4918                             al,
4919                             "lt r5 r8 r10 ASR r3",
4920                             "lt_r5_r8_r10_ASR_r3"},
4921                            {{cs, r2, r12, r12, LSR, r1},
4922                             false,
4923                             al,
4924                             "cs r2 r12 r12 LSR r1",
4925                             "cs_r2_r12_r12_LSR_r1"},
4926                            {{eq, r4, r12, r10, LSL, r2},
4927                             false,
4928                             al,
4929                             "eq r4 r12 r10 LSL r2",
4930                             "eq_r4_r12_r10_LSL_r2"},
4931                            {{eq, r14, r3, r7, LSR, r2},
4932                             false,
4933                             al,
4934                             "eq r14 r3 r7 LSR r2",
4935                             "eq_r14_r3_r7_LSR_r2"},
4936                            {{mi, r14, r11, r10, LSL, r0},
4937                             false,
4938                             al,
4939                             "mi r14 r11 r10 LSL r0",
4940                             "mi_r14_r11_r10_LSL_r0"},
4941                            {{ge, r3, r6, r14, LSR, r9},
4942                             false,
4943                             al,
4944                             "ge r3 r6 r14 LSR r9",
4945                             "ge_r3_r6_r14_LSR_r9"},
4946                            {{lt, r9, r9, r6, LSL, r4},
4947                             false,
4948                             al,
4949                             "lt r9 r9 r6 LSL r4",
4950                             "lt_r9_r9_r6_LSL_r4"},
4951                            {{vc, r7, r6, r5, ROR, r7},
4952                             false,
4953                             al,
4954                             "vc r7 r6 r5 ROR r7",
4955                             "vc_r7_r6_r5_ROR_r7"},
4956                            {{al, r10, r7, r4, LSR, r13},
4957                             false,
4958                             al,
4959                             "al r10 r7 r4 LSR r13",
4960                             "al_r10_r7_r4_LSR_r13"},
4961                            {{vs, r11, r1, r0, LSR, r5},
4962                             false,
4963                             al,
4964                             "vs r11 r1 r0 LSR r5",
4965                             "vs_r11_r1_r0_LSR_r5"},
4966                            {{pl, r5, r3, r14, LSL, r12},
4967                             false,
4968                             al,
4969                             "pl r5 r3 r14 LSL r12",
4970                             "pl_r5_r3_r14_LSL_r12"},
4971                            {{vs, r14, r3, r2, LSL, r4},
4972                             false,
4973                             al,
4974                             "vs r14 r3 r2 LSL r4",
4975                             "vs_r14_r3_r2_LSL_r4"},
4976                            {{hi, r3, r2, r5, LSR, r4},
4977                             false,
4978                             al,
4979                             "hi r3 r2 r5 LSR r4",
4980                             "hi_r3_r2_r5_LSR_r4"},
4981                            {{gt, r12, r2, r9, LSR, r14},
4982                             false,
4983                             al,
4984                             "gt r12 r2 r9 LSR r14",
4985                             "gt_r12_r2_r9_LSR_r14"},
4986                            {{cc, r3, r11, r2, LSR, r12},
4987                             false,
4988                             al,
4989                             "cc r3 r11 r2 LSR r12",
4990                             "cc_r3_r11_r2_LSR_r12"},
4991                            {{gt, r1, r6, r2, LSL, r5},
4992                             false,
4993                             al,
4994                             "gt r1 r6 r2 LSL r5",
4995                             "gt_r1_r6_r2_LSL_r5"},
4996                            {{le, r12, r5, r11, ROR, r11},
4997                             false,
4998                             al,
4999                             "le r12 r5 r11 ROR r11",
5000                             "le_r12_r5_r11_ROR_r11"},
5001                            {{ge, r13, r14, r11, LSL, r2},
5002                             false,
5003                             al,
5004                             "ge r13 r14 r11 LSL r2",
5005                             "ge_r13_r14_r11_LSL_r2"},
5006                            {{ne, r7, r14, r4, ASR, r12},
5007                             false,
5008                             al,
5009                             "ne r7 r14 r4 ASR r12",
5010                             "ne_r7_r14_r4_ASR_r12"},
5011                            {{vc, r9, r5, r4, LSL, r8},
5012                             false,
5013                             al,
5014                             "vc r9 r5 r4 LSL r8",
5015                             "vc_r9_r5_r4_LSL_r8"},
5016                            {{cc, r7, r3, r3, ASR, r1},
5017                             false,
5018                             al,
5019                             "cc r7 r3 r3 ASR r1",
5020                             "cc_r7_r3_r3_ASR_r1"},
5021                            {{ls, r3, r13, r0, ASR, r1},
5022                             false,
5023                             al,
5024                             "ls r3 r13 r0 ASR r1",
5025                             "ls_r3_r13_r0_ASR_r1"},
5026                            {{lt, r7, r5, r5, ASR, r11},
5027                             false,
5028                             al,
5029                             "lt r7 r5 r5 ASR r11",
5030                             "lt_r7_r5_r5_ASR_r11"},
5031                            {{gt, r3, r6, r13, ASR, r11},
5032                             false,
5033                             al,
5034                             "gt r3 r6 r13 ASR r11",
5035                             "gt_r3_r6_r13_ASR_r11"},
5036                            {{ge, r14, r10, r10, ASR, r10},
5037                             false,
5038                             al,
5039                             "ge r14 r10 r10 ASR r10",
5040                             "ge_r14_r10_r10_ASR_r10"},
5041                            {{ne, r13, r14, r1, ASR, r2},
5042                             false,
5043                             al,
5044                             "ne r13 r14 r1 ASR r2",
5045                             "ne_r13_r14_r1_ASR_r2"},
5046                            {{al, r8, r12, r6, ASR, r7},
5047                             false,
5048                             al,
5049                             "al r8 r12 r6 ASR r7",
5050                             "al_r8_r12_r6_ASR_r7"},
5051                            {{mi, r2, r7, r7, ROR, r13},
5052                             false,
5053                             al,
5054                             "mi r2 r7 r7 ROR r13",
5055                             "mi_r2_r7_r7_ROR_r13"},
5056                            {{le, r14, r6, r14, ROR, r6},
5057                             false,
5058                             al,
5059                             "le r14 r6 r14 ROR r6",
5060                             "le_r14_r6_r14_ROR_r6"},
5061                            {{le, r11, r3, r12, LSR, r7},
5062                             false,
5063                             al,
5064                             "le r11 r3 r12 LSR r7",
5065                             "le_r11_r3_r12_LSR_r7"},
5066                            {{vs, r0, r12, r1, ASR, r2},
5067                             false,
5068                             al,
5069                             "vs r0 r12 r1 ASR r2",
5070                             "vs_r0_r12_r1_ASR_r2"},
5071                            {{vc, r7, r7, r12, LSL, r13},
5072                             false,
5073                             al,
5074                             "vc r7 r7 r12 LSL r13",
5075                             "vc_r7_r7_r12_LSL_r13"},
5076                            {{eq, r6, r3, r8, ASR, r5},
5077                             false,
5078                             al,
5079                             "eq r6 r3 r8 ASR r5",
5080                             "eq_r6_r3_r8_ASR_r5"},
5081                            {{cs, r5, r4, r5, LSL, r11},
5082                             false,
5083                             al,
5084                             "cs r5 r4 r5 LSL r11",
5085                             "cs_r5_r4_r5_LSL_r11"},
5086                            {{lt, r3, r6, r9, ROR, r9},
5087                             false,
5088                             al,
5089                             "lt r3 r6 r9 ROR r9",
5090                             "lt_r3_r6_r9_ROR_r9"},
5091                            {{vs, r14, r14, r13, LSR, r8},
5092                             false,
5093                             al,
5094                             "vs r14 r14 r13 LSR r8",
5095                             "vs_r14_r14_r13_LSR_r8"},
5096                            {{cc, r4, r12, r9, LSL, r10},
5097                             false,
5098                             al,
5099                             "cc r4 r12 r9 LSL r10",
5100                             "cc_r4_r12_r9_LSL_r10"},
5101                            {{gt, r4, r14, r14, ROR, r6},
5102                             false,
5103                             al,
5104                             "gt r4 r14 r14 ROR r6",
5105                             "gt_r4_r14_r14_ROR_r6"},
5106                            {{gt, r8, r9, r10, LSR, r6},
5107                             false,
5108                             al,
5109                             "gt r8 r9 r10 LSR r6",
5110                             "gt_r8_r9_r10_LSR_r6"},
5111                            {{hi, r6, r13, r11, LSL, r7},
5112                             false,
5113                             al,
5114                             "hi r6 r13 r11 LSL r7",
5115                             "hi_r6_r13_r11_LSL_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-a32-adc.h"
5120 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-adcs.h"
5121 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-add.h"
5122 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-adds.h"
5123 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-and.h"
5124 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-ands.h"
5125 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-bic.h"
5126 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-bics.h"
5127 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-eor.h"
5128 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-eors.h"
5129 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-orr.h"
5130 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-orrs.h"
5131 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-rsb.h"
5132 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-rsbs.h"
5133 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-rsc.h"
5134 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-rscs.h"
5135 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-sbc.h"
5136 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-sbcs.h"
5137 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-sub.h"
5138 #include "aarch32/traces/assembler-cond-rd-rn-operand-rm-shift-rs-a32-subs.h"
5139 
5140 
5141 // The maximum number of errors to report in detail for each test.
5142 const unsigned kErrorReportLimit = 8;
5143 
5144 typedef void (MacroAssembler::*Fn)(Condition cond,
5145                                    Register rd,
5146                                    Register rn,
5147                                    const Operand& op);
5148 
TestHelper(Fn instruction,const char * mnemonic,const TestResult reference[])5149 void 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_A32_" #mnemonic,    \
5271       &Test_##mnemonic);
5272 FOREACH_INSTRUCTION(TEST)
5273 #undef TEST
5274 
5275 }  // namespace
5276 #endif
5277 
5278 }  // namespace aarch32
5279 }  // namespace vixl
5280