1// Copyright 2016, VIXL authors
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are met:
6//
7//   * Redistributions of source code must retain the above copyright notice,
8//     this list of conditions and the following disclaimer.
9//   * Redistributions in binary form must reproduce the above copyright notice,
10//     this list of conditions and the following disclaimer in the documentation
11//     and/or other materials provided with the distribution.
12//   * Neither the name of ARM Limited nor the names of its contributors may be
13//     used to endorse or promote products derived from this software without
14//     specific prior written permission.
15//
16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27
28// -----------------------------------------------------------------------------
29// This file is auto generated from the
30// test/aarch32/config/template-assembler-aarch32.cc.in template file using
31// tools/generate_tests.py.
32//
33// PLEASE DO NOT EDIT.
34// -----------------------------------------------------------------------------
35
36
37#include "test-runner.h"
38
39#include "test-utils.h"
40#include "test-utils-aarch32.h"
41
42#include "aarch32/assembler-aarch32.h"
43#include "aarch32/macro-assembler-aarch32.h"
44
45#define BUF_SIZE (4096)
46
47namespace vixl {
48namespace aarch32 {
49
50// List of instruction mnemonics.
51#define FOREACH_INSTRUCTION(M) \
52  M(add)                       \
53  M(sub)
54
55
56// The following definitions are defined again in each generated test, therefore
57// we need to place them in an anomymous namespace. It expresses that they are
58// local to this file only, and the compiler is not allowed to share these types
59// across test files during template instantiation. Specifically, `Operands` has
60// various layouts across generated tests so it absolutely cannot be shared.
61
62#ifdef VIXL_INCLUDE_TARGET_T32
63namespace {
64
65// Values to be passed to the assembler to produce the instruction under test.
66struct Operands {
67  Condition cond;
68  Register rd;
69  Register rn;
70  int32_t immediate;
71};
72
73// This structure contains all data needed to test one specific
74// instruction.
75struct TestData {
76  // The `operands` field represents what to pass to the assembler to
77  // produce the instruction.
78  Operands operands;
79  // True if we need to generate an IT instruction for this test to be valid.
80  bool in_it_block;
81  // The condition to give the IT instruction, this will be set to "al" by
82  // default.
83  Condition it_condition;
84  // Description of the operands, used for error reporting.
85  const char* operands_description;
86  // Unique identifier, used for generating traces.
87  const char* identifier;
88};
89
90struct TestResult {
91  size_t size;
92  const byte* encoding;
93};
94
95// Each element of this array produce one instruction encoding.
96const TestData kTests[] =
97    {{{mi, r3, r3, 90}, true, mi, "mi r3 r3 90", "mi_r3_r3_90"},
98     {{vc, r6, r6, 138}, true, vc, "vc r6 r6 138", "vc_r6_r6_138"},
99     {{cc, r5, r5, 72}, true, cc, "cc r5 r5 72", "cc_r5_r5_72"},
100     {{ge, r6, r6, 181}, true, ge, "ge r6 r6 181", "ge_r6_r6_181"},
101     {{cc, r1, r1, 143}, true, cc, "cc r1 r1 143", "cc_r1_r1_143"},
102     {{vc, r5, r5, 114}, true, vc, "vc r5 r5 114", "vc_r5_r5_114"},
103     {{ge, r4, r4, 195}, true, ge, "ge r4 r4 195", "ge_r4_r4_195"},
104     {{lt, r0, r0, 203}, true, lt, "lt r0 r0 203", "lt_r0_r0_203"},
105     {{hi, r1, r1, 98}, true, hi, "hi r1 r1 98", "hi_r1_r1_98"},
106     {{gt, r3, r3, 0}, true, gt, "gt r3 r3 0", "gt_r3_r3_0"},
107     {{vs, r5, r5, 195}, true, vs, "vs r5 r5 195", "vs_r5_r5_195"},
108     {{le, r6, r6, 39}, true, le, "le r6 r6 39", "le_r6_r6_39"},
109     {{mi, r0, r0, 231}, true, mi, "mi r0 r0 231", "mi_r0_r0_231"},
110     {{mi, r5, r5, 220}, true, mi, "mi r5 r5 220", "mi_r5_r5_220"},
111     {{hi, r4, r4, 60}, true, hi, "hi r4 r4 60", "hi_r4_r4_60"},
112     {{vc, r0, r0, 83}, true, vc, "vc r0 r0 83", "vc_r0_r0_83"},
113     {{lt, r3, r3, 207}, true, lt, "lt r3 r3 207", "lt_r3_r3_207"},
114     {{vs, r3, r3, 101}, true, vs, "vs r3 r3 101", "vs_r3_r3_101"},
115     {{cs, r0, r0, 182}, true, cs, "cs r0 r0 182", "cs_r0_r0_182"},
116     {{vs, r0, r0, 53}, true, vs, "vs r0 r0 53", "vs_r0_r0_53"},
117     {{hi, r7, r7, 142}, true, hi, "hi r7 r7 142", "hi_r7_r7_142"},
118     {{ls, r5, r5, 89}, true, ls, "ls r5 r5 89", "ls_r5_r5_89"},
119     {{ls, r5, r5, 32}, true, ls, "ls r5 r5 32", "ls_r5_r5_32"},
120     {{ls, r1, r1, 29}, true, ls, "ls r1 r1 29", "ls_r1_r1_29"},
121     {{hi, r3, r3, 62}, true, hi, "hi r3 r3 62", "hi_r3_r3_62"},
122     {{eq, r3, r3, 216}, true, eq, "eq r3 r3 216", "eq_r3_r3_216"},
123     {{mi, r5, r5, 167}, true, mi, "mi r5 r5 167", "mi_r5_r5_167"},
124     {{ge, r6, r6, 88}, true, ge, "ge r6 r6 88", "ge_r6_r6_88"},
125     {{lt, r1, r1, 158}, true, lt, "lt r1 r1 158", "lt_r1_r1_158"},
126     {{ge, r5, r5, 242}, true, ge, "ge r5 r5 242", "ge_r5_r5_242"},
127     {{ls, r4, r4, 225}, true, ls, "ls r4 r4 225", "ls_r4_r4_225"},
128     {{eq, r0, r0, 4}, true, eq, "eq r0 r0 4", "eq_r0_r0_4"},
129     {{vs, r1, r1, 98}, true, vs, "vs r1 r1 98", "vs_r1_r1_98"},
130     {{lt, r7, r7, 224}, true, lt, "lt r7 r7 224", "lt_r7_r7_224"},
131     {{eq, r5, r5, 162}, true, eq, "eq r5 r5 162", "eq_r5_r5_162"},
132     {{gt, r5, r5, 139}, true, gt, "gt r5 r5 139", "gt_r5_r5_139"},
133     {{cc, r4, r4, 68}, true, cc, "cc r4 r4 68", "cc_r4_r4_68"},
134     {{vc, r0, r0, 2}, true, vc, "vc r0 r0 2", "vc_r0_r0_2"},
135     {{ls, r3, r3, 114}, true, ls, "ls r3 r3 114", "ls_r3_r3_114"},
136     {{vs, r7, r7, 220}, true, vs, "vs r7 r7 220", "vs_r7_r7_220"},
137     {{cs, r6, r6, 78}, true, cs, "cs r6 r6 78", "cs_r6_r6_78"},
138     {{cs, r7, r7, 129}, true, cs, "cs r7 r7 129", "cs_r7_r7_129"},
139     {{hi, r3, r3, 17}, true, hi, "hi r3 r3 17", "hi_r3_r3_17"},
140     {{cs, r0, r0, 14}, true, cs, "cs r0 r0 14", "cs_r0_r0_14"},
141     {{hi, r3, r3, 20}, true, hi, "hi r3 r3 20", "hi_r3_r3_20"},
142     {{ne, r4, r4, 210}, true, ne, "ne r4 r4 210", "ne_r4_r4_210"},
143     {{eq, r3, r3, 172}, true, eq, "eq r3 r3 172", "eq_r3_r3_172"},
144     {{vc, r3, r3, 203}, true, vc, "vc r3 r3 203", "vc_r3_r3_203"},
145     {{hi, r3, r3, 52}, true, hi, "hi r3 r3 52", "hi_r3_r3_52"},
146     {{eq, r0, r0, 248}, true, eq, "eq r0 r0 248", "eq_r0_r0_248"},
147     {{lt, r3, r3, 43}, true, lt, "lt r3 r3 43", "lt_r3_r3_43"},
148     {{eq, r4, r4, 233}, true, eq, "eq r4 r4 233", "eq_r4_r4_233"},
149     {{eq, r6, r6, 158}, true, eq, "eq r6 r6 158", "eq_r6_r6_158"},
150     {{vs, r7, r7, 194}, true, vs, "vs r7 r7 194", "vs_r7_r7_194"},
151     {{hi, r5, r5, 116}, true, hi, "hi r5 r5 116", "hi_r5_r5_116"},
152     {{vc, r7, r7, 11}, true, vc, "vc r7 r7 11", "vc_r7_r7_11"},
153     {{le, r4, r4, 0}, true, le, "le r4 r4 0", "le_r4_r4_0"},
154     {{ge, r1, r1, 103}, true, ge, "ge r1 r1 103", "ge_r1_r1_103"},
155     {{eq, r0, r0, 124}, true, eq, "eq r0 r0 124", "eq_r0_r0_124"},
156     {{mi, r5, r5, 57}, true, mi, "mi r5 r5 57", "mi_r5_r5_57"},
157     {{ge, r7, r7, 22}, true, ge, "ge r7 r7 22", "ge_r7_r7_22"},
158     {{mi, r6, r6, 99}, true, mi, "mi r6 r6 99", "mi_r6_r6_99"},
159     {{hi, r7, r7, 195}, true, hi, "hi r7 r7 195", "hi_r7_r7_195"},
160     {{vs, r4, r4, 142}, true, vs, "vs r4 r4 142", "vs_r4_r4_142"},
161     {{hi, r6, r6, 74}, true, hi, "hi r6 r6 74", "hi_r6_r6_74"},
162     {{ne, r1, r1, 131}, true, ne, "ne r1 r1 131", "ne_r1_r1_131"},
163     {{hi, r1, r1, 96}, true, hi, "hi r1 r1 96", "hi_r1_r1_96"},
164     {{eq, r2, r2, 248}, true, eq, "eq r2 r2 248", "eq_r2_r2_248"},
165     {{le, r2, r2, 252}, true, le, "le r2 r2 252", "le_r2_r2_252"},
166     {{cc, r2, r2, 93}, true, cc, "cc r2 r2 93", "cc_r2_r2_93"},
167     {{cc, r3, r3, 130}, true, cc, "cc r3 r3 130", "cc_r3_r3_130"},
168     {{pl, r0, r0, 0}, true, pl, "pl r0 r0 0", "pl_r0_r0_0"},
169     {{gt, r3, r3, 109}, true, gt, "gt r3 r3 109", "gt_r3_r3_109"},
170     {{vs, r1, r1, 192}, true, vs, "vs r1 r1 192", "vs_r1_r1_192"},
171     {{gt, r3, r3, 53}, true, gt, "gt r3 r3 53", "gt_r3_r3_53"},
172     {{lt, r6, r6, 229}, true, lt, "lt r6 r6 229", "lt_r6_r6_229"},
173     {{lt, r4, r4, 128}, true, lt, "lt r4 r4 128", "lt_r4_r4_128"},
174     {{ne, r2, r2, 168}, true, ne, "ne r2 r2 168", "ne_r2_r2_168"},
175     {{cs, r7, r7, 91}, true, cs, "cs r7 r7 91", "cs_r7_r7_91"},
176     {{mi, r5, r5, 112}, true, mi, "mi r5 r5 112", "mi_r5_r5_112"},
177     {{vc, r0, r0, 200}, true, vc, "vc r0 r0 200", "vc_r0_r0_200"},
178     {{cs, r5, r5, 82}, true, cs, "cs r5 r5 82", "cs_r5_r5_82"},
179     {{mi, r4, r4, 176}, true, mi, "mi r4 r4 176", "mi_r4_r4_176"},
180     {{ls, r2, r2, 202}, true, ls, "ls r2 r2 202", "ls_r2_r2_202"},
181     {{mi, r1, r1, 106}, true, mi, "mi r1 r1 106", "mi_r1_r1_106"},
182     {{cc, r4, r4, 144}, true, cc, "cc r4 r4 144", "cc_r4_r4_144"},
183     {{cc, r4, r4, 241}, true, cc, "cc r4 r4 241", "cc_r4_r4_241"},
184     {{vc, r3, r3, 107}, true, vc, "vc r3 r3 107", "vc_r3_r3_107"},
185     {{ls, r2, r2, 21}, true, ls, "ls r2 r2 21", "ls_r2_r2_21"},
186     {{mi, r2, r2, 54}, true, mi, "mi r2 r2 54", "mi_r2_r2_54"},
187     {{ge, r1, r1, 69}, true, ge, "ge r1 r1 69", "ge_r1_r1_69"},
188     {{pl, r2, r2, 165}, true, pl, "pl r2 r2 165", "pl_r2_r2_165"},
189     {{gt, r2, r2, 154}, true, gt, "gt r2 r2 154", "gt_r2_r2_154"},
190     {{gt, r4, r4, 195}, true, gt, "gt r4 r4 195", "gt_r4_r4_195"},
191     {{ne, r0, r0, 223}, true, ne, "ne r0 r0 223", "ne_r0_r0_223"},
192     {{vs, r6, r6, 79}, true, vs, "vs r6 r6 79", "vs_r6_r6_79"},
193     {{lt, r4, r4, 57}, true, lt, "lt r4 r4 57", "lt_r4_r4_57"},
194     {{vs, r0, r0, 157}, true, vs, "vs r0 r0 157", "vs_r0_r0_157"},
195     {{vc, r2, r2, 69}, true, vc, "vc r2 r2 69", "vc_r2_r2_69"},
196     {{vc, r7, r7, 167}, true, vc, "vc r7 r7 167", "vc_r7_r7_167"},
197     {{lt, r4, r4, 216}, true, lt, "lt r4 r4 216", "lt_r4_r4_216"},
198     {{le, r1, r1, 159}, true, le, "le r1 r1 159", "le_r1_r1_159"},
199     {{hi, r6, r6, 193}, true, hi, "hi r6 r6 193", "hi_r6_r6_193"},
200     {{gt, r7, r7, 194}, true, gt, "gt r7 r7 194", "gt_r7_r7_194"},
201     {{pl, r1, r1, 39}, true, pl, "pl r1 r1 39", "pl_r1_r1_39"},
202     {{lt, r5, r5, 215}, true, lt, "lt r5 r5 215", "lt_r5_r5_215"},
203     {{vc, r1, r1, 11}, true, vc, "vc r1 r1 11", "vc_r1_r1_11"},
204     {{le, r0, r0, 242}, true, le, "le r0 r0 242", "le_r0_r0_242"},
205     {{eq, r3, r3, 215}, true, eq, "eq r3 r3 215", "eq_r3_r3_215"},
206     {{vs, r3, r3, 37}, true, vs, "vs r3 r3 37", "vs_r3_r3_37"},
207     {{cs, r5, r5, 78}, true, cs, "cs r5 r5 78", "cs_r5_r5_78"},
208     {{ne, r1, r1, 158}, true, ne, "ne r1 r1 158", "ne_r1_r1_158"},
209     {{ne, r0, r0, 174}, true, ne, "ne r0 r0 174", "ne_r0_r0_174"},
210     {{le, r1, r1, 81}, true, le, "le r1 r1 81", "le_r1_r1_81"},
211     {{le, r5, r5, 250}, true, le, "le r5 r5 250", "le_r5_r5_250"},
212     {{pl, r7, r7, 101}, true, pl, "pl r7 r7 101", "pl_r7_r7_101"},
213     {{hi, r7, r7, 188}, true, hi, "hi r7 r7 188", "hi_r7_r7_188"},
214     {{hi, r4, r4, 88}, true, hi, "hi r4 r4 88", "hi_r4_r4_88"},
215     {{ls, r1, r1, 42}, true, ls, "ls r1 r1 42", "ls_r1_r1_42"},
216     {{vc, r2, r2, 19}, true, vc, "vc r2 r2 19", "vc_r2_r2_19"},
217     {{mi, r6, r6, 125}, true, mi, "mi r6 r6 125", "mi_r6_r6_125"},
218     {{ls, r2, r2, 82}, true, ls, "ls r2 r2 82", "ls_r2_r2_82"},
219     {{gt, r4, r4, 150}, true, gt, "gt r4 r4 150", "gt_r4_r4_150"},
220     {{ne, r5, r5, 40}, true, ne, "ne r5 r5 40", "ne_r5_r5_40"},
221     {{cs, r4, r4, 221}, true, cs, "cs r4 r4 221", "cs_r4_r4_221"},
222     {{cc, r6, r6, 120}, true, cc, "cc r6 r6 120", "cc_r6_r6_120"},
223     {{cc, r2, r2, 211}, true, cc, "cc r2 r2 211", "cc_r2_r2_211"},
224     {{cs, r6, r6, 67}, true, cs, "cs r6 r6 67", "cs_r6_r6_67"},
225     {{gt, r0, r0, 47}, true, gt, "gt r0 r0 47", "gt_r0_r0_47"},
226     {{pl, r7, r7, 75}, true, pl, "pl r7 r7 75", "pl_r7_r7_75"},
227     {{ls, r1, r1, 234}, true, ls, "ls r1 r1 234", "ls_r1_r1_234"},
228     {{gt, r2, r2, 113}, true, gt, "gt r2 r2 113", "gt_r2_r2_113"},
229     {{lt, r2, r2, 85}, true, lt, "lt r2 r2 85", "lt_r2_r2_85"},
230     {{hi, r6, r6, 240}, true, hi, "hi r6 r6 240", "hi_r6_r6_240"},
231     {{lt, r3, r3, 93}, true, lt, "lt r3 r3 93", "lt_r3_r3_93"},
232     {{lt, r4, r4, 192}, true, lt, "lt r4 r4 192", "lt_r4_r4_192"},
233     {{gt, r1, r1, 148}, true, gt, "gt r1 r1 148", "gt_r1_r1_148"},
234     {{cs, r2, r2, 122}, true, cs, "cs r2 r2 122", "cs_r2_r2_122"},
235     {{ne, r4, r4, 111}, true, ne, "ne r4 r4 111", "ne_r4_r4_111"},
236     {{cs, r2, r2, 47}, true, cs, "cs r2 r2 47", "cs_r2_r2_47"},
237     {{cs, r4, r4, 186}, true, cs, "cs r4 r4 186", "cs_r4_r4_186"},
238     {{le, r0, r0, 183}, true, le, "le r0 r0 183", "le_r0_r0_183"},
239     {{vs, r6, r6, 232}, true, vs, "vs r6 r6 232", "vs_r6_r6_232"},
240     {{cc, r3, r3, 99}, true, cc, "cc r3 r3 99", "cc_r3_r3_99"},
241     {{lt, r4, r4, 81}, true, lt, "lt r4 r4 81", "lt_r4_r4_81"},
242     {{lt, r3, r3, 192}, true, lt, "lt r3 r3 192", "lt_r3_r3_192"},
243     {{ls, r5, r5, 219}, true, ls, "ls r5 r5 219", "ls_r5_r5_219"},
244     {{lt, r4, r4, 153}, true, lt, "lt r4 r4 153", "lt_r4_r4_153"},
245     {{vs, r6, r6, 76}, true, vs, "vs r6 r6 76", "vs_r6_r6_76"},
246     {{eq, r7, r7, 37}, true, eq, "eq r7 r7 37", "eq_r7_r7_37"},
247     {{vs, r6, r6, 202}, true, vs, "vs r6 r6 202", "vs_r6_r6_202"},
248     {{vs, r2, r2, 7}, true, vs, "vs r2 r2 7", "vs_r2_r2_7"},
249     {{vs, r3, r3, 99}, true, vs, "vs r3 r3 99", "vs_r3_r3_99"},
250     {{vs, r0, r0, 224}, true, vs, "vs r0 r0 224", "vs_r0_r0_224"},
251     {{le, r5, r5, 26}, true, le, "le r5 r5 26", "le_r5_r5_26"},
252     {{eq, r0, r0, 92}, true, eq, "eq r0 r0 92", "eq_r0_r0_92"},
253     {{cc, r7, r7, 142}, true, cc, "cc r7 r7 142", "cc_r7_r7_142"},
254     {{ls, r2, r2, 20}, true, ls, "ls r2 r2 20", "ls_r2_r2_20"},
255     {{hi, r4, r4, 0}, true, hi, "hi r4 r4 0", "hi_r4_r4_0"},
256     {{ne, r0, r0, 107}, true, ne, "ne r0 r0 107", "ne_r0_r0_107"},
257     {{vs, r6, r6, 156}, true, vs, "vs r6 r6 156", "vs_r6_r6_156"},
258     {{le, r4, r4, 32}, true, le, "le r4 r4 32", "le_r4_r4_32"},
259     {{vc, r6, r6, 184}, true, vc, "vc r6 r6 184", "vc_r6_r6_184"},
260     {{cs, r7, r7, 215}, true, cs, "cs r7 r7 215", "cs_r7_r7_215"},
261     {{gt, r7, r7, 69}, true, gt, "gt r7 r7 69", "gt_r7_r7_69"},
262     {{le, r5, r5, 87}, true, le, "le r5 r5 87", "le_r5_r5_87"},
263     {{cs, r7, r7, 153}, true, cs, "cs r7 r7 153", "cs_r7_r7_153"},
264     {{mi, r0, r0, 54}, true, mi, "mi r0 r0 54", "mi_r0_r0_54"},
265     {{ne, r1, r1, 215}, true, ne, "ne r1 r1 215", "ne_r1_r1_215"},
266     {{pl, r2, r2, 175}, true, pl, "pl r2 r2 175", "pl_r2_r2_175"},
267     {{ne, r5, r5, 46}, true, ne, "ne r5 r5 46", "ne_r5_r5_46"},
268     {{le, r3, r3, 183}, true, le, "le r3 r3 183", "le_r3_r3_183"},
269     {{pl, r3, r3, 89}, true, pl, "pl r3 r3 89", "pl_r3_r3_89"},
270     {{ne, r0, r0, 229}, true, ne, "ne r0 r0 229", "ne_r0_r0_229"},
271     {{cc, r0, r0, 142}, true, cc, "cc r0 r0 142", "cc_r0_r0_142"},
272     {{ne, r3, r3, 101}, true, ne, "ne r3 r3 101", "ne_r3_r3_101"},
273     {{vc, r3, r3, 108}, true, vc, "vc r3 r3 108", "vc_r3_r3_108"},
274     {{eq, r7, r7, 96}, true, eq, "eq r7 r7 96", "eq_r7_r7_96"},
275     {{cc, r0, r0, 204}, true, cc, "cc r0 r0 204", "cc_r0_r0_204"},
276     {{hi, r6, r6, 58}, true, hi, "hi r6 r6 58", "hi_r6_r6_58"},
277     {{vc, r6, r6, 2}, true, vc, "vc r6 r6 2", "vc_r6_r6_2"},
278     {{cc, r0, r0, 21}, true, cc, "cc r0 r0 21", "cc_r0_r0_21"},
279     {{ge, r0, r0, 223}, true, ge, "ge r0 r0 223", "ge_r0_r0_223"},
280     {{eq, r3, r3, 82}, true, eq, "eq r3 r3 82", "eq_r3_r3_82"},
281     {{hi, r3, r3, 209}, true, hi, "hi r3 r3 209", "hi_r3_r3_209"},
282     {{vs, r3, r3, 89}, true, vs, "vs r3 r3 89", "vs_r3_r3_89"},
283     {{ls, r2, r2, 19}, true, ls, "ls r2 r2 19", "ls_r2_r2_19"},
284     {{ne, r3, r3, 127}, true, ne, "ne r3 r3 127", "ne_r3_r3_127"},
285     {{cc, r1, r1, 87}, true, cc, "cc r1 r1 87", "cc_r1_r1_87"},
286     {{lt, r0, r0, 36}, true, lt, "lt r0 r0 36", "lt_r0_r0_36"},
287     {{ne, r3, r3, 217}, true, ne, "ne r3 r3 217", "ne_r3_r3_217"},
288     {{hi, r2, r2, 92}, true, hi, "hi r2 r2 92", "hi_r2_r2_92"},
289     {{vs, r3, r3, 231}, true, vs, "vs r3 r3 231", "vs_r3_r3_231"},
290     {{vc, r2, r2, 8}, true, vc, "vc r2 r2 8", "vc_r2_r2_8"},
291     {{vs, r3, r3, 49}, true, vs, "vs r3 r3 49", "vs_r3_r3_49"},
292     {{pl, r3, r3, 223}, true, pl, "pl r3 r3 223", "pl_r3_r3_223"},
293     {{ls, r3, r3, 201}, true, ls, "ls r3 r3 201", "ls_r3_r3_201"},
294     {{vc, r7, r7, 215}, true, vc, "vc r7 r7 215", "vc_r7_r7_215"},
295     {{ge, r4, r4, 208}, true, ge, "ge r4 r4 208", "ge_r4_r4_208"},
296     {{eq, r4, r4, 170}, true, eq, "eq r4 r4 170", "eq_r4_r4_170"},
297     {{vs, r0, r0, 45}, true, vs, "vs r0 r0 45", "vs_r0_r0_45"},
298     {{mi, r4, r4, 237}, true, mi, "mi r4 r4 237", "mi_r4_r4_237"},
299     {{eq, r5, r5, 142}, true, eq, "eq r5 r5 142", "eq_r5_r5_142"},
300     {{eq, r4, r4, 100}, true, eq, "eq r4 r4 100", "eq_r4_r4_100"},
301     {{mi, r1, r1, 73}, true, mi, "mi r1 r1 73", "mi_r1_r1_73"},
302     {{lt, r0, r0, 244}, true, lt, "lt r0 r0 244", "lt_r0_r0_244"},
303     {{ge, r7, r7, 233}, true, ge, "ge r7 r7 233", "ge_r7_r7_233"},
304     {{vs, r3, r3, 253}, true, vs, "vs r3 r3 253", "vs_r3_r3_253"},
305     {{cs, r5, r5, 20}, true, cs, "cs r5 r5 20", "cs_r5_r5_20"},
306     {{pl, r2, r2, 84}, true, pl, "pl r2 r2 84", "pl_r2_r2_84"},
307     {{ne, r4, r4, 90}, true, ne, "ne r4 r4 90", "ne_r4_r4_90"},
308     {{ne, r6, r6, 32}, true, ne, "ne r6 r6 32", "ne_r6_r6_32"},
309     {{gt, r6, r6, 55}, true, gt, "gt r6 r6 55", "gt_r6_r6_55"},
310     {{pl, r2, r2, 95}, true, pl, "pl r2 r2 95", "pl_r2_r2_95"},
311     {{vc, r4, r4, 67}, true, vc, "vc r4 r4 67", "vc_r4_r4_67"},
312     {{vc, r3, r3, 236}, true, vc, "vc r3 r3 236", "vc_r3_r3_236"},
313     {{mi, r7, r7, 109}, true, mi, "mi r7 r7 109", "mi_r7_r7_109"},
314     {{hi, r0, r0, 174}, true, hi, "hi r0 r0 174", "hi_r0_r0_174"},
315     {{ne, r3, r3, 6}, true, ne, "ne r3 r3 6", "ne_r3_r3_6"},
316     {{mi, r4, r4, 17}, true, mi, "mi r4 r4 17", "mi_r4_r4_17"},
317     {{ls, r3, r3, 20}, true, ls, "ls r3 r3 20", "ls_r3_r3_20"},
318     {{mi, r7, r7, 93}, true, mi, "mi r7 r7 93", "mi_r7_r7_93"},
319     {{eq, r5, r5, 9}, true, eq, "eq r5 r5 9", "eq_r5_r5_9"},
320     {{cs, r4, r4, 88}, true, cs, "cs r4 r4 88", "cs_r4_r4_88"},
321     {{cs, r4, r4, 92}, true, cs, "cs r4 r4 92", "cs_r4_r4_92"},
322     {{gt, r4, r4, 69}, true, gt, "gt r4 r4 69", "gt_r4_r4_69"},
323     {{ge, r0, r0, 219}, true, ge, "ge r0 r0 219", "ge_r0_r0_219"},
324     {{gt, r4, r4, 15}, true, gt, "gt r4 r4 15", "gt_r4_r4_15"},
325     {{gt, r5, r5, 105}, true, gt, "gt r5 r5 105", "gt_r5_r5_105"},
326     {{hi, r2, r2, 229}, true, hi, "hi r2 r2 229", "hi_r2_r2_229"},
327     {{ls, r7, r7, 32}, true, ls, "ls r7 r7 32", "ls_r7_r7_32"},
328     {{gt, r5, r5, 79}, true, gt, "gt r5 r5 79", "gt_r5_r5_79"},
329     {{ls, r7, r7, 57}, true, ls, "ls r7 r7 57", "ls_r7_r7_57"},
330     {{pl, r2, r2, 17}, true, pl, "pl r2 r2 17", "pl_r2_r2_17"},
331     {{cc, r6, r6, 67}, true, cc, "cc r6 r6 67", "cc_r6_r6_67"},
332     {{cs, r7, r7, 11}, true, cs, "cs r7 r7 11", "cs_r7_r7_11"},
333     {{mi, r6, r6, 150}, true, mi, "mi r6 r6 150", "mi_r6_r6_150"},
334     {{pl, r3, r3, 241}, true, pl, "pl r3 r3 241", "pl_r3_r3_241"},
335     {{cc, r2, r2, 65}, true, cc, "cc r2 r2 65", "cc_r2_r2_65"},
336     {{ne, r4, r4, 81}, true, ne, "ne r4 r4 81", "ne_r4_r4_81"},
337     {{lt, r4, r4, 176}, true, lt, "lt r4 r4 176", "lt_r4_r4_176"},
338     {{cs, r7, r7, 58}, true, cs, "cs r7 r7 58", "cs_r7_r7_58"},
339     {{gt, r1, r1, 114}, true, gt, "gt r1 r1 114", "gt_r1_r1_114"},
340     {{vc, r7, r7, 4}, true, vc, "vc r7 r7 4", "vc_r7_r7_4"},
341     {{le, r3, r3, 110}, true, le, "le r3 r3 110", "le_r3_r3_110"},
342     {{vs, r1, r1, 149}, true, vs, "vs r1 r1 149", "vs_r1_r1_149"},
343     {{cs, r3, r3, 179}, true, cs, "cs r3 r3 179", "cs_r3_r3_179"},
344     {{vs, r7, r7, 199}, true, vs, "vs r7 r7 199", "vs_r7_r7_199"},
345     {{ge, r4, r4, 46}, true, ge, "ge r4 r4 46", "ge_r4_r4_46"},
346     {{ls, r1, r1, 98}, true, ls, "ls r1 r1 98", "ls_r1_r1_98"},
347     {{cs, r3, r3, 60}, true, cs, "cs r3 r3 60", "cs_r3_r3_60"},
348     {{vc, r2, r2, 201}, true, vc, "vc r2 r2 201", "vc_r2_r2_201"},
349     {{le, r5, r5, 128}, true, le, "le r5 r5 128", "le_r5_r5_128"},
350     {{vs, r4, r4, 39}, true, vs, "vs r4 r4 39", "vs_r4_r4_39"},
351     {{ls, r4, r4, 106}, true, ls, "ls r4 r4 106", "ls_r4_r4_106"},
352     {{le, r5, r5, 207}, true, le, "le r5 r5 207", "le_r5_r5_207"},
353     {{cs, r6, r6, 7}, true, cs, "cs r6 r6 7", "cs_r6_r6_7"},
354     {{ne, r5, r5, 133}, true, ne, "ne r5 r5 133", "ne_r5_r5_133"},
355     {{eq, r7, r7, 28}, true, eq, "eq r7 r7 28", "eq_r7_r7_28"},
356     {{pl, r7, r7, 154}, true, pl, "pl r7 r7 154", "pl_r7_r7_154"},
357     {{vs, r3, r3, 242}, true, vs, "vs r3 r3 242", "vs_r3_r3_242"},
358     {{eq, r6, r6, 221}, true, eq, "eq r6 r6 221", "eq_r6_r6_221"},
359     {{vs, r5, r5, 97}, true, vs, "vs r5 r5 97", "vs_r5_r5_97"},
360     {{ls, r5, r5, 70}, true, ls, "ls r5 r5 70", "ls_r5_r5_70"},
361     {{vc, r6, r6, 236}, true, vc, "vc r6 r6 236", "vc_r6_r6_236"},
362     {{ne, r2, r2, 236}, true, ne, "ne r2 r2 236", "ne_r2_r2_236"},
363     {{eq, r1, r1, 198}, true, eq, "eq r1 r1 198", "eq_r1_r1_198"},
364     {{vs, r3, r3, 134}, true, vs, "vs r3 r3 134", "vs_r3_r3_134"},
365     {{ne, r5, r5, 42}, true, ne, "ne r5 r5 42", "ne_r5_r5_42"},
366     {{ge, r6, r6, 223}, true, ge, "ge r6 r6 223", "ge_r6_r6_223"},
367     {{ge, r0, r0, 48}, true, ge, "ge r0 r0 48", "ge_r0_r0_48"},
368     {{hi, r7, r7, 146}, true, hi, "hi r7 r7 146", "hi_r7_r7_146"},
369     {{ge, r4, r4, 175}, true, ge, "ge r4 r4 175", "ge_r4_r4_175"},
370     {{gt, r4, r4, 142}, true, gt, "gt r4 r4 142", "gt_r4_r4_142"},
371     {{ne, r6, r6, 24}, true, ne, "ne r6 r6 24", "ne_r6_r6_24"},
372     {{lt, r2, r2, 152}, true, lt, "lt r2 r2 152", "lt_r2_r2_152"},
373     {{hi, r2, r2, 113}, true, hi, "hi r2 r2 113", "hi_r2_r2_113"},
374     {{vc, r4, r4, 135}, true, vc, "vc r4 r4 135", "vc_r4_r4_135"},
375     {{ls, r4, r4, 40}, true, ls, "ls r4 r4 40", "ls_r4_r4_40"},
376     {{cc, r2, r2, 199}, true, cc, "cc r2 r2 199", "cc_r2_r2_199"},
377     {{vs, r6, r6, 164}, true, vs, "vs r6 r6 164", "vs_r6_r6_164"},
378     {{le, r3, r3, 184}, true, le, "le r3 r3 184", "le_r3_r3_184"},
379     {{cs, r4, r4, 158}, true, cs, "cs r4 r4 158", "cs_r4_r4_158"},
380     {{vc, r5, r5, 212}, true, vc, "vc r5 r5 212", "vc_r5_r5_212"},
381     {{gt, r5, r5, 143}, true, gt, "gt r5 r5 143", "gt_r5_r5_143"},
382     {{ne, r0, r0, 186}, true, ne, "ne r0 r0 186", "ne_r0_r0_186"},
383     {{cs, r5, r5, 233}, true, cs, "cs r5 r5 233", "cs_r5_r5_233"},
384     {{le, r1, r1, 242}, true, le, "le r1 r1 242", "le_r1_r1_242"},
385     {{ge, r6, r6, 70}, true, ge, "ge r6 r6 70", "ge_r6_r6_70"},
386     {{cc, r7, r7, 234}, true, cc, "cc r7 r7 234", "cc_r7_r7_234"},
387     {{ls, r0, r0, 191}, true, ls, "ls r0 r0 191", "ls_r0_r0_191"},
388     {{pl, r3, r3, 236}, true, pl, "pl r3 r3 236", "pl_r3_r3_236"},
389     {{cc, r7, r7, 27}, true, cc, "cc r7 r7 27", "cc_r7_r7_27"},
390     {{vs, r0, r0, 169}, true, vs, "vs r0 r0 169", "vs_r0_r0_169"},
391     {{vs, r2, r2, 193}, true, vs, "vs r2 r2 193", "vs_r2_r2_193"},
392     {{lt, r6, r6, 198}, true, lt, "lt r6 r6 198", "lt_r6_r6_198"},
393     {{ge, r7, r7, 137}, true, ge, "ge r7 r7 137", "ge_r7_r7_137"},
394     {{vs, r1, r1, 183}, true, vs, "vs r1 r1 183", "vs_r1_r1_183"},
395     {{lt, r5, r5, 180}, true, lt, "lt r5 r5 180", "lt_r5_r5_180"},
396     {{le, r3, r3, 22}, true, le, "le r3 r3 22", "le_r3_r3_22"},
397     {{ls, r7, r7, 41}, true, ls, "ls r7 r7 41", "ls_r7_r7_41"},
398     {{vs, r6, r6, 71}, true, vs, "vs r6 r6 71", "vs_r6_r6_71"},
399     {{vs, r1, r1, 81}, true, vs, "vs r1 r1 81", "vs_r1_r1_81"},
400     {{vc, r0, r0, 181}, true, vc, "vc r0 r0 181", "vc_r0_r0_181"},
401     {{lt, r0, r0, 1}, true, lt, "lt r0 r0 1", "lt_r0_r0_1"},
402     {{le, r1, r1, 182}, true, le, "le r1 r1 182", "le_r1_r1_182"},
403     {{ls, r1, r1, 167}, true, ls, "ls r1 r1 167", "ls_r1_r1_167"},
404     {{hi, r7, r7, 221}, true, hi, "hi r7 r7 221", "hi_r7_r7_221"},
405     {{ge, r1, r1, 72}, true, ge, "ge r1 r1 72", "ge_r1_r1_72"},
406     {{pl, r7, r7, 95}, true, pl, "pl r7 r7 95", "pl_r7_r7_95"},
407     {{cs, r3, r3, 252}, true, cs, "cs r3 r3 252", "cs_r3_r3_252"},
408     {{eq, r3, r3, 224}, true, eq, "eq r3 r3 224", "eq_r3_r3_224"},
409     {{mi, r5, r5, 176}, true, mi, "mi r5 r5 176", "mi_r5_r5_176"},
410     {{le, r0, r0, 213}, true, le, "le r0 r0 213", "le_r0_r0_213"},
411     {{gt, r1, r1, 91}, true, gt, "gt r1 r1 91", "gt_r1_r1_91"},
412     {{vc, r5, r5, 236}, true, vc, "vc r5 r5 236", "vc_r5_r5_236"},
413     {{hi, r4, r4, 68}, true, hi, "hi r4 r4 68", "hi_r4_r4_68"},
414     {{ls, r6, r6, 201}, true, ls, "ls r6 r6 201", "ls_r6_r6_201"},
415     {{vs, r6, r6, 146}, true, vs, "vs r6 r6 146", "vs_r6_r6_146"},
416     {{le, r5, r5, 169}, true, le, "le r5 r5 169", "le_r5_r5_169"},
417     {{pl, r1, r1, 88}, true, pl, "pl r1 r1 88", "pl_r1_r1_88"},
418     {{cc, r4, r4, 26}, true, cc, "cc r4 r4 26", "cc_r4_r4_26"},
419     {{gt, r2, r2, 228}, true, gt, "gt r2 r2 228", "gt_r2_r2_228"},
420     {{vs, r5, r5, 175}, true, vs, "vs r5 r5 175", "vs_r5_r5_175"},
421     {{ne, r3, r3, 167}, true, ne, "ne r3 r3 167", "ne_r3_r3_167"},
422     {{ge, r6, r6, 21}, true, ge, "ge r6 r6 21", "ge_r6_r6_21"},
423     {{eq, r7, r7, 114}, true, eq, "eq r7 r7 114", "eq_r7_r7_114"},
424     {{cs, r0, r0, 26}, true, cs, "cs r0 r0 26", "cs_r0_r0_26"},
425     {{pl, r4, r4, 29}, true, pl, "pl r4 r4 29", "pl_r4_r4_29"},
426     {{le, r1, r1, 71}, true, le, "le r1 r1 71", "le_r1_r1_71"},
427     {{cc, r0, r0, 62}, true, cc, "cc r0 r0 62", "cc_r0_r0_62"},
428     {{eq, r4, r4, 138}, true, eq, "eq r4 r4 138", "eq_r4_r4_138"},
429     {{cc, r4, r4, 232}, true, cc, "cc r4 r4 232", "cc_r4_r4_232"},
430     {{vs, r3, r3, 111}, true, vs, "vs r3 r3 111", "vs_r3_r3_111"},
431     {{ls, r5, r5, 80}, true, ls, "ls r5 r5 80", "ls_r5_r5_80"},
432     {{hi, r4, r4, 102}, true, hi, "hi r4 r4 102", "hi_r4_r4_102"},
433     {{vc, r0, r0, 160}, true, vc, "vc r0 r0 160", "vc_r0_r0_160"},
434     {{eq, r4, r4, 81}, true, eq, "eq r4 r4 81", "eq_r4_r4_81"},
435     {{le, r7, r7, 147}, true, le, "le r7 r7 147", "le_r7_r7_147"},
436     {{ls, r5, r5, 122}, true, ls, "ls r5 r5 122", "ls_r5_r5_122"},
437     {{lt, r3, r3, 19}, true, lt, "lt r3 r3 19", "lt_r3_r3_19"},
438     {{mi, r1, r1, 149}, true, mi, "mi r1 r1 149", "mi_r1_r1_149"},
439     {{cc, r1, r1, 199}, true, cc, "cc r1 r1 199", "cc_r1_r1_199"},
440     {{pl, r3, r3, 75}, true, pl, "pl r3 r3 75", "pl_r3_r3_75"},
441     {{eq, r6, r6, 187}, true, eq, "eq r6 r6 187", "eq_r6_r6_187"},
442     {{gt, r3, r3, 205}, true, gt, "gt r3 r3 205", "gt_r3_r3_205"},
443     {{lt, r1, r1, 24}, true, lt, "lt r1 r1 24", "lt_r1_r1_24"},
444     {{mi, r6, r6, 55}, true, mi, "mi r6 r6 55", "mi_r6_r6_55"},
445     {{cc, r3, r3, 183}, true, cc, "cc r3 r3 183", "cc_r3_r3_183"},
446     {{cc, r3, r3, 116}, true, cc, "cc r3 r3 116", "cc_r3_r3_116"},
447     {{ne, r3, r3, 139}, true, ne, "ne r3 r3 139", "ne_r3_r3_139"},
448     {{mi, r2, r2, 57}, true, mi, "mi r2 r2 57", "mi_r2_r2_57"},
449     {{pl, r2, r2, 67}, true, pl, "pl r2 r2 67", "pl_r2_r2_67"},
450     {{lt, r1, r1, 117}, true, lt, "lt r1 r1 117", "lt_r1_r1_117"},
451     {{ge, r6, r6, 24}, true, ge, "ge r6 r6 24", "ge_r6_r6_24"},
452     {{cs, r2, r2, 96}, true, cs, "cs r2 r2 96", "cs_r2_r2_96"},
453     {{vc, r5, r5, 156}, true, vc, "vc r5 r5 156", "vc_r5_r5_156"},
454     {{vs, r0, r0, 125}, true, vs, "vs r0 r0 125", "vs_r0_r0_125"},
455     {{ls, r7, r7, 183}, true, ls, "ls r7 r7 183", "ls_r7_r7_183"},
456     {{vs, r1, r1, 30}, true, vs, "vs r1 r1 30", "vs_r1_r1_30"},
457     {{cs, r1, r1, 62}, true, cs, "cs r1 r1 62", "cs_r1_r1_62"},
458     {{vc, r1, r1, 8}, true, vc, "vc r1 r1 8", "vc_r1_r1_8"},
459     {{vc, r4, r4, 184}, true, vc, "vc r4 r4 184", "vc_r4_r4_184"},
460     {{vc, r1, r1, 235}, true, vc, "vc r1 r1 235", "vc_r1_r1_235"},
461     {{gt, r2, r2, 78}, true, gt, "gt r2 r2 78", "gt_r2_r2_78"},
462     {{hi, r2, r2, 160}, true, hi, "hi r2 r2 160", "hi_r2_r2_160"},
463     {{le, r3, r3, 243}, true, le, "le r3 r3 243", "le_r3_r3_243"},
464     {{gt, r5, r5, 46}, true, gt, "gt r5 r5 46", "gt_r5_r5_46"},
465     {{ls, r5, r5, 148}, true, ls, "ls r5 r5 148", "ls_r5_r5_148"},
466     {{vs, r2, r2, 232}, true, vs, "vs r2 r2 232", "vs_r2_r2_232"},
467     {{hi, r0, r0, 13}, true, hi, "hi r0 r0 13", "hi_r0_r0_13"},
468     {{hi, r2, r2, 45}, true, hi, "hi r2 r2 45", "hi_r2_r2_45"},
469     {{mi, r1, r1, 197}, true, mi, "mi r1 r1 197", "mi_r1_r1_197"},
470     {{ls, r7, r7, 91}, true, ls, "ls r7 r7 91", "ls_r7_r7_91"},
471     {{cs, r2, r2, 192}, true, cs, "cs r2 r2 192", "cs_r2_r2_192"},
472     {{cs, r4, r4, 202}, true, cs, "cs r4 r4 202", "cs_r4_r4_202"},
473     {{ne, r6, r6, 115}, true, ne, "ne r6 r6 115", "ne_r6_r6_115"},
474     {{mi, r7, r7, 173}, true, mi, "mi r7 r7 173", "mi_r7_r7_173"},
475     {{vs, r1, r1, 236}, true, vs, "vs r1 r1 236", "vs_r1_r1_236"},
476     {{pl, r3, r3, 49}, true, pl, "pl r3 r3 49", "pl_r3_r3_49"},
477     {{cs, r1, r1, 193}, true, cs, "cs r1 r1 193", "cs_r1_r1_193"},
478     {{gt, r4, r4, 200}, true, gt, "gt r4 r4 200", "gt_r4_r4_200"},
479     {{lt, r4, r4, 141}, true, lt, "lt r4 r4 141", "lt_r4_r4_141"},
480     {{gt, r6, r6, 142}, true, gt, "gt r6 r6 142", "gt_r6_r6_142"},
481     {{le, r2, r2, 39}, true, le, "le r2 r2 39", "le_r2_r2_39"},
482     {{cc, r3, r3, 98}, true, cc, "cc r3 r3 98", "cc_r3_r3_98"},
483     {{le, r4, r4, 77}, true, le, "le r4 r4 77", "le_r4_r4_77"},
484     {{ne, r2, r2, 140}, true, ne, "ne r2 r2 140", "ne_r2_r2_140"},
485     {{cc, r3, r3, 117}, true, cc, "cc r3 r3 117", "cc_r3_r3_117"},
486     {{gt, r3, r3, 242}, true, gt, "gt r3 r3 242", "gt_r3_r3_242"},
487     {{ls, r5, r5, 90}, true, ls, "ls r5 r5 90", "ls_r5_r5_90"},
488     {{gt, r7, r7, 16}, true, gt, "gt r7 r7 16", "gt_r7_r7_16"},
489     {{vs, r5, r5, 131}, true, vs, "vs r5 r5 131", "vs_r5_r5_131"},
490     {{vc, r6, r6, 145}, true, vc, "vc r6 r6 145", "vc_r6_r6_145"},
491     {{lt, r0, r0, 94}, true, lt, "lt r0 r0 94", "lt_r0_r0_94"},
492     {{vs, r3, r3, 246}, true, vs, "vs r3 r3 246", "vs_r3_r3_246"},
493     {{le, r0, r0, 124}, true, le, "le r0 r0 124", "le_r0_r0_124"},
494     {{eq, r7, r7, 60}, true, eq, "eq r7 r7 60", "eq_r7_r7_60"},
495     {{mi, r3, r3, 244}, true, mi, "mi r3 r3 244", "mi_r3_r3_244"},
496     {{ls, r5, r5, 110}, true, ls, "ls r5 r5 110", "ls_r5_r5_110"},
497     {{lt, r2, r2, 168}, true, lt, "lt r2 r2 168", "lt_r2_r2_168"},
498     {{cs, r3, r3, 217}, true, cs, "cs r3 r3 217", "cs_r3_r3_217"},
499     {{lt, r2, r2, 155}, true, lt, "lt r2 r2 155", "lt_r2_r2_155"},
500     {{gt, r2, r2, 43}, true, gt, "gt r2 r2 43", "gt_r2_r2_43"},
501     {{pl, r3, r3, 247}, true, pl, "pl r3 r3 247", "pl_r3_r3_247"},
502     {{mi, r0, r0, 193}, true, mi, "mi r0 r0 193", "mi_r0_r0_193"},
503     {{pl, r7, r7, 22}, true, pl, "pl r7 r7 22", "pl_r7_r7_22"},
504     {{vs, r7, r7, 222}, true, vs, "vs r7 r7 222", "vs_r7_r7_222"},
505     {{le, r0, r0, 205}, true, le, "le r0 r0 205", "le_r0_r0_205"},
506     {{lt, r4, r4, 67}, true, lt, "lt r4 r4 67", "lt_r4_r4_67"},
507     {{cc, r1, r1, 60}, true, cc, "cc r1 r1 60", "cc_r1_r1_60"},
508     {{cc, r4, r4, 4}, true, cc, "cc r4 r4 4", "cc_r4_r4_4"},
509     {{vc, r1, r1, 22}, true, vc, "vc r1 r1 22", "vc_r1_r1_22"},
510     {{vc, r4, r4, 94}, true, vc, "vc r4 r4 94", "vc_r4_r4_94"},
511     {{ls, r5, r5, 180}, true, ls, "ls r5 r5 180", "ls_r5_r5_180"},
512     {{cc, r7, r7, 87}, true, cc, "cc r7 r7 87", "cc_r7_r7_87"},
513     {{ls, r3, r3, 175}, true, ls, "ls r3 r3 175", "ls_r3_r3_175"},
514     {{ge, r7, r7, 222}, true, ge, "ge r7 r7 222", "ge_r7_r7_222"},
515     {{ne, r2, r2, 166}, true, ne, "ne r2 r2 166", "ne_r2_r2_166"},
516     {{ls, r1, r1, 191}, true, ls, "ls r1 r1 191", "ls_r1_r1_191"},
517     {{vs, r0, r0, 20}, true, vs, "vs r0 r0 20", "vs_r0_r0_20"},
518     {{hi, r1, r1, 253}, true, hi, "hi r1 r1 253", "hi_r1_r1_253"},
519     {{eq, r1, r1, 2}, true, eq, "eq r1 r1 2", "eq_r1_r1_2"},
520     {{ls, r6, r6, 74}, true, ls, "ls r6 r6 74", "ls_r6_r6_74"},
521     {{mi, r6, r6, 242}, true, mi, "mi r6 r6 242", "mi_r6_r6_242"},
522     {{le, r6, r6, 242}, true, le, "le r6 r6 242", "le_r6_r6_242"},
523     {{cs, r7, r7, 110}, true, cs, "cs r7 r7 110", "cs_r7_r7_110"},
524     {{ge, r5, r5, 23}, true, ge, "ge r5 r5 23", "ge_r5_r5_23"},
525     {{lt, r5, r5, 87}, true, lt, "lt r5 r5 87", "lt_r5_r5_87"},
526     {{lt, r0, r0, 91}, true, lt, "lt r0 r0 91", "lt_r0_r0_91"},
527     {{cc, r2, r2, 68}, true, cc, "cc r2 r2 68", "cc_r2_r2_68"},
528     {{vs, r2, r2, 171}, true, vs, "vs r2 r2 171", "vs_r2_r2_171"},
529     {{pl, r6, r6, 118}, true, pl, "pl r6 r6 118", "pl_r6_r6_118"},
530     {{gt, r6, r6, 232}, true, gt, "gt r6 r6 232", "gt_r6_r6_232"},
531     {{ls, r0, r0, 255}, true, ls, "ls r0 r0 255", "ls_r0_r0_255"},
532     {{mi, r4, r4, 142}, true, mi, "mi r4 r4 142", "mi_r4_r4_142"},
533     {{lt, r5, r5, 198}, true, lt, "lt r5 r5 198", "lt_r5_r5_198"},
534     {{lt, r0, r0, 114}, true, lt, "lt r0 r0 114", "lt_r0_r0_114"},
535     {{lt, r5, r5, 129}, true, lt, "lt r5 r5 129", "lt_r5_r5_129"},
536     {{pl, r5, r5, 145}, true, pl, "pl r5 r5 145", "pl_r5_r5_145"},
537     {{hi, r7, r7, 43}, true, hi, "hi r7 r7 43", "hi_r7_r7_43"},
538     {{vs, r1, r1, 67}, true, vs, "vs r1 r1 67", "vs_r1_r1_67"},
539     {{vc, r7, r7, 78}, true, vc, "vc r7 r7 78", "vc_r7_r7_78"},
540     {{cc, r1, r1, 56}, true, cc, "cc r1 r1 56", "cc_r1_r1_56"},
541     {{vs, r0, r0, 12}, true, vs, "vs r0 r0 12", "vs_r0_r0_12"},
542     {{pl, r5, r5, 35}, true, pl, "pl r5 r5 35", "pl_r5_r5_35"},
543     {{vs, r5, r5, 105}, true, vs, "vs r5 r5 105", "vs_r5_r5_105"},
544     {{vc, r1, r1, 88}, true, vc, "vc r1 r1 88", "vc_r1_r1_88"},
545     {{lt, r2, r2, 69}, true, lt, "lt r2 r2 69", "lt_r2_r2_69"},
546     {{cs, r3, r3, 255}, true, cs, "cs r3 r3 255", "cs_r3_r3_255"},
547     {{ls, r6, r6, 5}, true, ls, "ls r6 r6 5", "ls_r6_r6_5"},
548     {{vc, r6, r6, 171}, true, vc, "vc r6 r6 171", "vc_r6_r6_171"},
549     {{pl, r5, r5, 166}, true, pl, "pl r5 r5 166", "pl_r5_r5_166"},
550     {{ls, r1, r1, 121}, true, ls, "ls r1 r1 121", "ls_r1_r1_121"},
551     {{ne, r4, r4, 120}, true, ne, "ne r4 r4 120", "ne_r4_r4_120"},
552     {{ls, r4, r4, 130}, true, ls, "ls r4 r4 130", "ls_r4_r4_130"},
553     {{ge, r6, r6, 104}, true, ge, "ge r6 r6 104", "ge_r6_r6_104"},
554     {{ge, r3, r3, 227}, true, ge, "ge r3 r3 227", "ge_r3_r3_227"},
555     {{vs, r3, r3, 202}, true, vs, "vs r3 r3 202", "vs_r3_r3_202"},
556     {{ne, r4, r4, 198}, true, ne, "ne r4 r4 198", "ne_r4_r4_198"},
557     {{cc, r5, r5, 78}, true, cc, "cc r5 r5 78", "cc_r5_r5_78"},
558     {{cs, r3, r3, 7}, true, cs, "cs r3 r3 7", "cs_r3_r3_7"},
559     {{mi, r0, r0, 35}, true, mi, "mi r0 r0 35", "mi_r0_r0_35"},
560     {{hi, r3, r3, 53}, true, hi, "hi r3 r3 53", "hi_r3_r3_53"},
561     {{cs, r5, r5, 150}, true, cs, "cs r5 r5 150", "cs_r5_r5_150"},
562     {{ge, r2, r2, 143}, true, ge, "ge r2 r2 143", "ge_r2_r2_143"},
563     {{hi, r0, r0, 229}, true, hi, "hi r0 r0 229", "hi_r0_r0_229"},
564     {{vc, r6, r6, 141}, true, vc, "vc r6 r6 141", "vc_r6_r6_141"},
565     {{pl, r7, r7, 76}, true, pl, "pl r7 r7 76", "pl_r7_r7_76"},
566     {{ne, r5, r5, 135}, true, ne, "ne r5 r5 135", "ne_r5_r5_135"},
567     {{hi, r5, r5, 51}, true, hi, "hi r5 r5 51", "hi_r5_r5_51"},
568     {{eq, r6, r6, 95}, true, eq, "eq r6 r6 95", "eq_r6_r6_95"},
569     {{cs, r6, r6, 227}, true, cs, "cs r6 r6 227", "cs_r6_r6_227"},
570     {{ge, r6, r6, 46}, true, ge, "ge r6 r6 46", "ge_r6_r6_46"},
571     {{ne, r1, r1, 150}, true, ne, "ne r1 r1 150", "ne_r1_r1_150"},
572     {{eq, r1, r1, 22}, true, eq, "eq r1 r1 22", "eq_r1_r1_22"},
573     {{vs, r2, r2, 220}, true, vs, "vs r2 r2 220", "vs_r2_r2_220"},
574     {{ls, r6, r6, 240}, true, ls, "ls r6 r6 240", "ls_r6_r6_240"},
575     {{le, r4, r4, 43}, true, le, "le r4 r4 43", "le_r4_r4_43"},
576     {{ls, r7, r7, 243}, true, ls, "ls r7 r7 243", "ls_r7_r7_243"},
577     {{hi, r3, r3, 191}, true, hi, "hi r3 r3 191", "hi_r3_r3_191"},
578     {{hi, r0, r0, 235}, true, hi, "hi r0 r0 235", "hi_r0_r0_235"},
579     {{gt, r1, r1, 59}, true, gt, "gt r1 r1 59", "gt_r1_r1_59"},
580     {{vc, r3, r3, 165}, true, vc, "vc r3 r3 165", "vc_r3_r3_165"},
581     {{vc, r1, r1, 46}, true, vc, "vc r1 r1 46", "vc_r1_r1_46"},
582     {{eq, r6, r6, 232}, true, eq, "eq r6 r6 232", "eq_r6_r6_232"},
583     {{ls, r3, r3, 132}, true, ls, "ls r3 r3 132", "ls_r3_r3_132"},
584     {{ls, r7, r7, 207}, true, ls, "ls r7 r7 207", "ls_r7_r7_207"},
585     {{vs, r7, r7, 129}, true, vs, "vs r7 r7 129", "vs_r7_r7_129"},
586     {{ne, r3, r3, 41}, true, ne, "ne r3 r3 41", "ne_r3_r3_41"},
587     {{ls, r3, r3, 153}, true, ls, "ls r3 r3 153", "ls_r3_r3_153"},
588     {{vc, r4, r4, 34}, true, vc, "vc r4 r4 34", "vc_r4_r4_34"},
589     {{cc, r7, r7, 140}, true, cc, "cc r7 r7 140", "cc_r7_r7_140"},
590     {{ne, r0, r0, 108}, true, ne, "ne r0 r0 108", "ne_r0_r0_108"},
591     {{ls, r7, r7, 44}, true, ls, "ls r7 r7 44", "ls_r7_r7_44"},
592     {{cs, r6, r6, 128}, true, cs, "cs r6 r6 128", "cs_r6_r6_128"},
593     {{ne, r3, r3, 195}, true, ne, "ne r3 r3 195", "ne_r3_r3_195"},
594     {{hi, r1, r1, 239}, true, hi, "hi r1 r1 239", "hi_r1_r1_239"},
595     {{cc, r3, r3, 243}, true, cc, "cc r3 r3 243", "cc_r3_r3_243"},
596     {{pl, r1, r1, 30}, true, pl, "pl r1 r1 30", "pl_r1_r1_30"},
597     {{lt, r4, r4, 48}, true, lt, "lt r4 r4 48", "lt_r4_r4_48"},
598     {{gt, r5, r5, 92}, true, gt, "gt r5 r5 92", "gt_r5_r5_92"},
599     {{pl, r6, r6, 167}, true, pl, "pl r6 r6 167", "pl_r6_r6_167"},
600     {{lt, r0, r0, 8}, true, lt, "lt r0 r0 8", "lt_r0_r0_8"},
601     {{vc, r4, r4, 49}, true, vc, "vc r4 r4 49", "vc_r4_r4_49"},
602     {{mi, r3, r3, 109}, true, mi, "mi r3 r3 109", "mi_r3_r3_109"},
603     {{lt, r7, r7, 58}, true, lt, "lt r7 r7 58", "lt_r7_r7_58"},
604     {{lt, r6, r6, 54}, true, lt, "lt r6 r6 54", "lt_r6_r6_54"},
605     {{eq, r7, r7, 36}, true, eq, "eq r7 r7 36", "eq_r7_r7_36"},
606     {{ls, r0, r0, 230}, true, ls, "ls r0 r0 230", "ls_r0_r0_230"},
607     {{eq, r7, r7, 133}, true, eq, "eq r7 r7 133", "eq_r7_r7_133"},
608     {{hi, r0, r0, 153}, true, hi, "hi r0 r0 153", "hi_r0_r0_153"},
609     {{cs, r6, r6, 154}, true, cs, "cs r6 r6 154", "cs_r6_r6_154"},
610     {{eq, r6, r6, 178}, true, eq, "eq r6 r6 178", "eq_r6_r6_178"},
611     {{hi, r0, r0, 206}, true, hi, "hi r0 r0 206", "hi_r0_r0_206"},
612     {{ls, r4, r4, 164}, true, ls, "ls r4 r4 164", "ls_r4_r4_164"},
613     {{lt, r3, r3, 60}, true, lt, "lt r3 r3 60", "lt_r3_r3_60"},
614     {{cs, r5, r5, 44}, true, cs, "cs r5 r5 44", "cs_r5_r5_44"},
615     {{le, r5, r5, 158}, true, le, "le r5 r5 158", "le_r5_r5_158"},
616     {{lt, r3, r3, 40}, true, lt, "lt r3 r3 40", "lt_r3_r3_40"},
617     {{le, r0, r0, 53}, true, le, "le r0 r0 53", "le_r0_r0_53"},
618     {{le, r3, r3, 189}, true, le, "le r3 r3 189", "le_r3_r3_189"},
619     {{vs, r3, r3, 8}, true, vs, "vs r3 r3 8", "vs_r3_r3_8"},
620     {{vs, r1, r1, 141}, true, vs, "vs r1 r1 141", "vs_r1_r1_141"},
621     {{vs, r3, r3, 141}, true, vs, "vs r3 r3 141", "vs_r3_r3_141"},
622     {{vs, r2, r2, 141}, true, vs, "vs r2 r2 141", "vs_r2_r2_141"},
623     {{ls, r6, r6, 254}, true, ls, "ls r6 r6 254", "ls_r6_r6_254"},
624     {{ne, r3, r3, 142}, true, ne, "ne r3 r3 142", "ne_r3_r3_142"},
625     {{hi, r0, r0, 167}, true, hi, "hi r0 r0 167", "hi_r0_r0_167"},
626     {{cs, r6, r6, 84}, true, cs, "cs r6 r6 84", "cs_r6_r6_84"},
627     {{cs, r2, r2, 234}, true, cs, "cs r2 r2 234", "cs_r2_r2_234"},
628     {{le, r6, r6, 59}, true, le, "le r6 r6 59", "le_r6_r6_59"},
629     {{hi, r2, r2, 135}, true, hi, "hi r2 r2 135", "hi_r2_r2_135"},
630     {{gt, r7, r7, 47}, true, gt, "gt r7 r7 47", "gt_r7_r7_47"},
631     {{eq, r6, r6, 122}, true, eq, "eq r6 r6 122", "eq_r6_r6_122"},
632     {{vc, r7, r7, 118}, true, vc, "vc r7 r7 118", "vc_r7_r7_118"},
633     {{cs, r2, r2, 180}, true, cs, "cs r2 r2 180", "cs_r2_r2_180"},
634     {{cs, r2, r2, 181}, true, cs, "cs r2 r2 181", "cs_r2_r2_181"},
635     {{cc, r1, r1, 190}, true, cc, "cc r1 r1 190", "cc_r1_r1_190"},
636     {{ge, r5, r5, 205}, true, ge, "ge r5 r5 205", "ge_r5_r5_205"},
637     {{gt, r7, r7, 26}, true, gt, "gt r7 r7 26", "gt_r7_r7_26"},
638     {{gt, r4, r4, 70}, true, gt, "gt r4 r4 70", "gt_r4_r4_70"},
639     {{eq, r5, r5, 102}, true, eq, "eq r5 r5 102", "eq_r5_r5_102"},
640     {{ls, r0, r0, 57}, true, ls, "ls r0 r0 57", "ls_r0_r0_57"},
641     {{pl, r1, r1, 229}, true, pl, "pl r1 r1 229", "pl_r1_r1_229"},
642     {{ge, r2, r2, 185}, true, ge, "ge r2 r2 185", "ge_r2_r2_185"},
643     {{ge, r7, r7, 80}, true, ge, "ge r7 r7 80", "ge_r7_r7_80"},
644     {{cs, r6, r6, 123}, true, cs, "cs r6 r6 123", "cs_r6_r6_123"},
645     {{pl, r4, r4, 137}, true, pl, "pl r4 r4 137", "pl_r4_r4_137"},
646     {{cc, r1, r1, 137}, true, cc, "cc r1 r1 137", "cc_r1_r1_137"},
647     {{cs, r1, r1, 67}, true, cs, "cs r1 r1 67", "cs_r1_r1_67"},
648     {{vc, r6, r6, 207}, true, vc, "vc r6 r6 207", "vc_r6_r6_207"},
649     {{cc, r0, r0, 50}, true, cc, "cc r0 r0 50", "cc_r0_r0_50"},
650     {{mi, r3, r3, 72}, true, mi, "mi r3 r3 72", "mi_r3_r3_72"},
651     {{ls, r3, r3, 31}, true, ls, "ls r3 r3 31", "ls_r3_r3_31"},
652     {{vc, r2, r2, 253}, true, vc, "vc r2 r2 253", "vc_r2_r2_253"},
653     {{vc, r3, r3, 155}, true, vc, "vc r3 r3 155", "vc_r3_r3_155"},
654     {{lt, r0, r0, 115}, true, lt, "lt r0 r0 115", "lt_r0_r0_115"},
655     {{mi, r5, r5, 236}, true, mi, "mi r5 r5 236", "mi_r5_r5_236"},
656     {{eq, r5, r5, 151}, true, eq, "eq r5 r5 151", "eq_r5_r5_151"},
657     {{eq, r5, r5, 11}, true, eq, "eq r5 r5 11", "eq_r5_r5_11"},
658     {{pl, r5, r5, 119}, true, pl, "pl r5 r5 119", "pl_r5_r5_119"},
659     {{cc, r3, r3, 192}, true, cc, "cc r3 r3 192", "cc_r3_r3_192"},
660     {{vc, r7, r7, 0}, true, vc, "vc r7 r7 0", "vc_r7_r7_0"},
661     {{hi, r1, r1, 163}, true, hi, "hi r1 r1 163", "hi_r1_r1_163"},
662     {{hi, r2, r2, 136}, true, hi, "hi r2 r2 136", "hi_r2_r2_136"},
663     {{cc, r5, r5, 235}, true, cc, "cc r5 r5 235", "cc_r5_r5_235"},
664     {{pl, r5, r5, 96}, true, pl, "pl r5 r5 96", "pl_r5_r5_96"},
665     {{ge, r3, r3, 163}, true, ge, "ge r3 r3 163", "ge_r3_r3_163"},
666     {{cs, r5, r5, 239}, true, cs, "cs r5 r5 239", "cs_r5_r5_239"},
667     {{vs, r5, r5, 27}, true, vs, "vs r5 r5 27", "vs_r5_r5_27"},
668     {{le, r6, r6, 65}, true, le, "le r6 r6 65", "le_r6_r6_65"},
669     {{gt, r0, r0, 169}, true, gt, "gt r0 r0 169", "gt_r0_r0_169"},
670     {{ls, r7, r7, 190}, true, ls, "ls r7 r7 190", "ls_r7_r7_190"},
671     {{lt, r5, r5, 205}, true, lt, "lt r5 r5 205", "lt_r5_r5_205"},
672     {{ne, r2, r2, 253}, true, ne, "ne r2 r2 253", "ne_r2_r2_253"},
673     {{cs, r1, r1, 224}, true, cs, "cs r1 r1 224", "cs_r1_r1_224"},
674     {{vs, r1, r1, 85}, true, vs, "vs r1 r1 85", "vs_r1_r1_85"},
675     {{le, r0, r0, 31}, true, le, "le r0 r0 31", "le_r0_r0_31"},
676     {{lt, r2, r2, 7}, true, lt, "lt r2 r2 7", "lt_r2_r2_7"},
677     {{ne, r0, r0, 161}, true, ne, "ne r0 r0 161", "ne_r0_r0_161"},
678     {{le, r5, r5, 46}, true, le, "le r5 r5 46", "le_r5_r5_46"},
679     {{pl, r0, r0, 235}, true, pl, "pl r0 r0 235", "pl_r0_r0_235"},
680     {{eq, r6, r6, 113}, true, eq, "eq r6 r6 113", "eq_r6_r6_113"},
681     {{mi, r6, r6, 45}, true, mi, "mi r6 r6 45", "mi_r6_r6_45"},
682     {{cs, r0, r0, 62}, true, cs, "cs r0 r0 62", "cs_r0_r0_62"},
683     {{ge, r2, r2, 225}, true, ge, "ge r2 r2 225", "ge_r2_r2_225"},
684     {{vc, r7, r7, 47}, true, vc, "vc r7 r7 47", "vc_r7_r7_47"},
685     {{vs, r5, r5, 125}, true, vs, "vs r5 r5 125", "vs_r5_r5_125"},
686     {{ls, r2, r2, 184}, true, ls, "ls r2 r2 184", "ls_r2_r2_184"},
687     {{ls, r3, r3, 113}, true, ls, "ls r3 r3 113", "ls_r3_r3_113"},
688     {{gt, r3, r3, 126}, true, gt, "gt r3 r3 126", "gt_r3_r3_126"},
689     {{gt, r5, r5, 101}, true, gt, "gt r5 r5 101", "gt_r5_r5_101"},
690     {{lt, r2, r2, 147}, true, lt, "lt r2 r2 147", "lt_r2_r2_147"},
691     {{le, r5, r5, 60}, true, le, "le r5 r5 60", "le_r5_r5_60"},
692     {{ne, r3, r3, 249}, true, ne, "ne r3 r3 249", "ne_r3_r3_249"},
693     {{cs, r3, r3, 6}, true, cs, "cs r3 r3 6", "cs_r3_r3_6"},
694     {{vc, r3, r3, 65}, true, vc, "vc r3 r3 65", "vc_r3_r3_65"},
695     {{ls, r0, r0, 137}, true, ls, "ls r0 r0 137", "ls_r0_r0_137"},
696     {{ls, r0, r0, 148}, true, ls, "ls r0 r0 148", "ls_r0_r0_148"},
697     {{cs, r2, r2, 128}, true, cs, "cs r2 r2 128", "cs_r2_r2_128"},
698     {{eq, r4, r4, 38}, true, eq, "eq r4 r4 38", "eq_r4_r4_38"},
699     {{ne, r2, r2, 57}, true, ne, "ne r2 r2 57", "ne_r2_r2_57"},
700     {{ls, r2, r2, 125}, true, ls, "ls r2 r2 125", "ls_r2_r2_125"},
701     {{lt, r7, r7, 139}, true, lt, "lt r7 r7 139", "lt_r7_r7_139"},
702     {{eq, r2, r2, 213}, true, eq, "eq r2 r2 213", "eq_r2_r2_213"},
703     {{vc, r0, r0, 7}, true, vc, "vc r0 r0 7", "vc_r0_r0_7"},
704     {{lt, r0, r0, 243}, true, lt, "lt r0 r0 243", "lt_r0_r0_243"},
705     {{lt, r0, r0, 227}, true, lt, "lt r0 r0 227", "lt_r0_r0_227"},
706     {{ge, r6, r6, 110}, true, ge, "ge r6 r6 110", "ge_r6_r6_110"},
707     {{lt, r3, r3, 152}, true, lt, "lt r3 r3 152", "lt_r3_r3_152"},
708     {{ge, r7, r7, 198}, true, ge, "ge r7 r7 198", "ge_r7_r7_198"},
709     {{mi, r3, r3, 158}, true, mi, "mi r3 r3 158", "mi_r3_r3_158"},
710     {{cc, r5, r5, 171}, true, cc, "cc r5 r5 171", "cc_r5_r5_171"},
711     {{lt, r5, r5, 227}, true, lt, "lt r5 r5 227", "lt_r5_r5_227"},
712     {{gt, r4, r4, 197}, true, gt, "gt r4 r4 197", "gt_r4_r4_197"},
713     {{hi, r0, r0, 77}, true, hi, "hi r0 r0 77", "hi_r0_r0_77"},
714     {{mi, r2, r2, 223}, true, mi, "mi r2 r2 223", "mi_r2_r2_223"},
715     {{pl, r1, r1, 62}, true, pl, "pl r1 r1 62", "pl_r1_r1_62"},
716     {{lt, r7, r7, 53}, true, lt, "lt r7 r7 53", "lt_r7_r7_53"},
717     {{ge, r5, r5, 153}, true, ge, "ge r5 r5 153", "ge_r5_r5_153"},
718     {{ge, r0, r0, 169}, true, ge, "ge r0 r0 169", "ge_r0_r0_169"},
719     {{vc, r2, r2, 57}, true, vc, "vc r2 r2 57", "vc_r2_r2_57"},
720     {{eq, r4, r4, 121}, true, eq, "eq r4 r4 121", "eq_r4_r4_121"},
721     {{lt, r1, r1, 26}, true, lt, "lt r1 r1 26", "lt_r1_r1_26"},
722     {{pl, r4, r4, 209}, true, pl, "pl r4 r4 209", "pl_r4_r4_209"},
723     {{vc, r3, r3, 233}, true, vc, "vc r3 r3 233", "vc_r3_r3_233"},
724     {{hi, r6, r6, 159}, true, hi, "hi r6 r6 159", "hi_r6_r6_159"},
725     {{pl, r2, r2, 5}, true, pl, "pl r2 r2 5", "pl_r2_r2_5"},
726     {{ne, r4, r4, 227}, true, ne, "ne r4 r4 227", "ne_r4_r4_227"},
727     {{cc, r4, r4, 116}, true, cc, "cc r4 r4 116", "cc_r4_r4_116"},
728     {{cs, r3, r3, 90}, true, cs, "cs r3 r3 90", "cs_r3_r3_90"},
729     {{lt, r5, r5, 178}, true, lt, "lt r5 r5 178", "lt_r5_r5_178"},
730     {{cs, r6, r6, 144}, true, cs, "cs r6 r6 144", "cs_r6_r6_144"},
731     {{cs, r2, r2, 255}, true, cs, "cs r2 r2 255", "cs_r2_r2_255"},
732     {{mi, r2, r2, 207}, true, mi, "mi r2 r2 207", "mi_r2_r2_207"},
733     {{ne, r4, r4, 116}, true, ne, "ne r4 r4 116", "ne_r4_r4_116"},
734     {{pl, r4, r4, 215}, true, pl, "pl r4 r4 215", "pl_r4_r4_215"},
735     {{cs, r5, r5, 24}, true, cs, "cs r5 r5 24", "cs_r5_r5_24"},
736     {{vc, r4, r4, 206}, true, vc, "vc r4 r4 206", "vc_r4_r4_206"},
737     {{ls, r4, r4, 124}, true, ls, "ls r4 r4 124", "ls_r4_r4_124"},
738     {{cs, r4, r4, 169}, true, cs, "cs r4 r4 169", "cs_r4_r4_169"},
739     {{ge, r7, r7, 168}, true, ge, "ge r7 r7 168", "ge_r7_r7_168"},
740     {{gt, r5, r5, 36}, true, gt, "gt r5 r5 36", "gt_r5_r5_36"},
741     {{le, r5, r5, 188}, true, le, "le r5 r5 188", "le_r5_r5_188"},
742     {{ne, r6, r6, 157}, true, ne, "ne r6 r6 157", "ne_r6_r6_157"},
743     {{eq, r1, r1, 236}, true, eq, "eq r1 r1 236", "eq_r1_r1_236"},
744     {{ls, r1, r1, 49}, true, ls, "ls r1 r1 49", "ls_r1_r1_49"},
745     {{vs, r3, r3, 127}, true, vs, "vs r3 r3 127", "vs_r3_r3_127"},
746     {{le, r1, r1, 232}, true, le, "le r1 r1 232", "le_r1_r1_232"},
747     {{ge, r3, r3, 145}, true, ge, "ge r3 r3 145", "ge_r3_r3_145"},
748     {{ne, r0, r0, 187}, true, ne, "ne r0 r0 187", "ne_r0_r0_187"},
749     {{lt, r0, r0, 30}, true, lt, "lt r0 r0 30", "lt_r0_r0_30"},
750     {{mi, r7, r7, 236}, true, mi, "mi r7 r7 236", "mi_r7_r7_236"},
751     {{mi, r3, r3, 2}, true, mi, "mi r3 r3 2", "mi_r3_r3_2"},
752     {{pl, r0, r0, 192}, true, pl, "pl r0 r0 192", "pl_r0_r0_192"},
753     {{ne, r0, r0, 214}, true, ne, "ne r0 r0 214", "ne_r0_r0_214"},
754     {{eq, r5, r5, 224}, true, eq, "eq r5 r5 224", "eq_r5_r5_224"},
755     {{cs, r7, r7, 157}, true, cs, "cs r7 r7 157", "cs_r7_r7_157"},
756     {{vc, r1, r1, 108}, true, vc, "vc r1 r1 108", "vc_r1_r1_108"},
757     {{eq, r3, r3, 227}, true, eq, "eq r3 r3 227", "eq_r3_r3_227"},
758     {{pl, r0, r0, 185}, true, pl, "pl r0 r0 185", "pl_r0_r0_185"},
759     {{cs, r1, r1, 42}, true, cs, "cs r1 r1 42", "cs_r1_r1_42"},
760     {{cs, r1, r1, 46}, true, cs, "cs r1 r1 46", "cs_r1_r1_46"},
761     {{mi, r5, r5, 132}, true, mi, "mi r5 r5 132", "mi_r5_r5_132"},
762     {{ne, r3, r3, 187}, true, ne, "ne r3 r3 187", "ne_r3_r3_187"},
763     {{hi, r2, r2, 26}, true, hi, "hi r2 r2 26", "hi_r2_r2_26"},
764     {{cs, r5, r5, 135}, true, cs, "cs r5 r5 135", "cs_r5_r5_135"},
765     {{vc, r2, r2, 125}, true, vc, "vc r2 r2 125", "vc_r2_r2_125"},
766     {{lt, r1, r1, 74}, true, lt, "lt r1 r1 74", "lt_r1_r1_74"},
767     {{mi, r7, r7, 83}, true, mi, "mi r7 r7 83", "mi_r7_r7_83"},
768     {{cs, r5, r5, 168}, true, cs, "cs r5 r5 168", "cs_r5_r5_168"},
769     {{eq, r3, r3, 207}, true, eq, "eq r3 r3 207", "eq_r3_r3_207"},
770     {{vc, r0, r0, 44}, true, vc, "vc r0 r0 44", "vc_r0_r0_44"},
771     {{ne, r0, r0, 182}, true, ne, "ne r0 r0 182", "ne_r0_r0_182"},
772     {{cc, r2, r2, 206}, true, cc, "cc r2 r2 206", "cc_r2_r2_206"},
773     {{le, r5, r5, 121}, true, le, "le r5 r5 121", "le_r5_r5_121"},
774     {{mi, r4, r4, 133}, true, mi, "mi r4 r4 133", "mi_r4_r4_133"},
775     {{le, r2, r2, 73}, true, le, "le r2 r2 73", "le_r2_r2_73"},
776     {{gt, r6, r6, 77}, true, gt, "gt r6 r6 77", "gt_r6_r6_77"},
777     {{hi, r6, r6, 222}, true, hi, "hi r6 r6 222", "hi_r6_r6_222"},
778     {{vs, r4, r4, 113}, true, vs, "vs r4 r4 113", "vs_r4_r4_113"},
779     {{cs, r1, r1, 225}, true, cs, "cs r1 r1 225", "cs_r1_r1_225"},
780     {{cc, r5, r5, 143}, true, cc, "cc r5 r5 143", "cc_r5_r5_143"},
781     {{vs, r0, r0, 117}, true, vs, "vs r0 r0 117", "vs_r0_r0_117"},
782     {{vc, r7, r7, 191}, true, vc, "vc r7 r7 191", "vc_r7_r7_191"},
783     {{vs, r3, r3, 164}, true, vs, "vs r3 r3 164", "vs_r3_r3_164"},
784     {{gt, r0, r0, 185}, true, gt, "gt r0 r0 185", "gt_r0_r0_185"},
785     {{gt, r7, r7, 33}, true, gt, "gt r7 r7 33", "gt_r7_r7_33"},
786     {{le, r1, r1, 137}, true, le, "le r1 r1 137", "le_r1_r1_137"},
787     {{mi, r7, r7, 192}, true, mi, "mi r7 r7 192", "mi_r7_r7_192"},
788     {{ne, r0, r0, 82}, true, ne, "ne r0 r0 82", "ne_r0_r0_82"},
789     {{mi, r3, r3, 55}, true, mi, "mi r3 r3 55", "mi_r3_r3_55"},
790     {{vc, r5, r5, 183}, true, vc, "vc r5 r5 183", "vc_r5_r5_183"},
791     {{cs, r5, r5, 22}, true, cs, "cs r5 r5 22", "cs_r5_r5_22"},
792     {{cs, r3, r3, 136}, true, cs, "cs r3 r3 136", "cs_r3_r3_136"},
793     {{lt, r5, r5, 18}, true, lt, "lt r5 r5 18", "lt_r5_r5_18"},
794     {{lt, r5, r5, 154}, true, lt, "lt r5 r5 154", "lt_r5_r5_154"},
795     {{le, r4, r4, 197}, true, le, "le r4 r4 197", "le_r4_r4_197"},
796     {{lt, r1, r1, 185}, true, lt, "lt r1 r1 185", "lt_r1_r1_185"},
797     {{cs, r5, r5, 43}, true, cs, "cs r5 r5 43", "cs_r5_r5_43"},
798     {{le, r0, r0, 108}, true, le, "le r0 r0 108", "le_r0_r0_108"},
799     {{mi, r1, r1, 227}, true, mi, "mi r1 r1 227", "mi_r1_r1_227"},
800     {{cc, r0, r0, 69}, true, cc, "cc r0 r0 69", "cc_r0_r0_69"},
801     {{le, r4, r4, 222}, true, le, "le r4 r4 222", "le_r4_r4_222"},
802     {{cs, r2, r2, 86}, true, cs, "cs r2 r2 86", "cs_r2_r2_86"},
803     {{vs, r3, r3, 10}, true, vs, "vs r3 r3 10", "vs_r3_r3_10"},
804     {{mi, r5, r5, 247}, true, mi, "mi r5 r5 247", "mi_r5_r5_247"},
805     {{gt, r0, r0, 241}, true, gt, "gt r0 r0 241", "gt_r0_r0_241"},
806     {{vs, r3, r3, 109}, true, vs, "vs r3 r3 109", "vs_r3_r3_109"},
807     {{ls, r1, r1, 102}, true, ls, "ls r1 r1 102", "ls_r1_r1_102"},
808     {{cs, r2, r2, 87}, true, cs, "cs r2 r2 87", "cs_r2_r2_87"},
809     {{lt, r0, r0, 253}, true, lt, "lt r0 r0 253", "lt_r0_r0_253"},
810     {{eq, r1, r1, 56}, true, eq, "eq r1 r1 56", "eq_r1_r1_56"},
811     {{vs, r7, r7, 147}, true, vs, "vs r7 r7 147", "vs_r7_r7_147"},
812     {{vs, r5, r5, 10}, true, vs, "vs r5 r5 10", "vs_r5_r5_10"},
813     {{lt, r1, r1, 226}, true, lt, "lt r1 r1 226", "lt_r1_r1_226"},
814     {{gt, r1, r1, 102}, true, gt, "gt r1 r1 102", "gt_r1_r1_102"},
815     {{ls, r7, r7, 66}, true, ls, "ls r7 r7 66", "ls_r7_r7_66"},
816     {{cs, r5, r5, 179}, true, cs, "cs r5 r5 179", "cs_r5_r5_179"},
817     {{eq, r5, r5, 76}, true, eq, "eq r5 r5 76", "eq_r5_r5_76"},
818     {{ls, r2, r2, 217}, true, ls, "ls r2 r2 217", "ls_r2_r2_217"},
819     {{pl, r1, r1, 82}, true, pl, "pl r1 r1 82", "pl_r1_r1_82"},
820     {{cs, r0, r0, 66}, true, cs, "cs r0 r0 66", "cs_r0_r0_66"},
821     {{ne, r4, r4, 69}, true, ne, "ne r4 r4 69", "ne_r4_r4_69"},
822     {{cs, r7, r7, 164}, true, cs, "cs r7 r7 164", "cs_r7_r7_164"},
823     {{cs, r7, r7, 159}, true, cs, "cs r7 r7 159", "cs_r7_r7_159"},
824     {{ge, r6, r6, 123}, true, ge, "ge r6 r6 123", "ge_r6_r6_123"},
825     {{ge, r6, r6, 3}, true, ge, "ge r6 r6 3", "ge_r6_r6_3"},
826     {{lt, r0, r0, 160}, true, lt, "lt r0 r0 160", "lt_r0_r0_160"},
827     {{gt, r4, r4, 228}, true, gt, "gt r4 r4 228", "gt_r4_r4_228"},
828     {{hi, r5, r5, 156}, true, hi, "hi r5 r5 156", "hi_r5_r5_156"},
829     {{gt, r0, r0, 191}, true, gt, "gt r0 r0 191", "gt_r0_r0_191"},
830     {{pl, r1, r1, 178}, true, pl, "pl r1 r1 178", "pl_r1_r1_178"},
831     {{vs, r0, r0, 243}, true, vs, "vs r0 r0 243", "vs_r0_r0_243"},
832     {{lt, r4, r4, 217}, true, lt, "lt r4 r4 217", "lt_r4_r4_217"},
833     {{hi, r3, r3, 90}, true, hi, "hi r3 r3 90", "hi_r3_r3_90"},
834     {{eq, r7, r7, 25}, true, eq, "eq r7 r7 25", "eq_r7_r7_25"},
835     {{vc, r2, r2, 212}, true, vc, "vc r2 r2 212", "vc_r2_r2_212"},
836     {{pl, r0, r0, 252}, true, pl, "pl r0 r0 252", "pl_r0_r0_252"},
837     {{cs, r4, r4, 236}, true, cs, "cs r4 r4 236", "cs_r4_r4_236"},
838     {{cc, r0, r0, 105}, true, cc, "cc r0 r0 105", "cc_r0_r0_105"},
839     {{mi, r3, r3, 134}, true, mi, "mi r3 r3 134", "mi_r3_r3_134"},
840     {{pl, r4, r4, 116}, true, pl, "pl r4 r4 116", "pl_r4_r4_116"},
841     {{lt, r5, r5, 223}, true, lt, "lt r5 r5 223", "lt_r5_r5_223"},
842     {{vs, r2, r2, 242}, true, vs, "vs r2 r2 242", "vs_r2_r2_242"},
843     {{cc, r4, r4, 150}, true, cc, "cc r4 r4 150", "cc_r4_r4_150"},
844     {{ne, r4, r4, 126}, true, ne, "ne r4 r4 126", "ne_r4_r4_126"},
845     {{le, r4, r4, 21}, true, le, "le r4 r4 21", "le_r4_r4_21"},
846     {{gt, r2, r2, 159}, true, gt, "gt r2 r2 159", "gt_r2_r2_159"},
847     {{vs, r5, r5, 139}, true, vs, "vs r5 r5 139", "vs_r5_r5_139"},
848     {{eq, r2, r2, 46}, true, eq, "eq r2 r2 46", "eq_r2_r2_46"},
849     {{mi, r4, r4, 68}, true, mi, "mi r4 r4 68", "mi_r4_r4_68"},
850     {{mi, r4, r4, 112}, true, mi, "mi r4 r4 112", "mi_r4_r4_112"},
851     {{vs, r5, r5, 186}, true, vs, "vs r5 r5 186", "vs_r5_r5_186"},
852     {{cc, r5, r5, 216}, true, cc, "cc r5 r5 216", "cc_r5_r5_216"},
853     {{lt, r4, r4, 12}, true, lt, "lt r4 r4 12", "lt_r4_r4_12"},
854     {{ne, r1, r1, 8}, true, ne, "ne r1 r1 8", "ne_r1_r1_8"},
855     {{cc, r1, r1, 83}, true, cc, "cc r1 r1 83", "cc_r1_r1_83"},
856     {{eq, r7, r7, 109}, true, eq, "eq r7 r7 109", "eq_r7_r7_109"},
857     {{ne, r4, r4, 3}, true, ne, "ne r4 r4 3", "ne_r4_r4_3"},
858     {{pl, r5, r5, 62}, true, pl, "pl r5 r5 62", "pl_r5_r5_62"},
859     {{gt, r1, r1, 205}, true, gt, "gt r1 r1 205", "gt_r1_r1_205"},
860     {{ls, r2, r2, 209}, true, ls, "ls r2 r2 209", "ls_r2_r2_209"},
861     {{vc, r6, r6, 252}, true, vc, "vc r6 r6 252", "vc_r6_r6_252"},
862     {{cs, r1, r1, 218}, true, cs, "cs r1 r1 218", "cs_r1_r1_218"},
863     {{vs, r1, r1, 71}, true, vs, "vs r1 r1 71", "vs_r1_r1_71"},
864     {{vs, r2, r2, 247}, true, vs, "vs r2 r2 247", "vs_r2_r2_247"},
865     {{pl, r0, r0, 42}, true, pl, "pl r0 r0 42", "pl_r0_r0_42"},
866     {{mi, r7, r7, 226}, true, mi, "mi r7 r7 226", "mi_r7_r7_226"},
867     {{hi, r4, r4, 14}, true, hi, "hi r4 r4 14", "hi_r4_r4_14"},
868     {{ls, r7, r7, 246}, true, ls, "ls r7 r7 246", "ls_r7_r7_246"},
869     {{ge, r4, r4, 239}, true, ge, "ge r4 r4 239", "ge_r4_r4_239"},
870     {{eq, r1, r1, 187}, true, eq, "eq r1 r1 187", "eq_r1_r1_187"},
871     {{gt, r4, r4, 105}, true, gt, "gt r4 r4 105", "gt_r4_r4_105"},
872     {{cs, r5, r5, 85}, true, cs, "cs r5 r5 85", "cs_r5_r5_85"},
873     {{le, r4, r4, 47}, true, le, "le r4 r4 47", "le_r4_r4_47"},
874     {{mi, r4, r4, 98}, true, mi, "mi r4 r4 98", "mi_r4_r4_98"},
875     {{gt, r0, r0, 180}, true, gt, "gt r0 r0 180", "gt_r0_r0_180"},
876     {{ge, r5, r5, 38}, true, ge, "ge r5 r5 38", "ge_r5_r5_38"},
877     {{cc, r2, r2, 61}, true, cc, "cc r2 r2 61", "cc_r2_r2_61"},
878     {{lt, r7, r7, 180}, true, lt, "lt r7 r7 180", "lt_r7_r7_180"},
879     {{gt, r7, r7, 149}, true, gt, "gt r7 r7 149", "gt_r7_r7_149"},
880     {{pl, r6, r6, 146}, true, pl, "pl r6 r6 146", "pl_r6_r6_146"},
881     {{pl, r4, r4, 202}, true, pl, "pl r4 r4 202", "pl_r4_r4_202"},
882     {{hi, r0, r0, 225}, true, hi, "hi r0 r0 225", "hi_r0_r0_225"},
883     {{cs, r5, r5, 142}, true, cs, "cs r5 r5 142", "cs_r5_r5_142"},
884     {{lt, r0, r0, 224}, true, lt, "lt r0 r0 224", "lt_r0_r0_224"},
885     {{vc, r5, r5, 170}, true, vc, "vc r5 r5 170", "vc_r5_r5_170"},
886     {{le, r7, r7, 205}, true, le, "le r7 r7 205", "le_r7_r7_205"},
887     {{cs, r2, r2, 228}, true, cs, "cs r2 r2 228", "cs_r2_r2_228"},
888     {{cc, r0, r0, 96}, true, cc, "cc r0 r0 96", "cc_r0_r0_96"},
889     {{vc, r0, r0, 134}, true, vc, "vc r0 r0 134", "vc_r0_r0_134"},
890     {{le, r7, r7, 5}, true, le, "le r7 r7 5", "le_r7_r7_5"},
891     {{ne, r0, r0, 33}, true, ne, "ne r0 r0 33", "ne_r0_r0_33"},
892     {{vc, r3, r3, 162}, true, vc, "vc r3 r3 162", "vc_r3_r3_162"},
893     {{mi, r2, r2, 111}, true, mi, "mi r2 r2 111", "mi_r2_r2_111"},
894     {{vs, r1, r1, 210}, true, vs, "vs r1 r1 210", "vs_r1_r1_210"},
895     {{mi, r2, r2, 244}, true, mi, "mi r2 r2 244", "mi_r2_r2_244"},
896     {{cs, r6, r6, 208}, true, cs, "cs r6 r6 208", "cs_r6_r6_208"},
897     {{gt, r1, r1, 213}, true, gt, "gt r1 r1 213", "gt_r1_r1_213"},
898     {{ge, r7, r7, 63}, true, ge, "ge r7 r7 63", "ge_r7_r7_63"},
899     {{mi, r2, r2, 214}, true, mi, "mi r2 r2 214", "mi_r2_r2_214"},
900     {{ne, r6, r6, 224}, true, ne, "ne r6 r6 224", "ne_r6_r6_224"},
901     {{vc, r1, r1, 169}, true, vc, "vc r1 r1 169", "vc_r1_r1_169"},
902     {{vc, r2, r2, 228}, true, vc, "vc r2 r2 228", "vc_r2_r2_228"},
903     {{ge, r1, r1, 161}, true, ge, "ge r1 r1 161", "ge_r1_r1_161"},
904     {{vc, r1, r1, 250}, true, vc, "vc r1 r1 250", "vc_r1_r1_250"},
905     {{cs, r0, r0, 214}, true, cs, "cs r0 r0 214", "cs_r0_r0_214"},
906     {{lt, r0, r0, 104}, true, lt, "lt r0 r0 104", "lt_r0_r0_104"},
907     {{cs, r2, r2, 210}, true, cs, "cs r2 r2 210", "cs_r2_r2_210"},
908     {{mi, r2, r2, 229}, true, mi, "mi r2 r2 229", "mi_r2_r2_229"},
909     {{cs, r5, r5, 55}, true, cs, "cs r5 r5 55", "cs_r5_r5_55"},
910     {{lt, r2, r2, 17}, true, lt, "lt r2 r2 17", "lt_r2_r2_17"},
911     {{ls, r2, r2, 169}, true, ls, "ls r2 r2 169", "ls_r2_r2_169"},
912     {{vc, r6, r6, 74}, true, vc, "vc r6 r6 74", "vc_r6_r6_74"},
913     {{ge, r1, r1, 242}, true, ge, "ge r1 r1 242", "ge_r1_r1_242"},
914     {{vc, r4, r4, 234}, true, vc, "vc r4 r4 234", "vc_r4_r4_234"},
915     {{eq, r2, r2, 147}, true, eq, "eq r2 r2 147", "eq_r2_r2_147"},
916     {{vc, r1, r1, 101}, true, vc, "vc r1 r1 101", "vc_r1_r1_101"},
917     {{pl, r6, r6, 226}, true, pl, "pl r6 r6 226", "pl_r6_r6_226"},
918     {{gt, r6, r6, 184}, true, gt, "gt r6 r6 184", "gt_r6_r6_184"},
919     {{gt, r3, r3, 177}, true, gt, "gt r3 r3 177", "gt_r3_r3_177"},
920     {{ne, r1, r1, 126}, true, ne, "ne r1 r1 126", "ne_r1_r1_126"},
921     {{ls, r5, r5, 222}, true, ls, "ls r5 r5 222", "ls_r5_r5_222"},
922     {{hi, r4, r4, 2}, true, hi, "hi r4 r4 2", "hi_r4_r4_2"},
923     {{ls, r2, r2, 190}, true, ls, "ls r2 r2 190", "ls_r2_r2_190"},
924     {{mi, r4, r4, 254}, true, mi, "mi r4 r4 254", "mi_r4_r4_254"},
925     {{pl, r4, r4, 19}, true, pl, "pl r4 r4 19", "pl_r4_r4_19"},
926     {{ls, r0, r0, 241}, true, ls, "ls r0 r0 241", "ls_r0_r0_241"},
927     {{cc, r3, r3, 148}, true, cc, "cc r3 r3 148", "cc_r3_r3_148"},
928     {{gt, r1, r1, 195}, true, gt, "gt r1 r1 195", "gt_r1_r1_195"},
929     {{vc, r4, r4, 91}, true, vc, "vc r4 r4 91", "vc_r4_r4_91"},
930     {{gt, r0, r0, 227}, true, gt, "gt r0 r0 227", "gt_r0_r0_227"},
931     {{vs, r6, r6, 86}, true, vs, "vs r6 r6 86", "vs_r6_r6_86"},
932     {{ls, r1, r1, 241}, true, ls, "ls r1 r1 241", "ls_r1_r1_241"},
933     {{le, r3, r3, 241}, true, le, "le r3 r3 241", "le_r3_r3_241"},
934     {{vs, r2, r2, 217}, true, vs, "vs r2 r2 217", "vs_r2_r2_217"},
935     {{ls, r7, r7, 33}, true, ls, "ls r7 r7 33", "ls_r7_r7_33"},
936     {{ge, r1, r1, 76}, true, ge, "ge r1 r1 76", "ge_r1_r1_76"},
937     {{lt, r2, r2, 34}, true, lt, "lt r2 r2 34", "lt_r2_r2_34"},
938     {{gt, r7, r7, 91}, true, gt, "gt r7 r7 91", "gt_r7_r7_91"},
939     {{le, r3, r3, 121}, true, le, "le r3 r3 121", "le_r3_r3_121"},
940     {{ge, r0, r0, 128}, true, ge, "ge r0 r0 128", "ge_r0_r0_128"},
941     {{vc, r6, r6, 199}, true, vc, "vc r6 r6 199", "vc_r6_r6_199"},
942     {{hi, r6, r6, 138}, true, hi, "hi r6 r6 138", "hi_r6_r6_138"},
943     {{pl, r4, r4, 241}, true, pl, "pl r4 r4 241", "pl_r4_r4_241"},
944     {{vc, r5, r5, 246}, true, vc, "vc r5 r5 246", "vc_r5_r5_246"},
945     {{cc, r5, r5, 133}, true, cc, "cc r5 r5 133", "cc_r5_r5_133"},
946     {{cs, r5, r5, 1}, true, cs, "cs r5 r5 1", "cs_r5_r5_1"},
947     {{mi, r1, r1, 233}, true, mi, "mi r1 r1 233", "mi_r1_r1_233"},
948     {{cs, r3, r3, 195}, true, cs, "cs r3 r3 195", "cs_r3_r3_195"},
949     {{pl, r0, r0, 13}, true, pl, "pl r0 r0 13", "pl_r0_r0_13"},
950     {{eq, r5, r5, 187}, true, eq, "eq r5 r5 187", "eq_r5_r5_187"},
951     {{ls, r2, r2, 74}, true, ls, "ls r2 r2 74", "ls_r2_r2_74"},
952     {{ge, r4, r4, 33}, true, ge, "ge r4 r4 33", "ge_r4_r4_33"},
953     {{hi, r3, r3, 253}, true, hi, "hi r3 r3 253", "hi_r3_r3_253"},
954     {{pl, r1, r1, 185}, true, pl, "pl r1 r1 185", "pl_r1_r1_185"},
955     {{gt, r2, r2, 103}, true, gt, "gt r2 r2 103", "gt_r2_r2_103"},
956     {{ls, r3, r3, 255}, true, ls, "ls r3 r3 255", "ls_r3_r3_255"},
957     {{vs, r6, r6, 207}, true, vs, "vs r6 r6 207", "vs_r6_r6_207"},
958     {{cs, r5, r5, 255}, true, cs, "cs r5 r5 255", "cs_r5_r5_255"},
959     {{lt, r1, r1, 107}, true, lt, "lt r1 r1 107", "lt_r1_r1_107"},
960     {{le, r3, r3, 122}, true, le, "le r3 r3 122", "le_r3_r3_122"},
961     {{vc, r0, r0, 223}, true, vc, "vc r0 r0 223", "vc_r0_r0_223"},
962     {{cc, r7, r7, 38}, true, cc, "cc r7 r7 38", "cc_r7_r7_38"},
963     {{cc, r4, r4, 207}, true, cc, "cc r4 r4 207", "cc_r4_r4_207"},
964     {{hi, r3, r3, 101}, true, hi, "hi r3 r3 101", "hi_r3_r3_101"},
965     {{gt, r0, r0, 237}, true, gt, "gt r0 r0 237", "gt_r0_r0_237"},
966     {{mi, r6, r6, 13}, true, mi, "mi r6 r6 13", "mi_r6_r6_13"},
967     {{cs, r1, r1, 109}, true, cs, "cs r1 r1 109", "cs_r1_r1_109"},
968     {{le, r4, r4, 132}, true, le, "le r4 r4 132", "le_r4_r4_132"},
969     {{le, r2, r2, 185}, true, le, "le r2 r2 185", "le_r2_r2_185"},
970     {{lt, r3, r3, 220}, true, lt, "lt r3 r3 220", "lt_r3_r3_220"},
971     {{eq, r7, r7, 248}, true, eq, "eq r7 r7 248", "eq_r7_r7_248"},
972     {{le, r7, r7, 146}, true, le, "le r7 r7 146", "le_r7_r7_146"},
973     {{hi, r1, r1, 34}, true, hi, "hi r1 r1 34", "hi_r1_r1_34"},
974     {{pl, r3, r3, 146}, true, pl, "pl r3 r3 146", "pl_r3_r3_146"},
975     {{cs, r6, r6, 22}, true, cs, "cs r6 r6 22", "cs_r6_r6_22"},
976     {{lt, r2, r2, 187}, true, lt, "lt r2 r2 187", "lt_r2_r2_187"},
977     {{cc, r4, r4, 176}, true, cc, "cc r4 r4 176", "cc_r4_r4_176"},
978     {{ge, r3, r3, 233}, true, ge, "ge r3 r3 233", "ge_r3_r3_233"},
979     {{ge, r2, r2, 41}, true, ge, "ge r2 r2 41", "ge_r2_r2_41"},
980     {{lt, r0, r0, 207}, true, lt, "lt r0 r0 207", "lt_r0_r0_207"},
981     {{vc, r0, r0, 147}, true, vc, "vc r0 r0 147", "vc_r0_r0_147"},
982     {{pl, r4, r4, 89}, true, pl, "pl r4 r4 89", "pl_r4_r4_89"},
983     {{cs, r2, r2, 57}, true, cs, "cs r2 r2 57", "cs_r2_r2_57"},
984     {{vc, r0, r0, 24}, true, vc, "vc r0 r0 24", "vc_r0_r0_24"},
985     {{mi, r6, r6, 114}, true, mi, "mi r6 r6 114", "mi_r6_r6_114"},
986     {{pl, r4, r4, 109}, true, pl, "pl r4 r4 109", "pl_r4_r4_109"},
987     {{mi, r7, r7, 98}, true, mi, "mi r7 r7 98", "mi_r7_r7_98"},
988     {{eq, r5, r5, 124}, true, eq, "eq r5 r5 124", "eq_r5_r5_124"},
989     {{le, r3, r3, 253}, true, le, "le r3 r3 253", "le_r3_r3_253"},
990     {{hi, r5, r5, 149}, true, hi, "hi r5 r5 149", "hi_r5_r5_149"},
991     {{cc, r5, r5, 5}, true, cc, "cc r5 r5 5", "cc_r5_r5_5"},
992     {{cs, r1, r1, 149}, true, cs, "cs r1 r1 149", "cs_r1_r1_149"},
993     {{gt, r3, r3, 149}, true, gt, "gt r3 r3 149", "gt_r3_r3_149"},
994     {{vs, r3, r3, 20}, true, vs, "vs r3 r3 20", "vs_r3_r3_20"},
995     {{lt, r7, r7, 241}, true, lt, "lt r7 r7 241", "lt_r7_r7_241"},
996     {{cs, r2, r2, 42}, true, cs, "cs r2 r2 42", "cs_r2_r2_42"},
997     {{vs, r2, r2, 122}, true, vs, "vs r2 r2 122", "vs_r2_r2_122"},
998     {{ne, r0, r0, 203}, true, ne, "ne r0 r0 203", "ne_r0_r0_203"},
999     {{cc, r4, r4, 80}, true, cc, "cc r4 r4 80", "cc_r4_r4_80"},
1000     {{gt, r0, r0, 162}, true, gt, "gt r0 r0 162", "gt_r0_r0_162"},
1001     {{gt, r4, r4, 155}, true, gt, "gt r4 r4 155", "gt_r4_r4_155"},
1002     {{mi, r1, r1, 93}, true, mi, "mi r1 r1 93", "mi_r1_r1_93"},
1003     {{gt, r2, r2, 94}, true, gt, "gt r2 r2 94", "gt_r2_r2_94"},
1004     {{eq, r0, r0, 87}, true, eq, "eq r0 r0 87", "eq_r0_r0_87"},
1005     {{pl, r1, r1, 141}, true, pl, "pl r1 r1 141", "pl_r1_r1_141"},
1006     {{cc, r6, r6, 42}, true, cc, "cc r6 r6 42", "cc_r6_r6_42"},
1007     {{vc, r0, r0, 178}, true, vc, "vc r0 r0 178", "vc_r0_r0_178"},
1008     {{pl, r6, r6, 109}, true, pl, "pl r6 r6 109", "pl_r6_r6_109"},
1009     {{mi, r0, r0, 186}, true, mi, "mi r0 r0 186", "mi_r0_r0_186"},
1010     {{gt, r6, r6, 116}, true, gt, "gt r6 r6 116", "gt_r6_r6_116"},
1011     {{vc, r3, r3, 249}, true, vc, "vc r3 r3 249", "vc_r3_r3_249"},
1012     {{vs, r6, r6, 197}, true, vs, "vs r6 r6 197", "vs_r6_r6_197"},
1013     {{hi, r5, r5, 176}, true, hi, "hi r5 r5 176", "hi_r5_r5_176"},
1014     {{ls, r3, r3, 10}, true, ls, "ls r3 r3 10", "ls_r3_r3_10"},
1015     {{ge, r0, r0, 120}, true, ge, "ge r0 r0 120", "ge_r0_r0_120"},
1016     {{ge, r0, r0, 197}, true, ge, "ge r0 r0 197", "ge_r0_r0_197"},
1017     {{ls, r7, r7, 149}, true, ls, "ls r7 r7 149", "ls_r7_r7_149"},
1018     {{mi, r2, r2, 219}, true, mi, "mi r2 r2 219", "mi_r2_r2_219"},
1019     {{lt, r4, r4, 130}, true, lt, "lt r4 r4 130", "lt_r4_r4_130"},
1020     {{pl, r4, r4, 220}, true, pl, "pl r4 r4 220", "pl_r4_r4_220"},
1021     {{gt, r2, r2, 101}, true, gt, "gt r2 r2 101", "gt_r2_r2_101"},
1022     {{pl, r6, r6, 111}, true, pl, "pl r6 r6 111", "pl_r6_r6_111"},
1023     {{hi, r2, r2, 21}, true, hi, "hi r2 r2 21", "hi_r2_r2_21"},
1024     {{lt, r5, r5, 174}, true, lt, "lt r5 r5 174", "lt_r5_r5_174"},
1025     {{hi, r0, r0, 190}, true, hi, "hi r0 r0 190", "hi_r0_r0_190"},
1026     {{ge, r7, r7, 166}, true, ge, "ge r7 r7 166", "ge_r7_r7_166"},
1027     {{vc, r5, r5, 251}, true, vc, "vc r5 r5 251", "vc_r5_r5_251"},
1028     {{ne, r2, r2, 174}, true, ne, "ne r2 r2 174", "ne_r2_r2_174"},
1029     {{eq, r6, r6, 255}, true, eq, "eq r6 r6 255", "eq_r6_r6_255"},
1030     {{ls, r5, r5, 186}, true, ls, "ls r5 r5 186", "ls_r5_r5_186"},
1031     {{vs, r3, r3, 75}, true, vs, "vs r3 r3 75", "vs_r3_r3_75"},
1032     {{cs, r2, r2, 15}, true, cs, "cs r2 r2 15", "cs_r2_r2_15"},
1033     {{hi, r6, r6, 133}, true, hi, "hi r6 r6 133", "hi_r6_r6_133"},
1034     {{vc, r0, r0, 188}, true, vc, "vc r0 r0 188", "vc_r0_r0_188"},
1035     {{ne, r2, r2, 85}, true, ne, "ne r2 r2 85", "ne_r2_r2_85"},
1036     {{hi, r2, r2, 116}, true, hi, "hi r2 r2 116", "hi_r2_r2_116"},
1037     {{le, r3, r3, 91}, true, le, "le r3 r3 91", "le_r3_r3_91"},
1038     {{pl, r1, r1, 222}, true, pl, "pl r1 r1 222", "pl_r1_r1_222"},
1039     {{mi, r0, r0, 33}, true, mi, "mi r0 r0 33", "mi_r0_r0_33"},
1040     {{vs, r3, r3, 26}, true, vs, "vs r3 r3 26", "vs_r3_r3_26"},
1041     {{cc, r5, r5, 182}, true, cc, "cc r5 r5 182", "cc_r5_r5_182"},
1042     {{gt, r0, r0, 62}, true, gt, "gt r0 r0 62", "gt_r0_r0_62"},
1043     {{vc, r1, r1, 189}, true, vc, "vc r1 r1 189", "vc_r1_r1_189"},
1044     {{pl, r2, r2, 180}, true, pl, "pl r2 r2 180", "pl_r2_r2_180"},
1045     {{mi, r5, r5, 15}, true, mi, "mi r5 r5 15", "mi_r5_r5_15"},
1046     {{lt, r4, r4, 24}, true, lt, "lt r4 r4 24", "lt_r4_r4_24"},
1047     {{cs, r6, r6, 190}, true, cs, "cs r6 r6 190", "cs_r6_r6_190"},
1048     {{ne, r6, r6, 168}, true, ne, "ne r6 r6 168", "ne_r6_r6_168"},
1049     {{ls, r2, r2, 48}, true, ls, "ls r2 r2 48", "ls_r2_r2_48"},
1050     {{vs, r7, r7, 6}, true, vs, "vs r7 r7 6", "vs_r7_r7_6"},
1051     {{cs, r4, r4, 80}, true, cs, "cs r4 r4 80", "cs_r4_r4_80"},
1052     {{ls, r3, r3, 75}, true, ls, "ls r3 r3 75", "ls_r3_r3_75"},
1053     {{ge, r2, r2, 236}, true, ge, "ge r2 r2 236", "ge_r2_r2_236"},
1054     {{hi, r1, r1, 9}, true, hi, "hi r1 r1 9", "hi_r1_r1_9"},
1055     {{cs, r1, r1, 51}, true, cs, "cs r1 r1 51", "cs_r1_r1_51"},
1056     {{cc, r1, r1, 139}, true, cc, "cc r1 r1 139", "cc_r1_r1_139"},
1057     {{cc, r2, r2, 204}, true, cc, "cc r2 r2 204", "cc_r2_r2_204"},
1058     {{gt, r2, r2, 216}, true, gt, "gt r2 r2 216", "gt_r2_r2_216"},
1059     {{vc, r7, r7, 60}, true, vc, "vc r7 r7 60", "vc_r7_r7_60"},
1060     {{pl, r6, r6, 249}, true, pl, "pl r6 r6 249", "pl_r6_r6_249"},
1061     {{cs, r1, r1, 169}, true, cs, "cs r1 r1 169", "cs_r1_r1_169"},
1062     {{eq, r6, r6, 33}, true, eq, "eq r6 r6 33", "eq_r6_r6_33"},
1063     {{ne, r0, r0, 91}, true, ne, "ne r0 r0 91", "ne_r0_r0_91"},
1064     {{vc, r4, r4, 56}, true, vc, "vc r4 r4 56", "vc_r4_r4_56"},
1065     {{ge, r5, r5, 26}, true, ge, "ge r5 r5 26", "ge_r5_r5_26"},
1066     {{lt, r6, r6, 210}, true, lt, "lt r6 r6 210", "lt_r6_r6_210"},
1067     {{le, r6, r6, 122}, true, le, "le r6 r6 122", "le_r6_r6_122"},
1068     {{ls, r4, r4, 118}, true, ls, "ls r4 r4 118", "ls_r4_r4_118"},
1069     {{lt, r3, r3, 59}, true, lt, "lt r3 r3 59", "lt_r3_r3_59"},
1070     {{cc, r3, r3, 144}, true, cc, "cc r3 r3 144", "cc_r3_r3_144"},
1071     {{le, r6, r6, 159}, true, le, "le r6 r6 159", "le_r6_r6_159"},
1072     {{lt, r0, r0, 25}, true, lt, "lt r0 r0 25", "lt_r0_r0_25"},
1073     {{vs, r0, r0, 150}, true, vs, "vs r0 r0 150", "vs_r0_r0_150"},
1074     {{ne, r1, r1, 91}, true, ne, "ne r1 r1 91", "ne_r1_r1_91"},
1075     {{ls, r2, r2, 65}, true, ls, "ls r2 r2 65", "ls_r2_r2_65"},
1076     {{lt, r3, r3, 80}, true, lt, "lt r3 r3 80", "lt_r3_r3_80"},
1077     {{eq, r0, r0, 37}, true, eq, "eq r0 r0 37", "eq_r0_r0_37"},
1078     {{ne, r4, r4, 71}, true, ne, "ne r4 r4 71", "ne_r4_r4_71"},
1079     {{ls, r7, r7, 169}, true, ls, "ls r7 r7 169", "ls_r7_r7_169"},
1080     {{cs, r0, r0, 141}, true, cs, "cs r0 r0 141", "cs_r0_r0_141"},
1081     {{pl, r3, r3, 190}, true, pl, "pl r3 r3 190", "pl_r3_r3_190"},
1082     {{pl, r7, r7, 53}, true, pl, "pl r7 r7 53", "pl_r7_r7_53"},
1083     {{vc, r3, r3, 60}, true, vc, "vc r3 r3 60", "vc_r3_r3_60"},
1084     {{ge, r3, r3, 104}, true, ge, "ge r3 r3 104", "ge_r3_r3_104"},
1085     {{pl, r1, r1, 93}, true, pl, "pl r1 r1 93", "pl_r1_r1_93"},
1086     {{pl, r7, r7, 234}, true, pl, "pl r7 r7 234", "pl_r7_r7_234"},
1087     {{lt, r0, r0, 226}, true, lt, "lt r0 r0 226", "lt_r0_r0_226"},
1088     {{mi, r1, r1, 207}, true, mi, "mi r1 r1 207", "mi_r1_r1_207"},
1089     {{le, r1, r1, 152}, true, le, "le r1 r1 152", "le_r1_r1_152"},
1090     {{gt, r6, r6, 151}, true, gt, "gt r6 r6 151", "gt_r6_r6_151"},
1091     {{ge, r4, r4, 127}, true, ge, "ge r4 r4 127", "ge_r4_r4_127"},
1092     {{lt, r1, r1, 167}, true, lt, "lt r1 r1 167", "lt_r1_r1_167"},
1093     {{pl, r2, r2, 206}, true, pl, "pl r2 r2 206", "pl_r2_r2_206"},
1094     {{ge, r1, r1, 241}, true, ge, "ge r1 r1 241", "ge_r1_r1_241"},
1095     {{vs, r3, r3, 156}, true, vs, "vs r3 r3 156", "vs_r3_r3_156"},
1096     {{gt, r0, r0, 125}, true, gt, "gt r0 r0 125", "gt_r0_r0_125"}};
1097
1098// These headers each contain an array of `TestResult` with the reference output
1099// values. The reference arrays are names `kReference{mnemonic}`.
1100#include "aarch32/traces/assembler-cond-rdlow-rnlow-operand-immediate-imm8-in-it-block-add-t32.h"
1101#include "aarch32/traces/assembler-cond-rdlow-rnlow-operand-immediate-imm8-in-it-block-sub-t32.h"
1102
1103
1104// The maximum number of errors to report in detail for each test.
1105const unsigned kErrorReportLimit = 8;
1106
1107typedef void (MacroAssembler::*Fn)(Condition cond,
1108                                   Register rd,
1109                                   Register rn,
1110                                   const Operand& op);
1111
1112void TestHelper(Fn instruction,
1113                const char* mnemonic,
1114                const TestResult reference[]) {
1115  unsigned total_error_count = 0;
1116  MacroAssembler masm(BUF_SIZE);
1117
1118  masm.UseT32();
1119
1120  for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1121    // Values to pass to the macro-assembler.
1122    Condition cond = kTests[i].operands.cond;
1123    Register rd = kTests[i].operands.rd;
1124    Register rn = kTests[i].operands.rn;
1125    int32_t immediate = kTests[i].operands.immediate;
1126    Operand op(immediate);
1127
1128    int32_t start = masm.GetCursorOffset();
1129    {
1130      // We never generate more that 4 bytes, as IT instructions are only
1131      // allowed for narrow encodings.
1132      ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
1133      if (kTests[i].in_it_block) {
1134        masm.it(kTests[i].it_condition);
1135      }
1136      (masm.*instruction)(cond, rd, rn, op);
1137    }
1138    int32_t end = masm.GetCursorOffset();
1139
1140    const byte* result_ptr =
1141        masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
1142    VIXL_ASSERT(start < end);
1143    uint32_t result_size = end - start;
1144
1145    if (Test::generate_test_trace()) {
1146      // Print the result bytes.
1147      printf("const byte kInstruction_%s_%s[] = {\n",
1148             mnemonic,
1149             kTests[i].identifier);
1150      for (uint32_t j = 0; j < result_size; j++) {
1151        if (j == 0) {
1152          printf("  0x%02" PRIx8, result_ptr[j]);
1153        } else {
1154          printf(", 0x%02" PRIx8, result_ptr[j]);
1155        }
1156      }
1157      // This comment is meant to be used by external tools to validate
1158      // the encoding. We can parse the comment to figure out what
1159      // instruction this corresponds to.
1160      if (kTests[i].in_it_block) {
1161        printf(" // It %s; %s %s\n};\n",
1162               kTests[i].it_condition.GetName(),
1163               mnemonic,
1164               kTests[i].operands_description);
1165      } else {
1166        printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
1167      }
1168    } else {
1169      // Check we've emitted the exact same encoding as present in the
1170      // trace file. Only print up to `kErrorReportLimit` errors.
1171      if (((result_size != reference[i].size) ||
1172           (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
1173            0)) &&
1174          (++total_error_count <= kErrorReportLimit)) {
1175        printf("Error when testing \"%s\" with operands \"%s\":\n",
1176               mnemonic,
1177               kTests[i].operands_description);
1178        printf("  Expected: ");
1179        for (uint32_t j = 0; j < reference[i].size; j++) {
1180          if (j == 0) {
1181            printf("0x%02" PRIx8, reference[i].encoding[j]);
1182          } else {
1183            printf(", 0x%02" PRIx8, reference[i].encoding[j]);
1184          }
1185        }
1186        printf("\n");
1187        printf("  Found:    ");
1188        for (uint32_t j = 0; j < result_size; j++) {
1189          if (j == 0) {
1190            printf("0x%02" PRIx8, result_ptr[j]);
1191          } else {
1192            printf(", 0x%02" PRIx8, result_ptr[j]);
1193          }
1194        }
1195        printf("\n");
1196      }
1197    }
1198  }
1199
1200  masm.FinalizeCode();
1201
1202  if (Test::generate_test_trace()) {
1203    // Finalize the trace file by writing the final `TestResult` array
1204    // which links all generated instruction encodings.
1205    printf("const TestResult kReference%s[] = {\n", mnemonic);
1206    for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
1207      printf("  {\n");
1208      printf("    ARRAY_SIZE(kInstruction_%s_%s),\n",
1209             mnemonic,
1210             kTests[i].identifier);
1211      printf("    kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
1212      printf("  },\n");
1213    }
1214    printf("};\n");
1215  } else {
1216    if (total_error_count > kErrorReportLimit) {
1217      printf("%u other errors follow.\n",
1218             total_error_count - kErrorReportLimit);
1219    }
1220    // Crash if the test failed.
1221    VIXL_CHECK(total_error_count == 0);
1222  }
1223}
1224
1225// Instantiate tests for each instruction in the list.
1226#define TEST(mnemonic)                                                      \
1227  void Test_##mnemonic() {                                                  \
1228    TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \
1229  }                                                                         \
1230  Test test_##mnemonic(                                                     \
1231      "AARCH32_ASSEMBLER_COND_RDLOW_RNLOW_OPERAND_IMMEDIATE_IMM8_IN_IT_"    \
1232      "BLOCK_" #mnemonic "_T32",                                            \
1233      &Test_##mnemonic);
1234FOREACH_INSTRUCTION(TEST)
1235#undef TEST
1236
1237}  // namespace
1238#endif
1239
1240}  // namespace aarch32
1241}  // namespace vixl
1242