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(cmn) \
53 M(cmp) \
54 M(mov) \
55 M(movs) \
56 M(mvn) \
57 M(mvns) \
58 M(teq) \
59 M(tst)
60
61
62 // The following definitions are defined again in each generated test, therefore
63 // we need to place them in an anomymous namespace. It expresses that they are
64 // local to this file only, and the compiler is not allowed to share these types
65 // across test files during template instantiation. Specifically, `Operands` has
66 // various layouts across generated tests so it absolutely cannot be shared.
67
68 #ifdef VIXL_INCLUDE_TARGET_T32
69 namespace {
70
71 // Values to be passed to the assembler to produce the instruction under test.
72 struct Operands {
73 Condition cond;
74 Register rd;
75 Register rn;
76 ShiftType shift;
77 uint32_t amount;
78 };
79
80 // This structure contains all data needed to test one specific
81 // instruction.
82 struct TestData {
83 // The `operands` field represents what to pass to the assembler to
84 // produce the instruction.
85 Operands operands;
86 // True if we need to generate an IT instruction for this test to be valid.
87 bool in_it_block;
88 // The condition to give the IT instruction, this will be set to "al" by
89 // default.
90 Condition it_condition;
91 // Description of the operands, used for error reporting.
92 const char* operands_description;
93 // Unique identifier, used for generating traces.
94 const char* identifier;
95 };
96
97 struct TestResult {
98 size_t size;
99 const byte* encoding;
100 };
101
102 // Each element of this array produce one instruction encoding.
103 const TestData kTests[] = {
104 {{al, r14, r8, ROR, 21}, false, al, "al r14 r8 ROR 21", "al_r14_r8_ROR_21"},
105 {{al, r5, r13, ROR, 4}, false, al, "al r5 r13 ROR 4", "al_r5_r13_ROR_4"},
106 {{al, r0, r3, ROR, 4}, false, al, "al r0 r3 ROR 4", "al_r0_r3_ROR_4"},
107 {{al, r3, r14, ROR, 7}, false, al, "al r3 r14 ROR 7", "al_r3_r14_ROR_7"},
108 {{al, r2, r6, LSL, 30}, false, al, "al r2 r6 LSL 30", "al_r2_r6_LSL_30"},
109 {{al, r11, r4, LSL, 26}, false, al, "al r11 r4 LSL 26", "al_r11_r4_LSL_26"},
110 {{al, r7, r0, LSL, 30}, false, al, "al r7 r0 LSL 30", "al_r7_r0_LSL_30"},
111 {{al, r0, r9, ROR, 17}, false, al, "al r0 r9 ROR 17", "al_r0_r9_ROR_17"},
112 {{al, r11, r3, ROR, 31}, false, al, "al r11 r3 ROR 31", "al_r11_r3_ROR_31"},
113 {{al, r8, r8, ROR, 20}, false, al, "al r8 r8 ROR 20", "al_r8_r8_ROR_20"},
114 {{al, r11, r13, LSL, 24},
115 false,
116 al,
117 "al r11 r13 LSL 24",
118 "al_r11_r13_LSL_24"},
119 {{al, r1, r3, ROR, 27}, false, al, "al r1 r3 ROR 27", "al_r1_r3_ROR_27"},
120 {{al, r9, r10, ROR, 5}, false, al, "al r9 r10 ROR 5", "al_r9_r10_ROR_5"},
121 {{al, r3, r11, ROR, 25}, false, al, "al r3 r11 ROR 25", "al_r3_r11_ROR_25"},
122 {{al, r2, r6, LSL, 7}, false, al, "al r2 r6 LSL 7", "al_r2_r6_LSL_7"},
123 {{al, r3, r12, ROR, 8}, false, al, "al r3 r12 ROR 8", "al_r3_r12_ROR_8"},
124 {{al, r0, r0, LSL, 14}, false, al, "al r0 r0 LSL 14", "al_r0_r0_LSL_14"},
125 {{al, r8, r10, ROR, 2}, false, al, "al r8 r10 ROR 2", "al_r8_r10_ROR_2"},
126 {{al, r0, r8, LSL, 31}, false, al, "al r0 r8 LSL 31", "al_r0_r8_LSL_31"},
127 {{al, r1, r14, ROR, 27}, false, al, "al r1 r14 ROR 27", "al_r1_r14_ROR_27"},
128 {{al, r14, r2, ROR, 27}, false, al, "al r14 r2 ROR 27", "al_r14_r2_ROR_27"},
129 {{al, r3, r10, LSL, 25}, false, al, "al r3 r10 LSL 25", "al_r3_r10_LSL_25"},
130 {{al, r13, r8, ROR, 6}, false, al, "al r13 r8 ROR 6", "al_r13_r8_ROR_6"},
131 {{al, r5, r12, ROR, 7}, false, al, "al r5 r12 ROR 7", "al_r5_r12_ROR_7"},
132 {{al, r7, r8, LSL, 10}, false, al, "al r7 r8 LSL 10", "al_r7_r8_LSL_10"},
133 {{al, r9, r12, ROR, 10}, false, al, "al r9 r12 ROR 10", "al_r9_r12_ROR_10"},
134 {{al, r8, r6, ROR, 12}, false, al, "al r8 r6 ROR 12", "al_r8_r6_ROR_12"},
135 {{al, r8, r10, LSL, 7}, false, al, "al r8 r10 LSL 7", "al_r8_r10_LSL_7"},
136 {{al, r5, r12, ROR, 8}, false, al, "al r5 r12 ROR 8", "al_r5_r12_ROR_8"},
137 {{al, r0, r13, LSL, 21}, false, al, "al r0 r13 LSL 21", "al_r0_r13_LSL_21"},
138 {{al, r2, r0, LSL, 7}, false, al, "al r2 r0 LSL 7", "al_r2_r0_LSL_7"},
139 {{al, r10, r2, LSL, 22}, false, al, "al r10 r2 LSL 22", "al_r10_r2_LSL_22"},
140 {{al, r4, r11, ROR, 2}, false, al, "al r4 r11 ROR 2", "al_r4_r11_ROR_2"},
141 {{al, r11, r14, LSL, 14},
142 false,
143 al,
144 "al r11 r14 LSL 14",
145 "al_r11_r14_LSL_14"},
146 {{al, r8, r0, LSL, 23}, false, al, "al r8 r0 LSL 23", "al_r8_r0_LSL_23"},
147 {{al, r10, r4, LSL, 12}, false, al, "al r10 r4 LSL 12", "al_r10_r4_LSL_12"},
148 {{al, r4, r5, ROR, 28}, false, al, "al r4 r5 ROR 28", "al_r4_r5_ROR_28"},
149 {{al, r1, r5, LSL, 25}, false, al, "al r1 r5 LSL 25", "al_r1_r5_LSL_25"},
150 {{al, r7, r10, ROR, 16}, false, al, "al r7 r10 ROR 16", "al_r7_r10_ROR_16"},
151 {{al, r3, r0, LSL, 31}, false, al, "al r3 r0 LSL 31", "al_r3_r0_LSL_31"},
152 {{al, r2, r2, LSL, 2}, false, al, "al r2 r2 LSL 2", "al_r2_r2_LSL_2"},
153 {{al, r8, r1, LSL, 9}, false, al, "al r8 r1 LSL 9", "al_r8_r1_LSL_9"},
154 {{al, r13, r6, LSL, 6}, false, al, "al r13 r6 LSL 6", "al_r13_r6_LSL_6"},
155 {{al, r0, r8, LSL, 13}, false, al, "al r0 r8 LSL 13", "al_r0_r8_LSL_13"},
156 {{al, r11, r8, ROR, 3}, false, al, "al r11 r8 ROR 3", "al_r11_r8_ROR_3"},
157 {{al, r8, r1, LSL, 13}, false, al, "al r8 r1 LSL 13", "al_r8_r1_LSL_13"},
158 {{al, r6, r2, LSL, 13}, false, al, "al r6 r2 LSL 13", "al_r6_r2_LSL_13"},
159 {{al, r4, r1, LSL, 16}, false, al, "al r4 r1 LSL 16", "al_r4_r1_LSL_16"},
160 {{al, r0, r4, LSL, 9}, false, al, "al r0 r4 LSL 9", "al_r0_r4_LSL_9"},
161 {{al, r11, r8, ROR, 8}, false, al, "al r11 r8 ROR 8", "al_r11_r8_ROR_8"},
162 {{al, r9, r12, LSL, 5}, false, al, "al r9 r12 LSL 5", "al_r9_r12_LSL_5"},
163 {{al, r13, r9, ROR, 13}, false, al, "al r13 r9 ROR 13", "al_r13_r9_ROR_13"},
164 {{al, r2, r0, ROR, 23}, false, al, "al r2 r0 ROR 23", "al_r2_r0_ROR_23"},
165 {{al, r7, r8, ROR, 6}, false, al, "al r7 r8 ROR 6", "al_r7_r8_ROR_6"},
166 {{al, r2, r6, LSL, 11}, false, al, "al r2 r6 LSL 11", "al_r2_r6_LSL_11"},
167 {{al, r2, r13, LSL, 12}, false, al, "al r2 r13 LSL 12", "al_r2_r13_LSL_12"},
168 {{al, r7, r4, LSL, 13}, false, al, "al r7 r4 LSL 13", "al_r7_r4_LSL_13"},
169 {{al, r8, r4, LSL, 1}, false, al, "al r8 r4 LSL 1", "al_r8_r4_LSL_1"},
170 {{al, r14, r4, LSL, 8}, false, al, "al r14 r4 LSL 8", "al_r14_r4_LSL_8"},
171 {{al, r7, r9, ROR, 20}, false, al, "al r7 r9 ROR 20", "al_r7_r9_ROR_20"},
172 {{al, r4, r3, ROR, 6}, false, al, "al r4 r3 ROR 6", "al_r4_r3_ROR_6"},
173 {{al, r3, r12, LSL, 2}, false, al, "al r3 r12 LSL 2", "al_r3_r12_LSL_2"},
174 {{al, r12, r9, ROR, 7}, false, al, "al r12 r9 ROR 7", "al_r12_r9_ROR_7"},
175 {{al, r0, r2, LSL, 17}, false, al, "al r0 r2 LSL 17", "al_r0_r2_LSL_17"},
176 {{al, r14, r3, LSL, 28}, false, al, "al r14 r3 LSL 28", "al_r14_r3_LSL_28"},
177 {{al, r14, r12, ROR, 15},
178 false,
179 al,
180 "al r14 r12 ROR 15",
181 "al_r14_r12_ROR_15"},
182 {{al, r8, r0, ROR, 8}, false, al, "al r8 r0 ROR 8", "al_r8_r0_ROR_8"},
183 {{al, r2, r11, LSL, 20}, false, al, "al r2 r11 LSL 20", "al_r2_r11_LSL_20"},
184 {{al, r8, r13, LSL, 30}, false, al, "al r8 r13 LSL 30", "al_r8_r13_LSL_30"},
185 {{al, r2, r9, LSL, 24}, false, al, "al r2 r9 LSL 24", "al_r2_r9_LSL_24"},
186 {{al, r12, r1, LSL, 2}, false, al, "al r12 r1 LSL 2", "al_r12_r1_LSL_2"},
187 {{al, r7, r1, ROR, 7}, false, al, "al r7 r1 ROR 7", "al_r7_r1_ROR_7"},
188 {{al, r11, r7, ROR, 30}, false, al, "al r11 r7 ROR 30", "al_r11_r7_ROR_30"},
189 {{al, r0, r9, ROR, 22}, false, al, "al r0 r9 ROR 22", "al_r0_r9_ROR_22"},
190 {{al, r14, r9, ROR, 17}, false, al, "al r14 r9 ROR 17", "al_r14_r9_ROR_17"},
191 {{al, r3, r14, LSL, 3}, false, al, "al r3 r14 LSL 3", "al_r3_r14_LSL_3"},
192 {{al, r0, r0, ROR, 30}, false, al, "al r0 r0 ROR 30", "al_r0_r0_ROR_30"},
193 {{al, r9, r8, LSL, 4}, false, al, "al r9 r8 LSL 4", "al_r9_r8_LSL_4"},
194 {{al, r8, r13, LSL, 16}, false, al, "al r8 r13 LSL 16", "al_r8_r13_LSL_16"},
195 {{al, r0, r8, ROR, 28}, false, al, "al r0 r8 ROR 28", "al_r0_r8_ROR_28"},
196 {{al, r11, r10, LSL, 23},
197 false,
198 al,
199 "al r11 r10 LSL 23",
200 "al_r11_r10_LSL_23"},
201 {{al, r11, r4, LSL, 27}, false, al, "al r11 r4 LSL 27", "al_r11_r4_LSL_27"},
202 {{al, r2, r2, LSL, 30}, false, al, "al r2 r2 LSL 30", "al_r2_r2_LSL_30"},
203 {{al, r5, r4, LSL, 17}, false, al, "al r5 r4 LSL 17", "al_r5_r4_LSL_17"},
204 {{al, r11, r12, LSL, 1}, false, al, "al r11 r12 LSL 1", "al_r11_r12_LSL_1"},
205 {{al, r0, r14, ROR, 21}, false, al, "al r0 r14 ROR 21", "al_r0_r14_ROR_21"},
206 {{al, r11, r5, ROR, 21}, false, al, "al r11 r5 ROR 21", "al_r11_r5_ROR_21"},
207 {{al, r6, r14, LSL, 14}, false, al, "al r6 r14 LSL 14", "al_r6_r14_LSL_14"},
208 {{al, r1, r9, LSL, 24}, false, al, "al r1 r9 LSL 24", "al_r1_r9_LSL_24"},
209 {{al, r5, r2, LSL, 22}, false, al, "al r5 r2 LSL 22", "al_r5_r2_LSL_22"},
210 {{al, r3, r5, LSL, 4}, false, al, "al r3 r5 LSL 4", "al_r3_r5_LSL_4"},
211 {{al, r8, r0, LSL, 5}, false, al, "al r8 r0 LSL 5", "al_r8_r0_LSL_5"},
212 {{al, r5, r14, ROR, 13}, false, al, "al r5 r14 ROR 13", "al_r5_r14_ROR_13"},
213 {{al, r12, r11, LSL, 27},
214 false,
215 al,
216 "al r12 r11 LSL 27",
217 "al_r12_r11_LSL_27"},
218 {{al, r10, r14, LSL, 20},
219 false,
220 al,
221 "al r10 r14 LSL 20",
222 "al_r10_r14_LSL_20"},
223 {{al, r5, r9, ROR, 4}, false, al, "al r5 r9 ROR 4", "al_r5_r9_ROR_4"},
224 {{al, r8, r11, ROR, 11}, false, al, "al r8 r11 ROR 11", "al_r8_r11_ROR_11"},
225 {{al, r4, r1, LSL, 24}, false, al, "al r4 r1 LSL 24", "al_r4_r1_LSL_24"},
226 {{al, r7, r10, ROR, 4}, false, al, "al r7 r10 ROR 4", "al_r7_r10_ROR_4"},
227 {{al, r3, r0, ROR, 11}, false, al, "al r3 r0 ROR 11", "al_r3_r0_ROR_11"},
228 {{al, r3, r10, ROR, 23}, false, al, "al r3 r10 ROR 23", "al_r3_r10_ROR_23"},
229 {{al, r2, r8, LSL, 15}, false, al, "al r2 r8 LSL 15", "al_r2_r8_LSL_15"},
230 {{al, r3, r6, LSL, 18}, false, al, "al r3 r6 LSL 18", "al_r3_r6_LSL_18"},
231 {{al, r10, r2, ROR, 7}, false, al, "al r10 r2 ROR 7", "al_r10_r2_ROR_7"},
232 {{al, r6, r6, ROR, 14}, false, al, "al r6 r6 ROR 14", "al_r6_r6_ROR_14"},
233 {{al, r1, r8, LSL, 25}, false, al, "al r1 r8 LSL 25", "al_r1_r8_LSL_25"},
234 {{al, r0, r14, LSL, 13}, false, al, "al r0 r14 LSL 13", "al_r0_r14_LSL_13"},
235 {{al, r14, r1, LSL, 13}, false, al, "al r14 r1 LSL 13", "al_r14_r1_LSL_13"},
236 {{al, r8, r11, ROR, 8}, false, al, "al r8 r11 ROR 8", "al_r8_r11_ROR_8"},
237 {{al, r0, r12, ROR, 6}, false, al, "al r0 r12 ROR 6", "al_r0_r12_ROR_6"},
238 {{al, r0, r12, LSL, 26}, false, al, "al r0 r12 LSL 26", "al_r0_r12_LSL_26"},
239 {{al, r11, r2, LSL, 10}, false, al, "al r11 r2 LSL 10", "al_r11_r2_LSL_10"},
240 {{al, r12, r7, LSL, 3}, false, al, "al r12 r7 LSL 3", "al_r12_r7_LSL_3"},
241 {{al, r6, r10, LSL, 25}, false, al, "al r6 r10 LSL 25", "al_r6_r10_LSL_25"},
242 {{al, r12, r7, ROR, 8}, false, al, "al r12 r7 ROR 8", "al_r12_r7_ROR_8"},
243 {{al, r3, r3, ROR, 24}, false, al, "al r3 r3 ROR 24", "al_r3_r3_ROR_24"},
244 {{al, r9, r12, LSL, 24}, false, al, "al r9 r12 LSL 24", "al_r9_r12_LSL_24"},
245 {{al, r14, r10, LSL, 27},
246 false,
247 al,
248 "al r14 r10 LSL 27",
249 "al_r14_r10_LSL_27"},
250 {{al, r6, r5, ROR, 4}, false, al, "al r6 r5 ROR 4", "al_r6_r5_ROR_4"},
251 {{al, r7, r4, LSL, 21}, false, al, "al r7 r4 LSL 21", "al_r7_r4_LSL_21"},
252 {{al, r2, r4, ROR, 31}, false, al, "al r2 r4 ROR 31", "al_r2_r4_ROR_31"},
253 {{al, r11, r7, ROR, 8}, false, al, "al r11 r7 ROR 8", "al_r11_r7_ROR_8"},
254 {{al, r5, r2, ROR, 17}, false, al, "al r5 r2 ROR 17", "al_r5_r2_ROR_17"},
255 {{al, r1, r11, LSL, 13}, false, al, "al r1 r11 LSL 13", "al_r1_r11_LSL_13"},
256 {{al, r7, r11, ROR, 2}, false, al, "al r7 r11 ROR 2", "al_r7_r11_ROR_2"},
257 {{al, r1, r7, ROR, 29}, false, al, "al r1 r7 ROR 29", "al_r1_r7_ROR_29"},
258 {{al, r4, r1, LSL, 31}, false, al, "al r4 r1 LSL 31", "al_r4_r1_LSL_31"},
259 {{al, r11, r13, ROR, 11},
260 false,
261 al,
262 "al r11 r13 ROR 11",
263 "al_r11_r13_ROR_11"},
264 {{al, r13, r1, ROR, 14}, false, al, "al r13 r1 ROR 14", "al_r13_r1_ROR_14"},
265 {{al, r1, r14, ROR, 21}, false, al, "al r1 r14 ROR 21", "al_r1_r14_ROR_21"},
266 {{al, r7, r12, LSL, 5}, false, al, "al r7 r12 LSL 5", "al_r7_r12_LSL_5"},
267 {{al, r10, r3, LSL, 2}, false, al, "al r10 r3 LSL 2", "al_r10_r3_LSL_2"},
268 {{al, r12, r10, ROR, 25},
269 false,
270 al,
271 "al r12 r10 ROR 25",
272 "al_r12_r10_ROR_25"},
273 {{al, r2, r7, LSL, 6}, false, al, "al r2 r7 LSL 6", "al_r2_r7_LSL_6"},
274 {{al, r5, r0, LSL, 23}, false, al, "al r5 r0 LSL 23", "al_r5_r0_LSL_23"},
275 {{al, r2, r8, ROR, 18}, false, al, "al r2 r8 ROR 18", "al_r2_r8_ROR_18"},
276 {{al, r0, r1, ROR, 15}, false, al, "al r0 r1 ROR 15", "al_r0_r1_ROR_15"},
277 {{al, r14, r4, ROR, 20}, false, al, "al r14 r4 ROR 20", "al_r14_r4_ROR_20"},
278 {{al, r5, r10, LSL, 15}, false, al, "al r5 r10 LSL 15", "al_r5_r10_LSL_15"},
279 {{al, r0, r1, ROR, 28}, false, al, "al r0 r1 ROR 28", "al_r0_r1_ROR_28"},
280 {{al, r11, r2, LSL, 9}, false, al, "al r11 r2 LSL 9", "al_r11_r2_LSL_9"},
281 {{al, r9, r10, LSL, 19}, false, al, "al r9 r10 LSL 19", "al_r9_r10_LSL_19"},
282 {{al, r4, r11, LSL, 8}, false, al, "al r4 r11 LSL 8", "al_r4_r11_LSL_8"},
283 {{al, r12, r14, LSL, 12},
284 false,
285 al,
286 "al r12 r14 LSL 12",
287 "al_r12_r14_LSL_12"},
288 {{al, r5, r9, LSL, 8}, false, al, "al r5 r9 LSL 8", "al_r5_r9_LSL_8"},
289 {{al, r12, r14, LSL, 16},
290 false,
291 al,
292 "al r12 r14 LSL 16",
293 "al_r12_r14_LSL_16"},
294 {{al, r13, r13, LSL, 23},
295 false,
296 al,
297 "al r13 r13 LSL 23",
298 "al_r13_r13_LSL_23"},
299 {{al, r3, r12, ROR, 19}, false, al, "al r3 r12 ROR 19", "al_r3_r12_ROR_19"},
300 {{al, r2, r5, ROR, 24}, false, al, "al r2 r5 ROR 24", "al_r2_r5_ROR_24"},
301 {{al, r3, r2, ROR, 11}, false, al, "al r3 r2 ROR 11", "al_r3_r2_ROR_11"},
302 {{al, r1, r13, ROR, 1}, false, al, "al r1 r13 ROR 1", "al_r1_r13_ROR_1"},
303 {{al, r6, r7, LSL, 11}, false, al, "al r6 r7 LSL 11", "al_r6_r7_LSL_11"},
304 {{al, r3, r14, LSL, 2}, false, al, "al r3 r14 LSL 2", "al_r3_r14_LSL_2"},
305 {{al, r0, r10, LSL, 20}, false, al, "al r0 r10 LSL 20", "al_r0_r10_LSL_20"},
306 {{al, r3, r0, LSL, 19}, false, al, "al r3 r0 LSL 19", "al_r3_r0_LSL_19"},
307 {{al, r14, r0, ROR, 21}, false, al, "al r14 r0 ROR 21", "al_r14_r0_ROR_21"},
308 {{al, r12, r13, LSL, 16},
309 false,
310 al,
311 "al r12 r13 LSL 16",
312 "al_r12_r13_LSL_16"},
313 {{al, r8, r5, ROR, 28}, false, al, "al r8 r5 ROR 28", "al_r8_r5_ROR_28"},
314 {{al, r8, r1, LSL, 25}, false, al, "al r8 r1 LSL 25", "al_r8_r1_LSL_25"},
315 {{al, r6, r4, LSL, 25}, false, al, "al r6 r4 LSL 25", "al_r6_r4_LSL_25"},
316 {{al, r7, r12, ROR, 26}, false, al, "al r7 r12 ROR 26", "al_r7_r12_ROR_26"},
317 {{al, r8, r14, LSL, 12}, false, al, "al r8 r14 LSL 12", "al_r8_r14_LSL_12"},
318 {{al, r6, r6, ROR, 2}, false, al, "al r6 r6 ROR 2", "al_r6_r6_ROR_2"},
319 {{al, r11, r11, LSL, 13},
320 false,
321 al,
322 "al r11 r11 LSL 13",
323 "al_r11_r11_LSL_13"},
324 {{al, r1, r12, ROR, 25}, false, al, "al r1 r12 ROR 25", "al_r1_r12_ROR_25"},
325 {{al, r9, r5, LSL, 20}, false, al, "al r9 r5 LSL 20", "al_r9_r5_LSL_20"},
326 {{al, r12, r11, LSL, 20},
327 false,
328 al,
329 "al r12 r11 LSL 20",
330 "al_r12_r11_LSL_20"},
331 {{al, r8, r3, ROR, 31}, false, al, "al r8 r3 ROR 31", "al_r8_r3_ROR_31"},
332 {{al, r0, r14, ROR, 3}, false, al, "al r0 r14 ROR 3", "al_r0_r14_ROR_3"},
333 {{al, r13, r14, LSL, 30},
334 false,
335 al,
336 "al r13 r14 LSL 30",
337 "al_r13_r14_LSL_30"},
338 {{al, r3, r6, ROR, 24}, false, al, "al r3 r6 ROR 24", "al_r3_r6_ROR_24"},
339 {{al, r10, r10, LSL, 23},
340 false,
341 al,
342 "al r10 r10 LSL 23",
343 "al_r10_r10_LSL_23"},
344 {{al, r9, r1, LSL, 7}, false, al, "al r9 r1 LSL 7", "al_r9_r1_LSL_7"},
345 {{al, r6, r13, ROR, 27}, false, al, "al r6 r13 ROR 27", "al_r6_r13_ROR_27"},
346 {{al, r1, r14, LSL, 21}, false, al, "al r1 r14 LSL 21", "al_r1_r14_LSL_21"},
347 {{al, r9, r14, ROR, 12}, false, al, "al r9 r14 ROR 12", "al_r9_r14_ROR_12"},
348 {{al, r14, r2, LSL, 17}, false, al, "al r14 r2 LSL 17", "al_r14_r2_LSL_17"},
349 {{al, r11, r14, LSL, 11},
350 false,
351 al,
352 "al r11 r14 LSL 11",
353 "al_r11_r14_LSL_11"},
354 {{al, r11, r7, ROR, 2}, false, al, "al r11 r7 ROR 2", "al_r11_r7_ROR_2"},
355 {{al, r8, r7, ROR, 20}, false, al, "al r8 r7 ROR 20", "al_r8_r7_ROR_20"},
356 {{al, r10, r11, LSL, 5}, false, al, "al r10 r11 LSL 5", "al_r10_r11_LSL_5"},
357 {{al, r5, r11, ROR, 16}, false, al, "al r5 r11 ROR 16", "al_r5_r11_ROR_16"},
358 {{al, r8, r3, LSL, 23}, false, al, "al r8 r3 LSL 23", "al_r8_r3_LSL_23"},
359 {{al, r2, r8, LSL, 23}, false, al, "al r2 r8 LSL 23", "al_r2_r8_LSL_23"},
360 {{al, r2, r13, LSL, 28}, false, al, "al r2 r13 LSL 28", "al_r2_r13_LSL_28"},
361 {{al, r1, r0, LSL, 20}, false, al, "al r1 r0 LSL 20", "al_r1_r0_LSL_20"},
362 {{al, r9, r8, ROR, 21}, false, al, "al r9 r8 ROR 21", "al_r9_r8_ROR_21"},
363 {{al, r5, r14, LSL, 22}, false, al, "al r5 r14 LSL 22", "al_r5_r14_LSL_22"},
364 {{al, r4, r9, ROR, 7}, false, al, "al r4 r9 ROR 7", "al_r4_r9_ROR_7"},
365 {{al, r2, r12, ROR, 9}, false, al, "al r2 r12 ROR 9", "al_r2_r12_ROR_9"},
366 {{al, r4, r10, LSL, 31}, false, al, "al r4 r10 LSL 31", "al_r4_r10_LSL_31"},
367 {{al, r4, r2, LSL, 8}, false, al, "al r4 r2 LSL 8", "al_r4_r2_LSL_8"},
368 {{al, r10, r6, LSL, 27}, false, al, "al r10 r6 LSL 27", "al_r10_r6_LSL_27"},
369 {{al, r12, r7, ROR, 7}, false, al, "al r12 r7 ROR 7", "al_r12_r7_ROR_7"},
370 {{al, r5, r1, ROR, 9}, false, al, "al r5 r1 ROR 9", "al_r5_r1_ROR_9"},
371 {{al, r13, r13, LSL, 29},
372 false,
373 al,
374 "al r13 r13 LSL 29",
375 "al_r13_r13_LSL_29"},
376 {{al, r0, r12, ROR, 28}, false, al, "al r0 r12 ROR 28", "al_r0_r12_ROR_28"},
377 {{al, r9, r6, ROR, 26}, false, al, "al r9 r6 ROR 26", "al_r9_r6_ROR_26"},
378 {{al, r1, r8, ROR, 14}, false, al, "al r1 r8 ROR 14", "al_r1_r8_ROR_14"},
379 {{al, r9, r5, LSL, 19}, false, al, "al r9 r5 LSL 19", "al_r9_r5_LSL_19"},
380 {{al, r10, r5, LSL, 23}, false, al, "al r10 r5 LSL 23", "al_r10_r5_LSL_23"},
381 {{al, r2, r12, ROR, 2}, false, al, "al r2 r12 ROR 2", "al_r2_r12_ROR_2"},
382 {{al, r5, r10, ROR, 18}, false, al, "al r5 r10 ROR 18", "al_r5_r10_ROR_18"},
383 {{al, r13, r12, ROR, 12},
384 false,
385 al,
386 "al r13 r12 ROR 12",
387 "al_r13_r12_ROR_12"},
388 {{al, r9, r10, LSL, 15}, false, al, "al r9 r10 LSL 15", "al_r9_r10_LSL_15"},
389 {{al, r9, r2, LSL, 26}, false, al, "al r9 r2 LSL 26", "al_r9_r2_LSL_26"},
390 {{al, r2, r3, LSL, 19}, false, al, "al r2 r3 LSL 19", "al_r2_r3_LSL_19"},
391 {{al, r7, r10, ROR, 28}, false, al, "al r7 r10 ROR 28", "al_r7_r10_ROR_28"},
392 {{al, r14, r6, ROR, 6}, false, al, "al r14 r6 ROR 6", "al_r14_r6_ROR_6"},
393 {{al, r5, r1, ROR, 16}, false, al, "al r5 r1 ROR 16", "al_r5_r1_ROR_16"},
394 {{al, r4, r6, ROR, 10}, false, al, "al r4 r6 ROR 10", "al_r4_r6_ROR_10"},
395 {{al, r7, r12, LSL, 10}, false, al, "al r7 r12 LSL 10", "al_r7_r12_LSL_10"},
396 {{al, r0, r14, LSL, 28}, false, al, "al r0 r14 LSL 28", "al_r0_r14_LSL_28"},
397 {{al, r8, r2, LSL, 27}, false, al, "al r8 r2 LSL 27", "al_r8_r2_LSL_27"},
398 {{al, r8, r12, ROR, 1}, false, al, "al r8 r12 ROR 1", "al_r8_r12_ROR_1"},
399 {{al, r8, r4, ROR, 4}, false, al, "al r8 r4 ROR 4", "al_r8_r4_ROR_4"},
400 {{al, r3, r5, ROR, 20}, false, al, "al r3 r5 ROR 20", "al_r3_r5_ROR_20"},
401 {{al, r6, r13, LSL, 5}, false, al, "al r6 r13 LSL 5", "al_r6_r13_LSL_5"},
402 {{al, r9, r9, LSL, 4}, false, al, "al r9 r9 LSL 4", "al_r9_r9_LSL_4"},
403 {{al, r13, r13, ROR, 7}, false, al, "al r13 r13 ROR 7", "al_r13_r13_ROR_7"},
404 {{al, r3, r7, LSL, 11}, false, al, "al r3 r7 LSL 11", "al_r3_r7_LSL_11"},
405 {{al, r1, r3, ROR, 15}, false, al, "al r1 r3 ROR 15", "al_r1_r3_ROR_15"},
406 {{al, r2, r0, LSL, 30}, false, al, "al r2 r0 LSL 30", "al_r2_r0_LSL_30"},
407 {{al, r11, r13, ROR, 16},
408 false,
409 al,
410 "al r11 r13 ROR 16",
411 "al_r11_r13_ROR_16"},
412 {{al, r3, r0, LSL, 15}, false, al, "al r3 r0 LSL 15", "al_r3_r0_LSL_15"},
413 {{al, r2, r0, LSL, 8}, false, al, "al r2 r0 LSL 8", "al_r2_r0_LSL_8"},
414 {{al, r4, r13, ROR, 5}, false, al, "al r4 r13 ROR 5", "al_r4_r13_ROR_5"},
415 {{al, r13, r0, ROR, 29}, false, al, "al r13 r0 ROR 29", "al_r13_r0_ROR_29"},
416 {{al, r6, r2, ROR, 18}, false, al, "al r6 r2 ROR 18", "al_r6_r2_ROR_18"},
417 {{al, r1, r2, LSL, 2}, false, al, "al r1 r2 LSL 2", "al_r1_r2_LSL_2"},
418 {{al, r7, r4, ROR, 12}, false, al, "al r7 r4 ROR 12", "al_r7_r4_ROR_12"},
419 {{al, r9, r11, ROR, 6}, false, al, "al r9 r11 ROR 6", "al_r9_r11_ROR_6"},
420 {{al, r8, r2, ROR, 12}, false, al, "al r8 r2 ROR 12", "al_r8_r2_ROR_12"},
421 {{al, r12, r2, LSL, 19}, false, al, "al r12 r2 LSL 19", "al_r12_r2_LSL_19"},
422 {{al, r13, r0, ROR, 30}, false, al, "al r13 r0 ROR 30", "al_r13_r0_ROR_30"},
423 {{al, r7, r6, ROR, 16}, false, al, "al r7 r6 ROR 16", "al_r7_r6_ROR_16"},
424 {{al, r6, r13, ROR, 19}, false, al, "al r6 r13 ROR 19", "al_r6_r13_ROR_19"},
425 {{al, r14, r3, LSL, 19}, false, al, "al r14 r3 LSL 19", "al_r14_r3_LSL_19"},
426 {{al, r14, r5, ROR, 24}, false, al, "al r14 r5 ROR 24", "al_r14_r5_ROR_24"},
427 {{al, r10, r12, LSL, 8}, false, al, "al r10 r12 LSL 8", "al_r10_r12_LSL_8"},
428 {{al, r14, r7, LSL, 11}, false, al, "al r14 r7 LSL 11", "al_r14_r7_LSL_11"},
429 {{al, r10, r14, LSL, 30},
430 false,
431 al,
432 "al r10 r14 LSL 30",
433 "al_r10_r14_LSL_30"},
434 {{al, r7, r13, ROR, 7}, false, al, "al r7 r13 ROR 7", "al_r7_r13_ROR_7"},
435 {{al, r11, r0, LSL, 23}, false, al, "al r11 r0 LSL 23", "al_r11_r0_LSL_23"},
436 {{al, r0, r12, LSL, 30}, false, al, "al r0 r12 LSL 30", "al_r0_r12_LSL_30"},
437 {{al, r5, r12, LSL, 7}, false, al, "al r5 r12 LSL 7", "al_r5_r12_LSL_7"},
438 {{al, r12, r12, ROR, 14},
439 false,
440 al,
441 "al r12 r12 ROR 14",
442 "al_r12_r12_ROR_14"},
443 {{al, r8, r11, LSL, 4}, false, al, "al r8 r11 LSL 4", "al_r8_r11_LSL_4"},
444 {{al, r14, r2, ROR, 24}, false, al, "al r14 r2 ROR 24", "al_r14_r2_ROR_24"},
445 {{al, r10, r2, ROR, 31}, false, al, "al r10 r2 ROR 31", "al_r10_r2_ROR_31"},
446 {{al, r11, r5, LSL, 1}, false, al, "al r11 r5 LSL 1", "al_r11_r5_LSL_1"},
447 {{al, r8, r6, LSL, 24}, false, al, "al r8 r6 LSL 24", "al_r8_r6_LSL_24"},
448 {{al, r14, r1, ROR, 8}, false, al, "al r14 r1 ROR 8", "al_r14_r1_ROR_8"},
449 {{al, r11, r2, ROR, 19}, false, al, "al r11 r2 ROR 19", "al_r11_r2_ROR_19"},
450 {{al, r1, r12, LSL, 14}, false, al, "al r1 r12 LSL 14", "al_r1_r12_LSL_14"},
451 {{al, r6, r10, LSL, 30}, false, al, "al r6 r10 LSL 30", "al_r6_r10_LSL_30"},
452 {{al, r8, r1, ROR, 6}, false, al, "al r8 r1 ROR 6", "al_r8_r1_ROR_6"},
453 {{al, r13, r11, ROR, 6}, false, al, "al r13 r11 ROR 6", "al_r13_r11_ROR_6"},
454 {{al, r5, r13, LSL, 30}, false, al, "al r5 r13 LSL 30", "al_r5_r13_LSL_30"},
455 {{al, r0, r13, ROR, 26}, false, al, "al r0 r13 ROR 26", "al_r0_r13_ROR_26"},
456 {{al, r4, r10, LSL, 30}, false, al, "al r4 r10 LSL 30", "al_r4_r10_LSL_30"},
457 {{al, r8, r4, LSL, 16}, false, al, "al r8 r4 LSL 16", "al_r8_r4_LSL_16"},
458 {{al, r11, r12, LSL, 11},
459 false,
460 al,
461 "al r11 r12 LSL 11",
462 "al_r11_r12_LSL_11"},
463 {{al, r9, r3, ROR, 2}, false, al, "al r9 r3 ROR 2", "al_r9_r3_ROR_2"},
464 {{al, r11, r7, LSL, 26}, false, al, "al r11 r7 LSL 26", "al_r11_r7_LSL_26"},
465 {{al, r14, r2, ROR, 22}, false, al, "al r14 r2 ROR 22", "al_r14_r2_ROR_22"},
466 {{al, r8, r2, ROR, 10}, false, al, "al r8 r2 ROR 10", "al_r8_r2_ROR_10"},
467 {{al, r5, r2, ROR, 28}, false, al, "al r5 r2 ROR 28", "al_r5_r2_ROR_28"},
468 {{al, r14, r3, ROR, 11}, false, al, "al r14 r3 ROR 11", "al_r14_r3_ROR_11"},
469 {{al, r3, r14, LSL, 5}, false, al, "al r3 r14 LSL 5", "al_r3_r14_LSL_5"},
470 {{al, r12, r3, ROR, 15}, false, al, "al r12 r3 ROR 15", "al_r12_r3_ROR_15"},
471 {{al, r4, r1, ROR, 30}, false, al, "al r4 r1 ROR 30", "al_r4_r1_ROR_30"},
472 {{al, r13, r8, ROR, 11}, false, al, "al r13 r8 ROR 11", "al_r13_r8_ROR_11"},
473 {{al, r6, r9, ROR, 9}, false, al, "al r6 r9 ROR 9", "al_r6_r9_ROR_9"},
474 {{al, r8, r13, ROR, 15}, false, al, "al r8 r13 ROR 15", "al_r8_r13_ROR_15"},
475 {{al, r0, r14, ROR, 12}, false, al, "al r0 r14 ROR 12", "al_r0_r14_ROR_12"},
476 {{al, r0, r10, LSL, 6}, false, al, "al r0 r10 LSL 6", "al_r0_r10_LSL_6"},
477 {{al, r8, r7, LSL, 5}, false, al, "al r8 r7 LSL 5", "al_r8_r7_LSL_5"},
478 {{al, r3, r7, ROR, 11}, false, al, "al r3 r7 ROR 11", "al_r3_r7_ROR_11"},
479 {{al, r5, r1, LSL, 20}, false, al, "al r5 r1 LSL 20", "al_r5_r1_LSL_20"},
480 {{al, r6, r7, LSL, 10}, false, al, "al r6 r7 LSL 10", "al_r6_r7_LSL_10"},
481 {{al, r14, r0, ROR, 27}, false, al, "al r14 r0 ROR 27", "al_r14_r0_ROR_27"},
482 {{al, r6, r12, LSL, 5}, false, al, "al r6 r12 LSL 5", "al_r6_r12_LSL_5"},
483 {{al, r4, r8, LSL, 28}, false, al, "al r4 r8 LSL 28", "al_r4_r8_LSL_28"},
484 {{al, r7, r6, ROR, 15}, false, al, "al r7 r6 ROR 15", "al_r7_r6_ROR_15"},
485 {{al, r0, r6, LSL, 27}, false, al, "al r0 r6 LSL 27", "al_r0_r6_LSL_27"},
486 {{al, r1, r6, ROR, 19}, false, al, "al r1 r6 ROR 19", "al_r1_r6_ROR_19"},
487 {{al, r11, r14, ROR, 21},
488 false,
489 al,
490 "al r11 r14 ROR 21",
491 "al_r11_r14_ROR_21"},
492 {{al, r4, r13, LSL, 5}, false, al, "al r4 r13 LSL 5", "al_r4_r13_LSL_5"},
493 {{al, r4, r7, ROR, 2}, false, al, "al r4 r7 ROR 2", "al_r4_r7_ROR_2"},
494 {{al, r8, r1, ROR, 29}, false, al, "al r8 r1 ROR 29", "al_r8_r1_ROR_29"},
495 {{al, r14, r2, LSL, 24}, false, al, "al r14 r2 LSL 24", "al_r14_r2_LSL_24"},
496 {{al, r5, r12, ROR, 27}, false, al, "al r5 r12 ROR 27", "al_r5_r12_ROR_27"},
497 {{al, r11, r4, ROR, 14}, false, al, "al r11 r4 ROR 14", "al_r11_r4_ROR_14"},
498 {{al, r4, r7, LSL, 28}, false, al, "al r4 r7 LSL 28", "al_r4_r7_LSL_28"},
499 {{al, r3, r6, LSL, 9}, false, al, "al r3 r6 LSL 9", "al_r3_r6_LSL_9"},
500 {{al, r11, r13, LSL, 12},
501 false,
502 al,
503 "al r11 r13 LSL 12",
504 "al_r11_r13_LSL_12"},
505 {{al, r10, r7, ROR, 20}, false, al, "al r10 r7 ROR 20", "al_r10_r7_ROR_20"},
506 {{al, r2, r8, LSL, 12}, false, al, "al r2 r8 LSL 12", "al_r2_r8_LSL_12"},
507 {{al, r4, r13, LSL, 28}, false, al, "al r4 r13 LSL 28", "al_r4_r13_LSL_28"},
508 {{al, r1, r12, LSL, 28}, false, al, "al r1 r12 LSL 28", "al_r1_r12_LSL_28"},
509 {{al, r7, r14, LSL, 6}, false, al, "al r7 r14 LSL 6", "al_r7_r14_LSL_6"},
510 {{al, r11, r2, ROR, 10}, false, al, "al r11 r2 ROR 10", "al_r11_r2_ROR_10"},
511 {{al, r3, r9, ROR, 7}, false, al, "al r3 r9 ROR 7", "al_r3_r9_ROR_7"},
512 {{al, r2, r12, LSL, 11}, false, al, "al r2 r12 LSL 11", "al_r2_r12_LSL_11"},
513 {{al, r4, r2, ROR, 19}, false, al, "al r4 r2 ROR 19", "al_r4_r2_ROR_19"},
514 {{al, r13, r0, LSL, 5}, false, al, "al r13 r0 LSL 5", "al_r13_r0_LSL_5"},
515 {{al, r14, r11, ROR, 29},
516 false,
517 al,
518 "al r14 r11 ROR 29",
519 "al_r14_r11_ROR_29"},
520 {{al, r9, r6, LSL, 11}, false, al, "al r9 r6 LSL 11", "al_r9_r6_LSL_11"},
521 {{al, r2, r10, ROR, 30}, false, al, "al r2 r10 ROR 30", "al_r2_r10_ROR_30"},
522 {{al, r3, r14, ROR, 4}, false, al, "al r3 r14 ROR 4", "al_r3_r14_ROR_4"},
523 {{al, r9, r6, LSL, 24}, false, al, "al r9 r6 LSL 24", "al_r9_r6_LSL_24"},
524 {{al, r9, r8, LSL, 2}, false, al, "al r9 r8 LSL 2", "al_r9_r8_LSL_2"},
525 {{al, r12, r5, ROR, 7}, false, al, "al r12 r5 ROR 7", "al_r12_r5_ROR_7"},
526 {{al, r1, r11, ROR, 20}, false, al, "al r1 r11 ROR 20", "al_r1_r11_ROR_20"},
527 {{al, r6, r12, LSL, 6}, false, al, "al r6 r12 LSL 6", "al_r6_r12_LSL_6"},
528 {{al, r14, r11, ROR, 26},
529 false,
530 al,
531 "al r14 r11 ROR 26",
532 "al_r14_r11_ROR_26"},
533 {{al, r5, r8, ROR, 6}, false, al, "al r5 r8 ROR 6", "al_r5_r8_ROR_6"},
534 {{al, r10, r4, LSL, 8}, false, al, "al r10 r4 LSL 8", "al_r10_r4_LSL_8"},
535 {{al, r5, r0, ROR, 24}, false, al, "al r5 r0 ROR 24", "al_r5_r0_ROR_24"},
536 {{al, r10, r3, LSL, 20}, false, al, "al r10 r3 LSL 20", "al_r10_r3_LSL_20"},
537 {{al, r14, r4, LSL, 22}, false, al, "al r14 r4 LSL 22", "al_r14_r4_LSL_22"},
538 {{al, r8, r8, ROR, 1}, false, al, "al r8 r8 ROR 1", "al_r8_r8_ROR_1"},
539 {{al, r12, r9, ROR, 8}, false, al, "al r12 r9 ROR 8", "al_r12_r9_ROR_8"},
540 {{al, r6, r13, ROR, 15}, false, al, "al r6 r13 ROR 15", "al_r6_r13_ROR_15"},
541 {{al, r9, r5, LSL, 2}, false, al, "al r9 r5 LSL 2", "al_r9_r5_LSL_2"},
542 {{al, r13, r8, LSL, 17}, false, al, "al r13 r8 LSL 17", "al_r13_r8_LSL_17"},
543 {{al, r2, r5, ROR, 27}, false, al, "al r2 r5 ROR 27", "al_r2_r5_ROR_27"},
544 {{al, r13, r12, ROR, 10},
545 false,
546 al,
547 "al r13 r12 ROR 10",
548 "al_r13_r12_ROR_10"},
549 {{al, r13, r2, LSL, 30}, false, al, "al r13 r2 LSL 30", "al_r13_r2_LSL_30"},
550 {{al, r10, r11, LSL, 20},
551 false,
552 al,
553 "al r10 r11 LSL 20",
554 "al_r10_r11_LSL_20"},
555 {{al, r6, r1, ROR, 22}, false, al, "al r6 r1 ROR 22", "al_r6_r1_ROR_22"},
556 {{al, r0, r4, ROR, 18}, false, al, "al r0 r4 ROR 18", "al_r0_r4_ROR_18"},
557 {{al, r11, r14, ROR, 19},
558 false,
559 al,
560 "al r11 r14 ROR 19",
561 "al_r11_r14_ROR_19"},
562 {{al, r0, r7, ROR, 4}, false, al, "al r0 r7 ROR 4", "al_r0_r7_ROR_4"},
563 {{al, r1, r5, LSL, 13}, false, al, "al r1 r5 LSL 13", "al_r1_r5_LSL_13"},
564 {{al, r11, r14, LSL, 6}, false, al, "al r11 r14 LSL 6", "al_r11_r14_LSL_6"},
565 {{al, r6, r11, LSL, 10}, false, al, "al r6 r11 LSL 10", "al_r6_r11_LSL_10"},
566 {{al, r10, r14, LSL, 1}, false, al, "al r10 r14 LSL 1", "al_r10_r14_LSL_1"},
567 {{al, r13, r4, ROR, 29}, false, al, "al r13 r4 ROR 29", "al_r13_r4_ROR_29"},
568 {{al, r9, r8, ROR, 28}, false, al, "al r9 r8 ROR 28", "al_r9_r8_ROR_28"},
569 {{al, r7, r12, ROR, 22}, false, al, "al r7 r12 ROR 22", "al_r7_r12_ROR_22"},
570 {{al, r1, r12, ROR, 10}, false, al, "al r1 r12 ROR 10", "al_r1_r12_ROR_10"},
571 {{al, r7, r8, ROR, 31}, false, al, "al r7 r8 ROR 31", "al_r7_r8_ROR_31"},
572 {{al, r0, r2, ROR, 25}, false, al, "al r0 r2 ROR 25", "al_r0_r2_ROR_25"},
573 {{al, r3, r5, LSL, 24}, false, al, "al r3 r5 LSL 24", "al_r3_r5_LSL_24"},
574 {{al, r11, r10, LSL, 25},
575 false,
576 al,
577 "al r11 r10 LSL 25",
578 "al_r11_r10_LSL_25"},
579 {{al, r11, r1, LSL, 9}, false, al, "al r11 r1 LSL 9", "al_r11_r1_LSL_9"},
580 {{al, r2, r7, LSL, 3}, false, al, "al r2 r7 LSL 3", "al_r2_r7_LSL_3"},
581 {{al, r0, r10, ROR, 20}, false, al, "al r0 r10 ROR 20", "al_r0_r10_ROR_20"},
582 {{al, r7, r0, LSL, 2}, false, al, "al r7 r0 LSL 2", "al_r7_r0_LSL_2"},
583 {{al, r12, r5, LSL, 8}, false, al, "al r12 r5 LSL 8", "al_r12_r5_LSL_8"},
584 {{al, r11, r1, ROR, 16}, false, al, "al r11 r1 ROR 16", "al_r11_r1_ROR_16"},
585 {{al, r3, r3, LSL, 30}, false, al, "al r3 r3 LSL 30", "al_r3_r3_LSL_30"},
586 {{al, r4, r9, LSL, 16}, false, al, "al r4 r9 LSL 16", "al_r4_r9_LSL_16"},
587 {{al, r9, r8, LSL, 27}, false, al, "al r9 r8 LSL 27", "al_r9_r8_LSL_27"},
588 {{al, r4, r2, LSL, 15}, false, al, "al r4 r2 LSL 15", "al_r4_r2_LSL_15"},
589 {{al, r12, r13, LSL, 3}, false, al, "al r12 r13 LSL 3", "al_r12_r13_LSL_3"},
590 {{al, r11, r3, LSL, 29}, false, al, "al r11 r3 LSL 29", "al_r11_r3_LSL_29"},
591 {{al, r4, r6, ROR, 23}, false, al, "al r4 r6 ROR 23", "al_r4_r6_ROR_23"},
592 {{al, r5, r8, LSL, 3}, false, al, "al r5 r8 LSL 3", "al_r5_r8_LSL_3"},
593 {{al, r1, r9, ROR, 4}, false, al, "al r1 r9 ROR 4", "al_r1_r9_ROR_4"},
594 {{al, r13, r6, LSL, 12}, false, al, "al r13 r6 LSL 12", "al_r13_r6_LSL_12"},
595 {{al, r12, r6, ROR, 17}, false, al, "al r12 r6 ROR 17", "al_r12_r6_ROR_17"},
596 {{al, r2, r1, LSL, 22}, false, al, "al r2 r1 LSL 22", "al_r2_r1_LSL_22"},
597 {{al, r9, r2, LSL, 10}, false, al, "al r9 r2 LSL 10", "al_r9_r2_LSL_10"},
598 {{al, r11, r10, LSL, 21},
599 false,
600 al,
601 "al r11 r10 LSL 21",
602 "al_r11_r10_LSL_21"},
603 {{al, r8, r12, LSL, 31}, false, al, "al r8 r12 LSL 31", "al_r8_r12_LSL_31"},
604 {{al, r5, r2, LSL, 11}, false, al, "al r5 r2 LSL 11", "al_r5_r2_LSL_11"},
605 {{al, r9, r6, LSL, 31}, false, al, "al r9 r6 LSL 31", "al_r9_r6_LSL_31"},
606 {{al, r6, r6, ROR, 23}, false, al, "al r6 r6 ROR 23", "al_r6_r6_ROR_23"},
607 {{al, r14, r3, LSL, 5}, false, al, "al r14 r3 LSL 5", "al_r14_r3_LSL_5"},
608 {{al, r14, r9, ROR, 26}, false, al, "al r14 r9 ROR 26", "al_r14_r9_ROR_26"},
609 {{al, r13, r1, ROR, 15}, false, al, "al r13 r1 ROR 15", "al_r13_r1_ROR_15"},
610 {{al, r2, r13, LSL, 13}, false, al, "al r2 r13 LSL 13", "al_r2_r13_LSL_13"},
611 {{al, r14, r7, LSL, 8}, false, al, "al r14 r7 LSL 8", "al_r14_r7_LSL_8"},
612 {{al, r9, r4, LSL, 8}, false, al, "al r9 r4 LSL 8", "al_r9_r4_LSL_8"},
613 {{al, r0, r13, LSL, 26}, false, al, "al r0 r13 LSL 26", "al_r0_r13_LSL_26"},
614 {{al, r11, r1, LSL, 12}, false, al, "al r11 r1 LSL 12", "al_r11_r1_LSL_12"},
615 {{al, r7, r6, LSL, 5}, false, al, "al r7 r6 LSL 5", "al_r7_r6_LSL_5"},
616 {{al, r4, r9, LSL, 15}, false, al, "al r4 r9 LSL 15", "al_r4_r9_LSL_15"},
617 {{al, r2, r14, ROR, 19}, false, al, "al r2 r14 ROR 19", "al_r2_r14_ROR_19"},
618 {{al, r12, r4, LSL, 21}, false, al, "al r12 r4 LSL 21", "al_r12_r4_LSL_21"},
619 {{al, r0, r9, ROR, 23}, false, al, "al r0 r9 ROR 23", "al_r0_r9_ROR_23"},
620 {{al, r5, r13, ROR, 31}, false, al, "al r5 r13 ROR 31", "al_r5_r13_ROR_31"},
621 {{al, r8, r1, ROR, 19}, false, al, "al r8 r1 ROR 19", "al_r8_r1_ROR_19"},
622 {{al, r1, r11, ROR, 10}, false, al, "al r1 r11 ROR 10", "al_r1_r11_ROR_10"},
623 {{al, r10, r7, ROR, 22}, false, al, "al r10 r7 ROR 22", "al_r10_r7_ROR_22"},
624 {{al, r10, r11, LSL, 26},
625 false,
626 al,
627 "al r10 r11 LSL 26",
628 "al_r10_r11_LSL_26"},
629 {{al, r0, r14, ROR, 15}, false, al, "al r0 r14 ROR 15", "al_r0_r14_ROR_15"},
630 {{al, r1, r9, LSL, 20}, false, al, "al r1 r9 LSL 20", "al_r1_r9_LSL_20"},
631 {{al, r7, r0, LSL, 11}, false, al, "al r7 r0 LSL 11", "al_r7_r0_LSL_11"},
632 {{al, r10, r14, ROR, 15},
633 false,
634 al,
635 "al r10 r14 ROR 15",
636 "al_r10_r14_ROR_15"},
637 {{al, r1, r11, LSL, 2}, false, al, "al r1 r11 LSL 2", "al_r1_r11_LSL_2"},
638 {{al, r1, r13, ROR, 2}, false, al, "al r1 r13 ROR 2", "al_r1_r13_ROR_2"},
639 {{al, r12, r1, ROR, 13}, false, al, "al r12 r1 ROR 13", "al_r12_r1_ROR_13"},
640 {{al, r1, r4, LSL, 17}, false, al, "al r1 r4 LSL 17", "al_r1_r4_LSL_17"},
641 {{al, r11, r4, ROR, 16}, false, al, "al r11 r4 ROR 16", "al_r11_r4_ROR_16"},
642 {{al, r1, r1, LSL, 31}, false, al, "al r1 r1 LSL 31", "al_r1_r1_LSL_31"},
643 {{al, r11, r0, ROR, 15}, false, al, "al r11 r0 ROR 15", "al_r11_r0_ROR_15"},
644 {{al, r1, r12, LSL, 10}, false, al, "al r1 r12 LSL 10", "al_r1_r12_LSL_10"},
645 {{al, r0, r12, LSL, 11}, false, al, "al r0 r12 LSL 11", "al_r0_r12_LSL_11"},
646 {{al, r10, r10, ROR, 8}, false, al, "al r10 r10 ROR 8", "al_r10_r10_ROR_8"},
647 {{al, r2, r5, ROR, 29}, false, al, "al r2 r5 ROR 29", "al_r2_r5_ROR_29"},
648 {{al, r7, r7, LSL, 9}, false, al, "al r7 r7 LSL 9", "al_r7_r7_LSL_9"},
649 {{al, r9, r1, LSL, 11}, false, al, "al r9 r1 LSL 11", "al_r9_r1_LSL_11"},
650 {{al, r5, r8, ROR, 14}, false, al, "al r5 r8 ROR 14", "al_r5_r8_ROR_14"},
651 {{al, r1, r6, ROR, 25}, false, al, "al r1 r6 ROR 25", "al_r1_r6_ROR_25"},
652 {{al, r13, r2, LSL, 7}, false, al, "al r13 r2 LSL 7", "al_r13_r2_LSL_7"},
653 {{al, r0, r3, ROR, 24}, false, al, "al r0 r3 ROR 24", "al_r0_r3_ROR_24"},
654 {{al, r4, r5, ROR, 31}, false, al, "al r4 r5 ROR 31", "al_r4_r5_ROR_31"},
655 {{al, r0, r13, ROR, 28}, false, al, "al r0 r13 ROR 28", "al_r0_r13_ROR_28"},
656 {{al, r11, r3, LSL, 5}, false, al, "al r11 r3 LSL 5", "al_r11_r3_LSL_5"},
657 {{al, r3, r1, LSL, 1}, false, al, "al r3 r1 LSL 1", "al_r3_r1_LSL_1"},
658 {{al, r10, r7, ROR, 8}, false, al, "al r10 r7 ROR 8", "al_r10_r7_ROR_8"},
659 {{al, r0, r13, LSL, 17}, false, al, "al r0 r13 LSL 17", "al_r0_r13_LSL_17"},
660 {{al, r10, r3, LSL, 16}, false, al, "al r10 r3 LSL 16", "al_r10_r3_LSL_16"},
661 {{al, r14, r14, LSL, 21},
662 false,
663 al,
664 "al r14 r14 LSL 21",
665 "al_r14_r14_LSL_21"},
666 {{al, r0, r7, ROR, 12}, false, al, "al r0 r7 ROR 12", "al_r0_r7_ROR_12"},
667 {{al, r4, r11, LSL, 1}, false, al, "al r4 r11 LSL 1", "al_r4_r11_LSL_1"},
668 {{al, r4, r10, ROR, 25}, false, al, "al r4 r10 ROR 25", "al_r4_r10_ROR_25"},
669 {{al, r11, r7, LSL, 10}, false, al, "al r11 r7 LSL 10", "al_r11_r7_LSL_10"},
670 {{al, r4, r13, LSL, 13}, false, al, "al r4 r13 LSL 13", "al_r4_r13_LSL_13"},
671 {{al, r11, r4, ROR, 9}, false, al, "al r11 r4 ROR 9", "al_r11_r4_ROR_9"},
672 {{al, r8, r3, LSL, 4}, false, al, "al r8 r3 LSL 4", "al_r8_r3_LSL_4"},
673 {{al, r0, r3, LSL, 22}, false, al, "al r0 r3 LSL 22", "al_r0_r3_LSL_22"},
674 {{al, r9, r3, LSL, 16}, false, al, "al r9 r3 LSL 16", "al_r9_r3_LSL_16"},
675 {{al, r1, r11, LSL, 24}, false, al, "al r1 r11 LSL 24", "al_r1_r11_LSL_24"},
676 {{al, r0, r7, LSL, 11}, false, al, "al r0 r7 LSL 11", "al_r0_r7_LSL_11"},
677 {{al, r13, r8, LSL, 29}, false, al, "al r13 r8 LSL 29", "al_r13_r8_LSL_29"},
678 {{al, r8, r8, LSL, 1}, false, al, "al r8 r8 LSL 1", "al_r8_r8_LSL_1"},
679 {{al, r8, r1, LSL, 21}, false, al, "al r8 r1 LSL 21", "al_r8_r1_LSL_21"},
680 {{al, r1, r3, LSL, 27}, false, al, "al r1 r3 LSL 27", "al_r1_r3_LSL_27"},
681 {{al, r1, r8, ROR, 2}, false, al, "al r1 r8 ROR 2", "al_r1_r8_ROR_2"},
682 {{al, r9, r4, ROR, 9}, false, al, "al r9 r4 ROR 9", "al_r9_r4_ROR_9"},
683 {{al, r10, r3, ROR, 28}, false, al, "al r10 r3 ROR 28", "al_r10_r3_ROR_28"},
684 {{al, r4, r8, ROR, 11}, false, al, "al r4 r8 ROR 11", "al_r4_r8_ROR_11"},
685 {{al, r2, r3, LSL, 17}, false, al, "al r2 r3 LSL 17", "al_r2_r3_LSL_17"},
686 {{al, r5, r6, ROR, 17}, false, al, "al r5 r6 ROR 17", "al_r5_r6_ROR_17"},
687 {{al, r8, r9, LSL, 6}, false, al, "al r8 r9 LSL 6", "al_r8_r9_LSL_6"},
688 {{al, r9, r11, ROR, 29}, false, al, "al r9 r11 ROR 29", "al_r9_r11_ROR_29"},
689 {{al, r11, r12, ROR, 20},
690 false,
691 al,
692 "al r11 r12 ROR 20",
693 "al_r11_r12_ROR_20"},
694 {{al, r8, r13, LSL, 21}, false, al, "al r8 r13 LSL 21", "al_r8_r13_LSL_21"},
695 {{al, r8, r9, LSL, 22}, false, al, "al r8 r9 LSL 22", "al_r8_r9_LSL_22"},
696 {{al, r11, r1, ROR, 14}, false, al, "al r11 r1 ROR 14", "al_r11_r1_ROR_14"},
697 {{al, r13, r3, LSL, 15}, false, al, "al r13 r3 LSL 15", "al_r13_r3_LSL_15"},
698 {{al, r3, r7, LSL, 9}, false, al, "al r3 r7 LSL 9", "al_r3_r7_LSL_9"},
699 {{al, r5, r4, ROR, 10}, false, al, "al r5 r4 ROR 10", "al_r5_r4_ROR_10"},
700 {{al, r11, r10, LSL, 24},
701 false,
702 al,
703 "al r11 r10 LSL 24",
704 "al_r11_r10_LSL_24"},
705 {{al, r1, r9, ROR, 25}, false, al, "al r1 r9 ROR 25", "al_r1_r9_ROR_25"},
706 {{al, r9, r2, ROR, 5}, false, al, "al r9 r2 ROR 5", "al_r9_r2_ROR_5"},
707 {{al, r5, r4, ROR, 19}, false, al, "al r5 r4 ROR 19", "al_r5_r4_ROR_19"},
708 {{al, r1, r14, ROR, 19}, false, al, "al r1 r14 ROR 19", "al_r1_r14_ROR_19"},
709 {{al, r10, r9, LSL, 30}, false, al, "al r10 r9 LSL 30", "al_r10_r9_LSL_30"},
710 {{al, r9, r4, ROR, 24}, false, al, "al r9 r4 ROR 24", "al_r9_r4_ROR_24"},
711 {{al, r6, r6, LSL, 23}, false, al, "al r6 r6 LSL 23", "al_r6_r6_LSL_23"},
712 {{al, r5, r7, LSL, 29}, false, al, "al r5 r7 LSL 29", "al_r5_r7_LSL_29"},
713 {{al, r10, r5, LSL, 10}, false, al, "al r10 r5 LSL 10", "al_r10_r5_LSL_10"},
714 {{al, r13, r8, LSL, 15}, false, al, "al r13 r8 LSL 15", "al_r13_r8_LSL_15"},
715 {{al, r5, r2, ROR, 14}, false, al, "al r5 r2 ROR 14", "al_r5_r2_ROR_14"},
716 {{al, r11, r3, ROR, 6}, false, al, "al r11 r3 ROR 6", "al_r11_r3_ROR_6"},
717 {{al, r12, r7, ROR, 9}, false, al, "al r12 r7 ROR 9", "al_r12_r7_ROR_9"},
718 {{al, r1, r3, ROR, 23}, false, al, "al r1 r3 ROR 23", "al_r1_r3_ROR_23"},
719 {{al, r10, r13, LSL, 30},
720 false,
721 al,
722 "al r10 r13 LSL 30",
723 "al_r10_r13_LSL_30"},
724 {{al, r3, r2, LSL, 15}, false, al, "al r3 r2 LSL 15", "al_r3_r2_LSL_15"},
725 {{al, r6, r0, LSL, 31}, false, al, "al r6 r0 LSL 31", "al_r6_r0_LSL_31"},
726 {{al, r13, r12, LSL, 12},
727 false,
728 al,
729 "al r13 r12 LSL 12",
730 "al_r13_r12_LSL_12"},
731 {{al, r7, r8, ROR, 9}, false, al, "al r7 r8 ROR 9", "al_r7_r8_ROR_9"},
732 {{al, r7, r13, LSL, 16}, false, al, "al r7 r13 LSL 16", "al_r7_r13_LSL_16"},
733 {{al, r3, r6, LSL, 17}, false, al, "al r3 r6 LSL 17", "al_r3_r6_LSL_17"},
734 {{al, r13, r4, ROR, 14}, false, al, "al r13 r4 ROR 14", "al_r13_r4_ROR_14"},
735 {{al, r2, r5, ROR, 7}, false, al, "al r2 r5 ROR 7", "al_r2_r5_ROR_7"},
736 {{al, r7, r10, ROR, 18}, false, al, "al r7 r10 ROR 18", "al_r7_r10_ROR_18"},
737 {{al, r7, r12, LSL, 26}, false, al, "al r7 r12 LSL 26", "al_r7_r12_LSL_26"},
738 {{al, r13, r13, ROR, 25},
739 false,
740 al,
741 "al r13 r13 ROR 25",
742 "al_r13_r13_ROR_25"},
743 {{al, r11, r2, ROR, 5}, false, al, "al r11 r2 ROR 5", "al_r11_r2_ROR_5"},
744 {{al, r0, r14, ROR, 8}, false, al, "al r0 r14 ROR 8", "al_r0_r14_ROR_8"},
745 {{al, r6, r2, ROR, 27}, false, al, "al r6 r2 ROR 27", "al_r6_r2_ROR_27"},
746 {{al, r4, r14, LSL, 31}, false, al, "al r4 r14 LSL 31", "al_r4_r14_LSL_31"},
747 {{al, r1, r0, LSL, 7}, false, al, "al r1 r0 LSL 7", "al_r1_r0_LSL_7"},
748 {{al, r0, r8, LSL, 10}, false, al, "al r0 r8 LSL 10", "al_r0_r8_LSL_10"},
749 {{al, r9, r0, LSL, 13}, false, al, "al r9 r0 LSL 13", "al_r9_r0_LSL_13"},
750 {{al, r11, r11, ROR, 11},
751 false,
752 al,
753 "al r11 r11 ROR 11",
754 "al_r11_r11_ROR_11"},
755 {{al, r11, r4, ROR, 7}, false, al, "al r11 r4 ROR 7", "al_r11_r4_ROR_7"},
756 {{al, r10, r4, ROR, 19}, false, al, "al r10 r4 ROR 19", "al_r10_r4_ROR_19"},
757 {{al, r1, r13, ROR, 4}, false, al, "al r1 r13 ROR 4", "al_r1_r13_ROR_4"},
758 {{al, r9, r14, ROR, 5}, false, al, "al r9 r14 ROR 5", "al_r9_r14_ROR_5"},
759 {{al, r14, r11, LSL, 22},
760 false,
761 al,
762 "al r14 r11 LSL 22",
763 "al_r14_r11_LSL_22"},
764 {{al, r2, r4, LSL, 17}, false, al, "al r2 r4 LSL 17", "al_r2_r4_LSL_17"},
765 {{al, r2, r6, LSL, 15}, false, al, "al r2 r6 LSL 15", "al_r2_r6_LSL_15"},
766 {{al, r10, r5, ROR, 28}, false, al, "al r10 r5 ROR 28", "al_r10_r5_ROR_28"},
767 {{al, r6, r4, ROR, 13}, false, al, "al r6 r4 ROR 13", "al_r6_r4_ROR_13"},
768 {{al, r3, r4, ROR, 10}, false, al, "al r3 r4 ROR 10", "al_r3_r4_ROR_10"},
769 {{al, r3, r7, ROR, 15}, false, al, "al r3 r7 ROR 15", "al_r3_r7_ROR_15"},
770 {{al, r7, r14, LSL, 28}, false, al, "al r7 r14 LSL 28", "al_r7_r14_LSL_28"},
771 {{al, r10, r6, ROR, 23}, false, al, "al r10 r6 ROR 23", "al_r10_r6_ROR_23"},
772 {{al, r4, r5, ROR, 4}, false, al, "al r4 r5 ROR 4", "al_r4_r5_ROR_4"},
773 {{al, r9, r3, ROR, 8}, false, al, "al r9 r3 ROR 8", "al_r9_r3_ROR_8"},
774 {{al, r2, r1, LSL, 14}, false, al, "al r2 r1 LSL 14", "al_r2_r1_LSL_14"},
775 {{al, r10, r7, LSL, 4}, false, al, "al r10 r7 LSL 4", "al_r10_r7_LSL_4"},
776 {{al, r0, r0, LSL, 18}, false, al, "al r0 r0 LSL 18", "al_r0_r0_LSL_18"},
777 {{al, r12, r3, ROR, 18}, false, al, "al r12 r3 ROR 18", "al_r12_r3_ROR_18"},
778 {{al, r5, r5, LSL, 4}, false, al, "al r5 r5 LSL 4", "al_r5_r5_LSL_4"},
779 {{al, r11, r4, ROR, 12}, false, al, "al r11 r4 ROR 12", "al_r11_r4_ROR_12"},
780 {{al, r5, r14, ROR, 23}, false, al, "al r5 r14 ROR 23", "al_r5_r14_ROR_23"},
781 {{al, r7, r6, LSL, 31}, false, al, "al r7 r6 LSL 31", "al_r7_r6_LSL_31"},
782 {{al, r14, r2, ROR, 7}, false, al, "al r14 r2 ROR 7", "al_r14_r2_ROR_7"},
783 {{al, r10, r0, ROR, 23}, false, al, "al r10 r0 ROR 23", "al_r10_r0_ROR_23"},
784 {{al, r6, r0, LSL, 25}, false, al, "al r6 r0 LSL 25", "al_r6_r0_LSL_25"},
785 {{al, r7, r4, ROR, 16}, false, al, "al r7 r4 ROR 16", "al_r7_r4_ROR_16"},
786 {{al, r9, r0, LSL, 19}, false, al, "al r9 r0 LSL 19", "al_r9_r0_LSL_19"},
787 {{al, r7, r2, LSL, 23}, false, al, "al r7 r2 LSL 23", "al_r7_r2_LSL_23"},
788 {{al, r7, r10, LSL, 17}, false, al, "al r7 r10 LSL 17", "al_r7_r10_LSL_17"},
789 {{al, r8, r10, ROR, 19}, false, al, "al r8 r10 ROR 19", "al_r8_r10_ROR_19"},
790 {{al, r6, r9, LSL, 19}, false, al, "al r6 r9 LSL 19", "al_r6_r9_LSL_19"},
791 {{al, r12, r6, LSL, 14}, false, al, "al r12 r6 LSL 14", "al_r12_r6_LSL_14"},
792 {{al, r4, r12, ROR, 24}, false, al, "al r4 r12 ROR 24", "al_r4_r12_ROR_24"},
793 {{al, r3, r6, LSL, 6}, false, al, "al r3 r6 LSL 6", "al_r3_r6_LSL_6"},
794 {{al, r11, r6, ROR, 4}, false, al, "al r11 r6 ROR 4", "al_r11_r6_ROR_4"},
795 {{al, r14, r3, LSL, 10}, false, al, "al r14 r3 LSL 10", "al_r14_r3_LSL_10"},
796 {{al, r1, r1, LSL, 12}, false, al, "al r1 r1 LSL 12", "al_r1_r1_LSL_12"},
797 {{al, r7, r8, LSL, 19}, false, al, "al r7 r8 LSL 19", "al_r7_r8_LSL_19"},
798 {{al, r5, r5, LSL, 22}, false, al, "al r5 r5 LSL 22", "al_r5_r5_LSL_22"},
799 {{al, r14, r8, ROR, 29}, false, al, "al r14 r8 ROR 29", "al_r14_r8_ROR_29"},
800 {{al, r3, r14, LSL, 24}, false, al, "al r3 r14 LSL 24", "al_r3_r14_LSL_24"},
801 {{al, r11, r14, ROR, 5}, false, al, "al r11 r14 ROR 5", "al_r11_r14_ROR_5"},
802 {{al, r12, r4, ROR, 15}, false, al, "al r12 r4 ROR 15", "al_r12_r4_ROR_15"},
803 {{al, r3, r5, LSL, 12}, false, al, "al r3 r5 LSL 12", "al_r3_r5_LSL_12"},
804 {{al, r0, r12, ROR, 26}, false, al, "al r0 r12 ROR 26", "al_r0_r12_ROR_26"},
805 {{al, r5, r7, ROR, 12}, false, al, "al r5 r7 ROR 12", "al_r5_r7_ROR_12"},
806 {{al, r8, r9, LSL, 17}, false, al, "al r8 r9 LSL 17", "al_r8_r9_LSL_17"},
807 {{al, r1, r2, ROR, 13}, false, al, "al r1 r2 ROR 13", "al_r1_r2_ROR_13"},
808 {{al, r0, r13, ROR, 8}, false, al, "al r0 r13 ROR 8", "al_r0_r13_ROR_8"},
809 {{al, r4, r0, LSL, 9}, false, al, "al r4 r0 LSL 9", "al_r4_r0_LSL_9"},
810 {{al, r6, r2, LSL, 21}, false, al, "al r6 r2 LSL 21", "al_r6_r2_LSL_21"},
811 {{al, r5, r3, ROR, 29}, false, al, "al r5 r3 ROR 29", "al_r5_r3_ROR_29"},
812 {{al, r14, r6, LSL, 7}, false, al, "al r14 r6 LSL 7", "al_r14_r6_LSL_7"},
813 {{al, r9, r4, ROR, 11}, false, al, "al r9 r4 ROR 11", "al_r9_r4_ROR_11"},
814 {{al, r4, r0, LSL, 14}, false, al, "al r4 r0 LSL 14", "al_r4_r0_LSL_14"},
815 {{al, r10, r14, ROR, 3}, false, al, "al r10 r14 ROR 3", "al_r10_r14_ROR_3"},
816 {{al, r0, r11, LSL, 31}, false, al, "al r0 r11 LSL 31", "al_r0_r11_LSL_31"},
817 {{al, r5, r2, LSL, 17}, false, al, "al r5 r2 LSL 17", "al_r5_r2_LSL_17"},
818 {{al, r2, r6, ROR, 26}, false, al, "al r2 r6 ROR 26", "al_r2_r6_ROR_26"},
819 {{al, r9, r9, LSL, 8}, false, al, "al r9 r9 LSL 8", "al_r9_r9_LSL_8"},
820 {{al, r12, r12, LSL, 19},
821 false,
822 al,
823 "al r12 r12 LSL 19",
824 "al_r12_r12_LSL_19"},
825 {{al, r2, r11, LSL, 10}, false, al, "al r2 r11 LSL 10", "al_r2_r11_LSL_10"},
826 {{al, r4, r7, ROR, 6}, false, al, "al r4 r7 ROR 6", "al_r4_r7_ROR_6"},
827 {{al, r2, r3, ROR, 14}, false, al, "al r2 r3 ROR 14", "al_r2_r3_ROR_14"},
828 {{al, r4, r12, ROR, 16}, false, al, "al r4 r12 ROR 16", "al_r4_r12_ROR_16"},
829 {{al, r12, r12, LSL, 2}, false, al, "al r12 r12 LSL 2", "al_r12_r12_LSL_2"},
830 {{al, r10, r5, ROR, 23}, false, al, "al r10 r5 ROR 23", "al_r10_r5_ROR_23"},
831 {{al, r8, r14, ROR, 24}, false, al, "al r8 r14 ROR 24", "al_r8_r14_ROR_24"},
832 {{al, r7, r1, LSL, 15}, false, al, "al r7 r1 LSL 15", "al_r7_r1_LSL_15"},
833 {{al, r13, r10, LSL, 8}, false, al, "al r13 r10 LSL 8", "al_r13_r10_LSL_8"},
834 {{al, r1, r9, ROR, 5}, false, al, "al r1 r9 ROR 5", "al_r1_r9_ROR_5"},
835 {{al, r1, r2, ROR, 17}, false, al, "al r1 r2 ROR 17", "al_r1_r2_ROR_17"},
836 {{al, r12, r3, ROR, 30}, false, al, "al r12 r3 ROR 30", "al_r12_r3_ROR_30"},
837 {{al, r0, r5, LSL, 18}, false, al, "al r0 r5 LSL 18", "al_r0_r5_LSL_18"},
838 {{al, r5, r7, LSL, 2}, false, al, "al r5 r7 LSL 2", "al_r5_r7_LSL_2"},
839 {{al, r13, r4, LSL, 30}, false, al, "al r13 r4 LSL 30", "al_r13_r4_LSL_30"},
840 {{al, r2, r14, ROR, 31}, false, al, "al r2 r14 ROR 31", "al_r2_r14_ROR_31"},
841 {{al, r12, r8, LSL, 30}, false, al, "al r12 r8 LSL 30", "al_r12_r8_LSL_30"},
842 {{al, r3, r5, ROR, 4}, false, al, "al r3 r5 ROR 4", "al_r3_r5_ROR_4"},
843 {{al, r11, r11, ROR, 3}, false, al, "al r11 r11 ROR 3", "al_r11_r11_ROR_3"},
844 {{al, r4, r2, ROR, 17}, false, al, "al r4 r2 ROR 17", "al_r4_r2_ROR_17"},
845 {{al, r6, r9, LSL, 15}, false, al, "al r6 r9 LSL 15", "al_r6_r9_LSL_15"},
846 {{al, r5, r6, ROR, 25}, false, al, "al r5 r6 ROR 25", "al_r5_r6_ROR_25"},
847 {{al, r6, r3, LSL, 19}, false, al, "al r6 r3 LSL 19", "al_r6_r3_LSL_19"},
848 {{al, r3, r7, LSL, 6}, false, al, "al r3 r7 LSL 6", "al_r3_r7_LSL_6"},
849 {{al, r12, r1, LSL, 13}, false, al, "al r12 r1 LSL 13", "al_r12_r1_LSL_13"},
850 {{al, r2, r1, ROR, 9}, false, al, "al r2 r1 ROR 9", "al_r2_r1_ROR_9"},
851 {{al, r12, r4, LSL, 28}, false, al, "al r12 r4 LSL 28", "al_r12_r4_LSL_28"},
852 {{al, r14, r13, ROR, 12},
853 false,
854 al,
855 "al r14 r13 ROR 12",
856 "al_r14_r13_ROR_12"},
857 {{al, r11, r12, LSL, 16},
858 false,
859 al,
860 "al r11 r12 LSL 16",
861 "al_r11_r12_LSL_16"},
862 {{al, r8, r7, LSL, 29}, false, al, "al r8 r7 LSL 29", "al_r8_r7_LSL_29"},
863 {{al, r0, r10, ROR, 25}, false, al, "al r0 r10 ROR 25", "al_r0_r10_ROR_25"},
864 {{al, r9, r6, LSL, 3}, false, al, "al r9 r6 LSL 3", "al_r9_r6_LSL_3"},
865 {{al, r9, r12, LSL, 18}, false, al, "al r9 r12 LSL 18", "al_r9_r12_LSL_18"},
866 {{al, r1, r14, LSL, 9}, false, al, "al r1 r14 LSL 9", "al_r1_r14_LSL_9"},
867 {{al, r3, r2, ROR, 7}, false, al, "al r3 r2 ROR 7", "al_r3_r2_ROR_7"},
868 {{al, r14, r9, ROR, 16}, false, al, "al r14 r9 ROR 16", "al_r14_r9_ROR_16"},
869 {{al, r6, r12, LSL, 2}, false, al, "al r6 r12 LSL 2", "al_r6_r12_LSL_2"},
870 {{al, r12, r7, LSL, 14}, false, al, "al r12 r7 LSL 14", "al_r12_r7_LSL_14"},
871 {{al, r12, r10, LSL, 8}, false, al, "al r12 r10 LSL 8", "al_r12_r10_LSL_8"},
872 {{al, r4, r13, ROR, 27}, false, al, "al r4 r13 ROR 27", "al_r4_r13_ROR_27"},
873 {{al, r5, r5, ROR, 20}, false, al, "al r5 r5 ROR 20", "al_r5_r5_ROR_20"},
874 {{al, r1, r5, ROR, 14}, false, al, "al r1 r5 ROR 14", "al_r1_r5_ROR_14"},
875 {{al, r6, r2, ROR, 28}, false, al, "al r6 r2 ROR 28", "al_r6_r2_ROR_28"},
876 {{al, r1, r8, LSL, 9}, false, al, "al r1 r8 LSL 9", "al_r1_r8_LSL_9"},
877 {{al, r2, r10, LSL, 16}, false, al, "al r2 r10 LSL 16", "al_r2_r10_LSL_16"},
878 {{al, r5, r1, LSL, 30}, false, al, "al r5 r1 LSL 30", "al_r5_r1_LSL_30"},
879 {{al, r5, r3, ROR, 19}, false, al, "al r5 r3 ROR 19", "al_r5_r3_ROR_19"},
880 {{al, r1, r2, LSL, 7}, false, al, "al r1 r2 LSL 7", "al_r1_r2_LSL_7"},
881 {{al, r7, r10, ROR, 11}, false, al, "al r7 r10 ROR 11", "al_r7_r10_ROR_11"},
882 {{al, r0, r10, LSL, 10}, false, al, "al r0 r10 LSL 10", "al_r0_r10_LSL_10"},
883 {{al, r7, r5, ROR, 1}, false, al, "al r7 r5 ROR 1", "al_r7_r5_ROR_1"},
884 {{al, r0, r1, LSL, 3}, false, al, "al r0 r1 LSL 3", "al_r0_r1_LSL_3"},
885 {{al, r11, r0, LSL, 24}, false, al, "al r11 r0 LSL 24", "al_r11_r0_LSL_24"},
886 {{al, r3, r7, LSL, 29}, false, al, "al r3 r7 LSL 29", "al_r3_r7_LSL_29"},
887 {{al, r5, r3, ROR, 28}, false, al, "al r5 r3 ROR 28", "al_r5_r3_ROR_28"},
888 {{al, r3, r4, LSL, 26}, false, al, "al r3 r4 LSL 26", "al_r3_r4_LSL_26"},
889 {{al, r8, r10, LSL, 30}, false, al, "al r8 r10 LSL 30", "al_r8_r10_LSL_30"},
890 {{al, r5, r5, ROR, 7}, false, al, "al r5 r5 ROR 7", "al_r5_r5_ROR_7"},
891 {{al, r6, r7, ROR, 13}, false, al, "al r6 r7 ROR 13", "al_r6_r7_ROR_13"},
892 {{al, r7, r1, ROR, 20}, false, al, "al r7 r1 ROR 20", "al_r7_r1_ROR_20"},
893 {{al, r11, r11, LSL, 1}, false, al, "al r11 r11 LSL 1", "al_r11_r11_LSL_1"},
894 {{al, r10, r13, LSL, 1}, false, al, "al r10 r13 LSL 1", "al_r10_r13_LSL_1"},
895 {{al, r6, r11, LSL, 9}, false, al, "al r6 r11 LSL 9", "al_r6_r11_LSL_9"},
896 {{al, r2, r3, LSL, 18}, false, al, "al r2 r3 LSL 18", "al_r2_r3_LSL_18"},
897 {{al, r3, r4, ROR, 16}, false, al, "al r3 r4 ROR 16", "al_r3_r4_ROR_16"},
898 {{al, r4, r10, LSL, 1}, false, al, "al r4 r10 LSL 1", "al_r4_r10_LSL_1"},
899 {{al, r1, r5, LSL, 31}, false, al, "al r1 r5 LSL 31", "al_r1_r5_LSL_31"},
900 {{al, r6, r6, LSL, 29}, false, al, "al r6 r6 LSL 29", "al_r6_r6_LSL_29"},
901 {{al, r10, r13, LSL, 5}, false, al, "al r10 r13 LSL 5", "al_r10_r13_LSL_5"},
902 {{al, r14, r6, LSL, 24}, false, al, "al r14 r6 LSL 24", "al_r14_r6_LSL_24"},
903 {{al, r4, r12, LSL, 31}, false, al, "al r4 r12 LSL 31", "al_r4_r12_LSL_31"},
904 {{al, r12, r7, ROR, 6}, false, al, "al r12 r7 ROR 6", "al_r12_r7_ROR_6"},
905 {{al, r14, r10, LSL, 26},
906 false,
907 al,
908 "al r14 r10 LSL 26",
909 "al_r14_r10_LSL_26"},
910 {{al, r9, r9, ROR, 24}, false, al, "al r9 r9 ROR 24", "al_r9_r9_ROR_24"},
911 {{al, r8, r13, LSL, 5}, false, al, "al r8 r13 LSL 5", "al_r8_r13_LSL_5"},
912 {{al, r4, r11, LSL, 17}, false, al, "al r4 r11 LSL 17", "al_r4_r11_LSL_17"},
913 {{al, r2, r14, LSL, 9}, false, al, "al r2 r14 LSL 9", "al_r2_r14_LSL_9"},
914 {{al, r1, r0, ROR, 29}, false, al, "al r1 r0 ROR 29", "al_r1_r0_ROR_29"},
915 {{al, r10, r2, ROR, 9}, false, al, "al r10 r2 ROR 9", "al_r10_r2_ROR_9"},
916 {{al, r3, r7, ROR, 29}, false, al, "al r3 r7 ROR 29", "al_r3_r7_ROR_29"},
917 {{al, r1, r12, ROR, 1}, false, al, "al r1 r12 ROR 1", "al_r1_r12_ROR_1"},
918 {{al, r7, r2, ROR, 8}, false, al, "al r7 r2 ROR 8", "al_r7_r2_ROR_8"},
919 {{al, r7, r1, LSL, 24}, false, al, "al r7 r1 LSL 24", "al_r7_r1_LSL_24"},
920 {{al, r4, r1, LSL, 17}, false, al, "al r4 r1 LSL 17", "al_r4_r1_LSL_17"},
921 {{al, r12, r11, ROR, 22},
922 false,
923 al,
924 "al r12 r11 ROR 22",
925 "al_r12_r11_ROR_22"},
926 {{al, r0, r4, ROR, 20}, false, al, "al r0 r4 ROR 20", "al_r0_r4_ROR_20"},
927 {{al, r5, r12, LSL, 11}, false, al, "al r5 r12 LSL 11", "al_r5_r12_LSL_11"},
928 {{al, r11, r2, ROR, 31}, false, al, "al r11 r2 ROR 31", "al_r11_r2_ROR_31"},
929 {{al, r14, r11, LSL, 4}, false, al, "al r14 r11 LSL 4", "al_r14_r11_LSL_4"},
930 {{al, r6, r8, LSL, 12}, false, al, "al r6 r8 LSL 12", "al_r6_r8_LSL_12"},
931 {{al, r14, r0, LSL, 30}, false, al, "al r14 r0 LSL 30", "al_r14_r0_LSL_30"},
932 {{al, r6, r11, LSL, 29}, false, al, "al r6 r11 LSL 29", "al_r6_r11_LSL_29"},
933 {{al, r6, r12, LSL, 21}, false, al, "al r6 r12 LSL 21", "al_r6_r12_LSL_21"},
934 {{al, r9, r6, LSL, 29}, false, al, "al r9 r6 LSL 29", "al_r9_r6_LSL_29"},
935 {{al, r10, r13, ROR, 29},
936 false,
937 al,
938 "al r10 r13 ROR 29",
939 "al_r10_r13_ROR_29"},
940 {{al, r5, r7, ROR, 16}, false, al, "al r5 r7 ROR 16", "al_r5_r7_ROR_16"},
941 {{al, r0, r14, LSL, 27}, false, al, "al r0 r14 LSL 27", "al_r0_r14_LSL_27"},
942 {{al, r14, r4, ROR, 18}, false, al, "al r14 r4 ROR 18", "al_r14_r4_ROR_18"},
943 {{al, r14, r2, LSL, 28}, false, al, "al r14 r2 LSL 28", "al_r14_r2_LSL_28"},
944 {{al, r13, r3, LSL, 29}, false, al, "al r13 r3 LSL 29", "al_r13_r3_LSL_29"},
945 {{al, r8, r7, LSL, 19}, false, al, "al r8 r7 LSL 19", "al_r8_r7_LSL_19"},
946 {{al, r14, r1, LSL, 1}, false, al, "al r14 r1 LSL 1", "al_r14_r1_LSL_1"},
947 {{al, r1, r11, ROR, 2}, false, al, "al r1 r11 ROR 2", "al_r1_r11_ROR_2"},
948 {{al, r7, r4, ROR, 14}, false, al, "al r7 r4 ROR 14", "al_r7_r4_ROR_14"},
949 {{al, r6, r3, ROR, 22}, false, al, "al r6 r3 ROR 22", "al_r6_r3_ROR_22"},
950 {{al, r5, r4, LSL, 1}, false, al, "al r5 r4 LSL 1", "al_r5_r4_LSL_1"},
951 {{al, r11, r11, LSL, 6}, false, al, "al r11 r11 LSL 6", "al_r11_r11_LSL_6"},
952 {{al, r13, r5, LSL, 21}, false, al, "al r13 r5 LSL 21", "al_r13_r5_LSL_21"},
953 {{al, r7, r5, ROR, 10}, false, al, "al r7 r5 ROR 10", "al_r7_r5_ROR_10"},
954 {{al, r13, r10, LSL, 17},
955 false,
956 al,
957 "al r13 r10 LSL 17",
958 "al_r13_r10_LSL_17"},
959 {{al, r7, r1, LSL, 5}, false, al, "al r7 r1 LSL 5", "al_r7_r1_LSL_5"},
960 {{al, r0, r11, LSL, 25}, false, al, "al r0 r11 LSL 25", "al_r0_r11_LSL_25"},
961 {{al, r3, r2, LSL, 9}, false, al, "al r3 r2 LSL 9", "al_r3_r2_LSL_9"},
962 {{al, r8, r11, ROR, 12}, false, al, "al r8 r11 ROR 12", "al_r8_r11_ROR_12"},
963 {{al, r12, r9, LSL, 21}, false, al, "al r12 r9 LSL 21", "al_r12_r9_LSL_21"},
964 {{al, r14, r3, ROR, 13}, false, al, "al r14 r3 ROR 13", "al_r14_r3_ROR_13"},
965 {{al, r13, r8, ROR, 26}, false, al, "al r13 r8 ROR 26", "al_r13_r8_ROR_26"},
966 {{al, r4, r11, ROR, 11}, false, al, "al r4 r11 ROR 11", "al_r4_r11_ROR_11"},
967 {{al, r10, r3, ROR, 16}, false, al, "al r10 r3 ROR 16", "al_r10_r3_ROR_16"},
968 {{al, r14, r0, ROR, 12}, false, al, "al r14 r0 ROR 12", "al_r14_r0_ROR_12"},
969 {{al, r11, r4, LSL, 18}, false, al, "al r11 r4 LSL 18", "al_r11_r4_LSL_18"},
970 {{al, r13, r13, ROR, 3}, false, al, "al r13 r13 ROR 3", "al_r13_r13_ROR_3"},
971 {{al, r10, r14, ROR, 10},
972 false,
973 al,
974 "al r10 r14 ROR 10",
975 "al_r10_r14_ROR_10"},
976 {{al, r12, r10, LSL, 12},
977 false,
978 al,
979 "al r12 r10 LSL 12",
980 "al_r12_r10_LSL_12"},
981 {{al, r0, r0, ROR, 29}, false, al, "al r0 r0 ROR 29", "al_r0_r0_ROR_29"},
982 {{al, r13, r3, LSL, 4}, false, al, "al r13 r3 LSL 4", "al_r13_r3_LSL_4"},
983 {{al, r1, r10, LSL, 15}, false, al, "al r1 r10 LSL 15", "al_r1_r10_LSL_15"},
984 {{al, r3, r10, LSL, 18}, false, al, "al r3 r10 LSL 18", "al_r3_r10_LSL_18"},
985 {{al, r11, r14, ROR, 13},
986 false,
987 al,
988 "al r11 r14 ROR 13",
989 "al_r11_r14_ROR_13"},
990 {{al, r5, r8, ROR, 9}, false, al, "al r5 r8 ROR 9", "al_r5_r8_ROR_9"},
991 {{al, r1, r7, LSL, 3}, false, al, "al r1 r7 LSL 3", "al_r1_r7_LSL_3"},
992 {{al, r8, r9, LSL, 16}, false, al, "al r8 r9 LSL 16", "al_r8_r9_LSL_16"},
993 {{al, r6, r6, ROR, 29}, false, al, "al r6 r6 ROR 29", "al_r6_r6_ROR_29"},
994 {{al, r4, r10, ROR, 6}, false, al, "al r4 r10 ROR 6", "al_r4_r10_ROR_6"},
995 {{al, r13, r7, LSL, 8}, false, al, "al r13 r7 LSL 8", "al_r13_r7_LSL_8"},
996 {{al, r0, r0, LSL, 26}, false, al, "al r0 r0 LSL 26", "al_r0_r0_LSL_26"},
997 {{al, r6, r3, ROR, 14}, false, al, "al r6 r3 ROR 14", "al_r6_r3_ROR_14"},
998 {{al, r13, r12, ROR, 16},
999 false,
1000 al,
1001 "al r13 r12 ROR 16",
1002 "al_r13_r12_ROR_16"},
1003 {{al, r0, r14, ROR, 16}, false, al, "al r0 r14 ROR 16", "al_r0_r14_ROR_16"},
1004 {{al, r2, r13, ROR, 3}, false, al, "al r2 r13 ROR 3", "al_r2_r13_ROR_3"},
1005 {{al, r3, r5, LSL, 31}, false, al, "al r3 r5 LSL 31", "al_r3_r5_LSL_31"},
1006 {{al, r12, r10, LSL, 14},
1007 false,
1008 al,
1009 "al r12 r10 LSL 14",
1010 "al_r12_r10_LSL_14"},
1011 {{al, r5, r10, LSL, 24}, false, al, "al r5 r10 LSL 24", "al_r5_r10_LSL_24"},
1012 {{al, r5, r5, LSL, 21}, false, al, "al r5 r5 LSL 21", "al_r5_r5_LSL_21"},
1013 {{al, r1, r1, LSL, 23}, false, al, "al r1 r1 LSL 23", "al_r1_r1_LSL_23"},
1014 {{al, r6, r0, LSL, 12}, false, al, "al r6 r0 LSL 12", "al_r6_r0_LSL_12"},
1015 {{al, r6, r2, ROR, 22}, false, al, "al r6 r2 ROR 22", "al_r6_r2_ROR_22"},
1016 {{al, r10, r0, LSL, 15}, false, al, "al r10 r0 LSL 15", "al_r10_r0_LSL_15"},
1017 {{al, r14, r9, ROR, 28}, false, al, "al r14 r9 ROR 28", "al_r14_r9_ROR_28"},
1018 {{al, r0, r2, ROR, 6}, false, al, "al r0 r2 ROR 6", "al_r0_r2_ROR_6"},
1019 {{al, r9, r4, LSL, 11}, false, al, "al r9 r4 LSL 11", "al_r9_r4_LSL_11"},
1020 {{al, r5, r11, LSL, 5}, false, al, "al r5 r11 LSL 5", "al_r5_r11_LSL_5"},
1021 {{al, r7, r4, ROR, 6}, false, al, "al r7 r4 ROR 6", "al_r7_r4_ROR_6"},
1022 {{al, r2, r10, ROR, 1}, false, al, "al r2 r10 ROR 1", "al_r2_r10_ROR_1"},
1023 {{al, r2, r3, LSL, 27}, false, al, "al r2 r3 LSL 27", "al_r2_r3_LSL_27"},
1024 {{al, r5, r13, LSL, 10}, false, al, "al r5 r13 LSL 10", "al_r5_r13_LSL_10"},
1025 {{al, r10, r3, LSL, 14}, false, al, "al r10 r3 LSL 14", "al_r10_r3_LSL_14"},
1026 {{al, r12, r7, ROR, 29}, false, al, "al r12 r7 ROR 29", "al_r12_r7_ROR_29"},
1027 {{al, r0, r0, ROR, 1}, false, al, "al r0 r0 ROR 1", "al_r0_r0_ROR_1"},
1028 {{al, r11, r13, LSL, 21},
1029 false,
1030 al,
1031 "al r11 r13 LSL 21",
1032 "al_r11_r13_LSL_21"},
1033 {{al, r7, r2, LSL, 12}, false, al, "al r7 r2 LSL 12", "al_r7_r2_LSL_12"},
1034 {{al, r1, r10, LSL, 2}, false, al, "al r1 r10 LSL 2", "al_r1_r10_LSL_2"},
1035 {{al, r11, r5, LSL, 19}, false, al, "al r11 r5 LSL 19", "al_r11_r5_LSL_19"},
1036 {{al, r13, r2, ROR, 2}, false, al, "al r13 r2 ROR 2", "al_r13_r2_ROR_2"},
1037 {{al, r7, r9, LSL, 8}, false, al, "al r7 r9 LSL 8", "al_r7_r9_LSL_8"},
1038 {{al, r5, r9, ROR, 8}, false, al, "al r5 r9 ROR 8", "al_r5_r9_ROR_8"},
1039 {{al, r10, r14, LSL, 31},
1040 false,
1041 al,
1042 "al r10 r14 LSL 31",
1043 "al_r10_r14_LSL_31"},
1044 {{al, r0, r2, ROR, 23}, false, al, "al r0 r2 ROR 23", "al_r0_r2_ROR_23"},
1045 {{al, r14, r13, LSL, 28},
1046 false,
1047 al,
1048 "al r14 r13 LSL 28",
1049 "al_r14_r13_LSL_28"},
1050 {{al, r1, r2, LSL, 25}, false, al, "al r1 r2 LSL 25", "al_r1_r2_LSL_25"},
1051 {{al, r3, r5, LSL, 29}, false, al, "al r3 r5 LSL 29", "al_r3_r5_LSL_29"},
1052 {{al, r3, r4, ROR, 13}, false, al, "al r3 r4 ROR 13", "al_r3_r4_ROR_13"},
1053 {{al, r4, r6, ROR, 4}, false, al, "al r4 r6 ROR 4", "al_r4_r6_ROR_4"},
1054 {{al, r6, r8, ROR, 3}, false, al, "al r6 r8 ROR 3", "al_r6_r8_ROR_3"},
1055 {{al, r11, r2, ROR, 2}, false, al, "al r11 r2 ROR 2", "al_r11_r2_ROR_2"},
1056 {{al, r14, r5, LSL, 29}, false, al, "al r14 r5 LSL 29", "al_r14_r5_LSL_29"},
1057 {{al, r0, r7, ROR, 23}, false, al, "al r0 r7 ROR 23", "al_r0_r7_ROR_23"},
1058 {{al, r2, r10, LSL, 15}, false, al, "al r2 r10 LSL 15", "al_r2_r10_LSL_15"},
1059 {{al, r6, r7, LSL, 5}, false, al, "al r6 r7 LSL 5", "al_r6_r7_LSL_5"},
1060 {{al, r11, r13, ROR, 3}, false, al, "al r11 r13 ROR 3", "al_r11_r13_ROR_3"},
1061 {{al, r5, r12, ROR, 13}, false, al, "al r5 r12 ROR 13", "al_r5_r12_ROR_13"},
1062 {{al, r9, r12, LSL, 26}, false, al, "al r9 r12 LSL 26", "al_r9_r12_LSL_26"},
1063 {{al, r7, r3, ROR, 12}, false, al, "al r7 r3 ROR 12", "al_r7_r3_ROR_12"},
1064 {{al, r9, r13, LSL, 7}, false, al, "al r9 r13 LSL 7", "al_r9_r13_LSL_7"},
1065 {{al, r6, r14, LSL, 25}, false, al, "al r6 r14 LSL 25", "al_r6_r14_LSL_25"},
1066 {{al, r1, r12, ROR, 17}, false, al, "al r1 r12 ROR 17", "al_r1_r12_ROR_17"},
1067 {{al, r1, r10, LSL, 24}, false, al, "al r1 r10 LSL 24", "al_r1_r10_LSL_24"},
1068 {{al, r0, r11, LSL, 17}, false, al, "al r0 r11 LSL 17", "al_r0_r11_LSL_17"},
1069 {{al, r8, r3, ROR, 11}, false, al, "al r8 r3 ROR 11", "al_r8_r3_ROR_11"},
1070 {{al, r11, r12, ROR, 22},
1071 false,
1072 al,
1073 "al r11 r12 ROR 22",
1074 "al_r11_r12_ROR_22"},
1075 {{al, r0, r9, ROR, 28}, false, al, "al r0 r9 ROR 28", "al_r0_r9_ROR_28"},
1076 {{al, r9, r3, ROR, 7}, false, al, "al r9 r3 ROR 7", "al_r9_r3_ROR_7"},
1077 {{al, r9, r2, ROR, 16}, false, al, "al r9 r2 ROR 16", "al_r9_r2_ROR_16"},
1078 {{al, r0, r12, LSL, 28}, false, al, "al r0 r12 LSL 28", "al_r0_r12_LSL_28"},
1079 {{al, r1, r4, ROR, 22}, false, al, "al r1 r4 ROR 22", "al_r1_r4_ROR_22"},
1080 {{al, r12, r7, LSL, 16}, false, al, "al r12 r7 LSL 16", "al_r12_r7_LSL_16"},
1081 {{al, r7, r9, ROR, 3}, false, al, "al r7 r9 ROR 3", "al_r7_r9_ROR_3"},
1082 {{al, r8, r2, LSL, 13}, false, al, "al r8 r2 LSL 13", "al_r8_r2_LSL_13"},
1083 {{al, r10, r11, LSL, 10},
1084 false,
1085 al,
1086 "al r10 r11 LSL 10",
1087 "al_r10_r11_LSL_10"},
1088 {{al, r10, r12, ROR, 6}, false, al, "al r10 r12 ROR 6", "al_r10_r12_ROR_6"},
1089 {{al, r3, r12, LSL, 27}, false, al, "al r3 r12 LSL 27", "al_r3_r12_LSL_27"},
1090 {{al, r10, r10, ROR, 27},
1091 false,
1092 al,
1093 "al r10 r10 ROR 27",
1094 "al_r10_r10_ROR_27"},
1095 {{al, r8, r8, LSL, 8}, false, al, "al r8 r8 LSL 8", "al_r8_r8_LSL_8"},
1096 {{al, r3, r0, ROR, 28}, false, al, "al r3 r0 ROR 28", "al_r3_r0_ROR_28"},
1097 {{al, r10, r3, ROR, 15}, false, al, "al r10 r3 ROR 15", "al_r10_r3_ROR_15"},
1098 {{al, r1, r14, LSL, 27}, false, al, "al r1 r14 LSL 27", "al_r1_r14_LSL_27"},
1099 {{al, r10, r1, LSL, 31}, false, al, "al r10 r1 LSL 31", "al_r10_r1_LSL_31"},
1100 {{al, r12, r11, LSL, 24},
1101 false,
1102 al,
1103 "al r12 r11 LSL 24",
1104 "al_r12_r11_LSL_24"},
1105 {{al, r5, r11, ROR, 11}, false, al, "al r5 r11 ROR 11", "al_r5_r11_ROR_11"},
1106 {{al, r13, r8, ROR, 12}, false, al, "al r13 r8 ROR 12", "al_r13_r8_ROR_12"},
1107 {{al, r1, r14, LSL, 28}, false, al, "al r1 r14 LSL 28", "al_r1_r14_LSL_28"},
1108 {{al, r6, r2, LSL, 6}, false, al, "al r6 r2 LSL 6", "al_r6_r2_LSL_6"},
1109 {{al, r14, r13, ROR, 22},
1110 false,
1111 al,
1112 "al r14 r13 ROR 22",
1113 "al_r14_r13_ROR_22"},
1114 {{al, r12, r12, ROR, 18},
1115 false,
1116 al,
1117 "al r12 r12 ROR 18",
1118 "al_r12_r12_ROR_18"},
1119 {{al, r8, r7, ROR, 2}, false, al, "al r8 r7 ROR 2", "al_r8_r7_ROR_2"},
1120 {{al, r6, r4, LSL, 2}, false, al, "al r6 r4 LSL 2", "al_r6_r4_LSL_2"},
1121 {{al, r2, r6, ROR, 17}, false, al, "al r2 r6 ROR 17", "al_r2_r6_ROR_17"},
1122 {{al, r11, r14, ROR, 16},
1123 false,
1124 al,
1125 "al r11 r14 ROR 16",
1126 "al_r11_r14_ROR_16"},
1127 {{al, r1, r5, ROR, 22}, false, al, "al r1 r5 ROR 22", "al_r1_r5_ROR_22"},
1128 {{al, r2, r2, ROR, 11}, false, al, "al r2 r2 ROR 11", "al_r2_r2_ROR_11"},
1129 {{al, r12, r9, ROR, 1}, false, al, "al r12 r9 ROR 1", "al_r12_r9_ROR_1"},
1130 {{al, r13, r5, LSL, 13}, false, al, "al r13 r5 LSL 13", "al_r13_r5_LSL_13"},
1131 {{al, r0, r0, LSL, 3}, false, al, "al r0 r0 LSL 3", "al_r0_r0_LSL_3"},
1132 {{al, r0, r11, ROR, 9}, false, al, "al r0 r11 ROR 9", "al_r0_r11_ROR_9"},
1133 {{al, r6, r1, LSL, 18}, false, al, "al r6 r1 LSL 18", "al_r6_r1_LSL_18"},
1134 {{al, r6, r3, LSL, 21}, false, al, "al r6 r3 LSL 21", "al_r6_r3_LSL_21"},
1135 {{al, r7, r6, LSL, 30}, false, al, "al r7 r6 LSL 30", "al_r7_r6_LSL_30"},
1136 {{al, r11, r3, ROR, 28}, false, al, "al r11 r3 ROR 28", "al_r11_r3_ROR_28"},
1137 {{al, r0, r4, ROR, 14}, false, al, "al r0 r4 ROR 14", "al_r0_r4_ROR_14"},
1138 {{al, r1, r14, ROR, 22}, false, al, "al r1 r14 ROR 22", "al_r1_r14_ROR_22"},
1139 {{al, r3, r13, LSL, 30}, false, al, "al r3 r13 LSL 30", "al_r3_r13_LSL_30"},
1140 {{al, r14, r6, LSL, 14}, false, al, "al r14 r6 LSL 14", "al_r14_r6_LSL_14"},
1141 {{al, r11, r10, ROR, 1}, false, al, "al r11 r10 ROR 1", "al_r11_r10_ROR_1"},
1142 {{al, r11, r13, ROR, 15},
1143 false,
1144 al,
1145 "al r11 r13 ROR 15",
1146 "al_r11_r13_ROR_15"},
1147 {{al, r5, r11, LSL, 28}, false, al, "al r5 r11 LSL 28", "al_r5_r11_LSL_28"},
1148 {{al, r9, r12, ROR, 28}, false, al, "al r9 r12 ROR 28", "al_r9_r12_ROR_28"},
1149 {{al, r14, r9, ROR, 31}, false, al, "al r14 r9 ROR 31", "al_r14_r9_ROR_31"},
1150 {{al, r7, r4, LSL, 24}, false, al, "al r7 r4 LSL 24", "al_r7_r4_LSL_24"},
1151 {{al, r11, r14, ROR, 6}, false, al, "al r11 r14 ROR 6", "al_r11_r14_ROR_6"},
1152 {{al, r2, r12, LSL, 5}, false, al, "al r2 r12 LSL 5", "al_r2_r12_LSL_5"},
1153 {{al, r1, r14, ROR, 6}, false, al, "al r1 r14 ROR 6", "al_r1_r14_ROR_6"},
1154 {{al, r6, r4, LSL, 20}, false, al, "al r6 r4 LSL 20", "al_r6_r4_LSL_20"},
1155 {{al, r10, r7, LSL, 26}, false, al, "al r10 r7 LSL 26", "al_r10_r7_LSL_26"},
1156 {{al, r5, r10, LSL, 23}, false, al, "al r5 r10 LSL 23", "al_r5_r10_LSL_23"},
1157 {{al, r9, r5, ROR, 27}, false, al, "al r9 r5 ROR 27", "al_r9_r5_ROR_27"},
1158 {{al, r6, r9, ROR, 19}, false, al, "al r6 r9 ROR 19", "al_r6_r9_ROR_19"},
1159 {{al, r2, r0, LSL, 29}, false, al, "al r2 r0 LSL 29", "al_r2_r0_LSL_29"},
1160 {{al, r3, r11, ROR, 9}, false, al, "al r3 r11 ROR 9", "al_r3_r11_ROR_9"},
1161 {{al, r0, r14, LSL, 7}, false, al, "al r0 r14 LSL 7", "al_r0_r14_LSL_7"},
1162 {{al, r5, r11, LSL, 10}, false, al, "al r5 r11 LSL 10", "al_r5_r11_LSL_10"},
1163 {{al, r12, r9, ROR, 25}, false, al, "al r12 r9 ROR 25", "al_r12_r9_ROR_25"},
1164 {{al, r11, r1, ROR, 2}, false, al, "al r11 r1 ROR 2", "al_r11_r1_ROR_2"},
1165 {{al, r8, r7, ROR, 14}, false, al, "al r8 r7 ROR 14", "al_r8_r7_ROR_14"},
1166 {{al, r7, r0, ROR, 1}, false, al, "al r7 r0 ROR 1", "al_r7_r0_ROR_1"},
1167 {{al, r3, r2, ROR, 18}, false, al, "al r3 r2 ROR 18", "al_r3_r2_ROR_18"},
1168 {{al, r14, r12, LSL, 4}, false, al, "al r14 r12 LSL 4", "al_r14_r12_LSL_4"},
1169 {{al, r12, r5, ROR, 8}, false, al, "al r12 r5 ROR 8", "al_r12_r5_ROR_8"},
1170 {{al, r6, r9, ROR, 27}, false, al, "al r6 r9 ROR 27", "al_r6_r9_ROR_27"},
1171 {{al, r10, r13, LSL, 8}, false, al, "al r10 r13 LSL 8", "al_r10_r13_LSL_8"},
1172 {{al, r10, r11, ROR, 9}, false, al, "al r10 r11 ROR 9", "al_r10_r11_ROR_9"},
1173 {{al, r2, r6, ROR, 5}, false, al, "al r2 r6 ROR 5", "al_r2_r6_ROR_5"},
1174 {{al, r9, r3, LSL, 17}, false, al, "al r9 r3 LSL 17", "al_r9_r3_LSL_17"},
1175 {{al, r12, r7, ROR, 19}, false, al, "al r12 r7 ROR 19", "al_r12_r7_ROR_19"},
1176 {{al, r9, r5, LSL, 11}, false, al, "al r9 r5 LSL 11", "al_r9_r5_LSL_11"},
1177 {{al, r14, r9, LSL, 20}, false, al, "al r14 r9 LSL 20", "al_r14_r9_LSL_20"},
1178 {{al, r6, r2, ROR, 4}, false, al, "al r6 r2 ROR 4", "al_r6_r2_ROR_4"},
1179 {{al, r8, r4, LSL, 3}, false, al, "al r8 r4 LSL 3", "al_r8_r4_LSL_3"},
1180 {{al, r5, r0, ROR, 22}, false, al, "al r5 r0 ROR 22", "al_r5_r0_ROR_22"},
1181 {{al, r10, r6, LSL, 13}, false, al, "al r10 r6 LSL 13", "al_r10_r6_LSL_13"},
1182 {{al, r10, r4, ROR, 7}, false, al, "al r10 r4 ROR 7", "al_r10_r4_ROR_7"},
1183 {{al, r6, r2, ROR, 17}, false, al, "al r6 r2 ROR 17", "al_r6_r2_ROR_17"},
1184 {{al, r9, r8, LSL, 26}, false, al, "al r9 r8 LSL 26", "al_r9_r8_LSL_26"},
1185 {{al, r6, r11, ROR, 15}, false, al, "al r6 r11 ROR 15", "al_r6_r11_ROR_15"},
1186 {{al, r12, r14, LSL, 8}, false, al, "al r12 r14 LSL 8", "al_r12_r14_LSL_8"},
1187 {{al, r4, r3, ROR, 3}, false, al, "al r4 r3 ROR 3", "al_r4_r3_ROR_3"},
1188 {{al, r9, r5, LSL, 12}, false, al, "al r9 r5 LSL 12", "al_r9_r5_LSL_12"},
1189 {{al, r6, r3, ROR, 13}, false, al, "al r6 r3 ROR 13", "al_r6_r3_ROR_13"},
1190 {{al, r10, r13, LSL, 21},
1191 false,
1192 al,
1193 "al r10 r13 LSL 21",
1194 "al_r10_r13_LSL_21"},
1195 {{al, r4, r0, ROR, 3}, false, al, "al r4 r0 ROR 3", "al_r4_r0_ROR_3"},
1196 {{al, r9, r11, LSL, 8}, false, al, "al r9 r11 LSL 8", "al_r9_r11_LSL_8"},
1197 {{al, r0, r14, ROR, 14}, false, al, "al r0 r14 ROR 14", "al_r0_r14_ROR_14"},
1198 {{al, r9, r9, ROR, 14}, false, al, "al r9 r9 ROR 14", "al_r9_r9_ROR_14"},
1199 {{al, r8, r14, ROR, 18}, false, al, "al r8 r14 ROR 18", "al_r8_r14_ROR_18"},
1200 {{al, r13, r2, ROR, 13}, false, al, "al r13 r2 ROR 13", "al_r13_r2_ROR_13"},
1201 {{al, r13, r13, LSL, 12},
1202 false,
1203 al,
1204 "al r13 r13 LSL 12",
1205 "al_r13_r13_LSL_12"},
1206 {{al, r14, r9, LSL, 25}, false, al, "al r14 r9 LSL 25", "al_r14_r9_LSL_25"},
1207 {{al, r1, r0, ROR, 9}, false, al, "al r1 r0 ROR 9", "al_r1_r0_ROR_9"},
1208 {{al, r12, r6, ROR, 20}, false, al, "al r12 r6 ROR 20", "al_r12_r6_ROR_20"},
1209 {{al, r9, r2, ROR, 23}, false, al, "al r9 r2 ROR 23", "al_r9_r2_ROR_23"},
1210 {{al, r2, r10, LSL, 1}, false, al, "al r2 r10 LSL 1", "al_r2_r10_LSL_1"},
1211 {{al, r8, r7, ROR, 15}, false, al, "al r8 r7 ROR 15", "al_r8_r7_ROR_15"},
1212 {{al, r5, r3, ROR, 14}, false, al, "al r5 r3 ROR 14", "al_r5_r3_ROR_14"},
1213 {{al, r4, r8, ROR, 1}, false, al, "al r4 r8 ROR 1", "al_r4_r8_ROR_1"},
1214 {{al, r1, r2, ROR, 5}, false, al, "al r1 r2 ROR 5", "al_r1_r2_ROR_5"},
1215 {{al, r6, r2, ROR, 16}, false, al, "al r6 r2 ROR 16", "al_r6_r2_ROR_16"},
1216 {{al, r5, r4, LSL, 15}, false, al, "al r5 r4 LSL 15", "al_r5_r4_LSL_15"},
1217 {{al, r4, r2, LSL, 14}, false, al, "al r4 r2 LSL 14", "al_r4_r2_LSL_14"},
1218 {{al, r2, r1, LSL, 7}, false, al, "al r2 r1 LSL 7", "al_r2_r1_LSL_7"},
1219 {{al, r0, r8, ROR, 30}, false, al, "al r0 r8 ROR 30", "al_r0_r8_ROR_30"},
1220 {{al, r9, r5, LSL, 22}, false, al, "al r9 r5 LSL 22", "al_r9_r5_LSL_22"},
1221 {{al, r9, r10, LSL, 25}, false, al, "al r9 r10 LSL 25", "al_r9_r10_LSL_25"},
1222 {{al, r4, r6, ROR, 15}, false, al, "al r4 r6 ROR 15", "al_r4_r6_ROR_15"},
1223 {{al, r2, r9, LSL, 29}, false, al, "al r2 r9 LSL 29", "al_r2_r9_LSL_29"},
1224 {{al, r6, r6, ROR, 27}, false, al, "al r6 r6 ROR 27", "al_r6_r6_ROR_27"},
1225 {{al, r11, r1, ROR, 26}, false, al, "al r11 r1 ROR 26", "al_r11_r1_ROR_26"},
1226 {{al, r5, r10, ROR, 23}, false, al, "al r5 r10 ROR 23", "al_r5_r10_ROR_23"},
1227 {{al, r13, r5, LSL, 29}, false, al, "al r13 r5 LSL 29", "al_r13_r5_LSL_29"},
1228 {{al, r14, r1, ROR, 27}, false, al, "al r14 r1 ROR 27", "al_r14_r1_ROR_27"},
1229 {{al, r0, r10, LSL, 27}, false, al, "al r0 r10 LSL 27", "al_r0_r10_LSL_27"},
1230 {{al, r2, r4, ROR, 14}, false, al, "al r2 r4 ROR 14", "al_r2_r4_ROR_14"},
1231 {{al, r1, r10, LSL, 31}, false, al, "al r1 r10 LSL 31", "al_r1_r10_LSL_31"},
1232 {{al, r2, r3, ROR, 5}, false, al, "al r2 r3 ROR 5", "al_r2_r3_ROR_5"},
1233 {{al, r0, r6, ROR, 14}, false, al, "al r0 r6 ROR 14", "al_r0_r6_ROR_14"},
1234 {{al, r11, r9, ROR, 25}, false, al, "al r11 r9 ROR 25", "al_r11_r9_ROR_25"},
1235 {{al, r2, r11, ROR, 29}, false, al, "al r2 r11 ROR 29", "al_r2_r11_ROR_29"},
1236 {{al, r7, r6, ROR, 2}, false, al, "al r7 r6 ROR 2", "al_r7_r6_ROR_2"},
1237 {{al, r8, r3, ROR, 3}, false, al, "al r8 r3 ROR 3", "al_r8_r3_ROR_3"},
1238 {{al, r8, r13, LSL, 18}, false, al, "al r8 r13 LSL 18", "al_r8_r13_LSL_18"},
1239 {{al, r3, r13, ROR, 27}, false, al, "al r3 r13 ROR 27", "al_r3_r13_ROR_27"},
1240 {{al, r5, r5, LSL, 18}, false, al, "al r5 r5 LSL 18", "al_r5_r5_LSL_18"},
1241 {{al, r14, r8, ROR, 17}, false, al, "al r14 r8 ROR 17", "al_r14_r8_ROR_17"},
1242 {{al, r10, r6, LSL, 18}, false, al, "al r10 r6 LSL 18", "al_r10_r6_LSL_18"},
1243 {{al, r7, r1, LSL, 2}, false, al, "al r7 r1 LSL 2", "al_r7_r1_LSL_2"},
1244 {{al, r9, r7, ROR, 13}, false, al, "al r9 r7 ROR 13", "al_r9_r7_ROR_13"},
1245 {{al, r5, r9, LSL, 29}, false, al, "al r5 r9 LSL 29", "al_r5_r9_LSL_29"},
1246 {{al, r14, r12, LSL, 22},
1247 false,
1248 al,
1249 "al r14 r12 LSL 22",
1250 "al_r14_r12_LSL_22"},
1251 {{al, r0, r8, LSL, 12}, false, al, "al r0 r8 LSL 12", "al_r0_r8_LSL_12"},
1252 {{al, r12, r12, ROR, 28},
1253 false,
1254 al,
1255 "al r12 r12 ROR 28",
1256 "al_r12_r12_ROR_28"},
1257 {{al, r12, r3, LSL, 2}, false, al, "al r12 r3 LSL 2", "al_r12_r3_LSL_2"},
1258 {{al, r6, r11, ROR, 3}, false, al, "al r6 r11 ROR 3", "al_r6_r11_ROR_3"},
1259 {{al, r1, r5, ROR, 21}, false, al, "al r1 r5 ROR 21", "al_r1_r5_ROR_21"},
1260 {{al, r0, r14, ROR, 29}, false, al, "al r0 r14 ROR 29", "al_r0_r14_ROR_29"},
1261 {{al, r11, r8, ROR, 16}, false, al, "al r11 r8 ROR 16", "al_r11_r8_ROR_16"},
1262 {{al, r9, r10, ROR, 31}, false, al, "al r9 r10 ROR 31", "al_r9_r10_ROR_31"},
1263 {{al, r10, r1, LSL, 25}, false, al, "al r10 r1 LSL 25", "al_r10_r1_LSL_25"},
1264 {{al, r9, r4, ROR, 1}, false, al, "al r9 r4 ROR 1", "al_r9_r4_ROR_1"},
1265 {{al, r5, r12, LSL, 4}, false, al, "al r5 r12 LSL 4", "al_r5_r12_LSL_4"},
1266 {{al, r10, r7, ROR, 25}, false, al, "al r10 r7 ROR 25", "al_r10_r7_ROR_25"},
1267 {{al, r9, r3, LSL, 6}, false, al, "al r9 r3 LSL 6", "al_r9_r3_LSL_6"},
1268 {{al, r7, r4, ROR, 26}, false, al, "al r7 r4 ROR 26", "al_r7_r4_ROR_26"},
1269 {{al, r13, r0, LSL, 31}, false, al, "al r13 r0 LSL 31", "al_r13_r0_LSL_31"},
1270 {{al, r9, r2, LSL, 22}, false, al, "al r9 r2 LSL 22", "al_r9_r2_LSL_22"},
1271 {{al, r6, r8, ROR, 21}, false, al, "al r6 r8 ROR 21", "al_r6_r8_ROR_21"},
1272 {{al, r12, r7, LSL, 11}, false, al, "al r12 r7 LSL 11", "al_r12_r7_LSL_11"},
1273 {{al, r10, r0, LSL, 17}, false, al, "al r10 r0 LSL 17", "al_r10_r0_LSL_17"},
1274 {{al, r2, r9, ROR, 23}, false, al, "al r2 r9 ROR 23", "al_r2_r9_ROR_23"},
1275 {{al, r2, r4, LSL, 6}, false, al, "al r2 r4 LSL 6", "al_r2_r4_LSL_6"},
1276 {{al, r7, r8, LSL, 24}, false, al, "al r7 r8 LSL 24", "al_r7_r8_LSL_24"},
1277 {{al, r8, r5, LSL, 25}, false, al, "al r8 r5 LSL 25", "al_r8_r5_LSL_25"},
1278 {{al, r10, r11, ROR, 23},
1279 false,
1280 al,
1281 "al r10 r11 ROR 23",
1282 "al_r10_r11_ROR_23"},
1283 {{al, r0, r14, LSL, 16}, false, al, "al r0 r14 LSL 16", "al_r0_r14_LSL_16"},
1284 {{al, r2, r3, LSL, 16}, false, al, "al r2 r3 LSL 16", "al_r2_r3_LSL_16"},
1285 {{al, r0, r11, ROR, 13}, false, al, "al r0 r11 ROR 13", "al_r0_r11_ROR_13"},
1286 {{al, r6, r4, ROR, 15}, false, al, "al r6 r4 ROR 15", "al_r6_r4_ROR_15"},
1287 {{al, r8, r9, LSL, 19}, false, al, "al r8 r9 LSL 19", "al_r8_r9_LSL_19"},
1288 {{al, r1, r13, LSL, 23}, false, al, "al r1 r13 LSL 23", "al_r1_r13_LSL_23"},
1289 {{al, r4, r11, LSL, 6}, false, al, "al r4 r11 LSL 6", "al_r4_r11_LSL_6"},
1290 {{al, r9, r0, ROR, 15}, false, al, "al r9 r0 ROR 15", "al_r9_r0_ROR_15"},
1291 {{al, r7, r0, ROR, 7}, false, al, "al r7 r0 ROR 7", "al_r7_r0_ROR_7"},
1292 {{al, r5, r7, LSL, 26}, false, al, "al r5 r7 LSL 26", "al_r5_r7_LSL_26"},
1293 {{al, r9, r4, LSL, 6}, false, al, "al r9 r4 LSL 6", "al_r9_r4_LSL_6"},
1294 {{al, r4, r9, LSL, 9}, false, al, "al r4 r9 LSL 9", "al_r4_r9_LSL_9"},
1295 {{al, r3, r14, ROR, 24}, false, al, "al r3 r14 ROR 24", "al_r3_r14_ROR_24"},
1296 {{al, r6, r6, ROR, 4}, false, al, "al r6 r6 ROR 4", "al_r6_r6_ROR_4"},
1297 {{al, r2, r1, ROR, 19}, false, al, "al r2 r1 ROR 19", "al_r2_r1_ROR_19"},
1298 {{al, r13, r1, LSL, 2}, false, al, "al r13 r1 LSL 2", "al_r13_r1_LSL_2"},
1299 {{al, r5, r9, ROR, 2}, false, al, "al r5 r9 ROR 2", "al_r5_r9_ROR_2"},
1300 {{al, r13, r14, ROR, 25},
1301 false,
1302 al,
1303 "al r13 r14 ROR 25",
1304 "al_r13_r14_ROR_25"},
1305 {{al, r2, r11, ROR, 18}, false, al, "al r2 r11 ROR 18", "al_r2_r11_ROR_18"},
1306 {{al, r10, r12, ROR, 5}, false, al, "al r10 r12 ROR 5", "al_r10_r12_ROR_5"},
1307 {{al, r2, r4, ROR, 2}, false, al, "al r2 r4 ROR 2", "al_r2_r4_ROR_2"},
1308 {{al, r12, r14, LSL, 15},
1309 false,
1310 al,
1311 "al r12 r14 LSL 15",
1312 "al_r12_r14_LSL_15"},
1313 {{al, r13, r2, LSL, 27}, false, al, "al r13 r2 LSL 27", "al_r13_r2_LSL_27"},
1314 {{al, r8, r13, ROR, 27}, false, al, "al r8 r13 ROR 27", "al_r8_r13_ROR_27"},
1315 {{al, r12, r11, LSL, 22},
1316 false,
1317 al,
1318 "al r12 r11 LSL 22",
1319 "al_r12_r11_LSL_22"},
1320 {{al, r13, r5, ROR, 12}, false, al, "al r13 r5 ROR 12", "al_r13_r5_ROR_12"},
1321 {{al, r13, r7, ROR, 17}, false, al, "al r13 r7 ROR 17", "al_r13_r7_ROR_17"},
1322 {{al, r4, r10, LSL, 26}, false, al, "al r4 r10 LSL 26", "al_r4_r10_LSL_26"},
1323 {{al, r6, r9, LSL, 24}, false, al, "al r6 r9 LSL 24", "al_r6_r9_LSL_24"},
1324 {{al, r14, r5, LSL, 13}, false, al, "al r14 r5 LSL 13", "al_r14_r5_LSL_13"},
1325 {{al, r12, r0, ROR, 8}, false, al, "al r12 r0 ROR 8", "al_r12_r0_ROR_8"},
1326 {{al, r1, r2, LSL, 30}, false, al, "al r1 r2 LSL 30", "al_r1_r2_LSL_30"},
1327 {{al, r10, r7, LSL, 15}, false, al, "al r10 r7 LSL 15", "al_r10_r7_LSL_15"},
1328 {{al, r0, r7, LSL, 31}, false, al, "al r0 r7 LSL 31", "al_r0_r7_LSL_31"},
1329 {{al, r14, r11, LSL, 9}, false, al, "al r14 r11 LSL 9", "al_r14_r11_LSL_9"},
1330 {{al, r1, r6, ROR, 2}, false, al, "al r1 r6 ROR 2", "al_r1_r6_ROR_2"},
1331 {{al, r5, r2, ROR, 26}, false, al, "al r5 r2 ROR 26", "al_r5_r2_ROR_26"},
1332 {{al, r3, r5, LSL, 2}, false, al, "al r3 r5 LSL 2", "al_r3_r5_LSL_2"},
1333 {{al, r8, r3, LSL, 3}, false, al, "al r8 r3 LSL 3", "al_r8_r3_LSL_3"},
1334 {{al, r6, r11, ROR, 6}, false, al, "al r6 r11 ROR 6", "al_r6_r11_ROR_6"},
1335 {{al, r4, r4, ROR, 13}, false, al, "al r4 r4 ROR 13", "al_r4_r4_ROR_13"},
1336 {{al, r4, r2, LSL, 20}, false, al, "al r4 r2 LSL 20", "al_r4_r2_LSL_20"},
1337 {{al, r13, r8, ROR, 25}, false, al, "al r13 r8 ROR 25", "al_r13_r8_ROR_25"},
1338 {{al, r3, r13, LSL, 18}, false, al, "al r3 r13 LSL 18", "al_r3_r13_LSL_18"},
1339 {{al, r1, r0, ROR, 23}, false, al, "al r1 r0 ROR 23", "al_r1_r0_ROR_23"},
1340 {{al, r14, r14, LSL, 25},
1341 false,
1342 al,
1343 "al r14 r14 LSL 25",
1344 "al_r14_r14_LSL_25"},
1345 {{al, r0, r8, LSL, 11}, false, al, "al r0 r8 LSL 11", "al_r0_r8_LSL_11"},
1346 {{al, r10, r1, LSL, 13}, false, al, "al r10 r1 LSL 13", "al_r10_r1_LSL_13"},
1347 {{al, r13, r10, LSL, 9}, false, al, "al r13 r10 LSL 9", "al_r13_r10_LSL_9"},
1348 {{al, r6, r13, LSL, 16}, false, al, "al r6 r13 LSL 16", "al_r6_r13_LSL_16"},
1349 {{al, r13, r14, LSL, 5}, false, al, "al r13 r14 LSL 5", "al_r13_r14_LSL_5"},
1350 {{al, r2, r6, LSL, 14}, false, al, "al r2 r6 LSL 14", "al_r2_r6_LSL_14"},
1351 {{al, r13, r7, LSL, 13}, false, al, "al r13 r7 LSL 13", "al_r13_r7_LSL_13"},
1352 {{al, r7, r5, ROR, 26}, false, al, "al r7 r5 ROR 26", "al_r7_r5_ROR_26"},
1353 {{al, r12, r11, LSL, 12},
1354 false,
1355 al,
1356 "al r12 r11 LSL 12",
1357 "al_r12_r11_LSL_12"},
1358 {{al, r5, r13, ROR, 8}, false, al, "al r5 r13 ROR 8", "al_r5_r13_ROR_8"},
1359 {{al, r2, r8, ROR, 2}, false, al, "al r2 r8 ROR 2", "al_r2_r8_ROR_2"},
1360 {{al, r0, r9, ROR, 24}, false, al, "al r0 r9 ROR 24", "al_r0_r9_ROR_24"},
1361 {{al, r8, r6, LSL, 29}, false, al, "al r8 r6 LSL 29", "al_r8_r6_LSL_29"},
1362 {{al, r9, r10, LSL, 18}, false, al, "al r9 r10 LSL 18", "al_r9_r10_LSL_18"},
1363 {{al, r6, r0, LSL, 24}, false, al, "al r6 r0 LSL 24", "al_r6_r0_LSL_24"},
1364 {{al, r9, r12, LSL, 20}, false, al, "al r9 r12 LSL 20", "al_r9_r12_LSL_20"},
1365 {{al, r14, r11, LSL, 3}, false, al, "al r14 r11 LSL 3", "al_r14_r11_LSL_3"},
1366 {{al, r12, r11, LSL, 26},
1367 false,
1368 al,
1369 "al r12 r11 LSL 26",
1370 "al_r12_r11_LSL_26"},
1371 {{al, r10, r0, LSL, 4}, false, al, "al r10 r0 LSL 4", "al_r10_r0_LSL_4"},
1372 {{al, r10, r12, ROR, 7}, false, al, "al r10 r12 ROR 7", "al_r10_r12_ROR_7"},
1373 {{al, r12, r3, LSL, 1}, false, al, "al r12 r3 LSL 1", "al_r12_r3_LSL_1"},
1374 {{al, r12, r4, ROR, 12}, false, al, "al r12 r4 ROR 12", "al_r12_r4_ROR_12"},
1375 {{al, r8, r0, ROR, 12}, false, al, "al r8 r0 ROR 12", "al_r8_r0_ROR_12"},
1376 {{al, r3, r3, ROR, 6}, false, al, "al r3 r3 ROR 6", "al_r3_r3_ROR_6"},
1377 {{al, r11, r0, LSL, 19}, false, al, "al r11 r0 LSL 19", "al_r11_r0_LSL_19"},
1378 {{al, r8, r14, LSL, 24}, false, al, "al r8 r14 LSL 24", "al_r8_r14_LSL_24"},
1379 {{al, r0, r11, LSL, 1}, false, al, "al r0 r11 LSL 1", "al_r0_r11_LSL_1"},
1380 {{al, r13, r5, LSL, 6}, false, al, "al r13 r5 LSL 6", "al_r13_r5_LSL_6"},
1381 {{al, r14, r14, ROR, 31},
1382 false,
1383 al,
1384 "al r14 r14 ROR 31",
1385 "al_r14_r14_ROR_31"},
1386 {{al, r10, r14, ROR, 6}, false, al, "al r10 r14 ROR 6", "al_r10_r14_ROR_6"},
1387 {{al, r14, r4, LSL, 1}, false, al, "al r14 r4 LSL 1", "al_r14_r4_LSL_1"},
1388 {{al, r0, r3, ROR, 7}, false, al, "al r0 r3 ROR 7", "al_r0_r3_ROR_7"},
1389 {{al, r2, r10, LSL, 17}, false, al, "al r2 r10 LSL 17", "al_r2_r10_LSL_17"},
1390 {{al, r11, r6, ROR, 19}, false, al, "al r11 r6 ROR 19", "al_r11_r6_ROR_19"},
1391 {{al, r9, r13, ROR, 11}, false, al, "al r9 r13 ROR 11", "al_r9_r13_ROR_11"},
1392 {{al, r11, r3, LSL, 2}, false, al, "al r11 r3 LSL 2", "al_r11_r3_LSL_2"},
1393 {{al, r9, r1, ROR, 4}, false, al, "al r9 r1 ROR 4", "al_r9_r1_ROR_4"},
1394 {{al, r8, r11, LSL, 16}, false, al, "al r8 r11 LSL 16", "al_r8_r11_LSL_16"},
1395 {{al, r1, r12, LSL, 11}, false, al, "al r1 r12 LSL 11", "al_r1_r12_LSL_11"},
1396 {{al, r0, r8, ROR, 6}, false, al, "al r0 r8 ROR 6", "al_r0_r8_ROR_6"},
1397 {{al, r5, r3, LSL, 2}, false, al, "al r5 r3 LSL 2", "al_r5_r3_LSL_2"},
1398 {{al, r6, r3, LSL, 17}, false, al, "al r6 r3 LSL 17", "al_r6_r3_LSL_17"},
1399 {{al, r3, r12, ROR, 27}, false, al, "al r3 r12 ROR 27", "al_r3_r12_ROR_27"},
1400 {{al, r6, r8, ROR, 15}, false, al, "al r6 r8 ROR 15", "al_r6_r8_ROR_15"},
1401 {{al, r7, r11, LSL, 10}, false, al, "al r7 r11 LSL 10", "al_r7_r11_LSL_10"},
1402 {{al, r2, r12, LSL, 15}, false, al, "al r2 r12 LSL 15", "al_r2_r12_LSL_15"},
1403 {{al, r2, r2, ROR, 8}, false, al, "al r2 r2 ROR 8", "al_r2_r2_ROR_8"},
1404 {{al, r12, r0, ROR, 26}, false, al, "al r12 r0 ROR 26", "al_r12_r0_ROR_26"},
1405 {{al, r11, r13, ROR, 19},
1406 false,
1407 al,
1408 "al r11 r13 ROR 19",
1409 "al_r11_r13_ROR_19"},
1410 {{al, r0, r9, ROR, 2}, false, al, "al r0 r9 ROR 2", "al_r0_r9_ROR_2"},
1411 {{al, r9, r7, ROR, 25}, false, al, "al r9 r7 ROR 25", "al_r9_r7_ROR_25"},
1412 {{al, r9, r8, LSL, 28}, false, al, "al r9 r8 LSL 28", "al_r9_r8_LSL_28"},
1413 {{al, r11, r12, ROR, 17},
1414 false,
1415 al,
1416 "al r11 r12 ROR 17",
1417 "al_r11_r12_ROR_17"},
1418 {{al, r12, r2, ROR, 20}, false, al, "al r12 r2 ROR 20", "al_r12_r2_ROR_20"},
1419 {{al, r11, r9, ROR, 16}, false, al, "al r11 r9 ROR 16", "al_r11_r9_ROR_16"},
1420 {{al, r13, r11, LSL, 14},
1421 false,
1422 al,
1423 "al r13 r11 LSL 14",
1424 "al_r13_r11_LSL_14"},
1425 {{al, r2, r4, ROR, 12}, false, al, "al r2 r4 ROR 12", "al_r2_r4_ROR_12"},
1426 {{al, r3, r12, ROR, 17}, false, al, "al r3 r12 ROR 17", "al_r3_r12_ROR_17"},
1427 {{al, r14, r11, ROR, 27},
1428 false,
1429 al,
1430 "al r14 r11 ROR 27",
1431 "al_r14_r11_ROR_27"}};
1432
1433 // These headers each contain an array of `TestResult` with the reference output
1434 // values. The reference arrays are names `kReference{mnemonic}`.
1435 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-cmn-t32.h"
1436 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-cmp-t32.h"
1437 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-mov-t32.h"
1438 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-movs-t32.h"
1439 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-mvn-t32.h"
1440 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-mvns-t32.h"
1441 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-teq-t32.h"
1442 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-amount-1to31-tst-t32.h"
1443
1444
1445 // The maximum number of errors to report in detail for each test.
1446 const unsigned kErrorReportLimit = 8;
1447
1448 typedef void (MacroAssembler::*Fn)(Condition cond,
1449 Register rd,
1450 const Operand& op);
1451
TestHelper(Fn instruction,const char * mnemonic,const TestResult reference[])1452 void TestHelper(Fn instruction,
1453 const char* mnemonic,
1454 const TestResult reference[]) {
1455 unsigned total_error_count = 0;
1456 MacroAssembler masm(BUF_SIZE);
1457
1458 masm.UseT32();
1459
1460 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1461 // Values to pass to the macro-assembler.
1462 Condition cond = kTests[i].operands.cond;
1463 Register rd = kTests[i].operands.rd;
1464 Register rn = kTests[i].operands.rn;
1465 ShiftType shift = kTests[i].operands.shift;
1466 uint32_t amount = kTests[i].operands.amount;
1467 Operand op(rn, shift, amount);
1468
1469 int32_t start = masm.GetCursorOffset();
1470 {
1471 // We never generate more that 4 bytes, as IT instructions are only
1472 // allowed for narrow encodings.
1473 ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
1474 if (kTests[i].in_it_block) {
1475 masm.it(kTests[i].it_condition);
1476 }
1477 (masm.*instruction)(cond, rd, op);
1478 }
1479 int32_t end = masm.GetCursorOffset();
1480
1481 const byte* result_ptr =
1482 masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
1483 VIXL_ASSERT(start < end);
1484 uint32_t result_size = end - start;
1485
1486 if (Test::generate_test_trace()) {
1487 // Print the result bytes.
1488 printf("const byte kInstruction_%s_%s[] = {\n",
1489 mnemonic,
1490 kTests[i].identifier);
1491 for (uint32_t j = 0; j < result_size; j++) {
1492 if (j == 0) {
1493 printf(" 0x%02" PRIx8, result_ptr[j]);
1494 } else {
1495 printf(", 0x%02" PRIx8, result_ptr[j]);
1496 }
1497 }
1498 // This comment is meant to be used by external tools to validate
1499 // the encoding. We can parse the comment to figure out what
1500 // instruction this corresponds to.
1501 if (kTests[i].in_it_block) {
1502 printf(" // It %s; %s %s\n};\n",
1503 kTests[i].it_condition.GetName(),
1504 mnemonic,
1505 kTests[i].operands_description);
1506 } else {
1507 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
1508 }
1509 } else {
1510 // Check we've emitted the exact same encoding as present in the
1511 // trace file. Only print up to `kErrorReportLimit` errors.
1512 if (((result_size != reference[i].size) ||
1513 (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
1514 0)) &&
1515 (++total_error_count <= kErrorReportLimit)) {
1516 printf("Error when testing \"%s\" with operands \"%s\":\n",
1517 mnemonic,
1518 kTests[i].operands_description);
1519 printf(" Expected: ");
1520 for (uint32_t j = 0; j < reference[i].size; j++) {
1521 if (j == 0) {
1522 printf("0x%02" PRIx8, reference[i].encoding[j]);
1523 } else {
1524 printf(", 0x%02" PRIx8, reference[i].encoding[j]);
1525 }
1526 }
1527 printf("\n");
1528 printf(" Found: ");
1529 for (uint32_t j = 0; j < result_size; j++) {
1530 if (j == 0) {
1531 printf("0x%02" PRIx8, result_ptr[j]);
1532 } else {
1533 printf(", 0x%02" PRIx8, result_ptr[j]);
1534 }
1535 }
1536 printf("\n");
1537 }
1538 }
1539 }
1540
1541 masm.FinalizeCode();
1542
1543 if (Test::generate_test_trace()) {
1544 // Finalize the trace file by writing the final `TestResult` array
1545 // which links all generated instruction encodings.
1546 printf("const TestResult kReference%s[] = {\n", mnemonic);
1547 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1548 printf(" {\n");
1549 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n",
1550 mnemonic,
1551 kTests[i].identifier);
1552 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
1553 printf(" },\n");
1554 }
1555 printf("};\n");
1556 } else {
1557 if (total_error_count > kErrorReportLimit) {
1558 printf("%u other errors follow.\n",
1559 total_error_count - kErrorReportLimit);
1560 }
1561 // Crash if the test failed.
1562 VIXL_CHECK(total_error_count == 0);
1563 }
1564 }
1565
1566 // Instantiate tests for each instruction in the list.
1567 #define TEST(mnemonic) \
1568 void Test_##mnemonic() { \
1569 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \
1570 } \
1571 Test test_##mnemonic( \
1572 "AARCH32_ASSEMBLER_COND_RD_OPERAND_RN_SHIFT_AMOUNT_1TO31_" #mnemonic \
1573 "_T32", \
1574 &Test_##mnemonic);
1575 FOREACH_INSTRUCTION(TEST)
1576 #undef TEST
1577
1578 } // namespace
1579 #endif
1580
1581 } // namespace aarch32
1582 } // namespace vixl
1583