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 & 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) & IR3_REG_HALF) 65bf215546Sopenharmony_ci </map> 66bf215546Sopenharmony_ci <map name="EI">!!(src->dsts[0]->flags & IR3_REG_EI)</map> 67bf215546Sopenharmony_ci <map name="FULL">!(src->srcs[0]->flags & 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