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) M(mov)
52
53
54 // The following definitions are defined again in each generated test, therefore
55 // we need to place them in an anomymous namespace. It expresses that they are
56 // local to this file only, and the compiler is not allowed to share these types
57 // across test files during template instantiation. Specifically, `Operands` has
58 // various layouts across generated tests so it absolutely cannot be shared.
59
60 #ifdef VIXL_INCLUDE_TARGET_T32
61 namespace {
62
63 // Values to be passed to the assembler to produce the instruction under test.
64 struct Operands {
65 Condition cond;
66 Register rd;
67 Register rn;
68 ShiftType shift;
69 Register rs;
70 };
71
72 // This structure contains all data needed to test one specific
73 // instruction.
74 struct TestData {
75 // The `operands` field represents what to pass to the assembler to
76 // produce the instruction.
77 Operands operands;
78 // True if we need to generate an IT instruction for this test to be valid.
79 bool in_it_block;
80 // The condition to give the IT instruction, this will be set to "al" by
81 // default.
82 Condition it_condition;
83 // Description of the operands, used for error reporting.
84 const char* operands_description;
85 // Unique identifier, used for generating traces.
86 const char* identifier;
87 };
88
89 struct TestResult {
90 size_t size;
91 const byte* encoding;
92 };
93
94 // Each element of this array produce one instruction encoding.
95 const TestData kTests[] =
96 {{{ge, r1, r1, LSL, r6}, true, ge, "ge r1 r1 LSL r6", "ge_r1_r1_LSL_r6"},
97 {{cs, r7, r7, LSL, r2}, true, cs, "cs r7 r7 LSL r2", "cs_r7_r7_LSL_r2"},
98 {{gt, r1, r1, LSL, r0}, true, gt, "gt r1 r1 LSL r0", "gt_r1_r1_LSL_r0"},
99 {{pl, r3, r3, ROR, r3}, true, pl, "pl r3 r3 ROR r3", "pl_r3_r3_ROR_r3"},
100 {{vc, r4, r4, ROR, r1}, true, vc, "vc r4 r4 ROR r1", "vc_r4_r4_ROR_r1"},
101 {{vs, r2, r2, LSL, r0}, true, vs, "vs r2 r2 LSL r0", "vs_r2_r2_LSL_r0"},
102 {{vc, r4, r4, LSR, r4}, true, vc, "vc r4 r4 LSR r4", "vc_r4_r4_LSR_r4"},
103 {{le, r6, r6, ASR, r6}, true, le, "le r6 r6 ASR r6", "le_r6_r6_ASR_r6"},
104 {{hi, r6, r6, ROR, r5}, true, hi, "hi r6 r6 ROR r5", "hi_r6_r6_ROR_r5"},
105 {{le, r3, r3, ASR, r6}, true, le, "le r3 r3 ASR r6", "le_r3_r3_ASR_r6"},
106 {{le, r7, r7, LSL, r0}, true, le, "le r7 r7 LSL r0", "le_r7_r7_LSL_r0"},
107 {{pl, r3, r3, ASR, r2}, true, pl, "pl r3 r3 ASR r2", "pl_r3_r3_ASR_r2"},
108 {{mi, r4, r4, LSL, r5}, true, mi, "mi r4 r4 LSL r5", "mi_r4_r4_LSL_r5"},
109 {{le, r5, r5, LSR, r6}, true, le, "le r5 r5 LSR r6", "le_r5_r5_LSR_r6"},
110 {{cs, r0, r0, ASR, r6}, true, cs, "cs r0 r0 ASR r6", "cs_r0_r0_ASR_r6"},
111 {{vs, r2, r2, LSL, r1}, true, vs, "vs r2 r2 LSL r1", "vs_r2_r2_LSL_r1"},
112 {{hi, r5, r5, LSL, r6}, true, hi, "hi r5 r5 LSL r6", "hi_r5_r5_LSL_r6"},
113 {{ls, r6, r6, LSL, r3}, true, ls, "ls r6 r6 LSL r3", "ls_r6_r6_LSL_r3"},
114 {{pl, r2, r2, ASR, r7}, true, pl, "pl r2 r2 ASR r7", "pl_r2_r2_ASR_r7"},
115 {{ls, r0, r0, LSR, r2}, true, ls, "ls r0 r0 LSR r2", "ls_r0_r0_LSR_r2"},
116 {{eq, r5, r5, ROR, r2}, true, eq, "eq r5 r5 ROR r2", "eq_r5_r5_ROR_r2"},
117 {{eq, r5, r5, LSR, r1}, true, eq, "eq r5 r5 LSR r1", "eq_r5_r5_LSR_r1"},
118 {{ge, r4, r4, ASR, r1}, true, ge, "ge r4 r4 ASR r1", "ge_r4_r4_ASR_r1"},
119 {{ls, r6, r6, LSR, r0}, true, ls, "ls r6 r6 LSR r0", "ls_r6_r6_LSR_r0"},
120 {{ls, r0, r0, ASR, r2}, true, ls, "ls r0 r0 ASR r2", "ls_r0_r0_ASR_r2"},
121 {{cc, r1, r1, LSL, r6}, true, cc, "cc r1 r1 LSL r6", "cc_r1_r1_LSL_r6"},
122 {{ge, r6, r6, ROR, r3}, true, ge, "ge r6 r6 ROR r3", "ge_r6_r6_ROR_r3"},
123 {{cs, r7, r7, ASR, r3}, true, cs, "cs r7 r7 ASR r3", "cs_r7_r7_ASR_r3"},
124 {{ne, r3, r3, ROR, r4}, true, ne, "ne r3 r3 ROR r4", "ne_r3_r3_ROR_r4"},
125 {{hi, r1, r1, ASR, r6}, true, hi, "hi r1 r1 ASR r6", "hi_r1_r1_ASR_r6"},
126 {{ls, r7, r7, LSL, r4}, true, ls, "ls r7 r7 LSL r4", "ls_r7_r7_LSL_r4"},
127 {{ge, r4, r4, LSL, r0}, true, ge, "ge r4 r4 LSL r0", "ge_r4_r4_LSL_r0"},
128 {{vs, r4, r4, LSR, r4}, true, vs, "vs r4 r4 LSR r4", "vs_r4_r4_LSR_r4"},
129 {{cc, r0, r0, LSR, r0}, true, cc, "cc r0 r0 LSR r0", "cc_r0_r0_LSR_r0"},
130 {{mi, r5, r5, LSL, r5}, true, mi, "mi r5 r5 LSL r5", "mi_r5_r5_LSL_r5"},
131 {{ls, r1, r1, LSR, r0}, true, ls, "ls r1 r1 LSR r0", "ls_r1_r1_LSR_r0"},
132 {{ge, r1, r1, ASR, r7}, true, ge, "ge r1 r1 ASR r7", "ge_r1_r1_ASR_r7"},
133 {{eq, r4, r4, ROR, r4}, true, eq, "eq r4 r4 ROR r4", "eq_r4_r4_ROR_r4"},
134 {{vc, r5, r5, ROR, r3}, true, vc, "vc r5 r5 ROR r3", "vc_r5_r5_ROR_r3"},
135 {{ls, r3, r3, LSL, r2}, true, ls, "ls r3 r3 LSL r2", "ls_r3_r3_LSL_r2"},
136 {{ls, r6, r6, ASR, r3}, true, ls, "ls r6 r6 ASR r3", "ls_r6_r6_ASR_r3"},
137 {{lt, r4, r4, ROR, r3}, true, lt, "lt r4 r4 ROR r3", "lt_r4_r4_ROR_r3"},
138 {{vc, r6, r6, ASR, r7}, true, vc, "vc r6 r6 ASR r7", "vc_r6_r6_ASR_r7"},
139 {{ls, r1, r1, LSR, r3}, true, ls, "ls r1 r1 LSR r3", "ls_r1_r1_LSR_r3"},
140 {{ne, r6, r6, ROR, r6}, true, ne, "ne r6 r6 ROR r6", "ne_r6_r6_ROR_r6"},
141 {{cc, r3, r3, LSL, r7}, true, cc, "cc r3 r3 LSL r7", "cc_r3_r3_LSL_r7"},
142 {{hi, r3, r3, LSR, r0}, true, hi, "hi r3 r3 LSR r0", "hi_r3_r3_LSR_r0"},
143 {{gt, r5, r5, ROR, r0}, true, gt, "gt r5 r5 ROR r0", "gt_r5_r5_ROR_r0"},
144 {{cc, r3, r3, LSL, r0}, true, cc, "cc r3 r3 LSL r0", "cc_r3_r3_LSL_r0"},
145 {{le, r1, r1, LSL, r0}, true, le, "le r1 r1 LSL r0", "le_r1_r1_LSL_r0"},
146 {{vs, r5, r5, ASR, r2}, true, vs, "vs r5 r5 ASR r2", "vs_r5_r5_ASR_r2"},
147 {{mi, r2, r2, ASR, r6}, true, mi, "mi r2 r2 ASR r6", "mi_r2_r2_ASR_r6"},
148 {{ls, r7, r7, LSR, r5}, true, ls, "ls r7 r7 LSR r5", "ls_r7_r7_LSR_r5"},
149 {{lt, r0, r0, LSR, r0}, true, lt, "lt r0 r0 LSR r0", "lt_r0_r0_LSR_r0"},
150 {{mi, r6, r6, ROR, r1}, true, mi, "mi r6 r6 ROR r1", "mi_r6_r6_ROR_r1"},
151 {{cs, r1, r1, ASR, r3}, true, cs, "cs r1 r1 ASR r3", "cs_r1_r1_ASR_r3"},
152 {{le, r0, r0, ROR, r3}, true, le, "le r0 r0 ROR r3", "le_r0_r0_ROR_r3"},
153 {{mi, r7, r7, LSR, r5}, true, mi, "mi r7 r7 LSR r5", "mi_r7_r7_LSR_r5"},
154 {{mi, r0, r0, LSL, r7}, true, mi, "mi r0 r0 LSL r7", "mi_r0_r0_LSL_r7"},
155 {{vc, r3, r3, LSR, r7}, true, vc, "vc r3 r3 LSR r7", "vc_r3_r3_LSR_r7"},
156 {{ge, r3, r3, ROR, r7}, true, ge, "ge r3 r3 ROR r7", "ge_r3_r3_ROR_r7"},
157 {{vc, r1, r1, LSL, r7}, true, vc, "vc r1 r1 LSL r7", "vc_r1_r1_LSL_r7"},
158 {{hi, r3, r3, LSL, r3}, true, hi, "hi r3 r3 LSL r3", "hi_r3_r3_LSL_r3"},
159 {{eq, r1, r1, ASR, r5}, true, eq, "eq r1 r1 ASR r5", "eq_r1_r1_ASR_r5"},
160 {{lt, r5, r5, LSR, r4}, true, lt, "lt r5 r5 LSR r4", "lt_r5_r5_LSR_r4"},
161 {{gt, r1, r1, ASR, r4}, true, gt, "gt r1 r1 ASR r4", "gt_r1_r1_ASR_r4"},
162 {{ge, r4, r4, ROR, r1}, true, ge, "ge r4 r4 ROR r1", "ge_r4_r4_ROR_r1"},
163 {{vs, r5, r5, LSL, r0}, true, vs, "vs r5 r5 LSL r0", "vs_r5_r5_LSL_r0"},
164 {{eq, r0, r0, ASR, r4}, true, eq, "eq r0 r0 ASR r4", "eq_r0_r0_ASR_r4"},
165 {{ge, r3, r3, LSL, r4}, true, ge, "ge r3 r3 LSL r4", "ge_r3_r3_LSL_r4"},
166 {{pl, r3, r3, ASR, r6}, true, pl, "pl r3 r3 ASR r6", "pl_r3_r3_ASR_r6"},
167 {{cc, r2, r2, LSL, r3}, true, cc, "cc r2 r2 LSL r3", "cc_r2_r2_LSL_r3"},
168 {{pl, r3, r3, ASR, r1}, true, pl, "pl r3 r3 ASR r1", "pl_r3_r3_ASR_r1"},
169 {{vc, r2, r2, LSR, r7}, true, vc, "vc r2 r2 LSR r7", "vc_r2_r2_LSR_r7"},
170 {{ge, r1, r1, ASR, r2}, true, ge, "ge r1 r1 ASR r2", "ge_r1_r1_ASR_r2"},
171 {{ge, r7, r7, LSR, r4}, true, ge, "ge r7 r7 LSR r4", "ge_r7_r7_LSR_r4"},
172 {{ls, r5, r5, LSR, r3}, true, ls, "ls r5 r5 LSR r3", "ls_r5_r5_LSR_r3"},
173 {{eq, r4, r4, LSR, r5}, true, eq, "eq r4 r4 LSR r5", "eq_r4_r4_LSR_r5"},
174 {{ne, r7, r7, ROR, r6}, true, ne, "ne r7 r7 ROR r6", "ne_r7_r7_ROR_r6"},
175 {{mi, r5, r5, LSL, r7}, true, mi, "mi r5 r5 LSL r7", "mi_r5_r5_LSL_r7"},
176 {{cs, r7, r7, ROR, r4}, true, cs, "cs r7 r7 ROR r4", "cs_r7_r7_ROR_r4"},
177 {{mi, r1, r1, ASR, r6}, true, mi, "mi r1 r1 ASR r6", "mi_r1_r1_ASR_r6"},
178 {{pl, r6, r6, ASR, r0}, true, pl, "pl r6 r6 ASR r0", "pl_r6_r6_ASR_r0"},
179 {{cs, r3, r3, ASR, r2}, true, cs, "cs r3 r3 ASR r2", "cs_r3_r3_ASR_r2"},
180 {{eq, r2, r2, LSL, r1}, true, eq, "eq r2 r2 LSL r1", "eq_r2_r2_LSL_r1"},
181 {{lt, r6, r6, LSR, r5}, true, lt, "lt r6 r6 LSR r5", "lt_r6_r6_LSR_r5"},
182 {{cc, r0, r0, ASR, r5}, true, cc, "cc r0 r0 ASR r5", "cc_r0_r0_ASR_r5"},
183 {{cs, r1, r1, LSL, r7}, true, cs, "cs r1 r1 LSL r7", "cs_r1_r1_LSL_r7"},
184 {{ge, r0, r0, LSR, r0}, true, ge, "ge r0 r0 LSR r0", "ge_r0_r0_LSR_r0"},
185 {{cc, r4, r4, ROR, r7}, true, cc, "cc r4 r4 ROR r7", "cc_r4_r4_ROR_r7"},
186 {{cs, r5, r5, ASR, r4}, true, cs, "cs r5 r5 ASR r4", "cs_r5_r5_ASR_r4"},
187 {{vc, r6, r6, LSL, r0}, true, vc, "vc r6 r6 LSL r0", "vc_r6_r6_LSL_r0"},
188 {{gt, r5, r5, LSL, r4}, true, gt, "gt r5 r5 LSL r4", "gt_r5_r5_LSL_r4"},
189 {{hi, r2, r2, ROR, r3}, true, hi, "hi r2 r2 ROR r3", "hi_r2_r2_ROR_r3"},
190 {{cc, r4, r4, ROR, r3}, true, cc, "cc r4 r4 ROR r3", "cc_r4_r4_ROR_r3"},
191 {{hi, r0, r0, ROR, r4}, true, hi, "hi r0 r0 ROR r4", "hi_r0_r0_ROR_r4"},
192 {{vs, r1, r1, ROR, r3}, true, vs, "vs r1 r1 ROR r3", "vs_r1_r1_ROR_r3"},
193 {{gt, r4, r4, ROR, r5}, true, gt, "gt r4 r4 ROR r5", "gt_r4_r4_ROR_r5"},
194 {{lt, r1, r1, LSR, r2}, true, lt, "lt r1 r1 LSR r2", "lt_r1_r1_LSR_r2"},
195 {{lt, r4, r4, LSL, r4}, true, lt, "lt r4 r4 LSL r4", "lt_r4_r4_LSL_r4"},
196 {{mi, r3, r3, LSL, r2}, true, mi, "mi r3 r3 LSL r2", "mi_r3_r3_LSL_r2"},
197 {{cs, r6, r6, ROR, r7}, true, cs, "cs r6 r6 ROR r7", "cs_r6_r6_ROR_r7"},
198 {{vc, r5, r5, LSR, r3}, true, vc, "vc r5 r5 LSR r3", "vc_r5_r5_LSR_r3"},
199 {{vc, r4, r4, LSL, r4}, true, vc, "vc r4 r4 LSL r4", "vc_r4_r4_LSL_r4"},
200 {{pl, r0, r0, LSL, r2}, true, pl, "pl r0 r0 LSL r2", "pl_r0_r0_LSL_r2"},
201 {{ne, r3, r3, LSL, r5}, true, ne, "ne r3 r3 LSL r5", "ne_r3_r3_LSL_r5"},
202 {{mi, r7, r7, ROR, r5}, true, mi, "mi r7 r7 ROR r5", "mi_r7_r7_ROR_r5"},
203 {{ls, r4, r4, LSL, r4}, true, ls, "ls r4 r4 LSL r4", "ls_r4_r4_LSL_r4"},
204 {{hi, r0, r0, ASR, r1}, true, hi, "hi r0 r0 ASR r1", "hi_r0_r0_ASR_r1"},
205 {{vs, r5, r5, ROR, r0}, true, vs, "vs r5 r5 ROR r0", "vs_r5_r5_ROR_r0"},
206 {{hi, r1, r1, ROR, r4}, true, hi, "hi r1 r1 ROR r4", "hi_r1_r1_ROR_r4"},
207 {{vs, r7, r7, ROR, r2}, true, vs, "vs r7 r7 ROR r2", "vs_r7_r7_ROR_r2"},
208 {{gt, r5, r5, ROR, r2}, true, gt, "gt r5 r5 ROR r2", "gt_r5_r5_ROR_r2"},
209 {{ge, r0, r0, LSR, r7}, true, ge, "ge r0 r0 LSR r7", "ge_r0_r0_LSR_r7"},
210 {{cs, r7, r7, LSR, r0}, true, cs, "cs r7 r7 LSR r0", "cs_r7_r7_LSR_r0"},
211 {{ge, r1, r1, LSL, r3}, true, ge, "ge r1 r1 LSL r3", "ge_r1_r1_LSL_r3"},
212 {{lt, r5, r5, LSL, r5}, true, lt, "lt r5 r5 LSL r5", "lt_r5_r5_LSL_r5"},
213 {{ls, r3, r3, ROR, r0}, true, ls, "ls r3 r3 ROR r0", "ls_r3_r3_ROR_r0"},
214 {{cs, r0, r0, LSL, r7}, true, cs, "cs r0 r0 LSL r7", "cs_r0_r0_LSL_r7"},
215 {{pl, r7, r7, ASR, r0}, true, pl, "pl r7 r7 ASR r0", "pl_r7_r7_ASR_r0"},
216 {{vs, r2, r2, LSL, r3}, true, vs, "vs r2 r2 LSL r3", "vs_r2_r2_LSL_r3"},
217 {{ne, r0, r0, ROR, r1}, true, ne, "ne r0 r0 ROR r1", "ne_r0_r0_ROR_r1"},
218 {{vs, r2, r2, ASR, r2}, true, vs, "vs r2 r2 ASR r2", "vs_r2_r2_ASR_r2"},
219 {{pl, r6, r6, LSR, r3}, true, pl, "pl r6 r6 LSR r3", "pl_r6_r6_LSR_r3"},
220 {{gt, r3, r3, ROR, r0}, true, gt, "gt r3 r3 ROR r0", "gt_r3_r3_ROR_r0"},
221 {{vc, r3, r3, LSL, r7}, true, vc, "vc r3 r3 LSL r7", "vc_r3_r3_LSL_r7"},
222 {{ge, r6, r6, LSL, r6}, true, ge, "ge r6 r6 LSL r6", "ge_r6_r6_LSL_r6"},
223 {{ls, r2, r2, LSL, r3}, true, ls, "ls r2 r2 LSL r3", "ls_r2_r2_LSL_r3"},
224 {{vc, r4, r4, ROR, r5}, true, vc, "vc r4 r4 ROR r5", "vc_r4_r4_ROR_r5"},
225 {{hi, r7, r7, LSL, r1}, true, hi, "hi r7 r7 LSL r1", "hi_r7_r7_LSL_r1"},
226 {{cs, r1, r1, ROR, r2}, true, cs, "cs r1 r1 ROR r2", "cs_r1_r1_ROR_r2"},
227 {{vs, r1, r1, ROR, r7}, true, vs, "vs r1 r1 ROR r7", "vs_r1_r1_ROR_r7"},
228 {{lt, r3, r3, ASR, r2}, true, lt, "lt r3 r3 ASR r2", "lt_r3_r3_ASR_r2"},
229 {{ne, r0, r0, LSR, r7}, true, ne, "ne r0 r0 LSR r7", "ne_r0_r0_LSR_r7"},
230 {{vs, r6, r6, ROR, r1}, true, vs, "vs r6 r6 ROR r1", "vs_r6_r6_ROR_r1"},
231 {{hi, r3, r3, ROR, r1}, true, hi, "hi r3 r3 ROR r1", "hi_r3_r3_ROR_r1"},
232 {{ls, r1, r1, ASR, r0}, true, ls, "ls r1 r1 ASR r0", "ls_r1_r1_ASR_r0"},
233 {{cs, r1, r1, LSL, r0}, true, cs, "cs r1 r1 LSL r0", "cs_r1_r1_LSL_r0"},
234 {{cc, r7, r7, ROR, r6}, true, cc, "cc r7 r7 ROR r6", "cc_r7_r7_ROR_r6"},
235 {{mi, r2, r2, LSL, r5}, true, mi, "mi r2 r2 LSL r5", "mi_r2_r2_LSL_r5"},
236 {{gt, r6, r6, LSL, r5}, true, gt, "gt r6 r6 LSL r5", "gt_r6_r6_LSL_r5"},
237 {{gt, r4, r4, LSL, r5}, true, gt, "gt r4 r4 LSL r5", "gt_r4_r4_LSL_r5"},
238 {{vc, r3, r3, LSL, r4}, true, vc, "vc r3 r3 LSL r4", "vc_r3_r3_LSL_r4"},
239 {{gt, r7, r7, LSR, r2}, true, gt, "gt r7 r7 LSR r2", "gt_r7_r7_LSR_r2"},
240 {{le, r5, r5, ROR, r2}, true, le, "le r5 r5 ROR r2", "le_r5_r5_ROR_r2"},
241 {{vs, r6, r6, LSL, r3}, true, vs, "vs r6 r6 LSL r3", "vs_r6_r6_LSL_r3"},
242 {{gt, r1, r1, LSL, r6}, true, gt, "gt r1 r1 LSL r6", "gt_r1_r1_LSL_r6"},
243 {{cc, r0, r0, LSR, r5}, true, cc, "cc r0 r0 LSR r5", "cc_r0_r0_LSR_r5"},
244 {{eq, r4, r4, LSR, r3}, true, eq, "eq r4 r4 LSR r3", "eq_r4_r4_LSR_r3"},
245 {{hi, r6, r6, LSR, r6}, true, hi, "hi r6 r6 LSR r6", "hi_r6_r6_LSR_r6"},
246 {{hi, r5, r5, LSR, r4}, true, hi, "hi r5 r5 LSR r4", "hi_r5_r5_LSR_r4"},
247 {{vs, r6, r6, ASR, r0}, true, vs, "vs r6 r6 ASR r0", "vs_r6_r6_ASR_r0"},
248 {{hi, r6, r6, LSL, r6}, true, hi, "hi r6 r6 LSL r6", "hi_r6_r6_LSL_r6"},
249 {{eq, r6, r6, ROR, r1}, true, eq, "eq r6 r6 ROR r1", "eq_r6_r6_ROR_r1"},
250 {{ne, r1, r1, LSL, r5}, true, ne, "ne r1 r1 LSL r5", "ne_r1_r1_LSL_r5"},
251 {{lt, r0, r0, ASR, r4}, true, lt, "lt r0 r0 ASR r4", "lt_r0_r0_ASR_r4"},
252 {{le, r2, r2, LSL, r0}, true, le, "le r2 r2 LSL r0", "le_r2_r2_LSL_r0"},
253 {{ls, r4, r4, ASR, r2}, true, ls, "ls r4 r4 ASR r2", "ls_r4_r4_ASR_r2"},
254 {{pl, r4, r4, ASR, r2}, true, pl, "pl r4 r4 ASR r2", "pl_r4_r4_ASR_r2"},
255 {{lt, r6, r6, ROR, r3}, true, lt, "lt r6 r6 ROR r3", "lt_r6_r6_ROR_r3"},
256 {{ne, r4, r4, ROR, r5}, true, ne, "ne r4 r4 ROR r5", "ne_r4_r4_ROR_r5"},
257 {{cc, r7, r7, LSL, r7}, true, cc, "cc r7 r7 LSL r7", "cc_r7_r7_LSL_r7"},
258 {{le, r7, r7, LSR, r6}, true, le, "le r7 r7 LSR r6", "le_r7_r7_LSR_r6"},
259 {{vc, r4, r4, LSL, r7}, true, vc, "vc r4 r4 LSL r7", "vc_r4_r4_LSL_r7"},
260 {{vs, r1, r1, LSL, r3}, true, vs, "vs r1 r1 LSL r3", "vs_r1_r1_LSL_r3"},
261 {{eq, r3, r3, LSL, r2}, true, eq, "eq r3 r3 LSL r2", "eq_r3_r3_LSL_r2"},
262 {{ls, r7, r7, LSL, r3}, true, ls, "ls r7 r7 LSL r3", "ls_r7_r7_LSL_r3"},
263 {{lt, r2, r2, ROR, r3}, true, lt, "lt r2 r2 ROR r3", "lt_r2_r2_ROR_r3"},
264 {{lt, r2, r2, LSR, r2}, true, lt, "lt r2 r2 LSR r2", "lt_r2_r2_LSR_r2"},
265 {{eq, r0, r0, LSL, r5}, true, eq, "eq r0 r0 LSL r5", "eq_r0_r0_LSL_r5"},
266 {{vc, r2, r2, LSR, r1}, true, vc, "vc r2 r2 LSR r1", "vc_r2_r2_LSR_r1"},
267 {{ge, r6, r6, ROR, r2}, true, ge, "ge r6 r6 ROR r2", "ge_r6_r6_ROR_r2"},
268 {{ls, r1, r1, LSL, r4}, true, ls, "ls r1 r1 LSL r4", "ls_r1_r1_LSL_r4"},
269 {{le, r6, r6, ROR, r2}, true, le, "le r6 r6 ROR r2", "le_r6_r6_ROR_r2"},
270 {{vc, r6, r6, LSL, r5}, true, vc, "vc r6 r6 LSL r5", "vc_r6_r6_LSL_r5"},
271 {{le, r0, r0, LSL, r5}, true, le, "le r0 r0 LSL r5", "le_r0_r0_LSL_r5"},
272 {{vc, r3, r3, LSR, r1}, true, vc, "vc r3 r3 LSR r1", "vc_r3_r3_LSR_r1"},
273 {{ge, r2, r2, LSR, r0}, true, ge, "ge r2 r2 LSR r0", "ge_r2_r2_LSR_r0"},
274 {{vc, r4, r4, LSR, r0}, true, vc, "vc r4 r4 LSR r0", "vc_r4_r4_LSR_r0"},
275 {{pl, r7, r7, LSR, r0}, true, pl, "pl r7 r7 LSR r0", "pl_r7_r7_LSR_r0"},
276 {{vs, r7, r7, ROR, r4}, true, vs, "vs r7 r7 ROR r4", "vs_r7_r7_ROR_r4"},
277 {{cs, r6, r6, ASR, r5}, true, cs, "cs r6 r6 ASR r5", "cs_r6_r6_ASR_r5"},
278 {{ls, r6, r6, ROR, r4}, true, ls, "ls r6 r6 ROR r4", "ls_r6_r6_ROR_r4"},
279 {{pl, r2, r2, LSR, r4}, true, pl, "pl r2 r2 LSR r4", "pl_r2_r2_LSR_r4"},
280 {{lt, r4, r4, ASR, r0}, true, lt, "lt r4 r4 ASR r0", "lt_r4_r4_ASR_r0"},
281 {{vc, r0, r0, LSL, r6}, true, vc, "vc r0 r0 LSL r6", "vc_r0_r0_LSL_r6"},
282 {{lt, r7, r7, LSL, r6}, true, lt, "lt r7 r7 LSL r6", "lt_r7_r7_LSL_r6"},
283 {{gt, r2, r2, LSL, r2}, true, gt, "gt r2 r2 LSL r2", "gt_r2_r2_LSL_r2"},
284 {{vc, r2, r2, ROR, r7}, true, vc, "vc r2 r2 ROR r7", "vc_r2_r2_ROR_r7"},
285 {{cc, r5, r5, ASR, r6}, true, cc, "cc r5 r5 ASR r6", "cc_r5_r5_ASR_r6"},
286 {{cc, r0, r0, LSL, r0}, true, cc, "cc r0 r0 LSL r0", "cc_r0_r0_LSL_r0"},
287 {{vc, r4, r4, ROR, r6}, true, vc, "vc r4 r4 ROR r6", "vc_r4_r4_ROR_r6"},
288 {{gt, r6, r6, LSR, r3}, true, gt, "gt r6 r6 LSR r3", "gt_r6_r6_LSR_r3"},
289 {{ne, r5, r5, LSR, r1}, true, ne, "ne r5 r5 LSR r1", "ne_r5_r5_LSR_r1"},
290 {{ne, r3, r3, ROR, r3}, true, ne, "ne r3 r3 ROR r3", "ne_r3_r3_ROR_r3"},
291 {{ge, r3, r3, LSL, r2}, true, ge, "ge r3 r3 LSL r2", "ge_r3_r3_LSL_r2"},
292 {{pl, r3, r3, LSL, r2}, true, pl, "pl r3 r3 LSL r2", "pl_r3_r3_LSL_r2"},
293 {{eq, r7, r7, LSL, r2}, true, eq, "eq r7 r7 LSL r2", "eq_r7_r7_LSL_r2"},
294 {{pl, r6, r6, LSL, r7}, true, pl, "pl r6 r6 LSL r7", "pl_r6_r6_LSL_r7"},
295 {{ls, r2, r2, LSL, r0}, true, ls, "ls r2 r2 LSL r0", "ls_r2_r2_LSL_r0"},
296 {{cs, r7, r7, LSL, r1}, true, cs, "cs r7 r7 LSL r1", "cs_r7_r7_LSL_r1"},
297 {{mi, r7, r7, LSR, r4}, true, mi, "mi r7 r7 LSR r4", "mi_r7_r7_LSR_r4"},
298 {{gt, r7, r7, ROR, r4}, true, gt, "gt r7 r7 ROR r4", "gt_r7_r7_ROR_r4"},
299 {{pl, r7, r7, LSL, r3}, true, pl, "pl r7 r7 LSL r3", "pl_r7_r7_LSL_r3"},
300 {{cc, r7, r7, ASR, r3}, true, cc, "cc r7 r7 ASR r3", "cc_r7_r7_ASR_r3"},
301 {{hi, r6, r6, ASR, r0}, true, hi, "hi r6 r6 ASR r0", "hi_r6_r6_ASR_r0"},
302 {{ge, r0, r0, ROR, r5}, true, ge, "ge r0 r0 ROR r5", "ge_r0_r0_ROR_r5"},
303 {{ne, r3, r3, LSR, r1}, true, ne, "ne r3 r3 LSR r1", "ne_r3_r3_LSR_r1"},
304 {{le, r0, r0, ROR, r1}, true, le, "le r0 r0 ROR r1", "le_r0_r0_ROR_r1"},
305 {{cc, r6, r6, LSL, r0}, true, cc, "cc r6 r6 LSL r0", "cc_r6_r6_LSL_r0"},
306 {{eq, r4, r4, LSL, r5}, true, eq, "eq r4 r4 LSL r5", "eq_r4_r4_LSL_r5"},
307 {{le, r3, r3, ASR, r7}, true, le, "le r3 r3 ASR r7", "le_r3_r3_ASR_r7"},
308 {{pl, r6, r6, ROR, r6}, true, pl, "pl r6 r6 ROR r6", "pl_r6_r6_ROR_r6"},
309 {{gt, r6, r6, LSR, r4}, true, gt, "gt r6 r6 LSR r4", "gt_r6_r6_LSR_r4"},
310 {{hi, r2, r2, LSL, r0}, true, hi, "hi r2 r2 LSL r0", "hi_r2_r2_LSL_r0"},
311 {{eq, r1, r1, LSR, r7}, true, eq, "eq r1 r1 LSR r7", "eq_r1_r1_LSR_r7"},
312 {{eq, r1, r1, LSR, r1}, true, eq, "eq r1 r1 LSR r1", "eq_r1_r1_LSR_r1"},
313 {{vs, r5, r5, ASR, r5}, true, vs, "vs r5 r5 ASR r5", "vs_r5_r5_ASR_r5"},
314 {{gt, r0, r0, LSR, r0}, true, gt, "gt r0 r0 LSR r0", "gt_r0_r0_LSR_r0"},
315 {{hi, r7, r7, ROR, r2}, true, hi, "hi r7 r7 ROR r2", "hi_r7_r7_ROR_r2"},
316 {{vc, r0, r0, ROR, r7}, true, vc, "vc r0 r0 ROR r7", "vc_r0_r0_ROR_r7"},
317 {{eq, r2, r2, ASR, r2}, true, eq, "eq r2 r2 ASR r2", "eq_r2_r2_ASR_r2"},
318 {{vc, r0, r0, LSR, r3}, true, vc, "vc r0 r0 LSR r3", "vc_r0_r0_LSR_r3"},
319 {{le, r7, r7, ASR, r2}, true, le, "le r7 r7 ASR r2", "le_r7_r7_ASR_r2"},
320 {{ls, r4, r4, ASR, r6}, true, ls, "ls r4 r4 ASR r6", "ls_r4_r4_ASR_r6"},
321 {{pl, r1, r1, ROR, r5}, true, pl, "pl r1 r1 ROR r5", "pl_r1_r1_ROR_r5"},
322 {{le, r4, r4, ASR, r2}, true, le, "le r4 r4 ASR r2", "le_r4_r4_ASR_r2"},
323 {{mi, r7, r7, LSL, r6}, true, mi, "mi r7 r7 LSL r6", "mi_r7_r7_LSL_r6"},
324 {{cc, r0, r0, ROR, r6}, true, cc, "cc r0 r0 ROR r6", "cc_r0_r0_ROR_r6"},
325 {{le, r6, r6, LSL, r7}, true, le, "le r6 r6 LSL r7", "le_r6_r6_LSL_r7"},
326 {{hi, r0, r0, ASR, r0}, true, hi, "hi r0 r0 ASR r0", "hi_r0_r0_ASR_r0"},
327 {{cs, r7, r7, ASR, r5}, true, cs, "cs r7 r7 ASR r5", "cs_r7_r7_ASR_r5"},
328 {{eq, r2, r2, ASR, r7}, true, eq, "eq r2 r2 ASR r7", "eq_r2_r2_ASR_r7"},
329 {{eq, r5, r5, LSL, r0}, true, eq, "eq r5 r5 LSL r0", "eq_r5_r5_LSL_r0"},
330 {{hi, r5, r5, ASR, r6}, true, hi, "hi r5 r5 ASR r6", "hi_r5_r5_ASR_r6"},
331 {{ne, r3, r3, ASR, r7}, true, ne, "ne r3 r3 ASR r7", "ne_r3_r3_ASR_r7"},
332 {{vs, r6, r6, ROR, r7}, true, vs, "vs r6 r6 ROR r7", "vs_r6_r6_ROR_r7"},
333 {{le, r0, r0, LSL, r1}, true, le, "le r0 r0 LSL r1", "le_r0_r0_LSL_r1"},
334 {{le, r7, r7, ROR, r1}, true, le, "le r7 r7 ROR r1", "le_r7_r7_ROR_r1"},
335 {{ne, r6, r6, LSL, r0}, true, ne, "ne r6 r6 LSL r0", "ne_r6_r6_LSL_r0"},
336 {{hi, r2, r2, LSL, r7}, true, hi, "hi r2 r2 LSL r7", "hi_r2_r2_LSL_r7"},
337 {{lt, r0, r0, ASR, r0}, true, lt, "lt r0 r0 ASR r0", "lt_r0_r0_ASR_r0"},
338 {{cc, r2, r2, ROR, r6}, true, cc, "cc r2 r2 ROR r6", "cc_r2_r2_ROR_r6"},
339 {{pl, r5, r5, LSR, r2}, true, pl, "pl r5 r5 LSR r2", "pl_r5_r5_LSR_r2"},
340 {{lt, r0, r0, ROR, r4}, true, lt, "lt r0 r0 ROR r4", "lt_r0_r0_ROR_r4"},
341 {{ls, r6, r6, ASR, r1}, true, ls, "ls r6 r6 ASR r1", "ls_r6_r6_ASR_r1"},
342 {{ne, r3, r3, LSR, r7}, true, ne, "ne r3 r3 LSR r7", "ne_r3_r3_LSR_r7"},
343 {{vs, r0, r0, ROR, r4}, true, vs, "vs r0 r0 ROR r4", "vs_r0_r0_ROR_r4"},
344 {{ge, r5, r5, ASR, r7}, true, ge, "ge r5 r5 ASR r7", "ge_r5_r5_ASR_r7"},
345 {{pl, r5, r5, ROR, r2}, true, pl, "pl r5 r5 ROR r2", "pl_r5_r5_ROR_r2"},
346 {{le, r1, r1, ROR, r5}, true, le, "le r1 r1 ROR r5", "le_r1_r1_ROR_r5"},
347 {{ls, r4, r4, LSR, r1}, true, ls, "ls r4 r4 LSR r1", "ls_r4_r4_LSR_r1"},
348 {{vc, r0, r0, LSL, r3}, true, vc, "vc r0 r0 LSL r3", "vc_r0_r0_LSL_r3"},
349 {{vc, r0, r0, ASR, r3}, true, vc, "vc r0 r0 ASR r3", "vc_r0_r0_ASR_r3"},
350 {{pl, r7, r7, ASR, r1}, true, pl, "pl r7 r7 ASR r1", "pl_r7_r7_ASR_r1"},
351 {{cc, r0, r0, LSL, r1}, true, cc, "cc r0 r0 LSL r1", "cc_r0_r0_LSL_r1"},
352 {{hi, r1, r1, LSL, r0}, true, hi, "hi r1 r1 LSL r0", "hi_r1_r1_LSL_r0"},
353 {{gt, r6, r6, LSL, r2}, true, gt, "gt r6 r6 LSL r2", "gt_r6_r6_LSL_r2"},
354 {{vc, r2, r2, LSR, r6}, true, vc, "vc r2 r2 LSR r6", "vc_r2_r2_LSR_r6"},
355 {{vc, r5, r5, LSL, r5}, true, vc, "vc r5 r5 LSL r5", "vc_r5_r5_LSL_r5"},
356 {{vc, r4, r4, LSR, r1}, true, vc, "vc r4 r4 LSR r1", "vc_r4_r4_LSR_r1"},
357 {{lt, r4, r4, LSL, r6}, true, lt, "lt r4 r4 LSL r6", "lt_r4_r4_LSL_r6"},
358 {{gt, r6, r6, ASR, r1}, true, gt, "gt r6 r6 ASR r1", "gt_r6_r6_ASR_r1"},
359 {{hi, r1, r1, ASR, r1}, true, hi, "hi r1 r1 ASR r1", "hi_r1_r1_ASR_r1"},
360 {{gt, r6, r6, ROR, r4}, true, gt, "gt r6 r6 ROR r4", "gt_r6_r6_ROR_r4"},
361 {{gt, r3, r3, LSL, r3}, true, gt, "gt r3 r3 LSL r3", "gt_r3_r3_LSL_r3"},
362 {{vs, r3, r3, ROR, r0}, true, vs, "vs r3 r3 ROR r0", "vs_r3_r3_ROR_r0"},
363 {{lt, r4, r4, ROR, r1}, true, lt, "lt r4 r4 ROR r1", "lt_r4_r4_ROR_r1"},
364 {{gt, r7, r7, LSL, r5}, true, gt, "gt r7 r7 LSL r5", "gt_r7_r7_LSL_r5"},
365 {{hi, r0, r0, ASR, r5}, true, hi, "hi r0 r0 ASR r5", "hi_r0_r0_ASR_r5"},
366 {{vc, r4, r4, ROR, r4}, true, vc, "vc r4 r4 ROR r4", "vc_r4_r4_ROR_r4"},
367 {{gt, r5, r5, ASR, r0}, true, gt, "gt r5 r5 ASR r0", "gt_r5_r5_ASR_r0"},
368 {{gt, r4, r4, LSR, r0}, true, gt, "gt r4 r4 LSR r0", "gt_r4_r4_LSR_r0"},
369 {{gt, r3, r3, ASR, r3}, true, gt, "gt r3 r3 ASR r3", "gt_r3_r3_ASR_r3"},
370 {{lt, r5, r5, ROR, r3}, true, lt, "lt r5 r5 ROR r3", "lt_r5_r5_ROR_r3"},
371 {{cc, r7, r7, LSL, r1}, true, cc, "cc r7 r7 LSL r1", "cc_r7_r7_LSL_r1"},
372 {{vc, r1, r1, LSR, r2}, true, vc, "vc r1 r1 LSR r2", "vc_r1_r1_LSR_r2"},
373 {{pl, r3, r3, ASR, r5}, true, pl, "pl r3 r3 ASR r5", "pl_r3_r3_ASR_r5"},
374 {{ls, r3, r3, LSL, r0}, true, ls, "ls r3 r3 LSL r0", "ls_r3_r3_LSL_r0"},
375 {{vs, r5, r5, ROR, r4}, true, vs, "vs r5 r5 ROR r4", "vs_r5_r5_ROR_r4"},
376 {{hi, r2, r2, LSL, r6}, true, hi, "hi r2 r2 LSL r6", "hi_r2_r2_LSL_r6"},
377 {{cc, r5, r5, ROR, r0}, true, cc, "cc r5 r5 ROR r0", "cc_r5_r5_ROR_r0"},
378 {{cs, r2, r2, ASR, r5}, true, cs, "cs r2 r2 ASR r5", "cs_r2_r2_ASR_r5"},
379 {{ge, r1, r1, ROR, r3}, true, ge, "ge r1 r1 ROR r3", "ge_r1_r1_ROR_r3"},
380 {{ne, r0, r0, ROR, r3}, true, ne, "ne r0 r0 ROR r3", "ne_r0_r0_ROR_r3"},
381 {{cs, r7, r7, ASR, r6}, true, cs, "cs r7 r7 ASR r6", "cs_r7_r7_ASR_r6"},
382 {{mi, r1, r1, LSR, r0}, true, mi, "mi r1 r1 LSR r0", "mi_r1_r1_LSR_r0"},
383 {{mi, r5, r5, LSL, r1}, true, mi, "mi r5 r5 LSL r1", "mi_r5_r5_LSL_r1"},
384 {{mi, r4, r4, LSR, r3}, true, mi, "mi r4 r4 LSR r3", "mi_r4_r4_LSR_r3"},
385 {{pl, r3, r3, ASR, r7}, true, pl, "pl r3 r3 ASR r7", "pl_r3_r3_ASR_r7"},
386 {{ls, r2, r2, ASR, r2}, true, ls, "ls r2 r2 ASR r2", "ls_r2_r2_ASR_r2"},
387 {{eq, r7, r7, LSL, r3}, true, eq, "eq r7 r7 LSL r3", "eq_r7_r7_LSL_r3"},
388 {{gt, r4, r4, LSL, r2}, true, gt, "gt r4 r4 LSL r2", "gt_r4_r4_LSL_r2"},
389 {{ne, r6, r6, LSL, r6}, true, ne, "ne r6 r6 LSL r6", "ne_r6_r6_LSL_r6"},
390 {{eq, r7, r7, LSL, r0}, true, eq, "eq r7 r7 LSL r0", "eq_r7_r7_LSL_r0"},
391 {{le, r7, r7, LSL, r7}, true, le, "le r7 r7 LSL r7", "le_r7_r7_LSL_r7"},
392 {{eq, r0, r0, ROR, r1}, true, eq, "eq r0 r0 ROR r1", "eq_r0_r0_ROR_r1"},
393 {{hi, r2, r2, LSR, r6}, true, hi, "hi r2 r2 LSR r6", "hi_r2_r2_LSR_r6"},
394 {{vs, r6, r6, LSL, r5}, true, vs, "vs r6 r6 LSL r5", "vs_r6_r6_LSL_r5"},
395 {{gt, r5, r5, ASR, r1}, true, gt, "gt r5 r5 ASR r1", "gt_r5_r5_ASR_r1"},
396 {{ne, r4, r4, ASR, r3}, true, ne, "ne r4 r4 ASR r3", "ne_r4_r4_ASR_r3"},
397 {{lt, r6, r6, LSL, r3}, true, lt, "lt r6 r6 LSL r3", "lt_r6_r6_LSL_r3"},
398 {{ls, r3, r3, ASR, r3}, true, ls, "ls r3 r3 ASR r3", "ls_r3_r3_ASR_r3"},
399 {{le, r4, r4, LSL, r1}, true, le, "le r4 r4 LSL r1", "le_r4_r4_LSL_r1"},
400 {{gt, r7, r7, LSL, r6}, true, gt, "gt r7 r7 LSL r6", "gt_r7_r7_LSL_r6"},
401 {{vc, r2, r2, ROR, r1}, true, vc, "vc r2 r2 ROR r1", "vc_r2_r2_ROR_r1"},
402 {{ne, r1, r1, ROR, r1}, true, ne, "ne r1 r1 ROR r1", "ne_r1_r1_ROR_r1"},
403 {{cc, r3, r3, ASR, r0}, true, cc, "cc r3 r3 ASR r0", "cc_r3_r3_ASR_r0"},
404 {{lt, r4, r4, LSR, r0}, true, lt, "lt r4 r4 LSR r0", "lt_r4_r4_LSR_r0"},
405 {{cc, r3, r3, LSR, r7}, true, cc, "cc r3 r3 LSR r7", "cc_r3_r3_LSR_r7"},
406 {{eq, r0, r0, LSR, r5}, true, eq, "eq r0 r0 LSR r5", "eq_r0_r0_LSR_r5"},
407 {{lt, r5, r5, ROR, r5}, true, lt, "lt r5 r5 ROR r5", "lt_r5_r5_ROR_r5"},
408 {{vc, r0, r0, LSL, r7}, true, vc, "vc r0 r0 LSL r7", "vc_r0_r0_LSL_r7"},
409 {{cs, r7, r7, LSR, r5}, true, cs, "cs r7 r7 LSR r5", "cs_r7_r7_LSR_r5"},
410 {{lt, r4, r4, ROR, r0}, true, lt, "lt r4 r4 ROR r0", "lt_r4_r4_ROR_r0"},
411 {{vc, r4, r4, ROR, r3}, true, vc, "vc r4 r4 ROR r3", "vc_r4_r4_ROR_r3"},
412 {{le, r6, r6, LSL, r6}, true, le, "le r6 r6 LSL r6", "le_r6_r6_LSL_r6"},
413 {{cc, r4, r4, LSR, r7}, true, cc, "cc r4 r4 LSR r7", "cc_r4_r4_LSR_r7"},
414 {{pl, r7, r7, ROR, r2}, true, pl, "pl r7 r7 ROR r2", "pl_r7_r7_ROR_r2"},
415 {{hi, r0, r0, LSL, r6}, true, hi, "hi r0 r0 LSL r6", "hi_r0_r0_LSL_r6"},
416 {{gt, r1, r1, LSR, r4}, true, gt, "gt r1 r1 LSR r4", "gt_r1_r1_LSR_r4"},
417 {{vs, r2, r2, LSR, r1}, true, vs, "vs r2 r2 LSR r1", "vs_r2_r2_LSR_r1"},
418 {{cc, r3, r3, ROR, r0}, true, cc, "cc r3 r3 ROR r0", "cc_r3_r3_ROR_r0"},
419 {{ge, r6, r6, LSR, r5}, true, ge, "ge r6 r6 LSR r5", "ge_r6_r6_LSR_r5"},
420 {{ne, r2, r2, ASR, r2}, true, ne, "ne r2 r2 ASR r2", "ne_r2_r2_ASR_r2"},
421 {{lt, r5, r5, LSR, r7}, true, lt, "lt r5 r5 LSR r7", "lt_r5_r5_LSR_r7"},
422 {{vs, r3, r3, LSL, r4}, true, vs, "vs r3 r3 LSL r4", "vs_r3_r3_LSL_r4"},
423 {{lt, r7, r7, LSR, r5}, true, lt, "lt r7 r7 LSR r5", "lt_r7_r7_LSR_r5"},
424 {{vc, r2, r2, LSL, r5}, true, vc, "vc r2 r2 LSL r5", "vc_r2_r2_LSL_r5"},
425 {{le, r6, r6, ASR, r7}, true, le, "le r6 r6 ASR r7", "le_r6_r6_ASR_r7"},
426 {{ne, r1, r1, LSL, r6}, true, ne, "ne r1 r1 LSL r6", "ne_r1_r1_LSL_r6"},
427 {{le, r6, r6, ASR, r1}, true, le, "le r6 r6 ASR r1", "le_r6_r6_ASR_r1"},
428 {{ls, r1, r1, ROR, r7}, true, ls, "ls r1 r1 ROR r7", "ls_r1_r1_ROR_r7"},
429 {{pl, r0, r0, LSL, r0}, true, pl, "pl r0 r0 LSL r0", "pl_r0_r0_LSL_r0"},
430 {{pl, r4, r4, ROR, r1}, true, pl, "pl r4 r4 ROR r1", "pl_r4_r4_ROR_r1"},
431 {{ne, r7, r7, ASR, r3}, true, ne, "ne r7 r7 ASR r3", "ne_r7_r7_ASR_r3"},
432 {{hi, r6, r6, LSR, r7}, true, hi, "hi r6 r6 LSR r7", "hi_r6_r6_LSR_r7"},
433 {{eq, r5, r5, LSL, r4}, true, eq, "eq r5 r5 LSL r4", "eq_r5_r5_LSL_r4"},
434 {{hi, r7, r7, LSR, r4}, true, hi, "hi r7 r7 LSR r4", "hi_r7_r7_LSR_r4"},
435 {{ls, r3, r3, ASR, r0}, true, ls, "ls r3 r3 ASR r0", "ls_r3_r3_ASR_r0"},
436 {{mi, r2, r2, ASR, r0}, true, mi, "mi r2 r2 ASR r0", "mi_r2_r2_ASR_r0"},
437 {{gt, r7, r7, ROR, r3}, true, gt, "gt r7 r7 ROR r3", "gt_r7_r7_ROR_r3"},
438 {{ge, r1, r1, ASR, r5}, true, ge, "ge r1 r1 ASR r5", "ge_r1_r1_ASR_r5"},
439 {{vc, r3, r3, LSR, r3}, true, vc, "vc r3 r3 LSR r3", "vc_r3_r3_LSR_r3"},
440 {{gt, r6, r6, LSR, r2}, true, gt, "gt r6 r6 LSR r2", "gt_r6_r6_LSR_r2"},
441 {{vc, r6, r6, LSL, r2}, true, vc, "vc r6 r6 LSL r2", "vc_r6_r6_LSL_r2"},
442 {{le, r7, r7, ASR, r1}, true, le, "le r7 r7 ASR r1", "le_r7_r7_ASR_r1"},
443 {{pl, r1, r1, LSR, r7}, true, pl, "pl r1 r1 LSR r7", "pl_r1_r1_LSR_r7"},
444 {{mi, r1, r1, ROR, r5}, true, mi, "mi r1 r1 ROR r5", "mi_r1_r1_ROR_r5"},
445 {{eq, r6, r6, ASR, r1}, true, eq, "eq r6 r6 ASR r1", "eq_r6_r6_ASR_r1"},
446 {{vs, r4, r4, LSR, r6}, true, vs, "vs r4 r4 LSR r6", "vs_r4_r4_LSR_r6"},
447 {{ls, r0, r0, ASR, r0}, true, ls, "ls r0 r0 ASR r0", "ls_r0_r0_ASR_r0"},
448 {{cc, r0, r0, LSL, r2}, true, cc, "cc r0 r0 LSL r2", "cc_r0_r0_LSL_r2"},
449 {{cc, r3, r3, ROR, r7}, true, cc, "cc r3 r3 ROR r7", "cc_r3_r3_ROR_r7"},
450 {{ge, r2, r2, ROR, r7}, true, ge, "ge r2 r2 ROR r7", "ge_r2_r2_ROR_r7"},
451 {{mi, r7, r7, LSL, r4}, true, mi, "mi r7 r7 LSL r4", "mi_r7_r7_LSL_r4"},
452 {{le, r4, r4, LSR, r5}, true, le, "le r4 r4 LSR r5", "le_r4_r4_LSR_r5"},
453 {{cc, r5, r5, ASR, r3}, true, cc, "cc r5 r5 ASR r3", "cc_r5_r5_ASR_r3"},
454 {{ls, r0, r0, ASR, r6}, true, ls, "ls r0 r0 ASR r6", "ls_r0_r0_ASR_r6"},
455 {{ge, r4, r4, LSL, r1}, true, ge, "ge r4 r4 LSL r1", "ge_r4_r4_LSL_r1"},
456 {{pl, r1, r1, LSL, r5}, true, pl, "pl r1 r1 LSL r5", "pl_r1_r1_LSL_r5"},
457 {{ne, r2, r2, ASR, r5}, true, ne, "ne r2 r2 ASR r5", "ne_r2_r2_ASR_r5"},
458 {{eq, r4, r4, ROR, r3}, true, eq, "eq r4 r4 ROR r3", "eq_r4_r4_ROR_r3"},
459 {{mi, r2, r2, LSL, r3}, true, mi, "mi r2 r2 LSL r3", "mi_r2_r2_LSL_r3"},
460 {{lt, r2, r2, ROR, r4}, true, lt, "lt r2 r2 ROR r4", "lt_r2_r2_ROR_r4"},
461 {{ge, r7, r7, LSR, r2}, true, ge, "ge r7 r7 LSR r2", "ge_r7_r7_LSR_r2"},
462 {{gt, r4, r4, ASR, r5}, true, gt, "gt r4 r4 ASR r5", "gt_r4_r4_ASR_r5"},
463 {{le, r2, r2, LSL, r2}, true, le, "le r2 r2 LSL r2", "le_r2_r2_LSL_r2"},
464 {{eq, r3, r3, LSR, r5}, true, eq, "eq r3 r3 LSR r5", "eq_r3_r3_LSR_r5"},
465 {{ge, r7, r7, ASR, r1}, true, ge, "ge r7 r7 ASR r1", "ge_r7_r7_ASR_r1"},
466 {{vc, r1, r1, LSL, r2}, true, vc, "vc r1 r1 LSL r2", "vc_r1_r1_LSL_r2"},
467 {{cs, r2, r2, ASR, r3}, true, cs, "cs r2 r2 ASR r3", "cs_r2_r2_ASR_r3"},
468 {{ge, r6, r6, LSL, r7}, true, ge, "ge r6 r6 LSL r7", "ge_r6_r6_LSL_r7"},
469 {{hi, r5, r5, LSL, r0}, true, hi, "hi r5 r5 LSL r0", "hi_r5_r5_LSL_r0"},
470 {{eq, r4, r4, LSR, r1}, true, eq, "eq r4 r4 LSR r1", "eq_r4_r4_LSR_r1"},
471 {{gt, r5, r5, LSL, r1}, true, gt, "gt r5 r5 LSL r1", "gt_r5_r5_LSL_r1"},
472 {{vs, r5, r5, LSL, r7}, true, vs, "vs r5 r5 LSL r7", "vs_r5_r5_LSL_r7"},
473 {{ge, r7, r7, LSL, r2}, true, ge, "ge r7 r7 LSL r2", "ge_r7_r7_LSL_r2"},
474 {{hi, r0, r0, ASR, r7}, true, hi, "hi r0 r0 ASR r7", "hi_r0_r0_ASR_r7"},
475 {{cs, r3, r3, LSL, r3}, true, cs, "cs r3 r3 LSL r3", "cs_r3_r3_LSL_r3"},
476 {{lt, r2, r2, LSL, r6}, true, lt, "lt r2 r2 LSL r6", "lt_r2_r2_LSL_r6"},
477 {{pl, r1, r1, ASR, r4}, true, pl, "pl r1 r1 ASR r4", "pl_r1_r1_ASR_r4"},
478 {{vc, r1, r1, ASR, r5}, true, vc, "vc r1 r1 ASR r5", "vc_r1_r1_ASR_r5"},
479 {{lt, r4, r4, ROR, r5}, true, lt, "lt r4 r4 ROR r5", "lt_r4_r4_ROR_r5"},
480 {{cc, r0, r0, ASR, r3}, true, cc, "cc r0 r0 ASR r3", "cc_r0_r0_ASR_r3"},
481 {{vs, r4, r4, LSL, r5}, true, vs, "vs r4 r4 LSL r5", "vs_r4_r4_LSL_r5"},
482 {{vs, r0, r0, LSL, r3}, true, vs, "vs r0 r0 LSL r3", "vs_r0_r0_LSL_r3"},
483 {{hi, r1, r1, ROR, r7}, true, hi, "hi r1 r1 ROR r7", "hi_r1_r1_ROR_r7"},
484 {{hi, r1, r1, LSL, r5}, true, hi, "hi r1 r1 LSL r5", "hi_r1_r1_LSL_r5"},
485 {{le, r0, r0, LSR, r7}, true, le, "le r0 r0 LSR r7", "le_r0_r0_LSR_r7"},
486 {{ls, r2, r2, ASR, r3}, true, ls, "ls r2 r2 ASR r3", "ls_r2_r2_ASR_r3"},
487 {{mi, r3, r3, LSL, r3}, true, mi, "mi r3 r3 LSL r3", "mi_r3_r3_LSL_r3"},
488 {{ne, r6, r6, ASR, r1}, true, ne, "ne r6 r6 ASR r1", "ne_r6_r6_ASR_r1"},
489 {{le, r6, r6, LSL, r5}, true, le, "le r6 r6 LSL r5", "le_r6_r6_LSL_r5"},
490 {{gt, r5, r5, LSR, r6}, true, gt, "gt r5 r5 LSR r6", "gt_r5_r5_LSR_r6"},
491 {{vs, r5, r5, ASR, r1}, true, vs, "vs r5 r5 ASR r1", "vs_r5_r5_ASR_r1"},
492 {{ne, r3, r3, LSL, r1}, true, ne, "ne r3 r3 LSL r1", "ne_r3_r3_LSL_r1"},
493 {{lt, r2, r2, LSL, r4}, true, lt, "lt r2 r2 LSL r4", "lt_r2_r2_LSL_r4"},
494 {{eq, r1, r1, ROR, r1}, true, eq, "eq r1 r1 ROR r1", "eq_r1_r1_ROR_r1"},
495 {{cs, r1, r1, LSL, r6}, true, cs, "cs r1 r1 LSL r6", "cs_r1_r1_LSL_r6"},
496 {{hi, r7, r7, ASR, r2}, true, hi, "hi r7 r7 ASR r2", "hi_r7_r7_ASR_r2"},
497 {{mi, r4, r4, LSL, r3}, true, mi, "mi r4 r4 LSL r3", "mi_r4_r4_LSL_r3"},
498 {{eq, r3, r3, LSL, r4}, true, eq, "eq r3 r3 LSL r4", "eq_r3_r3_LSL_r4"},
499 {{ne, r6, r6, LSL, r3}, true, ne, "ne r6 r6 LSL r3", "ne_r6_r6_LSL_r3"},
500 {{vs, r4, r4, LSR, r0}, true, vs, "vs r4 r4 LSR r0", "vs_r4_r4_LSR_r0"},
501 {{eq, r6, r6, ASR, r4}, true, eq, "eq r6 r6 ASR r4", "eq_r6_r6_ASR_r4"},
502 {{pl, r0, r0, ASR, r1}, true, pl, "pl r0 r0 ASR r1", "pl_r0_r0_ASR_r1"},
503 {{cs, r7, r7, LSR, r3}, true, cs, "cs r7 r7 LSR r3", "cs_r7_r7_LSR_r3"},
504 {{le, r2, r2, LSR, r2}, true, le, "le r2 r2 LSR r2", "le_r2_r2_LSR_r2"},
505 {{ge, r3, r3, LSR, r5}, true, ge, "ge r3 r3 LSR r5", "ge_r3_r3_LSR_r5"},
506 {{ls, r0, r0, ASR, r4}, true, ls, "ls r0 r0 ASR r4", "ls_r0_r0_ASR_r4"},
507 {{lt, r6, r6, LSR, r1}, true, lt, "lt r6 r6 LSR r1", "lt_r6_r6_LSR_r1"},
508 {{vc, r0, r0, ASR, r5}, true, vc, "vc r0 r0 ASR r5", "vc_r0_r0_ASR_r5"},
509 {{lt, r2, r2, LSR, r0}, true, lt, "lt r2 r2 LSR r0", "lt_r2_r2_LSR_r0"},
510 {{pl, r5, r5, ASR, r0}, true, pl, "pl r5 r5 ASR r0", "pl_r5_r5_ASR_r0"},
511 {{pl, r1, r1, ROR, r6}, true, pl, "pl r1 r1 ROR r6", "pl_r1_r1_ROR_r6"},
512 {{hi, r4, r4, ASR, r7}, true, hi, "hi r4 r4 ASR r7", "hi_r4_r4_ASR_r7"},
513 {{le, r6, r6, ROR, r3}, true, le, "le r6 r6 ROR r3", "le_r6_r6_ROR_r3"},
514 {{cc, r1, r1, LSL, r3}, true, cc, "cc r1 r1 LSL r3", "cc_r1_r1_LSL_r3"},
515 {{vc, r1, r1, ROR, r1}, true, vc, "vc r1 r1 ROR r1", "vc_r1_r1_ROR_r1"},
516 {{vc, r0, r0, ROR, r4}, true, vc, "vc r0 r0 ROR r4", "vc_r0_r0_ROR_r4"},
517 {{ls, r3, r3, LSL, r5}, true, ls, "ls r3 r3 LSL r5", "ls_r3_r3_LSL_r5"},
518 {{ls, r5, r5, ROR, r2}, true, ls, "ls r5 r5 ROR r2", "ls_r5_r5_ROR_r2"},
519 {{lt, r0, r0, ROR, r5}, true, lt, "lt r0 r0 ROR r5", "lt_r0_r0_ROR_r5"},
520 {{le, r7, r7, ROR, r4}, true, le, "le r7 r7 ROR r4", "le_r7_r7_ROR_r4"},
521 {{eq, r1, r1, ROR, r0}, true, eq, "eq r1 r1 ROR r0", "eq_r1_r1_ROR_r0"},
522 {{gt, r3, r3, LSL, r7}, true, gt, "gt r3 r3 LSL r7", "gt_r3_r3_LSL_r7"},
523 {{vc, r0, r0, ASR, r6}, true, vc, "vc r0 r0 ASR r6", "vc_r0_r0_ASR_r6"},
524 {{ge, r7, r7, LSL, r5}, true, ge, "ge r7 r7 LSL r5", "ge_r7_r7_LSL_r5"},
525 {{pl, r5, r5, LSL, r4}, true, pl, "pl r5 r5 LSL r4", "pl_r5_r5_LSL_r4"},
526 {{pl, r0, r0, ROR, r6}, true, pl, "pl r0 r0 ROR r6", "pl_r0_r0_ROR_r6"},
527 {{hi, r1, r1, ROR, r1}, true, hi, "hi r1 r1 ROR r1", "hi_r1_r1_ROR_r1"},
528 {{lt, r1, r1, ASR, r2}, true, lt, "lt r1 r1 ASR r2", "lt_r1_r1_ASR_r2"},
529 {{cs, r4, r4, LSR, r6}, true, cs, "cs r4 r4 LSR r6", "cs_r4_r4_LSR_r6"},
530 {{hi, r1, r1, ASR, r0}, true, hi, "hi r1 r1 ASR r0", "hi_r1_r1_ASR_r0"},
531 {{le, r7, r7, ROR, r5}, true, le, "le r7 r7 ROR r5", "le_r7_r7_ROR_r5"},
532 {{cs, r6, r6, LSL, r0}, true, cs, "cs r6 r6 LSL r0", "cs_r6_r6_LSL_r0"},
533 {{hi, r3, r3, ROR, r3}, true, hi, "hi r3 r3 ROR r3", "hi_r3_r3_ROR_r3"},
534 {{vs, r6, r6, LSR, r0}, true, vs, "vs r6 r6 LSR r0", "vs_r6_r6_LSR_r0"},
535 {{ls, r5, r5, LSR, r6}, true, ls, "ls r5 r5 LSR r6", "ls_r5_r5_LSR_r6"},
536 {{vs, r1, r1, ROR, r0}, true, vs, "vs r1 r1 ROR r0", "vs_r1_r1_ROR_r0"},
537 {{ge, r3, r3, ASR, r4}, true, ge, "ge r3 r3 ASR r4", "ge_r3_r3_ASR_r4"},
538 {{ne, r5, r5, ROR, r7}, true, ne, "ne r5 r5 ROR r7", "ne_r5_r5_ROR_r7"},
539 {{ls, r5, r5, LSL, r2}, true, ls, "ls r5 r5 LSL r2", "ls_r5_r5_LSL_r2"},
540 {{mi, r4, r4, ROR, r1}, true, mi, "mi r4 r4 ROR r1", "mi_r4_r4_ROR_r1"},
541 {{cs, r6, r6, LSR, r6}, true, cs, "cs r6 r6 LSR r6", "cs_r6_r6_LSR_r6"},
542 {{cs, r1, r1, ROR, r1}, true, cs, "cs r1 r1 ROR r1", "cs_r1_r1_ROR_r1"},
543 {{ls, r5, r5, ROR, r3}, true, ls, "ls r5 r5 ROR r3", "ls_r5_r5_ROR_r3"},
544 {{vs, r7, r7, LSR, r3}, true, vs, "vs r7 r7 LSR r3", "vs_r7_r7_LSR_r3"},
545 {{le, r0, r0, ROR, r2}, true, le, "le r0 r0 ROR r2", "le_r0_r0_ROR_r2"},
546 {{vc, r5, r5, LSR, r5}, true, vc, "vc r5 r5 LSR r5", "vc_r5_r5_LSR_r5"},
547 {{vc, r4, r4, LSL, r3}, true, vc, "vc r4 r4 LSL r3", "vc_r4_r4_LSL_r3"},
548 {{vc, r2, r2, LSR, r4}, true, vc, "vc r2 r2 LSR r4", "vc_r2_r2_LSR_r4"},
549 {{ge, r5, r5, ROR, r2}, true, ge, "ge r5 r5 ROR r2", "ge_r5_r5_ROR_r2"},
550 {{cc, r6, r6, ASR, r7}, true, cc, "cc r6 r6 ASR r7", "cc_r6_r6_ASR_r7"},
551 {{hi, r6, r6, ASR, r5}, true, hi, "hi r6 r6 ASR r5", "hi_r6_r6_ASR_r5"},
552 {{vs, r0, r0, LSR, r1}, true, vs, "vs r0 r0 LSR r1", "vs_r0_r0_LSR_r1"},
553 {{ls, r4, r4, LSL, r0}, true, ls, "ls r4 r4 LSL r0", "ls_r4_r4_LSL_r0"},
554 {{mi, r6, r6, ASR, r4}, true, mi, "mi r6 r6 ASR r4", "mi_r6_r6_ASR_r4"},
555 {{le, r6, r6, LSL, r4}, true, le, "le r6 r6 LSL r4", "le_r6_r6_LSL_r4"},
556 {{cs, r6, r6, ASR, r6}, true, cs, "cs r6 r6 ASR r6", "cs_r6_r6_ASR_r6"},
557 {{mi, r6, r6, ROR, r7}, true, mi, "mi r6 r6 ROR r7", "mi_r6_r6_ROR_r7"},
558 {{hi, r5, r5, LSL, r4}, true, hi, "hi r5 r5 LSL r4", "hi_r5_r5_LSL_r4"},
559 {{hi, r6, r6, LSL, r7}, true, hi, "hi r6 r6 LSL r7", "hi_r6_r6_LSL_r7"},
560 {{cc, r6, r6, ROR, r5}, true, cc, "cc r6 r6 ROR r5", "cc_r6_r6_ROR_r5"},
561 {{ge, r0, r0, ASR, r2}, true, ge, "ge r0 r0 ASR r2", "ge_r0_r0_ASR_r2"},
562 {{eq, r1, r1, LSR, r6}, true, eq, "eq r1 r1 LSR r6", "eq_r1_r1_LSR_r6"},
563 {{le, r1, r1, LSR, r7}, true, le, "le r1 r1 LSR r7", "le_r1_r1_LSR_r7"},
564 {{ls, r4, r4, LSR, r5}, true, ls, "ls r4 r4 LSR r5", "ls_r4_r4_LSR_r5"},
565 {{hi, r6, r6, LSR, r4}, true, hi, "hi r6 r6 LSR r4", "hi_r6_r6_LSR_r4"},
566 {{cc, r1, r1, ROR, r6}, true, cc, "cc r1 r1 ROR r6", "cc_r1_r1_ROR_r6"},
567 {{mi, r3, r3, ROR, r4}, true, mi, "mi r3 r3 ROR r4", "mi_r3_r3_ROR_r4"},
568 {{vc, r2, r2, LSL, r4}, true, vc, "vc r2 r2 LSL r4", "vc_r2_r2_LSL_r4"},
569 {{hi, r3, r3, LSL, r0}, true, hi, "hi r3 r3 LSL r0", "hi_r3_r3_LSL_r0"},
570 {{vc, r6, r6, ASR, r1}, true, vc, "vc r6 r6 ASR r1", "vc_r6_r6_ASR_r1"},
571 {{pl, r6, r6, LSR, r1}, true, pl, "pl r6 r6 LSR r1", "pl_r6_r6_LSR_r1"},
572 {{hi, r1, r1, ASR, r4}, true, hi, "hi r1 r1 ASR r4", "hi_r1_r1_ASR_r4"},
573 {{ne, r3, r3, ASR, r0}, true, ne, "ne r3 r3 ASR r0", "ne_r3_r3_ASR_r0"},
574 {{gt, r4, r4, ROR, r2}, true, gt, "gt r4 r4 ROR r2", "gt_r4_r4_ROR_r2"},
575 {{ls, r7, r7, ASR, r2}, true, ls, "ls r7 r7 ASR r2", "ls_r7_r7_ASR_r2"},
576 {{lt, r2, r2, LSL, r3}, true, lt, "lt r2 r2 LSL r3", "lt_r2_r2_LSL_r3"},
577 {{pl, r4, r4, LSL, r7}, true, pl, "pl r4 r4 LSL r7", "pl_r4_r4_LSL_r7"},
578 {{ge, r0, r0, ASR, r0}, true, ge, "ge r0 r0 ASR r0", "ge_r0_r0_ASR_r0"},
579 {{gt, r4, r4, ASR, r4}, true, gt, "gt r4 r4 ASR r4", "gt_r4_r4_ASR_r4"},
580 {{eq, r7, r7, ROR, r3}, true, eq, "eq r7 r7 ROR r3", "eq_r7_r7_ROR_r3"},
581 {{ne, r2, r2, LSL, r0}, true, ne, "ne r2 r2 LSL r0", "ne_r2_r2_LSL_r0"},
582 {{ge, r1, r1, LSR, r3}, true, ge, "ge r1 r1 LSR r3", "ge_r1_r1_LSR_r3"},
583 {{ge, r4, r4, ROR, r5}, true, ge, "ge r4 r4 ROR r5", "ge_r4_r4_ROR_r5"},
584 {{ne, r6, r6, LSR, r6}, true, ne, "ne r6 r6 LSR r6", "ne_r6_r6_LSR_r6"},
585 {{le, r1, r1, ASR, r0}, true, le, "le r1 r1 ASR r0", "le_r1_r1_ASR_r0"},
586 {{ge, r6, r6, LSR, r6}, true, ge, "ge r6 r6 LSR r6", "ge_r6_r6_LSR_r6"},
587 {{pl, r5, r5, ROR, r6}, true, pl, "pl r5 r5 ROR r6", "pl_r5_r5_ROR_r6"},
588 {{lt, r2, r2, LSL, r2}, true, lt, "lt r2 r2 LSL r2", "lt_r2_r2_LSL_r2"},
589 {{hi, r7, r7, LSL, r0}, true, hi, "hi r7 r7 LSL r0", "hi_r7_r7_LSL_r0"},
590 {{lt, r6, r6, ASR, r4}, true, lt, "lt r6 r6 ASR r4", "lt_r6_r6_ASR_r4"},
591 {{ge, r3, r3, LSR, r6}, true, ge, "ge r3 r3 LSR r6", "ge_r3_r3_LSR_r6"},
592 {{eq, r4, r4, ASR, r0}, true, eq, "eq r4 r4 ASR r0", "eq_r4_r4_ASR_r0"},
593 {{ne, r7, r7, ROR, r0}, true, ne, "ne r7 r7 ROR r0", "ne_r7_r7_ROR_r0"},
594 {{pl, r5, r5, LSR, r1}, true, pl, "pl r5 r5 LSR r1", "pl_r5_r5_LSR_r1"},
595 {{pl, r3, r3, ROR, r2}, true, pl, "pl r3 r3 ROR r2", "pl_r3_r3_ROR_r2"},
596 {{vc, r1, r1, ASR, r0}, true, vc, "vc r1 r1 ASR r0", "vc_r1_r1_ASR_r0"},
597 {{eq, r0, r0, ASR, r6}, true, eq, "eq r0 r0 ASR r6", "eq_r0_r0_ASR_r6"},
598 {{le, r3, r3, ROR, r4}, true, le, "le r3 r3 ROR r4", "le_r3_r3_ROR_r4"},
599 {{lt, r7, r7, LSR, r2}, true, lt, "lt r7 r7 LSR r2", "lt_r7_r7_LSR_r2"},
600 {{ls, r5, r5, ASR, r1}, true, ls, "ls r5 r5 ASR r1", "ls_r5_r5_ASR_r1"},
601 {{cc, r6, r6, ROR, r6}, true, cc, "cc r6 r6 ROR r6", "cc_r6_r6_ROR_r6"},
602 {{vs, r1, r1, ROR, r2}, true, vs, "vs r1 r1 ROR r2", "vs_r1_r1_ROR_r2"},
603 {{mi, r5, r5, LSL, r6}, true, mi, "mi r5 r5 LSL r6", "mi_r5_r5_LSL_r6"},
604 {{le, r1, r1, ROR, r1}, true, le, "le r1 r1 ROR r1", "le_r1_r1_ROR_r1"},
605 {{vs, r2, r2, LSL, r4}, true, vs, "vs r2 r2 LSL r4", "vs_r2_r2_LSL_r4"},
606 {{mi, r7, r7, LSR, r1}, true, mi, "mi r7 r7 LSR r1", "mi_r7_r7_LSR_r1"},
607 {{vc, r5, r5, ASR, r3}, true, vc, "vc r5 r5 ASR r3", "vc_r5_r5_ASR_r3"},
608 {{pl, r6, r6, ASR, r6}, true, pl, "pl r6 r6 ASR r6", "pl_r6_r6_ASR_r6"},
609 {{pl, r6, r6, ROR, r5}, true, pl, "pl r6 r6 ROR r5", "pl_r6_r6_ROR_r5"},
610 {{cs, r6, r6, LSL, r4}, true, cs, "cs r6 r6 LSL r4", "cs_r6_r6_LSL_r4"},
611 {{mi, r5, r5, LSR, r3}, true, mi, "mi r5 r5 LSR r3", "mi_r5_r5_LSR_r3"},
612 {{lt, r5, r5, ROR, r0}, true, lt, "lt r5 r5 ROR r0", "lt_r5_r5_ROR_r0"},
613 {{gt, r0, r0, LSR, r1}, true, gt, "gt r0 r0 LSR r1", "gt_r0_r0_LSR_r1"},
614 {{cs, r7, r7, LSL, r6}, true, cs, "cs r7 r7 LSL r6", "cs_r7_r7_LSL_r6"},
615 {{cs, r5, r5, LSL, r1}, true, cs, "cs r5 r5 LSL r1", "cs_r5_r5_LSL_r1"},
616 {{ge, r5, r5, ROR, r4}, true, ge, "ge r5 r5 ROR r4", "ge_r5_r5_ROR_r4"},
617 {{le, r2, r2, LSR, r5}, true, le, "le r2 r2 LSR r5", "le_r2_r2_LSR_r5"},
618 {{lt, r1, r1, LSL, r1}, true, lt, "lt r1 r1 LSL r1", "lt_r1_r1_LSL_r1"},
619 {{hi, r7, r7, LSR, r6}, true, hi, "hi r7 r7 LSR r6", "hi_r7_r7_LSR_r6"},
620 {{cs, r5, r5, LSR, r3}, true, cs, "cs r5 r5 LSR r3", "cs_r5_r5_LSR_r3"},
621 {{cc, r2, r2, ROR, r7}, true, cc, "cc r2 r2 ROR r7", "cc_r2_r2_ROR_r7"},
622 {{gt, r1, r1, ASR, r3}, true, gt, "gt r1 r1 ASR r3", "gt_r1_r1_ASR_r3"},
623 {{le, r2, r2, ASR, r2}, true, le, "le r2 r2 ASR r2", "le_r2_r2_ASR_r2"},
624 {{pl, r0, r0, ASR, r2}, true, pl, "pl r0 r0 ASR r2", "pl_r0_r0_ASR_r2"},
625 {{ls, r2, r2, LSR, r0}, true, ls, "ls r2 r2 LSR r0", "ls_r2_r2_LSR_r0"},
626 {{mi, r6, r6, LSR, r2}, true, mi, "mi r6 r6 LSR r2", "mi_r6_r6_LSR_r2"},
627 {{vs, r0, r0, ASR, r5}, true, vs, "vs r0 r0 ASR r5", "vs_r0_r0_ASR_r5"},
628 {{lt, r4, r4, LSL, r2}, true, lt, "lt r4 r4 LSL r2", "lt_r4_r4_LSL_r2"},
629 {{le, r3, r3, LSR, r7}, true, le, "le r3 r3 LSR r7", "le_r3_r3_LSR_r7"},
630 {{vs, r1, r1, ROR, r1}, true, vs, "vs r1 r1 ROR r1", "vs_r1_r1_ROR_r1"},
631 {{gt, r5, r5, ASR, r3}, true, gt, "gt r5 r5 ASR r3", "gt_r5_r5_ASR_r3"},
632 {{le, r2, r2, ROR, r5}, true, le, "le r2 r2 ROR r5", "le_r2_r2_ROR_r5"},
633 {{le, r2, r2, ASR, r4}, true, le, "le r2 r2 ASR r4", "le_r2_r2_ASR_r4"},
634 {{ls, r1, r1, LSL, r6}, true, ls, "ls r1 r1 LSL r6", "ls_r1_r1_LSL_r6"},
635 {{cc, r6, r6, LSR, r3}, true, cc, "cc r6 r6 LSR r3", "cc_r6_r6_LSR_r3"},
636 {{ne, r5, r5, LSL, r0}, true, ne, "ne r5 r5 LSL r0", "ne_r5_r5_LSL_r0"},
637 {{mi, r1, r1, LSL, r2}, true, mi, "mi r1 r1 LSL r2", "mi_r1_r1_LSL_r2"},
638 {{ne, r2, r2, ASR, r3}, true, ne, "ne r2 r2 ASR r3", "ne_r2_r2_ASR_r3"},
639 {{hi, r1, r1, ROR, r3}, true, hi, "hi r1 r1 ROR r3", "hi_r1_r1_ROR_r3"},
640 {{lt, r7, r7, ROR, r0}, true, lt, "lt r7 r7 ROR r0", "lt_r7_r7_ROR_r0"},
641 {{pl, r4, r4, LSL, r6}, true, pl, "pl r4 r4 LSL r6", "pl_r4_r4_LSL_r6"},
642 {{mi, r0, r0, ASR, r4}, true, mi, "mi r0 r0 ASR r4", "mi_r0_r0_ASR_r4"},
643 {{cc, r1, r1, ROR, r1}, true, cc, "cc r1 r1 ROR r1", "cc_r1_r1_ROR_r1"},
644 {{vc, r1, r1, LSL, r3}, true, vc, "vc r1 r1 LSL r3", "vc_r1_r1_LSL_r3"},
645 {{pl, r1, r1, ROR, r2}, true, pl, "pl r1 r1 ROR r2", "pl_r1_r1_ROR_r2"},
646 {{mi, r3, r3, ASR, r1}, true, mi, "mi r3 r3 ASR r1", "mi_r3_r3_ASR_r1"},
647 {{vs, r5, r5, ROR, r2}, true, vs, "vs r5 r5 ROR r2", "vs_r5_r5_ROR_r2"},
648 {{mi, r0, r0, ROR, r2}, true, mi, "mi r0 r0 ROR r2", "mi_r0_r0_ROR_r2"},
649 {{ne, r7, r7, LSR, r1}, true, ne, "ne r7 r7 LSR r1", "ne_r7_r7_LSR_r1"},
650 {{ne, r0, r0, LSL, r2}, true, ne, "ne r0 r0 LSL r2", "ne_r0_r0_LSL_r2"},
651 {{gt, r5, r5, ROR, r4}, true, gt, "gt r5 r5 ROR r4", "gt_r5_r5_ROR_r4"},
652 {{ls, r4, r4, ROR, r2}, true, ls, "ls r4 r4 ROR r2", "ls_r4_r4_ROR_r2"},
653 {{gt, r5, r5, LSL, r0}, true, gt, "gt r5 r5 LSL r0", "gt_r5_r5_LSL_r0"},
654 {{pl, r0, r0, LSL, r7}, true, pl, "pl r0 r0 LSL r7", "pl_r0_r0_LSL_r7"},
655 {{vc, r3, r3, ROR, r2}, true, vc, "vc r3 r3 ROR r2", "vc_r3_r3_ROR_r2"},
656 {{vs, r4, r4, LSL, r0}, true, vs, "vs r4 r4 LSL r0", "vs_r4_r4_LSL_r0"},
657 {{vc, r6, r6, ROR, r0}, true, vc, "vc r6 r6 ROR r0", "vc_r6_r6_ROR_r0"},
658 {{cc, r7, r7, LSR, r4}, true, cc, "cc r7 r7 LSR r4", "cc_r7_r7_LSR_r4"},
659 {{cs, r0, r0, ASR, r7}, true, cs, "cs r0 r0 ASR r7", "cs_r0_r0_ASR_r7"},
660 {{lt, r3, r3, ASR, r5}, true, lt, "lt r3 r3 ASR r5", "lt_r3_r3_ASR_r5"},
661 {{cs, r6, r6, ROR, r4}, true, cs, "cs r6 r6 ROR r4", "cs_r6_r6_ROR_r4"},
662 {{vs, r7, r7, ASR, r2}, true, vs, "vs r7 r7 ASR r2", "vs_r7_r7_ASR_r2"},
663 {{ls, r4, r4, LSL, r2}, true, ls, "ls r4 r4 LSL r2", "ls_r4_r4_LSL_r2"},
664 {{cc, r6, r6, LSL, r4}, true, cc, "cc r6 r6 LSL r4", "cc_r6_r6_LSL_r4"},
665 {{ne, r7, r7, LSR, r3}, true, ne, "ne r7 r7 LSR r3", "ne_r7_r7_LSR_r3"},
666 {{lt, r1, r1, LSR, r0}, true, lt, "lt r1 r1 LSR r0", "lt_r1_r1_LSR_r0"},
667 {{ne, r6, r6, LSR, r1}, true, ne, "ne r6 r6 LSR r1", "ne_r6_r6_LSR_r1"},
668 {{mi, r4, r4, ROR, r4}, true, mi, "mi r4 r4 ROR r4", "mi_r4_r4_ROR_r4"},
669 {{eq, r4, r4, ASR, r1}, true, eq, "eq r4 r4 ASR r1", "eq_r4_r4_ASR_r1"},
670 {{vc, r0, r0, LSL, r4}, true, vc, "vc r0 r0 LSL r4", "vc_r0_r0_LSL_r4"},
671 {{ls, r3, r3, ROR, r6}, true, ls, "ls r3 r3 ROR r6", "ls_r3_r3_ROR_r6"},
672 {{pl, r3, r3, LSL, r1}, true, pl, "pl r3 r3 LSL r1", "pl_r3_r3_LSL_r1"},
673 {{mi, r4, r4, ASR, r6}, true, mi, "mi r4 r4 ASR r6", "mi_r4_r4_ASR_r6"},
674 {{ne, r5, r5, ROR, r1}, true, ne, "ne r5 r5 ROR r1", "ne_r5_r5_ROR_r1"},
675 {{le, r4, r4, ASR, r5}, true, le, "le r4 r4 ASR r5", "le_r4_r4_ASR_r5"},
676 {{gt, r0, r0, ASR, r1}, true, gt, "gt r0 r0 ASR r1", "gt_r0_r0_ASR_r1"},
677 {{cc, r3, r3, LSR, r0}, true, cc, "cc r3 r3 LSR r0", "cc_r3_r3_LSR_r0"},
678 {{ge, r1, r1, LSL, r5}, true, ge, "ge r1 r1 LSL r5", "ge_r1_r1_LSL_r5"},
679 {{gt, r4, r4, LSR, r4}, true, gt, "gt r4 r4 LSR r4", "gt_r4_r4_LSR_r4"},
680 {{mi, r6, r6, ROR, r4}, true, mi, "mi r6 r6 ROR r4", "mi_r6_r6_ROR_r4"},
681 {{pl, r4, r4, LSR, r7}, true, pl, "pl r4 r4 LSR r7", "pl_r4_r4_LSR_r7"},
682 {{hi, r7, r7, ASR, r6}, true, hi, "hi r7 r7 ASR r6", "hi_r7_r7_ASR_r6"},
683 {{vc, r1, r1, ROR, r4}, true, vc, "vc r1 r1 ROR r4", "vc_r1_r1_ROR_r4"},
684 {{le, r4, r4, LSR, r7}, true, le, "le r4 r4 LSR r7", "le_r4_r4_LSR_r7"},
685 {{le, r2, r2, ASR, r6}, true, le, "le r2 r2 ASR r6", "le_r2_r2_ASR_r6"},
686 {{le, r4, r4, LSL, r2}, true, le, "le r4 r4 LSL r2", "le_r4_r4_LSL_r2"},
687 {{eq, r7, r7, ASR, r4}, true, eq, "eq r7 r7 ASR r4", "eq_r7_r7_ASR_r4"},
688 {{ls, r2, r2, LSL, r6}, true, ls, "ls r2 r2 LSL r6", "ls_r2_r2_LSL_r6"},
689 {{pl, r3, r3, LSL, r6}, true, pl, "pl r3 r3 LSL r6", "pl_r3_r3_LSL_r6"},
690 {{cc, r7, r7, LSR, r5}, true, cc, "cc r7 r7 LSR r5", "cc_r7_r7_LSR_r5"},
691 {{cc, r1, r1, LSL, r7}, true, cc, "cc r1 r1 LSL r7", "cc_r1_r1_LSL_r7"},
692 {{gt, r5, r5, LSR, r4}, true, gt, "gt r5 r5 LSR r4", "gt_r5_r5_LSR_r4"},
693 {{ne, r2, r2, LSL, r4}, true, ne, "ne r2 r2 LSL r4", "ne_r2_r2_LSL_r4"},
694 {{ge, r2, r2, ASR, r7}, true, ge, "ge r2 r2 ASR r7", "ge_r2_r2_ASR_r7"},
695 {{gt, r2, r2, ROR, r7}, true, gt, "gt r2 r2 ROR r7", "gt_r2_r2_ROR_r7"},
696 {{gt, r6, r6, ROR, r5}, true, gt, "gt r6 r6 ROR r5", "gt_r6_r6_ROR_r5"},
697 {{lt, r4, r4, ASR, r3}, true, lt, "lt r4 r4 ASR r3", "lt_r4_r4_ASR_r3"},
698 {{vc, r1, r1, LSR, r7}, true, vc, "vc r1 r1 LSR r7", "vc_r1_r1_LSR_r7"},
699 {{ne, r2, r2, LSR, r7}, true, ne, "ne r2 r2 LSR r7", "ne_r2_r2_LSR_r7"},
700 {{ls, r0, r0, LSR, r5}, true, ls, "ls r0 r0 LSR r5", "ls_r0_r0_LSR_r5"},
701 {{cs, r3, r3, ASR, r1}, true, cs, "cs r3 r3 ASR r1", "cs_r3_r3_ASR_r1"},
702 {{gt, r2, r2, ROR, r1}, true, gt, "gt r2 r2 ROR r1", "gt_r2_r2_ROR_r1"},
703 {{eq, r0, r0, LSL, r3}, true, eq, "eq r0 r0 LSL r3", "eq_r0_r0_LSL_r3"},
704 {{ls, r5, r5, ASR, r5}, true, ls, "ls r5 r5 ASR r5", "ls_r5_r5_ASR_r5"},
705 {{cs, r5, r5, ROR, r5}, true, cs, "cs r5 r5 ROR r5", "cs_r5_r5_ROR_r5"},
706 {{gt, r3, r3, ROR, r7}, true, gt, "gt r3 r3 ROR r7", "gt_r3_r3_ROR_r7"},
707 {{vc, r3, r3, LSL, r6}, true, vc, "vc r3 r3 LSL r6", "vc_r3_r3_LSL_r6"},
708 {{ge, r3, r3, LSR, r1}, true, ge, "ge r3 r3 LSR r1", "ge_r3_r3_LSR_r1"},
709 {{cc, r2, r2, ROR, r3}, true, cc, "cc r2 r2 ROR r3", "cc_r2_r2_ROR_r3"},
710 {{mi, r5, r5, ROR, r7}, true, mi, "mi r5 r5 ROR r7", "mi_r5_r5_ROR_r7"},
711 {{eq, r6, r6, ASR, r3}, true, eq, "eq r6 r6 ASR r3", "eq_r6_r6_ASR_r3"},
712 {{ne, r2, r2, LSL, r1}, true, ne, "ne r2 r2 LSL r1", "ne_r2_r2_LSL_r1"},
713 {{mi, r5, r5, ROR, r6}, true, mi, "mi r5 r5 ROR r6", "mi_r5_r5_ROR_r6"},
714 {{vc, r2, r2, ROR, r2}, true, vc, "vc r2 r2 ROR r2", "vc_r2_r2_ROR_r2"},
715 {{pl, r7, r7, LSR, r1}, true, pl, "pl r7 r7 LSR r1", "pl_r7_r7_LSR_r1"},
716 {{eq, r7, r7, ROR, r4}, true, eq, "eq r7 r7 ROR r4", "eq_r7_r7_ROR_r4"},
717 {{eq, r1, r1, ASR, r4}, true, eq, "eq r1 r1 ASR r4", "eq_r1_r1_ASR_r4"},
718 {{mi, r5, r5, LSL, r2}, true, mi, "mi r5 r5 LSL r2", "mi_r5_r5_LSL_r2"},
719 {{pl, r0, r0, LSL, r4}, true, pl, "pl r0 r0 LSL r4", "pl_r0_r0_LSL_r4"},
720 {{hi, r4, r4, LSR, r2}, true, hi, "hi r4 r4 LSR r2", "hi_r4_r4_LSR_r2"},
721 {{lt, r5, r5, LSL, r6}, true, lt, "lt r5 r5 LSL r6", "lt_r5_r5_LSL_r6"},
722 {{lt, r6, r6, ASR, r5}, true, lt, "lt r6 r6 ASR r5", "lt_r6_r6_ASR_r5"},
723 {{eq, r1, r1, ASR, r0}, true, eq, "eq r1 r1 ASR r0", "eq_r1_r1_ASR_r0"},
724 {{mi, r6, r6, ASR, r3}, true, mi, "mi r6 r6 ASR r3", "mi_r6_r6_ASR_r3"},
725 {{lt, r0, r0, LSR, r4}, true, lt, "lt r0 r0 LSR r4", "lt_r0_r0_LSR_r4"},
726 {{lt, r5, r5, ROR, r4}, true, lt, "lt r5 r5 ROR r4", "lt_r5_r5_ROR_r4"},
727 {{ne, r1, r1, ASR, r7}, true, ne, "ne r1 r1 ASR r7", "ne_r1_r1_ASR_r7"},
728 {{gt, r3, r3, LSL, r4}, true, gt, "gt r3 r3 LSL r4", "gt_r3_r3_LSL_r4"},
729 {{le, r3, r3, ROR, r6}, true, le, "le r3 r3 ROR r6", "le_r3_r3_ROR_r6"},
730 {{ne, r5, r5, ASR, r7}, true, ne, "ne r5 r5 ASR r7", "ne_r5_r5_ASR_r7"},
731 {{hi, r5, r5, ROR, r6}, true, hi, "hi r5 r5 ROR r6", "hi_r5_r5_ROR_r6"},
732 {{vs, r3, r3, LSR, r2}, true, vs, "vs r3 r3 LSR r2", "vs_r3_r3_LSR_r2"},
733 {{ls, r1, r1, LSR, r1}, true, ls, "ls r1 r1 LSR r1", "ls_r1_r1_LSR_r1"},
734 {{ls, r4, r4, LSR, r2}, true, ls, "ls r4 r4 LSR r2", "ls_r4_r4_LSR_r2"},
735 {{gt, r7, r7, LSL, r1}, true, gt, "gt r7 r7 LSL r1", "gt_r7_r7_LSL_r1"},
736 {{ge, r0, r0, ROR, r3}, true, ge, "ge r0 r0 ROR r3", "ge_r0_r0_ROR_r3"},
737 {{gt, r7, r7, ASR, r4}, true, gt, "gt r7 r7 ASR r4", "gt_r7_r7_ASR_r4"},
738 {{ne, r0, r0, LSL, r7}, true, ne, "ne r0 r0 LSL r7", "ne_r0_r0_LSL_r7"},
739 {{ge, r2, r2, ROR, r1}, true, ge, "ge r2 r2 ROR r1", "ge_r2_r2_ROR_r1"},
740 {{ge, r5, r5, LSR, r3}, true, ge, "ge r5 r5 LSR r3", "ge_r5_r5_LSR_r3"},
741 {{ls, r2, r2, ASR, r0}, true, ls, "ls r2 r2 ASR r0", "ls_r2_r2_ASR_r0"},
742 {{le, r5, r5, ASR, r7}, true, le, "le r5 r5 ASR r7", "le_r5_r5_ASR_r7"},
743 {{le, r0, r0, LSR, r6}, true, le, "le r0 r0 LSR r6", "le_r0_r0_LSR_r6"},
744 {{ne, r6, r6, ROR, r1}, true, ne, "ne r6 r6 ROR r1", "ne_r6_r6_ROR_r1"},
745 {{vs, r2, r2, ASR, r0}, true, vs, "vs r2 r2 ASR r0", "vs_r2_r2_ASR_r0"},
746 {{mi, r0, r0, LSR, r1}, true, mi, "mi r0 r0 LSR r1", "mi_r0_r0_LSR_r1"},
747 {{cs, r1, r1, LSL, r5}, true, cs, "cs r1 r1 LSL r5", "cs_r1_r1_LSL_r5"},
748 {{vc, r3, r3, ROR, r7}, true, vc, "vc r3 r3 ROR r7", "vc_r3_r3_ROR_r7"},
749 {{gt, r6, r6, ASR, r0}, true, gt, "gt r6 r6 ASR r0", "gt_r6_r6_ASR_r0"},
750 {{le, r2, r2, LSR, r3}, true, le, "le r2 r2 LSR r3", "le_r2_r2_LSR_r3"},
751 {{lt, r4, r4, LSR, r3}, true, lt, "lt r4 r4 LSR r3", "lt_r4_r4_LSR_r3"},
752 {{gt, r1, r1, ROR, r6}, true, gt, "gt r1 r1 ROR r6", "gt_r1_r1_ROR_r6"},
753 {{ls, r6, r6, LSR, r4}, true, ls, "ls r6 r6 LSR r4", "ls_r6_r6_LSR_r4"},
754 {{vc, r5, r5, ROR, r0}, true, vc, "vc r5 r5 ROR r0", "vc_r5_r5_ROR_r0"},
755 {{ge, r2, r2, LSR, r2}, true, ge, "ge r2 r2 LSR r2", "ge_r2_r2_LSR_r2"},
756 {{ls, r0, r0, LSR, r3}, true, ls, "ls r0 r0 LSR r3", "ls_r0_r0_LSR_r3"},
757 {{gt, r6, r6, ASR, r6}, true, gt, "gt r6 r6 ASR r6", "gt_r6_r6_ASR_r6"},
758 {{ne, r0, r0, LSL, r3}, true, ne, "ne r0 r0 LSL r3", "ne_r0_r0_LSL_r3"},
759 {{mi, r0, r0, ASR, r1}, true, mi, "mi r0 r0 ASR r1", "mi_r0_r0_ASR_r1"},
760 {{ge, r6, r6, ASR, r6}, true, ge, "ge r6 r6 ASR r6", "ge_r6_r6_ASR_r6"},
761 {{pl, r2, r2, ASR, r2}, true, pl, "pl r2 r2 ASR r2", "pl_r2_r2_ASR_r2"},
762 {{eq, r5, r5, LSL, r2}, true, eq, "eq r5 r5 LSL r2", "eq_r5_r5_LSL_r2"},
763 {{vc, r2, r2, LSL, r3}, true, vc, "vc r2 r2 LSL r3", "vc_r2_r2_LSL_r3"},
764 {{ls, r1, r1, LSL, r2}, true, ls, "ls r1 r1 LSL r2", "ls_r1_r1_LSL_r2"},
765 {{vc, r3, r3, LSR, r0}, true, vc, "vc r3 r3 LSR r0", "vc_r3_r3_LSR_r0"},
766 {{vc, r4, r4, ASR, r5}, true, vc, "vc r4 r4 ASR r5", "vc_r4_r4_ASR_r5"},
767 {{ls, r2, r2, ASR, r1}, true, ls, "ls r2 r2 ASR r1", "ls_r2_r2_ASR_r1"},
768 {{ls, r3, r3, LSL, r6}, true, ls, "ls r3 r3 LSL r6", "ls_r3_r3_LSL_r6"},
769 {{vs, r6, r6, ROR, r5}, true, vs, "vs r6 r6 ROR r5", "vs_r6_r6_ROR_r5"},
770 {{eq, r2, r2, LSR, r6}, true, eq, "eq r2 r2 LSR r6", "eq_r2_r2_LSR_r6"},
771 {{hi, r3, r3, LSR, r5}, true, hi, "hi r3 r3 LSR r5", "hi_r3_r3_LSR_r5"},
772 {{eq, r2, r2, ASR, r6}, true, eq, "eq r2 r2 ASR r6", "eq_r2_r2_ASR_r6"},
773 {{mi, r2, r2, ASR, r4}, true, mi, "mi r2 r2 ASR r4", "mi_r2_r2_ASR_r4"},
774 {{le, r6, r6, ROR, r6}, true, le, "le r6 r6 ROR r6", "le_r6_r6_ROR_r6"},
775 {{eq, r0, r0, ROR, r7}, true, eq, "eq r0 r0 ROR r7", "eq_r0_r0_ROR_r7"},
776 {{vs, r4, r4, LSL, r2}, true, vs, "vs r4 r4 LSL r2", "vs_r4_r4_LSL_r2"},
777 {{vc, r2, r2, LSR, r5}, true, vc, "vc r2 r2 LSR r5", "vc_r2_r2_LSR_r5"},
778 {{cc, r0, r0, ROR, r1}, true, cc, "cc r0 r0 ROR r1", "cc_r0_r0_ROR_r1"},
779 {{lt, r5, r5, ASR, r0}, true, lt, "lt r5 r5 ASR r0", "lt_r5_r5_ASR_r0"},
780 {{mi, r0, r0, LSL, r5}, true, mi, "mi r0 r0 LSL r5", "mi_r0_r0_LSL_r5"},
781 {{eq, r6, r6, LSR, r1}, true, eq, "eq r6 r6 LSR r1", "eq_r6_r6_LSR_r1"},
782 {{gt, r3, r3, ROR, r3}, true, gt, "gt r3 r3 ROR r3", "gt_r3_r3_ROR_r3"},
783 {{gt, r6, r6, LSR, r7}, true, gt, "gt r6 r6 LSR r7", "gt_r6_r6_LSR_r7"},
784 {{ne, r3, r3, LSL, r7}, true, ne, "ne r3 r3 LSL r7", "ne_r3_r3_LSL_r7"},
785 {{cs, r2, r2, ASR, r4}, true, cs, "cs r2 r2 ASR r4", "cs_r2_r2_ASR_r4"},
786 {{ge, r6, r6, ASR, r7}, true, ge, "ge r6 r6 ASR r7", "ge_r6_r6_ASR_r7"},
787 {{hi, r7, r7, ASR, r0}, true, hi, "hi r7 r7 ASR r0", "hi_r7_r7_ASR_r0"},
788 {{le, r2, r2, ASR, r1}, true, le, "le r2 r2 ASR r1", "le_r2_r2_ASR_r1"},
789 {{vs, r6, r6, LSR, r5}, true, vs, "vs r6 r6 LSR r5", "vs_r6_r6_LSR_r5"},
790 {{cs, r3, r3, ROR, r5}, true, cs, "cs r3 r3 ROR r5", "cs_r3_r3_ROR_r5"},
791 {{le, r7, r7, LSR, r3}, true, le, "le r7 r7 LSR r3", "le_r7_r7_LSR_r3"},
792 {{vc, r2, r2, ASR, r0}, true, vc, "vc r2 r2 ASR r0", "vc_r2_r2_ASR_r0"},
793 {{ne, r7, r7, LSL, r3}, true, ne, "ne r7 r7 LSL r3", "ne_r7_r7_LSL_r3"},
794 {{vs, r6, r6, ASR, r1}, true, vs, "vs r6 r6 ASR r1", "vs_r6_r6_ASR_r1"},
795 {{cs, r4, r4, LSL, r0}, true, cs, "cs r4 r4 LSL r0", "cs_r4_r4_LSL_r0"},
796 {{hi, r3, r3, ASR, r7}, true, hi, "hi r3 r3 ASR r7", "hi_r3_r3_ASR_r7"},
797 {{eq, r5, r5, ASR, r2}, true, eq, "eq r5 r5 ASR r2", "eq_r5_r5_ASR_r2"},
798 {{ge, r0, r0, ASR, r1}, true, ge, "ge r0 r0 ASR r1", "ge_r0_r0_ASR_r1"},
799 {{cs, r1, r1, LSR, r0}, true, cs, "cs r1 r1 LSR r0", "cs_r1_r1_LSR_r0"},
800 {{ne, r7, r7, LSL, r1}, true, ne, "ne r7 r7 LSL r1", "ne_r7_r7_LSL_r1"},
801 {{cc, r1, r1, LSR, r0}, true, cc, "cc r1 r1 LSR r0", "cc_r1_r1_LSR_r0"},
802 {{cs, r0, r0, LSL, r3}, true, cs, "cs r0 r0 LSL r3", "cs_r0_r0_LSL_r3"},
803 {{hi, r3, r3, ASR, r6}, true, hi, "hi r3 r3 ASR r6", "hi_r3_r3_ASR_r6"},
804 {{cs, r4, r4, ROR, r1}, true, cs, "cs r4 r4 ROR r1", "cs_r4_r4_ROR_r1"},
805 {{eq, r0, r0, LSL, r6}, true, eq, "eq r0 r0 LSL r6", "eq_r0_r0_LSL_r6"},
806 {{vc, r3, r3, ROR, r3}, true, vc, "vc r3 r3 ROR r3", "vc_r3_r3_ROR_r3"},
807 {{le, r0, r0, ASR, r0}, true, le, "le r0 r0 ASR r0", "le_r0_r0_ASR_r0"},
808 {{vs, r4, r4, LSR, r5}, true, vs, "vs r4 r4 LSR r5", "vs_r4_r4_LSR_r5"},
809 {{ne, r4, r4, ROR, r2}, true, ne, "ne r4 r4 ROR r2", "ne_r4_r4_ROR_r2"},
810 {{gt, r5, r5, ASR, r6}, true, gt, "gt r5 r5 ASR r6", "gt_r5_r5_ASR_r6"},
811 {{hi, r7, r7, LSR, r0}, true, hi, "hi r7 r7 LSR r0", "hi_r7_r7_LSR_r0"},
812 {{vc, r1, r1, ROR, r3}, true, vc, "vc r1 r1 ROR r3", "vc_r1_r1_ROR_r3"},
813 {{pl, r0, r0, ASR, r4}, true, pl, "pl r0 r0 ASR r4", "pl_r0_r0_ASR_r4"},
814 {{mi, r1, r1, LSL, r3}, true, mi, "mi r1 r1 LSL r3", "mi_r1_r1_LSL_r3"},
815 {{pl, r2, r2, ASR, r0}, true, pl, "pl r2 r2 ASR r0", "pl_r2_r2_ASR_r0"},
816 {{mi, r2, r2, ROR, r5}, true, mi, "mi r2 r2 ROR r5", "mi_r2_r2_ROR_r5"},
817 {{vs, r1, r1, ROR, r4}, true, vs, "vs r1 r1 ROR r4", "vs_r1_r1_ROR_r4"},
818 {{hi, r6, r6, ROR, r0}, true, hi, "hi r6 r6 ROR r0", "hi_r6_r6_ROR_r0"},
819 {{cc, r7, r7, ASR, r7}, true, cc, "cc r7 r7 ASR r7", "cc_r7_r7_ASR_r7"},
820 {{ls, r3, r3, ROR, r4}, true, ls, "ls r3 r3 ROR r4", "ls_r3_r3_ROR_r4"},
821 {{hi, r0, r0, LSL, r0}, true, hi, "hi r0 r0 LSL r0", "hi_r0_r0_LSL_r0"},
822 {{hi, r3, r3, LSL, r6}, true, hi, "hi r3 r3 LSL r6", "hi_r3_r3_LSL_r6"},
823 {{le, r6, r6, ROR, r5}, true, le, "le r6 r6 ROR r5", "le_r6_r6_ROR_r5"},
824 {{vs, r5, r5, ASR, r7}, true, vs, "vs r5 r5 ASR r7", "vs_r5_r5_ASR_r7"},
825 {{pl, r5, r5, ROR, r5}, true, pl, "pl r5 r5 ROR r5", "pl_r5_r5_ROR_r5"},
826 {{vc, r0, r0, LSR, r6}, true, vc, "vc r0 r0 LSR r6", "vc_r0_r0_LSR_r6"},
827 {{ne, r2, r2, LSR, r3}, true, ne, "ne r2 r2 LSR r3", "ne_r2_r2_LSR_r3"},
828 {{ls, r7, r7, ROR, r1}, true, ls, "ls r7 r7 ROR r1", "ls_r7_r7_ROR_r1"},
829 {{ls, r2, r2, ROR, r3}, true, ls, "ls r2 r2 ROR r3", "ls_r2_r2_ROR_r3"},
830 {{gt, r4, r4, LSR, r7}, true, gt, "gt r4 r4 LSR r7", "gt_r4_r4_LSR_r7"},
831 {{hi, r4, r4, ASR, r4}, true, hi, "hi r4 r4 ASR r4", "hi_r4_r4_ASR_r4"},
832 {{hi, r6, r6, ROR, r3}, true, hi, "hi r6 r6 ROR r3", "hi_r6_r6_ROR_r3"},
833 {{vs, r5, r5, LSL, r3}, true, vs, "vs r5 r5 LSL r3", "vs_r5_r5_LSL_r3"},
834 {{cs, r0, r0, LSR, r3}, true, cs, "cs r0 r0 LSR r3", "cs_r0_r0_LSR_r3"},
835 {{cc, r4, r4, LSL, r7}, true, cc, "cc r4 r4 LSL r7", "cc_r4_r4_LSL_r7"},
836 {{eq, r4, r4, ROR, r1}, true, eq, "eq r4 r4 ROR r1", "eq_r4_r4_ROR_r1"},
837 {{vs, r7, r7, ASR, r3}, true, vs, "vs r7 r7 ASR r3", "vs_r7_r7_ASR_r3"},
838 {{le, r5, r5, LSR, r7}, true, le, "le r5 r5 LSR r7", "le_r5_r5_LSR_r7"},
839 {{lt, r7, r7, LSL, r1}, true, lt, "lt r7 r7 LSL r1", "lt_r7_r7_LSL_r1"},
840 {{gt, r6, r6, ROR, r2}, true, gt, "gt r6 r6 ROR r2", "gt_r6_r6_ROR_r2"},
841 {{vc, r0, r0, ASR, r0}, true, vc, "vc r0 r0 ASR r0", "vc_r0_r0_ASR_r0"},
842 {{ls, r4, r4, LSR, r4}, true, ls, "ls r4 r4 LSR r4", "ls_r4_r4_LSR_r4"},
843 {{hi, r4, r4, LSL, r5}, true, hi, "hi r4 r4 LSL r5", "hi_r4_r4_LSL_r5"},
844 {{hi, r6, r6, LSR, r0}, true, hi, "hi r6 r6 LSR r0", "hi_r6_r6_LSR_r0"},
845 {{ge, r3, r3, ASR, r0}, true, ge, "ge r3 r3 ASR r0", "ge_r3_r3_ASR_r0"},
846 {{vs, r7, r7, ASR, r7}, true, vs, "vs r7 r7 ASR r7", "vs_r7_r7_ASR_r7"},
847 {{hi, r1, r1, LSL, r3}, true, hi, "hi r1 r1 LSL r3", "hi_r1_r1_LSL_r3"},
848 {{ls, r4, r4, ASR, r3}, true, ls, "ls r4 r4 ASR r3", "ls_r4_r4_ASR_r3"},
849 {{eq, r7, r7, ASR, r6}, true, eq, "eq r7 r7 ASR r6", "eq_r7_r7_ASR_r6"},
850 {{cc, r1, r1, ASR, r7}, true, cc, "cc r1 r1 ASR r7", "cc_r1_r1_ASR_r7"},
851 {{hi, r4, r4, ROR, r1}, true, hi, "hi r4 r4 ROR r1", "hi_r4_r4_ROR_r1"},
852 {{gt, r0, r0, ROR, r0}, true, gt, "gt r0 r0 ROR r0", "gt_r0_r0_ROR_r0"},
853 {{hi, r0, r0, LSR, r3}, true, hi, "hi r0 r0 LSR r3", "hi_r0_r0_LSR_r3"},
854 {{cc, r0, r0, LSL, r3}, true, cc, "cc r0 r0 LSL r3", "cc_r0_r0_LSL_r3"},
855 {{ls, r6, r6, LSL, r6}, true, ls, "ls r6 r6 LSL r6", "ls_r6_r6_LSL_r6"},
856 {{cs, r2, r2, LSR, r5}, true, cs, "cs r2 r2 LSR r5", "cs_r2_r2_LSR_r5"},
857 {{le, r5, r5, LSL, r3}, true, le, "le r5 r5 LSL r3", "le_r5_r5_LSL_r3"},
858 {{ge, r1, r1, LSR, r7}, true, ge, "ge r1 r1 LSR r7", "ge_r1_r1_LSR_r7"},
859 {{cs, r4, r4, ASR, r7}, true, cs, "cs r4 r4 ASR r7", "cs_r4_r4_ASR_r7"},
860 {{lt, r1, r1, ASR, r7}, true, lt, "lt r1 r1 ASR r7", "lt_r1_r1_ASR_r7"},
861 {{mi, r4, r4, LSR, r5}, true, mi, "mi r4 r4 LSR r5", "mi_r4_r4_LSR_r5"},
862 {{cc, r6, r6, ROR, r0}, true, cc, "cc r6 r6 ROR r0", "cc_r6_r6_ROR_r0"},
863 {{mi, r4, r4, LSR, r1}, true, mi, "mi r4 r4 LSR r1", "mi_r4_r4_LSR_r1"},
864 {{gt, r1, r1, ROR, r5}, true, gt, "gt r1 r1 ROR r5", "gt_r1_r1_ROR_r5"},
865 {{vs, r2, r2, LSR, r2}, true, vs, "vs r2 r2 LSR r2", "vs_r2_r2_LSR_r2"},
866 {{cs, r3, r3, LSL, r4}, true, cs, "cs r3 r3 LSL r4", "cs_r3_r3_LSL_r4"},
867 {{le, r5, r5, ASR, r5}, true, le, "le r5 r5 ASR r5", "le_r5_r5_ASR_r5"},
868 {{vs, r1, r1, LSR, r0}, true, vs, "vs r1 r1 LSR r0", "vs_r1_r1_LSR_r0"},
869 {{le, r7, r7, LSL, r5}, true, le, "le r7 r7 LSL r5", "le_r7_r7_LSL_r5"},
870 {{ne, r6, r6, LSR, r4}, true, ne, "ne r6 r6 LSR r4", "ne_r6_r6_LSR_r4"},
871 {{le, r0, r0, ASR, r4}, true, le, "le r0 r0 ASR r4", "le_r0_r0_ASR_r4"},
872 {{ls, r4, r4, ASR, r1}, true, ls, "ls r4 r4 ASR r1", "ls_r4_r4_ASR_r1"},
873 {{gt, r1, r1, ASR, r6}, true, gt, "gt r1 r1 ASR r6", "gt_r1_r1_ASR_r6"},
874 {{cs, r6, r6, LSL, r2}, true, cs, "cs r6 r6 LSL r2", "cs_r6_r6_LSL_r2"},
875 {{cc, r2, r2, ROR, r0}, true, cc, "cc r2 r2 ROR r0", "cc_r2_r2_ROR_r0"},
876 {{cc, r7, r7, ASR, r1}, true, cc, "cc r7 r7 ASR r1", "cc_r7_r7_ASR_r1"},
877 {{ls, r6, r6, ASR, r0}, true, ls, "ls r6 r6 ASR r0", "ls_r6_r6_ASR_r0"},
878 {{ls, r1, r1, LSL, r5}, true, ls, "ls r1 r1 LSL r5", "ls_r1_r1_LSL_r5"},
879 {{le, r0, r0, LSR, r5}, true, le, "le r0 r0 LSR r5", "le_r0_r0_LSR_r5"},
880 {{vs, r3, r3, LSR, r5}, true, vs, "vs r3 r3 LSR r5", "vs_r3_r3_LSR_r5"},
881 {{vs, r3, r3, LSL, r1}, true, vs, "vs r3 r3 LSL r1", "vs_r3_r3_LSL_r1"},
882 {{cc, r3, r3, ROR, r3}, true, cc, "cc r3 r3 ROR r3", "cc_r3_r3_ROR_r3"},
883 {{le, r4, r4, ASR, r4}, true, le, "le r4 r4 ASR r4", "le_r4_r4_ASR_r4"},
884 {{vs, r4, r4, ASR, r1}, true, vs, "vs r4 r4 ASR r1", "vs_r4_r4_ASR_r1"},
885 {{pl, r2, r2, LSR, r0}, true, pl, "pl r2 r2 LSR r0", "pl_r2_r2_LSR_r0"},
886 {{vs, r1, r1, LSL, r0}, true, vs, "vs r1 r1 LSL r0", "vs_r1_r1_LSL_r0"},
887 {{cs, r6, r6, ASR, r7}, true, cs, "cs r6 r6 ASR r7", "cs_r6_r6_ASR_r7"},
888 {{cs, r3, r3, ROR, r2}, true, cs, "cs r3 r3 ROR r2", "cs_r3_r3_ROR_r2"},
889 {{mi, r4, r4, ROR, r7}, true, mi, "mi r4 r4 ROR r7", "mi_r4_r4_ROR_r7"},
890 {{eq, r5, r5, ROR, r0}, true, eq, "eq r5 r5 ROR r0", "eq_r5_r5_ROR_r0"},
891 {{cs, r3, r3, ROR, r0}, true, cs, "cs r3 r3 ROR r0", "cs_r3_r3_ROR_r0"},
892 {{mi, r6, r6, LSR, r4}, true, mi, "mi r6 r6 LSR r4", "mi_r6_r6_LSR_r4"},
893 {{hi, r2, r2, LSL, r4}, true, hi, "hi r2 r2 LSL r4", "hi_r2_r2_LSL_r4"},
894 {{ge, r7, r7, LSR, r3}, true, ge, "ge r7 r7 LSR r3", "ge_r7_r7_LSR_r3"},
895 {{mi, r0, r0, LSR, r6}, true, mi, "mi r0 r0 LSR r6", "mi_r0_r0_LSR_r6"},
896 {{ne, r0, r0, ASR, r1}, true, ne, "ne r0 r0 ASR r1", "ne_r0_r0_ASR_r1"},
897 {{ls, r0, r0, ROR, r3}, true, ls, "ls r0 r0 ROR r3", "ls_r0_r0_ROR_r3"},
898 {{le, r1, r1, LSR, r4}, true, le, "le r1 r1 LSR r4", "le_r1_r1_LSR_r4"},
899 {{ls, r3, r3, ROR, r5}, true, ls, "ls r3 r3 ROR r5", "ls_r3_r3_ROR_r5"},
900 {{lt, r6, r6, ASR, r6}, true, lt, "lt r6 r6 ASR r6", "lt_r6_r6_ASR_r6"},
901 {{cs, r5, r5, ASR, r3}, true, cs, "cs r5 r5 ASR r3", "cs_r5_r5_ASR_r3"},
902 {{ls, r0, r0, LSR, r0}, true, ls, "ls r0 r0 LSR r0", "ls_r0_r0_LSR_r0"},
903 {{ls, r5, r5, ASR, r4}, true, ls, "ls r5 r5 ASR r4", "ls_r5_r5_ASR_r4"},
904 {{gt, r2, r2, ROR, r3}, true, gt, "gt r2 r2 ROR r3", "gt_r2_r2_ROR_r3"},
905 {{hi, r4, r4, ASR, r3}, true, hi, "hi r4 r4 ASR r3", "hi_r4_r4_ASR_r3"},
906 {{lt, r2, r2, ROR, r0}, true, lt, "lt r2 r2 ROR r0", "lt_r2_r2_ROR_r0"},
907 {{ge, r0, r0, LSR, r3}, true, ge, "ge r0 r0 LSR r3", "ge_r0_r0_LSR_r3"},
908 {{pl, r1, r1, ROR, r7}, true, pl, "pl r1 r1 ROR r7", "pl_r1_r1_ROR_r7"},
909 {{gt, r0, r0, ROR, r5}, true, gt, "gt r0 r0 ROR r5", "gt_r0_r0_ROR_r5"},
910 {{ls, r5, r5, LSR, r5}, true, ls, "ls r5 r5 LSR r5", "ls_r5_r5_LSR_r5"},
911 {{cs, r3, r3, LSL, r5}, true, cs, "cs r3 r3 LSL r5", "cs_r3_r3_LSL_r5"},
912 {{cs, r1, r1, LSL, r2}, true, cs, "cs r1 r1 LSL r2", "cs_r1_r1_LSL_r2"},
913 {{ge, r5, r5, LSL, r3}, true, ge, "ge r5 r5 LSL r3", "ge_r5_r5_LSL_r3"},
914 {{ls, r6, r6, ASR, r2}, true, ls, "ls r6 r6 ASR r2", "ls_r6_r6_ASR_r2"},
915 {{pl, r7, r7, LSR, r7}, true, pl, "pl r7 r7 LSR r7", "pl_r7_r7_LSR_r7"},
916 {{gt, r7, r7, LSR, r3}, true, gt, "gt r7 r7 LSR r3", "gt_r7_r7_LSR_r3"},
917 {{ne, r5, r5, LSR, r5}, true, ne, "ne r5 r5 LSR r5", "ne_r5_r5_LSR_r5"},
918 {{ne, r3, r3, ASR, r6}, true, ne, "ne r3 r3 ASR r6", "ne_r3_r3_ASR_r6"},
919 {{eq, r3, r3, ASR, r6}, true, eq, "eq r3 r3 ASR r6", "eq_r3_r3_ASR_r6"},
920 {{pl, r1, r1, ROR, r1}, true, pl, "pl r1 r1 ROR r1", "pl_r1_r1_ROR_r1"},
921 {{lt, r7, r7, ROR, r6}, true, lt, "lt r7 r7 ROR r6", "lt_r7_r7_ROR_r6"},
922 {{pl, r4, r4, ROR, r5}, true, pl, "pl r4 r4 ROR r5", "pl_r4_r4_ROR_r5"},
923 {{ls, r7, r7, ASR, r0}, true, ls, "ls r7 r7 ASR r0", "ls_r7_r7_ASR_r0"},
924 {{cs, r1, r1, ROR, r4}, true, cs, "cs r1 r1 ROR r4", "cs_r1_r1_ROR_r4"},
925 {{eq, r0, r0, LSL, r1}, true, eq, "eq r0 r0 LSL r1", "eq_r0_r0_LSL_r1"},
926 {{ls, r7, r7, ASR, r1}, true, ls, "ls r7 r7 ASR r1", "ls_r7_r7_ASR_r1"},
927 {{le, r2, r2, LSL, r6}, true, le, "le r2 r2 LSL r6", "le_r2_r2_LSL_r6"},
928 {{pl, r3, r3, ROR, r7}, true, pl, "pl r3 r3 ROR r7", "pl_r3_r3_ROR_r7"},
929 {{lt, r7, r7, LSL, r0}, true, lt, "lt r7 r7 LSL r0", "lt_r7_r7_LSL_r0"},
930 {{cc, r1, r1, LSL, r0}, true, cc, "cc r1 r1 LSL r0", "cc_r1_r1_LSL_r0"},
931 {{mi, r0, r0, LSR, r3}, true, mi, "mi r0 r0 LSR r3", "mi_r0_r0_LSR_r3"},
932 {{ls, r0, r0, LSL, r3}, true, ls, "ls r0 r0 LSL r3", "ls_r0_r0_LSL_r3"},
933 {{lt, r4, r4, LSR, r6}, true, lt, "lt r4 r4 LSR r6", "lt_r4_r4_LSR_r6"},
934 {{eq, r2, r2, ASR, r5}, true, eq, "eq r2 r2 ASR r5", "eq_r2_r2_ASR_r5"},
935 {{ls, r6, r6, ROR, r0}, true, ls, "ls r6 r6 ROR r0", "ls_r6_r6_ROR_r0"},
936 {{vc, r1, r1, ASR, r1}, true, vc, "vc r1 r1 ASR r1", "vc_r1_r1_ASR_r1"},
937 {{pl, r0, r0, LSL, r6}, true, pl, "pl r0 r0 LSL r6", "pl_r0_r0_LSL_r6"},
938 {{hi, r4, r4, LSL, r1}, true, hi, "hi r4 r4 LSL r1", "hi_r4_r4_LSL_r1"},
939 {{vc, r7, r7, LSL, r2}, true, vc, "vc r7 r7 LSL r2", "vc_r7_r7_LSL_r2"},
940 {{eq, r1, r1, LSR, r4}, true, eq, "eq r1 r1 LSR r4", "eq_r1_r1_LSR_r4"},
941 {{hi, r2, r2, ASR, r0}, true, hi, "hi r2 r2 ASR r0", "hi_r2_r2_ASR_r0"},
942 {{pl, r2, r2, LSL, r0}, true, pl, "pl r2 r2 LSL r0", "pl_r2_r2_LSL_r0"},
943 {{lt, r2, r2, ASR, r3}, true, lt, "lt r2 r2 ASR r3", "lt_r2_r2_ASR_r3"},
944 {{pl, r5, r5, ASR, r5}, true, pl, "pl r5 r5 ASR r5", "pl_r5_r5_ASR_r5"},
945 {{le, r7, r7, LSL, r4}, true, le, "le r7 r7 LSL r4", "le_r7_r7_LSL_r4"},
946 {{eq, r4, r4, ROR, r5}, true, eq, "eq r4 r4 ROR r5", "eq_r4_r4_ROR_r5"},
947 {{vc, r4, r4, LSR, r2}, true, vc, "vc r4 r4 LSR r2", "vc_r4_r4_LSR_r2"},
948 {{ne, r3, r3, ROR, r7}, true, ne, "ne r3 r3 ROR r7", "ne_r3_r3_ROR_r7"},
949 {{gt, r3, r3, ROR, r4}, true, gt, "gt r3 r3 ROR r4", "gt_r3_r3_ROR_r4"},
950 {{cs, r1, r1, ASR, r4}, true, cs, "cs r1 r1 ASR r4", "cs_r1_r1_ASR_r4"},
951 {{cs, r4, r4, LSL, r3}, true, cs, "cs r4 r4 LSL r3", "cs_r4_r4_LSL_r3"},
952 {{lt, r6, r6, ASR, r1}, true, lt, "lt r6 r6 ASR r1", "lt_r6_r6_ASR_r1"},
953 {{hi, r3, r3, LSL, r5}, true, hi, "hi r3 r3 LSL r5", "hi_r3_r3_LSL_r5"},
954 {{mi, r6, r6, ASR, r6}, true, mi, "mi r6 r6 ASR r6", "mi_r6_r6_ASR_r6"},
955 {{le, r4, r4, LSR, r3}, true, le, "le r4 r4 LSR r3", "le_r4_r4_LSR_r3"},
956 {{lt, r2, r2, LSL, r1}, true, lt, "lt r2 r2 LSL r1", "lt_r2_r2_LSL_r1"},
957 {{ne, r5, r5, LSR, r2}, true, ne, "ne r5 r5 LSR r2", "ne_r5_r5_LSR_r2"},
958 {{mi, r3, r3, ASR, r2}, true, mi, "mi r3 r3 ASR r2", "mi_r3_r3_ASR_r2"},
959 {{ge, r0, r0, LSR, r2}, true, ge, "ge r0 r0 LSR r2", "ge_r0_r0_LSR_r2"},
960 {{ls, r6, r6, LSR, r3}, true, ls, "ls r6 r6 LSR r3", "ls_r6_r6_LSR_r3"},
961 {{cc, r2, r2, LSR, r0}, true, cc, "cc r2 r2 LSR r0", "cc_r2_r2_LSR_r0"},
962 {{vs, r7, r7, LSL, r7}, true, vs, "vs r7 r7 LSL r7", "vs_r7_r7_LSL_r7"},
963 {{vc, r7, r7, ASR, r7}, true, vc, "vc r7 r7 ASR r7", "vc_r7_r7_ASR_r7"},
964 {{eq, r6, r6, LSR, r0}, true, eq, "eq r6 r6 LSR r0", "eq_r6_r6_LSR_r0"},
965 {{vc, r6, r6, ASR, r3}, true, vc, "vc r6 r6 ASR r3", "vc_r6_r6_ASR_r3"},
966 {{gt, r4, r4, ROR, r4}, true, gt, "gt r4 r4 ROR r4", "gt_r4_r4_ROR_r4"},
967 {{ls, r5, r5, LSL, r4}, true, ls, "ls r5 r5 LSL r4", "ls_r5_r5_LSL_r4"},
968 {{ge, r1, r1, ROR, r1}, true, ge, "ge r1 r1 ROR r1", "ge_r1_r1_ROR_r1"},
969 {{cc, r5, r5, ASR, r0}, true, cc, "cc r5 r5 ASR r0", "cc_r5_r5_ASR_r0"},
970 {{gt, r2, r2, LSL, r3}, true, gt, "gt r2 r2 LSL r3", "gt_r2_r2_LSL_r3"},
971 {{ls, r0, r0, LSL, r5}, true, ls, "ls r0 r0 LSL r5", "ls_r0_r0_LSL_r5"},
972 {{lt, r3, r3, LSL, r4}, true, lt, "lt r3 r3 LSL r4", "lt_r3_r3_LSL_r4"},
973 {{eq, r6, r6, LSR, r3}, true, eq, "eq r6 r6 LSR r3", "eq_r6_r6_LSR_r3"},
974 {{ne, r1, r1, ROR, r2}, true, ne, "ne r1 r1 ROR r2", "ne_r1_r1_ROR_r2"},
975 {{vc, r2, r2, ROR, r0}, true, vc, "vc r2 r2 ROR r0", "vc_r2_r2_ROR_r0"},
976 {{ls, r0, r0, LSR, r7}, true, ls, "ls r0 r0 LSR r7", "ls_r0_r0_LSR_r7"},
977 {{mi, r3, r3, LSR, r2}, true, mi, "mi r3 r3 LSR r2", "mi_r3_r3_LSR_r2"},
978 {{hi, r1, r1, LSL, r4}, true, hi, "hi r1 r1 LSL r4", "hi_r1_r1_LSL_r4"},
979 {{cc, r1, r1, ROR, r3}, true, cc, "cc r1 r1 ROR r3", "cc_r1_r1_ROR_r3"},
980 {{eq, r4, r4, ROR, r0}, true, eq, "eq r4 r4 ROR r0", "eq_r4_r4_ROR_r0"},
981 {{vc, r6, r6, ASR, r2}, true, vc, "vc r6 r6 ASR r2", "vc_r6_r6_ASR_r2"},
982 {{ls, r4, r4, LSR, r7}, true, ls, "ls r4 r4 LSR r7", "ls_r4_r4_LSR_r7"},
983 {{vc, r1, r1, LSR, r1}, true, vc, "vc r1 r1 LSR r1", "vc_r1_r1_LSR_r1"},
984 {{mi, r4, r4, ROR, r2}, true, mi, "mi r4 r4 ROR r2", "mi_r4_r4_ROR_r2"},
985 {{ge, r7, r7, ROR, r5}, true, ge, "ge r7 r7 ROR r5", "ge_r7_r7_ROR_r5"},
986 {{mi, r5, r5, LSR, r1}, true, mi, "mi r5 r5 LSR r1", "mi_r5_r5_LSR_r1"},
987 {{cc, r3, r3, ASR, r6}, true, cc, "cc r3 r3 ASR r6", "cc_r3_r3_ASR_r6"},
988 {{vc, r6, r6, ROR, r5}, true, vc, "vc r6 r6 ROR r5", "vc_r6_r6_ROR_r5"},
989 {{mi, r7, r7, LSL, r0}, true, mi, "mi r7 r7 LSL r0", "mi_r7_r7_LSL_r0"},
990 {{mi, r5, r5, LSR, r4}, true, mi, "mi r5 r5 LSR r4", "mi_r5_r5_LSR_r4"},
991 {{lt, r6, r6, LSL, r5}, true, lt, "lt r6 r6 LSL r5", "lt_r6_r6_LSL_r5"},
992 {{ne, r0, r0, ASR, r6}, true, ne, "ne r0 r0 ASR r6", "ne_r0_r0_ASR_r6"},
993 {{le, r2, r2, ROR, r6}, true, le, "le r2 r2 ROR r6", "le_r2_r2_ROR_r6"},
994 {{cc, r7, r7, LSL, r3}, true, cc, "cc r7 r7 LSL r3", "cc_r7_r7_LSL_r3"},
995 {{cc, r6, r6, ASR, r6}, true, cc, "cc r6 r6 ASR r6", "cc_r6_r6_ASR_r6"},
996 {{le, r2, r2, ASR, r3}, true, le, "le r2 r2 ASR r3", "le_r2_r2_ASR_r3"},
997 {{ne, r6, r6, LSL, r2}, true, ne, "ne r6 r6 LSL r2", "ne_r6_r6_LSL_r2"},
998 {{pl, r5, r5, LSL, r0}, true, pl, "pl r5 r5 LSL r0", "pl_r5_r5_LSL_r0"},
999 {{vs, r1, r1, ASR, r3}, true, vs, "vs r1 r1 ASR r3", "vs_r1_r1_ASR_r3"},
1000 {{le, r7, r7, LSR, r1}, true, le, "le r7 r7 LSR r1", "le_r7_r7_LSR_r1"},
1001 {{ge, r3, r3, ROR, r4}, true, ge, "ge r3 r3 ROR r4", "ge_r3_r3_ROR_r4"},
1002 {{le, r1, r1, LSL, r4}, true, le, "le r1 r1 LSL r4", "le_r1_r1_LSL_r4"},
1003 {{ge, r2, r2, LSL, r6}, true, ge, "ge r2 r2 LSL r6", "ge_r2_r2_LSL_r6"},
1004 {{cs, r3, r3, ROR, r3}, true, cs, "cs r3 r3 ROR r3", "cs_r3_r3_ROR_r3"},
1005 {{vs, r0, r0, ROR, r1}, true, vs, "vs r0 r0 ROR r1", "vs_r0_r0_ROR_r1"},
1006 {{gt, r3, r3, LSR, r3}, true, gt, "gt r3 r3 LSR r3", "gt_r3_r3_LSR_r3"},
1007 {{pl, r2, r2, ASR, r4}, true, pl, "pl r2 r2 ASR r4", "pl_r2_r2_ASR_r4"},
1008 {{vs, r0, r0, ROR, r3}, true, vs, "vs r0 r0 ROR r3", "vs_r0_r0_ROR_r3"},
1009 {{mi, r7, r7, ASR, r0}, true, mi, "mi r7 r7 ASR r0", "mi_r7_r7_ASR_r0"},
1010 {{le, r6, r6, LSR, r2}, true, le, "le r6 r6 LSR r2", "le_r6_r6_LSR_r2"},
1011 {{ne, r4, r4, ROR, r6}, true, ne, "ne r4 r4 ROR r6", "ne_r4_r4_ROR_r6"},
1012 {{gt, r5, r5, ASR, r4}, true, gt, "gt r5 r5 ASR r4", "gt_r5_r5_ASR_r4"},
1013 {{ne, r1, r1, LSL, r2}, true, ne, "ne r1 r1 LSL r2", "ne_r1_r1_LSL_r2"},
1014 {{cs, r7, r7, ASR, r7}, true, cs, "cs r7 r7 ASR r7", "cs_r7_r7_ASR_r7"},
1015 {{ls, r2, r2, ROR, r2}, true, ls, "ls r2 r2 ROR r2", "ls_r2_r2_ROR_r2"},
1016 {{le, r3, r3, ASR, r5}, true, le, "le r3 r3 ASR r5", "le_r3_r3_ASR_r5"},
1017 {{lt, r5, r5, LSL, r4}, true, lt, "lt r5 r5 LSL r4", "lt_r5_r5_LSL_r4"},
1018 {{le, r0, r0, LSL, r2}, true, le, "le r0 r0 LSL r2", "le_r0_r0_LSL_r2"},
1019 {{pl, r3, r3, LSL, r5}, true, pl, "pl r3 r3 LSL r5", "pl_r3_r3_LSL_r5"},
1020 {{ge, r0, r0, ASR, r5}, true, ge, "ge r0 r0 ASR r5", "ge_r0_r0_ASR_r5"},
1021 {{ls, r3, r3, ASR, r6}, true, ls, "ls r3 r3 ASR r6", "ls_r3_r3_ASR_r6"},
1022 {{cs, r4, r4, LSL, r5}, true, cs, "cs r4 r4 LSL r5", "cs_r4_r4_LSL_r5"},
1023 {{cc, r4, r4, LSL, r1}, true, cc, "cc r4 r4 LSL r1", "cc_r4_r4_LSL_r1"},
1024 {{cs, r6, r6, LSL, r7}, true, cs, "cs r6 r6 LSL r7", "cs_r6_r6_LSL_r7"},
1025 {{ne, r4, r4, LSL, r6}, true, ne, "ne r4 r4 LSL r6", "ne_r4_r4_LSL_r6"},
1026 {{cs, r7, r7, ASR, r1}, true, cs, "cs r7 r7 ASR r1", "cs_r7_r7_ASR_r1"},
1027 {{cc, r2, r2, ASR, r1}, true, cc, "cc r2 r2 ASR r1", "cc_r2_r2_ASR_r1"},
1028 {{ne, r6, r6, ASR, r2}, true, ne, "ne r6 r6 ASR r2", "ne_r6_r6_ASR_r2"},
1029 {{mi, r6, r6, LSL, r3}, true, mi, "mi r6 r6 LSL r3", "mi_r6_r6_LSL_r3"},
1030 {{lt, r6, r6, ASR, r0}, true, lt, "lt r6 r6 ASR r0", "lt_r6_r6_ASR_r0"},
1031 {{mi, r1, r1, LSL, r0}, true, mi, "mi r1 r1 LSL r0", "mi_r1_r1_LSL_r0"},
1032 {{pl, r1, r1, LSL, r0}, true, pl, "pl r1 r1 LSL r0", "pl_r1_r1_LSL_r0"},
1033 {{gt, r0, r0, LSL, r5}, true, gt, "gt r0 r0 LSL r5", "gt_r0_r0_LSL_r5"},
1034 {{gt, r4, r4, ASR, r3}, true, gt, "gt r4 r4 ASR r3", "gt_r4_r4_ASR_r3"},
1035 {{pl, r1, r1, LSR, r2}, true, pl, "pl r1 r1 LSR r2", "pl_r1_r1_LSR_r2"},
1036 {{vc, r1, r1, ROR, r6}, true, vc, "vc r1 r1 ROR r6", "vc_r1_r1_ROR_r6"},
1037 {{ge, r4, r4, ROR, r0}, true, ge, "ge r4 r4 ROR r0", "ge_r4_r4_ROR_r0"},
1038 {{le, r1, r1, LSR, r0}, true, le, "le r1 r1 LSR r0", "le_r1_r1_LSR_r0"},
1039 {{cs, r5, r5, LSL, r2}, true, cs, "cs r5 r5 LSL r2", "cs_r5_r5_LSL_r2"},
1040 {{ge, r5, r5, ROR, r1}, true, ge, "ge r5 r5 ROR r1", "ge_r5_r5_ROR_r1"},
1041 {{mi, r3, r3, ROR, r7}, true, mi, "mi r3 r3 ROR r7", "mi_r3_r3_ROR_r7"},
1042 {{ls, r3, r3, ASR, r2}, true, ls, "ls r3 r3 ASR r2", "ls_r3_r3_ASR_r2"},
1043 {{le, r1, r1, LSL, r3}, true, le, "le r1 r1 LSL r3", "le_r1_r1_LSL_r3"},
1044 {{ls, r2, r2, ASR, r4}, true, ls, "ls r2 r2 ASR r4", "ls_r2_r2_ASR_r4"},
1045 {{lt, r5, r5, ASR, r2}, true, lt, "lt r5 r5 ASR r2", "lt_r5_r5_ASR_r2"},
1046 {{cs, r0, r0, ASR, r0}, true, cs, "cs r0 r0 ASR r0", "cs_r0_r0_ASR_r0"},
1047 {{cs, r2, r2, ROR, r1}, true, cs, "cs r2 r2 ROR r1", "cs_r2_r2_ROR_r1"},
1048 {{hi, r2, r2, ROR, r1}, true, hi, "hi r2 r2 ROR r1", "hi_r2_r2_ROR_r1"},
1049 {{ge, r0, r0, ASR, r4}, true, ge, "ge r0 r0 ASR r4", "ge_r0_r0_ASR_r4"},
1050 {{le, r7, r7, LSR, r5}, true, le, "le r7 r7 LSR r5", "le_r7_r7_LSR_r5"},
1051 {{eq, r2, r2, ROR, r3}, true, eq, "eq r2 r2 ROR r3", "eq_r2_r2_ROR_r3"},
1052 {{hi, r2, r2, LSL, r1}, true, hi, "hi r2 r2 LSL r1", "hi_r2_r2_LSL_r1"},
1053 {{hi, r4, r4, LSR, r0}, true, hi, "hi r4 r4 LSR r0", "hi_r4_r4_LSR_r0"},
1054 {{gt, r6, r6, ASR, r5}, true, gt, "gt r6 r6 ASR r5", "gt_r6_r6_ASR_r5"},
1055 {{pl, r0, r0, ASR, r7}, true, pl, "pl r0 r0 ASR r7", "pl_r0_r0_ASR_r7"},
1056 {{cc, r3, r3, LSL, r2}, true, cc, "cc r3 r3 LSL r2", "cc_r3_r3_LSL_r2"},
1057 {{mi, r0, r0, ASR, r7}, true, mi, "mi r0 r0 ASR r7", "mi_r0_r0_ASR_r7"},
1058 {{eq, r4, r4, LSR, r7}, true, eq, "eq r4 r4 LSR r7", "eq_r4_r4_LSR_r7"},
1059 {{vs, r0, r0, ASR, r1}, true, vs, "vs r0 r0 ASR r1", "vs_r0_r0_ASR_r1"},
1060 {{ge, r1, r1, LSR, r2}, true, ge, "ge r1 r1 LSR r2", "ge_r1_r1_LSR_r2"},
1061 {{ge, r4, r4, LSR, r4}, true, ge, "ge r4 r4 LSR r4", "ge_r4_r4_LSR_r4"},
1062 {{le, r3, r3, LSL, r6}, true, le, "le r3 r3 LSL r6", "le_r3_r3_LSL_r6"},
1063 {{pl, r6, r6, ASR, r4}, true, pl, "pl r6 r6 ASR r4", "pl_r6_r6_ASR_r4"},
1064 {{ne, r3, r3, LSR, r6}, true, ne, "ne r3 r3 LSR r6", "ne_r3_r3_LSR_r6"},
1065 {{gt, r3, r3, LSR, r6}, true, gt, "gt r3 r3 LSR r6", "gt_r3_r3_LSR_r6"},
1066 {{lt, r1, r1, LSL, r3}, true, lt, "lt r1 r1 LSL r3", "lt_r1_r1_LSL_r3"},
1067 {{ne, r1, r1, LSR, r7}, true, ne, "ne r1 r1 LSR r7", "ne_r1_r1_LSR_r7"},
1068 {{ne, r1, r1, ROR, r4}, true, ne, "ne r1 r1 ROR r4", "ne_r1_r1_ROR_r4"},
1069 {{le, r7, r7, LSR, r7}, true, le, "le r7 r7 LSR r7", "le_r7_r7_LSR_r7"},
1070 {{lt, r1, r1, ASR, r5}, true, lt, "lt r1 r1 ASR r5", "lt_r1_r1_ASR_r5"},
1071 {{ls, r6, r6, LSR, r6}, true, ls, "ls r6 r6 LSR r6", "ls_r6_r6_LSR_r6"},
1072 {{gt, r2, r2, LSL, r5}, true, gt, "gt r2 r2 LSL r5", "gt_r2_r2_LSL_r5"},
1073 {{gt, r1, r1, LSL, r4}, true, gt, "gt r1 r1 LSL r4", "gt_r1_r1_LSL_r4"},
1074 {{gt, r0, r0, LSL, r0}, true, gt, "gt r0 r0 LSL r0", "gt_r0_r0_LSL_r0"},
1075 {{lt, r0, r0, ASR, r7}, true, lt, "lt r0 r0 ASR r7", "lt_r0_r0_ASR_r7"},
1076 {{ge, r0, r0, LSL, r5}, true, ge, "ge r0 r0 LSL r5", "ge_r0_r0_LSL_r5"},
1077 {{eq, r2, r2, LSR, r7}, true, eq, "eq r2 r2 LSR r7", "eq_r2_r2_LSR_r7"},
1078 {{pl, r2, r2, LSL, r4}, true, pl, "pl r2 r2 LSL r4", "pl_r2_r2_LSL_r4"},
1079 {{gt, r7, r7, LSR, r7}, true, gt, "gt r7 r7 LSR r7", "gt_r7_r7_LSR_r7"},
1080 {{lt, r5, r5, ROR, r6}, true, lt, "lt r5 r5 ROR r6", "lt_r5_r5_ROR_r6"},
1081 {{vc, r0, r0, LSL, r5}, true, vc, "vc r0 r0 LSL r5", "vc_r0_r0_LSL_r5"},
1082 {{cc, r2, r2, LSR, r3}, true, cc, "cc r2 r2 LSR r3", "cc_r2_r2_LSR_r3"},
1083 {{ne, r6, r6, LSR, r2}, true, ne, "ne r6 r6 LSR r2", "ne_r6_r6_LSR_r2"},
1084 {{mi, r6, r6, LSR, r7}, true, mi, "mi r6 r6 LSR r7", "mi_r6_r6_LSR_r7"},
1085 {{gt, r2, r2, LSR, r4}, true, gt, "gt r2 r2 LSR r4", "gt_r2_r2_LSR_r4"},
1086 {{pl, r6, r6, ASR, r5}, true, pl, "pl r6 r6 ASR r5", "pl_r6_r6_ASR_r5"},
1087 {{ge, r6, r6, ASR, r5}, true, ge, "ge r6 r6 ASR r5", "ge_r6_r6_ASR_r5"},
1088 {{pl, r0, r0, LSR, r1}, true, pl, "pl r0 r0 LSR r1", "pl_r0_r0_LSR_r1"},
1089 {{ls, r3, r3, ROR, r3}, true, ls, "ls r3 r3 ROR r3", "ls_r3_r3_ROR_r3"},
1090 {{gt, r7, r7, LSL, r3}, true, gt, "gt r7 r7 LSL r3", "gt_r7_r7_LSL_r3"},
1091 {{mi, r2, r2, LSR, r6}, true, mi, "mi r2 r2 LSR r6", "mi_r2_r2_LSR_r6"},
1092 {{ge, r0, r0, ROR, r4}, true, ge, "ge r0 r0 ROR r4", "ge_r0_r0_ROR_r4"},
1093 {{le, r5, r5, ROR, r6}, true, le, "le r5 r5 ROR r6", "le_r5_r5_ROR_r6"},
1094 {{mi, r1, r1, LSL, r1}, true, mi, "mi r1 r1 LSL r1", "mi_r1_r1_LSL_r1"},
1095 {{cc, r4, r4, LSL, r5}, true, cc, "cc r4 r4 LSL r5", "cc_r4_r4_LSL_r5"}};
1096
1097 // These headers each contain an array of `TestResult` with the reference output
1098 // values. The reference arrays are names `kReference{mnemonic}`.
1099 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-rs-in-it-block-mov-t32.h"
1100
1101
1102 // The maximum number of errors to report in detail for each test.
1103 const unsigned kErrorReportLimit = 8;
1104
1105 typedef void (MacroAssembler::*Fn)(Condition cond,
1106 Register rd,
1107 const Operand& op);
1108
TestHelper(Fn instruction,const char * mnemonic,const TestResult reference[])1109 void TestHelper(Fn instruction,
1110 const char* mnemonic,
1111 const TestResult reference[]) {
1112 unsigned total_error_count = 0;
1113 MacroAssembler masm(BUF_SIZE);
1114
1115 masm.UseT32();
1116
1117 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1118 // Values to pass to the macro-assembler.
1119 Condition cond = kTests[i].operands.cond;
1120 Register rd = kTests[i].operands.rd;
1121 Register rn = kTests[i].operands.rn;
1122 ShiftType shift = kTests[i].operands.shift;
1123 Register rs = kTests[i].operands.rs;
1124 Operand op(rn, shift, rs);
1125
1126 int32_t start = masm.GetCursorOffset();
1127 {
1128 // We never generate more that 4 bytes, as IT instructions are only
1129 // allowed for narrow encodings.
1130 ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
1131 if (kTests[i].in_it_block) {
1132 masm.it(kTests[i].it_condition);
1133 }
1134 (masm.*instruction)(cond, rd, op);
1135 }
1136 int32_t end = masm.GetCursorOffset();
1137
1138 const byte* result_ptr =
1139 masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
1140 VIXL_ASSERT(start < end);
1141 uint32_t result_size = end - start;
1142
1143 if (Test::generate_test_trace()) {
1144 // Print the result bytes.
1145 printf("const byte kInstruction_%s_%s[] = {\n",
1146 mnemonic,
1147 kTests[i].identifier);
1148 for (uint32_t j = 0; j < result_size; j++) {
1149 if (j == 0) {
1150 printf(" 0x%02" PRIx8, result_ptr[j]);
1151 } else {
1152 printf(", 0x%02" PRIx8, result_ptr[j]);
1153 }
1154 }
1155 // This comment is meant to be used by external tools to validate
1156 // the encoding. We can parse the comment to figure out what
1157 // instruction this corresponds to.
1158 if (kTests[i].in_it_block) {
1159 printf(" // It %s; %s %s\n};\n",
1160 kTests[i].it_condition.GetName(),
1161 mnemonic,
1162 kTests[i].operands_description);
1163 } else {
1164 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
1165 }
1166 } else {
1167 // Check we've emitted the exact same encoding as present in the
1168 // trace file. Only print up to `kErrorReportLimit` errors.
1169 if (((result_size != reference[i].size) ||
1170 (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
1171 0)) &&
1172 (++total_error_count <= kErrorReportLimit)) {
1173 printf("Error when testing \"%s\" with operands \"%s\":\n",
1174 mnemonic,
1175 kTests[i].operands_description);
1176 printf(" Expected: ");
1177 for (uint32_t j = 0; j < reference[i].size; j++) {
1178 if (j == 0) {
1179 printf("0x%02" PRIx8, reference[i].encoding[j]);
1180 } else {
1181 printf(", 0x%02" PRIx8, reference[i].encoding[j]);
1182 }
1183 }
1184 printf("\n");
1185 printf(" Found: ");
1186 for (uint32_t j = 0; j < result_size; j++) {
1187 if (j == 0) {
1188 printf("0x%02" PRIx8, result_ptr[j]);
1189 } else {
1190 printf(", 0x%02" PRIx8, result_ptr[j]);
1191 }
1192 }
1193 printf("\n");
1194 }
1195 }
1196 }
1197
1198 masm.FinalizeCode();
1199
1200 if (Test::generate_test_trace()) {
1201 // Finalize the trace file by writing the final `TestResult` array
1202 // which links all generated instruction encodings.
1203 printf("const TestResult kReference%s[] = {\n", mnemonic);
1204 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1205 printf(" {\n");
1206 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n",
1207 mnemonic,
1208 kTests[i].identifier);
1209 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
1210 printf(" },\n");
1211 }
1212 printf("};\n");
1213 } else {
1214 if (total_error_count > kErrorReportLimit) {
1215 printf("%u other errors follow.\n",
1216 total_error_count - kErrorReportLimit);
1217 }
1218 // Crash if the test failed.
1219 VIXL_CHECK(total_error_count == 0);
1220 }
1221 }
1222
1223 // Instantiate tests for each instruction in the list.
1224 #define TEST(mnemonic) \
1225 void Test_##mnemonic() { \
1226 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \
1227 } \
1228 Test test_##mnemonic( \
1229 "AARCH32_ASSEMBLER_COND_RD_OPERAND_RN_SHIFT_RS_IN_IT_BLOCK_" #mnemonic \
1230 "_T32", \
1231 &Test_##mnemonic);
1232 FOREACH_INSTRUCTION(TEST)
1233 #undef TEST
1234
1235 } // namespace
1236 #endif
1237
1238 } // namespace aarch32
1239 } // namespace vixl
1240