1bf215546Sopenharmony_ci<?xml version="1.0" encoding="UTF-8"?>
2bf215546Sopenharmony_ci<!--
3bf215546Sopenharmony_ciCopyright © 2020 Google, Inc.
4bf215546Sopenharmony_ci
5bf215546Sopenharmony_ciPermission is hereby granted, free of charge, to any person obtaining a
6bf215546Sopenharmony_cicopy of this software and associated documentation files (the "Software"),
7bf215546Sopenharmony_cito deal in the Software without restriction, including without limitation
8bf215546Sopenharmony_cithe rights to use, copy, modify, merge, publish, distribute, sublicense,
9bf215546Sopenharmony_ciand/or sell copies of the Software, and to permit persons to whom the
10bf215546Sopenharmony_ciSoftware is furnished to do so, subject to the following conditions:
11bf215546Sopenharmony_ci
12bf215546Sopenharmony_ciThe above copyright notice and this permission notice (including the next
13bf215546Sopenharmony_ciparagraph) shall be included in all copies or substantial portions of the
14bf215546Sopenharmony_ciSoftware.
15bf215546Sopenharmony_ci
16bf215546Sopenharmony_ciTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17bf215546Sopenharmony_ciIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18bf215546Sopenharmony_ciFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19bf215546Sopenharmony_ciTHE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20bf215546Sopenharmony_ciLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21bf215546Sopenharmony_ciOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22bf215546Sopenharmony_ciSOFTWARE.
23bf215546Sopenharmony_ci -->
24bf215546Sopenharmony_ci
25bf215546Sopenharmony_ci<isa>
26bf215546Sopenharmony_ci
27bf215546Sopenharmony_ci<!--
28bf215546Sopenharmony_ci	Cat2 Instructions: one and two src ALU instructions
29bf215546Sopenharmony_ci -->
30bf215546Sopenharmony_ci
31bf215546Sopenharmony_ci<bitset name="#instruction-cat2" extends="#instruction">
32bf215546Sopenharmony_ci	<field name="DST" low="32" high="39" type="#reg-gpr"/>
33bf215546Sopenharmony_ci	<field name="REPEAT" low="40" high="41" type="#rptN"/>
34bf215546Sopenharmony_ci	<field name="SAT" pos="42" type="bool" display="(sat)"/>
35bf215546Sopenharmony_ci	<field name="SS" pos="44" type="bool" display="(ss)"/>
36bf215546Sopenharmony_ci	<field name="UL" pos="45" type="bool" display="(ul)"/>
37bf215546Sopenharmony_ci	<field name="DST_CONV" pos="46" type="bool">
38bf215546Sopenharmony_ci		<doc>
39bf215546Sopenharmony_ci			Destination register is opposite precision as source, ie.
40bf215546Sopenharmony_ci			if {FULL} is true then destination is half precision, and
41bf215546Sopenharmony_ci			visa versa.
42bf215546Sopenharmony_ci		</doc>
43bf215546Sopenharmony_ci	</field>
44bf215546Sopenharmony_ci	<derived name="DST_HALF" expr="#dest-half" type="bool" display="h"/>
45bf215546Sopenharmony_ci	<field name="EI" pos="47" type="bool" display="(ei)"/>
46bf215546Sopenharmony_ci	<field name="FULL" pos="52" type="bool">
47bf215546Sopenharmony_ci		<doc>Full precision source registers</doc>
48bf215546Sopenharmony_ci	</field>
49bf215546Sopenharmony_ci	<field name="JP" pos="59" type="bool" display="(jp)"/>
50bf215546Sopenharmony_ci	<field name="SY" pos="60" type="bool" display="(sy)"/>
51bf215546Sopenharmony_ci	<pattern low="61" high="63">010</pattern>  <!-- cat2 -->
52bf215546Sopenharmony_ci	<!--
53bf215546Sopenharmony_ci		NOTE, both SRC1_R and SRC2_R are defined at this level because
54bf215546Sopenharmony_ci		SRC2_R is still a valid bit for (nopN) (REPEAT==0) for cat2
55bf215546Sopenharmony_ci		instructions with only a single src
56bf215546Sopenharmony_ci	 -->
57bf215546Sopenharmony_ci	<field name="SRC1_R" pos="43" type="bool" display="(r)"/>
58bf215546Sopenharmony_ci	<field name="SRC2_R" pos="51" type="bool" display="(r)"/>
59bf215546Sopenharmony_ci	<derived name="ZERO" expr="#zero" type="bool" display=""/>
60bf215546Sopenharmony_ci	<encode>
61bf215546Sopenharmony_ci		<map name="SAT">!!(src->flags &amp; IR3_INSTR_SAT)</map>
62bf215546Sopenharmony_ci		<map name="DST_CONV">
63bf215546Sopenharmony_ci			((src->dsts[0]->num >> 2) == 62) ? 0 :
64bf215546Sopenharmony_ci			!!((src->srcs[0]->flags ^ src->dsts[0]->flags) &amp; IR3_REG_HALF)
65bf215546Sopenharmony_ci		</map>
66bf215546Sopenharmony_ci		<map name="EI">!!(src->dsts[0]->flags &amp; IR3_REG_EI)</map>
67bf215546Sopenharmony_ci		<map name="FULL">!(src->srcs[0]->flags &amp; IR3_REG_HALF)</map>
68bf215546Sopenharmony_ci		<map name="SRC1_R">extract_SRC1_R(src)</map>
69bf215546Sopenharmony_ci		<map name="SRC2_R">extract_SRC2_R(src)</map>
70bf215546Sopenharmony_ci	</encode>
71bf215546Sopenharmony_ci</bitset>
72bf215546Sopenharmony_ci
73bf215546Sopenharmony_ci<bitset name="#instruction-cat2-1src" extends="#instruction-cat2">
74bf215546Sopenharmony_ci	<override expr="#cat2-cat3-nop-encoding">
75bf215546Sopenharmony_ci		<display>
76bf215546Sopenharmony_ci			{SY}{SS}{JP}{SAT}(nop{NOP}) {UL}{NAME} {EI}{DST_HALF}{DST}, {SRC1}
77bf215546Sopenharmony_ci		</display>
78bf215546Sopenharmony_ci		<derived name="NOP" expr="#cat2-cat3-nop-value" type="uint"/>
79bf215546Sopenharmony_ci		<field name="SRC1" low="0" high="15" type="#multisrc">
80bf215546Sopenharmony_ci			<param name="ZERO" as="SRC_R"/>
81bf215546Sopenharmony_ci			<param name="FULL"/>
82bf215546Sopenharmony_ci		</field>
83bf215546Sopenharmony_ci	</override>
84bf215546Sopenharmony_ci	<display>
85bf215546Sopenharmony_ci		{SY}{SS}{JP}{SAT}{REPEAT}{UL}{NAME} {EI}{DST_HALF}{DST}, {SRC1}
86bf215546Sopenharmony_ci	</display>
87bf215546Sopenharmony_ci	<pattern low="16" high="31">xxxxxxxxxxxxxxxx</pattern>
88bf215546Sopenharmony_ci	<pattern low="48" high="50">xxx</pattern>  <!-- COND -->
89bf215546Sopenharmony_ci	<field name="SRC1" low="0" high="15" type="#multisrc">
90bf215546Sopenharmony_ci		<param name="SRC1_R" as="SRC_R"/>
91bf215546Sopenharmony_ci		<param name="FULL"/>
92bf215546Sopenharmony_ci	</field>
93bf215546Sopenharmony_ci</bitset>
94bf215546Sopenharmony_ci
95bf215546Sopenharmony_ci<!-- TODO rest of cat2-1src -->
96bf215546Sopenharmony_ci
97bf215546Sopenharmony_ci<bitset name="#instruction-cat2-2src" extends="#instruction-cat2">
98bf215546Sopenharmony_ci	<override expr="#cat2-cat3-nop-encoding">
99bf215546Sopenharmony_ci		<display>
100bf215546Sopenharmony_ci			{SY}{SS}{JP}{SAT}(nop{NOP}) {UL}{NAME} {EI}{DST_HALF}{DST}, {SRC1}, {SRC2}
101bf215546Sopenharmony_ci		</display>
102bf215546Sopenharmony_ci		<derived name="NOP" expr="#cat2-cat3-nop-value" type="uint"/>
103bf215546Sopenharmony_ci		<field name="SRC1" low="0" high="15" type="#multisrc">
104bf215546Sopenharmony_ci			<param name="ZERO" as="SRC_R"/>
105bf215546Sopenharmony_ci			<param name="FULL"/>
106bf215546Sopenharmony_ci		</field>
107bf215546Sopenharmony_ci		<field name="SRC2" low="16" high="31" type="#multisrc">
108bf215546Sopenharmony_ci			<param name="ZERO" as="SRC_R"/>
109bf215546Sopenharmony_ci			<param name="FULL"/>
110bf215546Sopenharmony_ci		</field>
111bf215546Sopenharmony_ci	</override>
112bf215546Sopenharmony_ci	<display>
113bf215546Sopenharmony_ci		{SY}{SS}{JP}{SAT}{REPEAT}{UL}{NAME} {EI}{DST_HALF}{DST}, {SRC1}, {SRC2}
114bf215546Sopenharmony_ci	</display>
115bf215546Sopenharmony_ci	<field name="SRC1" low="0" high="15" type="#multisrc">
116bf215546Sopenharmony_ci		<param name="SRC1_R" as="SRC_R"/>
117bf215546Sopenharmony_ci		<param name="FULL"/>
118bf215546Sopenharmony_ci	</field>
119bf215546Sopenharmony_ci	<field name="SRC2" low="16" high="31" type="#multisrc">
120bf215546Sopenharmony_ci		<param name="SRC2_R" as="SRC_R"/>
121bf215546Sopenharmony_ci		<param name="FULL"/>
122bf215546Sopenharmony_ci	</field>
123bf215546Sopenharmony_ci	<pattern low="48" high="50">xxx</pattern>  <!-- COND -->
124bf215546Sopenharmony_ci</bitset>
125bf215546Sopenharmony_ci
126bf215546Sopenharmony_ci<!-- The cmp*.* instructions additionally have a condition code: -->
127bf215546Sopenharmony_ci<bitset name="#instruction-cat2-2src-cond" extends="#instruction-cat2">
128bf215546Sopenharmony_ci	<override expr="#cat2-cat3-nop-encoding">
129bf215546Sopenharmony_ci		<display>
130bf215546Sopenharmony_ci			{SY}{SS}{JP}{SAT}(nop{NOP}) {UL}{NAME}.{COND} {EI}{DST_HALF}{DST}, {SRC1}, {SRC2}
131bf215546Sopenharmony_ci		</display>
132bf215546Sopenharmony_ci		<derived name="NOP" expr="#cat2-cat3-nop-value" type="uint"/>
133bf215546Sopenharmony_ci		<field name="SRC1" low="0" high="15" type="#multisrc">
134bf215546Sopenharmony_ci			<param name="ZERO" as="SRC_R"/>
135bf215546Sopenharmony_ci			<param name="FULL"/>
136bf215546Sopenharmony_ci		</field>
137bf215546Sopenharmony_ci		<field name="SRC2" low="16" high="31" type="#multisrc">
138bf215546Sopenharmony_ci			<param name="ZERO" as="SRC_R"/>
139bf215546Sopenharmony_ci			<param name="FULL"/>
140bf215546Sopenharmony_ci		</field>
141bf215546Sopenharmony_ci	</override>
142bf215546Sopenharmony_ci	<display>
143bf215546Sopenharmony_ci		{SY}{SS}{JP}{SAT}{REPEAT}{UL}{NAME}.{COND} {EI}{DST_HALF}{DST}, {SRC1}, {SRC2}
144bf215546Sopenharmony_ci	</display>
145bf215546Sopenharmony_ci	<field name="SRC1" low="0" high="15" type="#multisrc">
146bf215546Sopenharmony_ci		<param name="SRC1_R" as="SRC_R"/>
147bf215546Sopenharmony_ci		<param name="FULL"/>
148bf215546Sopenharmony_ci	</field>
149bf215546Sopenharmony_ci	<field name="SRC2" low="16" high="31" type="#multisrc">
150bf215546Sopenharmony_ci		<param name="SRC2_R" as="SRC_R"/>
151bf215546Sopenharmony_ci		<param name="FULL"/>
152bf215546Sopenharmony_ci	</field>
153bf215546Sopenharmony_ci	<field name="COND" low="48" high="50" type="#cond"/>
154bf215546Sopenharmony_ci	<encode>
155bf215546Sopenharmony_ci		<map name="COND">src->cat2.condition</map>
156bf215546Sopenharmony_ci	</encode>
157bf215546Sopenharmony_ci</bitset>
158bf215546Sopenharmony_ci
159bf215546Sopenharmony_ci
160bf215546Sopenharmony_ci<bitset name="#instruction-cat2-2src-input" extends="#instruction-cat2">
161bf215546Sopenharmony_ci	<display>
162bf215546Sopenharmony_ci		{SY}{SS}{JP}{SAT}{REPEAT}{UL}{NAME} {EI}{DST_HALF}{DST}, {SRC1}, {SRC2}
163bf215546Sopenharmony_ci	</display>
164bf215546Sopenharmony_ci
165bf215546Sopenharmony_ci	<field name="SRC1" low="0" high="15" type="#multisrc">
166bf215546Sopenharmony_ci		<param name="SRC1_R" as="SRC_R"/>
167bf215546Sopenharmony_ci		<param name="FULL"/>
168bf215546Sopenharmony_ci	</field>
169bf215546Sopenharmony_ci	<field name="SRC2" low="16" high="31" type="#multisrc">
170bf215546Sopenharmony_ci		<param name="SRC2_R" as="SRC_R"/>
171bf215546Sopenharmony_ci		<param name="FULL"/>
172bf215546Sopenharmony_ci	</field>
173bf215546Sopenharmony_ci	<pattern low="48" high="49">xx</pattern>  <!-- COND -->
174bf215546Sopenharmony_ci	<pattern low="53" high="58">111001</pattern>
175bf215546Sopenharmony_ci</bitset>
176bf215546Sopenharmony_ci
177bf215546Sopenharmony_ci<bitset name="bary.f" extends="#instruction-cat2-2src-input">
178bf215546Sopenharmony_ci	<pattern pos="50">0</pattern>
179bf215546Sopenharmony_ci</bitset>
180bf215546Sopenharmony_ci
181bf215546Sopenharmony_ci<bitset name="flat.b" extends="#instruction-cat2-2src-input">
182bf215546Sopenharmony_ci	<pattern pos="50">1</pattern>
183bf215546Sopenharmony_ci	<gen min="600"/>
184bf215546Sopenharmony_ci</bitset>
185bf215546Sopenharmony_ci
186bf215546Sopenharmony_ci<bitset name="add.f" extends="#instruction-cat2-2src">
187bf215546Sopenharmony_ci	<pattern low="53" high="58">000000</pattern>
188bf215546Sopenharmony_ci</bitset>
189bf215546Sopenharmony_ci
190bf215546Sopenharmony_ci<bitset name="min.f" extends="#instruction-cat2-2src">
191bf215546Sopenharmony_ci	<pattern low="53" high="58">000001</pattern>
192bf215546Sopenharmony_ci</bitset>
193bf215546Sopenharmony_ci
194bf215546Sopenharmony_ci<bitset name="max.f" extends="#instruction-cat2-2src">
195bf215546Sopenharmony_ci	<pattern low="53" high="58">000010</pattern>
196bf215546Sopenharmony_ci</bitset>
197bf215546Sopenharmony_ci
198bf215546Sopenharmony_ci<bitset name="mul.f" extends="#instruction-cat2-2src">
199bf215546Sopenharmony_ci	<pattern low="53" high="58">000011</pattern>
200bf215546Sopenharmony_ci</bitset>
201bf215546Sopenharmony_ci
202bf215546Sopenharmony_ci<bitset name="sign.f" extends="#instruction-cat2-1src">
203bf215546Sopenharmony_ci	<pattern low="53" high="58">000100</pattern>
204bf215546Sopenharmony_ci</bitset>
205bf215546Sopenharmony_ci
206bf215546Sopenharmony_ci<bitset name="cmps.f" extends="#instruction-cat2-2src-cond">
207bf215546Sopenharmony_ci	<pattern low="53" high="58">000101</pattern>
208bf215546Sopenharmony_ci</bitset>
209bf215546Sopenharmony_ci
210bf215546Sopenharmony_ci<bitset name="absneg.f" extends="#instruction-cat2-1src">
211bf215546Sopenharmony_ci	<pattern low="53" high="58">000110</pattern>
212bf215546Sopenharmony_ci</bitset>
213bf215546Sopenharmony_ci
214bf215546Sopenharmony_ci<bitset name="cmpv.f" extends="#instruction-cat2-2src-cond">
215bf215546Sopenharmony_ci	<pattern low="53" high="58">000111</pattern>
216bf215546Sopenharmony_ci</bitset>
217bf215546Sopenharmony_ci
218bf215546Sopenharmony_ci<bitset name="floor.f" extends="#instruction-cat2-1src">
219bf215546Sopenharmony_ci	<pattern low="53" high="58">001001</pattern>
220bf215546Sopenharmony_ci</bitset>
221bf215546Sopenharmony_ci
222bf215546Sopenharmony_ci<bitset name="ceil.f" extends="#instruction-cat2-1src">
223bf215546Sopenharmony_ci	<pattern low="53" high="58">001010</pattern>
224bf215546Sopenharmony_ci</bitset>
225bf215546Sopenharmony_ci
226bf215546Sopenharmony_ci<bitset name="rndne.f" extends="#instruction-cat2-1src">
227bf215546Sopenharmony_ci	<pattern low="53" high="58">001011</pattern>
228bf215546Sopenharmony_ci</bitset>
229bf215546Sopenharmony_ci
230bf215546Sopenharmony_ci<bitset name="rndaz.f" extends="#instruction-cat2-1src">
231bf215546Sopenharmony_ci	<pattern low="53" high="58">001100</pattern>
232bf215546Sopenharmony_ci</bitset>
233bf215546Sopenharmony_ci
234bf215546Sopenharmony_ci<bitset name="trunc.f" extends="#instruction-cat2-1src">
235bf215546Sopenharmony_ci	<pattern low="53" high="58">001101</pattern>
236bf215546Sopenharmony_ci</bitset>
237bf215546Sopenharmony_ci
238bf215546Sopenharmony_ci<bitset name="add.u" extends="#instruction-cat2-2src">
239bf215546Sopenharmony_ci	<pattern low="53" high="58">010000</pattern>
240bf215546Sopenharmony_ci</bitset>
241bf215546Sopenharmony_ci
242bf215546Sopenharmony_ci<bitset name="add.s" extends="#instruction-cat2-2src">
243bf215546Sopenharmony_ci	<pattern low="53" high="58">010001</pattern>
244bf215546Sopenharmony_ci</bitset>
245bf215546Sopenharmony_ci
246bf215546Sopenharmony_ci<bitset name="sub.u" extends="#instruction-cat2-2src">
247bf215546Sopenharmony_ci	<pattern low="53" high="58">010010</pattern>
248bf215546Sopenharmony_ci</bitset>
249bf215546Sopenharmony_ci
250bf215546Sopenharmony_ci<bitset name="sub.s" extends="#instruction-cat2-2src">
251bf215546Sopenharmony_ci	<pattern low="53" high="58">010011</pattern>
252bf215546Sopenharmony_ci</bitset>
253bf215546Sopenharmony_ci
254bf215546Sopenharmony_ci<bitset name="cmps.u" extends="#instruction-cat2-2src-cond">
255bf215546Sopenharmony_ci	<pattern low="53" high="58">010100</pattern>
256bf215546Sopenharmony_ci</bitset>
257bf215546Sopenharmony_ci
258bf215546Sopenharmony_ci<bitset name="cmps.s" extends="#instruction-cat2-2src-cond">
259bf215546Sopenharmony_ci	<pattern low="53" high="58">010101</pattern>
260bf215546Sopenharmony_ci</bitset>
261bf215546Sopenharmony_ci
262bf215546Sopenharmony_ci<bitset name="min.u" extends="#instruction-cat2-2src">
263bf215546Sopenharmony_ci	<pattern low="53" high="58">010110</pattern>
264bf215546Sopenharmony_ci</bitset>
265bf215546Sopenharmony_ci
266bf215546Sopenharmony_ci<bitset name="min.s" extends="#instruction-cat2-2src">
267bf215546Sopenharmony_ci	<pattern low="53" high="58">010111</pattern>
268bf215546Sopenharmony_ci</bitset>
269bf215546Sopenharmony_ci
270bf215546Sopenharmony_ci<bitset name="max.u" extends="#instruction-cat2-2src">
271bf215546Sopenharmony_ci	<pattern low="53" high="58">011000</pattern>
272bf215546Sopenharmony_ci</bitset>
273bf215546Sopenharmony_ci
274bf215546Sopenharmony_ci<bitset name="max.s" extends="#instruction-cat2-2src">
275bf215546Sopenharmony_ci	<pattern low="53" high="58">011001</pattern>
276bf215546Sopenharmony_ci</bitset>
277bf215546Sopenharmony_ci
278bf215546Sopenharmony_ci<bitset name="absneg.s" extends="#instruction-cat2-1src">
279bf215546Sopenharmony_ci	<pattern low="53" high="58">011010</pattern>
280bf215546Sopenharmony_ci</bitset>
281bf215546Sopenharmony_ci
282bf215546Sopenharmony_ci<bitset name="and.b" extends="#instruction-cat2-2src">
283bf215546Sopenharmony_ci	<pattern low="53" high="58">011100</pattern>
284bf215546Sopenharmony_ci</bitset>
285bf215546Sopenharmony_ci
286bf215546Sopenharmony_ci<bitset name="or.b" extends="#instruction-cat2-2src">
287bf215546Sopenharmony_ci	<pattern low="53" high="58">011101</pattern>
288bf215546Sopenharmony_ci</bitset>
289bf215546Sopenharmony_ci
290bf215546Sopenharmony_ci<bitset name="not.b" extends="#instruction-cat2-1src">
291bf215546Sopenharmony_ci	<pattern low="53" high="58">011110</pattern>
292bf215546Sopenharmony_ci</bitset>
293bf215546Sopenharmony_ci
294bf215546Sopenharmony_ci<bitset name="xor.b" extends="#instruction-cat2-2src">
295bf215546Sopenharmony_ci	<pattern low="53" high="58">011111</pattern>
296bf215546Sopenharmony_ci</bitset>
297bf215546Sopenharmony_ci
298bf215546Sopenharmony_ci<bitset name="cmpv.u" extends="#instruction-cat2-2src-cond">
299bf215546Sopenharmony_ci	<pattern low="53" high="58">100001</pattern>
300bf215546Sopenharmony_ci</bitset>
301bf215546Sopenharmony_ci
302bf215546Sopenharmony_ci<bitset name="cmpv.s" extends="#instruction-cat2-2src-cond">
303bf215546Sopenharmony_ci	<pattern low="53" high="58">100010</pattern>
304bf215546Sopenharmony_ci</bitset>
305bf215546Sopenharmony_ci
306bf215546Sopenharmony_ci<bitset name="mul.u24" extends="#instruction-cat2-2src">
307bf215546Sopenharmony_ci	<pattern low="53" high="58">110000</pattern>
308bf215546Sopenharmony_ci</bitset>
309bf215546Sopenharmony_ci
310bf215546Sopenharmony_ci<bitset name="mul.s24" extends="#instruction-cat2-2src">
311bf215546Sopenharmony_ci	<pattern low="53" high="58">110001</pattern>
312bf215546Sopenharmony_ci</bitset>
313bf215546Sopenharmony_ci
314bf215546Sopenharmony_ci<bitset name="mull.u" extends="#instruction-cat2-2src">
315bf215546Sopenharmony_ci	<pattern low="53" high="58">110010</pattern>
316bf215546Sopenharmony_ci</bitset>
317bf215546Sopenharmony_ci
318bf215546Sopenharmony_ci<bitset name="bfrev.b" extends="#instruction-cat2-1src">
319bf215546Sopenharmony_ci	<pattern low="53" high="58">110011</pattern>
320bf215546Sopenharmony_ci</bitset>
321bf215546Sopenharmony_ci
322bf215546Sopenharmony_ci<bitset name="clz.s" extends="#instruction-cat2-1src">
323bf215546Sopenharmony_ci	<pattern low="53" high="58">110100</pattern>
324bf215546Sopenharmony_ci</bitset>
325bf215546Sopenharmony_ci
326bf215546Sopenharmony_ci<bitset name="clz.b" extends="#instruction-cat2-1src">
327bf215546Sopenharmony_ci	<pattern low="53" high="58">110101</pattern>
328bf215546Sopenharmony_ci</bitset>
329bf215546Sopenharmony_ci
330bf215546Sopenharmony_ci<bitset name="shl.b" extends="#instruction-cat2-2src">
331bf215546Sopenharmony_ci	<pattern low="53" high="58">110110</pattern>
332bf215546Sopenharmony_ci</bitset>
333bf215546Sopenharmony_ci
334bf215546Sopenharmony_ci<bitset name="shr.b" extends="#instruction-cat2-2src">
335bf215546Sopenharmony_ci	<pattern low="53" high="58">110111</pattern>
336bf215546Sopenharmony_ci</bitset>
337bf215546Sopenharmony_ci
338bf215546Sopenharmony_ci<bitset name="ashr.b" extends="#instruction-cat2-2src">
339bf215546Sopenharmony_ci	<pattern low="53" high="58">111000</pattern>
340bf215546Sopenharmony_ci</bitset>
341bf215546Sopenharmony_ci
342bf215546Sopenharmony_ci<bitset name="mgen.b" extends="#instruction-cat2-2src">
343bf215546Sopenharmony_ci	<pattern low="53" high="58">111010</pattern>
344bf215546Sopenharmony_ci</bitset>
345bf215546Sopenharmony_ci
346bf215546Sopenharmony_ci<bitset name="getbit.b" extends="#instruction-cat2-2src">
347bf215546Sopenharmony_ci	<pattern low="53" high="58">111011</pattern>
348bf215546Sopenharmony_ci</bitset>
349bf215546Sopenharmony_ci
350bf215546Sopenharmony_ci<bitset name="setrm" extends="#instruction-cat2-1src">
351bf215546Sopenharmony_ci	<pattern low="53" high="58">111100</pattern>
352bf215546Sopenharmony_ci</bitset>
353bf215546Sopenharmony_ci
354bf215546Sopenharmony_ci<bitset name="cbits.b" extends="#instruction-cat2-1src">
355bf215546Sopenharmony_ci	<pattern low="53" high="58">111101</pattern>
356bf215546Sopenharmony_ci</bitset>
357bf215546Sopenharmony_ci
358bf215546Sopenharmony_ci<bitset name="shb" extends="#instruction-cat2-2src">
359bf215546Sopenharmony_ci	<pattern low="53" high="58">111110</pattern>
360bf215546Sopenharmony_ci</bitset>
361bf215546Sopenharmony_ci
362bf215546Sopenharmony_ci<bitset name="msad" extends="#instruction-cat2-2src">
363bf215546Sopenharmony_ci	<pattern low="53" high="58">111111</pattern>
364bf215546Sopenharmony_ci</bitset>
365bf215546Sopenharmony_ci
366bf215546Sopenharmony_ci</isa>
367