1b8021494Sopenharmony_ciVIXL Supported Instruction List 2b8021494Sopenharmony_ci=============================== 3b8021494Sopenharmony_ci 4b8021494Sopenharmony_ciThis is a list of the AArch64 instructions supported by the VIXL assembler, 5b8021494Sopenharmony_cidisassembler and simulator. The simulator may not support all floating point 6b8021494Sopenharmony_cioperations to the precision required by AArch64 - please check the simulator 7b8021494Sopenharmony_cisource code for details. 8b8021494Sopenharmony_ci 9b8021494Sopenharmony_ci#### AAch64 integer instructions #### 10b8021494Sopenharmony_ci[a](#integer-a) [b](#integer-b) [c](#integer-c) [d](#integer-d) [e](#integer-e) [h](#integer-h) [i](#integer-i) [l](#integer-l) [m](#integer-m) [n](#integer-n) [o](#integer-o) [p](#integer-p) [r](#integer-r) [s](#integer-s) [t](#integer-t) [u](#integer-u) [x](#integer-x) 11b8021494Sopenharmony_ci 12b8021494Sopenharmony_ci#### AArch64 floating point and NEON instructions #### 13b8021494Sopenharmony_ci[a](#float-a) [b](#float-b) [c](#float-c) [d](#float-d) [e](#float-e) [f](#float-f) [i](#float-i) [l](#float-l) [m](#float-m) [n](#float-n) [o](#float-o) [p](#float-p) [r](#float-r) [s](#float-s) [t](#float-t) [u](#float-u) [x](#float-x) [z](#float-z) 14b8021494Sopenharmony_ci 15b8021494Sopenharmony_ci#### AArch64 Scalable Vector Extension (SVE) instructions #### 16b8021494Sopenharmony_ci[a](#sve-a) [b](#sve-b) [c](#sve-c) [d](#sve-d) [e](#sve-e) [f](#sve-f) [h](#sve-h) [i](#sve-i) [l](#sve-l) [m](#sve-m) [n](#sve-n) [o](#sve-o) [p](#sve-p) [r](#sve-r) [s](#sve-s) [t](#sve-t) [u](#sve-u) [w](#sve-w) [x](#sve-x) [z](#sve-z) 17b8021494Sopenharmony_ci 18b8021494Sopenharmony_ci#### Additional or pseudo instructions #### 19b8021494Sopenharmony_ci[b](#pseudo-b) [d](#pseudo-d) [p](#pseudo-p) 20b8021494Sopenharmony_ci 21b8021494Sopenharmony_ci___ 22b8021494Sopenharmony_ci 23b8021494Sopenharmony_ciAArch64 integer instructions 24b8021494Sopenharmony_ci---------------------------- 25b8021494Sopenharmony_ci 26b8021494Sopenharmony_ci<a id="integer-a"> 27b8021494Sopenharmony_ci 28b8021494Sopenharmony_ci### ADC ### 29b8021494Sopenharmony_ci 30b8021494Sopenharmony_ciAdd with carry bit. 31b8021494Sopenharmony_ci 32b8021494Sopenharmony_ci void adc(const Register& rd, const Register& rn, const Operand& operand) 33b8021494Sopenharmony_ci 34b8021494Sopenharmony_ci 35b8021494Sopenharmony_ci### ADCS ### 36b8021494Sopenharmony_ci 37b8021494Sopenharmony_ciAdd with carry bit and update status flags. 38b8021494Sopenharmony_ci 39b8021494Sopenharmony_ci void adcs(const Register& rd, const Register& rn, const Operand& operand) 40b8021494Sopenharmony_ci 41b8021494Sopenharmony_ci 42b8021494Sopenharmony_ci### ADD ### 43b8021494Sopenharmony_ci 44b8021494Sopenharmony_ciAdd. 45b8021494Sopenharmony_ci 46b8021494Sopenharmony_ci void add(const Register& rd, const Register& rn, const Operand& operand) 47b8021494Sopenharmony_ci 48b8021494Sopenharmony_ci 49b8021494Sopenharmony_ci### ADDS ### 50b8021494Sopenharmony_ci 51b8021494Sopenharmony_ciAdd and update status flags. 52b8021494Sopenharmony_ci 53b8021494Sopenharmony_ci void adds(const Register& rd, const Register& rn, const Operand& operand) 54b8021494Sopenharmony_ci 55b8021494Sopenharmony_ci 56b8021494Sopenharmony_ci### ADR ### 57b8021494Sopenharmony_ci 58b8021494Sopenharmony_ciCalculate the address of a PC offset. 59b8021494Sopenharmony_ci 60b8021494Sopenharmony_ci void adr(const Register& xd, int64_t imm21) 61b8021494Sopenharmony_ci 62b8021494Sopenharmony_ci 63b8021494Sopenharmony_ci### ADR ### 64b8021494Sopenharmony_ci 65b8021494Sopenharmony_ciCalculate the address of a label. 66b8021494Sopenharmony_ci 67b8021494Sopenharmony_ci void adr(const Register& xd, Label* label) 68b8021494Sopenharmony_ci 69b8021494Sopenharmony_ci 70b8021494Sopenharmony_ci### ADRP ### 71b8021494Sopenharmony_ci 72b8021494Sopenharmony_ciCalculate the page address of a PC offset. 73b8021494Sopenharmony_ci 74b8021494Sopenharmony_ci void adrp(const Register& xd, int64_t imm21) 75b8021494Sopenharmony_ci 76b8021494Sopenharmony_ci 77b8021494Sopenharmony_ci### ADRP ### 78b8021494Sopenharmony_ci 79b8021494Sopenharmony_ciCalculate the page address of a label. 80b8021494Sopenharmony_ci 81b8021494Sopenharmony_ci void adrp(const Register& xd, Label* label) 82b8021494Sopenharmony_ci 83b8021494Sopenharmony_ci 84b8021494Sopenharmony_ci### AND ### 85b8021494Sopenharmony_ci 86b8021494Sopenharmony_ciBitwise and (A & B). 87b8021494Sopenharmony_ci 88b8021494Sopenharmony_ci void and_(const Register& rd, const Register& rn, const Operand& operand) 89b8021494Sopenharmony_ci 90b8021494Sopenharmony_ci 91b8021494Sopenharmony_ci### ANDS ### 92b8021494Sopenharmony_ci 93b8021494Sopenharmony_ciBitwise and (A & B) and update status flags. 94b8021494Sopenharmony_ci 95b8021494Sopenharmony_ci void ands(const Register& rd, const Register& rn, const Operand& operand) 96b8021494Sopenharmony_ci 97b8021494Sopenharmony_ci 98b8021494Sopenharmony_ci### ASR ### 99b8021494Sopenharmony_ci 100b8021494Sopenharmony_ciArithmetic shift right. 101b8021494Sopenharmony_ci 102b8021494Sopenharmony_ci void asr(const Register& rd, const Register& rn, unsigned shift) 103b8021494Sopenharmony_ci 104b8021494Sopenharmony_ci 105b8021494Sopenharmony_ci### ASRV ### 106b8021494Sopenharmony_ci 107b8021494Sopenharmony_ciArithmetic shift right by variable. 108b8021494Sopenharmony_ci 109b8021494Sopenharmony_ci void asrv(const Register& rd, const Register& rn, const Register& rm) 110b8021494Sopenharmony_ci 111b8021494Sopenharmony_ci 112b8021494Sopenharmony_ci### AUTDA ### 113b8021494Sopenharmony_ci 114b8021494Sopenharmony_ciAuthenticate Data address, using key A _(Armv8.3)_. 115b8021494Sopenharmony_ci 116b8021494Sopenharmony_ci void autda(const Register& xd, const Register& xn) 117b8021494Sopenharmony_ci 118b8021494Sopenharmony_ci 119b8021494Sopenharmony_ci### AUTDB ### 120b8021494Sopenharmony_ci 121b8021494Sopenharmony_ciAuthenticate Data address, using key B _(Armv8.3)_. 122b8021494Sopenharmony_ci 123b8021494Sopenharmony_ci void autdb(const Register& xd, const Register& xn) 124b8021494Sopenharmony_ci 125b8021494Sopenharmony_ci 126b8021494Sopenharmony_ci### AUTDZA ### 127b8021494Sopenharmony_ci 128b8021494Sopenharmony_ciAuthenticate Data address, using key A and a modifier of zero _(Armv8.3)_. 129b8021494Sopenharmony_ci 130b8021494Sopenharmony_ci void autdza(const Register& xd) 131b8021494Sopenharmony_ci 132b8021494Sopenharmony_ci 133b8021494Sopenharmony_ci### AUTDZB ### 134b8021494Sopenharmony_ci 135b8021494Sopenharmony_ciAuthenticate Data address, using key B and a modifier of zero _(Armv8.3)_. 136b8021494Sopenharmony_ci 137b8021494Sopenharmony_ci void autdzb(const Register& xd) 138b8021494Sopenharmony_ci 139b8021494Sopenharmony_ci 140b8021494Sopenharmony_ci### AUTIA ### 141b8021494Sopenharmony_ci 142b8021494Sopenharmony_ciAuthenticate Instruction address, using key A _(Armv8.3)_. 143b8021494Sopenharmony_ci 144b8021494Sopenharmony_ci void autia(const Register& xd, const Register& xn) 145b8021494Sopenharmony_ci 146b8021494Sopenharmony_ci 147b8021494Sopenharmony_ci### AUTIA1716 ### 148b8021494Sopenharmony_ci 149b8021494Sopenharmony_ciAuthenticate Instruction address, using key A, with address in x17 and modifier in x16 _(Armv8.3)_. 150b8021494Sopenharmony_ci 151b8021494Sopenharmony_ci void autia1716() 152b8021494Sopenharmony_ci 153b8021494Sopenharmony_ci 154b8021494Sopenharmony_ci### AUTIASP ### 155b8021494Sopenharmony_ci 156b8021494Sopenharmony_ciAuthenticate Instruction address, using key A, with address in LR and modifier in SP _(Armv8.3)_. 157b8021494Sopenharmony_ci 158b8021494Sopenharmony_ci void autiasp() 159b8021494Sopenharmony_ci 160b8021494Sopenharmony_ci 161b8021494Sopenharmony_ci### AUTIAZ ### 162b8021494Sopenharmony_ci 163b8021494Sopenharmony_ciAuthenticate Instruction address, using key A, with address in LR and a modifier of zero _(Armv8.3)_. 164b8021494Sopenharmony_ci 165b8021494Sopenharmony_ci void autiaz() 166b8021494Sopenharmony_ci 167b8021494Sopenharmony_ci 168b8021494Sopenharmony_ci### AUTIB ### 169b8021494Sopenharmony_ci 170b8021494Sopenharmony_ciAuthenticate Instruction address, using key B _(Armv8.3)_. 171b8021494Sopenharmony_ci 172b8021494Sopenharmony_ci void autib(const Register& xd, const Register& xn) 173b8021494Sopenharmony_ci 174b8021494Sopenharmony_ci 175b8021494Sopenharmony_ci### AUTIB1716 ### 176b8021494Sopenharmony_ci 177b8021494Sopenharmony_ciAuthenticate Instruction address, using key B, with address in x17 and modifier in x16 _(Armv8.3)_. 178b8021494Sopenharmony_ci 179b8021494Sopenharmony_ci void autib1716() 180b8021494Sopenharmony_ci 181b8021494Sopenharmony_ci 182b8021494Sopenharmony_ci### AUTIBSP ### 183b8021494Sopenharmony_ci 184b8021494Sopenharmony_ciAuthenticate Instruction address, using key B, with address in LR and modifier in SP _(Armv8.3)_. 185b8021494Sopenharmony_ci 186b8021494Sopenharmony_ci void autibsp() 187b8021494Sopenharmony_ci 188b8021494Sopenharmony_ci 189b8021494Sopenharmony_ci### AUTIBZ ### 190b8021494Sopenharmony_ci 191b8021494Sopenharmony_ciAuthenticate Instruction address, using key B, with address in LR and a modifier of zero _(Armv8.3)_. 192b8021494Sopenharmony_ci 193b8021494Sopenharmony_ci void autibz() 194b8021494Sopenharmony_ci 195b8021494Sopenharmony_ci 196b8021494Sopenharmony_ci### AUTIZA ### 197b8021494Sopenharmony_ci 198b8021494Sopenharmony_ciAuthenticate Instruction address, using key A and a modifier of zero _(Armv8.3)_. 199b8021494Sopenharmony_ci 200b8021494Sopenharmony_ci void autiza(const Register& xd) 201b8021494Sopenharmony_ci 202b8021494Sopenharmony_ci 203b8021494Sopenharmony_ci### AUTIZB ### 204b8021494Sopenharmony_ci 205b8021494Sopenharmony_ciAuthenticate Instruction address, using key B and a modifier of zero _(Armv8.3)_. 206b8021494Sopenharmony_ci 207b8021494Sopenharmony_ci void autizb(const Register& xd) 208b8021494Sopenharmony_ci 209b8021494Sopenharmony_ci 210b8021494Sopenharmony_ci### AXFLAG ### 211b8021494Sopenharmony_ci 212b8021494Sopenharmony_ciConvert floating-point condition flags from Arm format to alternative format _(Armv8.5)_. 213b8021494Sopenharmony_ci 214b8021494Sopenharmony_ci void axflag() 215b8021494Sopenharmony_ci 216b8021494Sopenharmony_ci 217b8021494Sopenharmony_ci<a id="integer-b"> 218b8021494Sopenharmony_ci 219b8021494Sopenharmony_ci### B ### 220b8021494Sopenharmony_ci 221b8021494Sopenharmony_ciConditional branch to PC offset. 222b8021494Sopenharmony_ci 223b8021494Sopenharmony_ci void b(int64_t imm19, Condition cond) 224b8021494Sopenharmony_ci 225b8021494Sopenharmony_ci 226b8021494Sopenharmony_ci### B ### 227b8021494Sopenharmony_ci 228b8021494Sopenharmony_ciConditional branch to label. 229b8021494Sopenharmony_ci 230b8021494Sopenharmony_ci void b(Label* label, Condition cond) 231b8021494Sopenharmony_ci 232b8021494Sopenharmony_ci 233b8021494Sopenharmony_ci### B ### 234b8021494Sopenharmony_ci 235b8021494Sopenharmony_ciUnconditional branch to PC offset. 236b8021494Sopenharmony_ci 237b8021494Sopenharmony_ci void b(int64_t imm26) 238b8021494Sopenharmony_ci 239b8021494Sopenharmony_ci 240b8021494Sopenharmony_ci### B ### 241b8021494Sopenharmony_ci 242b8021494Sopenharmony_ciUnconditional branch to label. 243b8021494Sopenharmony_ci 244b8021494Sopenharmony_ci void b(Label* label) 245b8021494Sopenharmony_ci 246b8021494Sopenharmony_ci 247b8021494Sopenharmony_ci### BFC ### 248b8021494Sopenharmony_ci 249b8021494Sopenharmony_ciBitfield clear _(Armv8.2)_. 250b8021494Sopenharmony_ci 251b8021494Sopenharmony_ci void bfc(const Register& rd, unsigned lsb, unsigned width) 252b8021494Sopenharmony_ci 253b8021494Sopenharmony_ci 254b8021494Sopenharmony_ci### BFI ### 255b8021494Sopenharmony_ci 256b8021494Sopenharmony_ciBitfield insert. 257b8021494Sopenharmony_ci 258b8021494Sopenharmony_ci void bfi(const Register& rd, 259b8021494Sopenharmony_ci const Register& rn, 260b8021494Sopenharmony_ci unsigned lsb, 261b8021494Sopenharmony_ci unsigned width) 262b8021494Sopenharmony_ci 263b8021494Sopenharmony_ci 264b8021494Sopenharmony_ci### BFM ### 265b8021494Sopenharmony_ci 266b8021494Sopenharmony_ciBitfield move. 267b8021494Sopenharmony_ci 268b8021494Sopenharmony_ci void bfm(const Register& rd, 269b8021494Sopenharmony_ci const Register& rn, 270b8021494Sopenharmony_ci unsigned immr, 271b8021494Sopenharmony_ci unsigned imms) 272b8021494Sopenharmony_ci 273b8021494Sopenharmony_ci 274b8021494Sopenharmony_ci### BFXIL ### 275b8021494Sopenharmony_ci 276b8021494Sopenharmony_ciBitfield extract and insert low. 277b8021494Sopenharmony_ci 278b8021494Sopenharmony_ci void bfxil(const Register& rd, 279b8021494Sopenharmony_ci const Register& rn, 280b8021494Sopenharmony_ci unsigned lsb, 281b8021494Sopenharmony_ci unsigned width) 282b8021494Sopenharmony_ci 283b8021494Sopenharmony_ci 284b8021494Sopenharmony_ci### BIC ### 285b8021494Sopenharmony_ci 286b8021494Sopenharmony_ciBit clear (A & ~B). 287b8021494Sopenharmony_ci 288b8021494Sopenharmony_ci void bic(const Register& rd, const Register& rn, const Operand& operand) 289b8021494Sopenharmony_ci 290b8021494Sopenharmony_ci 291b8021494Sopenharmony_ci### BICS ### 292b8021494Sopenharmony_ci 293b8021494Sopenharmony_ciBit clear (A & ~B) and update status flags. 294b8021494Sopenharmony_ci 295b8021494Sopenharmony_ci void bics(const Register& rd, const Register& rn, const Operand& operand) 296b8021494Sopenharmony_ci 297b8021494Sopenharmony_ci 298b8021494Sopenharmony_ci### BL ### 299b8021494Sopenharmony_ci 300b8021494Sopenharmony_ciBranch with link to PC offset. 301b8021494Sopenharmony_ci 302b8021494Sopenharmony_ci void bl(int64_t imm26) 303b8021494Sopenharmony_ci 304b8021494Sopenharmony_ci 305b8021494Sopenharmony_ci### BL ### 306b8021494Sopenharmony_ci 307b8021494Sopenharmony_ciBranch with link to label. 308b8021494Sopenharmony_ci 309b8021494Sopenharmony_ci void bl(Label* label) 310b8021494Sopenharmony_ci 311b8021494Sopenharmony_ci 312b8021494Sopenharmony_ci### BLR ### 313b8021494Sopenharmony_ci 314b8021494Sopenharmony_ciBranch with link to register. 315b8021494Sopenharmony_ci 316b8021494Sopenharmony_ci void blr(const Register& xn) 317b8021494Sopenharmony_ci 318b8021494Sopenharmony_ci 319b8021494Sopenharmony_ci### BLRAA ### 320b8021494Sopenharmony_ci 321b8021494Sopenharmony_ciBranch with link to register, with pointer authentication. Using key A _(Armv8.3)_. 322b8021494Sopenharmony_ci 323b8021494Sopenharmony_ci void blraa(const Register& xn, const Register& xm) 324b8021494Sopenharmony_ci 325b8021494Sopenharmony_ci 326b8021494Sopenharmony_ci### BLRAAZ ### 327b8021494Sopenharmony_ci 328b8021494Sopenharmony_ciBranch with link to register, with pointer authentication. Using key A and a modifier of zero _(Armv8.3)_. 329b8021494Sopenharmony_ci 330b8021494Sopenharmony_ci void blraaz(const Register& xn) 331b8021494Sopenharmony_ci 332b8021494Sopenharmony_ci 333b8021494Sopenharmony_ci### BLRAB ### 334b8021494Sopenharmony_ci 335b8021494Sopenharmony_ciBranch with link to register, with pointer authentication. Using key B _(Armv8.3)_. 336b8021494Sopenharmony_ci 337b8021494Sopenharmony_ci void blrab(const Register& xn, const Register& xm) 338b8021494Sopenharmony_ci 339b8021494Sopenharmony_ci 340b8021494Sopenharmony_ci### BLRABZ ### 341b8021494Sopenharmony_ci 342b8021494Sopenharmony_ciBranch with link to register, with pointer authentication. Using key B and a modifier of zero _(Armv8.3)_. 343b8021494Sopenharmony_ci 344b8021494Sopenharmony_ci void blrabz(const Register& xn) 345b8021494Sopenharmony_ci 346b8021494Sopenharmony_ci 347b8021494Sopenharmony_ci### BR ### 348b8021494Sopenharmony_ci 349b8021494Sopenharmony_ciBranch to register. 350b8021494Sopenharmony_ci 351b8021494Sopenharmony_ci void br(const Register& xn) 352b8021494Sopenharmony_ci 353b8021494Sopenharmony_ci 354b8021494Sopenharmony_ci### BRAA ### 355b8021494Sopenharmony_ci 356b8021494Sopenharmony_ciBranch to register, with pointer authentication. Using key A _(Armv8.3)_. 357b8021494Sopenharmony_ci 358b8021494Sopenharmony_ci void braa(const Register& xn, const Register& xm) 359b8021494Sopenharmony_ci 360b8021494Sopenharmony_ci 361b8021494Sopenharmony_ci### BRAAZ ### 362b8021494Sopenharmony_ci 363b8021494Sopenharmony_ciBranch to register, with pointer authentication. Using key A and a modifier of zero _(Armv8.3)_. 364b8021494Sopenharmony_ci 365b8021494Sopenharmony_ci void braaz(const Register& xn) 366b8021494Sopenharmony_ci 367b8021494Sopenharmony_ci 368b8021494Sopenharmony_ci### BRAB ### 369b8021494Sopenharmony_ci 370b8021494Sopenharmony_ciBranch to register, with pointer authentication. Using key B _(Armv8.3)_. 371b8021494Sopenharmony_ci 372b8021494Sopenharmony_ci void brab(const Register& xn, const Register& xm) 373b8021494Sopenharmony_ci 374b8021494Sopenharmony_ci 375b8021494Sopenharmony_ci### BRABZ ### 376b8021494Sopenharmony_ci 377b8021494Sopenharmony_ciBranch to register, with pointer authentication. Using key B and a modifier of zero _(Armv8.3)_. 378b8021494Sopenharmony_ci 379b8021494Sopenharmony_ci void brabz(const Register& xn) 380b8021494Sopenharmony_ci 381b8021494Sopenharmony_ci 382b8021494Sopenharmony_ci### BRK ### 383b8021494Sopenharmony_ci 384b8021494Sopenharmony_ciMonitor debug-mode breakpoint. 385b8021494Sopenharmony_ci 386b8021494Sopenharmony_ci void brk(int code) 387b8021494Sopenharmony_ci 388b8021494Sopenharmony_ci 389b8021494Sopenharmony_ci### BTI ### 390b8021494Sopenharmony_ci 391b8021494Sopenharmony_ciBranch target identification. 392b8021494Sopenharmony_ci 393b8021494Sopenharmony_ci void bti(BranchTargetIdentifier id) 394b8021494Sopenharmony_ci 395b8021494Sopenharmony_ci 396b8021494Sopenharmony_ci<a id="integer-c"> 397b8021494Sopenharmony_ci 398b8021494Sopenharmony_ci### CAS ### 399b8021494Sopenharmony_ci 400b8021494Sopenharmony_ciCompare and Swap word or doubleword in memory _(Armv8.1)_. 401b8021494Sopenharmony_ci 402b8021494Sopenharmony_ci void cas(const Register& rs, const Register& rt, const MemOperand& src) 403b8021494Sopenharmony_ci 404b8021494Sopenharmony_ci 405b8021494Sopenharmony_ci### CASA ### 406b8021494Sopenharmony_ci 407b8021494Sopenharmony_ciCompare and Swap word or doubleword in memory _(Armv8.1)_. 408b8021494Sopenharmony_ci 409b8021494Sopenharmony_ci void casa(const Register& rs, const Register& rt, const MemOperand& src) 410b8021494Sopenharmony_ci 411b8021494Sopenharmony_ci 412b8021494Sopenharmony_ci### CASAB ### 413b8021494Sopenharmony_ci 414b8021494Sopenharmony_ciCompare and Swap byte in memory _(Armv8.1)_. 415b8021494Sopenharmony_ci 416b8021494Sopenharmony_ci void casab(const Register& rs, const Register& rt, const MemOperand& src) 417b8021494Sopenharmony_ci 418b8021494Sopenharmony_ci 419b8021494Sopenharmony_ci### CASAH ### 420b8021494Sopenharmony_ci 421b8021494Sopenharmony_ciCompare and Swap halfword in memory _(Armv8.1)_. 422b8021494Sopenharmony_ci 423b8021494Sopenharmony_ci void casah(const Register& rs, const Register& rt, const MemOperand& src) 424b8021494Sopenharmony_ci 425b8021494Sopenharmony_ci 426b8021494Sopenharmony_ci### CASAL ### 427b8021494Sopenharmony_ci 428b8021494Sopenharmony_ciCompare and Swap word or doubleword in memory _(Armv8.1)_. 429b8021494Sopenharmony_ci 430b8021494Sopenharmony_ci void casal(const Register& rs, const Register& rt, const MemOperand& src) 431b8021494Sopenharmony_ci 432b8021494Sopenharmony_ci 433b8021494Sopenharmony_ci### CASALB ### 434b8021494Sopenharmony_ci 435b8021494Sopenharmony_ciCompare and Swap byte in memory _(Armv8.1)_. 436b8021494Sopenharmony_ci 437b8021494Sopenharmony_ci void casalb(const Register& rs, const Register& rt, const MemOperand& src) 438b8021494Sopenharmony_ci 439b8021494Sopenharmony_ci 440b8021494Sopenharmony_ci### CASALH ### 441b8021494Sopenharmony_ci 442b8021494Sopenharmony_ciCompare and Swap halfword in memory _(Armv8.1)_. 443b8021494Sopenharmony_ci 444b8021494Sopenharmony_ci void casalh(const Register& rs, const Register& rt, const MemOperand& src) 445b8021494Sopenharmony_ci 446b8021494Sopenharmony_ci 447b8021494Sopenharmony_ci### CASB ### 448b8021494Sopenharmony_ci 449b8021494Sopenharmony_ciCompare and Swap byte in memory _(Armv8.1)_. 450b8021494Sopenharmony_ci 451b8021494Sopenharmony_ci void casb(const Register& rs, const Register& rt, const MemOperand& src) 452b8021494Sopenharmony_ci 453b8021494Sopenharmony_ci 454b8021494Sopenharmony_ci### CASH ### 455b8021494Sopenharmony_ci 456b8021494Sopenharmony_ciCompare and Swap halfword in memory _(Armv8.1)_. 457b8021494Sopenharmony_ci 458b8021494Sopenharmony_ci void cash(const Register& rs, const Register& rt, const MemOperand& src) 459b8021494Sopenharmony_ci 460b8021494Sopenharmony_ci 461b8021494Sopenharmony_ci### CASL ### 462b8021494Sopenharmony_ci 463b8021494Sopenharmony_ciCompare and Swap word or doubleword in memory _(Armv8.1)_. 464b8021494Sopenharmony_ci 465b8021494Sopenharmony_ci void casl(const Register& rs, const Register& rt, const MemOperand& src) 466b8021494Sopenharmony_ci 467b8021494Sopenharmony_ci 468b8021494Sopenharmony_ci### CASLB ### 469b8021494Sopenharmony_ci 470b8021494Sopenharmony_ciCompare and Swap byte in memory _(Armv8.1)_. 471b8021494Sopenharmony_ci 472b8021494Sopenharmony_ci void caslb(const Register& rs, const Register& rt, const MemOperand& src) 473b8021494Sopenharmony_ci 474b8021494Sopenharmony_ci 475b8021494Sopenharmony_ci### CASLH ### 476b8021494Sopenharmony_ci 477b8021494Sopenharmony_ciCompare and Swap halfword in memory _(Armv8.1)_. 478b8021494Sopenharmony_ci 479b8021494Sopenharmony_ci void caslh(const Register& rs, const Register& rt, const MemOperand& src) 480b8021494Sopenharmony_ci 481b8021494Sopenharmony_ci 482b8021494Sopenharmony_ci### CASP ### 483b8021494Sopenharmony_ci 484b8021494Sopenharmony_ciCompare and Swap Pair of words or doublewords in memory _(Armv8.1)_. 485b8021494Sopenharmony_ci 486b8021494Sopenharmony_ci void casp(const Register& rs, 487b8021494Sopenharmony_ci const Register& rs2, 488b8021494Sopenharmony_ci const Register& rt, 489b8021494Sopenharmony_ci const Register& rt2, 490b8021494Sopenharmony_ci const MemOperand& src) 491b8021494Sopenharmony_ci 492b8021494Sopenharmony_ci 493b8021494Sopenharmony_ci### CASPA ### 494b8021494Sopenharmony_ci 495b8021494Sopenharmony_ciCompare and Swap Pair of words or doublewords in memory _(Armv8.1)_. 496b8021494Sopenharmony_ci 497b8021494Sopenharmony_ci void caspa(const Register& rs, 498b8021494Sopenharmony_ci const Register& rs2, 499b8021494Sopenharmony_ci const Register& rt, 500b8021494Sopenharmony_ci const Register& rt2, 501b8021494Sopenharmony_ci const MemOperand& src) 502b8021494Sopenharmony_ci 503b8021494Sopenharmony_ci 504b8021494Sopenharmony_ci### CASPAL ### 505b8021494Sopenharmony_ci 506b8021494Sopenharmony_ciCompare and Swap Pair of words or doublewords in memory _(Armv8.1)_. 507b8021494Sopenharmony_ci 508b8021494Sopenharmony_ci void caspal(const Register& rs, 509b8021494Sopenharmony_ci const Register& rs2, 510b8021494Sopenharmony_ci const Register& rt, 511b8021494Sopenharmony_ci const Register& rt2, 512b8021494Sopenharmony_ci const MemOperand& src) 513b8021494Sopenharmony_ci 514b8021494Sopenharmony_ci 515b8021494Sopenharmony_ci### CASPL ### 516b8021494Sopenharmony_ci 517b8021494Sopenharmony_ciCompare and Swap Pair of words or doublewords in memory _(Armv8.1)_. 518b8021494Sopenharmony_ci 519b8021494Sopenharmony_ci void caspl(const Register& rs, 520b8021494Sopenharmony_ci const Register& rs2, 521b8021494Sopenharmony_ci const Register& rt, 522b8021494Sopenharmony_ci const Register& rt2, 523b8021494Sopenharmony_ci const MemOperand& src) 524b8021494Sopenharmony_ci 525b8021494Sopenharmony_ci 526b8021494Sopenharmony_ci### CBNZ ### 527b8021494Sopenharmony_ci 528b8021494Sopenharmony_ciCompare and branch to PC offset if not zero. 529b8021494Sopenharmony_ci 530b8021494Sopenharmony_ci void cbnz(const Register& rt, int64_t imm19) 531b8021494Sopenharmony_ci 532b8021494Sopenharmony_ci 533b8021494Sopenharmony_ci### CBNZ ### 534b8021494Sopenharmony_ci 535b8021494Sopenharmony_ciCompare and branch to label if not zero. 536b8021494Sopenharmony_ci 537b8021494Sopenharmony_ci void cbnz(const Register& rt, Label* label) 538b8021494Sopenharmony_ci 539b8021494Sopenharmony_ci 540b8021494Sopenharmony_ci### CBZ ### 541b8021494Sopenharmony_ci 542b8021494Sopenharmony_ciCompare and branch to PC offset if zero. 543b8021494Sopenharmony_ci 544b8021494Sopenharmony_ci void cbz(const Register& rt, int64_t imm19) 545b8021494Sopenharmony_ci 546b8021494Sopenharmony_ci 547b8021494Sopenharmony_ci### CBZ ### 548b8021494Sopenharmony_ci 549b8021494Sopenharmony_ciCompare and branch to label if zero. 550b8021494Sopenharmony_ci 551b8021494Sopenharmony_ci void cbz(const Register& rt, Label* label) 552b8021494Sopenharmony_ci 553b8021494Sopenharmony_ci 554b8021494Sopenharmony_ci### CCMN ### 555b8021494Sopenharmony_ci 556b8021494Sopenharmony_ciConditional compare negative. 557b8021494Sopenharmony_ci 558b8021494Sopenharmony_ci void ccmn(const Register& rn, 559b8021494Sopenharmony_ci const Operand& operand, 560b8021494Sopenharmony_ci StatusFlags nzcv, 561b8021494Sopenharmony_ci Condition cond) 562b8021494Sopenharmony_ci 563b8021494Sopenharmony_ci 564b8021494Sopenharmony_ci### CCMP ### 565b8021494Sopenharmony_ci 566b8021494Sopenharmony_ciConditional compare. 567b8021494Sopenharmony_ci 568b8021494Sopenharmony_ci void ccmp(const Register& rn, 569b8021494Sopenharmony_ci const Operand& operand, 570b8021494Sopenharmony_ci StatusFlags nzcv, 571b8021494Sopenharmony_ci Condition cond) 572b8021494Sopenharmony_ci 573b8021494Sopenharmony_ci 574b8021494Sopenharmony_ci### CFINV ### 575b8021494Sopenharmony_ci 576b8021494Sopenharmony_ciInvert carry flag _(Armv8.4)_. 577b8021494Sopenharmony_ci 578b8021494Sopenharmony_ci void cfinv() 579b8021494Sopenharmony_ci 580b8021494Sopenharmony_ci 581b8021494Sopenharmony_ci### CINC ### 582b8021494Sopenharmony_ci 583b8021494Sopenharmony_ciConditional increment: rd = cond ? rn + 1 : rn. 584b8021494Sopenharmony_ci 585b8021494Sopenharmony_ci void cinc(const Register& rd, const Register& rn, Condition cond) 586b8021494Sopenharmony_ci 587b8021494Sopenharmony_ci 588b8021494Sopenharmony_ci### CINV ### 589b8021494Sopenharmony_ci 590b8021494Sopenharmony_ciConditional invert: rd = cond ? ~rn : rn. 591b8021494Sopenharmony_ci 592b8021494Sopenharmony_ci void cinv(const Register& rd, const Register& rn, Condition cond) 593b8021494Sopenharmony_ci 594b8021494Sopenharmony_ci 595b8021494Sopenharmony_ci### CLREX ### 596b8021494Sopenharmony_ci 597b8021494Sopenharmony_ciClear exclusive monitor. 598b8021494Sopenharmony_ci 599b8021494Sopenharmony_ci void clrex(int imm4 = 0xf) 600b8021494Sopenharmony_ci 601b8021494Sopenharmony_ci 602b8021494Sopenharmony_ci### CLS ### 603b8021494Sopenharmony_ci 604b8021494Sopenharmony_ciCount leading sign bits. 605b8021494Sopenharmony_ci 606b8021494Sopenharmony_ci void cls(const Register& rd, const Register& rn) 607b8021494Sopenharmony_ci 608b8021494Sopenharmony_ci 609b8021494Sopenharmony_ci### CLZ ### 610b8021494Sopenharmony_ci 611b8021494Sopenharmony_ciCount leading zeroes. 612b8021494Sopenharmony_ci 613b8021494Sopenharmony_ci void clz(const Register& rd, const Register& rn) 614b8021494Sopenharmony_ci 615b8021494Sopenharmony_ci 616b8021494Sopenharmony_ci### CMN ### 617b8021494Sopenharmony_ci 618b8021494Sopenharmony_ciCompare negative. 619b8021494Sopenharmony_ci 620b8021494Sopenharmony_ci void cmn(const Register& rn, const Operand& operand) 621b8021494Sopenharmony_ci 622b8021494Sopenharmony_ci 623b8021494Sopenharmony_ci### CMP ### 624b8021494Sopenharmony_ci 625b8021494Sopenharmony_ciCompare. 626b8021494Sopenharmony_ci 627b8021494Sopenharmony_ci void cmp(const Register& rn, const Operand& operand) 628b8021494Sopenharmony_ci 629b8021494Sopenharmony_ci 630b8021494Sopenharmony_ci### CNEG ### 631b8021494Sopenharmony_ci 632b8021494Sopenharmony_ciConditional negate: rd = cond ? -rn : rn. 633b8021494Sopenharmony_ci 634b8021494Sopenharmony_ci void cneg(const Register& rd, const Register& rn, Condition cond) 635b8021494Sopenharmony_ci 636b8021494Sopenharmony_ci 637b8021494Sopenharmony_ci### CRC32B ### 638b8021494Sopenharmony_ci 639b8021494Sopenharmony_ciCRC-32 checksum from byte. 640b8021494Sopenharmony_ci 641b8021494Sopenharmony_ci void crc32b(const Register& wd, const Register& wn, const Register& wm) 642b8021494Sopenharmony_ci 643b8021494Sopenharmony_ci 644b8021494Sopenharmony_ci### CRC32CB ### 645b8021494Sopenharmony_ci 646b8021494Sopenharmony_ciCRC-32 C checksum from byte. 647b8021494Sopenharmony_ci 648b8021494Sopenharmony_ci void crc32cb(const Register& wd, const Register& wn, const Register& wm) 649b8021494Sopenharmony_ci 650b8021494Sopenharmony_ci 651b8021494Sopenharmony_ci### CRC32CH ### 652b8021494Sopenharmony_ci 653b8021494Sopenharmony_ciCRC-32 C checksum from half-word. 654b8021494Sopenharmony_ci 655b8021494Sopenharmony_ci void crc32ch(const Register& wd, const Register& wn, const Register& wm) 656b8021494Sopenharmony_ci 657b8021494Sopenharmony_ci 658b8021494Sopenharmony_ci### CRC32CW ### 659b8021494Sopenharmony_ci 660b8021494Sopenharmony_ciCRC-32 C checksum from word. 661b8021494Sopenharmony_ci 662b8021494Sopenharmony_ci void crc32cw(const Register& wd, const Register& wn, const Register& wm) 663b8021494Sopenharmony_ci 664b8021494Sopenharmony_ci 665b8021494Sopenharmony_ci### CRC32CX ### 666b8021494Sopenharmony_ci 667b8021494Sopenharmony_ciCRC-32C checksum from double word. 668b8021494Sopenharmony_ci 669b8021494Sopenharmony_ci void crc32cx(const Register& wd, const Register& wn, const Register& xm) 670b8021494Sopenharmony_ci 671b8021494Sopenharmony_ci 672b8021494Sopenharmony_ci### CRC32H ### 673b8021494Sopenharmony_ci 674b8021494Sopenharmony_ciCRC-32 checksum from half-word. 675b8021494Sopenharmony_ci 676b8021494Sopenharmony_ci void crc32h(const Register& wd, const Register& wn, const Register& wm) 677b8021494Sopenharmony_ci 678b8021494Sopenharmony_ci 679b8021494Sopenharmony_ci### CRC32W ### 680b8021494Sopenharmony_ci 681b8021494Sopenharmony_ciCRC-32 checksum from word. 682b8021494Sopenharmony_ci 683b8021494Sopenharmony_ci void crc32w(const Register& wd, const Register& wn, const Register& wm) 684b8021494Sopenharmony_ci 685b8021494Sopenharmony_ci 686b8021494Sopenharmony_ci### CRC32X ### 687b8021494Sopenharmony_ci 688b8021494Sopenharmony_ciCRC-32 checksum from double word. 689b8021494Sopenharmony_ci 690b8021494Sopenharmony_ci void crc32x(const Register& wd, const Register& wn, const Register& xm) 691b8021494Sopenharmony_ci 692b8021494Sopenharmony_ci 693b8021494Sopenharmony_ci### CSDB ### 694b8021494Sopenharmony_ci 695b8021494Sopenharmony_ciConditional speculation dependency barrier. 696b8021494Sopenharmony_ci 697b8021494Sopenharmony_ci void csdb() 698b8021494Sopenharmony_ci 699b8021494Sopenharmony_ci 700b8021494Sopenharmony_ci### CSEL ### 701b8021494Sopenharmony_ci 702b8021494Sopenharmony_ciConditional select: rd = cond ? rn : rm. 703b8021494Sopenharmony_ci 704b8021494Sopenharmony_ci void csel(const Register& rd, 705b8021494Sopenharmony_ci const Register& rn, 706b8021494Sopenharmony_ci const Register& rm, 707b8021494Sopenharmony_ci Condition cond) 708b8021494Sopenharmony_ci 709b8021494Sopenharmony_ci 710b8021494Sopenharmony_ci### CSET ### 711b8021494Sopenharmony_ci 712b8021494Sopenharmony_ciConditional set: rd = cond ? 1 : 0. 713b8021494Sopenharmony_ci 714b8021494Sopenharmony_ci void cset(const Register& rd, Condition cond) 715b8021494Sopenharmony_ci 716b8021494Sopenharmony_ci 717b8021494Sopenharmony_ci### CSETM ### 718b8021494Sopenharmony_ci 719b8021494Sopenharmony_ciConditional set mask: rd = cond ? -1 : 0. 720b8021494Sopenharmony_ci 721b8021494Sopenharmony_ci void csetm(const Register& rd, Condition cond) 722b8021494Sopenharmony_ci 723b8021494Sopenharmony_ci 724b8021494Sopenharmony_ci### CSINC ### 725b8021494Sopenharmony_ci 726b8021494Sopenharmony_ciConditional select increment: rd = cond ? rn : rm + 1. 727b8021494Sopenharmony_ci 728b8021494Sopenharmony_ci void csinc(const Register& rd, 729b8021494Sopenharmony_ci const Register& rn, 730b8021494Sopenharmony_ci const Register& rm, 731b8021494Sopenharmony_ci Condition cond) 732b8021494Sopenharmony_ci 733b8021494Sopenharmony_ci 734b8021494Sopenharmony_ci### CSINV ### 735b8021494Sopenharmony_ci 736b8021494Sopenharmony_ciConditional select inversion: rd = cond ? rn : ~rm. 737b8021494Sopenharmony_ci 738b8021494Sopenharmony_ci void csinv(const Register& rd, 739b8021494Sopenharmony_ci const Register& rn, 740b8021494Sopenharmony_ci const Register& rm, 741b8021494Sopenharmony_ci Condition cond) 742b8021494Sopenharmony_ci 743b8021494Sopenharmony_ci 744b8021494Sopenharmony_ci### CSNEG ### 745b8021494Sopenharmony_ci 746b8021494Sopenharmony_ciConditional select negation: rd = cond ? rn : -rm. 747b8021494Sopenharmony_ci 748b8021494Sopenharmony_ci void csneg(const Register& rd, 749b8021494Sopenharmony_ci const Register& rn, 750b8021494Sopenharmony_ci const Register& rm, 751b8021494Sopenharmony_ci Condition cond) 752b8021494Sopenharmony_ci 753b8021494Sopenharmony_ci 754b8021494Sopenharmony_ci<a id="integer-d"> 755b8021494Sopenharmony_ci 756b8021494Sopenharmony_ci### DC ### 757b8021494Sopenharmony_ci 758b8021494Sopenharmony_ciSystem data cache operation. 759b8021494Sopenharmony_ci 760b8021494Sopenharmony_ci void dc(DataCacheOp op, const Register& rt) 761b8021494Sopenharmony_ci 762b8021494Sopenharmony_ci 763b8021494Sopenharmony_ci### DMB ### 764b8021494Sopenharmony_ci 765b8021494Sopenharmony_ciData memory barrier. 766b8021494Sopenharmony_ci 767b8021494Sopenharmony_ci void dmb(BarrierDomain domain, BarrierType type) 768b8021494Sopenharmony_ci 769b8021494Sopenharmony_ci 770b8021494Sopenharmony_ci### DSB ### 771b8021494Sopenharmony_ci 772b8021494Sopenharmony_ciData synchronization barrier. 773b8021494Sopenharmony_ci 774b8021494Sopenharmony_ci void dsb(BarrierDomain domain, BarrierType type) 775b8021494Sopenharmony_ci 776b8021494Sopenharmony_ci 777b8021494Sopenharmony_ci<a id="integer-e"> 778b8021494Sopenharmony_ci 779b8021494Sopenharmony_ci### EON ### 780b8021494Sopenharmony_ci 781b8021494Sopenharmony_ciBitwise enor/xnor (A ^ ~B). 782b8021494Sopenharmony_ci 783b8021494Sopenharmony_ci void eon(const Register& rd, const Register& rn, const Operand& operand) 784b8021494Sopenharmony_ci 785b8021494Sopenharmony_ci 786b8021494Sopenharmony_ci### EOR ### 787b8021494Sopenharmony_ci 788b8021494Sopenharmony_ciBitwise eor/xor (A ^ B). 789b8021494Sopenharmony_ci 790b8021494Sopenharmony_ci void eor(const Register& rd, const Register& rn, const Operand& operand) 791b8021494Sopenharmony_ci 792b8021494Sopenharmony_ci 793b8021494Sopenharmony_ci### ESB ### 794b8021494Sopenharmony_ci 795b8021494Sopenharmony_ciError synchronization barrier. 796b8021494Sopenharmony_ci 797b8021494Sopenharmony_ci void esb() 798b8021494Sopenharmony_ci 799b8021494Sopenharmony_ci 800b8021494Sopenharmony_ci### EXTR ### 801b8021494Sopenharmony_ci 802b8021494Sopenharmony_ciExtract. 803b8021494Sopenharmony_ci 804b8021494Sopenharmony_ci void extr(const Register& rd, 805b8021494Sopenharmony_ci const Register& rn, 806b8021494Sopenharmony_ci const Register& rm, 807b8021494Sopenharmony_ci unsigned lsb) 808b8021494Sopenharmony_ci 809b8021494Sopenharmony_ci 810b8021494Sopenharmony_ci<a id="integer-h"> 811b8021494Sopenharmony_ci 812b8021494Sopenharmony_ci### HINT ### 813b8021494Sopenharmony_ci 814b8021494Sopenharmony_ciSystem hint (named type). 815b8021494Sopenharmony_ci 816b8021494Sopenharmony_ci void hint(SystemHint code) 817b8021494Sopenharmony_ci 818b8021494Sopenharmony_ci 819b8021494Sopenharmony_ci### HINT ### 820b8021494Sopenharmony_ci 821b8021494Sopenharmony_ciSystem hint (numbered type). 822b8021494Sopenharmony_ci 823b8021494Sopenharmony_ci void hint(int imm7) 824b8021494Sopenharmony_ci 825b8021494Sopenharmony_ci 826b8021494Sopenharmony_ci### HLT ### 827b8021494Sopenharmony_ci 828b8021494Sopenharmony_ciHalting debug-mode breakpoint. 829b8021494Sopenharmony_ci 830b8021494Sopenharmony_ci void hlt(int code) 831b8021494Sopenharmony_ci 832b8021494Sopenharmony_ci 833b8021494Sopenharmony_ci<a id="integer-i"> 834b8021494Sopenharmony_ci 835b8021494Sopenharmony_ci### IC ### 836b8021494Sopenharmony_ci 837b8021494Sopenharmony_ciSystem instruction cache operation. 838b8021494Sopenharmony_ci 839b8021494Sopenharmony_ci void ic(InstructionCacheOp op, const Register& rt) 840b8021494Sopenharmony_ci 841b8021494Sopenharmony_ci 842b8021494Sopenharmony_ci### ISB ### 843b8021494Sopenharmony_ci 844b8021494Sopenharmony_ciInstruction synchronization barrier. 845b8021494Sopenharmony_ci 846b8021494Sopenharmony_ci void isb() 847b8021494Sopenharmony_ci 848b8021494Sopenharmony_ci 849b8021494Sopenharmony_ci<a id="integer-l"> 850b8021494Sopenharmony_ci 851b8021494Sopenharmony_ci### LDADD ### 852b8021494Sopenharmony_ci 853b8021494Sopenharmony_ciAtomic add on word or doubleword in memory _(Armv8.1)_ 854b8021494Sopenharmony_ci 855b8021494Sopenharmony_ci void ldadd(const Register& rs, const Register& rt, const MemOperand& src) 856b8021494Sopenharmony_ci 857b8021494Sopenharmony_ci 858b8021494Sopenharmony_ci### LDADDA ### 859b8021494Sopenharmony_ci 860b8021494Sopenharmony_ciAtomic add on word or doubleword in memory, with Load-acquire semantics _(Armv8.1)_ 861b8021494Sopenharmony_ci 862b8021494Sopenharmony_ci void ldadda(const Register& rs, const Register& rt, const MemOperand& src) 863b8021494Sopenharmony_ci 864b8021494Sopenharmony_ci 865b8021494Sopenharmony_ci### LDADDAB ### 866b8021494Sopenharmony_ci 867b8021494Sopenharmony_ciAtomic add on byte in memory, with Load-acquire semantics _(Armv8.1)_ 868b8021494Sopenharmony_ci 869b8021494Sopenharmony_ci void ldaddab(const Register& rs, const Register& rt, const MemOperand& src) 870b8021494Sopenharmony_ci 871b8021494Sopenharmony_ci 872b8021494Sopenharmony_ci### LDADDAH ### 873b8021494Sopenharmony_ci 874b8021494Sopenharmony_ciAtomic add on halfword in memory, with Load-acquire semantics _(Armv8.1)_ 875b8021494Sopenharmony_ci 876b8021494Sopenharmony_ci void ldaddah(const Register& rs, const Register& rt, const MemOperand& src) 877b8021494Sopenharmony_ci 878b8021494Sopenharmony_ci 879b8021494Sopenharmony_ci### LDADDAL ### 880b8021494Sopenharmony_ci 881b8021494Sopenharmony_ciAtomic add on word or doubleword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 882b8021494Sopenharmony_ci 883b8021494Sopenharmony_ci void ldaddal(const Register& rs, const Register& rt, const MemOperand& src) 884b8021494Sopenharmony_ci 885b8021494Sopenharmony_ci 886b8021494Sopenharmony_ci### LDADDALB ### 887b8021494Sopenharmony_ci 888b8021494Sopenharmony_ciAtomic add on byte in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 889b8021494Sopenharmony_ci 890b8021494Sopenharmony_ci void ldaddalb(const Register& rs, const Register& rt, const MemOperand& src) 891b8021494Sopenharmony_ci 892b8021494Sopenharmony_ci 893b8021494Sopenharmony_ci### LDADDALH ### 894b8021494Sopenharmony_ci 895b8021494Sopenharmony_ciAtomic add on halfword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 896b8021494Sopenharmony_ci 897b8021494Sopenharmony_ci void ldaddalh(const Register& rs, const Register& rt, const MemOperand& src) 898b8021494Sopenharmony_ci 899b8021494Sopenharmony_ci 900b8021494Sopenharmony_ci### LDADDB ### 901b8021494Sopenharmony_ci 902b8021494Sopenharmony_ciAtomic add on byte in memory _(Armv8.1)_ 903b8021494Sopenharmony_ci 904b8021494Sopenharmony_ci void ldaddb(const Register& rs, const Register& rt, const MemOperand& src) 905b8021494Sopenharmony_ci 906b8021494Sopenharmony_ci 907b8021494Sopenharmony_ci### LDADDH ### 908b8021494Sopenharmony_ci 909b8021494Sopenharmony_ciAtomic add on halfword in memory _(Armv8.1)_ 910b8021494Sopenharmony_ci 911b8021494Sopenharmony_ci void ldaddh(const Register& rs, const Register& rt, const MemOperand& src) 912b8021494Sopenharmony_ci 913b8021494Sopenharmony_ci 914b8021494Sopenharmony_ci### LDADDL ### 915b8021494Sopenharmony_ci 916b8021494Sopenharmony_ciAtomic add on word or doubleword in memory, with Store-release semantics _(Armv8.1)_ 917b8021494Sopenharmony_ci 918b8021494Sopenharmony_ci void ldaddl(const Register& rs, const Register& rt, const MemOperand& src) 919b8021494Sopenharmony_ci 920b8021494Sopenharmony_ci 921b8021494Sopenharmony_ci### LDADDLB ### 922b8021494Sopenharmony_ci 923b8021494Sopenharmony_ciAtomic add on byte in memory, with Store-release semantics _(Armv8.1)_ 924b8021494Sopenharmony_ci 925b8021494Sopenharmony_ci void ldaddlb(const Register& rs, const Register& rt, const MemOperand& src) 926b8021494Sopenharmony_ci 927b8021494Sopenharmony_ci 928b8021494Sopenharmony_ci### LDADDLH ### 929b8021494Sopenharmony_ci 930b8021494Sopenharmony_ciAtomic add on halfword in memory, with Store-release semantics _(Armv8.1)_ 931b8021494Sopenharmony_ci 932b8021494Sopenharmony_ci void ldaddlh(const Register& rs, const Register& rt, const MemOperand& src) 933b8021494Sopenharmony_ci 934b8021494Sopenharmony_ci 935b8021494Sopenharmony_ci### LDAPR ### 936b8021494Sopenharmony_ci 937b8021494Sopenharmony_ciLoad-Acquire RCpc Register word or doubleword _(Armv8.3)_ 938b8021494Sopenharmony_ci 939b8021494Sopenharmony_ci void ldapr(const Register& rt, const MemOperand& src) 940b8021494Sopenharmony_ci 941b8021494Sopenharmony_ci 942b8021494Sopenharmony_ci### LDAPRB ### 943b8021494Sopenharmony_ci 944b8021494Sopenharmony_ciLoad-Acquire RCpc Register byte _(Armv8.3)_ 945b8021494Sopenharmony_ci 946b8021494Sopenharmony_ci void ldaprb(const Register& rt, const MemOperand& src) 947b8021494Sopenharmony_ci 948b8021494Sopenharmony_ci 949b8021494Sopenharmony_ci### LDAPRH ### 950b8021494Sopenharmony_ci 951b8021494Sopenharmony_ciLoad-Acquire RCpc Register halfword _(Armv8.3)_ 952b8021494Sopenharmony_ci 953b8021494Sopenharmony_ci void ldaprh(const Register& rt, const MemOperand& src) 954b8021494Sopenharmony_ci 955b8021494Sopenharmony_ci 956b8021494Sopenharmony_ci### LDAPUR ### 957b8021494Sopenharmony_ci 958b8021494Sopenharmony_ciLoad-acquire RCpc Register word or double-word (with unscaled offset) _(Armv8.4)_. 959b8021494Sopenharmony_ci 960b8021494Sopenharmony_ci void ldapur(const Register& rt, const MemOperand& src) 961b8021494Sopenharmony_ci 962b8021494Sopenharmony_ci 963b8021494Sopenharmony_ci### LDAPURB ### 964b8021494Sopenharmony_ci 965b8021494Sopenharmony_ciLoad-acquire RCpc Register byte (with unscaled offset) _(Armv8.4)_. 966b8021494Sopenharmony_ci 967b8021494Sopenharmony_ci void ldapurb(const Register& rt, const MemOperand& src) 968b8021494Sopenharmony_ci 969b8021494Sopenharmony_ci 970b8021494Sopenharmony_ci### LDAPURH ### 971b8021494Sopenharmony_ci 972b8021494Sopenharmony_ciLoad-acquire RCpc Register half-word (with unscaled offset) _(Armv8.4)_. 973b8021494Sopenharmony_ci 974b8021494Sopenharmony_ci void ldapurh(const Register& rt, const MemOperand& src) 975b8021494Sopenharmony_ci 976b8021494Sopenharmony_ci 977b8021494Sopenharmony_ci### LDAPURSB ### 978b8021494Sopenharmony_ci 979b8021494Sopenharmony_ciLoad-acquire RCpc Register signed byte (with unscaled offset) _(Armv8.4)_. 980b8021494Sopenharmony_ci 981b8021494Sopenharmony_ci void ldapursb(const Register& rt, const MemOperand& src) 982b8021494Sopenharmony_ci 983b8021494Sopenharmony_ci 984b8021494Sopenharmony_ci### LDAPURSH ### 985b8021494Sopenharmony_ci 986b8021494Sopenharmony_ciLoad-acquire RCpc Register signed half-word (with unscaled offset) _(Armv8.4)_. 987b8021494Sopenharmony_ci 988b8021494Sopenharmony_ci void ldapursh(const Register& rt, const MemOperand& src) 989b8021494Sopenharmony_ci 990b8021494Sopenharmony_ci 991b8021494Sopenharmony_ci### LDAPURSW ### 992b8021494Sopenharmony_ci 993b8021494Sopenharmony_ciLoad-acquire RCpc Register signed word (with unscaled offset) _(Armv8.4)_. 994b8021494Sopenharmony_ci 995b8021494Sopenharmony_ci void ldapursw(const Register& xt, const MemOperand& src) 996b8021494Sopenharmony_ci 997b8021494Sopenharmony_ci 998b8021494Sopenharmony_ci### LDAR ### 999b8021494Sopenharmony_ci 1000b8021494Sopenharmony_ciLoad-acquire register. 1001b8021494Sopenharmony_ci 1002b8021494Sopenharmony_ci void ldar(const Register& rt, const MemOperand& src) 1003b8021494Sopenharmony_ci 1004b8021494Sopenharmony_ci 1005b8021494Sopenharmony_ci### LDARB ### 1006b8021494Sopenharmony_ci 1007b8021494Sopenharmony_ciLoad-acquire byte. 1008b8021494Sopenharmony_ci 1009b8021494Sopenharmony_ci void ldarb(const Register& rt, const MemOperand& src) 1010b8021494Sopenharmony_ci 1011b8021494Sopenharmony_ci 1012b8021494Sopenharmony_ci### LDARH ### 1013b8021494Sopenharmony_ci 1014b8021494Sopenharmony_ciLoad-acquire half-word. 1015b8021494Sopenharmony_ci 1016b8021494Sopenharmony_ci void ldarh(const Register& rt, const MemOperand& src) 1017b8021494Sopenharmony_ci 1018b8021494Sopenharmony_ci 1019b8021494Sopenharmony_ci### LDAXP ### 1020b8021494Sopenharmony_ci 1021b8021494Sopenharmony_ciLoad-acquire exclusive register pair. 1022b8021494Sopenharmony_ci 1023b8021494Sopenharmony_ci void ldaxp(const Register& rt, const Register& rt2, const MemOperand& src) 1024b8021494Sopenharmony_ci 1025b8021494Sopenharmony_ci 1026b8021494Sopenharmony_ci### LDAXR ### 1027b8021494Sopenharmony_ci 1028b8021494Sopenharmony_ciLoad-acquire exclusive register. 1029b8021494Sopenharmony_ci 1030b8021494Sopenharmony_ci void ldaxr(const Register& rt, const MemOperand& src) 1031b8021494Sopenharmony_ci 1032b8021494Sopenharmony_ci 1033b8021494Sopenharmony_ci### LDAXRB ### 1034b8021494Sopenharmony_ci 1035b8021494Sopenharmony_ciLoad-acquire exclusive byte. 1036b8021494Sopenharmony_ci 1037b8021494Sopenharmony_ci void ldaxrb(const Register& rt, const MemOperand& src) 1038b8021494Sopenharmony_ci 1039b8021494Sopenharmony_ci 1040b8021494Sopenharmony_ci### LDAXRH ### 1041b8021494Sopenharmony_ci 1042b8021494Sopenharmony_ciLoad-acquire exclusive half-word. 1043b8021494Sopenharmony_ci 1044b8021494Sopenharmony_ci void ldaxrh(const Register& rt, const MemOperand& src) 1045b8021494Sopenharmony_ci 1046b8021494Sopenharmony_ci 1047b8021494Sopenharmony_ci### LDCLR ### 1048b8021494Sopenharmony_ci 1049b8021494Sopenharmony_ciAtomic bit clear on word or doubleword in memory _(Armv8.1)_ 1050b8021494Sopenharmony_ci 1051b8021494Sopenharmony_ci void ldclr(const Register& rs, const Register& rt, const MemOperand& src) 1052b8021494Sopenharmony_ci 1053b8021494Sopenharmony_ci 1054b8021494Sopenharmony_ci### LDCLRA ### 1055b8021494Sopenharmony_ci 1056b8021494Sopenharmony_ciAtomic bit clear on word or doubleword in memory, with Load-acquire semantics _(Armv8.1)_ 1057b8021494Sopenharmony_ci 1058b8021494Sopenharmony_ci void ldclra(const Register& rs, const Register& rt, const MemOperand& src) 1059b8021494Sopenharmony_ci 1060b8021494Sopenharmony_ci 1061b8021494Sopenharmony_ci### LDCLRAB ### 1062b8021494Sopenharmony_ci 1063b8021494Sopenharmony_ciAtomic bit clear on byte in memory, with Load-acquire semantics _(Armv8.1)_ 1064b8021494Sopenharmony_ci 1065b8021494Sopenharmony_ci void ldclrab(const Register& rs, const Register& rt, const MemOperand& src) 1066b8021494Sopenharmony_ci 1067b8021494Sopenharmony_ci 1068b8021494Sopenharmony_ci### LDCLRAH ### 1069b8021494Sopenharmony_ci 1070b8021494Sopenharmony_ciAtomic bit clear on halfword in memory, with Load-acquire semantics _(Armv8.1)_ 1071b8021494Sopenharmony_ci 1072b8021494Sopenharmony_ci void ldclrah(const Register& rs, const Register& rt, const MemOperand& src) 1073b8021494Sopenharmony_ci 1074b8021494Sopenharmony_ci 1075b8021494Sopenharmony_ci### LDCLRAL ### 1076b8021494Sopenharmony_ci 1077b8021494Sopenharmony_ciAtomic bit clear on word or doubleword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1078b8021494Sopenharmony_ci 1079b8021494Sopenharmony_ci void ldclral(const Register& rs, const Register& rt, const MemOperand& src) 1080b8021494Sopenharmony_ci 1081b8021494Sopenharmony_ci 1082b8021494Sopenharmony_ci### LDCLRALB ### 1083b8021494Sopenharmony_ci 1084b8021494Sopenharmony_ciAtomic bit clear on byte in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1085b8021494Sopenharmony_ci 1086b8021494Sopenharmony_ci void ldclralb(const Register& rs, const Register& rt, const MemOperand& src) 1087b8021494Sopenharmony_ci 1088b8021494Sopenharmony_ci 1089b8021494Sopenharmony_ci### LDCLRALH ### 1090b8021494Sopenharmony_ci 1091b8021494Sopenharmony_ciAtomic bit clear on halfword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1092b8021494Sopenharmony_ci 1093b8021494Sopenharmony_ci void ldclralh(const Register& rs, const Register& rt, const MemOperand& src) 1094b8021494Sopenharmony_ci 1095b8021494Sopenharmony_ci 1096b8021494Sopenharmony_ci### LDCLRB ### 1097b8021494Sopenharmony_ci 1098b8021494Sopenharmony_ciAtomic bit clear on byte in memory _(Armv8.1)_ 1099b8021494Sopenharmony_ci 1100b8021494Sopenharmony_ci void ldclrb(const Register& rs, const Register& rt, const MemOperand& src) 1101b8021494Sopenharmony_ci 1102b8021494Sopenharmony_ci 1103b8021494Sopenharmony_ci### LDCLRH ### 1104b8021494Sopenharmony_ci 1105b8021494Sopenharmony_ciAtomic bit clear on halfword in memory _(Armv8.1)_ 1106b8021494Sopenharmony_ci 1107b8021494Sopenharmony_ci void ldclrh(const Register& rs, const Register& rt, const MemOperand& src) 1108b8021494Sopenharmony_ci 1109b8021494Sopenharmony_ci 1110b8021494Sopenharmony_ci### LDCLRL ### 1111b8021494Sopenharmony_ci 1112b8021494Sopenharmony_ciAtomic bit clear on word or doubleword in memory, with Store-release semantics _(Armv8.1)_ 1113b8021494Sopenharmony_ci 1114b8021494Sopenharmony_ci void ldclrl(const Register& rs, const Register& rt, const MemOperand& src) 1115b8021494Sopenharmony_ci 1116b8021494Sopenharmony_ci 1117b8021494Sopenharmony_ci### LDCLRLB ### 1118b8021494Sopenharmony_ci 1119b8021494Sopenharmony_ciAtomic bit clear on byte in memory, with Store-release semantics _(Armv8.1)_ 1120b8021494Sopenharmony_ci 1121b8021494Sopenharmony_ci void ldclrlb(const Register& rs, const Register& rt, const MemOperand& src) 1122b8021494Sopenharmony_ci 1123b8021494Sopenharmony_ci 1124b8021494Sopenharmony_ci### LDCLRLH ### 1125b8021494Sopenharmony_ci 1126b8021494Sopenharmony_ciAtomic bit clear on halfword in memory, with Store-release semantics _(Armv8.1)_ 1127b8021494Sopenharmony_ci 1128b8021494Sopenharmony_ci void ldclrlh(const Register& rs, const Register& rt, const MemOperand& src) 1129b8021494Sopenharmony_ci 1130b8021494Sopenharmony_ci 1131b8021494Sopenharmony_ci### LDEOR ### 1132b8021494Sopenharmony_ci 1133b8021494Sopenharmony_ciAtomic exclusive OR on word or doubleword in memory _(Armv8.1)_ 1134b8021494Sopenharmony_ci 1135b8021494Sopenharmony_ci void ldeor(const Register& rs, const Register& rt, const MemOperand& src) 1136b8021494Sopenharmony_ci 1137b8021494Sopenharmony_ci 1138b8021494Sopenharmony_ci### LDEORA ### 1139b8021494Sopenharmony_ci 1140b8021494Sopenharmony_ciAtomic exclusive OR on word or doubleword in memory, with Load-acquire semantics _(Armv8.1)_ 1141b8021494Sopenharmony_ci 1142b8021494Sopenharmony_ci void ldeora(const Register& rs, const Register& rt, const MemOperand& src) 1143b8021494Sopenharmony_ci 1144b8021494Sopenharmony_ci 1145b8021494Sopenharmony_ci### LDEORAB ### 1146b8021494Sopenharmony_ci 1147b8021494Sopenharmony_ciAtomic exclusive OR on byte in memory, with Load-acquire semantics _(Armv8.1)_ 1148b8021494Sopenharmony_ci 1149b8021494Sopenharmony_ci void ldeorab(const Register& rs, const Register& rt, const MemOperand& src) 1150b8021494Sopenharmony_ci 1151b8021494Sopenharmony_ci 1152b8021494Sopenharmony_ci### LDEORAH ### 1153b8021494Sopenharmony_ci 1154b8021494Sopenharmony_ciAtomic exclusive OR on halfword in memory, with Load-acquire semantics _(Armv8.1)_ 1155b8021494Sopenharmony_ci 1156b8021494Sopenharmony_ci void ldeorah(const Register& rs, const Register& rt, const MemOperand& src) 1157b8021494Sopenharmony_ci 1158b8021494Sopenharmony_ci 1159b8021494Sopenharmony_ci### LDEORAL ### 1160b8021494Sopenharmony_ci 1161b8021494Sopenharmony_ciAtomic exclusive OR on word or doubleword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1162b8021494Sopenharmony_ci 1163b8021494Sopenharmony_ci void ldeoral(const Register& rs, const Register& rt, const MemOperand& src) 1164b8021494Sopenharmony_ci 1165b8021494Sopenharmony_ci 1166b8021494Sopenharmony_ci### LDEORALB ### 1167b8021494Sopenharmony_ci 1168b8021494Sopenharmony_ciAtomic exclusive OR on byte in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1169b8021494Sopenharmony_ci 1170b8021494Sopenharmony_ci void ldeoralb(const Register& rs, const Register& rt, const MemOperand& src) 1171b8021494Sopenharmony_ci 1172b8021494Sopenharmony_ci 1173b8021494Sopenharmony_ci### LDEORALH ### 1174b8021494Sopenharmony_ci 1175b8021494Sopenharmony_ciAtomic exclusive OR on halfword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1176b8021494Sopenharmony_ci 1177b8021494Sopenharmony_ci void ldeoralh(const Register& rs, const Register& rt, const MemOperand& src) 1178b8021494Sopenharmony_ci 1179b8021494Sopenharmony_ci 1180b8021494Sopenharmony_ci### LDEORB ### 1181b8021494Sopenharmony_ci 1182b8021494Sopenharmony_ciAtomic exclusive OR on byte in memory _(Armv8.1)_ 1183b8021494Sopenharmony_ci 1184b8021494Sopenharmony_ci void ldeorb(const Register& rs, const Register& rt, const MemOperand& src) 1185b8021494Sopenharmony_ci 1186b8021494Sopenharmony_ci 1187b8021494Sopenharmony_ci### LDEORH ### 1188b8021494Sopenharmony_ci 1189b8021494Sopenharmony_ciAtomic exclusive OR on halfword in memory _(Armv8.1)_ 1190b8021494Sopenharmony_ci 1191b8021494Sopenharmony_ci void ldeorh(const Register& rs, const Register& rt, const MemOperand& src) 1192b8021494Sopenharmony_ci 1193b8021494Sopenharmony_ci 1194b8021494Sopenharmony_ci### LDEORL ### 1195b8021494Sopenharmony_ci 1196b8021494Sopenharmony_ciAtomic exclusive OR on word or doubleword in memory, with Store-release semantics _(Armv8.1)_ 1197b8021494Sopenharmony_ci 1198b8021494Sopenharmony_ci void ldeorl(const Register& rs, const Register& rt, const MemOperand& src) 1199b8021494Sopenharmony_ci 1200b8021494Sopenharmony_ci 1201b8021494Sopenharmony_ci### LDEORLB ### 1202b8021494Sopenharmony_ci 1203b8021494Sopenharmony_ciAtomic exclusive OR on byte in memory, with Store-release semantics _(Armv8.1)_ 1204b8021494Sopenharmony_ci 1205b8021494Sopenharmony_ci void ldeorlb(const Register& rs, const Register& rt, const MemOperand& src) 1206b8021494Sopenharmony_ci 1207b8021494Sopenharmony_ci 1208b8021494Sopenharmony_ci### LDEORLH ### 1209b8021494Sopenharmony_ci 1210b8021494Sopenharmony_ciAtomic exclusive OR on halfword in memory, with Store-release semantics _(Armv8.1)_ 1211b8021494Sopenharmony_ci 1212b8021494Sopenharmony_ci void ldeorlh(const Register& rs, const Register& rt, const MemOperand& src) 1213b8021494Sopenharmony_ci 1214b8021494Sopenharmony_ci 1215b8021494Sopenharmony_ci### LDLAR ### 1216b8021494Sopenharmony_ci 1217b8021494Sopenharmony_ciLoad LORelease register _(Armv8.1)_. 1218b8021494Sopenharmony_ci 1219b8021494Sopenharmony_ci void ldlar(const Register& rt, const MemOperand& src) 1220b8021494Sopenharmony_ci 1221b8021494Sopenharmony_ci 1222b8021494Sopenharmony_ci### LDLARB ### 1223b8021494Sopenharmony_ci 1224b8021494Sopenharmony_ciLoad LORelease byte _(Armv8.1)_. 1225b8021494Sopenharmony_ci 1226b8021494Sopenharmony_ci void ldlarb(const Register& rt, const MemOperand& src) 1227b8021494Sopenharmony_ci 1228b8021494Sopenharmony_ci 1229b8021494Sopenharmony_ci### LDLARH ### 1230b8021494Sopenharmony_ci 1231b8021494Sopenharmony_ciLoad LORelease half-word _(Armv8.1)_. 1232b8021494Sopenharmony_ci 1233b8021494Sopenharmony_ci void ldlarh(const Register& rt, const MemOperand& src) 1234b8021494Sopenharmony_ci 1235b8021494Sopenharmony_ci 1236b8021494Sopenharmony_ci### LDNP ### 1237b8021494Sopenharmony_ci 1238b8021494Sopenharmony_ciLoad integer or FP register pair, non-temporal. 1239b8021494Sopenharmony_ci 1240b8021494Sopenharmony_ci void ldnp(const CPURegister& rt, 1241b8021494Sopenharmony_ci const CPURegister& rt2, 1242b8021494Sopenharmony_ci const MemOperand& src) 1243b8021494Sopenharmony_ci 1244b8021494Sopenharmony_ci 1245b8021494Sopenharmony_ci### LDP ### 1246b8021494Sopenharmony_ci 1247b8021494Sopenharmony_ciLoad integer or FP register pair. 1248b8021494Sopenharmony_ci 1249b8021494Sopenharmony_ci void ldp(const CPURegister& rt, 1250b8021494Sopenharmony_ci const CPURegister& rt2, 1251b8021494Sopenharmony_ci const MemOperand& src) 1252b8021494Sopenharmony_ci 1253b8021494Sopenharmony_ci 1254b8021494Sopenharmony_ci### LDPSW ### 1255b8021494Sopenharmony_ci 1256b8021494Sopenharmony_ciLoad word pair with sign extension. 1257b8021494Sopenharmony_ci 1258b8021494Sopenharmony_ci void ldpsw(const Register& xt, const Register& xt2, const MemOperand& src) 1259b8021494Sopenharmony_ci 1260b8021494Sopenharmony_ci 1261b8021494Sopenharmony_ci### LDR ### 1262b8021494Sopenharmony_ci 1263b8021494Sopenharmony_ciLoad integer or FP register from literal pool. 1264b8021494Sopenharmony_ci 1265b8021494Sopenharmony_ci void ldr(const CPURegister& rt, RawLiteral* literal) 1266b8021494Sopenharmony_ci 1267b8021494Sopenharmony_ci 1268b8021494Sopenharmony_ci### LDR ### 1269b8021494Sopenharmony_ci 1270b8021494Sopenharmony_ciLoad integer or FP register from pc + imm19 << 2. 1271b8021494Sopenharmony_ci 1272b8021494Sopenharmony_ci void ldr(const CPURegister& rt, int64_t imm19) 1273b8021494Sopenharmony_ci 1274b8021494Sopenharmony_ci 1275b8021494Sopenharmony_ci### LDR ### 1276b8021494Sopenharmony_ci 1277b8021494Sopenharmony_ciLoad integer or FP register. 1278b8021494Sopenharmony_ci 1279b8021494Sopenharmony_ci void ldr(const CPURegister& rt, 1280b8021494Sopenharmony_ci const MemOperand& src, 1281b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferScaledOffset) 1282b8021494Sopenharmony_ci 1283b8021494Sopenharmony_ci 1284b8021494Sopenharmony_ci### LDRAA ### 1285b8021494Sopenharmony_ci 1286b8021494Sopenharmony_ciLoad double-word with pointer authentication, using data key A and a modifier of zero _(Armv8.3)_. 1287b8021494Sopenharmony_ci 1288b8021494Sopenharmony_ci void ldraa(const Register& xt, const MemOperand& src) 1289b8021494Sopenharmony_ci 1290b8021494Sopenharmony_ci 1291b8021494Sopenharmony_ci### LDRAB ### 1292b8021494Sopenharmony_ci 1293b8021494Sopenharmony_ciLoad double-word with pointer authentication, using data key B and a modifier of zero _(Armv8.3)_. 1294b8021494Sopenharmony_ci 1295b8021494Sopenharmony_ci void ldrab(const Register& xt, const MemOperand& src) 1296b8021494Sopenharmony_ci 1297b8021494Sopenharmony_ci 1298b8021494Sopenharmony_ci### LDRB ### 1299b8021494Sopenharmony_ci 1300b8021494Sopenharmony_ciLoad byte. 1301b8021494Sopenharmony_ci 1302b8021494Sopenharmony_ci void ldrb(const Register& rt, 1303b8021494Sopenharmony_ci const MemOperand& src, 1304b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferScaledOffset) 1305b8021494Sopenharmony_ci 1306b8021494Sopenharmony_ci 1307b8021494Sopenharmony_ci### LDRH ### 1308b8021494Sopenharmony_ci 1309b8021494Sopenharmony_ciLoad half-word. 1310b8021494Sopenharmony_ci 1311b8021494Sopenharmony_ci void ldrh(const Register& rt, 1312b8021494Sopenharmony_ci const MemOperand& src, 1313b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferScaledOffset) 1314b8021494Sopenharmony_ci 1315b8021494Sopenharmony_ci 1316b8021494Sopenharmony_ci### LDRSB ### 1317b8021494Sopenharmony_ci 1318b8021494Sopenharmony_ciLoad byte with sign extension. 1319b8021494Sopenharmony_ci 1320b8021494Sopenharmony_ci void ldrsb(const Register& rt, 1321b8021494Sopenharmony_ci const MemOperand& src, 1322b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferScaledOffset) 1323b8021494Sopenharmony_ci 1324b8021494Sopenharmony_ci 1325b8021494Sopenharmony_ci### LDRSH ### 1326b8021494Sopenharmony_ci 1327b8021494Sopenharmony_ciLoad half-word with sign extension. 1328b8021494Sopenharmony_ci 1329b8021494Sopenharmony_ci void ldrsh(const Register& rt, 1330b8021494Sopenharmony_ci const MemOperand& src, 1331b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferScaledOffset) 1332b8021494Sopenharmony_ci 1333b8021494Sopenharmony_ci 1334b8021494Sopenharmony_ci### LDRSW ### 1335b8021494Sopenharmony_ci 1336b8021494Sopenharmony_ciLoad word with sign extension from literal pool. 1337b8021494Sopenharmony_ci 1338b8021494Sopenharmony_ci void ldrsw(const Register& xt, RawLiteral* literal) 1339b8021494Sopenharmony_ci 1340b8021494Sopenharmony_ci 1341b8021494Sopenharmony_ci### LDRSW ### 1342b8021494Sopenharmony_ci 1343b8021494Sopenharmony_ciLoad word with sign extension from pc + imm19 << 2. 1344b8021494Sopenharmony_ci 1345b8021494Sopenharmony_ci void ldrsw(const Register& xt, int64_t imm19) 1346b8021494Sopenharmony_ci 1347b8021494Sopenharmony_ci 1348b8021494Sopenharmony_ci### LDRSW ### 1349b8021494Sopenharmony_ci 1350b8021494Sopenharmony_ciLoad word with sign extension. 1351b8021494Sopenharmony_ci 1352b8021494Sopenharmony_ci void ldrsw(const Register& xt, 1353b8021494Sopenharmony_ci const MemOperand& src, 1354b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferScaledOffset) 1355b8021494Sopenharmony_ci 1356b8021494Sopenharmony_ci 1357b8021494Sopenharmony_ci### LDSET ### 1358b8021494Sopenharmony_ci 1359b8021494Sopenharmony_ciAtomic bit set on word or doubleword in memory _(Armv8.1)_ 1360b8021494Sopenharmony_ci 1361b8021494Sopenharmony_ci void ldset(const Register& rs, const Register& rt, const MemOperand& src) 1362b8021494Sopenharmony_ci 1363b8021494Sopenharmony_ci 1364b8021494Sopenharmony_ci### LDSETA ### 1365b8021494Sopenharmony_ci 1366b8021494Sopenharmony_ciAtomic bit set on word or doubleword in memory, with Load-acquire semantics _(Armv8.1)_ 1367b8021494Sopenharmony_ci 1368b8021494Sopenharmony_ci void ldseta(const Register& rs, const Register& rt, const MemOperand& src) 1369b8021494Sopenharmony_ci 1370b8021494Sopenharmony_ci 1371b8021494Sopenharmony_ci### LDSETAB ### 1372b8021494Sopenharmony_ci 1373b8021494Sopenharmony_ciAtomic bit set on byte in memory, with Load-acquire semantics _(Armv8.1)_ 1374b8021494Sopenharmony_ci 1375b8021494Sopenharmony_ci void ldsetab(const Register& rs, const Register& rt, const MemOperand& src) 1376b8021494Sopenharmony_ci 1377b8021494Sopenharmony_ci 1378b8021494Sopenharmony_ci### LDSETAH ### 1379b8021494Sopenharmony_ci 1380b8021494Sopenharmony_ciAtomic bit set on halfword in memory, with Load-acquire semantics _(Armv8.1)_ 1381b8021494Sopenharmony_ci 1382b8021494Sopenharmony_ci void ldsetah(const Register& rs, const Register& rt, const MemOperand& src) 1383b8021494Sopenharmony_ci 1384b8021494Sopenharmony_ci 1385b8021494Sopenharmony_ci### LDSETAL ### 1386b8021494Sopenharmony_ci 1387b8021494Sopenharmony_ciAtomic bit set on word or doubleword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1388b8021494Sopenharmony_ci 1389b8021494Sopenharmony_ci void ldsetal(const Register& rs, const Register& rt, const MemOperand& src) 1390b8021494Sopenharmony_ci 1391b8021494Sopenharmony_ci 1392b8021494Sopenharmony_ci### LDSETALB ### 1393b8021494Sopenharmony_ci 1394b8021494Sopenharmony_ciAtomic bit set on byte in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1395b8021494Sopenharmony_ci 1396b8021494Sopenharmony_ci void ldsetalb(const Register& rs, const Register& rt, const MemOperand& src) 1397b8021494Sopenharmony_ci 1398b8021494Sopenharmony_ci 1399b8021494Sopenharmony_ci### LDSETALH ### 1400b8021494Sopenharmony_ci 1401b8021494Sopenharmony_ciAtomic bit set on halfword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1402b8021494Sopenharmony_ci 1403b8021494Sopenharmony_ci void ldsetalh(const Register& rs, const Register& rt, const MemOperand& src) 1404b8021494Sopenharmony_ci 1405b8021494Sopenharmony_ci 1406b8021494Sopenharmony_ci### LDSETB ### 1407b8021494Sopenharmony_ci 1408b8021494Sopenharmony_ciAtomic bit set on byte in memory _(Armv8.1)_ 1409b8021494Sopenharmony_ci 1410b8021494Sopenharmony_ci void ldsetb(const Register& rs, const Register& rt, const MemOperand& src) 1411b8021494Sopenharmony_ci 1412b8021494Sopenharmony_ci 1413b8021494Sopenharmony_ci### LDSETH ### 1414b8021494Sopenharmony_ci 1415b8021494Sopenharmony_ciAtomic bit set on halfword in memory _(Armv8.1)_ 1416b8021494Sopenharmony_ci 1417b8021494Sopenharmony_ci void ldseth(const Register& rs, const Register& rt, const MemOperand& src) 1418b8021494Sopenharmony_ci 1419b8021494Sopenharmony_ci 1420b8021494Sopenharmony_ci### LDSETL ### 1421b8021494Sopenharmony_ci 1422b8021494Sopenharmony_ciAtomic bit set on word or doubleword in memory, with Store-release semantics _(Armv8.1)_ 1423b8021494Sopenharmony_ci 1424b8021494Sopenharmony_ci void ldsetl(const Register& rs, const Register& rt, const MemOperand& src) 1425b8021494Sopenharmony_ci 1426b8021494Sopenharmony_ci 1427b8021494Sopenharmony_ci### LDSETLB ### 1428b8021494Sopenharmony_ci 1429b8021494Sopenharmony_ciAtomic bit set on byte in memory, with Store-release semantics _(Armv8.1)_ 1430b8021494Sopenharmony_ci 1431b8021494Sopenharmony_ci void ldsetlb(const Register& rs, const Register& rt, const MemOperand& src) 1432b8021494Sopenharmony_ci 1433b8021494Sopenharmony_ci 1434b8021494Sopenharmony_ci### LDSETLH ### 1435b8021494Sopenharmony_ci 1436b8021494Sopenharmony_ciAtomic bit set on halfword in memory, with Store-release semantics _(Armv8.1)_ 1437b8021494Sopenharmony_ci 1438b8021494Sopenharmony_ci void ldsetlh(const Register& rs, const Register& rt, const MemOperand& src) 1439b8021494Sopenharmony_ci 1440b8021494Sopenharmony_ci 1441b8021494Sopenharmony_ci### LDSMAX ### 1442b8021494Sopenharmony_ci 1443b8021494Sopenharmony_ciAtomic signed maximum on word or doubleword in memory _(Armv8.1)_ 1444b8021494Sopenharmony_ci 1445b8021494Sopenharmony_ci void ldsmax(const Register& rs, const Register& rt, const MemOperand& src) 1446b8021494Sopenharmony_ci 1447b8021494Sopenharmony_ci 1448b8021494Sopenharmony_ci### LDSMAXA ### 1449b8021494Sopenharmony_ci 1450b8021494Sopenharmony_ciAtomic signed maximum on word or doubleword in memory, with Load-acquire semantics _(Armv8.1)_ 1451b8021494Sopenharmony_ci 1452b8021494Sopenharmony_ci void ldsmaxa(const Register& rs, const Register& rt, const MemOperand& src) 1453b8021494Sopenharmony_ci 1454b8021494Sopenharmony_ci 1455b8021494Sopenharmony_ci### LDSMAXAB ### 1456b8021494Sopenharmony_ci 1457b8021494Sopenharmony_ciAtomic signed maximum on byte in memory, with Load-acquire semantics _(Armv8.1)_ 1458b8021494Sopenharmony_ci 1459b8021494Sopenharmony_ci void ldsmaxab(const Register& rs, const Register& rt, const MemOperand& src) 1460b8021494Sopenharmony_ci 1461b8021494Sopenharmony_ci 1462b8021494Sopenharmony_ci### LDSMAXAH ### 1463b8021494Sopenharmony_ci 1464b8021494Sopenharmony_ciAtomic signed maximum on halfword in memory, with Load-acquire semantics _(Armv8.1)_ 1465b8021494Sopenharmony_ci 1466b8021494Sopenharmony_ci void ldsmaxah(const Register& rs, const Register& rt, const MemOperand& src) 1467b8021494Sopenharmony_ci 1468b8021494Sopenharmony_ci 1469b8021494Sopenharmony_ci### LDSMAXAL ### 1470b8021494Sopenharmony_ci 1471b8021494Sopenharmony_ciAtomic signed maximum on word or doubleword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1472b8021494Sopenharmony_ci 1473b8021494Sopenharmony_ci void ldsmaxal(const Register& rs, const Register& rt, const MemOperand& src) 1474b8021494Sopenharmony_ci 1475b8021494Sopenharmony_ci 1476b8021494Sopenharmony_ci### LDSMAXALB ### 1477b8021494Sopenharmony_ci 1478b8021494Sopenharmony_ciAtomic signed maximum on byte in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1479b8021494Sopenharmony_ci 1480b8021494Sopenharmony_ci void ldsmaxalb(const Register& rs, const Register& rt, const MemOperand& src) 1481b8021494Sopenharmony_ci 1482b8021494Sopenharmony_ci 1483b8021494Sopenharmony_ci### LDSMAXALH ### 1484b8021494Sopenharmony_ci 1485b8021494Sopenharmony_ciAtomic signed maximum on halfword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1486b8021494Sopenharmony_ci 1487b8021494Sopenharmony_ci void ldsmaxalh(const Register& rs, const Register& rt, const MemOperand& src) 1488b8021494Sopenharmony_ci 1489b8021494Sopenharmony_ci 1490b8021494Sopenharmony_ci### LDSMAXB ### 1491b8021494Sopenharmony_ci 1492b8021494Sopenharmony_ciAtomic signed maximum on byte in memory _(Armv8.1)_ 1493b8021494Sopenharmony_ci 1494b8021494Sopenharmony_ci void ldsmaxb(const Register& rs, const Register& rt, const MemOperand& src) 1495b8021494Sopenharmony_ci 1496b8021494Sopenharmony_ci 1497b8021494Sopenharmony_ci### LDSMAXH ### 1498b8021494Sopenharmony_ci 1499b8021494Sopenharmony_ciAtomic signed maximum on halfword in memory _(Armv8.1)_ 1500b8021494Sopenharmony_ci 1501b8021494Sopenharmony_ci void ldsmaxh(const Register& rs, const Register& rt, const MemOperand& src) 1502b8021494Sopenharmony_ci 1503b8021494Sopenharmony_ci 1504b8021494Sopenharmony_ci### LDSMAXL ### 1505b8021494Sopenharmony_ci 1506b8021494Sopenharmony_ciAtomic signed maximum on word or doubleword in memory, with Store-release semantics _(Armv8.1)_ 1507b8021494Sopenharmony_ci 1508b8021494Sopenharmony_ci void ldsmaxl(const Register& rs, const Register& rt, const MemOperand& src) 1509b8021494Sopenharmony_ci 1510b8021494Sopenharmony_ci 1511b8021494Sopenharmony_ci### LDSMAXLB ### 1512b8021494Sopenharmony_ci 1513b8021494Sopenharmony_ciAtomic signed maximum on byte in memory, with Store-release semantics _(Armv8.1)_ 1514b8021494Sopenharmony_ci 1515b8021494Sopenharmony_ci void ldsmaxlb(const Register& rs, const Register& rt, const MemOperand& src) 1516b8021494Sopenharmony_ci 1517b8021494Sopenharmony_ci 1518b8021494Sopenharmony_ci### LDSMAXLH ### 1519b8021494Sopenharmony_ci 1520b8021494Sopenharmony_ciAtomic signed maximum on halfword in memory, with Store-release semantics _(Armv8.1)_ 1521b8021494Sopenharmony_ci 1522b8021494Sopenharmony_ci void ldsmaxlh(const Register& rs, const Register& rt, const MemOperand& src) 1523b8021494Sopenharmony_ci 1524b8021494Sopenharmony_ci 1525b8021494Sopenharmony_ci### LDSMIN ### 1526b8021494Sopenharmony_ci 1527b8021494Sopenharmony_ciAtomic signed minimum on word or doubleword in memory _(Armv8.1)_ 1528b8021494Sopenharmony_ci 1529b8021494Sopenharmony_ci void ldsmin(const Register& rs, const Register& rt, const MemOperand& src) 1530b8021494Sopenharmony_ci 1531b8021494Sopenharmony_ci 1532b8021494Sopenharmony_ci### LDSMINA ### 1533b8021494Sopenharmony_ci 1534b8021494Sopenharmony_ciAtomic signed minimum on word or doubleword in memory, with Load-acquire semantics _(Armv8.1)_ 1535b8021494Sopenharmony_ci 1536b8021494Sopenharmony_ci void ldsmina(const Register& rs, const Register& rt, const MemOperand& src) 1537b8021494Sopenharmony_ci 1538b8021494Sopenharmony_ci 1539b8021494Sopenharmony_ci### LDSMINAB ### 1540b8021494Sopenharmony_ci 1541b8021494Sopenharmony_ciAtomic signed minimum on byte in memory, with Load-acquire semantics _(Armv8.1)_ 1542b8021494Sopenharmony_ci 1543b8021494Sopenharmony_ci void ldsminab(const Register& rs, const Register& rt, const MemOperand& src) 1544b8021494Sopenharmony_ci 1545b8021494Sopenharmony_ci 1546b8021494Sopenharmony_ci### LDSMINAH ### 1547b8021494Sopenharmony_ci 1548b8021494Sopenharmony_ciAtomic signed minimum on halfword in memory, with Load-acquire semantics _(Armv8.1)_ 1549b8021494Sopenharmony_ci 1550b8021494Sopenharmony_ci void ldsminah(const Register& rs, const Register& rt, const MemOperand& src) 1551b8021494Sopenharmony_ci 1552b8021494Sopenharmony_ci 1553b8021494Sopenharmony_ci### LDSMINAL ### 1554b8021494Sopenharmony_ci 1555b8021494Sopenharmony_ciAtomic signed minimum on word or doubleword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1556b8021494Sopenharmony_ci 1557b8021494Sopenharmony_ci void ldsminal(const Register& rs, const Register& rt, const MemOperand& src) 1558b8021494Sopenharmony_ci 1559b8021494Sopenharmony_ci 1560b8021494Sopenharmony_ci### LDSMINALB ### 1561b8021494Sopenharmony_ci 1562b8021494Sopenharmony_ciAtomic signed minimum on byte in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1563b8021494Sopenharmony_ci 1564b8021494Sopenharmony_ci void ldsminalb(const Register& rs, const Register& rt, const MemOperand& src) 1565b8021494Sopenharmony_ci 1566b8021494Sopenharmony_ci 1567b8021494Sopenharmony_ci### LDSMINALH ### 1568b8021494Sopenharmony_ci 1569b8021494Sopenharmony_ciAtomic signed minimum on halfword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1570b8021494Sopenharmony_ci 1571b8021494Sopenharmony_ci void ldsminalh(const Register& rs, const Register& rt, const MemOperand& src) 1572b8021494Sopenharmony_ci 1573b8021494Sopenharmony_ci 1574b8021494Sopenharmony_ci### LDSMINB ### 1575b8021494Sopenharmony_ci 1576b8021494Sopenharmony_ciAtomic signed minimum on byte in memory _(Armv8.1)_ 1577b8021494Sopenharmony_ci 1578b8021494Sopenharmony_ci void ldsminb(const Register& rs, const Register& rt, const MemOperand& src) 1579b8021494Sopenharmony_ci 1580b8021494Sopenharmony_ci 1581b8021494Sopenharmony_ci### LDSMINH ### 1582b8021494Sopenharmony_ci 1583b8021494Sopenharmony_ciAtomic signed minimum on halfword in memory _(Armv8.1)_ 1584b8021494Sopenharmony_ci 1585b8021494Sopenharmony_ci void ldsminh(const Register& rs, const Register& rt, const MemOperand& src) 1586b8021494Sopenharmony_ci 1587b8021494Sopenharmony_ci 1588b8021494Sopenharmony_ci### LDSMINL ### 1589b8021494Sopenharmony_ci 1590b8021494Sopenharmony_ciAtomic signed minimum on word or doubleword in memory, with Store-release semantics _(Armv8.1)_ 1591b8021494Sopenharmony_ci 1592b8021494Sopenharmony_ci void ldsminl(const Register& rs, const Register& rt, const MemOperand& src) 1593b8021494Sopenharmony_ci 1594b8021494Sopenharmony_ci 1595b8021494Sopenharmony_ci### LDSMINLB ### 1596b8021494Sopenharmony_ci 1597b8021494Sopenharmony_ciAtomic signed minimum on byte in memory, with Store-release semantics _(Armv8.1)_ 1598b8021494Sopenharmony_ci 1599b8021494Sopenharmony_ci void ldsminlb(const Register& rs, const Register& rt, const MemOperand& src) 1600b8021494Sopenharmony_ci 1601b8021494Sopenharmony_ci 1602b8021494Sopenharmony_ci### LDSMINLH ### 1603b8021494Sopenharmony_ci 1604b8021494Sopenharmony_ciAtomic signed minimum on halfword in memory, with Store-release semantics _(Armv8.1)_ 1605b8021494Sopenharmony_ci 1606b8021494Sopenharmony_ci void ldsminlh(const Register& rs, const Register& rt, const MemOperand& src) 1607b8021494Sopenharmony_ci 1608b8021494Sopenharmony_ci 1609b8021494Sopenharmony_ci### LDUMAX ### 1610b8021494Sopenharmony_ci 1611b8021494Sopenharmony_ciAtomic unsigned maximum on word or doubleword in memory _(Armv8.1)_ 1612b8021494Sopenharmony_ci 1613b8021494Sopenharmony_ci void ldumax(const Register& rs, const Register& rt, const MemOperand& src) 1614b8021494Sopenharmony_ci 1615b8021494Sopenharmony_ci 1616b8021494Sopenharmony_ci### LDUMAXA ### 1617b8021494Sopenharmony_ci 1618b8021494Sopenharmony_ciAtomic unsigned maximum on word or doubleword in memory, with Load-acquire semantics _(Armv8.1)_ 1619b8021494Sopenharmony_ci 1620b8021494Sopenharmony_ci void ldumaxa(const Register& rs, const Register& rt, const MemOperand& src) 1621b8021494Sopenharmony_ci 1622b8021494Sopenharmony_ci 1623b8021494Sopenharmony_ci### LDUMAXAB ### 1624b8021494Sopenharmony_ci 1625b8021494Sopenharmony_ciAtomic unsigned maximum on byte in memory, with Load-acquire semantics _(Armv8.1)_ 1626b8021494Sopenharmony_ci 1627b8021494Sopenharmony_ci void ldumaxab(const Register& rs, const Register& rt, const MemOperand& src) 1628b8021494Sopenharmony_ci 1629b8021494Sopenharmony_ci 1630b8021494Sopenharmony_ci### LDUMAXAH ### 1631b8021494Sopenharmony_ci 1632b8021494Sopenharmony_ciAtomic unsigned maximum on halfword in memory, with Load-acquire semantics _(Armv8.1)_ 1633b8021494Sopenharmony_ci 1634b8021494Sopenharmony_ci void ldumaxah(const Register& rs, const Register& rt, const MemOperand& src) 1635b8021494Sopenharmony_ci 1636b8021494Sopenharmony_ci 1637b8021494Sopenharmony_ci### LDUMAXAL ### 1638b8021494Sopenharmony_ci 1639b8021494Sopenharmony_ciAtomic unsigned maximum on word or doubleword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1640b8021494Sopenharmony_ci 1641b8021494Sopenharmony_ci void ldumaxal(const Register& rs, const Register& rt, const MemOperand& src) 1642b8021494Sopenharmony_ci 1643b8021494Sopenharmony_ci 1644b8021494Sopenharmony_ci### LDUMAXALB ### 1645b8021494Sopenharmony_ci 1646b8021494Sopenharmony_ciAtomic unsigned maximum on byte in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1647b8021494Sopenharmony_ci 1648b8021494Sopenharmony_ci void ldumaxalb(const Register& rs, const Register& rt, const MemOperand& src) 1649b8021494Sopenharmony_ci 1650b8021494Sopenharmony_ci 1651b8021494Sopenharmony_ci### LDUMAXALH ### 1652b8021494Sopenharmony_ci 1653b8021494Sopenharmony_ciAtomic unsigned maximum on halfword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1654b8021494Sopenharmony_ci 1655b8021494Sopenharmony_ci void ldumaxalh(const Register& rs, const Register& rt, const MemOperand& src) 1656b8021494Sopenharmony_ci 1657b8021494Sopenharmony_ci 1658b8021494Sopenharmony_ci### LDUMAXB ### 1659b8021494Sopenharmony_ci 1660b8021494Sopenharmony_ciAtomic unsigned maximum on byte in memory _(Armv8.1)_ 1661b8021494Sopenharmony_ci 1662b8021494Sopenharmony_ci void ldumaxb(const Register& rs, const Register& rt, const MemOperand& src) 1663b8021494Sopenharmony_ci 1664b8021494Sopenharmony_ci 1665b8021494Sopenharmony_ci### LDUMAXH ### 1666b8021494Sopenharmony_ci 1667b8021494Sopenharmony_ciAtomic unsigned maximum on halfword in memory _(Armv8.1)_ 1668b8021494Sopenharmony_ci 1669b8021494Sopenharmony_ci void ldumaxh(const Register& rs, const Register& rt, const MemOperand& src) 1670b8021494Sopenharmony_ci 1671b8021494Sopenharmony_ci 1672b8021494Sopenharmony_ci### LDUMAXL ### 1673b8021494Sopenharmony_ci 1674b8021494Sopenharmony_ciAtomic unsigned maximum on word or doubleword in memory, with Store-release semantics _(Armv8.1)_ 1675b8021494Sopenharmony_ci 1676b8021494Sopenharmony_ci void ldumaxl(const Register& rs, const Register& rt, const MemOperand& src) 1677b8021494Sopenharmony_ci 1678b8021494Sopenharmony_ci 1679b8021494Sopenharmony_ci### LDUMAXLB ### 1680b8021494Sopenharmony_ci 1681b8021494Sopenharmony_ciAtomic unsigned maximum on byte in memory, with Store-release semantics _(Armv8.1)_ 1682b8021494Sopenharmony_ci 1683b8021494Sopenharmony_ci void ldumaxlb(const Register& rs, const Register& rt, const MemOperand& src) 1684b8021494Sopenharmony_ci 1685b8021494Sopenharmony_ci 1686b8021494Sopenharmony_ci### LDUMAXLH ### 1687b8021494Sopenharmony_ci 1688b8021494Sopenharmony_ciAtomic unsigned maximum on halfword in memory, with Store-release semantics _(Armv8.1)_ 1689b8021494Sopenharmony_ci 1690b8021494Sopenharmony_ci void ldumaxlh(const Register& rs, const Register& rt, const MemOperand& src) 1691b8021494Sopenharmony_ci 1692b8021494Sopenharmony_ci 1693b8021494Sopenharmony_ci### LDUMIN ### 1694b8021494Sopenharmony_ci 1695b8021494Sopenharmony_ciAtomic unsigned minimum on word or doubleword in memory _(Armv8.1)_ 1696b8021494Sopenharmony_ci 1697b8021494Sopenharmony_ci void ldumin(const Register& rs, const Register& rt, const MemOperand& src) 1698b8021494Sopenharmony_ci 1699b8021494Sopenharmony_ci 1700b8021494Sopenharmony_ci### LDUMINA ### 1701b8021494Sopenharmony_ci 1702b8021494Sopenharmony_ciAtomic unsigned minimum on word or doubleword in memory, with Load-acquire semantics _(Armv8.1)_ 1703b8021494Sopenharmony_ci 1704b8021494Sopenharmony_ci void ldumina(const Register& rs, const Register& rt, const MemOperand& src) 1705b8021494Sopenharmony_ci 1706b8021494Sopenharmony_ci 1707b8021494Sopenharmony_ci### LDUMINAB ### 1708b8021494Sopenharmony_ci 1709b8021494Sopenharmony_ciAtomic unsigned minimum on byte in memory, with Load-acquire semantics _(Armv8.1)_ 1710b8021494Sopenharmony_ci 1711b8021494Sopenharmony_ci void lduminab(const Register& rs, const Register& rt, const MemOperand& src) 1712b8021494Sopenharmony_ci 1713b8021494Sopenharmony_ci 1714b8021494Sopenharmony_ci### LDUMINAH ### 1715b8021494Sopenharmony_ci 1716b8021494Sopenharmony_ciAtomic unsigned minimum on halfword in memory, with Load-acquire semantics _(Armv8.1)_ 1717b8021494Sopenharmony_ci 1718b8021494Sopenharmony_ci void lduminah(const Register& rs, const Register& rt, const MemOperand& src) 1719b8021494Sopenharmony_ci 1720b8021494Sopenharmony_ci 1721b8021494Sopenharmony_ci### LDUMINAL ### 1722b8021494Sopenharmony_ci 1723b8021494Sopenharmony_ciAtomic unsigned minimum on word or doubleword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1724b8021494Sopenharmony_ci 1725b8021494Sopenharmony_ci void lduminal(const Register& rs, const Register& rt, const MemOperand& src) 1726b8021494Sopenharmony_ci 1727b8021494Sopenharmony_ci 1728b8021494Sopenharmony_ci### LDUMINALB ### 1729b8021494Sopenharmony_ci 1730b8021494Sopenharmony_ciAtomic unsigned minimum on byte in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1731b8021494Sopenharmony_ci 1732b8021494Sopenharmony_ci void lduminalb(const Register& rs, const Register& rt, const MemOperand& src) 1733b8021494Sopenharmony_ci 1734b8021494Sopenharmony_ci 1735b8021494Sopenharmony_ci### LDUMINALH ### 1736b8021494Sopenharmony_ci 1737b8021494Sopenharmony_ciAtomic unsigned minimum on halfword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 1738b8021494Sopenharmony_ci 1739b8021494Sopenharmony_ci void lduminalh(const Register& rs, const Register& rt, const MemOperand& src) 1740b8021494Sopenharmony_ci 1741b8021494Sopenharmony_ci 1742b8021494Sopenharmony_ci### LDUMINB ### 1743b8021494Sopenharmony_ci 1744b8021494Sopenharmony_ciAtomic unsigned minimum on byte in memory _(Armv8.1)_ 1745b8021494Sopenharmony_ci 1746b8021494Sopenharmony_ci void lduminb(const Register& rs, const Register& rt, const MemOperand& src) 1747b8021494Sopenharmony_ci 1748b8021494Sopenharmony_ci 1749b8021494Sopenharmony_ci### LDUMINH ### 1750b8021494Sopenharmony_ci 1751b8021494Sopenharmony_ciAtomic unsigned minimum on halfword in memory _(Armv8.1)_ 1752b8021494Sopenharmony_ci 1753b8021494Sopenharmony_ci void lduminh(const Register& rs, const Register& rt, const MemOperand& src) 1754b8021494Sopenharmony_ci 1755b8021494Sopenharmony_ci 1756b8021494Sopenharmony_ci### LDUMINL ### 1757b8021494Sopenharmony_ci 1758b8021494Sopenharmony_ciAtomic unsigned minimum on word or doubleword in memory, with Store-release semantics _(Armv8.1)_ 1759b8021494Sopenharmony_ci 1760b8021494Sopenharmony_ci void lduminl(const Register& rs, const Register& rt, const MemOperand& src) 1761b8021494Sopenharmony_ci 1762b8021494Sopenharmony_ci 1763b8021494Sopenharmony_ci### LDUMINLB ### 1764b8021494Sopenharmony_ci 1765b8021494Sopenharmony_ciAtomic unsigned minimum on byte in memory, with Store-release semantics _(Armv8.1)_ 1766b8021494Sopenharmony_ci 1767b8021494Sopenharmony_ci void lduminlb(const Register& rs, const Register& rt, const MemOperand& src) 1768b8021494Sopenharmony_ci 1769b8021494Sopenharmony_ci 1770b8021494Sopenharmony_ci### LDUMINLH ### 1771b8021494Sopenharmony_ci 1772b8021494Sopenharmony_ciAtomic unsigned minimum on halfword in memory, with Store-release semantics _(Armv8.1)_ 1773b8021494Sopenharmony_ci 1774b8021494Sopenharmony_ci void lduminlh(const Register& rs, const Register& rt, const MemOperand& src) 1775b8021494Sopenharmony_ci 1776b8021494Sopenharmony_ci 1777b8021494Sopenharmony_ci### LDUR ### 1778b8021494Sopenharmony_ci 1779b8021494Sopenharmony_ciLoad integer or FP register (with unscaled offset). 1780b8021494Sopenharmony_ci 1781b8021494Sopenharmony_ci void ldur(const CPURegister& rt, 1782b8021494Sopenharmony_ci const MemOperand& src, 1783b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferUnscaledOffset) 1784b8021494Sopenharmony_ci 1785b8021494Sopenharmony_ci 1786b8021494Sopenharmony_ci### LDURB ### 1787b8021494Sopenharmony_ci 1788b8021494Sopenharmony_ciLoad byte (with unscaled offset). 1789b8021494Sopenharmony_ci 1790b8021494Sopenharmony_ci void ldurb(const Register& rt, 1791b8021494Sopenharmony_ci const MemOperand& src, 1792b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferUnscaledOffset) 1793b8021494Sopenharmony_ci 1794b8021494Sopenharmony_ci 1795b8021494Sopenharmony_ci### LDURH ### 1796b8021494Sopenharmony_ci 1797b8021494Sopenharmony_ciLoad half-word (with unscaled offset). 1798b8021494Sopenharmony_ci 1799b8021494Sopenharmony_ci void ldurh(const Register& rt, 1800b8021494Sopenharmony_ci const MemOperand& src, 1801b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferUnscaledOffset) 1802b8021494Sopenharmony_ci 1803b8021494Sopenharmony_ci 1804b8021494Sopenharmony_ci### LDURSB ### 1805b8021494Sopenharmony_ci 1806b8021494Sopenharmony_ciLoad byte with sign extension (and unscaled offset). 1807b8021494Sopenharmony_ci 1808b8021494Sopenharmony_ci void ldursb(const Register& rt, 1809b8021494Sopenharmony_ci const MemOperand& src, 1810b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferUnscaledOffset) 1811b8021494Sopenharmony_ci 1812b8021494Sopenharmony_ci 1813b8021494Sopenharmony_ci### LDURSH ### 1814b8021494Sopenharmony_ci 1815b8021494Sopenharmony_ciLoad half-word with sign extension (and unscaled offset). 1816b8021494Sopenharmony_ci 1817b8021494Sopenharmony_ci void ldursh(const Register& rt, 1818b8021494Sopenharmony_ci const MemOperand& src, 1819b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferUnscaledOffset) 1820b8021494Sopenharmony_ci 1821b8021494Sopenharmony_ci 1822b8021494Sopenharmony_ci### LDURSW ### 1823b8021494Sopenharmony_ci 1824b8021494Sopenharmony_ciLoad word with sign extension. 1825b8021494Sopenharmony_ci 1826b8021494Sopenharmony_ci void ldursw(const Register& xt, 1827b8021494Sopenharmony_ci const MemOperand& src, 1828b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferUnscaledOffset) 1829b8021494Sopenharmony_ci 1830b8021494Sopenharmony_ci 1831b8021494Sopenharmony_ci### LDXP ### 1832b8021494Sopenharmony_ci 1833b8021494Sopenharmony_ciLoad exclusive register pair. 1834b8021494Sopenharmony_ci 1835b8021494Sopenharmony_ci void ldxp(const Register& rt, const Register& rt2, const MemOperand& src) 1836b8021494Sopenharmony_ci 1837b8021494Sopenharmony_ci 1838b8021494Sopenharmony_ci### LDXR ### 1839b8021494Sopenharmony_ci 1840b8021494Sopenharmony_ciLoad exclusive register. 1841b8021494Sopenharmony_ci 1842b8021494Sopenharmony_ci void ldxr(const Register& rt, const MemOperand& src) 1843b8021494Sopenharmony_ci 1844b8021494Sopenharmony_ci 1845b8021494Sopenharmony_ci### LDXRB ### 1846b8021494Sopenharmony_ci 1847b8021494Sopenharmony_ciLoad exclusive byte. 1848b8021494Sopenharmony_ci 1849b8021494Sopenharmony_ci void ldxrb(const Register& rt, const MemOperand& src) 1850b8021494Sopenharmony_ci 1851b8021494Sopenharmony_ci 1852b8021494Sopenharmony_ci### LDXRH ### 1853b8021494Sopenharmony_ci 1854b8021494Sopenharmony_ciLoad exclusive half-word. 1855b8021494Sopenharmony_ci 1856b8021494Sopenharmony_ci void ldxrh(const Register& rt, const MemOperand& src) 1857b8021494Sopenharmony_ci 1858b8021494Sopenharmony_ci 1859b8021494Sopenharmony_ci### LSL ### 1860b8021494Sopenharmony_ci 1861b8021494Sopenharmony_ciLogical shift left. 1862b8021494Sopenharmony_ci 1863b8021494Sopenharmony_ci void lsl(const Register& rd, const Register& rn, unsigned shift) 1864b8021494Sopenharmony_ci 1865b8021494Sopenharmony_ci 1866b8021494Sopenharmony_ci### LSLV ### 1867b8021494Sopenharmony_ci 1868b8021494Sopenharmony_ciLogical shift left by variable. 1869b8021494Sopenharmony_ci 1870b8021494Sopenharmony_ci void lslv(const Register& rd, const Register& rn, const Register& rm) 1871b8021494Sopenharmony_ci 1872b8021494Sopenharmony_ci 1873b8021494Sopenharmony_ci### LSR ### 1874b8021494Sopenharmony_ci 1875b8021494Sopenharmony_ciLogical shift right. 1876b8021494Sopenharmony_ci 1877b8021494Sopenharmony_ci void lsr(const Register& rd, const Register& rn, unsigned shift) 1878b8021494Sopenharmony_ci 1879b8021494Sopenharmony_ci 1880b8021494Sopenharmony_ci### LSRV ### 1881b8021494Sopenharmony_ci 1882b8021494Sopenharmony_ciLogical shift right by variable. 1883b8021494Sopenharmony_ci 1884b8021494Sopenharmony_ci void lsrv(const Register& rd, const Register& rn, const Register& rm) 1885b8021494Sopenharmony_ci 1886b8021494Sopenharmony_ci 1887b8021494Sopenharmony_ci<a id="integer-m"> 1888b8021494Sopenharmony_ci 1889b8021494Sopenharmony_ci### MADD ### 1890b8021494Sopenharmony_ci 1891b8021494Sopenharmony_ciMultiply and accumulate. 1892b8021494Sopenharmony_ci 1893b8021494Sopenharmony_ci void madd(const Register& rd, 1894b8021494Sopenharmony_ci const Register& rn, 1895b8021494Sopenharmony_ci const Register& rm, 1896b8021494Sopenharmony_ci const Register& ra) 1897b8021494Sopenharmony_ci 1898b8021494Sopenharmony_ci 1899b8021494Sopenharmony_ci### MNEG ### 1900b8021494Sopenharmony_ci 1901b8021494Sopenharmony_ciNegated multiply. 1902b8021494Sopenharmony_ci 1903b8021494Sopenharmony_ci void mneg(const Register& rd, const Register& rn, const Register& rm) 1904b8021494Sopenharmony_ci 1905b8021494Sopenharmony_ci 1906b8021494Sopenharmony_ci### MOV ### 1907b8021494Sopenharmony_ci 1908b8021494Sopenharmony_ciMove immediate, aliases for movz, movn, orr. 1909b8021494Sopenharmony_ci 1910b8021494Sopenharmony_ci void mov(const Register& rd, uint64_t imm) 1911b8021494Sopenharmony_ci 1912b8021494Sopenharmony_ci 1913b8021494Sopenharmony_ci### MOV ### 1914b8021494Sopenharmony_ci 1915b8021494Sopenharmony_ciMove register to register. 1916b8021494Sopenharmony_ci 1917b8021494Sopenharmony_ci void mov(const Register& rd, const Register& rn) 1918b8021494Sopenharmony_ci 1919b8021494Sopenharmony_ci 1920b8021494Sopenharmony_ci### MOVK ### 1921b8021494Sopenharmony_ci 1922b8021494Sopenharmony_ciMove immediate and keep. 1923b8021494Sopenharmony_ci 1924b8021494Sopenharmony_ci void movk(const Register& rd, uint64_t imm, int shift = -1) 1925b8021494Sopenharmony_ci 1926b8021494Sopenharmony_ci 1927b8021494Sopenharmony_ci### MOVN ### 1928b8021494Sopenharmony_ci 1929b8021494Sopenharmony_ciMove inverted immediate. 1930b8021494Sopenharmony_ci 1931b8021494Sopenharmony_ci void movn(const Register& rd, uint64_t imm, int shift = -1) 1932b8021494Sopenharmony_ci 1933b8021494Sopenharmony_ci 1934b8021494Sopenharmony_ci### MOVZ ### 1935b8021494Sopenharmony_ci 1936b8021494Sopenharmony_ciMove immediate. 1937b8021494Sopenharmony_ci 1938b8021494Sopenharmony_ci void movz(const Register& rd, uint64_t imm, int shift = -1) 1939b8021494Sopenharmony_ci 1940b8021494Sopenharmony_ci 1941b8021494Sopenharmony_ci### MRS ### 1942b8021494Sopenharmony_ci 1943b8021494Sopenharmony_ciMove to register from system register. 1944b8021494Sopenharmony_ci 1945b8021494Sopenharmony_ci void mrs(const Register& xt, SystemRegister sysreg) 1946b8021494Sopenharmony_ci 1947b8021494Sopenharmony_ci 1948b8021494Sopenharmony_ci### MSR ### 1949b8021494Sopenharmony_ci 1950b8021494Sopenharmony_ciMove from register to system register. 1951b8021494Sopenharmony_ci 1952b8021494Sopenharmony_ci void msr(SystemRegister sysreg, const Register& xt) 1953b8021494Sopenharmony_ci 1954b8021494Sopenharmony_ci 1955b8021494Sopenharmony_ci### MSUB ### 1956b8021494Sopenharmony_ci 1957b8021494Sopenharmony_ciMultiply and subtract. 1958b8021494Sopenharmony_ci 1959b8021494Sopenharmony_ci void msub(const Register& rd, 1960b8021494Sopenharmony_ci const Register& rn, 1961b8021494Sopenharmony_ci const Register& rm, 1962b8021494Sopenharmony_ci const Register& ra) 1963b8021494Sopenharmony_ci 1964b8021494Sopenharmony_ci 1965b8021494Sopenharmony_ci### MUL ### 1966b8021494Sopenharmony_ci 1967b8021494Sopenharmony_ciMultiply. 1968b8021494Sopenharmony_ci 1969b8021494Sopenharmony_ci void mul(const Register& rd, const Register& rn, const Register& rm) 1970b8021494Sopenharmony_ci 1971b8021494Sopenharmony_ci 1972b8021494Sopenharmony_ci### MVN ### 1973b8021494Sopenharmony_ci 1974b8021494Sopenharmony_ciMove inverted operand to register. 1975b8021494Sopenharmony_ci 1976b8021494Sopenharmony_ci void mvn(const Register& rd, const Operand& operand) 1977b8021494Sopenharmony_ci 1978b8021494Sopenharmony_ci 1979b8021494Sopenharmony_ci<a id="integer-n"> 1980b8021494Sopenharmony_ci 1981b8021494Sopenharmony_ci### NEG ### 1982b8021494Sopenharmony_ci 1983b8021494Sopenharmony_ciNegate. 1984b8021494Sopenharmony_ci 1985b8021494Sopenharmony_ci void neg(const Register& rd, const Operand& operand) 1986b8021494Sopenharmony_ci 1987b8021494Sopenharmony_ci 1988b8021494Sopenharmony_ci### NEGS ### 1989b8021494Sopenharmony_ci 1990b8021494Sopenharmony_ciNegate and update status flags. 1991b8021494Sopenharmony_ci 1992b8021494Sopenharmony_ci void negs(const Register& rd, const Operand& operand) 1993b8021494Sopenharmony_ci 1994b8021494Sopenharmony_ci 1995b8021494Sopenharmony_ci### NGC ### 1996b8021494Sopenharmony_ci 1997b8021494Sopenharmony_ciNegate with carry bit. 1998b8021494Sopenharmony_ci 1999b8021494Sopenharmony_ci void ngc(const Register& rd, const Operand& operand) 2000b8021494Sopenharmony_ci 2001b8021494Sopenharmony_ci 2002b8021494Sopenharmony_ci### NGCS ### 2003b8021494Sopenharmony_ci 2004b8021494Sopenharmony_ciNegate with carry bit and update status flags. 2005b8021494Sopenharmony_ci 2006b8021494Sopenharmony_ci void ngcs(const Register& rd, const Operand& operand) 2007b8021494Sopenharmony_ci 2008b8021494Sopenharmony_ci 2009b8021494Sopenharmony_ci### NOP ### 2010b8021494Sopenharmony_ci 2011b8021494Sopenharmony_ciNo-op. 2012b8021494Sopenharmony_ci 2013b8021494Sopenharmony_ci void nop() 2014b8021494Sopenharmony_ci 2015b8021494Sopenharmony_ci 2016b8021494Sopenharmony_ci<a id="integer-o"> 2017b8021494Sopenharmony_ci 2018b8021494Sopenharmony_ci### ORN ### 2019b8021494Sopenharmony_ci 2020b8021494Sopenharmony_ciBitwise nor (A | ~B). 2021b8021494Sopenharmony_ci 2022b8021494Sopenharmony_ci void orn(const Register& rd, const Register& rn, const Operand& operand) 2023b8021494Sopenharmony_ci 2024b8021494Sopenharmony_ci 2025b8021494Sopenharmony_ci### ORR ### 2026b8021494Sopenharmony_ci 2027b8021494Sopenharmony_ciBitwise or (A | B). 2028b8021494Sopenharmony_ci 2029b8021494Sopenharmony_ci void orr(const Register& rd, const Register& rn, const Operand& operand) 2030b8021494Sopenharmony_ci 2031b8021494Sopenharmony_ci 2032b8021494Sopenharmony_ci<a id="integer-p"> 2033b8021494Sopenharmony_ci 2034b8021494Sopenharmony_ci### PACDA ### 2035b8021494Sopenharmony_ci 2036b8021494Sopenharmony_ciPointer Authentication Code for Data address, using key A _(Armv8.3)_. 2037b8021494Sopenharmony_ci 2038b8021494Sopenharmony_ci void pacda(const Register& xd, const Register& xn) 2039b8021494Sopenharmony_ci 2040b8021494Sopenharmony_ci 2041b8021494Sopenharmony_ci### PACDB ### 2042b8021494Sopenharmony_ci 2043b8021494Sopenharmony_ciPointer Authentication Code for Data address, using key B _(Armv8.3)_. 2044b8021494Sopenharmony_ci 2045b8021494Sopenharmony_ci void pacdb(const Register& xd, const Register& xn) 2046b8021494Sopenharmony_ci 2047b8021494Sopenharmony_ci 2048b8021494Sopenharmony_ci### PACDZA ### 2049b8021494Sopenharmony_ci 2050b8021494Sopenharmony_ciPointer Authentication Code for Data address, using key A and a modifier of zero _(Armv8.3)_. 2051b8021494Sopenharmony_ci 2052b8021494Sopenharmony_ci void pacdza(const Register& xd) 2053b8021494Sopenharmony_ci 2054b8021494Sopenharmony_ci 2055b8021494Sopenharmony_ci### PACDZB ### 2056b8021494Sopenharmony_ci 2057b8021494Sopenharmony_ciPointer Authentication Code for Data address, using key B and a modifier of zero _(Armv8.3)_. 2058b8021494Sopenharmony_ci 2059b8021494Sopenharmony_ci void pacdzb(const Register& xd) 2060b8021494Sopenharmony_ci 2061b8021494Sopenharmony_ci 2062b8021494Sopenharmony_ci### PACGA ### 2063b8021494Sopenharmony_ci 2064b8021494Sopenharmony_ciPointer Authentication Code, using Generic key _(Armv8.3)_. 2065b8021494Sopenharmony_ci 2066b8021494Sopenharmony_ci void pacga(const Register& xd, const Register& xn, const Register& xm) 2067b8021494Sopenharmony_ci 2068b8021494Sopenharmony_ci 2069b8021494Sopenharmony_ci### PACIA ### 2070b8021494Sopenharmony_ci 2071b8021494Sopenharmony_ciPointer Authentication Code for Instruction address, using key A _(Armv8.3)_. 2072b8021494Sopenharmony_ci 2073b8021494Sopenharmony_ci void pacia(const Register& xd, const Register& rn) 2074b8021494Sopenharmony_ci 2075b8021494Sopenharmony_ci 2076b8021494Sopenharmony_ci### PACIA1716 ### 2077b8021494Sopenharmony_ci 2078b8021494Sopenharmony_ciPointer Authentication Code for Instruction address, using key A, with address in x17 and modifier in x16 _(Armv8.3)_. 2079b8021494Sopenharmony_ci 2080b8021494Sopenharmony_ci void pacia1716() 2081b8021494Sopenharmony_ci 2082b8021494Sopenharmony_ci 2083b8021494Sopenharmony_ci### PACIASP ### 2084b8021494Sopenharmony_ci 2085b8021494Sopenharmony_ciPointer Authentication Code for Instruction address, using key A, with address in LR and modifier in SP _(Armv8.3)_. 2086b8021494Sopenharmony_ci 2087b8021494Sopenharmony_ci void paciasp() 2088b8021494Sopenharmony_ci 2089b8021494Sopenharmony_ci 2090b8021494Sopenharmony_ci### PACIAZ ### 2091b8021494Sopenharmony_ci 2092b8021494Sopenharmony_ciPointer Authentication Code for Instruction address, using key A, with address in LR and a modifier of zero _(Armv8.3)_. 2093b8021494Sopenharmony_ci 2094b8021494Sopenharmony_ci void paciaz() 2095b8021494Sopenharmony_ci 2096b8021494Sopenharmony_ci 2097b8021494Sopenharmony_ci### PACIB ### 2098b8021494Sopenharmony_ci 2099b8021494Sopenharmony_ciPointer Authentication Code for Instruction address, using key B _(Armv8.3)_. 2100b8021494Sopenharmony_ci 2101b8021494Sopenharmony_ci void pacib(const Register& xd, const Register& xn) 2102b8021494Sopenharmony_ci 2103b8021494Sopenharmony_ci 2104b8021494Sopenharmony_ci### PACIB1716 ### 2105b8021494Sopenharmony_ci 2106b8021494Sopenharmony_ciPointer Authentication Code for Instruction address, using key B, with address in x17 and modifier in x16 _(Armv8.3)_. 2107b8021494Sopenharmony_ci 2108b8021494Sopenharmony_ci void pacib1716() 2109b8021494Sopenharmony_ci 2110b8021494Sopenharmony_ci 2111b8021494Sopenharmony_ci### PACIBSP ### 2112b8021494Sopenharmony_ci 2113b8021494Sopenharmony_ciPointer Authentication Code for Instruction address, using key B, with address in LR and modifier in SP _(Armv8.3)_. 2114b8021494Sopenharmony_ci 2115b8021494Sopenharmony_ci void pacibsp() 2116b8021494Sopenharmony_ci 2117b8021494Sopenharmony_ci 2118b8021494Sopenharmony_ci### PACIBZ ### 2119b8021494Sopenharmony_ci 2120b8021494Sopenharmony_ciPointer Authentication Code for Instruction address, using key B, with address in LR and a modifier of zero _(Armv8.3)_. 2121b8021494Sopenharmony_ci 2122b8021494Sopenharmony_ci void pacibz() 2123b8021494Sopenharmony_ci 2124b8021494Sopenharmony_ci 2125b8021494Sopenharmony_ci### PACIZA ### 2126b8021494Sopenharmony_ci 2127b8021494Sopenharmony_ciPointer Authentication Code for Instruction address, using key A and a modifier of zero _(Armv8.3)_. 2128b8021494Sopenharmony_ci 2129b8021494Sopenharmony_ci void paciza(const Register& xd) 2130b8021494Sopenharmony_ci 2131b8021494Sopenharmony_ci 2132b8021494Sopenharmony_ci### PACIZB ### 2133b8021494Sopenharmony_ci 2134b8021494Sopenharmony_ciPointer Authentication Code for Instruction address, using key B and a modifier of zero _(Armv8.3)_. 2135b8021494Sopenharmony_ci 2136b8021494Sopenharmony_ci void pacizb(const Register& xd) 2137b8021494Sopenharmony_ci 2138b8021494Sopenharmony_ci 2139b8021494Sopenharmony_ci### PRFM ### 2140b8021494Sopenharmony_ci 2141b8021494Sopenharmony_ciPrefetch from pc + imm19 << 2 (allowing unallocated hints). 2142b8021494Sopenharmony_ci 2143b8021494Sopenharmony_ci void prfm(int op, int64_t imm19) 2144b8021494Sopenharmony_ci 2145b8021494Sopenharmony_ci 2146b8021494Sopenharmony_ci### PRFM ### 2147b8021494Sopenharmony_ci 2148b8021494Sopenharmony_ciPrefetch from pc + imm19 << 2. 2149b8021494Sopenharmony_ci 2150b8021494Sopenharmony_ci void prfm(PrefetchOperation op, int64_t imm19) 2151b8021494Sopenharmony_ci 2152b8021494Sopenharmony_ci 2153b8021494Sopenharmony_ci### PRFM ### 2154b8021494Sopenharmony_ci 2155b8021494Sopenharmony_ciPrefetch memory (allowing unallocated hints). 2156b8021494Sopenharmony_ci 2157b8021494Sopenharmony_ci void prfm(int op, 2158b8021494Sopenharmony_ci const MemOperand& addr, 2159b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferScaledOffset) 2160b8021494Sopenharmony_ci 2161b8021494Sopenharmony_ci 2162b8021494Sopenharmony_ci### PRFM ### 2163b8021494Sopenharmony_ci 2164b8021494Sopenharmony_ciPrefetch memory in the literal pool (allowing unallocated hints). 2165b8021494Sopenharmony_ci 2166b8021494Sopenharmony_ci void prfm(int op, RawLiteral* literal) 2167b8021494Sopenharmony_ci 2168b8021494Sopenharmony_ci 2169b8021494Sopenharmony_ci### PRFM ### 2170b8021494Sopenharmony_ci 2171b8021494Sopenharmony_ciPrefetch memory in the literal pool. 2172b8021494Sopenharmony_ci 2173b8021494Sopenharmony_ci void prfm(PrefetchOperation op, RawLiteral* literal) 2174b8021494Sopenharmony_ci 2175b8021494Sopenharmony_ci 2176b8021494Sopenharmony_ci### PRFM ### 2177b8021494Sopenharmony_ci 2178b8021494Sopenharmony_ciPrefetch memory. 2179b8021494Sopenharmony_ci 2180b8021494Sopenharmony_ci void prfm(PrefetchOperation op, 2181b8021494Sopenharmony_ci const MemOperand& addr, 2182b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferScaledOffset) 2183b8021494Sopenharmony_ci 2184b8021494Sopenharmony_ci 2185b8021494Sopenharmony_ci### PRFUM ### 2186b8021494Sopenharmony_ci 2187b8021494Sopenharmony_ciPrefetch memory (with unscaled offset). 2188b8021494Sopenharmony_ci 2189b8021494Sopenharmony_ci void prfum(PrefetchOperation op, 2190b8021494Sopenharmony_ci const MemOperand& addr, 2191b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferUnscaledOffset) 2192b8021494Sopenharmony_ci 2193b8021494Sopenharmony_ci 2194b8021494Sopenharmony_ci### PRFUM ### 2195b8021494Sopenharmony_ci 2196b8021494Sopenharmony_ciPrefetch memory (with unscaled offset, allowing unallocated hints). 2197b8021494Sopenharmony_ci 2198b8021494Sopenharmony_ci void prfum(int op, 2199b8021494Sopenharmony_ci const MemOperand& addr, 2200b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferUnscaledOffset) 2201b8021494Sopenharmony_ci 2202b8021494Sopenharmony_ci 2203b8021494Sopenharmony_ci<a id="integer-r"> 2204b8021494Sopenharmony_ci 2205b8021494Sopenharmony_ci### RBIT ### 2206b8021494Sopenharmony_ci 2207b8021494Sopenharmony_ciBit reverse. 2208b8021494Sopenharmony_ci 2209b8021494Sopenharmony_ci void rbit(const Register& rd, const Register& rn) 2210b8021494Sopenharmony_ci 2211b8021494Sopenharmony_ci 2212b8021494Sopenharmony_ci### RET ### 2213b8021494Sopenharmony_ci 2214b8021494Sopenharmony_ciBranch to register with return hint. 2215b8021494Sopenharmony_ci 2216b8021494Sopenharmony_ci void ret(const Register& xn = lr) 2217b8021494Sopenharmony_ci 2218b8021494Sopenharmony_ci 2219b8021494Sopenharmony_ci### RETAA ### 2220b8021494Sopenharmony_ci 2221b8021494Sopenharmony_ciReturn from subroutine, with pointer authentication. Using key A _(Armv8.3)_. 2222b8021494Sopenharmony_ci 2223b8021494Sopenharmony_ci void retaa() 2224b8021494Sopenharmony_ci 2225b8021494Sopenharmony_ci 2226b8021494Sopenharmony_ci### RETAB ### 2227b8021494Sopenharmony_ci 2228b8021494Sopenharmony_ciReturn from subroutine, with pointer authentication. Using key B _(Armv8.3)_. 2229b8021494Sopenharmony_ci 2230b8021494Sopenharmony_ci void retab() 2231b8021494Sopenharmony_ci 2232b8021494Sopenharmony_ci 2233b8021494Sopenharmony_ci### REV ### 2234b8021494Sopenharmony_ci 2235b8021494Sopenharmony_ciReverse bytes. 2236b8021494Sopenharmony_ci 2237b8021494Sopenharmony_ci void rev(const Register& rd, const Register& rn) 2238b8021494Sopenharmony_ci 2239b8021494Sopenharmony_ci 2240b8021494Sopenharmony_ci### REV16 ### 2241b8021494Sopenharmony_ci 2242b8021494Sopenharmony_ciReverse bytes in 16-bit half words. 2243b8021494Sopenharmony_ci 2244b8021494Sopenharmony_ci void rev16(const Register& rd, const Register& rn) 2245b8021494Sopenharmony_ci 2246b8021494Sopenharmony_ci 2247b8021494Sopenharmony_ci### REV32 ### 2248b8021494Sopenharmony_ci 2249b8021494Sopenharmony_ciReverse bytes in 32-bit words. 2250b8021494Sopenharmony_ci 2251b8021494Sopenharmony_ci void rev32(const Register& xd, const Register& xn) 2252b8021494Sopenharmony_ci 2253b8021494Sopenharmony_ci 2254b8021494Sopenharmony_ci### REV64 ### 2255b8021494Sopenharmony_ci 2256b8021494Sopenharmony_ciReverse bytes in 64-bit general purpose register, an alias for rev _(Armv8.2)_. 2257b8021494Sopenharmony_ci 2258b8021494Sopenharmony_ci void rev64(const Register& xd, const Register& xn) 2259b8021494Sopenharmony_ci 2260b8021494Sopenharmony_ci 2261b8021494Sopenharmony_ci### RMIF ### 2262b8021494Sopenharmony_ci 2263b8021494Sopenharmony_ciRotate register right and insert into NZCV flags under the control of a mask _(Armv8.4)_. 2264b8021494Sopenharmony_ci 2265b8021494Sopenharmony_ci void rmif(const Register& xn, unsigned rotation, StatusFlags flags) 2266b8021494Sopenharmony_ci 2267b8021494Sopenharmony_ci 2268b8021494Sopenharmony_ci### ROR ### 2269b8021494Sopenharmony_ci 2270b8021494Sopenharmony_ciRotate right. 2271b8021494Sopenharmony_ci 2272b8021494Sopenharmony_ci void ror(const Register& rd, const Register& rs, unsigned shift) 2273b8021494Sopenharmony_ci 2274b8021494Sopenharmony_ci 2275b8021494Sopenharmony_ci### RORV ### 2276b8021494Sopenharmony_ci 2277b8021494Sopenharmony_ciRotate right by variable. 2278b8021494Sopenharmony_ci 2279b8021494Sopenharmony_ci void rorv(const Register& rd, const Register& rn, const Register& rm) 2280b8021494Sopenharmony_ci 2281b8021494Sopenharmony_ci 2282b8021494Sopenharmony_ci<a id="integer-s"> 2283b8021494Sopenharmony_ci 2284b8021494Sopenharmony_ci### SBC ### 2285b8021494Sopenharmony_ci 2286b8021494Sopenharmony_ciSubtract with carry bit. 2287b8021494Sopenharmony_ci 2288b8021494Sopenharmony_ci void sbc(const Register& rd, const Register& rn, const Operand& operand) 2289b8021494Sopenharmony_ci 2290b8021494Sopenharmony_ci 2291b8021494Sopenharmony_ci### SBCS ### 2292b8021494Sopenharmony_ci 2293b8021494Sopenharmony_ciSubtract with carry bit and update status flags. 2294b8021494Sopenharmony_ci 2295b8021494Sopenharmony_ci void sbcs(const Register& rd, const Register& rn, const Operand& operand) 2296b8021494Sopenharmony_ci 2297b8021494Sopenharmony_ci 2298b8021494Sopenharmony_ci### SBFIZ ### 2299b8021494Sopenharmony_ci 2300b8021494Sopenharmony_ciSigned bitfield insert with zero at right. 2301b8021494Sopenharmony_ci 2302b8021494Sopenharmony_ci void sbfiz(const Register& rd, 2303b8021494Sopenharmony_ci const Register& rn, 2304b8021494Sopenharmony_ci unsigned lsb, 2305b8021494Sopenharmony_ci unsigned width) 2306b8021494Sopenharmony_ci 2307b8021494Sopenharmony_ci 2308b8021494Sopenharmony_ci### SBFM ### 2309b8021494Sopenharmony_ci 2310b8021494Sopenharmony_ciSigned bitfield move. 2311b8021494Sopenharmony_ci 2312b8021494Sopenharmony_ci void sbfm(const Register& rd, 2313b8021494Sopenharmony_ci const Register& rn, 2314b8021494Sopenharmony_ci unsigned immr, 2315b8021494Sopenharmony_ci unsigned imms) 2316b8021494Sopenharmony_ci 2317b8021494Sopenharmony_ci 2318b8021494Sopenharmony_ci### SBFX ### 2319b8021494Sopenharmony_ci 2320b8021494Sopenharmony_ciSigned bitfield extract. 2321b8021494Sopenharmony_ci 2322b8021494Sopenharmony_ci void sbfx(const Register& rd, 2323b8021494Sopenharmony_ci const Register& rn, 2324b8021494Sopenharmony_ci unsigned lsb, 2325b8021494Sopenharmony_ci unsigned width) 2326b8021494Sopenharmony_ci 2327b8021494Sopenharmony_ci 2328b8021494Sopenharmony_ci### SDIV ### 2329b8021494Sopenharmony_ci 2330b8021494Sopenharmony_ciSigned integer divide. 2331b8021494Sopenharmony_ci 2332b8021494Sopenharmony_ci void sdiv(const Register& rd, const Register& rn, const Register& rm) 2333b8021494Sopenharmony_ci 2334b8021494Sopenharmony_ci 2335b8021494Sopenharmony_ci### SETF16 ### 2336b8021494Sopenharmony_ci 2337b8021494Sopenharmony_ciSet NZCV flags from register, treated as an 16-bit value _(Armv8.4)_. 2338b8021494Sopenharmony_ci 2339b8021494Sopenharmony_ci void setf16(const Register& rn) 2340b8021494Sopenharmony_ci 2341b8021494Sopenharmony_ci 2342b8021494Sopenharmony_ci### SETF8 ### 2343b8021494Sopenharmony_ci 2344b8021494Sopenharmony_ciSet NZCV flags from register, treated as an 8-bit value _(Armv8.4)_. 2345b8021494Sopenharmony_ci 2346b8021494Sopenharmony_ci void setf8(const Register& rn) 2347b8021494Sopenharmony_ci 2348b8021494Sopenharmony_ci 2349b8021494Sopenharmony_ci### SMADDL ### 2350b8021494Sopenharmony_ci 2351b8021494Sopenharmony_ciSigned long multiply and accumulate: 32 x 32 + 64 -> 64-bit. 2352b8021494Sopenharmony_ci 2353b8021494Sopenharmony_ci void smaddl(const Register& xd, 2354b8021494Sopenharmony_ci const Register& wn, 2355b8021494Sopenharmony_ci const Register& wm, 2356b8021494Sopenharmony_ci const Register& xa) 2357b8021494Sopenharmony_ci 2358b8021494Sopenharmony_ci 2359b8021494Sopenharmony_ci### SMSUBL ### 2360b8021494Sopenharmony_ci 2361b8021494Sopenharmony_ciSigned long multiply and subtract: 64 - (32 x 32) -> 64-bit. 2362b8021494Sopenharmony_ci 2363b8021494Sopenharmony_ci void smsubl(const Register& xd, 2364b8021494Sopenharmony_ci const Register& wn, 2365b8021494Sopenharmony_ci const Register& wm, 2366b8021494Sopenharmony_ci const Register& xa) 2367b8021494Sopenharmony_ci 2368b8021494Sopenharmony_ci 2369b8021494Sopenharmony_ci### SMULH ### 2370b8021494Sopenharmony_ci 2371b8021494Sopenharmony_ciSigned multiply high: 64 x 64 -> 64-bit <127:64>. 2372b8021494Sopenharmony_ci 2373b8021494Sopenharmony_ci void smulh(const Register& xd, const Register& xn, const Register& xm) 2374b8021494Sopenharmony_ci 2375b8021494Sopenharmony_ci 2376b8021494Sopenharmony_ci### SMULL ### 2377b8021494Sopenharmony_ci 2378b8021494Sopenharmony_ciSigned long multiply: 32 x 32 -> 64-bit. 2379b8021494Sopenharmony_ci 2380b8021494Sopenharmony_ci void smull(const Register& xd, const Register& wn, const Register& wm) 2381b8021494Sopenharmony_ci 2382b8021494Sopenharmony_ci 2383b8021494Sopenharmony_ci### STADD ### 2384b8021494Sopenharmony_ci 2385b8021494Sopenharmony_ciAtomic add on word or doubleword in memory, without return. _(Armv8.1)_ 2386b8021494Sopenharmony_ci 2387b8021494Sopenharmony_ci void stadd(const Register& rs, const MemOperand& src) 2388b8021494Sopenharmony_ci 2389b8021494Sopenharmony_ci 2390b8021494Sopenharmony_ci### STADDB ### 2391b8021494Sopenharmony_ci 2392b8021494Sopenharmony_ciAtomic add on byte in memory, without return. _(Armv8.1)_ 2393b8021494Sopenharmony_ci 2394b8021494Sopenharmony_ci void staddb(const Register& rs, const MemOperand& src) 2395b8021494Sopenharmony_ci 2396b8021494Sopenharmony_ci 2397b8021494Sopenharmony_ci### STADDH ### 2398b8021494Sopenharmony_ci 2399b8021494Sopenharmony_ciAtomic add on halfword in memory, without return. _(Armv8.1)_ 2400b8021494Sopenharmony_ci 2401b8021494Sopenharmony_ci void staddh(const Register& rs, const MemOperand& src) 2402b8021494Sopenharmony_ci 2403b8021494Sopenharmony_ci 2404b8021494Sopenharmony_ci### STADDL ### 2405b8021494Sopenharmony_ci 2406b8021494Sopenharmony_ciAtomic add on word or doubleword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2407b8021494Sopenharmony_ci 2408b8021494Sopenharmony_ci void staddl(const Register& rs, const MemOperand& src) 2409b8021494Sopenharmony_ci 2410b8021494Sopenharmony_ci 2411b8021494Sopenharmony_ci### STADDLB ### 2412b8021494Sopenharmony_ci 2413b8021494Sopenharmony_ciAtomic add on byte in memory, with Store-release semantics and without return. _(Armv8.1)_ 2414b8021494Sopenharmony_ci 2415b8021494Sopenharmony_ci void staddlb(const Register& rs, const MemOperand& src) 2416b8021494Sopenharmony_ci 2417b8021494Sopenharmony_ci 2418b8021494Sopenharmony_ci### STADDLH ### 2419b8021494Sopenharmony_ci 2420b8021494Sopenharmony_ciAtomic add on halfword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2421b8021494Sopenharmony_ci 2422b8021494Sopenharmony_ci void staddlh(const Register& rs, const MemOperand& src) 2423b8021494Sopenharmony_ci 2424b8021494Sopenharmony_ci 2425b8021494Sopenharmony_ci### STCLR ### 2426b8021494Sopenharmony_ci 2427b8021494Sopenharmony_ciAtomic bit clear on word or doubleword in memory, without return. _(Armv8.1)_ 2428b8021494Sopenharmony_ci 2429b8021494Sopenharmony_ci void stclr(const Register& rs, const MemOperand& src) 2430b8021494Sopenharmony_ci 2431b8021494Sopenharmony_ci 2432b8021494Sopenharmony_ci### STCLRB ### 2433b8021494Sopenharmony_ci 2434b8021494Sopenharmony_ciAtomic bit clear on byte in memory, without return. _(Armv8.1)_ 2435b8021494Sopenharmony_ci 2436b8021494Sopenharmony_ci void stclrb(const Register& rs, const MemOperand& src) 2437b8021494Sopenharmony_ci 2438b8021494Sopenharmony_ci 2439b8021494Sopenharmony_ci### STCLRH ### 2440b8021494Sopenharmony_ci 2441b8021494Sopenharmony_ciAtomic bit clear on halfword in memory, without return. _(Armv8.1)_ 2442b8021494Sopenharmony_ci 2443b8021494Sopenharmony_ci void stclrh(const Register& rs, const MemOperand& src) 2444b8021494Sopenharmony_ci 2445b8021494Sopenharmony_ci 2446b8021494Sopenharmony_ci### STCLRL ### 2447b8021494Sopenharmony_ci 2448b8021494Sopenharmony_ciAtomic bit clear on word or doubleword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2449b8021494Sopenharmony_ci 2450b8021494Sopenharmony_ci void stclrl(const Register& rs, const MemOperand& src) 2451b8021494Sopenharmony_ci 2452b8021494Sopenharmony_ci 2453b8021494Sopenharmony_ci### STCLRLB ### 2454b8021494Sopenharmony_ci 2455b8021494Sopenharmony_ciAtomic bit clear on byte in memory, with Store-release semantics and without return. _(Armv8.1)_ 2456b8021494Sopenharmony_ci 2457b8021494Sopenharmony_ci void stclrlb(const Register& rs, const MemOperand& src) 2458b8021494Sopenharmony_ci 2459b8021494Sopenharmony_ci 2460b8021494Sopenharmony_ci### STCLRLH ### 2461b8021494Sopenharmony_ci 2462b8021494Sopenharmony_ciAtomic bit clear on halfword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2463b8021494Sopenharmony_ci 2464b8021494Sopenharmony_ci void stclrlh(const Register& rs, const MemOperand& src) 2465b8021494Sopenharmony_ci 2466b8021494Sopenharmony_ci 2467b8021494Sopenharmony_ci### STEOR ### 2468b8021494Sopenharmony_ci 2469b8021494Sopenharmony_ciAtomic exclusive OR on word or doubleword in memory, without return. _(Armv8.1)_ 2470b8021494Sopenharmony_ci 2471b8021494Sopenharmony_ci void steor(const Register& rs, const MemOperand& src) 2472b8021494Sopenharmony_ci 2473b8021494Sopenharmony_ci 2474b8021494Sopenharmony_ci### STEORB ### 2475b8021494Sopenharmony_ci 2476b8021494Sopenharmony_ciAtomic exclusive OR on byte in memory, without return. _(Armv8.1)_ 2477b8021494Sopenharmony_ci 2478b8021494Sopenharmony_ci void steorb(const Register& rs, const MemOperand& src) 2479b8021494Sopenharmony_ci 2480b8021494Sopenharmony_ci 2481b8021494Sopenharmony_ci### STEORH ### 2482b8021494Sopenharmony_ci 2483b8021494Sopenharmony_ciAtomic exclusive OR on halfword in memory, without return. _(Armv8.1)_ 2484b8021494Sopenharmony_ci 2485b8021494Sopenharmony_ci void steorh(const Register& rs, const MemOperand& src) 2486b8021494Sopenharmony_ci 2487b8021494Sopenharmony_ci 2488b8021494Sopenharmony_ci### STEORL ### 2489b8021494Sopenharmony_ci 2490b8021494Sopenharmony_ciAtomic exclusive OR on word or doubleword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2491b8021494Sopenharmony_ci 2492b8021494Sopenharmony_ci void steorl(const Register& rs, const MemOperand& src) 2493b8021494Sopenharmony_ci 2494b8021494Sopenharmony_ci 2495b8021494Sopenharmony_ci### STEORLB ### 2496b8021494Sopenharmony_ci 2497b8021494Sopenharmony_ciAtomic exclusive OR on byte in memory, with Store-release semantics and without return. _(Armv8.1)_ 2498b8021494Sopenharmony_ci 2499b8021494Sopenharmony_ci void steorlb(const Register& rs, const MemOperand& src) 2500b8021494Sopenharmony_ci 2501b8021494Sopenharmony_ci 2502b8021494Sopenharmony_ci### STEORLH ### 2503b8021494Sopenharmony_ci 2504b8021494Sopenharmony_ciAtomic exclusive OR on halfword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2505b8021494Sopenharmony_ci 2506b8021494Sopenharmony_ci void steorlh(const Register& rs, const MemOperand& src) 2507b8021494Sopenharmony_ci 2508b8021494Sopenharmony_ci 2509b8021494Sopenharmony_ci### STLLR ### 2510b8021494Sopenharmony_ci 2511b8021494Sopenharmony_ciStore LORelease register _(Armv8.1)_. 2512b8021494Sopenharmony_ci 2513b8021494Sopenharmony_ci void stllr(const Register& rt, const MemOperand& dst) 2514b8021494Sopenharmony_ci 2515b8021494Sopenharmony_ci 2516b8021494Sopenharmony_ci### STLLRB ### 2517b8021494Sopenharmony_ci 2518b8021494Sopenharmony_ciStore LORelease byte _(Armv8.1)_. 2519b8021494Sopenharmony_ci 2520b8021494Sopenharmony_ci void stllrb(const Register& rt, const MemOperand& dst) 2521b8021494Sopenharmony_ci 2522b8021494Sopenharmony_ci 2523b8021494Sopenharmony_ci### STLLRH ### 2524b8021494Sopenharmony_ci 2525b8021494Sopenharmony_ciStore LORelease half-word _(Armv8.1)_. 2526b8021494Sopenharmony_ci 2527b8021494Sopenharmony_ci void stllrh(const Register& rt, const MemOperand& dst) 2528b8021494Sopenharmony_ci 2529b8021494Sopenharmony_ci 2530b8021494Sopenharmony_ci### STLR ### 2531b8021494Sopenharmony_ci 2532b8021494Sopenharmony_ciStore-release register. 2533b8021494Sopenharmony_ci 2534b8021494Sopenharmony_ci void stlr(const Register& rt, const MemOperand& dst) 2535b8021494Sopenharmony_ci 2536b8021494Sopenharmony_ci 2537b8021494Sopenharmony_ci### STLRB ### 2538b8021494Sopenharmony_ci 2539b8021494Sopenharmony_ciStore-release byte. 2540b8021494Sopenharmony_ci 2541b8021494Sopenharmony_ci void stlrb(const Register& rt, const MemOperand& dst) 2542b8021494Sopenharmony_ci 2543b8021494Sopenharmony_ci 2544b8021494Sopenharmony_ci### STLRH ### 2545b8021494Sopenharmony_ci 2546b8021494Sopenharmony_ciStore-release half-word. 2547b8021494Sopenharmony_ci 2548b8021494Sopenharmony_ci void stlrh(const Register& rt, const MemOperand& dst) 2549b8021494Sopenharmony_ci 2550b8021494Sopenharmony_ci 2551b8021494Sopenharmony_ci### STLUR ### 2552b8021494Sopenharmony_ci 2553b8021494Sopenharmony_ciStore-release word or double-word (with unscaled offset) _(Armv8.4)_. 2554b8021494Sopenharmony_ci 2555b8021494Sopenharmony_ci void stlur(const Register& rt, const MemOperand& dst) 2556b8021494Sopenharmony_ci 2557b8021494Sopenharmony_ci 2558b8021494Sopenharmony_ci### STLURB ### 2559b8021494Sopenharmony_ci 2560b8021494Sopenharmony_ciStore-release byte (with unscaled offset) _(Armv8.4)_. 2561b8021494Sopenharmony_ci 2562b8021494Sopenharmony_ci void stlurb(const Register& rt, const MemOperand& dst) 2563b8021494Sopenharmony_ci 2564b8021494Sopenharmony_ci 2565b8021494Sopenharmony_ci### STLURH ### 2566b8021494Sopenharmony_ci 2567b8021494Sopenharmony_ciStore-release half-word (with unscaled offset) _(Armv8.4)_. 2568b8021494Sopenharmony_ci 2569b8021494Sopenharmony_ci void stlurh(const Register& rt, const MemOperand& dst) 2570b8021494Sopenharmony_ci 2571b8021494Sopenharmony_ci 2572b8021494Sopenharmony_ci### STLXP ### 2573b8021494Sopenharmony_ci 2574b8021494Sopenharmony_ciStore-release exclusive register pair. 2575b8021494Sopenharmony_ci 2576b8021494Sopenharmony_ci void stlxp(const Register& rs, 2577b8021494Sopenharmony_ci const Register& rt, 2578b8021494Sopenharmony_ci const Register& rt2, 2579b8021494Sopenharmony_ci const MemOperand& dst) 2580b8021494Sopenharmony_ci 2581b8021494Sopenharmony_ci 2582b8021494Sopenharmony_ci### STLXR ### 2583b8021494Sopenharmony_ci 2584b8021494Sopenharmony_ciStore-release exclusive register. 2585b8021494Sopenharmony_ci 2586b8021494Sopenharmony_ci void stlxr(const Register& rs, const Register& rt, const MemOperand& dst) 2587b8021494Sopenharmony_ci 2588b8021494Sopenharmony_ci 2589b8021494Sopenharmony_ci### STLXRB ### 2590b8021494Sopenharmony_ci 2591b8021494Sopenharmony_ciStore-release exclusive byte. 2592b8021494Sopenharmony_ci 2593b8021494Sopenharmony_ci void stlxrb(const Register& rs, const Register& rt, const MemOperand& dst) 2594b8021494Sopenharmony_ci 2595b8021494Sopenharmony_ci 2596b8021494Sopenharmony_ci### STLXRH ### 2597b8021494Sopenharmony_ci 2598b8021494Sopenharmony_ciStore-release exclusive half-word. 2599b8021494Sopenharmony_ci 2600b8021494Sopenharmony_ci void stlxrh(const Register& rs, const Register& rt, const MemOperand& dst) 2601b8021494Sopenharmony_ci 2602b8021494Sopenharmony_ci 2603b8021494Sopenharmony_ci### STNP ### 2604b8021494Sopenharmony_ci 2605b8021494Sopenharmony_ciStore integer or FP register pair, non-temporal. 2606b8021494Sopenharmony_ci 2607b8021494Sopenharmony_ci void stnp(const CPURegister& rt, 2608b8021494Sopenharmony_ci const CPURegister& rt2, 2609b8021494Sopenharmony_ci const MemOperand& dst) 2610b8021494Sopenharmony_ci 2611b8021494Sopenharmony_ci 2612b8021494Sopenharmony_ci### STP ### 2613b8021494Sopenharmony_ci 2614b8021494Sopenharmony_ciStore integer or FP register pair. 2615b8021494Sopenharmony_ci 2616b8021494Sopenharmony_ci void stp(const CPURegister& rt, 2617b8021494Sopenharmony_ci const CPURegister& rt2, 2618b8021494Sopenharmony_ci const MemOperand& dst) 2619b8021494Sopenharmony_ci 2620b8021494Sopenharmony_ci 2621b8021494Sopenharmony_ci### STR ### 2622b8021494Sopenharmony_ci 2623b8021494Sopenharmony_ciStore integer or FP register. 2624b8021494Sopenharmony_ci 2625b8021494Sopenharmony_ci void str(const CPURegister& rt, 2626b8021494Sopenharmony_ci const MemOperand& dst, 2627b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferScaledOffset) 2628b8021494Sopenharmony_ci 2629b8021494Sopenharmony_ci 2630b8021494Sopenharmony_ci### STRB ### 2631b8021494Sopenharmony_ci 2632b8021494Sopenharmony_ciStore byte. 2633b8021494Sopenharmony_ci 2634b8021494Sopenharmony_ci void strb(const Register& rt, 2635b8021494Sopenharmony_ci const MemOperand& dst, 2636b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferScaledOffset) 2637b8021494Sopenharmony_ci 2638b8021494Sopenharmony_ci 2639b8021494Sopenharmony_ci### STRH ### 2640b8021494Sopenharmony_ci 2641b8021494Sopenharmony_ciStore half-word. 2642b8021494Sopenharmony_ci 2643b8021494Sopenharmony_ci void strh(const Register& rt, 2644b8021494Sopenharmony_ci const MemOperand& dst, 2645b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferScaledOffset) 2646b8021494Sopenharmony_ci 2647b8021494Sopenharmony_ci 2648b8021494Sopenharmony_ci### STSET ### 2649b8021494Sopenharmony_ci 2650b8021494Sopenharmony_ciAtomic bit set on word or doubleword in memory, without return. _(Armv8.1)_ 2651b8021494Sopenharmony_ci 2652b8021494Sopenharmony_ci void stset(const Register& rs, const MemOperand& src) 2653b8021494Sopenharmony_ci 2654b8021494Sopenharmony_ci 2655b8021494Sopenharmony_ci### STSETB ### 2656b8021494Sopenharmony_ci 2657b8021494Sopenharmony_ciAtomic bit set on byte in memory, without return. _(Armv8.1)_ 2658b8021494Sopenharmony_ci 2659b8021494Sopenharmony_ci void stsetb(const Register& rs, const MemOperand& src) 2660b8021494Sopenharmony_ci 2661b8021494Sopenharmony_ci 2662b8021494Sopenharmony_ci### STSETH ### 2663b8021494Sopenharmony_ci 2664b8021494Sopenharmony_ciAtomic bit set on halfword in memory, without return. _(Armv8.1)_ 2665b8021494Sopenharmony_ci 2666b8021494Sopenharmony_ci void stseth(const Register& rs, const MemOperand& src) 2667b8021494Sopenharmony_ci 2668b8021494Sopenharmony_ci 2669b8021494Sopenharmony_ci### STSETL ### 2670b8021494Sopenharmony_ci 2671b8021494Sopenharmony_ciAtomic bit set on word or doubleword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2672b8021494Sopenharmony_ci 2673b8021494Sopenharmony_ci void stsetl(const Register& rs, const MemOperand& src) 2674b8021494Sopenharmony_ci 2675b8021494Sopenharmony_ci 2676b8021494Sopenharmony_ci### STSETLB ### 2677b8021494Sopenharmony_ci 2678b8021494Sopenharmony_ciAtomic bit set on byte in memory, with Store-release semantics and without return. _(Armv8.1)_ 2679b8021494Sopenharmony_ci 2680b8021494Sopenharmony_ci void stsetlb(const Register& rs, const MemOperand& src) 2681b8021494Sopenharmony_ci 2682b8021494Sopenharmony_ci 2683b8021494Sopenharmony_ci### STSETLH ### 2684b8021494Sopenharmony_ci 2685b8021494Sopenharmony_ciAtomic bit set on halfword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2686b8021494Sopenharmony_ci 2687b8021494Sopenharmony_ci void stsetlh(const Register& rs, const MemOperand& src) 2688b8021494Sopenharmony_ci 2689b8021494Sopenharmony_ci 2690b8021494Sopenharmony_ci### STSMAX ### 2691b8021494Sopenharmony_ci 2692b8021494Sopenharmony_ciAtomic signed maximum on word or doubleword in memory, without return. _(Armv8.1)_ 2693b8021494Sopenharmony_ci 2694b8021494Sopenharmony_ci void stsmax(const Register& rs, const MemOperand& src) 2695b8021494Sopenharmony_ci 2696b8021494Sopenharmony_ci 2697b8021494Sopenharmony_ci### STSMAXB ### 2698b8021494Sopenharmony_ci 2699b8021494Sopenharmony_ciAtomic signed maximum on byte in memory, without return. _(Armv8.1)_ 2700b8021494Sopenharmony_ci 2701b8021494Sopenharmony_ci void stsmaxb(const Register& rs, const MemOperand& src) 2702b8021494Sopenharmony_ci 2703b8021494Sopenharmony_ci 2704b8021494Sopenharmony_ci### STSMAXH ### 2705b8021494Sopenharmony_ci 2706b8021494Sopenharmony_ciAtomic signed maximum on halfword in memory, without return. _(Armv8.1)_ 2707b8021494Sopenharmony_ci 2708b8021494Sopenharmony_ci void stsmaxh(const Register& rs, const MemOperand& src) 2709b8021494Sopenharmony_ci 2710b8021494Sopenharmony_ci 2711b8021494Sopenharmony_ci### STSMAXL ### 2712b8021494Sopenharmony_ci 2713b8021494Sopenharmony_ciAtomic signed maximum on word or doubleword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2714b8021494Sopenharmony_ci 2715b8021494Sopenharmony_ci void stsmaxl(const Register& rs, const MemOperand& src) 2716b8021494Sopenharmony_ci 2717b8021494Sopenharmony_ci 2718b8021494Sopenharmony_ci### STSMAXLB ### 2719b8021494Sopenharmony_ci 2720b8021494Sopenharmony_ciAtomic signed maximum on byte in memory, with Store-release semantics and without return. _(Armv8.1)_ 2721b8021494Sopenharmony_ci 2722b8021494Sopenharmony_ci void stsmaxlb(const Register& rs, const MemOperand& src) 2723b8021494Sopenharmony_ci 2724b8021494Sopenharmony_ci 2725b8021494Sopenharmony_ci### STSMAXLH ### 2726b8021494Sopenharmony_ci 2727b8021494Sopenharmony_ciAtomic signed maximum on halfword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2728b8021494Sopenharmony_ci 2729b8021494Sopenharmony_ci void stsmaxlh(const Register& rs, const MemOperand& src) 2730b8021494Sopenharmony_ci 2731b8021494Sopenharmony_ci 2732b8021494Sopenharmony_ci### STSMIN ### 2733b8021494Sopenharmony_ci 2734b8021494Sopenharmony_ciAtomic signed minimum on word or doubleword in memory, without return. _(Armv8.1)_ 2735b8021494Sopenharmony_ci 2736b8021494Sopenharmony_ci void stsmin(const Register& rs, const MemOperand& src) 2737b8021494Sopenharmony_ci 2738b8021494Sopenharmony_ci 2739b8021494Sopenharmony_ci### STSMINB ### 2740b8021494Sopenharmony_ci 2741b8021494Sopenharmony_ciAtomic signed minimum on byte in memory, without return. _(Armv8.1)_ 2742b8021494Sopenharmony_ci 2743b8021494Sopenharmony_ci void stsminb(const Register& rs, const MemOperand& src) 2744b8021494Sopenharmony_ci 2745b8021494Sopenharmony_ci 2746b8021494Sopenharmony_ci### STSMINH ### 2747b8021494Sopenharmony_ci 2748b8021494Sopenharmony_ciAtomic signed minimum on halfword in memory, without return. _(Armv8.1)_ 2749b8021494Sopenharmony_ci 2750b8021494Sopenharmony_ci void stsminh(const Register& rs, const MemOperand& src) 2751b8021494Sopenharmony_ci 2752b8021494Sopenharmony_ci 2753b8021494Sopenharmony_ci### STSMINL ### 2754b8021494Sopenharmony_ci 2755b8021494Sopenharmony_ciAtomic signed minimum on word or doubleword in memory, with Store-release semantics and without return. semantics _(Armv8.1)_ 2756b8021494Sopenharmony_ci 2757b8021494Sopenharmony_ci void stsminl(const Register& rs, const MemOperand& src) 2758b8021494Sopenharmony_ci 2759b8021494Sopenharmony_ci 2760b8021494Sopenharmony_ci### STSMINLB ### 2761b8021494Sopenharmony_ci 2762b8021494Sopenharmony_ciAtomic signed minimum on byte in memory, with Store-release semantics and without return. _(Armv8.1)_ 2763b8021494Sopenharmony_ci 2764b8021494Sopenharmony_ci void stsminlb(const Register& rs, const MemOperand& src) 2765b8021494Sopenharmony_ci 2766b8021494Sopenharmony_ci 2767b8021494Sopenharmony_ci### STSMINLH ### 2768b8021494Sopenharmony_ci 2769b8021494Sopenharmony_ciAtomic signed minimum on halfword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2770b8021494Sopenharmony_ci 2771b8021494Sopenharmony_ci void stsminlh(const Register& rs, const MemOperand& src) 2772b8021494Sopenharmony_ci 2773b8021494Sopenharmony_ci 2774b8021494Sopenharmony_ci### STUMAX ### 2775b8021494Sopenharmony_ci 2776b8021494Sopenharmony_ciAtomic unsigned maximum on word or doubleword in memory, without return. _(Armv8.1)_ 2777b8021494Sopenharmony_ci 2778b8021494Sopenharmony_ci void stumax(const Register& rs, const MemOperand& src) 2779b8021494Sopenharmony_ci 2780b8021494Sopenharmony_ci 2781b8021494Sopenharmony_ci### STUMAXB ### 2782b8021494Sopenharmony_ci 2783b8021494Sopenharmony_ciAtomic unsigned maximum on byte in memory, without return. _(Armv8.1)_ 2784b8021494Sopenharmony_ci 2785b8021494Sopenharmony_ci void stumaxb(const Register& rs, const MemOperand& src) 2786b8021494Sopenharmony_ci 2787b8021494Sopenharmony_ci 2788b8021494Sopenharmony_ci### STUMAXH ### 2789b8021494Sopenharmony_ci 2790b8021494Sopenharmony_ciAtomic unsigned maximum on halfword in memory, without return. _(Armv8.1)_ 2791b8021494Sopenharmony_ci 2792b8021494Sopenharmony_ci void stumaxh(const Register& rs, const MemOperand& src) 2793b8021494Sopenharmony_ci 2794b8021494Sopenharmony_ci 2795b8021494Sopenharmony_ci### STUMAXL ### 2796b8021494Sopenharmony_ci 2797b8021494Sopenharmony_ciAtomic unsigned maximum on word or doubleword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2798b8021494Sopenharmony_ci 2799b8021494Sopenharmony_ci void stumaxl(const Register& rs, const MemOperand& src) 2800b8021494Sopenharmony_ci 2801b8021494Sopenharmony_ci 2802b8021494Sopenharmony_ci### STUMAXLB ### 2803b8021494Sopenharmony_ci 2804b8021494Sopenharmony_ciAtomic unsigned maximum on byte in memory, with Store-release semantics and without return. _(Armv8.1)_ 2805b8021494Sopenharmony_ci 2806b8021494Sopenharmony_ci void stumaxlb(const Register& rs, const MemOperand& src) 2807b8021494Sopenharmony_ci 2808b8021494Sopenharmony_ci 2809b8021494Sopenharmony_ci### STUMAXLH ### 2810b8021494Sopenharmony_ci 2811b8021494Sopenharmony_ciAtomic unsigned maximum on halfword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2812b8021494Sopenharmony_ci 2813b8021494Sopenharmony_ci void stumaxlh(const Register& rs, const MemOperand& src) 2814b8021494Sopenharmony_ci 2815b8021494Sopenharmony_ci 2816b8021494Sopenharmony_ci### STUMIN ### 2817b8021494Sopenharmony_ci 2818b8021494Sopenharmony_ciAtomic unsigned minimum on word or doubleword in memory, without return. _(Armv8.1)_ 2819b8021494Sopenharmony_ci 2820b8021494Sopenharmony_ci void stumin(const Register& rs, const MemOperand& src) 2821b8021494Sopenharmony_ci 2822b8021494Sopenharmony_ci 2823b8021494Sopenharmony_ci### STUMINB ### 2824b8021494Sopenharmony_ci 2825b8021494Sopenharmony_ciAtomic unsigned minimum on byte in memory, without return. _(Armv8.1)_ 2826b8021494Sopenharmony_ci 2827b8021494Sopenharmony_ci void stuminb(const Register& rs, const MemOperand& src) 2828b8021494Sopenharmony_ci 2829b8021494Sopenharmony_ci 2830b8021494Sopenharmony_ci### STUMINH ### 2831b8021494Sopenharmony_ci 2832b8021494Sopenharmony_ciAtomic unsigned minimum on halfword in memory, without return. _(Armv8.1)_ 2833b8021494Sopenharmony_ci 2834b8021494Sopenharmony_ci void stuminh(const Register& rs, const MemOperand& src) 2835b8021494Sopenharmony_ci 2836b8021494Sopenharmony_ci 2837b8021494Sopenharmony_ci### STUMINL ### 2838b8021494Sopenharmony_ci 2839b8021494Sopenharmony_ciAtomic unsigned minimum on word or doubleword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2840b8021494Sopenharmony_ci 2841b8021494Sopenharmony_ci void stuminl(const Register& rs, const MemOperand& src) 2842b8021494Sopenharmony_ci 2843b8021494Sopenharmony_ci 2844b8021494Sopenharmony_ci### STUMINLB ### 2845b8021494Sopenharmony_ci 2846b8021494Sopenharmony_ciAtomic unsigned minimum on byte in memory, with Store-release semantics and without return. _(Armv8.1)_ 2847b8021494Sopenharmony_ci 2848b8021494Sopenharmony_ci void stuminlb(const Register& rs, const MemOperand& src) 2849b8021494Sopenharmony_ci 2850b8021494Sopenharmony_ci 2851b8021494Sopenharmony_ci### STUMINLH ### 2852b8021494Sopenharmony_ci 2853b8021494Sopenharmony_ciAtomic unsigned minimum on halfword in memory, with Store-release semantics and without return. _(Armv8.1)_ 2854b8021494Sopenharmony_ci 2855b8021494Sopenharmony_ci void stuminlh(const Register& rs, const MemOperand& src) 2856b8021494Sopenharmony_ci 2857b8021494Sopenharmony_ci 2858b8021494Sopenharmony_ci### STUR ### 2859b8021494Sopenharmony_ci 2860b8021494Sopenharmony_ciStore integer or FP register (with unscaled offset). 2861b8021494Sopenharmony_ci 2862b8021494Sopenharmony_ci void stur(const CPURegister& rt, 2863b8021494Sopenharmony_ci const MemOperand& src, 2864b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferUnscaledOffset) 2865b8021494Sopenharmony_ci 2866b8021494Sopenharmony_ci 2867b8021494Sopenharmony_ci### STURB ### 2868b8021494Sopenharmony_ci 2869b8021494Sopenharmony_ciStore byte (with unscaled offset). 2870b8021494Sopenharmony_ci 2871b8021494Sopenharmony_ci void sturb(const Register& rt, 2872b8021494Sopenharmony_ci const MemOperand& dst, 2873b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferUnscaledOffset) 2874b8021494Sopenharmony_ci 2875b8021494Sopenharmony_ci 2876b8021494Sopenharmony_ci### STURH ### 2877b8021494Sopenharmony_ci 2878b8021494Sopenharmony_ciStore half-word (with unscaled offset). 2879b8021494Sopenharmony_ci 2880b8021494Sopenharmony_ci void sturh(const Register& rt, 2881b8021494Sopenharmony_ci const MemOperand& dst, 2882b8021494Sopenharmony_ci LoadStoreScalingOption option = PreferUnscaledOffset) 2883b8021494Sopenharmony_ci 2884b8021494Sopenharmony_ci 2885b8021494Sopenharmony_ci### STXP ### 2886b8021494Sopenharmony_ci 2887b8021494Sopenharmony_ciStore exclusive register pair. 2888b8021494Sopenharmony_ci 2889b8021494Sopenharmony_ci void stxp(const Register& rs, 2890b8021494Sopenharmony_ci const Register& rt, 2891b8021494Sopenharmony_ci const Register& rt2, 2892b8021494Sopenharmony_ci const MemOperand& dst) 2893b8021494Sopenharmony_ci 2894b8021494Sopenharmony_ci 2895b8021494Sopenharmony_ci### STXR ### 2896b8021494Sopenharmony_ci 2897b8021494Sopenharmony_ciStore exclusive register. 2898b8021494Sopenharmony_ci 2899b8021494Sopenharmony_ci void stxr(const Register& rs, const Register& rt, const MemOperand& dst) 2900b8021494Sopenharmony_ci 2901b8021494Sopenharmony_ci 2902b8021494Sopenharmony_ci### STXRB ### 2903b8021494Sopenharmony_ci 2904b8021494Sopenharmony_ciStore exclusive byte. 2905b8021494Sopenharmony_ci 2906b8021494Sopenharmony_ci void stxrb(const Register& rs, const Register& rt, const MemOperand& dst) 2907b8021494Sopenharmony_ci 2908b8021494Sopenharmony_ci 2909b8021494Sopenharmony_ci### STXRH ### 2910b8021494Sopenharmony_ci 2911b8021494Sopenharmony_ciStore exclusive half-word. 2912b8021494Sopenharmony_ci 2913b8021494Sopenharmony_ci void stxrh(const Register& rs, const Register& rt, const MemOperand& dst) 2914b8021494Sopenharmony_ci 2915b8021494Sopenharmony_ci 2916b8021494Sopenharmony_ci### SUB ### 2917b8021494Sopenharmony_ci 2918b8021494Sopenharmony_ciSubtract. 2919b8021494Sopenharmony_ci 2920b8021494Sopenharmony_ci void sub(const Register& rd, const Register& rn, const Operand& operand) 2921b8021494Sopenharmony_ci 2922b8021494Sopenharmony_ci 2923b8021494Sopenharmony_ci### SUBS ### 2924b8021494Sopenharmony_ci 2925b8021494Sopenharmony_ciSubtract and update status flags. 2926b8021494Sopenharmony_ci 2927b8021494Sopenharmony_ci void subs(const Register& rd, const Register& rn, const Operand& operand) 2928b8021494Sopenharmony_ci 2929b8021494Sopenharmony_ci 2930b8021494Sopenharmony_ci### SVC ### 2931b8021494Sopenharmony_ci 2932b8021494Sopenharmony_ciGenerate exception targeting EL1. 2933b8021494Sopenharmony_ci 2934b8021494Sopenharmony_ci void svc(int code) 2935b8021494Sopenharmony_ci 2936b8021494Sopenharmony_ci 2937b8021494Sopenharmony_ci### SWP ### 2938b8021494Sopenharmony_ci 2939b8021494Sopenharmony_ciSwap word or doubleword in memory _(Armv8.1)_ 2940b8021494Sopenharmony_ci 2941b8021494Sopenharmony_ci void swp(const Register& rs, const Register& rt, const MemOperand& src) 2942b8021494Sopenharmony_ci 2943b8021494Sopenharmony_ci 2944b8021494Sopenharmony_ci### SWPA ### 2945b8021494Sopenharmony_ci 2946b8021494Sopenharmony_ciSwap word or doubleword in memory, with Load-acquire semantics _(Armv8.1)_ 2947b8021494Sopenharmony_ci 2948b8021494Sopenharmony_ci void swpa(const Register& rs, const Register& rt, const MemOperand& src) 2949b8021494Sopenharmony_ci 2950b8021494Sopenharmony_ci 2951b8021494Sopenharmony_ci### SWPAB ### 2952b8021494Sopenharmony_ci 2953b8021494Sopenharmony_ciSwap byte in memory, with Load-acquire semantics _(Armv8.1)_ 2954b8021494Sopenharmony_ci 2955b8021494Sopenharmony_ci void swpab(const Register& rs, const Register& rt, const MemOperand& src) 2956b8021494Sopenharmony_ci 2957b8021494Sopenharmony_ci 2958b8021494Sopenharmony_ci### SWPAH ### 2959b8021494Sopenharmony_ci 2960b8021494Sopenharmony_ciSwap halfword in memory, with Load-acquire semantics _(Armv8.1)_ 2961b8021494Sopenharmony_ci 2962b8021494Sopenharmony_ci void swpah(const Register& rs, const Register& rt, const MemOperand& src) 2963b8021494Sopenharmony_ci 2964b8021494Sopenharmony_ci 2965b8021494Sopenharmony_ci### SWPAL ### 2966b8021494Sopenharmony_ci 2967b8021494Sopenharmony_ciSwap word or doubleword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 2968b8021494Sopenharmony_ci 2969b8021494Sopenharmony_ci void swpal(const Register& rs, const Register& rt, const MemOperand& src) 2970b8021494Sopenharmony_ci 2971b8021494Sopenharmony_ci 2972b8021494Sopenharmony_ci### SWPALB ### 2973b8021494Sopenharmony_ci 2974b8021494Sopenharmony_ciSwap byte in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 2975b8021494Sopenharmony_ci 2976b8021494Sopenharmony_ci void swpalb(const Register& rs, const Register& rt, const MemOperand& src) 2977b8021494Sopenharmony_ci 2978b8021494Sopenharmony_ci 2979b8021494Sopenharmony_ci### SWPALH ### 2980b8021494Sopenharmony_ci 2981b8021494Sopenharmony_ciSwap halfword in memory, with Load-acquire and Store-release semantics _(Armv8.1)_ 2982b8021494Sopenharmony_ci 2983b8021494Sopenharmony_ci void swpalh(const Register& rs, const Register& rt, const MemOperand& src) 2984b8021494Sopenharmony_ci 2985b8021494Sopenharmony_ci 2986b8021494Sopenharmony_ci### SWPB ### 2987b8021494Sopenharmony_ci 2988b8021494Sopenharmony_ciSwap byte in memory _(Armv8.1)_ 2989b8021494Sopenharmony_ci 2990b8021494Sopenharmony_ci void swpb(const Register& rs, const Register& rt, const MemOperand& src) 2991b8021494Sopenharmony_ci 2992b8021494Sopenharmony_ci 2993b8021494Sopenharmony_ci### SWPH ### 2994b8021494Sopenharmony_ci 2995b8021494Sopenharmony_ciSwap halfword in memory _(Armv8.1)_ 2996b8021494Sopenharmony_ci 2997b8021494Sopenharmony_ci void swph(const Register& rs, const Register& rt, const MemOperand& src) 2998b8021494Sopenharmony_ci 2999b8021494Sopenharmony_ci 3000b8021494Sopenharmony_ci### SWPL ### 3001b8021494Sopenharmony_ci 3002b8021494Sopenharmony_ciSwap word or doubleword in memory, with Store-release semantics _(Armv8.1)_ 3003b8021494Sopenharmony_ci 3004b8021494Sopenharmony_ci void swpl(const Register& rs, const Register& rt, const MemOperand& src) 3005b8021494Sopenharmony_ci 3006b8021494Sopenharmony_ci 3007b8021494Sopenharmony_ci### SWPLB ### 3008b8021494Sopenharmony_ci 3009b8021494Sopenharmony_ciSwap byte in memory, with Store-release semantics _(Armv8.1)_ 3010b8021494Sopenharmony_ci 3011b8021494Sopenharmony_ci void swplb(const Register& rs, const Register& rt, const MemOperand& src) 3012b8021494Sopenharmony_ci 3013b8021494Sopenharmony_ci 3014b8021494Sopenharmony_ci### SWPLH ### 3015b8021494Sopenharmony_ci 3016b8021494Sopenharmony_ciSwap halfword in memory, with Store-release semantics _(Armv8.1)_ 3017b8021494Sopenharmony_ci 3018b8021494Sopenharmony_ci void swplh(const Register& rs, const Register& rt, const MemOperand& src) 3019b8021494Sopenharmony_ci 3020b8021494Sopenharmony_ci 3021b8021494Sopenharmony_ci### SXTB ### 3022b8021494Sopenharmony_ci 3023b8021494Sopenharmony_ciSigned extend byte. 3024b8021494Sopenharmony_ci 3025b8021494Sopenharmony_ci void sxtb(const Register& rd, const Register& rn) 3026b8021494Sopenharmony_ci 3027b8021494Sopenharmony_ci 3028b8021494Sopenharmony_ci### SXTH ### 3029b8021494Sopenharmony_ci 3030b8021494Sopenharmony_ciSigned extend halfword. 3031b8021494Sopenharmony_ci 3032b8021494Sopenharmony_ci void sxth(const Register& rd, const Register& rn) 3033b8021494Sopenharmony_ci 3034b8021494Sopenharmony_ci 3035b8021494Sopenharmony_ci### SXTW ### 3036b8021494Sopenharmony_ci 3037b8021494Sopenharmony_ciSigned extend word. 3038b8021494Sopenharmony_ci 3039b8021494Sopenharmony_ci void sxtw(const Register& rd, const Register& rn) 3040b8021494Sopenharmony_ci 3041b8021494Sopenharmony_ci 3042b8021494Sopenharmony_ci### SYS ### 3043b8021494Sopenharmony_ci 3044b8021494Sopenharmony_ciSystem instruction with pre-encoded op (op1:crn:crm:op2). 3045b8021494Sopenharmony_ci 3046b8021494Sopenharmony_ci void sys(int op, const Register& xt = xzr) 3047b8021494Sopenharmony_ci 3048b8021494Sopenharmony_ci 3049b8021494Sopenharmony_ci### SYS ### 3050b8021494Sopenharmony_ci 3051b8021494Sopenharmony_ciSystem instruction. 3052b8021494Sopenharmony_ci 3053b8021494Sopenharmony_ci void sys(int op1, int crn, int crm, int op2, const Register& xt = xzr) 3054b8021494Sopenharmony_ci 3055b8021494Sopenharmony_ci 3056b8021494Sopenharmony_ci<a id="integer-t"> 3057b8021494Sopenharmony_ci 3058b8021494Sopenharmony_ci### TBNZ ### 3059b8021494Sopenharmony_ci 3060b8021494Sopenharmony_ciTest bit and branch to PC offset if not zero. 3061b8021494Sopenharmony_ci 3062b8021494Sopenharmony_ci void tbnz(const Register& rt, unsigned bit_pos, int64_t imm14) 3063b8021494Sopenharmony_ci 3064b8021494Sopenharmony_ci 3065b8021494Sopenharmony_ci### TBNZ ### 3066b8021494Sopenharmony_ci 3067b8021494Sopenharmony_ciTest bit and branch to label if not zero. 3068b8021494Sopenharmony_ci 3069b8021494Sopenharmony_ci void tbnz(const Register& rt, unsigned bit_pos, Label* label) 3070b8021494Sopenharmony_ci 3071b8021494Sopenharmony_ci 3072b8021494Sopenharmony_ci### TBZ ### 3073b8021494Sopenharmony_ci 3074b8021494Sopenharmony_ciTest bit and branch to PC offset if zero. 3075b8021494Sopenharmony_ci 3076b8021494Sopenharmony_ci void tbz(const Register& rt, unsigned bit_pos, int64_t imm14) 3077b8021494Sopenharmony_ci 3078b8021494Sopenharmony_ci 3079b8021494Sopenharmony_ci### TBZ ### 3080b8021494Sopenharmony_ci 3081b8021494Sopenharmony_ciTest bit and branch to label if zero. 3082b8021494Sopenharmony_ci 3083b8021494Sopenharmony_ci void tbz(const Register& rt, unsigned bit_pos, Label* label) 3084b8021494Sopenharmony_ci 3085b8021494Sopenharmony_ci 3086b8021494Sopenharmony_ci### TST ### 3087b8021494Sopenharmony_ci 3088b8021494Sopenharmony_ciBit test and set flags. 3089b8021494Sopenharmony_ci 3090b8021494Sopenharmony_ci void tst(const Register& rn, const Operand& operand) 3091b8021494Sopenharmony_ci 3092b8021494Sopenharmony_ci 3093b8021494Sopenharmony_ci<a id="integer-u"> 3094b8021494Sopenharmony_ci 3095b8021494Sopenharmony_ci### UBFIZ ### 3096b8021494Sopenharmony_ci 3097b8021494Sopenharmony_ciUnsigned bitfield insert with zero at right. 3098b8021494Sopenharmony_ci 3099b8021494Sopenharmony_ci void ubfiz(const Register& rd, 3100b8021494Sopenharmony_ci const Register& rn, 3101b8021494Sopenharmony_ci unsigned lsb, 3102b8021494Sopenharmony_ci unsigned width) 3103b8021494Sopenharmony_ci 3104b8021494Sopenharmony_ci 3105b8021494Sopenharmony_ci### UBFM ### 3106b8021494Sopenharmony_ci 3107b8021494Sopenharmony_ciUnsigned bitfield move. 3108b8021494Sopenharmony_ci 3109b8021494Sopenharmony_ci void ubfm(const Register& rd, 3110b8021494Sopenharmony_ci const Register& rn, 3111b8021494Sopenharmony_ci unsigned immr, 3112b8021494Sopenharmony_ci unsigned imms) 3113b8021494Sopenharmony_ci 3114b8021494Sopenharmony_ci 3115b8021494Sopenharmony_ci### UBFX ### 3116b8021494Sopenharmony_ci 3117b8021494Sopenharmony_ciUnsigned bitfield extract. 3118b8021494Sopenharmony_ci 3119b8021494Sopenharmony_ci void ubfx(const Register& rd, 3120b8021494Sopenharmony_ci const Register& rn, 3121b8021494Sopenharmony_ci unsigned lsb, 3122b8021494Sopenharmony_ci unsigned width) 3123b8021494Sopenharmony_ci 3124b8021494Sopenharmony_ci 3125b8021494Sopenharmony_ci### UDF ### 3126b8021494Sopenharmony_ci 3127b8021494Sopenharmony_ciGenerate undefined instruction exception. 3128b8021494Sopenharmony_ci 3129b8021494Sopenharmony_ci void udf(int code) 3130b8021494Sopenharmony_ci 3131b8021494Sopenharmony_ci 3132b8021494Sopenharmony_ci### UDIV ### 3133b8021494Sopenharmony_ci 3134b8021494Sopenharmony_ciUnsigned integer divide. 3135b8021494Sopenharmony_ci 3136b8021494Sopenharmony_ci void udiv(const Register& rd, const Register& rn, const Register& rm) 3137b8021494Sopenharmony_ci 3138b8021494Sopenharmony_ci 3139b8021494Sopenharmony_ci### UMADDL ### 3140b8021494Sopenharmony_ci 3141b8021494Sopenharmony_ciUnsigned long multiply and accumulate: 32 x 32 + 64 -> 64-bit. 3142b8021494Sopenharmony_ci 3143b8021494Sopenharmony_ci void umaddl(const Register& xd, 3144b8021494Sopenharmony_ci const Register& wn, 3145b8021494Sopenharmony_ci const Register& wm, 3146b8021494Sopenharmony_ci const Register& xa) 3147b8021494Sopenharmony_ci 3148b8021494Sopenharmony_ci 3149b8021494Sopenharmony_ci### UMSUBL ### 3150b8021494Sopenharmony_ci 3151b8021494Sopenharmony_ciUnsigned long multiply and subtract: 64 - (32 x 32) -> 64-bit. 3152b8021494Sopenharmony_ci 3153b8021494Sopenharmony_ci void umsubl(const Register& xd, 3154b8021494Sopenharmony_ci const Register& wn, 3155b8021494Sopenharmony_ci const Register& wm, 3156b8021494Sopenharmony_ci const Register& xa) 3157b8021494Sopenharmony_ci 3158b8021494Sopenharmony_ci 3159b8021494Sopenharmony_ci### UMULH ### 3160b8021494Sopenharmony_ci 3161b8021494Sopenharmony_ciUnsigned multiply high: 64 x 64 -> 64-bit <127:64>. 3162b8021494Sopenharmony_ci 3163b8021494Sopenharmony_ci void umulh(const Register& xd, const Register& xn, const Register& xm) 3164b8021494Sopenharmony_ci 3165b8021494Sopenharmony_ci 3166b8021494Sopenharmony_ci### UMULL ### 3167b8021494Sopenharmony_ci 3168b8021494Sopenharmony_ciUnsigned long multiply: 32 x 32 -> 64-bit. 3169b8021494Sopenharmony_ci 3170b8021494Sopenharmony_ci void umull(const Register& xd, const Register& wn, const Register& wm) 3171b8021494Sopenharmony_ci 3172b8021494Sopenharmony_ci 3173b8021494Sopenharmony_ci### UXTB ### 3174b8021494Sopenharmony_ci 3175b8021494Sopenharmony_ciUnsigned extend byte. 3176b8021494Sopenharmony_ci 3177b8021494Sopenharmony_ci void uxtb(const Register& rd, const Register& rn) 3178b8021494Sopenharmony_ci 3179b8021494Sopenharmony_ci 3180b8021494Sopenharmony_ci### UXTH ### 3181b8021494Sopenharmony_ci 3182b8021494Sopenharmony_ciUnsigned extend halfword. 3183b8021494Sopenharmony_ci 3184b8021494Sopenharmony_ci void uxth(const Register& rd, const Register& rn) 3185b8021494Sopenharmony_ci 3186b8021494Sopenharmony_ci 3187b8021494Sopenharmony_ci### UXTW ### 3188b8021494Sopenharmony_ci 3189b8021494Sopenharmony_ciUnsigned extend word. 3190b8021494Sopenharmony_ci 3191b8021494Sopenharmony_ci void uxtw(const Register& rd, const Register& rn) 3192b8021494Sopenharmony_ci 3193b8021494Sopenharmony_ci 3194b8021494Sopenharmony_ci<a id="integer-x"> 3195b8021494Sopenharmony_ci 3196b8021494Sopenharmony_ci### XAFLAG ### 3197b8021494Sopenharmony_ci 3198b8021494Sopenharmony_ciConvert floating-point condition flags from alternative format to Arm format _(Armv8.5)_. 3199b8021494Sopenharmony_ci 3200b8021494Sopenharmony_ci void xaflag() 3201b8021494Sopenharmony_ci 3202b8021494Sopenharmony_ci 3203b8021494Sopenharmony_ci### XPACD ### 3204b8021494Sopenharmony_ci 3205b8021494Sopenharmony_ciStrip Pointer Authentication Code of Data address _(Armv8.3)_. 3206b8021494Sopenharmony_ci 3207b8021494Sopenharmony_ci void xpacd(const Register& xd) 3208b8021494Sopenharmony_ci 3209b8021494Sopenharmony_ci 3210b8021494Sopenharmony_ci### XPACI ### 3211b8021494Sopenharmony_ci 3212b8021494Sopenharmony_ciStrip Pointer Authentication Code of Instruction address _(Armv8.3)_. 3213b8021494Sopenharmony_ci 3214b8021494Sopenharmony_ci void xpaci(const Register& xd) 3215b8021494Sopenharmony_ci 3216b8021494Sopenharmony_ci 3217b8021494Sopenharmony_ci### XPACLRI ### 3218b8021494Sopenharmony_ci 3219b8021494Sopenharmony_ciStrip Pointer Authentication Code of Instruction address in LR _(Armv8.3)_. 3220b8021494Sopenharmony_ci 3221b8021494Sopenharmony_ci void xpaclri() 3222b8021494Sopenharmony_ci 3223b8021494Sopenharmony_ci 3224b8021494Sopenharmony_ci 3225b8021494Sopenharmony_ciAArch64 floating point and NEON instructions 3226b8021494Sopenharmony_ci-------------------------------------------- 3227b8021494Sopenharmony_ci 3228b8021494Sopenharmony_ci<a id="float-a"> 3229b8021494Sopenharmony_ci 3230b8021494Sopenharmony_ci### ABS ### 3231b8021494Sopenharmony_ci 3232b8021494Sopenharmony_ciAbsolute value. 3233b8021494Sopenharmony_ci 3234b8021494Sopenharmony_ci void abs(const VRegister& vd, const VRegister& vn) 3235b8021494Sopenharmony_ci 3236b8021494Sopenharmony_ci 3237b8021494Sopenharmony_ci### ADD ### 3238b8021494Sopenharmony_ci 3239b8021494Sopenharmony_ciAdd. 3240b8021494Sopenharmony_ci 3241b8021494Sopenharmony_ci void add(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3242b8021494Sopenharmony_ci 3243b8021494Sopenharmony_ci 3244b8021494Sopenharmony_ci### ADDHN ### 3245b8021494Sopenharmony_ci 3246b8021494Sopenharmony_ciAdd narrow returning high half. 3247b8021494Sopenharmony_ci 3248b8021494Sopenharmony_ci void addhn(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3249b8021494Sopenharmony_ci 3250b8021494Sopenharmony_ci 3251b8021494Sopenharmony_ci### ADDHN2 ### 3252b8021494Sopenharmony_ci 3253b8021494Sopenharmony_ciAdd narrow returning high half (second part). 3254b8021494Sopenharmony_ci 3255b8021494Sopenharmony_ci void addhn2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3256b8021494Sopenharmony_ci 3257b8021494Sopenharmony_ci 3258b8021494Sopenharmony_ci### ADDP ### 3259b8021494Sopenharmony_ci 3260b8021494Sopenharmony_ciAdd pair of elements scalar. 3261b8021494Sopenharmony_ci 3262b8021494Sopenharmony_ci void addp(const VRegister& vd, const VRegister& vn) 3263b8021494Sopenharmony_ci 3264b8021494Sopenharmony_ci 3265b8021494Sopenharmony_ci### ADDP ### 3266b8021494Sopenharmony_ci 3267b8021494Sopenharmony_ciAdd pairwise. 3268b8021494Sopenharmony_ci 3269b8021494Sopenharmony_ci void addp(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3270b8021494Sopenharmony_ci 3271b8021494Sopenharmony_ci 3272b8021494Sopenharmony_ci### ADDV ### 3273b8021494Sopenharmony_ci 3274b8021494Sopenharmony_ciAdd across vector. 3275b8021494Sopenharmony_ci 3276b8021494Sopenharmony_ci void addv(const VRegister& vd, const VRegister& vn) 3277b8021494Sopenharmony_ci 3278b8021494Sopenharmony_ci 3279b8021494Sopenharmony_ci### AND ### 3280b8021494Sopenharmony_ci 3281b8021494Sopenharmony_ciBitwise and. 3282b8021494Sopenharmony_ci 3283b8021494Sopenharmony_ci void and_(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3284b8021494Sopenharmony_ci 3285b8021494Sopenharmony_ci 3286b8021494Sopenharmony_ci<a id="float-b"> 3287b8021494Sopenharmony_ci 3288b8021494Sopenharmony_ci### BIC ### 3289b8021494Sopenharmony_ci 3290b8021494Sopenharmony_ciBit clear immediate. 3291b8021494Sopenharmony_ci 3292b8021494Sopenharmony_ci void bic(const VRegister& vd, const int imm8, const int left_shift = 0) 3293b8021494Sopenharmony_ci 3294b8021494Sopenharmony_ci 3295b8021494Sopenharmony_ci### BIC ### 3296b8021494Sopenharmony_ci 3297b8021494Sopenharmony_ciBit clear. 3298b8021494Sopenharmony_ci 3299b8021494Sopenharmony_ci void bic(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3300b8021494Sopenharmony_ci 3301b8021494Sopenharmony_ci 3302b8021494Sopenharmony_ci### BIF ### 3303b8021494Sopenharmony_ci 3304b8021494Sopenharmony_ciBitwise insert if false. 3305b8021494Sopenharmony_ci 3306b8021494Sopenharmony_ci void bif(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3307b8021494Sopenharmony_ci 3308b8021494Sopenharmony_ci 3309b8021494Sopenharmony_ci### BIT ### 3310b8021494Sopenharmony_ci 3311b8021494Sopenharmony_ciBitwise insert if true. 3312b8021494Sopenharmony_ci 3313b8021494Sopenharmony_ci void bit(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3314b8021494Sopenharmony_ci 3315b8021494Sopenharmony_ci 3316b8021494Sopenharmony_ci### BSL ### 3317b8021494Sopenharmony_ci 3318b8021494Sopenharmony_ciBitwise select. 3319b8021494Sopenharmony_ci 3320b8021494Sopenharmony_ci void bsl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3321b8021494Sopenharmony_ci 3322b8021494Sopenharmony_ci 3323b8021494Sopenharmony_ci<a id="float-c"> 3324b8021494Sopenharmony_ci 3325b8021494Sopenharmony_ci### CLS ### 3326b8021494Sopenharmony_ci 3327b8021494Sopenharmony_ciCount leading sign bits. 3328b8021494Sopenharmony_ci 3329b8021494Sopenharmony_ci void cls(const VRegister& vd, const VRegister& vn) 3330b8021494Sopenharmony_ci 3331b8021494Sopenharmony_ci 3332b8021494Sopenharmony_ci### CLZ ### 3333b8021494Sopenharmony_ci 3334b8021494Sopenharmony_ciCount leading zero bits (vector). 3335b8021494Sopenharmony_ci 3336b8021494Sopenharmony_ci void clz(const VRegister& vd, const VRegister& vn) 3337b8021494Sopenharmony_ci 3338b8021494Sopenharmony_ci 3339b8021494Sopenharmony_ci### CMEQ ### 3340b8021494Sopenharmony_ci 3341b8021494Sopenharmony_ciCompare bitwise to zero. 3342b8021494Sopenharmony_ci 3343b8021494Sopenharmony_ci void cmeq(const VRegister& vd, const VRegister& vn, int value) 3344b8021494Sopenharmony_ci 3345b8021494Sopenharmony_ci 3346b8021494Sopenharmony_ci### CMEQ ### 3347b8021494Sopenharmony_ci 3348b8021494Sopenharmony_ciCompare equal. 3349b8021494Sopenharmony_ci 3350b8021494Sopenharmony_ci void cmeq(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3351b8021494Sopenharmony_ci 3352b8021494Sopenharmony_ci 3353b8021494Sopenharmony_ci### CMGE ### 3354b8021494Sopenharmony_ci 3355b8021494Sopenharmony_ciCompare signed greater than or equal to zero. 3356b8021494Sopenharmony_ci 3357b8021494Sopenharmony_ci void cmge(const VRegister& vd, const VRegister& vn, int value) 3358b8021494Sopenharmony_ci 3359b8021494Sopenharmony_ci 3360b8021494Sopenharmony_ci### CMGE ### 3361b8021494Sopenharmony_ci 3362b8021494Sopenharmony_ciCompare signed greater than or equal. 3363b8021494Sopenharmony_ci 3364b8021494Sopenharmony_ci void cmge(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3365b8021494Sopenharmony_ci 3366b8021494Sopenharmony_ci 3367b8021494Sopenharmony_ci### CMGT ### 3368b8021494Sopenharmony_ci 3369b8021494Sopenharmony_ciCompare signed greater than zero. 3370b8021494Sopenharmony_ci 3371b8021494Sopenharmony_ci void cmgt(const VRegister& vd, const VRegister& vn, int value) 3372b8021494Sopenharmony_ci 3373b8021494Sopenharmony_ci 3374b8021494Sopenharmony_ci### CMGT ### 3375b8021494Sopenharmony_ci 3376b8021494Sopenharmony_ciCompare signed greater than. 3377b8021494Sopenharmony_ci 3378b8021494Sopenharmony_ci void cmgt(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3379b8021494Sopenharmony_ci 3380b8021494Sopenharmony_ci 3381b8021494Sopenharmony_ci### CMHI ### 3382b8021494Sopenharmony_ci 3383b8021494Sopenharmony_ciCompare unsigned higher. 3384b8021494Sopenharmony_ci 3385b8021494Sopenharmony_ci void cmhi(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3386b8021494Sopenharmony_ci 3387b8021494Sopenharmony_ci 3388b8021494Sopenharmony_ci### CMHS ### 3389b8021494Sopenharmony_ci 3390b8021494Sopenharmony_ciCompare unsigned higher or same. 3391b8021494Sopenharmony_ci 3392b8021494Sopenharmony_ci void cmhs(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3393b8021494Sopenharmony_ci 3394b8021494Sopenharmony_ci 3395b8021494Sopenharmony_ci### CMLE ### 3396b8021494Sopenharmony_ci 3397b8021494Sopenharmony_ciCompare signed less than or equal to zero. 3398b8021494Sopenharmony_ci 3399b8021494Sopenharmony_ci void cmle(const VRegister& vd, const VRegister& vn, int value) 3400b8021494Sopenharmony_ci 3401b8021494Sopenharmony_ci 3402b8021494Sopenharmony_ci### CMLT ### 3403b8021494Sopenharmony_ci 3404b8021494Sopenharmony_ciCompare signed less than zero. 3405b8021494Sopenharmony_ci 3406b8021494Sopenharmony_ci void cmlt(const VRegister& vd, const VRegister& vn, int value) 3407b8021494Sopenharmony_ci 3408b8021494Sopenharmony_ci 3409b8021494Sopenharmony_ci### CMTST ### 3410b8021494Sopenharmony_ci 3411b8021494Sopenharmony_ciCompare bitwise test bits nonzero. 3412b8021494Sopenharmony_ci 3413b8021494Sopenharmony_ci void cmtst(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3414b8021494Sopenharmony_ci 3415b8021494Sopenharmony_ci 3416b8021494Sopenharmony_ci### CNT ### 3417b8021494Sopenharmony_ci 3418b8021494Sopenharmony_ciPopulation count per byte. 3419b8021494Sopenharmony_ci 3420b8021494Sopenharmony_ci void cnt(const VRegister& vd, const VRegister& vn) 3421b8021494Sopenharmony_ci 3422b8021494Sopenharmony_ci 3423b8021494Sopenharmony_ci<a id="float-d"> 3424b8021494Sopenharmony_ci 3425b8021494Sopenharmony_ci### DUP ### 3426b8021494Sopenharmony_ci 3427b8021494Sopenharmony_ciDuplicate general-purpose register to vector. 3428b8021494Sopenharmony_ci 3429b8021494Sopenharmony_ci void dup(const VRegister& vd, const Register& rn) 3430b8021494Sopenharmony_ci 3431b8021494Sopenharmony_ci 3432b8021494Sopenharmony_ci### DUP ### 3433b8021494Sopenharmony_ci 3434b8021494Sopenharmony_ciDuplicate vector element to vector or scalar. 3435b8021494Sopenharmony_ci 3436b8021494Sopenharmony_ci void dup(const VRegister& vd, const VRegister& vn, int vn_index) 3437b8021494Sopenharmony_ci 3438b8021494Sopenharmony_ci 3439b8021494Sopenharmony_ci<a id="float-e"> 3440b8021494Sopenharmony_ci 3441b8021494Sopenharmony_ci### EOR ### 3442b8021494Sopenharmony_ci 3443b8021494Sopenharmony_ciBitwise eor. 3444b8021494Sopenharmony_ci 3445b8021494Sopenharmony_ci void eor(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3446b8021494Sopenharmony_ci 3447b8021494Sopenharmony_ci 3448b8021494Sopenharmony_ci### EXT ### 3449b8021494Sopenharmony_ci 3450b8021494Sopenharmony_ciExtract vector from pair of vectors. 3451b8021494Sopenharmony_ci 3452b8021494Sopenharmony_ci void ext(const VRegister& vd, 3453b8021494Sopenharmony_ci const VRegister& vn, 3454b8021494Sopenharmony_ci const VRegister& vm, 3455b8021494Sopenharmony_ci int index) 3456b8021494Sopenharmony_ci 3457b8021494Sopenharmony_ci 3458b8021494Sopenharmony_ci<a id="float-f"> 3459b8021494Sopenharmony_ci 3460b8021494Sopenharmony_ci### FABD ### 3461b8021494Sopenharmony_ci 3462b8021494Sopenharmony_ciFP absolute difference. 3463b8021494Sopenharmony_ci 3464b8021494Sopenharmony_ci void fabd(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3465b8021494Sopenharmony_ci 3466b8021494Sopenharmony_ci 3467b8021494Sopenharmony_ci### FABS ### 3468b8021494Sopenharmony_ci 3469b8021494Sopenharmony_ciFP absolute. 3470b8021494Sopenharmony_ci 3471b8021494Sopenharmony_ci void fabs(const VRegister& vd, const VRegister& vn) 3472b8021494Sopenharmony_ci 3473b8021494Sopenharmony_ci 3474b8021494Sopenharmony_ci### FACGE ### 3475b8021494Sopenharmony_ci 3476b8021494Sopenharmony_ciFP absolute greater than or equal. 3477b8021494Sopenharmony_ci 3478b8021494Sopenharmony_ci void facge(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3479b8021494Sopenharmony_ci 3480b8021494Sopenharmony_ci 3481b8021494Sopenharmony_ci### FACGT ### 3482b8021494Sopenharmony_ci 3483b8021494Sopenharmony_ciFP absolute greater than. 3484b8021494Sopenharmony_ci 3485b8021494Sopenharmony_ci void facgt(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3486b8021494Sopenharmony_ci 3487b8021494Sopenharmony_ci 3488b8021494Sopenharmony_ci### FADD ### 3489b8021494Sopenharmony_ci 3490b8021494Sopenharmony_ciFP add. 3491b8021494Sopenharmony_ci 3492b8021494Sopenharmony_ci void fadd(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3493b8021494Sopenharmony_ci 3494b8021494Sopenharmony_ci 3495b8021494Sopenharmony_ci### FADDP ### 3496b8021494Sopenharmony_ci 3497b8021494Sopenharmony_ciFP pairwise add scalar. 3498b8021494Sopenharmony_ci 3499b8021494Sopenharmony_ci void faddp(const VRegister& vd, const VRegister& vn) 3500b8021494Sopenharmony_ci 3501b8021494Sopenharmony_ci 3502b8021494Sopenharmony_ci### FADDP ### 3503b8021494Sopenharmony_ci 3504b8021494Sopenharmony_ciFP pairwise add vector. 3505b8021494Sopenharmony_ci 3506b8021494Sopenharmony_ci void faddp(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3507b8021494Sopenharmony_ci 3508b8021494Sopenharmony_ci 3509b8021494Sopenharmony_ci### FCADD ### 3510b8021494Sopenharmony_ci 3511b8021494Sopenharmony_ciFP complex add _(Armv8.3)_. 3512b8021494Sopenharmony_ci 3513b8021494Sopenharmony_ci void fcadd(const VRegister& vd, 3514b8021494Sopenharmony_ci const VRegister& vn, 3515b8021494Sopenharmony_ci const VRegister& vm, 3516b8021494Sopenharmony_ci int rot) 3517b8021494Sopenharmony_ci 3518b8021494Sopenharmony_ci 3519b8021494Sopenharmony_ci### FCCMP ### 3520b8021494Sopenharmony_ci 3521b8021494Sopenharmony_ciFP conditional compare. 3522b8021494Sopenharmony_ci 3523b8021494Sopenharmony_ci void fccmp(const VRegister& vn, 3524b8021494Sopenharmony_ci const VRegister& vm, 3525b8021494Sopenharmony_ci StatusFlags nzcv, 3526b8021494Sopenharmony_ci Condition cond) 3527b8021494Sopenharmony_ci 3528b8021494Sopenharmony_ci 3529b8021494Sopenharmony_ci### FCCMPE ### 3530b8021494Sopenharmony_ci 3531b8021494Sopenharmony_ciFP conditional signaling compare. 3532b8021494Sopenharmony_ci 3533b8021494Sopenharmony_ci void fccmpe(const VRegister& vn, 3534b8021494Sopenharmony_ci const VRegister& vm, 3535b8021494Sopenharmony_ci StatusFlags nzcv, 3536b8021494Sopenharmony_ci Condition cond) 3537b8021494Sopenharmony_ci 3538b8021494Sopenharmony_ci 3539b8021494Sopenharmony_ci### FCMEQ ### 3540b8021494Sopenharmony_ci 3541b8021494Sopenharmony_ciFP compare equal to zero. 3542b8021494Sopenharmony_ci 3543b8021494Sopenharmony_ci void fcmeq(const VRegister& vd, const VRegister& vn, double imm) 3544b8021494Sopenharmony_ci 3545b8021494Sopenharmony_ci 3546b8021494Sopenharmony_ci### FCMEQ ### 3547b8021494Sopenharmony_ci 3548b8021494Sopenharmony_ciFP compare equal. 3549b8021494Sopenharmony_ci 3550b8021494Sopenharmony_ci void fcmeq(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3551b8021494Sopenharmony_ci 3552b8021494Sopenharmony_ci 3553b8021494Sopenharmony_ci### FCMGE ### 3554b8021494Sopenharmony_ci 3555b8021494Sopenharmony_ciFP greater than or equal to zero. 3556b8021494Sopenharmony_ci 3557b8021494Sopenharmony_ci void fcmge(const VRegister& vd, const VRegister& vn, double imm) 3558b8021494Sopenharmony_ci 3559b8021494Sopenharmony_ci 3560b8021494Sopenharmony_ci### FCMGE ### 3561b8021494Sopenharmony_ci 3562b8021494Sopenharmony_ciFP greater than or equal. 3563b8021494Sopenharmony_ci 3564b8021494Sopenharmony_ci void fcmge(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3565b8021494Sopenharmony_ci 3566b8021494Sopenharmony_ci 3567b8021494Sopenharmony_ci### FCMGT ### 3568b8021494Sopenharmony_ci 3569b8021494Sopenharmony_ciFP greater than zero. 3570b8021494Sopenharmony_ci 3571b8021494Sopenharmony_ci void fcmgt(const VRegister& vd, const VRegister& vn, double imm) 3572b8021494Sopenharmony_ci 3573b8021494Sopenharmony_ci 3574b8021494Sopenharmony_ci### FCMGT ### 3575b8021494Sopenharmony_ci 3576b8021494Sopenharmony_ciFP greater than. 3577b8021494Sopenharmony_ci 3578b8021494Sopenharmony_ci void fcmgt(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3579b8021494Sopenharmony_ci 3580b8021494Sopenharmony_ci 3581b8021494Sopenharmony_ci### FCMLA ### 3582b8021494Sopenharmony_ci 3583b8021494Sopenharmony_ciFP complex multiply accumulate (by element) _(Armv8.3)_. 3584b8021494Sopenharmony_ci 3585b8021494Sopenharmony_ci void fcmla(const VRegister& vd, 3586b8021494Sopenharmony_ci const VRegister& vn, 3587b8021494Sopenharmony_ci const VRegister& vm, 3588b8021494Sopenharmony_ci int vm_index, 3589b8021494Sopenharmony_ci int rot) 3590b8021494Sopenharmony_ci 3591b8021494Sopenharmony_ci 3592b8021494Sopenharmony_ci### FCMLA ### 3593b8021494Sopenharmony_ci 3594b8021494Sopenharmony_ciFP complex multiply accumulate _(Armv8.3)_. 3595b8021494Sopenharmony_ci 3596b8021494Sopenharmony_ci void fcmla(const VRegister& vd, 3597b8021494Sopenharmony_ci const VRegister& vn, 3598b8021494Sopenharmony_ci const VRegister& vm, 3599b8021494Sopenharmony_ci int rot) 3600b8021494Sopenharmony_ci 3601b8021494Sopenharmony_ci 3602b8021494Sopenharmony_ci### FCMLE ### 3603b8021494Sopenharmony_ci 3604b8021494Sopenharmony_ciFP less than or equal to zero. 3605b8021494Sopenharmony_ci 3606b8021494Sopenharmony_ci void fcmle(const VRegister& vd, const VRegister& vn, double imm) 3607b8021494Sopenharmony_ci 3608b8021494Sopenharmony_ci 3609b8021494Sopenharmony_ci### FCMLT ### 3610b8021494Sopenharmony_ci 3611b8021494Sopenharmony_ciFP less than to zero. 3612b8021494Sopenharmony_ci 3613b8021494Sopenharmony_ci void fcmlt(const VRegister& vd, const VRegister& vn, double imm) 3614b8021494Sopenharmony_ci 3615b8021494Sopenharmony_ci 3616b8021494Sopenharmony_ci### FCMP ### 3617b8021494Sopenharmony_ci 3618b8021494Sopenharmony_ciFP compare immediate. 3619b8021494Sopenharmony_ci 3620b8021494Sopenharmony_ci void fcmp(const VRegister& vn, double value) 3621b8021494Sopenharmony_ci 3622b8021494Sopenharmony_ci 3623b8021494Sopenharmony_ci### FCMP ### 3624b8021494Sopenharmony_ci 3625b8021494Sopenharmony_ciFP compare registers. 3626b8021494Sopenharmony_ci 3627b8021494Sopenharmony_ci void fcmp(const VRegister& vn, const VRegister& vm) 3628b8021494Sopenharmony_ci 3629b8021494Sopenharmony_ci 3630b8021494Sopenharmony_ci### FCMPE ### 3631b8021494Sopenharmony_ci 3632b8021494Sopenharmony_ciFP signaling compare immediate. 3633b8021494Sopenharmony_ci 3634b8021494Sopenharmony_ci void fcmpe(const VRegister& vn, double value) 3635b8021494Sopenharmony_ci 3636b8021494Sopenharmony_ci 3637b8021494Sopenharmony_ci### FCMPE ### 3638b8021494Sopenharmony_ci 3639b8021494Sopenharmony_ciFP signaling compare registers. 3640b8021494Sopenharmony_ci 3641b8021494Sopenharmony_ci void fcmpe(const VRegister& vn, const VRegister& vm) 3642b8021494Sopenharmony_ci 3643b8021494Sopenharmony_ci 3644b8021494Sopenharmony_ci### FCSEL ### 3645b8021494Sopenharmony_ci 3646b8021494Sopenharmony_ciFP conditional select. 3647b8021494Sopenharmony_ci 3648b8021494Sopenharmony_ci void fcsel(const VRegister& vd, 3649b8021494Sopenharmony_ci const VRegister& vn, 3650b8021494Sopenharmony_ci const VRegister& vm, 3651b8021494Sopenharmony_ci Condition cond) 3652b8021494Sopenharmony_ci 3653b8021494Sopenharmony_ci 3654b8021494Sopenharmony_ci### FCVT ### 3655b8021494Sopenharmony_ci 3656b8021494Sopenharmony_ciFP convert between precisions. 3657b8021494Sopenharmony_ci 3658b8021494Sopenharmony_ci void fcvt(const VRegister& vd, const VRegister& vn) 3659b8021494Sopenharmony_ci 3660b8021494Sopenharmony_ci 3661b8021494Sopenharmony_ci### FCVTAS ### 3662b8021494Sopenharmony_ci 3663b8021494Sopenharmony_ciFP convert to signed integer, nearest with ties to away. 3664b8021494Sopenharmony_ci 3665b8021494Sopenharmony_ci void fcvtas(const Register& rd, const VRegister& vn) 3666b8021494Sopenharmony_ci 3667b8021494Sopenharmony_ci 3668b8021494Sopenharmony_ci### FCVTAS ### 3669b8021494Sopenharmony_ci 3670b8021494Sopenharmony_ciFP convert to signed integer, nearest with ties to away. 3671b8021494Sopenharmony_ci 3672b8021494Sopenharmony_ci void fcvtas(const VRegister& vd, const VRegister& vn) 3673b8021494Sopenharmony_ci 3674b8021494Sopenharmony_ci 3675b8021494Sopenharmony_ci### FCVTAU ### 3676b8021494Sopenharmony_ci 3677b8021494Sopenharmony_ciFP convert to unsigned integer, nearest with ties to away. 3678b8021494Sopenharmony_ci 3679b8021494Sopenharmony_ci void fcvtau(const Register& rd, const VRegister& vn) 3680b8021494Sopenharmony_ci 3681b8021494Sopenharmony_ci 3682b8021494Sopenharmony_ci### FCVTAU ### 3683b8021494Sopenharmony_ci 3684b8021494Sopenharmony_ciFP convert to unsigned integer, nearest with ties to away. 3685b8021494Sopenharmony_ci 3686b8021494Sopenharmony_ci void fcvtau(const VRegister& vd, const VRegister& vn) 3687b8021494Sopenharmony_ci 3688b8021494Sopenharmony_ci 3689b8021494Sopenharmony_ci### FCVTL ### 3690b8021494Sopenharmony_ci 3691b8021494Sopenharmony_ciFP convert to higher precision. 3692b8021494Sopenharmony_ci 3693b8021494Sopenharmony_ci void fcvtl(const VRegister& vd, const VRegister& vn) 3694b8021494Sopenharmony_ci 3695b8021494Sopenharmony_ci 3696b8021494Sopenharmony_ci### FCVTL2 ### 3697b8021494Sopenharmony_ci 3698b8021494Sopenharmony_ciFP convert to higher precision (second part). 3699b8021494Sopenharmony_ci 3700b8021494Sopenharmony_ci void fcvtl2(const VRegister& vd, const VRegister& vn) 3701b8021494Sopenharmony_ci 3702b8021494Sopenharmony_ci 3703b8021494Sopenharmony_ci### FCVTMS ### 3704b8021494Sopenharmony_ci 3705b8021494Sopenharmony_ciFP convert to signed integer, round towards -infinity. 3706b8021494Sopenharmony_ci 3707b8021494Sopenharmony_ci void fcvtms(const Register& rd, const VRegister& vn) 3708b8021494Sopenharmony_ci 3709b8021494Sopenharmony_ci 3710b8021494Sopenharmony_ci### FCVTMS ### 3711b8021494Sopenharmony_ci 3712b8021494Sopenharmony_ciFP convert to signed integer, round towards -infinity. 3713b8021494Sopenharmony_ci 3714b8021494Sopenharmony_ci void fcvtms(const VRegister& vd, const VRegister& vn) 3715b8021494Sopenharmony_ci 3716b8021494Sopenharmony_ci 3717b8021494Sopenharmony_ci### FCVTMU ### 3718b8021494Sopenharmony_ci 3719b8021494Sopenharmony_ciFP convert to unsigned integer, round towards -infinity. 3720b8021494Sopenharmony_ci 3721b8021494Sopenharmony_ci void fcvtmu(const Register& rd, const VRegister& vn) 3722b8021494Sopenharmony_ci 3723b8021494Sopenharmony_ci 3724b8021494Sopenharmony_ci### FCVTMU ### 3725b8021494Sopenharmony_ci 3726b8021494Sopenharmony_ciFP convert to unsigned integer, round towards -infinity. 3727b8021494Sopenharmony_ci 3728b8021494Sopenharmony_ci void fcvtmu(const VRegister& vd, const VRegister& vn) 3729b8021494Sopenharmony_ci 3730b8021494Sopenharmony_ci 3731b8021494Sopenharmony_ci### FCVTN ### 3732b8021494Sopenharmony_ci 3733b8021494Sopenharmony_ciFP convert to lower precision. 3734b8021494Sopenharmony_ci 3735b8021494Sopenharmony_ci void fcvtn(const VRegister& vd, const VRegister& vn) 3736b8021494Sopenharmony_ci 3737b8021494Sopenharmony_ci 3738b8021494Sopenharmony_ci### FCVTN2 ### 3739b8021494Sopenharmony_ci 3740b8021494Sopenharmony_ciFP convert to lower prevision (second part). 3741b8021494Sopenharmony_ci 3742b8021494Sopenharmony_ci void fcvtn2(const VRegister& vd, const VRegister& vn) 3743b8021494Sopenharmony_ci 3744b8021494Sopenharmony_ci 3745b8021494Sopenharmony_ci### FCVTNS ### 3746b8021494Sopenharmony_ci 3747b8021494Sopenharmony_ciFP convert to signed integer, nearest with ties to even. 3748b8021494Sopenharmony_ci 3749b8021494Sopenharmony_ci void fcvtns(const Register& rd, const VRegister& vn) 3750b8021494Sopenharmony_ci 3751b8021494Sopenharmony_ci 3752b8021494Sopenharmony_ci### FCVTNS ### 3753b8021494Sopenharmony_ci 3754b8021494Sopenharmony_ciFP convert to signed integer, nearest with ties to even. 3755b8021494Sopenharmony_ci 3756b8021494Sopenharmony_ci void fcvtns(const VRegister& rd, const VRegister& vn) 3757b8021494Sopenharmony_ci 3758b8021494Sopenharmony_ci 3759b8021494Sopenharmony_ci### FCVTNU ### 3760b8021494Sopenharmony_ci 3761b8021494Sopenharmony_ciFP convert to unsigned integer, nearest with ties to even. 3762b8021494Sopenharmony_ci 3763b8021494Sopenharmony_ci void fcvtnu(const Register& rd, const VRegister& vn) 3764b8021494Sopenharmony_ci 3765b8021494Sopenharmony_ci 3766b8021494Sopenharmony_ci### FCVTNU ### 3767b8021494Sopenharmony_ci 3768b8021494Sopenharmony_ciFP convert to unsigned integer, nearest with ties to even. 3769b8021494Sopenharmony_ci 3770b8021494Sopenharmony_ci void fcvtnu(const VRegister& rd, const VRegister& vn) 3771b8021494Sopenharmony_ci 3772b8021494Sopenharmony_ci 3773b8021494Sopenharmony_ci### FCVTPS ### 3774b8021494Sopenharmony_ci 3775b8021494Sopenharmony_ciFP convert to signed integer, round towards +infinity. 3776b8021494Sopenharmony_ci 3777b8021494Sopenharmony_ci void fcvtps(const Register& rd, const VRegister& vn) 3778b8021494Sopenharmony_ci 3779b8021494Sopenharmony_ci 3780b8021494Sopenharmony_ci### FCVTPS ### 3781b8021494Sopenharmony_ci 3782b8021494Sopenharmony_ciFP convert to signed integer, round towards +infinity. 3783b8021494Sopenharmony_ci 3784b8021494Sopenharmony_ci void fcvtps(const VRegister& vd, const VRegister& vn) 3785b8021494Sopenharmony_ci 3786b8021494Sopenharmony_ci 3787b8021494Sopenharmony_ci### FCVTPU ### 3788b8021494Sopenharmony_ci 3789b8021494Sopenharmony_ciFP convert to unsigned integer, round towards +infinity. 3790b8021494Sopenharmony_ci 3791b8021494Sopenharmony_ci void fcvtpu(const Register& rd, const VRegister& vn) 3792b8021494Sopenharmony_ci 3793b8021494Sopenharmony_ci 3794b8021494Sopenharmony_ci### FCVTPU ### 3795b8021494Sopenharmony_ci 3796b8021494Sopenharmony_ciFP convert to unsigned integer, round towards +infinity. 3797b8021494Sopenharmony_ci 3798b8021494Sopenharmony_ci void fcvtpu(const VRegister& vd, const VRegister& vn) 3799b8021494Sopenharmony_ci 3800b8021494Sopenharmony_ci 3801b8021494Sopenharmony_ci### FCVTXN ### 3802b8021494Sopenharmony_ci 3803b8021494Sopenharmony_ciFP convert to lower precision, rounding to odd. 3804b8021494Sopenharmony_ci 3805b8021494Sopenharmony_ci void fcvtxn(const VRegister& vd, const VRegister& vn) 3806b8021494Sopenharmony_ci 3807b8021494Sopenharmony_ci 3808b8021494Sopenharmony_ci### FCVTXN2 ### 3809b8021494Sopenharmony_ci 3810b8021494Sopenharmony_ciFP convert to lower precision, rounding to odd (second part). 3811b8021494Sopenharmony_ci 3812b8021494Sopenharmony_ci void fcvtxn2(const VRegister& vd, const VRegister& vn) 3813b8021494Sopenharmony_ci 3814b8021494Sopenharmony_ci 3815b8021494Sopenharmony_ci### FCVTZS ### 3816b8021494Sopenharmony_ci 3817b8021494Sopenharmony_ciFP convert to signed integer or fixed-point, round towards zero. 3818b8021494Sopenharmony_ci 3819b8021494Sopenharmony_ci void fcvtzs(const Register& rd, const VRegister& vn, int fbits = 0) 3820b8021494Sopenharmony_ci 3821b8021494Sopenharmony_ci 3822b8021494Sopenharmony_ci### FCVTZS ### 3823b8021494Sopenharmony_ci 3824b8021494Sopenharmony_ciFP convert to signed integer or fixed-point, round towards zero. 3825b8021494Sopenharmony_ci 3826b8021494Sopenharmony_ci void fcvtzs(const VRegister& vd, const VRegister& vn, int fbits = 0) 3827b8021494Sopenharmony_ci 3828b8021494Sopenharmony_ci 3829b8021494Sopenharmony_ci### FCVTZU ### 3830b8021494Sopenharmony_ci 3831b8021494Sopenharmony_ciFP convert to unsigned integer or fixed-point, round towards zero. 3832b8021494Sopenharmony_ci 3833b8021494Sopenharmony_ci void fcvtzu(const Register& rd, const VRegister& vn, int fbits = 0) 3834b8021494Sopenharmony_ci 3835b8021494Sopenharmony_ci 3836b8021494Sopenharmony_ci### FCVTZU ### 3837b8021494Sopenharmony_ci 3838b8021494Sopenharmony_ciFP convert to unsigned integer or fixed-point, round towards zero. 3839b8021494Sopenharmony_ci 3840b8021494Sopenharmony_ci void fcvtzu(const VRegister& vd, const VRegister& vn, int fbits = 0) 3841b8021494Sopenharmony_ci 3842b8021494Sopenharmony_ci 3843b8021494Sopenharmony_ci### FDIV ### 3844b8021494Sopenharmony_ci 3845b8021494Sopenharmony_ciFP divide. 3846b8021494Sopenharmony_ci 3847b8021494Sopenharmony_ci void fdiv(const VRegister& vd, const VRegister& fn, const VRegister& vm) 3848b8021494Sopenharmony_ci 3849b8021494Sopenharmony_ci 3850b8021494Sopenharmony_ci### FJCVTZS ### 3851b8021494Sopenharmony_ci 3852b8021494Sopenharmony_ciFP JavaScript convert to signed integer, rounding toward zero _(Armv8.3)_. 3853b8021494Sopenharmony_ci 3854b8021494Sopenharmony_ci void fjcvtzs(const Register& rd, const VRegister& vn) 3855b8021494Sopenharmony_ci 3856b8021494Sopenharmony_ci 3857b8021494Sopenharmony_ci### FMADD ### 3858b8021494Sopenharmony_ci 3859b8021494Sopenharmony_ciFP fused multiply-add. 3860b8021494Sopenharmony_ci 3861b8021494Sopenharmony_ci void fmadd(const VRegister& vd, 3862b8021494Sopenharmony_ci const VRegister& vn, 3863b8021494Sopenharmony_ci const VRegister& vm, 3864b8021494Sopenharmony_ci const VRegister& va) 3865b8021494Sopenharmony_ci 3866b8021494Sopenharmony_ci 3867b8021494Sopenharmony_ci### FMAX ### 3868b8021494Sopenharmony_ci 3869b8021494Sopenharmony_ciFP maximum. 3870b8021494Sopenharmony_ci 3871b8021494Sopenharmony_ci void fmax(const VRegister& vd, const VRegister& fn, const VRegister& vm) 3872b8021494Sopenharmony_ci 3873b8021494Sopenharmony_ci 3874b8021494Sopenharmony_ci### FMAXNM ### 3875b8021494Sopenharmony_ci 3876b8021494Sopenharmony_ciFP maximum number. 3877b8021494Sopenharmony_ci 3878b8021494Sopenharmony_ci void fmaxnm(const VRegister& vd, const VRegister& fn, const VRegister& vm) 3879b8021494Sopenharmony_ci 3880b8021494Sopenharmony_ci 3881b8021494Sopenharmony_ci### FMAXNMP ### 3882b8021494Sopenharmony_ci 3883b8021494Sopenharmony_ciFP pairwise maximum number scalar. 3884b8021494Sopenharmony_ci 3885b8021494Sopenharmony_ci void fmaxnmp(const VRegister& vd, const VRegister& vn) 3886b8021494Sopenharmony_ci 3887b8021494Sopenharmony_ci 3888b8021494Sopenharmony_ci### FMAXNMP ### 3889b8021494Sopenharmony_ci 3890b8021494Sopenharmony_ciFP pairwise maximum number vector. 3891b8021494Sopenharmony_ci 3892b8021494Sopenharmony_ci void fmaxnmp(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3893b8021494Sopenharmony_ci 3894b8021494Sopenharmony_ci 3895b8021494Sopenharmony_ci### FMAXNMV ### 3896b8021494Sopenharmony_ci 3897b8021494Sopenharmony_ciFP maximum number across vector. 3898b8021494Sopenharmony_ci 3899b8021494Sopenharmony_ci void fmaxnmv(const VRegister& vd, const VRegister& vn) 3900b8021494Sopenharmony_ci 3901b8021494Sopenharmony_ci 3902b8021494Sopenharmony_ci### FMAXP ### 3903b8021494Sopenharmony_ci 3904b8021494Sopenharmony_ciFP pairwise maximum scalar. 3905b8021494Sopenharmony_ci 3906b8021494Sopenharmony_ci void fmaxp(const VRegister& vd, const VRegister& vn) 3907b8021494Sopenharmony_ci 3908b8021494Sopenharmony_ci 3909b8021494Sopenharmony_ci### FMAXP ### 3910b8021494Sopenharmony_ci 3911b8021494Sopenharmony_ciFP pairwise maximum vector. 3912b8021494Sopenharmony_ci 3913b8021494Sopenharmony_ci void fmaxp(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3914b8021494Sopenharmony_ci 3915b8021494Sopenharmony_ci 3916b8021494Sopenharmony_ci### FMAXV ### 3917b8021494Sopenharmony_ci 3918b8021494Sopenharmony_ciFP maximum across vector. 3919b8021494Sopenharmony_ci 3920b8021494Sopenharmony_ci void fmaxv(const VRegister& vd, const VRegister& vn) 3921b8021494Sopenharmony_ci 3922b8021494Sopenharmony_ci 3923b8021494Sopenharmony_ci### FMIN ### 3924b8021494Sopenharmony_ci 3925b8021494Sopenharmony_ciFP minimum. 3926b8021494Sopenharmony_ci 3927b8021494Sopenharmony_ci void fmin(const VRegister& vd, const VRegister& fn, const VRegister& vm) 3928b8021494Sopenharmony_ci 3929b8021494Sopenharmony_ci 3930b8021494Sopenharmony_ci### FMINNM ### 3931b8021494Sopenharmony_ci 3932b8021494Sopenharmony_ciFP minimum number. 3933b8021494Sopenharmony_ci 3934b8021494Sopenharmony_ci void fminnm(const VRegister& vd, const VRegister& fn, const VRegister& vm) 3935b8021494Sopenharmony_ci 3936b8021494Sopenharmony_ci 3937b8021494Sopenharmony_ci### FMINNMP ### 3938b8021494Sopenharmony_ci 3939b8021494Sopenharmony_ciFP pairwise minimum number scalar. 3940b8021494Sopenharmony_ci 3941b8021494Sopenharmony_ci void fminnmp(const VRegister& vd, const VRegister& vn) 3942b8021494Sopenharmony_ci 3943b8021494Sopenharmony_ci 3944b8021494Sopenharmony_ci### FMINNMP ### 3945b8021494Sopenharmony_ci 3946b8021494Sopenharmony_ciFP pairwise minimum number vector. 3947b8021494Sopenharmony_ci 3948b8021494Sopenharmony_ci void fminnmp(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3949b8021494Sopenharmony_ci 3950b8021494Sopenharmony_ci 3951b8021494Sopenharmony_ci### FMINNMV ### 3952b8021494Sopenharmony_ci 3953b8021494Sopenharmony_ciFP minimum number across vector. 3954b8021494Sopenharmony_ci 3955b8021494Sopenharmony_ci void fminnmv(const VRegister& vd, const VRegister& vn) 3956b8021494Sopenharmony_ci 3957b8021494Sopenharmony_ci 3958b8021494Sopenharmony_ci### FMINP ### 3959b8021494Sopenharmony_ci 3960b8021494Sopenharmony_ciFP pairwise minimum scalar. 3961b8021494Sopenharmony_ci 3962b8021494Sopenharmony_ci void fminp(const VRegister& vd, const VRegister& vn) 3963b8021494Sopenharmony_ci 3964b8021494Sopenharmony_ci 3965b8021494Sopenharmony_ci### FMINP ### 3966b8021494Sopenharmony_ci 3967b8021494Sopenharmony_ciFP pairwise minimum vector. 3968b8021494Sopenharmony_ci 3969b8021494Sopenharmony_ci void fminp(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3970b8021494Sopenharmony_ci 3971b8021494Sopenharmony_ci 3972b8021494Sopenharmony_ci### FMINV ### 3973b8021494Sopenharmony_ci 3974b8021494Sopenharmony_ciFP minimum across vector. 3975b8021494Sopenharmony_ci 3976b8021494Sopenharmony_ci void fminv(const VRegister& vd, const VRegister& vn) 3977b8021494Sopenharmony_ci 3978b8021494Sopenharmony_ci 3979b8021494Sopenharmony_ci### FMLA ### 3980b8021494Sopenharmony_ci 3981b8021494Sopenharmony_ciFP fused multiply-add to accumulator by element. 3982b8021494Sopenharmony_ci 3983b8021494Sopenharmony_ci void fmla(const VRegister& vd, 3984b8021494Sopenharmony_ci const VRegister& vn, 3985b8021494Sopenharmony_ci const VRegister& vm, 3986b8021494Sopenharmony_ci int vm_index) 3987b8021494Sopenharmony_ci 3988b8021494Sopenharmony_ci 3989b8021494Sopenharmony_ci### FMLA ### 3990b8021494Sopenharmony_ci 3991b8021494Sopenharmony_ciFP vector multiply accumulate. 3992b8021494Sopenharmony_ci 3993b8021494Sopenharmony_ci void fmla(const VRegister& vd, const VRegister& vn, const VRegister& vm) 3994b8021494Sopenharmony_ci 3995b8021494Sopenharmony_ci 3996b8021494Sopenharmony_ci### FMLAL ### 3997b8021494Sopenharmony_ci 3998b8021494Sopenharmony_ciFP fused multiply-add long to accumulator by element. 3999b8021494Sopenharmony_ci 4000b8021494Sopenharmony_ci void fmlal(const VRegister& vd, 4001b8021494Sopenharmony_ci const VRegister& vn, 4002b8021494Sopenharmony_ci const VRegister& vm, 4003b8021494Sopenharmony_ci int vm_index) 4004b8021494Sopenharmony_ci 4005b8021494Sopenharmony_ci 4006b8021494Sopenharmony_ci### FMLAL ### 4007b8021494Sopenharmony_ci 4008b8021494Sopenharmony_ciFP fused multiply-add long to accumulator. 4009b8021494Sopenharmony_ci 4010b8021494Sopenharmony_ci void fmlal(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4011b8021494Sopenharmony_ci 4012b8021494Sopenharmony_ci 4013b8021494Sopenharmony_ci### FMLAL2 ### 4014b8021494Sopenharmony_ci 4015b8021494Sopenharmony_ciFP fused multiply-add long to accumulator (second part). 4016b8021494Sopenharmony_ci 4017b8021494Sopenharmony_ci void fmlal2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4018b8021494Sopenharmony_ci 4019b8021494Sopenharmony_ci 4020b8021494Sopenharmony_ci### FMLAL2 ### 4021b8021494Sopenharmony_ci 4022b8021494Sopenharmony_ciFP fused multiply-add long to accumulator by element (second part). 4023b8021494Sopenharmony_ci 4024b8021494Sopenharmony_ci void fmlal2(const VRegister& vd, 4025b8021494Sopenharmony_ci const VRegister& vn, 4026b8021494Sopenharmony_ci const VRegister& vm, 4027b8021494Sopenharmony_ci int vm_index) 4028b8021494Sopenharmony_ci 4029b8021494Sopenharmony_ci 4030b8021494Sopenharmony_ci### FMLS ### 4031b8021494Sopenharmony_ci 4032b8021494Sopenharmony_ciFP fused multiply-sub from accumulator by element. 4033b8021494Sopenharmony_ci 4034b8021494Sopenharmony_ci void fmls(const VRegister& vd, 4035b8021494Sopenharmony_ci const VRegister& vn, 4036b8021494Sopenharmony_ci const VRegister& vm, 4037b8021494Sopenharmony_ci int vm_index) 4038b8021494Sopenharmony_ci 4039b8021494Sopenharmony_ci 4040b8021494Sopenharmony_ci### FMLS ### 4041b8021494Sopenharmony_ci 4042b8021494Sopenharmony_ciFP vector multiply subtract. 4043b8021494Sopenharmony_ci 4044b8021494Sopenharmony_ci void fmls(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4045b8021494Sopenharmony_ci 4046b8021494Sopenharmony_ci 4047b8021494Sopenharmony_ci### FMLSL ### 4048b8021494Sopenharmony_ci 4049b8021494Sopenharmony_ciFP fused multiply-subtract long to accumulator by element. 4050b8021494Sopenharmony_ci 4051b8021494Sopenharmony_ci void fmlsl(const VRegister& vd, 4052b8021494Sopenharmony_ci const VRegister& vn, 4053b8021494Sopenharmony_ci const VRegister& vm, 4054b8021494Sopenharmony_ci int vm_index) 4055b8021494Sopenharmony_ci 4056b8021494Sopenharmony_ci 4057b8021494Sopenharmony_ci### FMLSL ### 4058b8021494Sopenharmony_ci 4059b8021494Sopenharmony_ciFP fused multiply-subtract long to accumulator. 4060b8021494Sopenharmony_ci 4061b8021494Sopenharmony_ci void fmlsl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4062b8021494Sopenharmony_ci 4063b8021494Sopenharmony_ci 4064b8021494Sopenharmony_ci### FMLSL2 ### 4065b8021494Sopenharmony_ci 4066b8021494Sopenharmony_ciFP fused multiply-subtract long to accumulator (second part). 4067b8021494Sopenharmony_ci 4068b8021494Sopenharmony_ci void fmlsl2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4069b8021494Sopenharmony_ci 4070b8021494Sopenharmony_ci 4071b8021494Sopenharmony_ci### FMLSL2 ### 4072b8021494Sopenharmony_ci 4073b8021494Sopenharmony_ciFP fused multiply-subtract long to accumulator by element (second part). 4074b8021494Sopenharmony_ci 4075b8021494Sopenharmony_ci void fmlsl2(const VRegister& vd, 4076b8021494Sopenharmony_ci const VRegister& vn, 4077b8021494Sopenharmony_ci const VRegister& vm, 4078b8021494Sopenharmony_ci int vm_index) 4079b8021494Sopenharmony_ci 4080b8021494Sopenharmony_ci 4081b8021494Sopenharmony_ci### FMOV ### 4082b8021494Sopenharmony_ci 4083b8021494Sopenharmony_ciMove 64-bit register to top half of 128-bit FP register. 4084b8021494Sopenharmony_ci 4085b8021494Sopenharmony_ci void fmov(const VRegister& vd, int index, const Register& rn) 4086b8021494Sopenharmony_ci 4087b8021494Sopenharmony_ci 4088b8021494Sopenharmony_ci### FMOV ### 4089b8021494Sopenharmony_ci 4090b8021494Sopenharmony_ciMove FP register to FP register. 4091b8021494Sopenharmony_ci 4092b8021494Sopenharmony_ci void fmov(const VRegister& vd, const VRegister& fn) 4093b8021494Sopenharmony_ci 4094b8021494Sopenharmony_ci 4095b8021494Sopenharmony_ci### FMOV ### 4096b8021494Sopenharmony_ci 4097b8021494Sopenharmony_ciMove FP register to register. 4098b8021494Sopenharmony_ci 4099b8021494Sopenharmony_ci void fmov(const Register& rd, const VRegister& fn) 4100b8021494Sopenharmony_ci 4101b8021494Sopenharmony_ci 4102b8021494Sopenharmony_ci### FMOV ### 4103b8021494Sopenharmony_ci 4104b8021494Sopenharmony_ciMove double precision immediate to FP register. 4105b8021494Sopenharmony_ci 4106b8021494Sopenharmony_ci void fmov(const VRegister& vd, double imm) 4107b8021494Sopenharmony_ci 4108b8021494Sopenharmony_ci 4109b8021494Sopenharmony_ci### FMOV ### 4110b8021494Sopenharmony_ci 4111b8021494Sopenharmony_ciMove half precision immediate to FP register _(Armv8.2)_. 4112b8021494Sopenharmony_ci 4113b8021494Sopenharmony_ci void fmov(const VRegister& vd, Float16 imm) 4114b8021494Sopenharmony_ci 4115b8021494Sopenharmony_ci 4116b8021494Sopenharmony_ci### FMOV ### 4117b8021494Sopenharmony_ci 4118b8021494Sopenharmony_ciMove register to FP register. 4119b8021494Sopenharmony_ci 4120b8021494Sopenharmony_ci void fmov(const VRegister& vd, const Register& rn) 4121b8021494Sopenharmony_ci 4122b8021494Sopenharmony_ci 4123b8021494Sopenharmony_ci### FMOV ### 4124b8021494Sopenharmony_ci 4125b8021494Sopenharmony_ciMove single precision immediate to FP register. 4126b8021494Sopenharmony_ci 4127b8021494Sopenharmony_ci void fmov(const VRegister& vd, float imm) 4128b8021494Sopenharmony_ci 4129b8021494Sopenharmony_ci 4130b8021494Sopenharmony_ci### FMOV ### 4131b8021494Sopenharmony_ci 4132b8021494Sopenharmony_ciMove top half of 128-bit FP register to 64-bit register. 4133b8021494Sopenharmony_ci 4134b8021494Sopenharmony_ci void fmov(const Register& rd, const VRegister& vn, int index) 4135b8021494Sopenharmony_ci 4136b8021494Sopenharmony_ci 4137b8021494Sopenharmony_ci### FMSUB ### 4138b8021494Sopenharmony_ci 4139b8021494Sopenharmony_ciFP fused multiply-subtract. 4140b8021494Sopenharmony_ci 4141b8021494Sopenharmony_ci void fmsub(const VRegister& vd, 4142b8021494Sopenharmony_ci const VRegister& vn, 4143b8021494Sopenharmony_ci const VRegister& vm, 4144b8021494Sopenharmony_ci const VRegister& va) 4145b8021494Sopenharmony_ci 4146b8021494Sopenharmony_ci 4147b8021494Sopenharmony_ci### FMUL ### 4148b8021494Sopenharmony_ci 4149b8021494Sopenharmony_ciFP multiply by element. 4150b8021494Sopenharmony_ci 4151b8021494Sopenharmony_ci void fmul(const VRegister& vd, 4152b8021494Sopenharmony_ci const VRegister& vn, 4153b8021494Sopenharmony_ci const VRegister& vm, 4154b8021494Sopenharmony_ci int vm_index) 4155b8021494Sopenharmony_ci 4156b8021494Sopenharmony_ci 4157b8021494Sopenharmony_ci### FMUL ### 4158b8021494Sopenharmony_ci 4159b8021494Sopenharmony_ciFP multiply. 4160b8021494Sopenharmony_ci 4161b8021494Sopenharmony_ci void fmul(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4162b8021494Sopenharmony_ci 4163b8021494Sopenharmony_ci 4164b8021494Sopenharmony_ci### FMULX ### 4165b8021494Sopenharmony_ci 4166b8021494Sopenharmony_ciFP multiply extended by element. 4167b8021494Sopenharmony_ci 4168b8021494Sopenharmony_ci void fmulx(const VRegister& vd, 4169b8021494Sopenharmony_ci const VRegister& vn, 4170b8021494Sopenharmony_ci const VRegister& vm, 4171b8021494Sopenharmony_ci int vm_index) 4172b8021494Sopenharmony_ci 4173b8021494Sopenharmony_ci 4174b8021494Sopenharmony_ci### FMULX ### 4175b8021494Sopenharmony_ci 4176b8021494Sopenharmony_ciFP vector multiply extended. 4177b8021494Sopenharmony_ci 4178b8021494Sopenharmony_ci void fmulx(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4179b8021494Sopenharmony_ci 4180b8021494Sopenharmony_ci 4181b8021494Sopenharmony_ci### FNEG ### 4182b8021494Sopenharmony_ci 4183b8021494Sopenharmony_ciFP negate. 4184b8021494Sopenharmony_ci 4185b8021494Sopenharmony_ci void fneg(const VRegister& vd, const VRegister& vn) 4186b8021494Sopenharmony_ci 4187b8021494Sopenharmony_ci 4188b8021494Sopenharmony_ci### FNMADD ### 4189b8021494Sopenharmony_ci 4190b8021494Sopenharmony_ciFP fused multiply-add and negate. 4191b8021494Sopenharmony_ci 4192b8021494Sopenharmony_ci void fnmadd(const VRegister& vd, 4193b8021494Sopenharmony_ci const VRegister& vn, 4194b8021494Sopenharmony_ci const VRegister& vm, 4195b8021494Sopenharmony_ci const VRegister& va) 4196b8021494Sopenharmony_ci 4197b8021494Sopenharmony_ci 4198b8021494Sopenharmony_ci### FNMSUB ### 4199b8021494Sopenharmony_ci 4200b8021494Sopenharmony_ciFP fused multiply-subtract and negate. 4201b8021494Sopenharmony_ci 4202b8021494Sopenharmony_ci void fnmsub(const VRegister& vd, 4203b8021494Sopenharmony_ci const VRegister& vn, 4204b8021494Sopenharmony_ci const VRegister& vm, 4205b8021494Sopenharmony_ci const VRegister& va) 4206b8021494Sopenharmony_ci 4207b8021494Sopenharmony_ci 4208b8021494Sopenharmony_ci### FNMUL ### 4209b8021494Sopenharmony_ci 4210b8021494Sopenharmony_ciFP multiply-negate scalar. 4211b8021494Sopenharmony_ci 4212b8021494Sopenharmony_ci void fnmul(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4213b8021494Sopenharmony_ci 4214b8021494Sopenharmony_ci 4215b8021494Sopenharmony_ci### FRECPE ### 4216b8021494Sopenharmony_ci 4217b8021494Sopenharmony_ciFP reciprocal estimate. 4218b8021494Sopenharmony_ci 4219b8021494Sopenharmony_ci void frecpe(const VRegister& vd, const VRegister& vn) 4220b8021494Sopenharmony_ci 4221b8021494Sopenharmony_ci 4222b8021494Sopenharmony_ci### FRECPS ### 4223b8021494Sopenharmony_ci 4224b8021494Sopenharmony_ciFP reciprocal step. 4225b8021494Sopenharmony_ci 4226b8021494Sopenharmony_ci void frecps(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4227b8021494Sopenharmony_ci 4228b8021494Sopenharmony_ci 4229b8021494Sopenharmony_ci### FRECPX ### 4230b8021494Sopenharmony_ci 4231b8021494Sopenharmony_ciFP reciprocal exponent scalar. 4232b8021494Sopenharmony_ci 4233b8021494Sopenharmony_ci void frecpx(const VRegister& vd, const VRegister& vn) 4234b8021494Sopenharmony_ci 4235b8021494Sopenharmony_ci 4236b8021494Sopenharmony_ci### FRINT32X ### 4237b8021494Sopenharmony_ci 4238b8021494Sopenharmony_ciFP round to 32-bit integer, exact, implicit rounding _(Armv8.5)_. 4239b8021494Sopenharmony_ci 4240b8021494Sopenharmony_ci void frint32x(const VRegister& vd, const VRegister& vn) 4241b8021494Sopenharmony_ci 4242b8021494Sopenharmony_ci 4243b8021494Sopenharmony_ci### FRINT32Z ### 4244b8021494Sopenharmony_ci 4245b8021494Sopenharmony_ciFP round to 32-bit integer, towards zero _(Armv8.5)_. 4246b8021494Sopenharmony_ci 4247b8021494Sopenharmony_ci void frint32z(const VRegister& vd, const VRegister& vn) 4248b8021494Sopenharmony_ci 4249b8021494Sopenharmony_ci 4250b8021494Sopenharmony_ci### FRINT64X ### 4251b8021494Sopenharmony_ci 4252b8021494Sopenharmony_ciFP round to 64-bit integer, exact, implicit rounding _(Armv8.5)_. 4253b8021494Sopenharmony_ci 4254b8021494Sopenharmony_ci void frint64x(const VRegister& vd, const VRegister& vn) 4255b8021494Sopenharmony_ci 4256b8021494Sopenharmony_ci 4257b8021494Sopenharmony_ci### FRINT64Z ### 4258b8021494Sopenharmony_ci 4259b8021494Sopenharmony_ciFP round to 64-bit integer, towards zero _(Armv8.5)_. 4260b8021494Sopenharmony_ci 4261b8021494Sopenharmony_ci void frint64z(const VRegister& vd, const VRegister& vn) 4262b8021494Sopenharmony_ci 4263b8021494Sopenharmony_ci 4264b8021494Sopenharmony_ci### FRINTA ### 4265b8021494Sopenharmony_ci 4266b8021494Sopenharmony_ciFP round to integer, nearest with ties to away. 4267b8021494Sopenharmony_ci 4268b8021494Sopenharmony_ci void frinta(const VRegister& vd, const VRegister& vn) 4269b8021494Sopenharmony_ci 4270b8021494Sopenharmony_ci 4271b8021494Sopenharmony_ci### FRINTI ### 4272b8021494Sopenharmony_ci 4273b8021494Sopenharmony_ciFP round to integer, implicit rounding. 4274b8021494Sopenharmony_ci 4275b8021494Sopenharmony_ci void frinti(const VRegister& vd, const VRegister& vn) 4276b8021494Sopenharmony_ci 4277b8021494Sopenharmony_ci 4278b8021494Sopenharmony_ci### FRINTM ### 4279b8021494Sopenharmony_ci 4280b8021494Sopenharmony_ciFP round to integer, toward minus infinity. 4281b8021494Sopenharmony_ci 4282b8021494Sopenharmony_ci void frintm(const VRegister& vd, const VRegister& vn) 4283b8021494Sopenharmony_ci 4284b8021494Sopenharmony_ci 4285b8021494Sopenharmony_ci### FRINTN ### 4286b8021494Sopenharmony_ci 4287b8021494Sopenharmony_ciFP round to integer, nearest with ties to even. 4288b8021494Sopenharmony_ci 4289b8021494Sopenharmony_ci void frintn(const VRegister& vd, const VRegister& vn) 4290b8021494Sopenharmony_ci 4291b8021494Sopenharmony_ci 4292b8021494Sopenharmony_ci### FRINTP ### 4293b8021494Sopenharmony_ci 4294b8021494Sopenharmony_ciFP round to integer, toward plus infinity. 4295b8021494Sopenharmony_ci 4296b8021494Sopenharmony_ci void frintp(const VRegister& vd, const VRegister& vn) 4297b8021494Sopenharmony_ci 4298b8021494Sopenharmony_ci 4299b8021494Sopenharmony_ci### FRINTX ### 4300b8021494Sopenharmony_ci 4301b8021494Sopenharmony_ciFP round to integer, exact, implicit rounding. 4302b8021494Sopenharmony_ci 4303b8021494Sopenharmony_ci void frintx(const VRegister& vd, const VRegister& vn) 4304b8021494Sopenharmony_ci 4305b8021494Sopenharmony_ci 4306b8021494Sopenharmony_ci### FRINTZ ### 4307b8021494Sopenharmony_ci 4308b8021494Sopenharmony_ciFP round to integer, towards zero. 4309b8021494Sopenharmony_ci 4310b8021494Sopenharmony_ci void frintz(const VRegister& vd, const VRegister& vn) 4311b8021494Sopenharmony_ci 4312b8021494Sopenharmony_ci 4313b8021494Sopenharmony_ci### FRSQRTE ### 4314b8021494Sopenharmony_ci 4315b8021494Sopenharmony_ciFP reciprocal square root estimate. 4316b8021494Sopenharmony_ci 4317b8021494Sopenharmony_ci void frsqrte(const VRegister& vd, const VRegister& vn) 4318b8021494Sopenharmony_ci 4319b8021494Sopenharmony_ci 4320b8021494Sopenharmony_ci### FRSQRTS ### 4321b8021494Sopenharmony_ci 4322b8021494Sopenharmony_ciFP reciprocal square root step. 4323b8021494Sopenharmony_ci 4324b8021494Sopenharmony_ci void frsqrts(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4325b8021494Sopenharmony_ci 4326b8021494Sopenharmony_ci 4327b8021494Sopenharmony_ci### FSQRT ### 4328b8021494Sopenharmony_ci 4329b8021494Sopenharmony_ciFP square root. 4330b8021494Sopenharmony_ci 4331b8021494Sopenharmony_ci void fsqrt(const VRegister& vd, const VRegister& vn) 4332b8021494Sopenharmony_ci 4333b8021494Sopenharmony_ci 4334b8021494Sopenharmony_ci### FSUB ### 4335b8021494Sopenharmony_ci 4336b8021494Sopenharmony_ciFP subtract. 4337b8021494Sopenharmony_ci 4338b8021494Sopenharmony_ci void fsub(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4339b8021494Sopenharmony_ci 4340b8021494Sopenharmony_ci 4341b8021494Sopenharmony_ci<a id="float-i"> 4342b8021494Sopenharmony_ci 4343b8021494Sopenharmony_ci### INS ### 4344b8021494Sopenharmony_ci 4345b8021494Sopenharmony_ciInsert vector element from another vector element. 4346b8021494Sopenharmony_ci 4347b8021494Sopenharmony_ci void ins(const VRegister& vd, 4348b8021494Sopenharmony_ci int vd_index, 4349b8021494Sopenharmony_ci const VRegister& vn, 4350b8021494Sopenharmony_ci int vn_index) 4351b8021494Sopenharmony_ci 4352b8021494Sopenharmony_ci 4353b8021494Sopenharmony_ci### INS ### 4354b8021494Sopenharmony_ci 4355b8021494Sopenharmony_ciInsert vector element from general-purpose register. 4356b8021494Sopenharmony_ci 4357b8021494Sopenharmony_ci void ins(const VRegister& vd, int vd_index, const Register& rn) 4358b8021494Sopenharmony_ci 4359b8021494Sopenharmony_ci 4360b8021494Sopenharmony_ci<a id="float-l"> 4361b8021494Sopenharmony_ci 4362b8021494Sopenharmony_ci### LD1 ### 4363b8021494Sopenharmony_ci 4364b8021494Sopenharmony_ciOne-element single structure load to one lane. 4365b8021494Sopenharmony_ci 4366b8021494Sopenharmony_ci void ld1(const VRegister& vt, int lane, const MemOperand& src) 4367b8021494Sopenharmony_ci 4368b8021494Sopenharmony_ci 4369b8021494Sopenharmony_ci### LD1 ### 4370b8021494Sopenharmony_ci 4371b8021494Sopenharmony_ciOne-element structure load to four registers. 4372b8021494Sopenharmony_ci 4373b8021494Sopenharmony_ci void ld1(const VRegister& vt, 4374b8021494Sopenharmony_ci const VRegister& vt2, 4375b8021494Sopenharmony_ci const VRegister& vt3, 4376b8021494Sopenharmony_ci const VRegister& vt4, 4377b8021494Sopenharmony_ci const MemOperand& src) 4378b8021494Sopenharmony_ci 4379b8021494Sopenharmony_ci 4380b8021494Sopenharmony_ci### LD1 ### 4381b8021494Sopenharmony_ci 4382b8021494Sopenharmony_ciOne-element structure load to one register. 4383b8021494Sopenharmony_ci 4384b8021494Sopenharmony_ci void ld1(const VRegister& vt, const MemOperand& src) 4385b8021494Sopenharmony_ci 4386b8021494Sopenharmony_ci 4387b8021494Sopenharmony_ci### LD1 ### 4388b8021494Sopenharmony_ci 4389b8021494Sopenharmony_ciOne-element structure load to three registers. 4390b8021494Sopenharmony_ci 4391b8021494Sopenharmony_ci void ld1(const VRegister& vt, 4392b8021494Sopenharmony_ci const VRegister& vt2, 4393b8021494Sopenharmony_ci const VRegister& vt3, 4394b8021494Sopenharmony_ci const MemOperand& src) 4395b8021494Sopenharmony_ci 4396b8021494Sopenharmony_ci 4397b8021494Sopenharmony_ci### LD1 ### 4398b8021494Sopenharmony_ci 4399b8021494Sopenharmony_ciOne-element structure load to two registers. 4400b8021494Sopenharmony_ci 4401b8021494Sopenharmony_ci void ld1(const VRegister& vt, const VRegister& vt2, const MemOperand& src) 4402b8021494Sopenharmony_ci 4403b8021494Sopenharmony_ci 4404b8021494Sopenharmony_ci### LD1R ### 4405b8021494Sopenharmony_ci 4406b8021494Sopenharmony_ciOne-element single structure load to all lanes. 4407b8021494Sopenharmony_ci 4408b8021494Sopenharmony_ci void ld1r(const VRegister& vt, const MemOperand& src) 4409b8021494Sopenharmony_ci 4410b8021494Sopenharmony_ci 4411b8021494Sopenharmony_ci### LD2 ### 4412b8021494Sopenharmony_ci 4413b8021494Sopenharmony_ciTwo-element single structure load to one lane. 4414b8021494Sopenharmony_ci 4415b8021494Sopenharmony_ci void ld2(const VRegister& vt, 4416b8021494Sopenharmony_ci const VRegister& vt2, 4417b8021494Sopenharmony_ci int lane, 4418b8021494Sopenharmony_ci const MemOperand& src) 4419b8021494Sopenharmony_ci 4420b8021494Sopenharmony_ci 4421b8021494Sopenharmony_ci### LD2 ### 4422b8021494Sopenharmony_ci 4423b8021494Sopenharmony_ciTwo-element structure load. 4424b8021494Sopenharmony_ci 4425b8021494Sopenharmony_ci void ld2(const VRegister& vt, const VRegister& vt2, const MemOperand& src) 4426b8021494Sopenharmony_ci 4427b8021494Sopenharmony_ci 4428b8021494Sopenharmony_ci### LD2R ### 4429b8021494Sopenharmony_ci 4430b8021494Sopenharmony_ciTwo-element single structure load to all lanes. 4431b8021494Sopenharmony_ci 4432b8021494Sopenharmony_ci void ld2r(const VRegister& vt, const VRegister& vt2, const MemOperand& src) 4433b8021494Sopenharmony_ci 4434b8021494Sopenharmony_ci 4435b8021494Sopenharmony_ci### LD3 ### 4436b8021494Sopenharmony_ci 4437b8021494Sopenharmony_ciThree-element single structure load to one lane. 4438b8021494Sopenharmony_ci 4439b8021494Sopenharmony_ci void ld3(const VRegister& vt, 4440b8021494Sopenharmony_ci const VRegister& vt2, 4441b8021494Sopenharmony_ci const VRegister& vt3, 4442b8021494Sopenharmony_ci int lane, 4443b8021494Sopenharmony_ci const MemOperand& src) 4444b8021494Sopenharmony_ci 4445b8021494Sopenharmony_ci 4446b8021494Sopenharmony_ci### LD3 ### 4447b8021494Sopenharmony_ci 4448b8021494Sopenharmony_ciThree-element structure load. 4449b8021494Sopenharmony_ci 4450b8021494Sopenharmony_ci void ld3(const VRegister& vt, 4451b8021494Sopenharmony_ci const VRegister& vt2, 4452b8021494Sopenharmony_ci const VRegister& vt3, 4453b8021494Sopenharmony_ci const MemOperand& src) 4454b8021494Sopenharmony_ci 4455b8021494Sopenharmony_ci 4456b8021494Sopenharmony_ci### LD3R ### 4457b8021494Sopenharmony_ci 4458b8021494Sopenharmony_ciThree-element single structure load to all lanes. 4459b8021494Sopenharmony_ci 4460b8021494Sopenharmony_ci void ld3r(const VRegister& vt, 4461b8021494Sopenharmony_ci const VRegister& vt2, 4462b8021494Sopenharmony_ci const VRegister& vt3, 4463b8021494Sopenharmony_ci const MemOperand& src) 4464b8021494Sopenharmony_ci 4465b8021494Sopenharmony_ci 4466b8021494Sopenharmony_ci### LD4 ### 4467b8021494Sopenharmony_ci 4468b8021494Sopenharmony_ciFour-element single structure load to one lane. 4469b8021494Sopenharmony_ci 4470b8021494Sopenharmony_ci void ld4(const VRegister& vt, 4471b8021494Sopenharmony_ci const VRegister& vt2, 4472b8021494Sopenharmony_ci const VRegister& vt3, 4473b8021494Sopenharmony_ci const VRegister& vt4, 4474b8021494Sopenharmony_ci int lane, 4475b8021494Sopenharmony_ci const MemOperand& src) 4476b8021494Sopenharmony_ci 4477b8021494Sopenharmony_ci 4478b8021494Sopenharmony_ci### LD4 ### 4479b8021494Sopenharmony_ci 4480b8021494Sopenharmony_ciFour-element structure load. 4481b8021494Sopenharmony_ci 4482b8021494Sopenharmony_ci void ld4(const VRegister& vt, 4483b8021494Sopenharmony_ci const VRegister& vt2, 4484b8021494Sopenharmony_ci const VRegister& vt3, 4485b8021494Sopenharmony_ci const VRegister& vt4, 4486b8021494Sopenharmony_ci const MemOperand& src) 4487b8021494Sopenharmony_ci 4488b8021494Sopenharmony_ci 4489b8021494Sopenharmony_ci### LD4R ### 4490b8021494Sopenharmony_ci 4491b8021494Sopenharmony_ciFour-element single structure load to all lanes. 4492b8021494Sopenharmony_ci 4493b8021494Sopenharmony_ci void ld4r(const VRegister& vt, 4494b8021494Sopenharmony_ci const VRegister& vt2, 4495b8021494Sopenharmony_ci const VRegister& vt3, 4496b8021494Sopenharmony_ci const VRegister& vt4, 4497b8021494Sopenharmony_ci const MemOperand& src) 4498b8021494Sopenharmony_ci 4499b8021494Sopenharmony_ci 4500b8021494Sopenharmony_ci<a id="float-m"> 4501b8021494Sopenharmony_ci 4502b8021494Sopenharmony_ci### MLA ### 4503b8021494Sopenharmony_ci 4504b8021494Sopenharmony_ciMultiply-add by scalar element. 4505b8021494Sopenharmony_ci 4506b8021494Sopenharmony_ci void mla(const VRegister& vd, 4507b8021494Sopenharmony_ci const VRegister& vn, 4508b8021494Sopenharmony_ci const VRegister& vm, 4509b8021494Sopenharmony_ci int vm_index) 4510b8021494Sopenharmony_ci 4511b8021494Sopenharmony_ci 4512b8021494Sopenharmony_ci### MLA ### 4513b8021494Sopenharmony_ci 4514b8021494Sopenharmony_ciMultiply-add to accumulator. 4515b8021494Sopenharmony_ci 4516b8021494Sopenharmony_ci void mla(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4517b8021494Sopenharmony_ci 4518b8021494Sopenharmony_ci 4519b8021494Sopenharmony_ci### MLS ### 4520b8021494Sopenharmony_ci 4521b8021494Sopenharmony_ciMultiply-subtract by scalar element. 4522b8021494Sopenharmony_ci 4523b8021494Sopenharmony_ci void mls(const VRegister& vd, 4524b8021494Sopenharmony_ci const VRegister& vn, 4525b8021494Sopenharmony_ci const VRegister& vm, 4526b8021494Sopenharmony_ci int vm_index) 4527b8021494Sopenharmony_ci 4528b8021494Sopenharmony_ci 4529b8021494Sopenharmony_ci### MLS ### 4530b8021494Sopenharmony_ci 4531b8021494Sopenharmony_ciMultiply-subtract to accumulator. 4532b8021494Sopenharmony_ci 4533b8021494Sopenharmony_ci void mls(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4534b8021494Sopenharmony_ci 4535b8021494Sopenharmony_ci 4536b8021494Sopenharmony_ci### MOV ### 4537b8021494Sopenharmony_ci 4538b8021494Sopenharmony_ciMove general-purpose register to a vector element. 4539b8021494Sopenharmony_ci 4540b8021494Sopenharmony_ci void mov(const VRegister& vd, int vd_index, const Register& rn) 4541b8021494Sopenharmony_ci 4542b8021494Sopenharmony_ci 4543b8021494Sopenharmony_ci### MOV ### 4544b8021494Sopenharmony_ci 4545b8021494Sopenharmony_ciMove register to register. 4546b8021494Sopenharmony_ci 4547b8021494Sopenharmony_ci void mov(const VRegister& vd, const VRegister& vn) 4548b8021494Sopenharmony_ci 4549b8021494Sopenharmony_ci 4550b8021494Sopenharmony_ci### MOV ### 4551b8021494Sopenharmony_ci 4552b8021494Sopenharmony_ciMove vector element to another vector element. 4553b8021494Sopenharmony_ci 4554b8021494Sopenharmony_ci void mov(const VRegister& vd, 4555b8021494Sopenharmony_ci int vd_index, 4556b8021494Sopenharmony_ci const VRegister& vn, 4557b8021494Sopenharmony_ci int vn_index) 4558b8021494Sopenharmony_ci 4559b8021494Sopenharmony_ci 4560b8021494Sopenharmony_ci### MOV ### 4561b8021494Sopenharmony_ci 4562b8021494Sopenharmony_ciMove vector element to general-purpose register. 4563b8021494Sopenharmony_ci 4564b8021494Sopenharmony_ci void mov(const Register& rd, const VRegister& vn, int vn_index) 4565b8021494Sopenharmony_ci 4566b8021494Sopenharmony_ci 4567b8021494Sopenharmony_ci### MOV ### 4568b8021494Sopenharmony_ci 4569b8021494Sopenharmony_ciMove vector element to scalar. 4570b8021494Sopenharmony_ci 4571b8021494Sopenharmony_ci void mov(const VRegister& vd, const VRegister& vn, int vn_index) 4572b8021494Sopenharmony_ci 4573b8021494Sopenharmony_ci 4574b8021494Sopenharmony_ci### MOVI ### 4575b8021494Sopenharmony_ci 4576b8021494Sopenharmony_ciVector move immediate. 4577b8021494Sopenharmony_ci 4578b8021494Sopenharmony_ci void movi(const VRegister& vd, 4579b8021494Sopenharmony_ci const uint64_t imm, 4580b8021494Sopenharmony_ci Shift shift = LSL, 4581b8021494Sopenharmony_ci const int shift_amount = 0) 4582b8021494Sopenharmony_ci 4583b8021494Sopenharmony_ci 4584b8021494Sopenharmony_ci### MUL ### 4585b8021494Sopenharmony_ci 4586b8021494Sopenharmony_ciMultiply by scalar element. 4587b8021494Sopenharmony_ci 4588b8021494Sopenharmony_ci void mul(const VRegister& vd, 4589b8021494Sopenharmony_ci const VRegister& vn, 4590b8021494Sopenharmony_ci const VRegister& vm, 4591b8021494Sopenharmony_ci int vm_index) 4592b8021494Sopenharmony_ci 4593b8021494Sopenharmony_ci 4594b8021494Sopenharmony_ci### MUL ### 4595b8021494Sopenharmony_ci 4596b8021494Sopenharmony_ciMultiply. 4597b8021494Sopenharmony_ci 4598b8021494Sopenharmony_ci void mul(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4599b8021494Sopenharmony_ci 4600b8021494Sopenharmony_ci 4601b8021494Sopenharmony_ci### MVN ### 4602b8021494Sopenharmony_ci 4603b8021494Sopenharmony_ciBitwise not. 4604b8021494Sopenharmony_ci 4605b8021494Sopenharmony_ci void mvn(const VRegister& vd, const VRegister& vn) 4606b8021494Sopenharmony_ci 4607b8021494Sopenharmony_ci 4608b8021494Sopenharmony_ci### MVNI ### 4609b8021494Sopenharmony_ci 4610b8021494Sopenharmony_ciVector move inverted immediate. 4611b8021494Sopenharmony_ci 4612b8021494Sopenharmony_ci void mvni(const VRegister& vd, 4613b8021494Sopenharmony_ci const int imm8, 4614b8021494Sopenharmony_ci Shift shift = LSL, 4615b8021494Sopenharmony_ci const int shift_amount = 0) 4616b8021494Sopenharmony_ci 4617b8021494Sopenharmony_ci 4618b8021494Sopenharmony_ci<a id="float-n"> 4619b8021494Sopenharmony_ci 4620b8021494Sopenharmony_ci### NEG ### 4621b8021494Sopenharmony_ci 4622b8021494Sopenharmony_ciNegate. 4623b8021494Sopenharmony_ci 4624b8021494Sopenharmony_ci void neg(const VRegister& vd, const VRegister& vn) 4625b8021494Sopenharmony_ci 4626b8021494Sopenharmony_ci 4627b8021494Sopenharmony_ci### NOT ### 4628b8021494Sopenharmony_ci 4629b8021494Sopenharmony_ciBitwise not. 4630b8021494Sopenharmony_ci 4631b8021494Sopenharmony_ci void not_(const VRegister& vd, const VRegister& vn) 4632b8021494Sopenharmony_ci 4633b8021494Sopenharmony_ci 4634b8021494Sopenharmony_ci<a id="float-o"> 4635b8021494Sopenharmony_ci 4636b8021494Sopenharmony_ci### ORN ### 4637b8021494Sopenharmony_ci 4638b8021494Sopenharmony_ciBitwise orn. 4639b8021494Sopenharmony_ci 4640b8021494Sopenharmony_ci void orn(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4641b8021494Sopenharmony_ci 4642b8021494Sopenharmony_ci 4643b8021494Sopenharmony_ci### ORR ### 4644b8021494Sopenharmony_ci 4645b8021494Sopenharmony_ciBitwise or immediate. 4646b8021494Sopenharmony_ci 4647b8021494Sopenharmony_ci void orr(const VRegister& vd, const int imm8, const int left_shift = 0) 4648b8021494Sopenharmony_ci 4649b8021494Sopenharmony_ci 4650b8021494Sopenharmony_ci### ORR ### 4651b8021494Sopenharmony_ci 4652b8021494Sopenharmony_ciBitwise or. 4653b8021494Sopenharmony_ci 4654b8021494Sopenharmony_ci void orr(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4655b8021494Sopenharmony_ci 4656b8021494Sopenharmony_ci 4657b8021494Sopenharmony_ci<a id="float-p"> 4658b8021494Sopenharmony_ci 4659b8021494Sopenharmony_ci### PMUL ### 4660b8021494Sopenharmony_ci 4661b8021494Sopenharmony_ciPolynomial multiply. 4662b8021494Sopenharmony_ci 4663b8021494Sopenharmony_ci void pmul(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4664b8021494Sopenharmony_ci 4665b8021494Sopenharmony_ci 4666b8021494Sopenharmony_ci### PMULL ### 4667b8021494Sopenharmony_ci 4668b8021494Sopenharmony_ciPolynomial multiply long. 4669b8021494Sopenharmony_ci 4670b8021494Sopenharmony_ci void pmull(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4671b8021494Sopenharmony_ci 4672b8021494Sopenharmony_ci 4673b8021494Sopenharmony_ci### PMULL2 ### 4674b8021494Sopenharmony_ci 4675b8021494Sopenharmony_ciPolynomial multiply long (second part). 4676b8021494Sopenharmony_ci 4677b8021494Sopenharmony_ci void pmull2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4678b8021494Sopenharmony_ci 4679b8021494Sopenharmony_ci 4680b8021494Sopenharmony_ci<a id="float-r"> 4681b8021494Sopenharmony_ci 4682b8021494Sopenharmony_ci### RADDHN ### 4683b8021494Sopenharmony_ci 4684b8021494Sopenharmony_ciRounding add narrow returning high half. 4685b8021494Sopenharmony_ci 4686b8021494Sopenharmony_ci void raddhn(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4687b8021494Sopenharmony_ci 4688b8021494Sopenharmony_ci 4689b8021494Sopenharmony_ci### RADDHN2 ### 4690b8021494Sopenharmony_ci 4691b8021494Sopenharmony_ciRounding add narrow returning high half (second part). 4692b8021494Sopenharmony_ci 4693b8021494Sopenharmony_ci void raddhn2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4694b8021494Sopenharmony_ci 4695b8021494Sopenharmony_ci 4696b8021494Sopenharmony_ci### RBIT ### 4697b8021494Sopenharmony_ci 4698b8021494Sopenharmony_ciReverse bit order. 4699b8021494Sopenharmony_ci 4700b8021494Sopenharmony_ci void rbit(const VRegister& vd, const VRegister& vn) 4701b8021494Sopenharmony_ci 4702b8021494Sopenharmony_ci 4703b8021494Sopenharmony_ci### REV16 ### 4704b8021494Sopenharmony_ci 4705b8021494Sopenharmony_ciReverse elements in 16-bit halfwords. 4706b8021494Sopenharmony_ci 4707b8021494Sopenharmony_ci void rev16(const VRegister& vd, const VRegister& vn) 4708b8021494Sopenharmony_ci 4709b8021494Sopenharmony_ci 4710b8021494Sopenharmony_ci### REV32 ### 4711b8021494Sopenharmony_ci 4712b8021494Sopenharmony_ciReverse elements in 32-bit words. 4713b8021494Sopenharmony_ci 4714b8021494Sopenharmony_ci void rev32(const VRegister& vd, const VRegister& vn) 4715b8021494Sopenharmony_ci 4716b8021494Sopenharmony_ci 4717b8021494Sopenharmony_ci### REV64 ### 4718b8021494Sopenharmony_ci 4719b8021494Sopenharmony_ciReverse elements in 64-bit doublewords. 4720b8021494Sopenharmony_ci 4721b8021494Sopenharmony_ci void rev64(const VRegister& vd, const VRegister& vn) 4722b8021494Sopenharmony_ci 4723b8021494Sopenharmony_ci 4724b8021494Sopenharmony_ci### RSHRN ### 4725b8021494Sopenharmony_ci 4726b8021494Sopenharmony_ciRounding shift right narrow by immediate. 4727b8021494Sopenharmony_ci 4728b8021494Sopenharmony_ci void rshrn(const VRegister& vd, const VRegister& vn, int shift) 4729b8021494Sopenharmony_ci 4730b8021494Sopenharmony_ci 4731b8021494Sopenharmony_ci### RSHRN2 ### 4732b8021494Sopenharmony_ci 4733b8021494Sopenharmony_ciRounding shift right narrow by immediate (second part). 4734b8021494Sopenharmony_ci 4735b8021494Sopenharmony_ci void rshrn2(const VRegister& vd, const VRegister& vn, int shift) 4736b8021494Sopenharmony_ci 4737b8021494Sopenharmony_ci 4738b8021494Sopenharmony_ci### RSUBHN ### 4739b8021494Sopenharmony_ci 4740b8021494Sopenharmony_ciRounding subtract narrow returning high half. 4741b8021494Sopenharmony_ci 4742b8021494Sopenharmony_ci void rsubhn(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4743b8021494Sopenharmony_ci 4744b8021494Sopenharmony_ci 4745b8021494Sopenharmony_ci### RSUBHN2 ### 4746b8021494Sopenharmony_ci 4747b8021494Sopenharmony_ciRounding subtract narrow returning high half (second part). 4748b8021494Sopenharmony_ci 4749b8021494Sopenharmony_ci void rsubhn2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4750b8021494Sopenharmony_ci 4751b8021494Sopenharmony_ci 4752b8021494Sopenharmony_ci<a id="float-s"> 4753b8021494Sopenharmony_ci 4754b8021494Sopenharmony_ci### SABA ### 4755b8021494Sopenharmony_ci 4756b8021494Sopenharmony_ciSigned absolute difference and accumulate. 4757b8021494Sopenharmony_ci 4758b8021494Sopenharmony_ci void saba(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4759b8021494Sopenharmony_ci 4760b8021494Sopenharmony_ci 4761b8021494Sopenharmony_ci### SABAL ### 4762b8021494Sopenharmony_ci 4763b8021494Sopenharmony_ciSigned absolute difference and accumulate long. 4764b8021494Sopenharmony_ci 4765b8021494Sopenharmony_ci void sabal(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4766b8021494Sopenharmony_ci 4767b8021494Sopenharmony_ci 4768b8021494Sopenharmony_ci### SABAL2 ### 4769b8021494Sopenharmony_ci 4770b8021494Sopenharmony_ciSigned absolute difference and accumulate long (second part). 4771b8021494Sopenharmony_ci 4772b8021494Sopenharmony_ci void sabal2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4773b8021494Sopenharmony_ci 4774b8021494Sopenharmony_ci 4775b8021494Sopenharmony_ci### SABD ### 4776b8021494Sopenharmony_ci 4777b8021494Sopenharmony_ciSigned absolute difference. 4778b8021494Sopenharmony_ci 4779b8021494Sopenharmony_ci void sabd(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4780b8021494Sopenharmony_ci 4781b8021494Sopenharmony_ci 4782b8021494Sopenharmony_ci### SABDL ### 4783b8021494Sopenharmony_ci 4784b8021494Sopenharmony_ciSigned absolute difference long. 4785b8021494Sopenharmony_ci 4786b8021494Sopenharmony_ci void sabdl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4787b8021494Sopenharmony_ci 4788b8021494Sopenharmony_ci 4789b8021494Sopenharmony_ci### SABDL2 ### 4790b8021494Sopenharmony_ci 4791b8021494Sopenharmony_ciSigned absolute difference long (second part). 4792b8021494Sopenharmony_ci 4793b8021494Sopenharmony_ci void sabdl2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4794b8021494Sopenharmony_ci 4795b8021494Sopenharmony_ci 4796b8021494Sopenharmony_ci### SADALP ### 4797b8021494Sopenharmony_ci 4798b8021494Sopenharmony_ciSigned pairwise long add and accumulate. 4799b8021494Sopenharmony_ci 4800b8021494Sopenharmony_ci void sadalp(const VRegister& vd, const VRegister& vn) 4801b8021494Sopenharmony_ci 4802b8021494Sopenharmony_ci 4803b8021494Sopenharmony_ci### SADDL ### 4804b8021494Sopenharmony_ci 4805b8021494Sopenharmony_ciSigned add long. 4806b8021494Sopenharmony_ci 4807b8021494Sopenharmony_ci void saddl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4808b8021494Sopenharmony_ci 4809b8021494Sopenharmony_ci 4810b8021494Sopenharmony_ci### SADDL2 ### 4811b8021494Sopenharmony_ci 4812b8021494Sopenharmony_ciSigned add long (second part). 4813b8021494Sopenharmony_ci 4814b8021494Sopenharmony_ci void saddl2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4815b8021494Sopenharmony_ci 4816b8021494Sopenharmony_ci 4817b8021494Sopenharmony_ci### SADDLP ### 4818b8021494Sopenharmony_ci 4819b8021494Sopenharmony_ciSigned pairwise long add. 4820b8021494Sopenharmony_ci 4821b8021494Sopenharmony_ci void saddlp(const VRegister& vd, const VRegister& vn) 4822b8021494Sopenharmony_ci 4823b8021494Sopenharmony_ci 4824b8021494Sopenharmony_ci### SADDLV ### 4825b8021494Sopenharmony_ci 4826b8021494Sopenharmony_ciSigned add long across vector. 4827b8021494Sopenharmony_ci 4828b8021494Sopenharmony_ci void saddlv(const VRegister& vd, const VRegister& vn) 4829b8021494Sopenharmony_ci 4830b8021494Sopenharmony_ci 4831b8021494Sopenharmony_ci### SADDW ### 4832b8021494Sopenharmony_ci 4833b8021494Sopenharmony_ciSigned add wide. 4834b8021494Sopenharmony_ci 4835b8021494Sopenharmony_ci void saddw(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4836b8021494Sopenharmony_ci 4837b8021494Sopenharmony_ci 4838b8021494Sopenharmony_ci### SADDW2 ### 4839b8021494Sopenharmony_ci 4840b8021494Sopenharmony_ciSigned add wide (second part). 4841b8021494Sopenharmony_ci 4842b8021494Sopenharmony_ci void saddw2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4843b8021494Sopenharmony_ci 4844b8021494Sopenharmony_ci 4845b8021494Sopenharmony_ci### SCVTF ### 4846b8021494Sopenharmony_ci 4847b8021494Sopenharmony_ciConvert signed integer or fixed point to FP. 4848b8021494Sopenharmony_ci 4849b8021494Sopenharmony_ci void scvtf(const VRegister& fd, const Register& rn, int fbits = 0) 4850b8021494Sopenharmony_ci 4851b8021494Sopenharmony_ci 4852b8021494Sopenharmony_ci### SCVTF ### 4853b8021494Sopenharmony_ci 4854b8021494Sopenharmony_ciConvert signed integer or fixed-point to FP. 4855b8021494Sopenharmony_ci 4856b8021494Sopenharmony_ci void scvtf(const VRegister& fd, const VRegister& vn, int fbits = 0) 4857b8021494Sopenharmony_ci 4858b8021494Sopenharmony_ci 4859b8021494Sopenharmony_ci### SDOT ### 4860b8021494Sopenharmony_ci 4861b8021494Sopenharmony_ciSigned dot product _(Armv8.2)_. 4862b8021494Sopenharmony_ci 4863b8021494Sopenharmony_ci void sdot(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4864b8021494Sopenharmony_ci 4865b8021494Sopenharmony_ci 4866b8021494Sopenharmony_ci### SDOT ### 4867b8021494Sopenharmony_ci 4868b8021494Sopenharmony_ciSigned dot product by element _(Armv8.2)_. 4869b8021494Sopenharmony_ci 4870b8021494Sopenharmony_ci void sdot(const VRegister& vd, 4871b8021494Sopenharmony_ci const VRegister& vn, 4872b8021494Sopenharmony_ci const VRegister& vm, 4873b8021494Sopenharmony_ci int vm_index) 4874b8021494Sopenharmony_ci 4875b8021494Sopenharmony_ci 4876b8021494Sopenharmony_ci### SHADD ### 4877b8021494Sopenharmony_ci 4878b8021494Sopenharmony_ciSigned halving add. 4879b8021494Sopenharmony_ci 4880b8021494Sopenharmony_ci void shadd(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4881b8021494Sopenharmony_ci 4882b8021494Sopenharmony_ci 4883b8021494Sopenharmony_ci### SHL ### 4884b8021494Sopenharmony_ci 4885b8021494Sopenharmony_ciShift left by immediate. 4886b8021494Sopenharmony_ci 4887b8021494Sopenharmony_ci void shl(const VRegister& vd, const VRegister& vn, int shift) 4888b8021494Sopenharmony_ci 4889b8021494Sopenharmony_ci 4890b8021494Sopenharmony_ci### SHLL ### 4891b8021494Sopenharmony_ci 4892b8021494Sopenharmony_ciShift left long by element size. 4893b8021494Sopenharmony_ci 4894b8021494Sopenharmony_ci void shll(const VRegister& vd, const VRegister& vn, int shift) 4895b8021494Sopenharmony_ci 4896b8021494Sopenharmony_ci 4897b8021494Sopenharmony_ci### SHLL2 ### 4898b8021494Sopenharmony_ci 4899b8021494Sopenharmony_ciShift left long by element size (second part). 4900b8021494Sopenharmony_ci 4901b8021494Sopenharmony_ci void shll2(const VRegister& vd, const VRegister& vn, int shift) 4902b8021494Sopenharmony_ci 4903b8021494Sopenharmony_ci 4904b8021494Sopenharmony_ci### SHRN ### 4905b8021494Sopenharmony_ci 4906b8021494Sopenharmony_ciShift right narrow by immediate. 4907b8021494Sopenharmony_ci 4908b8021494Sopenharmony_ci void shrn(const VRegister& vd, const VRegister& vn, int shift) 4909b8021494Sopenharmony_ci 4910b8021494Sopenharmony_ci 4911b8021494Sopenharmony_ci### SHRN2 ### 4912b8021494Sopenharmony_ci 4913b8021494Sopenharmony_ciShift right narrow by immediate (second part). 4914b8021494Sopenharmony_ci 4915b8021494Sopenharmony_ci void shrn2(const VRegister& vd, const VRegister& vn, int shift) 4916b8021494Sopenharmony_ci 4917b8021494Sopenharmony_ci 4918b8021494Sopenharmony_ci### SHSUB ### 4919b8021494Sopenharmony_ci 4920b8021494Sopenharmony_ciSigned halving sub. 4921b8021494Sopenharmony_ci 4922b8021494Sopenharmony_ci void shsub(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4923b8021494Sopenharmony_ci 4924b8021494Sopenharmony_ci 4925b8021494Sopenharmony_ci### SLI ### 4926b8021494Sopenharmony_ci 4927b8021494Sopenharmony_ciShift left by immediate and insert. 4928b8021494Sopenharmony_ci 4929b8021494Sopenharmony_ci void sli(const VRegister& vd, const VRegister& vn, int shift) 4930b8021494Sopenharmony_ci 4931b8021494Sopenharmony_ci 4932b8021494Sopenharmony_ci### SMAX ### 4933b8021494Sopenharmony_ci 4934b8021494Sopenharmony_ciSigned maximum. 4935b8021494Sopenharmony_ci 4936b8021494Sopenharmony_ci void smax(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4937b8021494Sopenharmony_ci 4938b8021494Sopenharmony_ci 4939b8021494Sopenharmony_ci### SMAXP ### 4940b8021494Sopenharmony_ci 4941b8021494Sopenharmony_ciSigned pairwise maximum. 4942b8021494Sopenharmony_ci 4943b8021494Sopenharmony_ci void smaxp(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4944b8021494Sopenharmony_ci 4945b8021494Sopenharmony_ci 4946b8021494Sopenharmony_ci### SMAXV ### 4947b8021494Sopenharmony_ci 4948b8021494Sopenharmony_ciSigned maximum across vector. 4949b8021494Sopenharmony_ci 4950b8021494Sopenharmony_ci void smaxv(const VRegister& vd, const VRegister& vn) 4951b8021494Sopenharmony_ci 4952b8021494Sopenharmony_ci 4953b8021494Sopenharmony_ci### SMIN ### 4954b8021494Sopenharmony_ci 4955b8021494Sopenharmony_ciSigned minimum. 4956b8021494Sopenharmony_ci 4957b8021494Sopenharmony_ci void smin(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4958b8021494Sopenharmony_ci 4959b8021494Sopenharmony_ci 4960b8021494Sopenharmony_ci### SMINP ### 4961b8021494Sopenharmony_ci 4962b8021494Sopenharmony_ciSigned minimum pairwise. 4963b8021494Sopenharmony_ci 4964b8021494Sopenharmony_ci void sminp(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4965b8021494Sopenharmony_ci 4966b8021494Sopenharmony_ci 4967b8021494Sopenharmony_ci### SMINV ### 4968b8021494Sopenharmony_ci 4969b8021494Sopenharmony_ciSigned minimum across vector. 4970b8021494Sopenharmony_ci 4971b8021494Sopenharmony_ci void sminv(const VRegister& vd, const VRegister& vn) 4972b8021494Sopenharmony_ci 4973b8021494Sopenharmony_ci 4974b8021494Sopenharmony_ci### SMLAL ### 4975b8021494Sopenharmony_ci 4976b8021494Sopenharmony_ciSigned long multiply-add by scalar element. 4977b8021494Sopenharmony_ci 4978b8021494Sopenharmony_ci void smlal(const VRegister& vd, 4979b8021494Sopenharmony_ci const VRegister& vn, 4980b8021494Sopenharmony_ci const VRegister& vm, 4981b8021494Sopenharmony_ci int vm_index) 4982b8021494Sopenharmony_ci 4983b8021494Sopenharmony_ci 4984b8021494Sopenharmony_ci### SMLAL ### 4985b8021494Sopenharmony_ci 4986b8021494Sopenharmony_ciSigned long multiply-add. 4987b8021494Sopenharmony_ci 4988b8021494Sopenharmony_ci void smlal(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4989b8021494Sopenharmony_ci 4990b8021494Sopenharmony_ci 4991b8021494Sopenharmony_ci### SMLAL2 ### 4992b8021494Sopenharmony_ci 4993b8021494Sopenharmony_ciSigned long multiply-add (second part). 4994b8021494Sopenharmony_ci 4995b8021494Sopenharmony_ci void smlal2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 4996b8021494Sopenharmony_ci 4997b8021494Sopenharmony_ci 4998b8021494Sopenharmony_ci### SMLAL2 ### 4999b8021494Sopenharmony_ci 5000b8021494Sopenharmony_ciSigned long multiply-add by scalar element (second part). 5001b8021494Sopenharmony_ci 5002b8021494Sopenharmony_ci void smlal2(const VRegister& vd, 5003b8021494Sopenharmony_ci const VRegister& vn, 5004b8021494Sopenharmony_ci const VRegister& vm, 5005b8021494Sopenharmony_ci int vm_index) 5006b8021494Sopenharmony_ci 5007b8021494Sopenharmony_ci 5008b8021494Sopenharmony_ci### SMLSL ### 5009b8021494Sopenharmony_ci 5010b8021494Sopenharmony_ciSigned long multiply-sub by scalar element. 5011b8021494Sopenharmony_ci 5012b8021494Sopenharmony_ci void smlsl(const VRegister& vd, 5013b8021494Sopenharmony_ci const VRegister& vn, 5014b8021494Sopenharmony_ci const VRegister& vm, 5015b8021494Sopenharmony_ci int vm_index) 5016b8021494Sopenharmony_ci 5017b8021494Sopenharmony_ci 5018b8021494Sopenharmony_ci### SMLSL ### 5019b8021494Sopenharmony_ci 5020b8021494Sopenharmony_ciSigned long multiply-sub. 5021b8021494Sopenharmony_ci 5022b8021494Sopenharmony_ci void smlsl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5023b8021494Sopenharmony_ci 5024b8021494Sopenharmony_ci 5025b8021494Sopenharmony_ci### SMLSL2 ### 5026b8021494Sopenharmony_ci 5027b8021494Sopenharmony_ciSigned long multiply-sub (second part). 5028b8021494Sopenharmony_ci 5029b8021494Sopenharmony_ci void smlsl2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5030b8021494Sopenharmony_ci 5031b8021494Sopenharmony_ci 5032b8021494Sopenharmony_ci### SMLSL2 ### 5033b8021494Sopenharmony_ci 5034b8021494Sopenharmony_ciSigned long multiply-sub by scalar element (second part). 5035b8021494Sopenharmony_ci 5036b8021494Sopenharmony_ci void smlsl2(const VRegister& vd, 5037b8021494Sopenharmony_ci const VRegister& vn, 5038b8021494Sopenharmony_ci const VRegister& vm, 5039b8021494Sopenharmony_ci int vm_index) 5040b8021494Sopenharmony_ci 5041b8021494Sopenharmony_ci 5042b8021494Sopenharmony_ci### SMMLA ### 5043b8021494Sopenharmony_ci 5044b8021494Sopenharmony_ciSigned 8-bit integer matrix multiply-accumulate (vector). 5045b8021494Sopenharmony_ci 5046b8021494Sopenharmony_ci void smmla(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5047b8021494Sopenharmony_ci 5048b8021494Sopenharmony_ci 5049b8021494Sopenharmony_ci### SMOV ### 5050b8021494Sopenharmony_ci 5051b8021494Sopenharmony_ciSigned move vector element to general-purpose register. 5052b8021494Sopenharmony_ci 5053b8021494Sopenharmony_ci void smov(const Register& rd, const VRegister& vn, int vn_index) 5054b8021494Sopenharmony_ci 5055b8021494Sopenharmony_ci 5056b8021494Sopenharmony_ci### SMULL ### 5057b8021494Sopenharmony_ci 5058b8021494Sopenharmony_ciSigned long multiply by scalar element. 5059b8021494Sopenharmony_ci 5060b8021494Sopenharmony_ci void smull(const VRegister& vd, 5061b8021494Sopenharmony_ci const VRegister& vn, 5062b8021494Sopenharmony_ci const VRegister& vm, 5063b8021494Sopenharmony_ci int vm_index) 5064b8021494Sopenharmony_ci 5065b8021494Sopenharmony_ci 5066b8021494Sopenharmony_ci### SMULL ### 5067b8021494Sopenharmony_ci 5068b8021494Sopenharmony_ciSigned long multiply. 5069b8021494Sopenharmony_ci 5070b8021494Sopenharmony_ci void smull(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5071b8021494Sopenharmony_ci 5072b8021494Sopenharmony_ci 5073b8021494Sopenharmony_ci### SMULL2 ### 5074b8021494Sopenharmony_ci 5075b8021494Sopenharmony_ciSigned long multiply (second part). 5076b8021494Sopenharmony_ci 5077b8021494Sopenharmony_ci void smull2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5078b8021494Sopenharmony_ci 5079b8021494Sopenharmony_ci 5080b8021494Sopenharmony_ci### SMULL2 ### 5081b8021494Sopenharmony_ci 5082b8021494Sopenharmony_ciSigned long multiply by scalar element (second part). 5083b8021494Sopenharmony_ci 5084b8021494Sopenharmony_ci void smull2(const VRegister& vd, 5085b8021494Sopenharmony_ci const VRegister& vn, 5086b8021494Sopenharmony_ci const VRegister& vm, 5087b8021494Sopenharmony_ci int vm_index) 5088b8021494Sopenharmony_ci 5089b8021494Sopenharmony_ci 5090b8021494Sopenharmony_ci### SQABS ### 5091b8021494Sopenharmony_ci 5092b8021494Sopenharmony_ciSigned saturating absolute value. 5093b8021494Sopenharmony_ci 5094b8021494Sopenharmony_ci void sqabs(const VRegister& vd, const VRegister& vn) 5095b8021494Sopenharmony_ci 5096b8021494Sopenharmony_ci 5097b8021494Sopenharmony_ci### SQADD ### 5098b8021494Sopenharmony_ci 5099b8021494Sopenharmony_ciSigned saturating add. 5100b8021494Sopenharmony_ci 5101b8021494Sopenharmony_ci void sqadd(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5102b8021494Sopenharmony_ci 5103b8021494Sopenharmony_ci 5104b8021494Sopenharmony_ci### SQDMLAL ### 5105b8021494Sopenharmony_ci 5106b8021494Sopenharmony_ciSigned saturating doubling long multiply-add by element. 5107b8021494Sopenharmony_ci 5108b8021494Sopenharmony_ci void sqdmlal(const VRegister& vd, 5109b8021494Sopenharmony_ci const VRegister& vn, 5110b8021494Sopenharmony_ci const VRegister& vm, 5111b8021494Sopenharmony_ci int vm_index) 5112b8021494Sopenharmony_ci 5113b8021494Sopenharmony_ci 5114b8021494Sopenharmony_ci### SQDMLAL ### 5115b8021494Sopenharmony_ci 5116b8021494Sopenharmony_ciSigned saturating doubling long multiply-add. 5117b8021494Sopenharmony_ci 5118b8021494Sopenharmony_ci void sqdmlal(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5119b8021494Sopenharmony_ci 5120b8021494Sopenharmony_ci 5121b8021494Sopenharmony_ci### SQDMLAL2 ### 5122b8021494Sopenharmony_ci 5123b8021494Sopenharmony_ciSigned saturating doubling long multiply-add (second part). 5124b8021494Sopenharmony_ci 5125b8021494Sopenharmony_ci void sqdmlal2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5126b8021494Sopenharmony_ci 5127b8021494Sopenharmony_ci 5128b8021494Sopenharmony_ci### SQDMLAL2 ### 5129b8021494Sopenharmony_ci 5130b8021494Sopenharmony_ciSigned saturating doubling long multiply-add by element (second part). 5131b8021494Sopenharmony_ci 5132b8021494Sopenharmony_ci void sqdmlal2(const VRegister& vd, 5133b8021494Sopenharmony_ci const VRegister& vn, 5134b8021494Sopenharmony_ci const VRegister& vm, 5135b8021494Sopenharmony_ci int vm_index) 5136b8021494Sopenharmony_ci 5137b8021494Sopenharmony_ci 5138b8021494Sopenharmony_ci### SQDMLSL ### 5139b8021494Sopenharmony_ci 5140b8021494Sopenharmony_ciSigned saturating doubling long multiply-sub by element. 5141b8021494Sopenharmony_ci 5142b8021494Sopenharmony_ci void sqdmlsl(const VRegister& vd, 5143b8021494Sopenharmony_ci const VRegister& vn, 5144b8021494Sopenharmony_ci const VRegister& vm, 5145b8021494Sopenharmony_ci int vm_index) 5146b8021494Sopenharmony_ci 5147b8021494Sopenharmony_ci 5148b8021494Sopenharmony_ci### SQDMLSL ### 5149b8021494Sopenharmony_ci 5150b8021494Sopenharmony_ciSigned saturating doubling long multiply-subtract. 5151b8021494Sopenharmony_ci 5152b8021494Sopenharmony_ci void sqdmlsl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5153b8021494Sopenharmony_ci 5154b8021494Sopenharmony_ci 5155b8021494Sopenharmony_ci### SQDMLSL2 ### 5156b8021494Sopenharmony_ci 5157b8021494Sopenharmony_ciSigned saturating doubling long multiply-sub by element (second part). 5158b8021494Sopenharmony_ci 5159b8021494Sopenharmony_ci void sqdmlsl2(const VRegister& vd, 5160b8021494Sopenharmony_ci const VRegister& vn, 5161b8021494Sopenharmony_ci const VRegister& vm, 5162b8021494Sopenharmony_ci int vm_index) 5163b8021494Sopenharmony_ci 5164b8021494Sopenharmony_ci 5165b8021494Sopenharmony_ci### SQDMLSL2 ### 5166b8021494Sopenharmony_ci 5167b8021494Sopenharmony_ciSigned saturating doubling long multiply-subtract (second part). 5168b8021494Sopenharmony_ci 5169b8021494Sopenharmony_ci void sqdmlsl2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5170b8021494Sopenharmony_ci 5171b8021494Sopenharmony_ci 5172b8021494Sopenharmony_ci### SQDMULH ### 5173b8021494Sopenharmony_ci 5174b8021494Sopenharmony_ciSigned saturating doubling multiply element returning high half. 5175b8021494Sopenharmony_ci 5176b8021494Sopenharmony_ci void sqdmulh(const VRegister& vd, 5177b8021494Sopenharmony_ci const VRegister& vn, 5178b8021494Sopenharmony_ci const VRegister& vm, 5179b8021494Sopenharmony_ci int vm_index) 5180b8021494Sopenharmony_ci 5181b8021494Sopenharmony_ci 5182b8021494Sopenharmony_ci### SQDMULH ### 5183b8021494Sopenharmony_ci 5184b8021494Sopenharmony_ciSigned saturating doubling multiply returning high half. 5185b8021494Sopenharmony_ci 5186b8021494Sopenharmony_ci void sqdmulh(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5187b8021494Sopenharmony_ci 5188b8021494Sopenharmony_ci 5189b8021494Sopenharmony_ci### SQDMULL ### 5190b8021494Sopenharmony_ci 5191b8021494Sopenharmony_ciSigned saturating double long multiply by element. 5192b8021494Sopenharmony_ci 5193b8021494Sopenharmony_ci void sqdmull(const VRegister& vd, 5194b8021494Sopenharmony_ci const VRegister& vn, 5195b8021494Sopenharmony_ci const VRegister& vm, 5196b8021494Sopenharmony_ci int vm_index) 5197b8021494Sopenharmony_ci 5198b8021494Sopenharmony_ci 5199b8021494Sopenharmony_ci### SQDMULL ### 5200b8021494Sopenharmony_ci 5201b8021494Sopenharmony_ciSigned saturating doubling long multiply. 5202b8021494Sopenharmony_ci 5203b8021494Sopenharmony_ci void sqdmull(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5204b8021494Sopenharmony_ci 5205b8021494Sopenharmony_ci 5206b8021494Sopenharmony_ci### SQDMULL2 ### 5207b8021494Sopenharmony_ci 5208b8021494Sopenharmony_ciSigned saturating double long multiply by element (second part). 5209b8021494Sopenharmony_ci 5210b8021494Sopenharmony_ci void sqdmull2(const VRegister& vd, 5211b8021494Sopenharmony_ci const VRegister& vn, 5212b8021494Sopenharmony_ci const VRegister& vm, 5213b8021494Sopenharmony_ci int vm_index) 5214b8021494Sopenharmony_ci 5215b8021494Sopenharmony_ci 5216b8021494Sopenharmony_ci### SQDMULL2 ### 5217b8021494Sopenharmony_ci 5218b8021494Sopenharmony_ciSigned saturating doubling long multiply (second part). 5219b8021494Sopenharmony_ci 5220b8021494Sopenharmony_ci void sqdmull2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5221b8021494Sopenharmony_ci 5222b8021494Sopenharmony_ci 5223b8021494Sopenharmony_ci### SQNEG ### 5224b8021494Sopenharmony_ci 5225b8021494Sopenharmony_ciSigned saturating negate. 5226b8021494Sopenharmony_ci 5227b8021494Sopenharmony_ci void sqneg(const VRegister& vd, const VRegister& vn) 5228b8021494Sopenharmony_ci 5229b8021494Sopenharmony_ci 5230b8021494Sopenharmony_ci### SQRDMLAH ### 5231b8021494Sopenharmony_ci 5232b8021494Sopenharmony_ciSigned saturating rounding doubling multiply accumulate element returning high half _(Armv8.1)_. 5233b8021494Sopenharmony_ci 5234b8021494Sopenharmony_ci void sqrdmlah(const VRegister& vd, 5235b8021494Sopenharmony_ci const VRegister& vn, 5236b8021494Sopenharmony_ci const VRegister& vm, 5237b8021494Sopenharmony_ci int vm_index) 5238b8021494Sopenharmony_ci 5239b8021494Sopenharmony_ci 5240b8021494Sopenharmony_ci### SQRDMLAH ### 5241b8021494Sopenharmony_ci 5242b8021494Sopenharmony_ciSigned saturating rounding doubling multiply accumulate returning high half _(Armv8.1)_. 5243b8021494Sopenharmony_ci 5244b8021494Sopenharmony_ci void sqrdmlah(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5245b8021494Sopenharmony_ci 5246b8021494Sopenharmony_ci 5247b8021494Sopenharmony_ci### SQRDMLSH ### 5248b8021494Sopenharmony_ci 5249b8021494Sopenharmony_ciSigned saturating rounding doubling multiply subtract element returning high half _(Armv8.1)_. 5250b8021494Sopenharmony_ci 5251b8021494Sopenharmony_ci void sqrdmlsh(const VRegister& vd, 5252b8021494Sopenharmony_ci const VRegister& vn, 5253b8021494Sopenharmony_ci const VRegister& vm, 5254b8021494Sopenharmony_ci int vm_index) 5255b8021494Sopenharmony_ci 5256b8021494Sopenharmony_ci 5257b8021494Sopenharmony_ci### SQRDMLSH ### 5258b8021494Sopenharmony_ci 5259b8021494Sopenharmony_ciSigned saturating rounding doubling multiply subtract returning high half _(Armv8.1)_. 5260b8021494Sopenharmony_ci 5261b8021494Sopenharmony_ci void sqrdmlsh(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5262b8021494Sopenharmony_ci 5263b8021494Sopenharmony_ci 5264b8021494Sopenharmony_ci### SQRDMULH ### 5265b8021494Sopenharmony_ci 5266b8021494Sopenharmony_ciSigned saturating rounding doubling multiply element returning high half. 5267b8021494Sopenharmony_ci 5268b8021494Sopenharmony_ci void sqrdmulh(const VRegister& vd, 5269b8021494Sopenharmony_ci const VRegister& vn, 5270b8021494Sopenharmony_ci const VRegister& vm, 5271b8021494Sopenharmony_ci int vm_index) 5272b8021494Sopenharmony_ci 5273b8021494Sopenharmony_ci 5274b8021494Sopenharmony_ci### SQRDMULH ### 5275b8021494Sopenharmony_ci 5276b8021494Sopenharmony_ciSigned saturating rounding doubling multiply returning high half. 5277b8021494Sopenharmony_ci 5278b8021494Sopenharmony_ci void sqrdmulh(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5279b8021494Sopenharmony_ci 5280b8021494Sopenharmony_ci 5281b8021494Sopenharmony_ci### SQRSHL ### 5282b8021494Sopenharmony_ci 5283b8021494Sopenharmony_ciSigned saturating rounding shift left by register. 5284b8021494Sopenharmony_ci 5285b8021494Sopenharmony_ci void sqrshl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5286b8021494Sopenharmony_ci 5287b8021494Sopenharmony_ci 5288b8021494Sopenharmony_ci### SQRSHRN ### 5289b8021494Sopenharmony_ci 5290b8021494Sopenharmony_ciSigned saturating rounded shift right narrow by immediate. 5291b8021494Sopenharmony_ci 5292b8021494Sopenharmony_ci void sqrshrn(const VRegister& vd, const VRegister& vn, int shift) 5293b8021494Sopenharmony_ci 5294b8021494Sopenharmony_ci 5295b8021494Sopenharmony_ci### SQRSHRN2 ### 5296b8021494Sopenharmony_ci 5297b8021494Sopenharmony_ciSigned saturating rounded shift right narrow by immediate (second part). 5298b8021494Sopenharmony_ci 5299b8021494Sopenharmony_ci void sqrshrn2(const VRegister& vd, const VRegister& vn, int shift) 5300b8021494Sopenharmony_ci 5301b8021494Sopenharmony_ci 5302b8021494Sopenharmony_ci### SQRSHRUN ### 5303b8021494Sopenharmony_ci 5304b8021494Sopenharmony_ciSigned sat rounded shift right unsigned narrow by immediate. 5305b8021494Sopenharmony_ci 5306b8021494Sopenharmony_ci void sqrshrun(const VRegister& vd, const VRegister& vn, int shift) 5307b8021494Sopenharmony_ci 5308b8021494Sopenharmony_ci 5309b8021494Sopenharmony_ci### SQRSHRUN2 ### 5310b8021494Sopenharmony_ci 5311b8021494Sopenharmony_ciSigned sat rounded shift right unsigned narrow by immediate (second part). 5312b8021494Sopenharmony_ci 5313b8021494Sopenharmony_ci void sqrshrun2(const VRegister& vd, const VRegister& vn, int shift) 5314b8021494Sopenharmony_ci 5315b8021494Sopenharmony_ci 5316b8021494Sopenharmony_ci### SQSHL ### 5317b8021494Sopenharmony_ci 5318b8021494Sopenharmony_ciSigned saturating shift left by immediate. 5319b8021494Sopenharmony_ci 5320b8021494Sopenharmony_ci void sqshl(const VRegister& vd, const VRegister& vn, int shift) 5321b8021494Sopenharmony_ci 5322b8021494Sopenharmony_ci 5323b8021494Sopenharmony_ci### SQSHL ### 5324b8021494Sopenharmony_ci 5325b8021494Sopenharmony_ciSigned saturating shift left by register. 5326b8021494Sopenharmony_ci 5327b8021494Sopenharmony_ci void sqshl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5328b8021494Sopenharmony_ci 5329b8021494Sopenharmony_ci 5330b8021494Sopenharmony_ci### SQSHLU ### 5331b8021494Sopenharmony_ci 5332b8021494Sopenharmony_ciSigned saturating shift left unsigned by immediate. 5333b8021494Sopenharmony_ci 5334b8021494Sopenharmony_ci void sqshlu(const VRegister& vd, const VRegister& vn, int shift) 5335b8021494Sopenharmony_ci 5336b8021494Sopenharmony_ci 5337b8021494Sopenharmony_ci### SQSHRN ### 5338b8021494Sopenharmony_ci 5339b8021494Sopenharmony_ciSigned saturating shift right narrow by immediate. 5340b8021494Sopenharmony_ci 5341b8021494Sopenharmony_ci void sqshrn(const VRegister& vd, const VRegister& vn, int shift) 5342b8021494Sopenharmony_ci 5343b8021494Sopenharmony_ci 5344b8021494Sopenharmony_ci### SQSHRN2 ### 5345b8021494Sopenharmony_ci 5346b8021494Sopenharmony_ciSigned saturating shift right narrow by immediate (second part). 5347b8021494Sopenharmony_ci 5348b8021494Sopenharmony_ci void sqshrn2(const VRegister& vd, const VRegister& vn, int shift) 5349b8021494Sopenharmony_ci 5350b8021494Sopenharmony_ci 5351b8021494Sopenharmony_ci### SQSHRUN ### 5352b8021494Sopenharmony_ci 5353b8021494Sopenharmony_ciSigned saturating shift right unsigned narrow by immediate. 5354b8021494Sopenharmony_ci 5355b8021494Sopenharmony_ci void sqshrun(const VRegister& vd, const VRegister& vn, int shift) 5356b8021494Sopenharmony_ci 5357b8021494Sopenharmony_ci 5358b8021494Sopenharmony_ci### SQSHRUN2 ### 5359b8021494Sopenharmony_ci 5360b8021494Sopenharmony_ciSigned saturating shift right unsigned narrow by immediate (second part). 5361b8021494Sopenharmony_ci 5362b8021494Sopenharmony_ci void sqshrun2(const VRegister& vd, const VRegister& vn, int shift) 5363b8021494Sopenharmony_ci 5364b8021494Sopenharmony_ci 5365b8021494Sopenharmony_ci### SQSUB ### 5366b8021494Sopenharmony_ci 5367b8021494Sopenharmony_ciSigned saturating subtract. 5368b8021494Sopenharmony_ci 5369b8021494Sopenharmony_ci void sqsub(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5370b8021494Sopenharmony_ci 5371b8021494Sopenharmony_ci 5372b8021494Sopenharmony_ci### SQXTN ### 5373b8021494Sopenharmony_ci 5374b8021494Sopenharmony_ciSigned saturating extract narrow. 5375b8021494Sopenharmony_ci 5376b8021494Sopenharmony_ci void sqxtn(const VRegister& vd, const VRegister& vn) 5377b8021494Sopenharmony_ci 5378b8021494Sopenharmony_ci 5379b8021494Sopenharmony_ci### SQXTN2 ### 5380b8021494Sopenharmony_ci 5381b8021494Sopenharmony_ciSigned saturating extract narrow (second part). 5382b8021494Sopenharmony_ci 5383b8021494Sopenharmony_ci void sqxtn2(const VRegister& vd, const VRegister& vn) 5384b8021494Sopenharmony_ci 5385b8021494Sopenharmony_ci 5386b8021494Sopenharmony_ci### SQXTUN ### 5387b8021494Sopenharmony_ci 5388b8021494Sopenharmony_ciSigned saturating extract unsigned narrow. 5389b8021494Sopenharmony_ci 5390b8021494Sopenharmony_ci void sqxtun(const VRegister& vd, const VRegister& vn) 5391b8021494Sopenharmony_ci 5392b8021494Sopenharmony_ci 5393b8021494Sopenharmony_ci### SQXTUN2 ### 5394b8021494Sopenharmony_ci 5395b8021494Sopenharmony_ciSigned saturating extract unsigned narrow (second part). 5396b8021494Sopenharmony_ci 5397b8021494Sopenharmony_ci void sqxtun2(const VRegister& vd, const VRegister& vn) 5398b8021494Sopenharmony_ci 5399b8021494Sopenharmony_ci 5400b8021494Sopenharmony_ci### SRHADD ### 5401b8021494Sopenharmony_ci 5402b8021494Sopenharmony_ciSigned rounding halving add. 5403b8021494Sopenharmony_ci 5404b8021494Sopenharmony_ci void srhadd(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5405b8021494Sopenharmony_ci 5406b8021494Sopenharmony_ci 5407b8021494Sopenharmony_ci### SRI ### 5408b8021494Sopenharmony_ci 5409b8021494Sopenharmony_ciShift right by immediate and insert. 5410b8021494Sopenharmony_ci 5411b8021494Sopenharmony_ci void sri(const VRegister& vd, const VRegister& vn, int shift) 5412b8021494Sopenharmony_ci 5413b8021494Sopenharmony_ci 5414b8021494Sopenharmony_ci### SRSHL ### 5415b8021494Sopenharmony_ci 5416b8021494Sopenharmony_ciSigned rounding shift left by register. 5417b8021494Sopenharmony_ci 5418b8021494Sopenharmony_ci void srshl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5419b8021494Sopenharmony_ci 5420b8021494Sopenharmony_ci 5421b8021494Sopenharmony_ci### SRSHR ### 5422b8021494Sopenharmony_ci 5423b8021494Sopenharmony_ciSigned rounding shift right by immediate. 5424b8021494Sopenharmony_ci 5425b8021494Sopenharmony_ci void srshr(const VRegister& vd, const VRegister& vn, int shift) 5426b8021494Sopenharmony_ci 5427b8021494Sopenharmony_ci 5428b8021494Sopenharmony_ci### SRSRA ### 5429b8021494Sopenharmony_ci 5430b8021494Sopenharmony_ciSigned rounding shift right by immediate and accumulate. 5431b8021494Sopenharmony_ci 5432b8021494Sopenharmony_ci void srsra(const VRegister& vd, const VRegister& vn, int shift) 5433b8021494Sopenharmony_ci 5434b8021494Sopenharmony_ci 5435b8021494Sopenharmony_ci### SSHL ### 5436b8021494Sopenharmony_ci 5437b8021494Sopenharmony_ciSigned shift left by register. 5438b8021494Sopenharmony_ci 5439b8021494Sopenharmony_ci void sshl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5440b8021494Sopenharmony_ci 5441b8021494Sopenharmony_ci 5442b8021494Sopenharmony_ci### SSHLL ### 5443b8021494Sopenharmony_ci 5444b8021494Sopenharmony_ciSigned shift left long by immediate. 5445b8021494Sopenharmony_ci 5446b8021494Sopenharmony_ci void sshll(const VRegister& vd, const VRegister& vn, int shift) 5447b8021494Sopenharmony_ci 5448b8021494Sopenharmony_ci 5449b8021494Sopenharmony_ci### SSHLL2 ### 5450b8021494Sopenharmony_ci 5451b8021494Sopenharmony_ciSigned shift left long by immediate (second part). 5452b8021494Sopenharmony_ci 5453b8021494Sopenharmony_ci void sshll2(const VRegister& vd, const VRegister& vn, int shift) 5454b8021494Sopenharmony_ci 5455b8021494Sopenharmony_ci 5456b8021494Sopenharmony_ci### SSHR ### 5457b8021494Sopenharmony_ci 5458b8021494Sopenharmony_ciSigned shift right by immediate. 5459b8021494Sopenharmony_ci 5460b8021494Sopenharmony_ci void sshr(const VRegister& vd, const VRegister& vn, int shift) 5461b8021494Sopenharmony_ci 5462b8021494Sopenharmony_ci 5463b8021494Sopenharmony_ci### SSRA ### 5464b8021494Sopenharmony_ci 5465b8021494Sopenharmony_ciSigned shift right by immediate and accumulate. 5466b8021494Sopenharmony_ci 5467b8021494Sopenharmony_ci void ssra(const VRegister& vd, const VRegister& vn, int shift) 5468b8021494Sopenharmony_ci 5469b8021494Sopenharmony_ci 5470b8021494Sopenharmony_ci### SSUBL ### 5471b8021494Sopenharmony_ci 5472b8021494Sopenharmony_ciSigned subtract long. 5473b8021494Sopenharmony_ci 5474b8021494Sopenharmony_ci void ssubl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5475b8021494Sopenharmony_ci 5476b8021494Sopenharmony_ci 5477b8021494Sopenharmony_ci### SSUBL2 ### 5478b8021494Sopenharmony_ci 5479b8021494Sopenharmony_ciSigned subtract long (second part). 5480b8021494Sopenharmony_ci 5481b8021494Sopenharmony_ci void ssubl2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5482b8021494Sopenharmony_ci 5483b8021494Sopenharmony_ci 5484b8021494Sopenharmony_ci### SSUBW ### 5485b8021494Sopenharmony_ci 5486b8021494Sopenharmony_ciSigned integer subtract wide. 5487b8021494Sopenharmony_ci 5488b8021494Sopenharmony_ci void ssubw(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5489b8021494Sopenharmony_ci 5490b8021494Sopenharmony_ci 5491b8021494Sopenharmony_ci### SSUBW2 ### 5492b8021494Sopenharmony_ci 5493b8021494Sopenharmony_ciSigned integer subtract wide (second part). 5494b8021494Sopenharmony_ci 5495b8021494Sopenharmony_ci void ssubw2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5496b8021494Sopenharmony_ci 5497b8021494Sopenharmony_ci 5498b8021494Sopenharmony_ci### ST1 ### 5499b8021494Sopenharmony_ci 5500b8021494Sopenharmony_ciOne-element single structure store from one lane. 5501b8021494Sopenharmony_ci 5502b8021494Sopenharmony_ci void st1(const VRegister& vt, int lane, const MemOperand& src) 5503b8021494Sopenharmony_ci 5504b8021494Sopenharmony_ci 5505b8021494Sopenharmony_ci### ST1 ### 5506b8021494Sopenharmony_ci 5507b8021494Sopenharmony_ciOne-element structure store from four registers. 5508b8021494Sopenharmony_ci 5509b8021494Sopenharmony_ci void st1(const VRegister& vt, 5510b8021494Sopenharmony_ci const VRegister& vt2, 5511b8021494Sopenharmony_ci const VRegister& vt3, 5512b8021494Sopenharmony_ci const VRegister& vt4, 5513b8021494Sopenharmony_ci const MemOperand& src) 5514b8021494Sopenharmony_ci 5515b8021494Sopenharmony_ci 5516b8021494Sopenharmony_ci### ST1 ### 5517b8021494Sopenharmony_ci 5518b8021494Sopenharmony_ciOne-element structure store from one register. 5519b8021494Sopenharmony_ci 5520b8021494Sopenharmony_ci void st1(const VRegister& vt, const MemOperand& src) 5521b8021494Sopenharmony_ci 5522b8021494Sopenharmony_ci 5523b8021494Sopenharmony_ci### ST1 ### 5524b8021494Sopenharmony_ci 5525b8021494Sopenharmony_ciOne-element structure store from three registers. 5526b8021494Sopenharmony_ci 5527b8021494Sopenharmony_ci void st1(const VRegister& vt, 5528b8021494Sopenharmony_ci const VRegister& vt2, 5529b8021494Sopenharmony_ci const VRegister& vt3, 5530b8021494Sopenharmony_ci const MemOperand& src) 5531b8021494Sopenharmony_ci 5532b8021494Sopenharmony_ci 5533b8021494Sopenharmony_ci### ST1 ### 5534b8021494Sopenharmony_ci 5535b8021494Sopenharmony_ciOne-element structure store from two registers. 5536b8021494Sopenharmony_ci 5537b8021494Sopenharmony_ci void st1(const VRegister& vt, const VRegister& vt2, const MemOperand& src) 5538b8021494Sopenharmony_ci 5539b8021494Sopenharmony_ci 5540b8021494Sopenharmony_ci### ST2 ### 5541b8021494Sopenharmony_ci 5542b8021494Sopenharmony_ciTwo-element single structure store from two lanes. 5543b8021494Sopenharmony_ci 5544b8021494Sopenharmony_ci void st2(const VRegister& vt, 5545b8021494Sopenharmony_ci const VRegister& vt2, 5546b8021494Sopenharmony_ci int lane, 5547b8021494Sopenharmony_ci const MemOperand& src) 5548b8021494Sopenharmony_ci 5549b8021494Sopenharmony_ci 5550b8021494Sopenharmony_ci### ST2 ### 5551b8021494Sopenharmony_ci 5552b8021494Sopenharmony_ciTwo-element structure store from two registers. 5553b8021494Sopenharmony_ci 5554b8021494Sopenharmony_ci void st2(const VRegister& vt, const VRegister& vt2, const MemOperand& src) 5555b8021494Sopenharmony_ci 5556b8021494Sopenharmony_ci 5557b8021494Sopenharmony_ci### ST3 ### 5558b8021494Sopenharmony_ci 5559b8021494Sopenharmony_ciThree-element single structure store from three lanes. 5560b8021494Sopenharmony_ci 5561b8021494Sopenharmony_ci void st3(const VRegister& vt, 5562b8021494Sopenharmony_ci const VRegister& vt2, 5563b8021494Sopenharmony_ci const VRegister& vt3, 5564b8021494Sopenharmony_ci int lane, 5565b8021494Sopenharmony_ci const MemOperand& src) 5566b8021494Sopenharmony_ci 5567b8021494Sopenharmony_ci 5568b8021494Sopenharmony_ci### ST3 ### 5569b8021494Sopenharmony_ci 5570b8021494Sopenharmony_ciThree-element structure store from three registers. 5571b8021494Sopenharmony_ci 5572b8021494Sopenharmony_ci void st3(const VRegister& vt, 5573b8021494Sopenharmony_ci const VRegister& vt2, 5574b8021494Sopenharmony_ci const VRegister& vt3, 5575b8021494Sopenharmony_ci const MemOperand& src) 5576b8021494Sopenharmony_ci 5577b8021494Sopenharmony_ci 5578b8021494Sopenharmony_ci### ST4 ### 5579b8021494Sopenharmony_ci 5580b8021494Sopenharmony_ciFour-element single structure store from four lanes. 5581b8021494Sopenharmony_ci 5582b8021494Sopenharmony_ci void st4(const VRegister& vt, 5583b8021494Sopenharmony_ci const VRegister& vt2, 5584b8021494Sopenharmony_ci const VRegister& vt3, 5585b8021494Sopenharmony_ci const VRegister& vt4, 5586b8021494Sopenharmony_ci int lane, 5587b8021494Sopenharmony_ci const MemOperand& src) 5588b8021494Sopenharmony_ci 5589b8021494Sopenharmony_ci 5590b8021494Sopenharmony_ci### ST4 ### 5591b8021494Sopenharmony_ci 5592b8021494Sopenharmony_ciFour-element structure store from four registers. 5593b8021494Sopenharmony_ci 5594b8021494Sopenharmony_ci void st4(const VRegister& vt, 5595b8021494Sopenharmony_ci const VRegister& vt2, 5596b8021494Sopenharmony_ci const VRegister& vt3, 5597b8021494Sopenharmony_ci const VRegister& vt4, 5598b8021494Sopenharmony_ci const MemOperand& src) 5599b8021494Sopenharmony_ci 5600b8021494Sopenharmony_ci 5601b8021494Sopenharmony_ci### SUB ### 5602b8021494Sopenharmony_ci 5603b8021494Sopenharmony_ciSubtract. 5604b8021494Sopenharmony_ci 5605b8021494Sopenharmony_ci void sub(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5606b8021494Sopenharmony_ci 5607b8021494Sopenharmony_ci 5608b8021494Sopenharmony_ci### SUBHN ### 5609b8021494Sopenharmony_ci 5610b8021494Sopenharmony_ciSubtract narrow returning high half. 5611b8021494Sopenharmony_ci 5612b8021494Sopenharmony_ci void subhn(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5613b8021494Sopenharmony_ci 5614b8021494Sopenharmony_ci 5615b8021494Sopenharmony_ci### SUBHN2 ### 5616b8021494Sopenharmony_ci 5617b8021494Sopenharmony_ciSubtract narrow returning high half (second part). 5618b8021494Sopenharmony_ci 5619b8021494Sopenharmony_ci void subhn2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5620b8021494Sopenharmony_ci 5621b8021494Sopenharmony_ci 5622b8021494Sopenharmony_ci### SUDOT ### 5623b8021494Sopenharmony_ci 5624b8021494Sopenharmony_ciDot product with signed and unsigned integers (vector, by element). 5625b8021494Sopenharmony_ci 5626b8021494Sopenharmony_ci void sudot(const VRegister& vd, 5627b8021494Sopenharmony_ci const VRegister& vn, 5628b8021494Sopenharmony_ci const VRegister& vm, 5629b8021494Sopenharmony_ci int vm_index) 5630b8021494Sopenharmony_ci 5631b8021494Sopenharmony_ci 5632b8021494Sopenharmony_ci### SUQADD ### 5633b8021494Sopenharmony_ci 5634b8021494Sopenharmony_ciSigned saturating accumulate of unsigned value. 5635b8021494Sopenharmony_ci 5636b8021494Sopenharmony_ci void suqadd(const VRegister& vd, const VRegister& vn) 5637b8021494Sopenharmony_ci 5638b8021494Sopenharmony_ci 5639b8021494Sopenharmony_ci### SXTL ### 5640b8021494Sopenharmony_ci 5641b8021494Sopenharmony_ciSigned extend long. 5642b8021494Sopenharmony_ci 5643b8021494Sopenharmony_ci void sxtl(const VRegister& vd, const VRegister& vn) 5644b8021494Sopenharmony_ci 5645b8021494Sopenharmony_ci 5646b8021494Sopenharmony_ci### SXTL2 ### 5647b8021494Sopenharmony_ci 5648b8021494Sopenharmony_ciSigned extend long (second part). 5649b8021494Sopenharmony_ci 5650b8021494Sopenharmony_ci void sxtl2(const VRegister& vd, const VRegister& vn) 5651b8021494Sopenharmony_ci 5652b8021494Sopenharmony_ci 5653b8021494Sopenharmony_ci<a id="float-t"> 5654b8021494Sopenharmony_ci 5655b8021494Sopenharmony_ci### TBL ### 5656b8021494Sopenharmony_ci 5657b8021494Sopenharmony_ciTable lookup from four registers. 5658b8021494Sopenharmony_ci 5659b8021494Sopenharmony_ci void tbl(const VRegister& vd, 5660b8021494Sopenharmony_ci const VRegister& vn, 5661b8021494Sopenharmony_ci const VRegister& vn2, 5662b8021494Sopenharmony_ci const VRegister& vn3, 5663b8021494Sopenharmony_ci const VRegister& vn4, 5664b8021494Sopenharmony_ci const VRegister& vm) 5665b8021494Sopenharmony_ci 5666b8021494Sopenharmony_ci 5667b8021494Sopenharmony_ci### TBL ### 5668b8021494Sopenharmony_ci 5669b8021494Sopenharmony_ciTable lookup from one register. 5670b8021494Sopenharmony_ci 5671b8021494Sopenharmony_ci void tbl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5672b8021494Sopenharmony_ci 5673b8021494Sopenharmony_ci 5674b8021494Sopenharmony_ci### TBL ### 5675b8021494Sopenharmony_ci 5676b8021494Sopenharmony_ciTable lookup from three registers. 5677b8021494Sopenharmony_ci 5678b8021494Sopenharmony_ci void tbl(const VRegister& vd, 5679b8021494Sopenharmony_ci const VRegister& vn, 5680b8021494Sopenharmony_ci const VRegister& vn2, 5681b8021494Sopenharmony_ci const VRegister& vn3, 5682b8021494Sopenharmony_ci const VRegister& vm) 5683b8021494Sopenharmony_ci 5684b8021494Sopenharmony_ci 5685b8021494Sopenharmony_ci### TBL ### 5686b8021494Sopenharmony_ci 5687b8021494Sopenharmony_ciTable lookup from two registers. 5688b8021494Sopenharmony_ci 5689b8021494Sopenharmony_ci void tbl(const VRegister& vd, 5690b8021494Sopenharmony_ci const VRegister& vn, 5691b8021494Sopenharmony_ci const VRegister& vn2, 5692b8021494Sopenharmony_ci const VRegister& vm) 5693b8021494Sopenharmony_ci 5694b8021494Sopenharmony_ci 5695b8021494Sopenharmony_ci### TBX ### 5696b8021494Sopenharmony_ci 5697b8021494Sopenharmony_ciTable lookup extension from four registers. 5698b8021494Sopenharmony_ci 5699b8021494Sopenharmony_ci void tbx(const VRegister& vd, 5700b8021494Sopenharmony_ci const VRegister& vn, 5701b8021494Sopenharmony_ci const VRegister& vn2, 5702b8021494Sopenharmony_ci const VRegister& vn3, 5703b8021494Sopenharmony_ci const VRegister& vn4, 5704b8021494Sopenharmony_ci const VRegister& vm) 5705b8021494Sopenharmony_ci 5706b8021494Sopenharmony_ci 5707b8021494Sopenharmony_ci### TBX ### 5708b8021494Sopenharmony_ci 5709b8021494Sopenharmony_ciTable lookup extension from one register. 5710b8021494Sopenharmony_ci 5711b8021494Sopenharmony_ci void tbx(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5712b8021494Sopenharmony_ci 5713b8021494Sopenharmony_ci 5714b8021494Sopenharmony_ci### TBX ### 5715b8021494Sopenharmony_ci 5716b8021494Sopenharmony_ciTable lookup extension from three registers. 5717b8021494Sopenharmony_ci 5718b8021494Sopenharmony_ci void tbx(const VRegister& vd, 5719b8021494Sopenharmony_ci const VRegister& vn, 5720b8021494Sopenharmony_ci const VRegister& vn2, 5721b8021494Sopenharmony_ci const VRegister& vn3, 5722b8021494Sopenharmony_ci const VRegister& vm) 5723b8021494Sopenharmony_ci 5724b8021494Sopenharmony_ci 5725b8021494Sopenharmony_ci### TBX ### 5726b8021494Sopenharmony_ci 5727b8021494Sopenharmony_ciTable lookup extension from two registers. 5728b8021494Sopenharmony_ci 5729b8021494Sopenharmony_ci void tbx(const VRegister& vd, 5730b8021494Sopenharmony_ci const VRegister& vn, 5731b8021494Sopenharmony_ci const VRegister& vn2, 5732b8021494Sopenharmony_ci const VRegister& vm) 5733b8021494Sopenharmony_ci 5734b8021494Sopenharmony_ci 5735b8021494Sopenharmony_ci### TRN1 ### 5736b8021494Sopenharmony_ci 5737b8021494Sopenharmony_ciTranspose vectors (primary). 5738b8021494Sopenharmony_ci 5739b8021494Sopenharmony_ci void trn1(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5740b8021494Sopenharmony_ci 5741b8021494Sopenharmony_ci 5742b8021494Sopenharmony_ci### TRN2 ### 5743b8021494Sopenharmony_ci 5744b8021494Sopenharmony_ciTranspose vectors (secondary). 5745b8021494Sopenharmony_ci 5746b8021494Sopenharmony_ci void trn2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5747b8021494Sopenharmony_ci 5748b8021494Sopenharmony_ci 5749b8021494Sopenharmony_ci<a id="float-u"> 5750b8021494Sopenharmony_ci 5751b8021494Sopenharmony_ci### UABA ### 5752b8021494Sopenharmony_ci 5753b8021494Sopenharmony_ciUnsigned absolute difference and accumulate. 5754b8021494Sopenharmony_ci 5755b8021494Sopenharmony_ci void uaba(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5756b8021494Sopenharmony_ci 5757b8021494Sopenharmony_ci 5758b8021494Sopenharmony_ci### UABAL ### 5759b8021494Sopenharmony_ci 5760b8021494Sopenharmony_ciUnsigned absolute difference and accumulate long. 5761b8021494Sopenharmony_ci 5762b8021494Sopenharmony_ci void uabal(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5763b8021494Sopenharmony_ci 5764b8021494Sopenharmony_ci 5765b8021494Sopenharmony_ci### UABAL2 ### 5766b8021494Sopenharmony_ci 5767b8021494Sopenharmony_ciUnsigned absolute difference and accumulate long (second part). 5768b8021494Sopenharmony_ci 5769b8021494Sopenharmony_ci void uabal2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5770b8021494Sopenharmony_ci 5771b8021494Sopenharmony_ci 5772b8021494Sopenharmony_ci### UABD ### 5773b8021494Sopenharmony_ci 5774b8021494Sopenharmony_ciUnsigned absolute difference. 5775b8021494Sopenharmony_ci 5776b8021494Sopenharmony_ci void uabd(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5777b8021494Sopenharmony_ci 5778b8021494Sopenharmony_ci 5779b8021494Sopenharmony_ci### UABDL ### 5780b8021494Sopenharmony_ci 5781b8021494Sopenharmony_ciUnsigned absolute difference long. 5782b8021494Sopenharmony_ci 5783b8021494Sopenharmony_ci void uabdl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5784b8021494Sopenharmony_ci 5785b8021494Sopenharmony_ci 5786b8021494Sopenharmony_ci### UABDL2 ### 5787b8021494Sopenharmony_ci 5788b8021494Sopenharmony_ciUnsigned absolute difference long (second part). 5789b8021494Sopenharmony_ci 5790b8021494Sopenharmony_ci void uabdl2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5791b8021494Sopenharmony_ci 5792b8021494Sopenharmony_ci 5793b8021494Sopenharmony_ci### UADALP ### 5794b8021494Sopenharmony_ci 5795b8021494Sopenharmony_ciUnsigned pairwise long add and accumulate. 5796b8021494Sopenharmony_ci 5797b8021494Sopenharmony_ci void uadalp(const VRegister& vd, const VRegister& vn) 5798b8021494Sopenharmony_ci 5799b8021494Sopenharmony_ci 5800b8021494Sopenharmony_ci### UADDL ### 5801b8021494Sopenharmony_ci 5802b8021494Sopenharmony_ciUnsigned add long. 5803b8021494Sopenharmony_ci 5804b8021494Sopenharmony_ci void uaddl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5805b8021494Sopenharmony_ci 5806b8021494Sopenharmony_ci 5807b8021494Sopenharmony_ci### UADDL2 ### 5808b8021494Sopenharmony_ci 5809b8021494Sopenharmony_ciUnsigned add long (second part). 5810b8021494Sopenharmony_ci 5811b8021494Sopenharmony_ci void uaddl2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5812b8021494Sopenharmony_ci 5813b8021494Sopenharmony_ci 5814b8021494Sopenharmony_ci### UADDLP ### 5815b8021494Sopenharmony_ci 5816b8021494Sopenharmony_ciUnsigned pairwise long add. 5817b8021494Sopenharmony_ci 5818b8021494Sopenharmony_ci void uaddlp(const VRegister& vd, const VRegister& vn) 5819b8021494Sopenharmony_ci 5820b8021494Sopenharmony_ci 5821b8021494Sopenharmony_ci### UADDLV ### 5822b8021494Sopenharmony_ci 5823b8021494Sopenharmony_ciUnsigned add long across vector. 5824b8021494Sopenharmony_ci 5825b8021494Sopenharmony_ci void uaddlv(const VRegister& vd, const VRegister& vn) 5826b8021494Sopenharmony_ci 5827b8021494Sopenharmony_ci 5828b8021494Sopenharmony_ci### UADDW ### 5829b8021494Sopenharmony_ci 5830b8021494Sopenharmony_ciUnsigned add wide. 5831b8021494Sopenharmony_ci 5832b8021494Sopenharmony_ci void uaddw(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5833b8021494Sopenharmony_ci 5834b8021494Sopenharmony_ci 5835b8021494Sopenharmony_ci### UADDW2 ### 5836b8021494Sopenharmony_ci 5837b8021494Sopenharmony_ciUnsigned add wide (second part). 5838b8021494Sopenharmony_ci 5839b8021494Sopenharmony_ci void uaddw2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5840b8021494Sopenharmony_ci 5841b8021494Sopenharmony_ci 5842b8021494Sopenharmony_ci### UCVTF ### 5843b8021494Sopenharmony_ci 5844b8021494Sopenharmony_ciConvert unsigned integer or fixed point to FP. 5845b8021494Sopenharmony_ci 5846b8021494Sopenharmony_ci void ucvtf(const VRegister& fd, const Register& rn, int fbits = 0) 5847b8021494Sopenharmony_ci 5848b8021494Sopenharmony_ci 5849b8021494Sopenharmony_ci### UCVTF ### 5850b8021494Sopenharmony_ci 5851b8021494Sopenharmony_ciConvert unsigned integer or fixed-point to FP. 5852b8021494Sopenharmony_ci 5853b8021494Sopenharmony_ci void ucvtf(const VRegister& fd, const VRegister& vn, int fbits = 0) 5854b8021494Sopenharmony_ci 5855b8021494Sopenharmony_ci 5856b8021494Sopenharmony_ci### UDOT ### 5857b8021494Sopenharmony_ci 5858b8021494Sopenharmony_ciUnsigned dot product _(Armv8.2)_. 5859b8021494Sopenharmony_ci 5860b8021494Sopenharmony_ci void udot(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5861b8021494Sopenharmony_ci 5862b8021494Sopenharmony_ci 5863b8021494Sopenharmony_ci### UDOT ### 5864b8021494Sopenharmony_ci 5865b8021494Sopenharmony_ciUnsigned dot product by element _(Armv8.2)_. 5866b8021494Sopenharmony_ci 5867b8021494Sopenharmony_ci void udot(const VRegister& vd, 5868b8021494Sopenharmony_ci const VRegister& vn, 5869b8021494Sopenharmony_ci const VRegister& vm, 5870b8021494Sopenharmony_ci int vm_index) 5871b8021494Sopenharmony_ci 5872b8021494Sopenharmony_ci 5873b8021494Sopenharmony_ci### UHADD ### 5874b8021494Sopenharmony_ci 5875b8021494Sopenharmony_ciUnsigned halving add. 5876b8021494Sopenharmony_ci 5877b8021494Sopenharmony_ci void uhadd(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5878b8021494Sopenharmony_ci 5879b8021494Sopenharmony_ci 5880b8021494Sopenharmony_ci### UHSUB ### 5881b8021494Sopenharmony_ci 5882b8021494Sopenharmony_ciUnsigned halving sub. 5883b8021494Sopenharmony_ci 5884b8021494Sopenharmony_ci void uhsub(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5885b8021494Sopenharmony_ci 5886b8021494Sopenharmony_ci 5887b8021494Sopenharmony_ci### UMAX ### 5888b8021494Sopenharmony_ci 5889b8021494Sopenharmony_ciUnsigned maximum. 5890b8021494Sopenharmony_ci 5891b8021494Sopenharmony_ci void umax(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5892b8021494Sopenharmony_ci 5893b8021494Sopenharmony_ci 5894b8021494Sopenharmony_ci### UMAXP ### 5895b8021494Sopenharmony_ci 5896b8021494Sopenharmony_ciUnsigned pairwise maximum. 5897b8021494Sopenharmony_ci 5898b8021494Sopenharmony_ci void umaxp(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5899b8021494Sopenharmony_ci 5900b8021494Sopenharmony_ci 5901b8021494Sopenharmony_ci### UMAXV ### 5902b8021494Sopenharmony_ci 5903b8021494Sopenharmony_ciUnsigned maximum across vector. 5904b8021494Sopenharmony_ci 5905b8021494Sopenharmony_ci void umaxv(const VRegister& vd, const VRegister& vn) 5906b8021494Sopenharmony_ci 5907b8021494Sopenharmony_ci 5908b8021494Sopenharmony_ci### UMIN ### 5909b8021494Sopenharmony_ci 5910b8021494Sopenharmony_ciUnsigned minimum. 5911b8021494Sopenharmony_ci 5912b8021494Sopenharmony_ci void umin(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5913b8021494Sopenharmony_ci 5914b8021494Sopenharmony_ci 5915b8021494Sopenharmony_ci### UMINP ### 5916b8021494Sopenharmony_ci 5917b8021494Sopenharmony_ciUnsigned pairwise minimum. 5918b8021494Sopenharmony_ci 5919b8021494Sopenharmony_ci void uminp(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5920b8021494Sopenharmony_ci 5921b8021494Sopenharmony_ci 5922b8021494Sopenharmony_ci### UMINV ### 5923b8021494Sopenharmony_ci 5924b8021494Sopenharmony_ciUnsigned minimum across vector. 5925b8021494Sopenharmony_ci 5926b8021494Sopenharmony_ci void uminv(const VRegister& vd, const VRegister& vn) 5927b8021494Sopenharmony_ci 5928b8021494Sopenharmony_ci 5929b8021494Sopenharmony_ci### UMLAL ### 5930b8021494Sopenharmony_ci 5931b8021494Sopenharmony_ciUnsigned long multiply-add by scalar element. 5932b8021494Sopenharmony_ci 5933b8021494Sopenharmony_ci void umlal(const VRegister& vd, 5934b8021494Sopenharmony_ci const VRegister& vn, 5935b8021494Sopenharmony_ci const VRegister& vm, 5936b8021494Sopenharmony_ci int vm_index) 5937b8021494Sopenharmony_ci 5938b8021494Sopenharmony_ci 5939b8021494Sopenharmony_ci### UMLAL ### 5940b8021494Sopenharmony_ci 5941b8021494Sopenharmony_ciUnsigned long multiply-add. 5942b8021494Sopenharmony_ci 5943b8021494Sopenharmony_ci void umlal(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5944b8021494Sopenharmony_ci 5945b8021494Sopenharmony_ci 5946b8021494Sopenharmony_ci### UMLAL2 ### 5947b8021494Sopenharmony_ci 5948b8021494Sopenharmony_ciUnsigned long multiply-add (second part). 5949b8021494Sopenharmony_ci 5950b8021494Sopenharmony_ci void umlal2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5951b8021494Sopenharmony_ci 5952b8021494Sopenharmony_ci 5953b8021494Sopenharmony_ci### UMLAL2 ### 5954b8021494Sopenharmony_ci 5955b8021494Sopenharmony_ciUnsigned long multiply-add by scalar element (second part). 5956b8021494Sopenharmony_ci 5957b8021494Sopenharmony_ci void umlal2(const VRegister& vd, 5958b8021494Sopenharmony_ci const VRegister& vn, 5959b8021494Sopenharmony_ci const VRegister& vm, 5960b8021494Sopenharmony_ci int vm_index) 5961b8021494Sopenharmony_ci 5962b8021494Sopenharmony_ci 5963b8021494Sopenharmony_ci### UMLSL ### 5964b8021494Sopenharmony_ci 5965b8021494Sopenharmony_ciUnsigned long multiply-sub by scalar element. 5966b8021494Sopenharmony_ci 5967b8021494Sopenharmony_ci void umlsl(const VRegister& vd, 5968b8021494Sopenharmony_ci const VRegister& vn, 5969b8021494Sopenharmony_ci const VRegister& vm, 5970b8021494Sopenharmony_ci int vm_index) 5971b8021494Sopenharmony_ci 5972b8021494Sopenharmony_ci 5973b8021494Sopenharmony_ci### UMLSL ### 5974b8021494Sopenharmony_ci 5975b8021494Sopenharmony_ciUnsigned long multiply-sub. 5976b8021494Sopenharmony_ci 5977b8021494Sopenharmony_ci void umlsl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5978b8021494Sopenharmony_ci 5979b8021494Sopenharmony_ci 5980b8021494Sopenharmony_ci### UMLSL2 ### 5981b8021494Sopenharmony_ci 5982b8021494Sopenharmony_ciUnsigned long multiply-sub (second part). 5983b8021494Sopenharmony_ci 5984b8021494Sopenharmony_ci void umlsl2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 5985b8021494Sopenharmony_ci 5986b8021494Sopenharmony_ci 5987b8021494Sopenharmony_ci### UMLSL2 ### 5988b8021494Sopenharmony_ci 5989b8021494Sopenharmony_ciUnsigned long multiply-sub by scalar element (second part). 5990b8021494Sopenharmony_ci 5991b8021494Sopenharmony_ci void umlsl2(const VRegister& vd, 5992b8021494Sopenharmony_ci const VRegister& vn, 5993b8021494Sopenharmony_ci const VRegister& vm, 5994b8021494Sopenharmony_ci int vm_index) 5995b8021494Sopenharmony_ci 5996b8021494Sopenharmony_ci 5997b8021494Sopenharmony_ci### UMMLA ### 5998b8021494Sopenharmony_ci 5999b8021494Sopenharmony_ciUnsigned 8-bit integer matrix multiply-accumulate (vector). 6000b8021494Sopenharmony_ci 6001b8021494Sopenharmony_ci void ummla(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6002b8021494Sopenharmony_ci 6003b8021494Sopenharmony_ci 6004b8021494Sopenharmony_ci### UMOV ### 6005b8021494Sopenharmony_ci 6006b8021494Sopenharmony_ciUnsigned move vector element to general-purpose register. 6007b8021494Sopenharmony_ci 6008b8021494Sopenharmony_ci void umov(const Register& rd, const VRegister& vn, int vn_index) 6009b8021494Sopenharmony_ci 6010b8021494Sopenharmony_ci 6011b8021494Sopenharmony_ci### UMULL ### 6012b8021494Sopenharmony_ci 6013b8021494Sopenharmony_ciUnsigned long multiply by scalar element. 6014b8021494Sopenharmony_ci 6015b8021494Sopenharmony_ci void umull(const VRegister& vd, 6016b8021494Sopenharmony_ci const VRegister& vn, 6017b8021494Sopenharmony_ci const VRegister& vm, 6018b8021494Sopenharmony_ci int vm_index) 6019b8021494Sopenharmony_ci 6020b8021494Sopenharmony_ci 6021b8021494Sopenharmony_ci### UMULL ### 6022b8021494Sopenharmony_ci 6023b8021494Sopenharmony_ciUnsigned long multiply long. 6024b8021494Sopenharmony_ci 6025b8021494Sopenharmony_ci void umull(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6026b8021494Sopenharmony_ci 6027b8021494Sopenharmony_ci 6028b8021494Sopenharmony_ci### UMULL2 ### 6029b8021494Sopenharmony_ci 6030b8021494Sopenharmony_ciUnsigned long multiply (second part). 6031b8021494Sopenharmony_ci 6032b8021494Sopenharmony_ci void umull2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6033b8021494Sopenharmony_ci 6034b8021494Sopenharmony_ci 6035b8021494Sopenharmony_ci### UMULL2 ### 6036b8021494Sopenharmony_ci 6037b8021494Sopenharmony_ciUnsigned long multiply by scalar element (second part). 6038b8021494Sopenharmony_ci 6039b8021494Sopenharmony_ci void umull2(const VRegister& vd, 6040b8021494Sopenharmony_ci const VRegister& vn, 6041b8021494Sopenharmony_ci const VRegister& vm, 6042b8021494Sopenharmony_ci int vm_index) 6043b8021494Sopenharmony_ci 6044b8021494Sopenharmony_ci 6045b8021494Sopenharmony_ci### UQADD ### 6046b8021494Sopenharmony_ci 6047b8021494Sopenharmony_ciUnsigned saturating add. 6048b8021494Sopenharmony_ci 6049b8021494Sopenharmony_ci void uqadd(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6050b8021494Sopenharmony_ci 6051b8021494Sopenharmony_ci 6052b8021494Sopenharmony_ci### UQRSHL ### 6053b8021494Sopenharmony_ci 6054b8021494Sopenharmony_ciUnsigned saturating rounding shift left by register. 6055b8021494Sopenharmony_ci 6056b8021494Sopenharmony_ci void uqrshl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6057b8021494Sopenharmony_ci 6058b8021494Sopenharmony_ci 6059b8021494Sopenharmony_ci### UQRSHRN ### 6060b8021494Sopenharmony_ci 6061b8021494Sopenharmony_ciUnsigned saturating rounding shift right narrow by immediate. 6062b8021494Sopenharmony_ci 6063b8021494Sopenharmony_ci void uqrshrn(const VRegister& vd, const VRegister& vn, int shift) 6064b8021494Sopenharmony_ci 6065b8021494Sopenharmony_ci 6066b8021494Sopenharmony_ci### UQRSHRN2 ### 6067b8021494Sopenharmony_ci 6068b8021494Sopenharmony_ciUnsigned saturating rounding shift right narrow by immediate (second part). 6069b8021494Sopenharmony_ci 6070b8021494Sopenharmony_ci void uqrshrn2(const VRegister& vd, const VRegister& vn, int shift) 6071b8021494Sopenharmony_ci 6072b8021494Sopenharmony_ci 6073b8021494Sopenharmony_ci### UQSHL ### 6074b8021494Sopenharmony_ci 6075b8021494Sopenharmony_ciUnsigned saturating shift left by immediate. 6076b8021494Sopenharmony_ci 6077b8021494Sopenharmony_ci void uqshl(const VRegister& vd, const VRegister& vn, int shift) 6078b8021494Sopenharmony_ci 6079b8021494Sopenharmony_ci 6080b8021494Sopenharmony_ci### UQSHL ### 6081b8021494Sopenharmony_ci 6082b8021494Sopenharmony_ciUnsigned saturating shift left by register. 6083b8021494Sopenharmony_ci 6084b8021494Sopenharmony_ci void uqshl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6085b8021494Sopenharmony_ci 6086b8021494Sopenharmony_ci 6087b8021494Sopenharmony_ci### UQSHRN ### 6088b8021494Sopenharmony_ci 6089b8021494Sopenharmony_ciUnsigned saturating shift right narrow by immediate. 6090b8021494Sopenharmony_ci 6091b8021494Sopenharmony_ci void uqshrn(const VRegister& vd, const VRegister& vn, int shift) 6092b8021494Sopenharmony_ci 6093b8021494Sopenharmony_ci 6094b8021494Sopenharmony_ci### UQSHRN2 ### 6095b8021494Sopenharmony_ci 6096b8021494Sopenharmony_ciUnsigned saturating shift right narrow by immediate (second part). 6097b8021494Sopenharmony_ci 6098b8021494Sopenharmony_ci void uqshrn2(const VRegister& vd, const VRegister& vn, int shift) 6099b8021494Sopenharmony_ci 6100b8021494Sopenharmony_ci 6101b8021494Sopenharmony_ci### UQSUB ### 6102b8021494Sopenharmony_ci 6103b8021494Sopenharmony_ciUnsigned saturating subtract. 6104b8021494Sopenharmony_ci 6105b8021494Sopenharmony_ci void uqsub(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6106b8021494Sopenharmony_ci 6107b8021494Sopenharmony_ci 6108b8021494Sopenharmony_ci### UQXTN ### 6109b8021494Sopenharmony_ci 6110b8021494Sopenharmony_ciUnsigned saturating extract narrow. 6111b8021494Sopenharmony_ci 6112b8021494Sopenharmony_ci void uqxtn(const VRegister& vd, const VRegister& vn) 6113b8021494Sopenharmony_ci 6114b8021494Sopenharmony_ci 6115b8021494Sopenharmony_ci### UQXTN2 ### 6116b8021494Sopenharmony_ci 6117b8021494Sopenharmony_ciUnsigned saturating extract narrow (second part). 6118b8021494Sopenharmony_ci 6119b8021494Sopenharmony_ci void uqxtn2(const VRegister& vd, const VRegister& vn) 6120b8021494Sopenharmony_ci 6121b8021494Sopenharmony_ci 6122b8021494Sopenharmony_ci### URECPE ### 6123b8021494Sopenharmony_ci 6124b8021494Sopenharmony_ciUnsigned reciprocal estimate. 6125b8021494Sopenharmony_ci 6126b8021494Sopenharmony_ci void urecpe(const VRegister& vd, const VRegister& vn) 6127b8021494Sopenharmony_ci 6128b8021494Sopenharmony_ci 6129b8021494Sopenharmony_ci### URHADD ### 6130b8021494Sopenharmony_ci 6131b8021494Sopenharmony_ciUnsigned rounding halving add. 6132b8021494Sopenharmony_ci 6133b8021494Sopenharmony_ci void urhadd(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6134b8021494Sopenharmony_ci 6135b8021494Sopenharmony_ci 6136b8021494Sopenharmony_ci### URSHL ### 6137b8021494Sopenharmony_ci 6138b8021494Sopenharmony_ciUnsigned rounding shift left by register. 6139b8021494Sopenharmony_ci 6140b8021494Sopenharmony_ci void urshl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6141b8021494Sopenharmony_ci 6142b8021494Sopenharmony_ci 6143b8021494Sopenharmony_ci### URSHR ### 6144b8021494Sopenharmony_ci 6145b8021494Sopenharmony_ciUnsigned rounding shift right by immediate. 6146b8021494Sopenharmony_ci 6147b8021494Sopenharmony_ci void urshr(const VRegister& vd, const VRegister& vn, int shift) 6148b8021494Sopenharmony_ci 6149b8021494Sopenharmony_ci 6150b8021494Sopenharmony_ci### URSQRTE ### 6151b8021494Sopenharmony_ci 6152b8021494Sopenharmony_ciUnsigned reciprocal square root estimate. 6153b8021494Sopenharmony_ci 6154b8021494Sopenharmony_ci void ursqrte(const VRegister& vd, const VRegister& vn) 6155b8021494Sopenharmony_ci 6156b8021494Sopenharmony_ci 6157b8021494Sopenharmony_ci### URSRA ### 6158b8021494Sopenharmony_ci 6159b8021494Sopenharmony_ciUnsigned rounding shift right by immediate and accumulate. 6160b8021494Sopenharmony_ci 6161b8021494Sopenharmony_ci void ursra(const VRegister& vd, const VRegister& vn, int shift) 6162b8021494Sopenharmony_ci 6163b8021494Sopenharmony_ci 6164b8021494Sopenharmony_ci### USDOT ### 6165b8021494Sopenharmony_ci 6166b8021494Sopenharmony_ciDot Product with unsigned and signed integers (vector). 6167b8021494Sopenharmony_ci 6168b8021494Sopenharmony_ci void usdot(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6169b8021494Sopenharmony_ci 6170b8021494Sopenharmony_ci 6171b8021494Sopenharmony_ci### USDOT ### 6172b8021494Sopenharmony_ci 6173b8021494Sopenharmony_ciDot product with unsigned and signed integers (vector, by element). 6174b8021494Sopenharmony_ci 6175b8021494Sopenharmony_ci void usdot(const VRegister& vd, 6176b8021494Sopenharmony_ci const VRegister& vn, 6177b8021494Sopenharmony_ci const VRegister& vm, 6178b8021494Sopenharmony_ci int vm_index) 6179b8021494Sopenharmony_ci 6180b8021494Sopenharmony_ci 6181b8021494Sopenharmony_ci### USHL ### 6182b8021494Sopenharmony_ci 6183b8021494Sopenharmony_ciUnsigned shift left by register. 6184b8021494Sopenharmony_ci 6185b8021494Sopenharmony_ci void ushl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6186b8021494Sopenharmony_ci 6187b8021494Sopenharmony_ci 6188b8021494Sopenharmony_ci### USHLL ### 6189b8021494Sopenharmony_ci 6190b8021494Sopenharmony_ciUnsigned shift left long by immediate. 6191b8021494Sopenharmony_ci 6192b8021494Sopenharmony_ci void ushll(const VRegister& vd, const VRegister& vn, int shift) 6193b8021494Sopenharmony_ci 6194b8021494Sopenharmony_ci 6195b8021494Sopenharmony_ci### USHLL2 ### 6196b8021494Sopenharmony_ci 6197b8021494Sopenharmony_ciUnsigned shift left long by immediate (second part). 6198b8021494Sopenharmony_ci 6199b8021494Sopenharmony_ci void ushll2(const VRegister& vd, const VRegister& vn, int shift) 6200b8021494Sopenharmony_ci 6201b8021494Sopenharmony_ci 6202b8021494Sopenharmony_ci### USHR ### 6203b8021494Sopenharmony_ci 6204b8021494Sopenharmony_ciUnsigned shift right by immediate. 6205b8021494Sopenharmony_ci 6206b8021494Sopenharmony_ci void ushr(const VRegister& vd, const VRegister& vn, int shift) 6207b8021494Sopenharmony_ci 6208b8021494Sopenharmony_ci 6209b8021494Sopenharmony_ci### USMMLA ### 6210b8021494Sopenharmony_ci 6211b8021494Sopenharmony_ciUnsigned and signed 8-bit integer matrix multiply-accumulate (vector). 6212b8021494Sopenharmony_ci 6213b8021494Sopenharmony_ci void usmmla(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6214b8021494Sopenharmony_ci 6215b8021494Sopenharmony_ci 6216b8021494Sopenharmony_ci### USQADD ### 6217b8021494Sopenharmony_ci 6218b8021494Sopenharmony_ciUnsigned saturating accumulate of signed value. 6219b8021494Sopenharmony_ci 6220b8021494Sopenharmony_ci void usqadd(const VRegister& vd, const VRegister& vn) 6221b8021494Sopenharmony_ci 6222b8021494Sopenharmony_ci 6223b8021494Sopenharmony_ci### USRA ### 6224b8021494Sopenharmony_ci 6225b8021494Sopenharmony_ciUnsigned shift right by immediate and accumulate. 6226b8021494Sopenharmony_ci 6227b8021494Sopenharmony_ci void usra(const VRegister& vd, const VRegister& vn, int shift) 6228b8021494Sopenharmony_ci 6229b8021494Sopenharmony_ci 6230b8021494Sopenharmony_ci### USUBL ### 6231b8021494Sopenharmony_ci 6232b8021494Sopenharmony_ciUnsigned subtract long. 6233b8021494Sopenharmony_ci 6234b8021494Sopenharmony_ci void usubl(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6235b8021494Sopenharmony_ci 6236b8021494Sopenharmony_ci 6237b8021494Sopenharmony_ci### USUBL2 ### 6238b8021494Sopenharmony_ci 6239b8021494Sopenharmony_ciUnsigned subtract long (second part). 6240b8021494Sopenharmony_ci 6241b8021494Sopenharmony_ci void usubl2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6242b8021494Sopenharmony_ci 6243b8021494Sopenharmony_ci 6244b8021494Sopenharmony_ci### USUBW ### 6245b8021494Sopenharmony_ci 6246b8021494Sopenharmony_ciUnsigned subtract wide. 6247b8021494Sopenharmony_ci 6248b8021494Sopenharmony_ci void usubw(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6249b8021494Sopenharmony_ci 6250b8021494Sopenharmony_ci 6251b8021494Sopenharmony_ci### USUBW2 ### 6252b8021494Sopenharmony_ci 6253b8021494Sopenharmony_ciUnsigned subtract wide (second part). 6254b8021494Sopenharmony_ci 6255b8021494Sopenharmony_ci void usubw2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6256b8021494Sopenharmony_ci 6257b8021494Sopenharmony_ci 6258b8021494Sopenharmony_ci### UXTL ### 6259b8021494Sopenharmony_ci 6260b8021494Sopenharmony_ciUnsigned extend long. 6261b8021494Sopenharmony_ci 6262b8021494Sopenharmony_ci void uxtl(const VRegister& vd, const VRegister& vn) 6263b8021494Sopenharmony_ci 6264b8021494Sopenharmony_ci 6265b8021494Sopenharmony_ci### UXTL2 ### 6266b8021494Sopenharmony_ci 6267b8021494Sopenharmony_ciUnsigned extend long (second part). 6268b8021494Sopenharmony_ci 6269b8021494Sopenharmony_ci void uxtl2(const VRegister& vd, const VRegister& vn) 6270b8021494Sopenharmony_ci 6271b8021494Sopenharmony_ci 6272b8021494Sopenharmony_ci### UZP1 ### 6273b8021494Sopenharmony_ci 6274b8021494Sopenharmony_ciUnzip vectors (primary). 6275b8021494Sopenharmony_ci 6276b8021494Sopenharmony_ci void uzp1(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6277b8021494Sopenharmony_ci 6278b8021494Sopenharmony_ci 6279b8021494Sopenharmony_ci### UZP2 ### 6280b8021494Sopenharmony_ci 6281b8021494Sopenharmony_ciUnzip vectors (secondary). 6282b8021494Sopenharmony_ci 6283b8021494Sopenharmony_ci void uzp2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6284b8021494Sopenharmony_ci 6285b8021494Sopenharmony_ci 6286b8021494Sopenharmony_ci<a id="float-x"> 6287b8021494Sopenharmony_ci 6288b8021494Sopenharmony_ci### XTN ### 6289b8021494Sopenharmony_ci 6290b8021494Sopenharmony_ciExtract narrow. 6291b8021494Sopenharmony_ci 6292b8021494Sopenharmony_ci void xtn(const VRegister& vd, const VRegister& vn) 6293b8021494Sopenharmony_ci 6294b8021494Sopenharmony_ci 6295b8021494Sopenharmony_ci### XTN2 ### 6296b8021494Sopenharmony_ci 6297b8021494Sopenharmony_ciExtract narrow (second part). 6298b8021494Sopenharmony_ci 6299b8021494Sopenharmony_ci void xtn2(const VRegister& vd, const VRegister& vn) 6300b8021494Sopenharmony_ci 6301b8021494Sopenharmony_ci 6302b8021494Sopenharmony_ci<a id="float-z"> 6303b8021494Sopenharmony_ci 6304b8021494Sopenharmony_ci### ZIP1 ### 6305b8021494Sopenharmony_ci 6306b8021494Sopenharmony_ciZip vectors (primary). 6307b8021494Sopenharmony_ci 6308b8021494Sopenharmony_ci void zip1(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6309b8021494Sopenharmony_ci 6310b8021494Sopenharmony_ci 6311b8021494Sopenharmony_ci### ZIP2 ### 6312b8021494Sopenharmony_ci 6313b8021494Sopenharmony_ciZip vectors (secondary). 6314b8021494Sopenharmony_ci 6315b8021494Sopenharmony_ci void zip2(const VRegister& vd, const VRegister& vn, const VRegister& vm) 6316b8021494Sopenharmony_ci 6317b8021494Sopenharmony_ci 6318b8021494Sopenharmony_ci 6319b8021494Sopenharmony_ciAArch64 Scalable Vector Extension (SVE) instructions 6320b8021494Sopenharmony_ci---------------------------------------------------- 6321b8021494Sopenharmony_ci 6322b8021494Sopenharmony_ci<a id="sve-a"> 6323b8021494Sopenharmony_ci 6324b8021494Sopenharmony_ci### ABS ### 6325b8021494Sopenharmony_ci 6326b8021494Sopenharmony_ciAbsolute value (predicated). 6327b8021494Sopenharmony_ci 6328b8021494Sopenharmony_ci void abs(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 6329b8021494Sopenharmony_ci 6330b8021494Sopenharmony_ci 6331b8021494Sopenharmony_ci### ADCLB ### 6332b8021494Sopenharmony_ci 6333b8021494Sopenharmony_ciAdd with carry long (bottom). 6334b8021494Sopenharmony_ci 6335b8021494Sopenharmony_ci void adclb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 6336b8021494Sopenharmony_ci 6337b8021494Sopenharmony_ci 6338b8021494Sopenharmony_ci### ADCLT ### 6339b8021494Sopenharmony_ci 6340b8021494Sopenharmony_ciAdd with carry long (top). 6341b8021494Sopenharmony_ci 6342b8021494Sopenharmony_ci void adclt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 6343b8021494Sopenharmony_ci 6344b8021494Sopenharmony_ci 6345b8021494Sopenharmony_ci### ADD ### 6346b8021494Sopenharmony_ci 6347b8021494Sopenharmony_ciAdd immediate (unpredicated). 6348b8021494Sopenharmony_ci 6349b8021494Sopenharmony_ci void add(const ZRegister& zd, const ZRegister& zn, int imm8, int shift = -1) 6350b8021494Sopenharmony_ci 6351b8021494Sopenharmony_ci 6352b8021494Sopenharmony_ci### ADD ### 6353b8021494Sopenharmony_ci 6354b8021494Sopenharmony_ciAdd vectors (predicated). 6355b8021494Sopenharmony_ci 6356b8021494Sopenharmony_ci void add(const ZRegister& zd, 6357b8021494Sopenharmony_ci const PRegisterM& pg, 6358b8021494Sopenharmony_ci const ZRegister& zn, 6359b8021494Sopenharmony_ci const ZRegister& zm) 6360b8021494Sopenharmony_ci 6361b8021494Sopenharmony_ci 6362b8021494Sopenharmony_ci### ADD ### 6363b8021494Sopenharmony_ci 6364b8021494Sopenharmony_ciAdd vectors (unpredicated). 6365b8021494Sopenharmony_ci 6366b8021494Sopenharmony_ci void add(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 6367b8021494Sopenharmony_ci 6368b8021494Sopenharmony_ci 6369b8021494Sopenharmony_ci### ADDHNB ### 6370b8021494Sopenharmony_ci 6371b8021494Sopenharmony_ciAdd narrow high part (bottom). 6372b8021494Sopenharmony_ci 6373b8021494Sopenharmony_ci void addhnb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 6374b8021494Sopenharmony_ci 6375b8021494Sopenharmony_ci 6376b8021494Sopenharmony_ci### ADDHNT ### 6377b8021494Sopenharmony_ci 6378b8021494Sopenharmony_ciAdd narrow high part (top). 6379b8021494Sopenharmony_ci 6380b8021494Sopenharmony_ci void addhnt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 6381b8021494Sopenharmony_ci 6382b8021494Sopenharmony_ci 6383b8021494Sopenharmony_ci### ADDP ### 6384b8021494Sopenharmony_ci 6385b8021494Sopenharmony_ciAdd pairwise. 6386b8021494Sopenharmony_ci 6387b8021494Sopenharmony_ci void addp(const ZRegister& zd, 6388b8021494Sopenharmony_ci const PRegisterM& pg, 6389b8021494Sopenharmony_ci const ZRegister& zn, 6390b8021494Sopenharmony_ci const ZRegister& zm) 6391b8021494Sopenharmony_ci 6392b8021494Sopenharmony_ci 6393b8021494Sopenharmony_ci### ADDPL ### 6394b8021494Sopenharmony_ci 6395b8021494Sopenharmony_ciAdd multiple of predicate register size to scalar register. 6396b8021494Sopenharmony_ci 6397b8021494Sopenharmony_ci void addpl(const Register& xd, const Register& xn, int imm6) 6398b8021494Sopenharmony_ci 6399b8021494Sopenharmony_ci 6400b8021494Sopenharmony_ci### ADDVL ### 6401b8021494Sopenharmony_ci 6402b8021494Sopenharmony_ciAdd multiple of vector register size to scalar register. 6403b8021494Sopenharmony_ci 6404b8021494Sopenharmony_ci void addvl(const Register& xd, const Register& xn, int imm6) 6405b8021494Sopenharmony_ci 6406b8021494Sopenharmony_ci 6407b8021494Sopenharmony_ci### ADR ### 6408b8021494Sopenharmony_ci 6409b8021494Sopenharmony_ciCompute vector address. 6410b8021494Sopenharmony_ci 6411b8021494Sopenharmony_ci void adr(const ZRegister& zd, const SVEMemOperand& addr) 6412b8021494Sopenharmony_ci 6413b8021494Sopenharmony_ci 6414b8021494Sopenharmony_ci### AND ### 6415b8021494Sopenharmony_ci 6416b8021494Sopenharmony_ciBitwise AND predicates. 6417b8021494Sopenharmony_ci 6418b8021494Sopenharmony_ci void and_(const PRegisterWithLaneSize& pd, 6419b8021494Sopenharmony_ci const PRegisterZ& pg, 6420b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 6421b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 6422b8021494Sopenharmony_ci 6423b8021494Sopenharmony_ci 6424b8021494Sopenharmony_ci### AND ### 6425b8021494Sopenharmony_ci 6426b8021494Sopenharmony_ciBitwise AND vectors (predicated). 6427b8021494Sopenharmony_ci 6428b8021494Sopenharmony_ci void and_(const ZRegister& zd, 6429b8021494Sopenharmony_ci const PRegisterM& pg, 6430b8021494Sopenharmony_ci const ZRegister& zn, 6431b8021494Sopenharmony_ci const ZRegister& zm) 6432b8021494Sopenharmony_ci 6433b8021494Sopenharmony_ci 6434b8021494Sopenharmony_ci### AND ### 6435b8021494Sopenharmony_ci 6436b8021494Sopenharmony_ciBitwise AND vectors (unpredicated). 6437b8021494Sopenharmony_ci 6438b8021494Sopenharmony_ci void and_(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 6439b8021494Sopenharmony_ci 6440b8021494Sopenharmony_ci 6441b8021494Sopenharmony_ci### AND ### 6442b8021494Sopenharmony_ci 6443b8021494Sopenharmony_ciBitwise AND with immediate (unpredicated). 6444b8021494Sopenharmony_ci 6445b8021494Sopenharmony_ci void and_(const ZRegister& zd, const ZRegister& zn, uint64_t imm) 6446b8021494Sopenharmony_ci 6447b8021494Sopenharmony_ci 6448b8021494Sopenharmony_ci### ANDS ### 6449b8021494Sopenharmony_ci 6450b8021494Sopenharmony_ciBitwise AND predicates. 6451b8021494Sopenharmony_ci 6452b8021494Sopenharmony_ci void ands(const PRegisterWithLaneSize& pd, 6453b8021494Sopenharmony_ci const PRegisterZ& pg, 6454b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 6455b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 6456b8021494Sopenharmony_ci 6457b8021494Sopenharmony_ci 6458b8021494Sopenharmony_ci### ANDV ### 6459b8021494Sopenharmony_ci 6460b8021494Sopenharmony_ciBitwise AND reduction to scalar. 6461b8021494Sopenharmony_ci 6462b8021494Sopenharmony_ci void andv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 6463b8021494Sopenharmony_ci 6464b8021494Sopenharmony_ci 6465b8021494Sopenharmony_ci### ASR ### 6466b8021494Sopenharmony_ci 6467b8021494Sopenharmony_ciArithmetic shift right by 64-bit wide elements (predicated). 6468b8021494Sopenharmony_ci 6469b8021494Sopenharmony_ci void asr(const ZRegister& zd, 6470b8021494Sopenharmony_ci const PRegisterM& pg, 6471b8021494Sopenharmony_ci const ZRegister& zn, 6472b8021494Sopenharmony_ci const ZRegister& zm) 6473b8021494Sopenharmony_ci 6474b8021494Sopenharmony_ci 6475b8021494Sopenharmony_ci### ASR ### 6476b8021494Sopenharmony_ci 6477b8021494Sopenharmony_ciArithmetic shift right by 64-bit wide elements (unpredicated). 6478b8021494Sopenharmony_ci 6479b8021494Sopenharmony_ci void asr(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 6480b8021494Sopenharmony_ci 6481b8021494Sopenharmony_ci 6482b8021494Sopenharmony_ci### ASR ### 6483b8021494Sopenharmony_ci 6484b8021494Sopenharmony_ciArithmetic shift right by immediate (predicated). 6485b8021494Sopenharmony_ci 6486b8021494Sopenharmony_ci void asr(const ZRegister& zd, 6487b8021494Sopenharmony_ci const PRegisterM& pg, 6488b8021494Sopenharmony_ci const ZRegister& zn, 6489b8021494Sopenharmony_ci int shift) 6490b8021494Sopenharmony_ci 6491b8021494Sopenharmony_ci 6492b8021494Sopenharmony_ci### ASR ### 6493b8021494Sopenharmony_ci 6494b8021494Sopenharmony_ciArithmetic shift right by immediate (unpredicated). 6495b8021494Sopenharmony_ci 6496b8021494Sopenharmony_ci void asr(const ZRegister& zd, const ZRegister& zn, int shift) 6497b8021494Sopenharmony_ci 6498b8021494Sopenharmony_ci 6499b8021494Sopenharmony_ci### ASRD ### 6500b8021494Sopenharmony_ci 6501b8021494Sopenharmony_ciArithmetic shift right for divide by immediate (predicated). 6502b8021494Sopenharmony_ci 6503b8021494Sopenharmony_ci void asrd(const ZRegister& zd, 6504b8021494Sopenharmony_ci const PRegisterM& pg, 6505b8021494Sopenharmony_ci const ZRegister& zn, 6506b8021494Sopenharmony_ci int shift) 6507b8021494Sopenharmony_ci 6508b8021494Sopenharmony_ci 6509b8021494Sopenharmony_ci### ASRR ### 6510b8021494Sopenharmony_ci 6511b8021494Sopenharmony_ciReversed arithmetic shift right by vector (predicated). 6512b8021494Sopenharmony_ci 6513b8021494Sopenharmony_ci void asrr(const ZRegister& zd, 6514b8021494Sopenharmony_ci const PRegisterM& pg, 6515b8021494Sopenharmony_ci const ZRegister& zn, 6516b8021494Sopenharmony_ci const ZRegister& zm) 6517b8021494Sopenharmony_ci 6518b8021494Sopenharmony_ci 6519b8021494Sopenharmony_ci<a id="sve-b"> 6520b8021494Sopenharmony_ci 6521b8021494Sopenharmony_ci### BCAX ### 6522b8021494Sopenharmony_ci 6523b8021494Sopenharmony_ciBitwise clear and exclusive OR. 6524b8021494Sopenharmony_ci 6525b8021494Sopenharmony_ci void bcax(const ZRegister& zd, 6526b8021494Sopenharmony_ci const ZRegister& zn, 6527b8021494Sopenharmony_ci const ZRegister& zm, 6528b8021494Sopenharmony_ci const ZRegister& zk) 6529b8021494Sopenharmony_ci 6530b8021494Sopenharmony_ci 6531b8021494Sopenharmony_ci### BDEP ### 6532b8021494Sopenharmony_ci 6533b8021494Sopenharmony_ciScatter lower bits into positions selected by bitmask. 6534b8021494Sopenharmony_ci 6535b8021494Sopenharmony_ci void bdep(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 6536b8021494Sopenharmony_ci 6537b8021494Sopenharmony_ci 6538b8021494Sopenharmony_ci### BEXT ### 6539b8021494Sopenharmony_ci 6540b8021494Sopenharmony_ciGather lower bits from positions selected by bitmask. 6541b8021494Sopenharmony_ci 6542b8021494Sopenharmony_ci void bext(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 6543b8021494Sopenharmony_ci 6544b8021494Sopenharmony_ci 6545b8021494Sopenharmony_ci### BGRP ### 6546b8021494Sopenharmony_ci 6547b8021494Sopenharmony_ciGroup bits to right or left as selected by bitmask. 6548b8021494Sopenharmony_ci 6549b8021494Sopenharmony_ci void bgrp(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 6550b8021494Sopenharmony_ci 6551b8021494Sopenharmony_ci 6552b8021494Sopenharmony_ci### BIC ### 6553b8021494Sopenharmony_ci 6554b8021494Sopenharmony_ciBitwise clear bits using immediate (unpredicated). 6555b8021494Sopenharmony_ci 6556b8021494Sopenharmony_ci void bic(const ZRegister& zd, const ZRegister& zn, uint64_t imm) 6557b8021494Sopenharmony_ci 6558b8021494Sopenharmony_ci 6559b8021494Sopenharmony_ci### BIC ### 6560b8021494Sopenharmony_ci 6561b8021494Sopenharmony_ciBitwise clear predicates. 6562b8021494Sopenharmony_ci 6563b8021494Sopenharmony_ci void bic(const PRegisterWithLaneSize& pd, 6564b8021494Sopenharmony_ci const PRegisterZ& pg, 6565b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 6566b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 6567b8021494Sopenharmony_ci 6568b8021494Sopenharmony_ci 6569b8021494Sopenharmony_ci### BIC ### 6570b8021494Sopenharmony_ci 6571b8021494Sopenharmony_ciBitwise clear vectors (predicated). 6572b8021494Sopenharmony_ci 6573b8021494Sopenharmony_ci void bic(const ZRegister& zd, 6574b8021494Sopenharmony_ci const PRegisterM& pg, 6575b8021494Sopenharmony_ci const ZRegister& zn, 6576b8021494Sopenharmony_ci const ZRegister& zm) 6577b8021494Sopenharmony_ci 6578b8021494Sopenharmony_ci 6579b8021494Sopenharmony_ci### BIC ### 6580b8021494Sopenharmony_ci 6581b8021494Sopenharmony_ciBitwise clear vectors (unpredicated). 6582b8021494Sopenharmony_ci 6583b8021494Sopenharmony_ci void bic(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 6584b8021494Sopenharmony_ci 6585b8021494Sopenharmony_ci 6586b8021494Sopenharmony_ci### BICS ### 6587b8021494Sopenharmony_ci 6588b8021494Sopenharmony_ciBitwise clear predicates. 6589b8021494Sopenharmony_ci 6590b8021494Sopenharmony_ci void bics(const PRegisterWithLaneSize& pd, 6591b8021494Sopenharmony_ci const PRegisterZ& pg, 6592b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 6593b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 6594b8021494Sopenharmony_ci 6595b8021494Sopenharmony_ci 6596b8021494Sopenharmony_ci### BRKA ### 6597b8021494Sopenharmony_ci 6598b8021494Sopenharmony_ciBreak after first true condition. 6599b8021494Sopenharmony_ci 6600b8021494Sopenharmony_ci void brka(const PRegisterWithLaneSize& pd, 6601b8021494Sopenharmony_ci const PRegister& pg, 6602b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 6603b8021494Sopenharmony_ci 6604b8021494Sopenharmony_ci 6605b8021494Sopenharmony_ci### BRKAS ### 6606b8021494Sopenharmony_ci 6607b8021494Sopenharmony_ciBreak after first true condition. 6608b8021494Sopenharmony_ci 6609b8021494Sopenharmony_ci void brkas(const PRegisterWithLaneSize& pd, 6610b8021494Sopenharmony_ci const PRegisterZ& pg, 6611b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 6612b8021494Sopenharmony_ci 6613b8021494Sopenharmony_ci 6614b8021494Sopenharmony_ci### BRKB ### 6615b8021494Sopenharmony_ci 6616b8021494Sopenharmony_ciBreak before first true condition. 6617b8021494Sopenharmony_ci 6618b8021494Sopenharmony_ci void brkb(const PRegisterWithLaneSize& pd, 6619b8021494Sopenharmony_ci const PRegister& pg, 6620b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 6621b8021494Sopenharmony_ci 6622b8021494Sopenharmony_ci 6623b8021494Sopenharmony_ci### BRKBS ### 6624b8021494Sopenharmony_ci 6625b8021494Sopenharmony_ciBreak before first true condition. 6626b8021494Sopenharmony_ci 6627b8021494Sopenharmony_ci void brkbs(const PRegisterWithLaneSize& pd, 6628b8021494Sopenharmony_ci const PRegisterZ& pg, 6629b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 6630b8021494Sopenharmony_ci 6631b8021494Sopenharmony_ci 6632b8021494Sopenharmony_ci### BRKN ### 6633b8021494Sopenharmony_ci 6634b8021494Sopenharmony_ciPropagate break to next partition. 6635b8021494Sopenharmony_ci 6636b8021494Sopenharmony_ci void brkn(const PRegisterWithLaneSize& pd, 6637b8021494Sopenharmony_ci const PRegisterZ& pg, 6638b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 6639b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 6640b8021494Sopenharmony_ci 6641b8021494Sopenharmony_ci 6642b8021494Sopenharmony_ci### BRKNS ### 6643b8021494Sopenharmony_ci 6644b8021494Sopenharmony_ciPropagate break to next partition. 6645b8021494Sopenharmony_ci 6646b8021494Sopenharmony_ci void brkns(const PRegisterWithLaneSize& pd, 6647b8021494Sopenharmony_ci const PRegisterZ& pg, 6648b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 6649b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 6650b8021494Sopenharmony_ci 6651b8021494Sopenharmony_ci 6652b8021494Sopenharmony_ci### BRKPA ### 6653b8021494Sopenharmony_ci 6654b8021494Sopenharmony_ciBreak after first true condition, propagating from previous partition. 6655b8021494Sopenharmony_ci 6656b8021494Sopenharmony_ci void brkpa(const PRegisterWithLaneSize& pd, 6657b8021494Sopenharmony_ci const PRegisterZ& pg, 6658b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 6659b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 6660b8021494Sopenharmony_ci 6661b8021494Sopenharmony_ci 6662b8021494Sopenharmony_ci### BRKPAS ### 6663b8021494Sopenharmony_ci 6664b8021494Sopenharmony_ciBreak after first true condition, propagating from previous partition. 6665b8021494Sopenharmony_ci 6666b8021494Sopenharmony_ci void brkpas(const PRegisterWithLaneSize& pd, 6667b8021494Sopenharmony_ci const PRegisterZ& pg, 6668b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 6669b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 6670b8021494Sopenharmony_ci 6671b8021494Sopenharmony_ci 6672b8021494Sopenharmony_ci### BRKPB ### 6673b8021494Sopenharmony_ci 6674b8021494Sopenharmony_ciBreak before first true condition, propagating from previous partition. 6675b8021494Sopenharmony_ci 6676b8021494Sopenharmony_ci void brkpb(const PRegisterWithLaneSize& pd, 6677b8021494Sopenharmony_ci const PRegisterZ& pg, 6678b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 6679b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 6680b8021494Sopenharmony_ci 6681b8021494Sopenharmony_ci 6682b8021494Sopenharmony_ci### BRKPBS ### 6683b8021494Sopenharmony_ci 6684b8021494Sopenharmony_ciBreak before first true condition, propagating from previous partition. 6685b8021494Sopenharmony_ci 6686b8021494Sopenharmony_ci void brkpbs(const PRegisterWithLaneSize& pd, 6687b8021494Sopenharmony_ci const PRegisterZ& pg, 6688b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 6689b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 6690b8021494Sopenharmony_ci 6691b8021494Sopenharmony_ci 6692b8021494Sopenharmony_ci### BSL ### 6693b8021494Sopenharmony_ci 6694b8021494Sopenharmony_ciBitwise select. 6695b8021494Sopenharmony_ci 6696b8021494Sopenharmony_ci void bsl(const ZRegister& zd, 6697b8021494Sopenharmony_ci const ZRegister& zn, 6698b8021494Sopenharmony_ci const ZRegister& zm, 6699b8021494Sopenharmony_ci const ZRegister& zk) 6700b8021494Sopenharmony_ci 6701b8021494Sopenharmony_ci 6702b8021494Sopenharmony_ci### BSL1N ### 6703b8021494Sopenharmony_ci 6704b8021494Sopenharmony_ciBitwise select with first input inverted. 6705b8021494Sopenharmony_ci 6706b8021494Sopenharmony_ci void bsl1n(const ZRegister& zd, 6707b8021494Sopenharmony_ci const ZRegister& zn, 6708b8021494Sopenharmony_ci const ZRegister& zm, 6709b8021494Sopenharmony_ci const ZRegister& zk) 6710b8021494Sopenharmony_ci 6711b8021494Sopenharmony_ci 6712b8021494Sopenharmony_ci### BSL2N ### 6713b8021494Sopenharmony_ci 6714b8021494Sopenharmony_ciBitwise select with second input inverted. 6715b8021494Sopenharmony_ci 6716b8021494Sopenharmony_ci void bsl2n(const ZRegister& zd, 6717b8021494Sopenharmony_ci const ZRegister& zn, 6718b8021494Sopenharmony_ci const ZRegister& zm, 6719b8021494Sopenharmony_ci const ZRegister& zk) 6720b8021494Sopenharmony_ci 6721b8021494Sopenharmony_ci 6722b8021494Sopenharmony_ci<a id="sve-c"> 6723b8021494Sopenharmony_ci 6724b8021494Sopenharmony_ci### CADD ### 6725b8021494Sopenharmony_ci 6726b8021494Sopenharmony_ciComplex integer add with rotate. 6727b8021494Sopenharmony_ci 6728b8021494Sopenharmony_ci void cadd(const ZRegister& zd, 6729b8021494Sopenharmony_ci const ZRegister& zn, 6730b8021494Sopenharmony_ci const ZRegister& zm, 6731b8021494Sopenharmony_ci int rot) 6732b8021494Sopenharmony_ci 6733b8021494Sopenharmony_ci 6734b8021494Sopenharmony_ci### CDOT ### 6735b8021494Sopenharmony_ci 6736b8021494Sopenharmony_ciComplex integer dot product (indexed). 6737b8021494Sopenharmony_ci 6738b8021494Sopenharmony_ci void cdot(const ZRegister& zda, 6739b8021494Sopenharmony_ci const ZRegister& zn, 6740b8021494Sopenharmony_ci const ZRegister& zm, 6741b8021494Sopenharmony_ci int index, 6742b8021494Sopenharmony_ci int rot) 6743b8021494Sopenharmony_ci 6744b8021494Sopenharmony_ci 6745b8021494Sopenharmony_ci### CDOT ### 6746b8021494Sopenharmony_ci 6747b8021494Sopenharmony_ciComplex integer dot product. 6748b8021494Sopenharmony_ci 6749b8021494Sopenharmony_ci void cdot(const ZRegister& zda, 6750b8021494Sopenharmony_ci const ZRegister& zn, 6751b8021494Sopenharmony_ci const ZRegister& zm, 6752b8021494Sopenharmony_ci int rot) 6753b8021494Sopenharmony_ci 6754b8021494Sopenharmony_ci 6755b8021494Sopenharmony_ci### CLASTA ### 6756b8021494Sopenharmony_ci 6757b8021494Sopenharmony_ciConditionally extract element after last to SIMD&FP scalar register. 6758b8021494Sopenharmony_ci 6759b8021494Sopenharmony_ci void clasta(const VRegister& vd, 6760b8021494Sopenharmony_ci const PRegister& pg, 6761b8021494Sopenharmony_ci const VRegister& vn, 6762b8021494Sopenharmony_ci const ZRegister& zm) 6763b8021494Sopenharmony_ci 6764b8021494Sopenharmony_ci 6765b8021494Sopenharmony_ci### CLASTA ### 6766b8021494Sopenharmony_ci 6767b8021494Sopenharmony_ciConditionally extract element after last to general-purpose register. 6768b8021494Sopenharmony_ci 6769b8021494Sopenharmony_ci void clasta(const Register& rd, 6770b8021494Sopenharmony_ci const PRegister& pg, 6771b8021494Sopenharmony_ci const Register& rn, 6772b8021494Sopenharmony_ci const ZRegister& zm) 6773b8021494Sopenharmony_ci 6774b8021494Sopenharmony_ci 6775b8021494Sopenharmony_ci### CLASTA ### 6776b8021494Sopenharmony_ci 6777b8021494Sopenharmony_ciConditionally extract element after last to vector register. 6778b8021494Sopenharmony_ci 6779b8021494Sopenharmony_ci void clasta(const ZRegister& zd, 6780b8021494Sopenharmony_ci const PRegister& pg, 6781b8021494Sopenharmony_ci const ZRegister& zn, 6782b8021494Sopenharmony_ci const ZRegister& zm) 6783b8021494Sopenharmony_ci 6784b8021494Sopenharmony_ci 6785b8021494Sopenharmony_ci### CLASTB ### 6786b8021494Sopenharmony_ci 6787b8021494Sopenharmony_ciConditionally extract last element to SIMD&FP scalar register. 6788b8021494Sopenharmony_ci 6789b8021494Sopenharmony_ci void clastb(const VRegister& vd, 6790b8021494Sopenharmony_ci const PRegister& pg, 6791b8021494Sopenharmony_ci const VRegister& vn, 6792b8021494Sopenharmony_ci const ZRegister& zm) 6793b8021494Sopenharmony_ci 6794b8021494Sopenharmony_ci 6795b8021494Sopenharmony_ci### CLASTB ### 6796b8021494Sopenharmony_ci 6797b8021494Sopenharmony_ciConditionally extract last element to general-purpose register. 6798b8021494Sopenharmony_ci 6799b8021494Sopenharmony_ci void clastb(const Register& rd, 6800b8021494Sopenharmony_ci const PRegister& pg, 6801b8021494Sopenharmony_ci const Register& rn, 6802b8021494Sopenharmony_ci const ZRegister& zm) 6803b8021494Sopenharmony_ci 6804b8021494Sopenharmony_ci 6805b8021494Sopenharmony_ci### CLASTB ### 6806b8021494Sopenharmony_ci 6807b8021494Sopenharmony_ciConditionally extract last element to vector register. 6808b8021494Sopenharmony_ci 6809b8021494Sopenharmony_ci void clastb(const ZRegister& zd, 6810b8021494Sopenharmony_ci const PRegister& pg, 6811b8021494Sopenharmony_ci const ZRegister& zn, 6812b8021494Sopenharmony_ci const ZRegister& zm) 6813b8021494Sopenharmony_ci 6814b8021494Sopenharmony_ci 6815b8021494Sopenharmony_ci### CLS ### 6816b8021494Sopenharmony_ci 6817b8021494Sopenharmony_ciCount leading sign bits (predicated). 6818b8021494Sopenharmony_ci 6819b8021494Sopenharmony_ci void cls(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 6820b8021494Sopenharmony_ci 6821b8021494Sopenharmony_ci 6822b8021494Sopenharmony_ci### CLZ ### 6823b8021494Sopenharmony_ci 6824b8021494Sopenharmony_ciCount leading zero bits (predicated). 6825b8021494Sopenharmony_ci 6826b8021494Sopenharmony_ci void clz(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 6827b8021494Sopenharmony_ci 6828b8021494Sopenharmony_ci 6829b8021494Sopenharmony_ci### CMLA ### 6830b8021494Sopenharmony_ci 6831b8021494Sopenharmony_ciComplex integer multiply-add with rotate (indexed). 6832b8021494Sopenharmony_ci 6833b8021494Sopenharmony_ci void cmla(const ZRegister& zda, 6834b8021494Sopenharmony_ci const ZRegister& zn, 6835b8021494Sopenharmony_ci const ZRegister& zm, 6836b8021494Sopenharmony_ci int index, 6837b8021494Sopenharmony_ci int rot) 6838b8021494Sopenharmony_ci 6839b8021494Sopenharmony_ci 6840b8021494Sopenharmony_ci### CMLA ### 6841b8021494Sopenharmony_ci 6842b8021494Sopenharmony_ciComplex integer multiply-add with rotate. 6843b8021494Sopenharmony_ci 6844b8021494Sopenharmony_ci void cmla(const ZRegister& zda, 6845b8021494Sopenharmony_ci const ZRegister& zn, 6846b8021494Sopenharmony_ci const ZRegister& zm, 6847b8021494Sopenharmony_ci int rot) 6848b8021494Sopenharmony_ci 6849b8021494Sopenharmony_ci 6850b8021494Sopenharmony_ci### CMP ### 6851b8021494Sopenharmony_ci 6852b8021494Sopenharmony_ci 6853b8021494Sopenharmony_ci 6854b8021494Sopenharmony_ci void cmp(Condition cond, 6855b8021494Sopenharmony_ci const PRegisterWithLaneSize& pd, 6856b8021494Sopenharmony_ci const PRegisterZ& pg, 6857b8021494Sopenharmony_ci const ZRegister& zn, 6858b8021494Sopenharmony_ci const ZRegister& zm) 6859b8021494Sopenharmony_ci 6860b8021494Sopenharmony_ci 6861b8021494Sopenharmony_ci### CMPEQ ### 6862b8021494Sopenharmony_ci 6863b8021494Sopenharmony_ciCompare vector to 64-bit wide elements. 6864b8021494Sopenharmony_ci 6865b8021494Sopenharmony_ci void cmpeq(const PRegisterWithLaneSize& pd, 6866b8021494Sopenharmony_ci const PRegisterZ& pg, 6867b8021494Sopenharmony_ci const ZRegister& zn, 6868b8021494Sopenharmony_ci const ZRegister& zm) 6869b8021494Sopenharmony_ci 6870b8021494Sopenharmony_ci 6871b8021494Sopenharmony_ci### CMPEQ ### 6872b8021494Sopenharmony_ci 6873b8021494Sopenharmony_ciCompare vector to immediate. 6874b8021494Sopenharmony_ci 6875b8021494Sopenharmony_ci void cmpeq(const PRegisterWithLaneSize& pd, 6876b8021494Sopenharmony_ci const PRegisterZ& pg, 6877b8021494Sopenharmony_ci const ZRegister& zn, 6878b8021494Sopenharmony_ci int imm5) 6879b8021494Sopenharmony_ci 6880b8021494Sopenharmony_ci 6881b8021494Sopenharmony_ci### CMPGE ### 6882b8021494Sopenharmony_ci 6883b8021494Sopenharmony_ciCompare vector to 64-bit wide elements. 6884b8021494Sopenharmony_ci 6885b8021494Sopenharmony_ci void cmpge(const PRegisterWithLaneSize& pd, 6886b8021494Sopenharmony_ci const PRegisterZ& pg, 6887b8021494Sopenharmony_ci const ZRegister& zn, 6888b8021494Sopenharmony_ci const ZRegister& zm) 6889b8021494Sopenharmony_ci 6890b8021494Sopenharmony_ci 6891b8021494Sopenharmony_ci### CMPGE ### 6892b8021494Sopenharmony_ci 6893b8021494Sopenharmony_ciCompare vector to immediate. 6894b8021494Sopenharmony_ci 6895b8021494Sopenharmony_ci void cmpge(const PRegisterWithLaneSize& pd, 6896b8021494Sopenharmony_ci const PRegisterZ& pg, 6897b8021494Sopenharmony_ci const ZRegister& zn, 6898b8021494Sopenharmony_ci int imm5) 6899b8021494Sopenharmony_ci 6900b8021494Sopenharmony_ci 6901b8021494Sopenharmony_ci### CMPGT ### 6902b8021494Sopenharmony_ci 6903b8021494Sopenharmony_ciCompare vector to 64-bit wide elements. 6904b8021494Sopenharmony_ci 6905b8021494Sopenharmony_ci void cmpgt(const PRegisterWithLaneSize& pd, 6906b8021494Sopenharmony_ci const PRegisterZ& pg, 6907b8021494Sopenharmony_ci const ZRegister& zn, 6908b8021494Sopenharmony_ci const ZRegister& zm) 6909b8021494Sopenharmony_ci 6910b8021494Sopenharmony_ci 6911b8021494Sopenharmony_ci### CMPGT ### 6912b8021494Sopenharmony_ci 6913b8021494Sopenharmony_ciCompare vector to immediate. 6914b8021494Sopenharmony_ci 6915b8021494Sopenharmony_ci void cmpgt(const PRegisterWithLaneSize& pd, 6916b8021494Sopenharmony_ci const PRegisterZ& pg, 6917b8021494Sopenharmony_ci const ZRegister& zn, 6918b8021494Sopenharmony_ci int imm5) 6919b8021494Sopenharmony_ci 6920b8021494Sopenharmony_ci 6921b8021494Sopenharmony_ci### CMPHI ### 6922b8021494Sopenharmony_ci 6923b8021494Sopenharmony_ciCompare vector to 64-bit wide elements. 6924b8021494Sopenharmony_ci 6925b8021494Sopenharmony_ci void cmphi(const PRegisterWithLaneSize& pd, 6926b8021494Sopenharmony_ci const PRegisterZ& pg, 6927b8021494Sopenharmony_ci const ZRegister& zn, 6928b8021494Sopenharmony_ci const ZRegister& zm) 6929b8021494Sopenharmony_ci 6930b8021494Sopenharmony_ci 6931b8021494Sopenharmony_ci### CMPHI ### 6932b8021494Sopenharmony_ci 6933b8021494Sopenharmony_ciCompare vector to immediate. 6934b8021494Sopenharmony_ci 6935b8021494Sopenharmony_ci void cmphi(const PRegisterWithLaneSize& pd, 6936b8021494Sopenharmony_ci const PRegisterZ& pg, 6937b8021494Sopenharmony_ci const ZRegister& zn, 6938b8021494Sopenharmony_ci unsigned imm7) 6939b8021494Sopenharmony_ci 6940b8021494Sopenharmony_ci 6941b8021494Sopenharmony_ci### CMPHS ### 6942b8021494Sopenharmony_ci 6943b8021494Sopenharmony_ciCompare vector to 64-bit wide elements. 6944b8021494Sopenharmony_ci 6945b8021494Sopenharmony_ci void cmphs(const PRegisterWithLaneSize& pd, 6946b8021494Sopenharmony_ci const PRegisterZ& pg, 6947b8021494Sopenharmony_ci const ZRegister& zn, 6948b8021494Sopenharmony_ci const ZRegister& zm) 6949b8021494Sopenharmony_ci 6950b8021494Sopenharmony_ci 6951b8021494Sopenharmony_ci### CMPHS ### 6952b8021494Sopenharmony_ci 6953b8021494Sopenharmony_ciCompare vector to immediate. 6954b8021494Sopenharmony_ci 6955b8021494Sopenharmony_ci void cmphs(const PRegisterWithLaneSize& pd, 6956b8021494Sopenharmony_ci const PRegisterZ& pg, 6957b8021494Sopenharmony_ci const ZRegister& zn, 6958b8021494Sopenharmony_ci unsigned imm7) 6959b8021494Sopenharmony_ci 6960b8021494Sopenharmony_ci 6961b8021494Sopenharmony_ci### CMPLE ### 6962b8021494Sopenharmony_ci 6963b8021494Sopenharmony_ciCompare vector to 64-bit wide elements. 6964b8021494Sopenharmony_ci 6965b8021494Sopenharmony_ci void cmple(const PRegisterWithLaneSize& pd, 6966b8021494Sopenharmony_ci const PRegisterZ& pg, 6967b8021494Sopenharmony_ci const ZRegister& zn, 6968b8021494Sopenharmony_ci const ZRegister& zm) 6969b8021494Sopenharmony_ci 6970b8021494Sopenharmony_ci 6971b8021494Sopenharmony_ci### CMPLE ### 6972b8021494Sopenharmony_ci 6973b8021494Sopenharmony_ciCompare vector to immediate. 6974b8021494Sopenharmony_ci 6975b8021494Sopenharmony_ci void cmple(const PRegisterWithLaneSize& pd, 6976b8021494Sopenharmony_ci const PRegisterZ& pg, 6977b8021494Sopenharmony_ci const ZRegister& zn, 6978b8021494Sopenharmony_ci int imm5) 6979b8021494Sopenharmony_ci 6980b8021494Sopenharmony_ci 6981b8021494Sopenharmony_ci### CMPLO ### 6982b8021494Sopenharmony_ci 6983b8021494Sopenharmony_ciCompare vector to 64-bit wide elements. 6984b8021494Sopenharmony_ci 6985b8021494Sopenharmony_ci void cmplo(const PRegisterWithLaneSize& pd, 6986b8021494Sopenharmony_ci const PRegisterZ& pg, 6987b8021494Sopenharmony_ci const ZRegister& zn, 6988b8021494Sopenharmony_ci const ZRegister& zm) 6989b8021494Sopenharmony_ci 6990b8021494Sopenharmony_ci 6991b8021494Sopenharmony_ci### CMPLO ### 6992b8021494Sopenharmony_ci 6993b8021494Sopenharmony_ciCompare vector to immediate. 6994b8021494Sopenharmony_ci 6995b8021494Sopenharmony_ci void cmplo(const PRegisterWithLaneSize& pd, 6996b8021494Sopenharmony_ci const PRegisterZ& pg, 6997b8021494Sopenharmony_ci const ZRegister& zn, 6998b8021494Sopenharmony_ci unsigned imm7) 6999b8021494Sopenharmony_ci 7000b8021494Sopenharmony_ci 7001b8021494Sopenharmony_ci### CMPLS ### 7002b8021494Sopenharmony_ci 7003b8021494Sopenharmony_ciCompare vector to 64-bit wide elements. 7004b8021494Sopenharmony_ci 7005b8021494Sopenharmony_ci void cmpls(const PRegisterWithLaneSize& pd, 7006b8021494Sopenharmony_ci const PRegisterZ& pg, 7007b8021494Sopenharmony_ci const ZRegister& zn, 7008b8021494Sopenharmony_ci const ZRegister& zm) 7009b8021494Sopenharmony_ci 7010b8021494Sopenharmony_ci 7011b8021494Sopenharmony_ci### CMPLS ### 7012b8021494Sopenharmony_ci 7013b8021494Sopenharmony_ciCompare vector to immediate. 7014b8021494Sopenharmony_ci 7015b8021494Sopenharmony_ci void cmpls(const PRegisterWithLaneSize& pd, 7016b8021494Sopenharmony_ci const PRegisterZ& pg, 7017b8021494Sopenharmony_ci const ZRegister& zn, 7018b8021494Sopenharmony_ci unsigned imm7) 7019b8021494Sopenharmony_ci 7020b8021494Sopenharmony_ci 7021b8021494Sopenharmony_ci### CMPLT ### 7022b8021494Sopenharmony_ci 7023b8021494Sopenharmony_ciCompare vector to 64-bit wide elements. 7024b8021494Sopenharmony_ci 7025b8021494Sopenharmony_ci void cmplt(const PRegisterWithLaneSize& pd, 7026b8021494Sopenharmony_ci const PRegisterZ& pg, 7027b8021494Sopenharmony_ci const ZRegister& zn, 7028b8021494Sopenharmony_ci const ZRegister& zm) 7029b8021494Sopenharmony_ci 7030b8021494Sopenharmony_ci 7031b8021494Sopenharmony_ci### CMPLT ### 7032b8021494Sopenharmony_ci 7033b8021494Sopenharmony_ciCompare vector to immediate. 7034b8021494Sopenharmony_ci 7035b8021494Sopenharmony_ci void cmplt(const PRegisterWithLaneSize& pd, 7036b8021494Sopenharmony_ci const PRegisterZ& pg, 7037b8021494Sopenharmony_ci const ZRegister& zn, 7038b8021494Sopenharmony_ci int imm5) 7039b8021494Sopenharmony_ci 7040b8021494Sopenharmony_ci 7041b8021494Sopenharmony_ci### CMPNE ### 7042b8021494Sopenharmony_ci 7043b8021494Sopenharmony_ciCompare vector to 64-bit wide elements. 7044b8021494Sopenharmony_ci 7045b8021494Sopenharmony_ci void cmpne(const PRegisterWithLaneSize& pd, 7046b8021494Sopenharmony_ci const PRegisterZ& pg, 7047b8021494Sopenharmony_ci const ZRegister& zn, 7048b8021494Sopenharmony_ci const ZRegister& zm) 7049b8021494Sopenharmony_ci 7050b8021494Sopenharmony_ci 7051b8021494Sopenharmony_ci### CMPNE ### 7052b8021494Sopenharmony_ci 7053b8021494Sopenharmony_ciCompare vector to immediate. 7054b8021494Sopenharmony_ci 7055b8021494Sopenharmony_ci void cmpne(const PRegisterWithLaneSize& pd, 7056b8021494Sopenharmony_ci const PRegisterZ& pg, 7057b8021494Sopenharmony_ci const ZRegister& zn, 7058b8021494Sopenharmony_ci int imm5) 7059b8021494Sopenharmony_ci 7060b8021494Sopenharmony_ci 7061b8021494Sopenharmony_ci### CNOT ### 7062b8021494Sopenharmony_ci 7063b8021494Sopenharmony_ciLogically invert boolean condition in vector (predicated). 7064b8021494Sopenharmony_ci 7065b8021494Sopenharmony_ci void cnot(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 7066b8021494Sopenharmony_ci 7067b8021494Sopenharmony_ci 7068b8021494Sopenharmony_ci### CNT ### 7069b8021494Sopenharmony_ci 7070b8021494Sopenharmony_ciCount non-zero bits (predicated). 7071b8021494Sopenharmony_ci 7072b8021494Sopenharmony_ci void cnt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 7073b8021494Sopenharmony_ci 7074b8021494Sopenharmony_ci 7075b8021494Sopenharmony_ci### CNTB ### 7076b8021494Sopenharmony_ci 7077b8021494Sopenharmony_ciSet scalar to multiple of predicate constraint element count. 7078b8021494Sopenharmony_ci 7079b8021494Sopenharmony_ci void cntb(const Register& rd, int pattern = SVE_ALL, int multiplier = 1) 7080b8021494Sopenharmony_ci 7081b8021494Sopenharmony_ci 7082b8021494Sopenharmony_ci### CNTD ### 7083b8021494Sopenharmony_ci 7084b8021494Sopenharmony_ciSet scalar to multiple of predicate constraint element count. 7085b8021494Sopenharmony_ci 7086b8021494Sopenharmony_ci void cntd(const Register& rd, int pattern = SVE_ALL, int multiplier = 1) 7087b8021494Sopenharmony_ci 7088b8021494Sopenharmony_ci 7089b8021494Sopenharmony_ci### CNTH ### 7090b8021494Sopenharmony_ci 7091b8021494Sopenharmony_ciSet scalar to multiple of predicate constraint element count. 7092b8021494Sopenharmony_ci 7093b8021494Sopenharmony_ci void cnth(const Register& rd, int pattern = SVE_ALL, int multiplier = 1) 7094b8021494Sopenharmony_ci 7095b8021494Sopenharmony_ci 7096b8021494Sopenharmony_ci### CNTP ### 7097b8021494Sopenharmony_ci 7098b8021494Sopenharmony_ciSet scalar to active predicate element count. 7099b8021494Sopenharmony_ci 7100b8021494Sopenharmony_ci void cntp(const Register& xd, 7101b8021494Sopenharmony_ci const PRegister& pg, 7102b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 7103b8021494Sopenharmony_ci 7104b8021494Sopenharmony_ci 7105b8021494Sopenharmony_ci### CNTW ### 7106b8021494Sopenharmony_ci 7107b8021494Sopenharmony_ciSet scalar to multiple of predicate constraint element count. 7108b8021494Sopenharmony_ci 7109b8021494Sopenharmony_ci void cntw(const Register& rd, int pattern = SVE_ALL, int multiplier = 1) 7110b8021494Sopenharmony_ci 7111b8021494Sopenharmony_ci 7112b8021494Sopenharmony_ci### COMPACT ### 7113b8021494Sopenharmony_ci 7114b8021494Sopenharmony_ciShuffle active elements of vector to the right and fill with zero. 7115b8021494Sopenharmony_ci 7116b8021494Sopenharmony_ci void compact(const ZRegister& zd, const PRegister& pg, const ZRegister& zn) 7117b8021494Sopenharmony_ci 7118b8021494Sopenharmony_ci 7119b8021494Sopenharmony_ci### CPY ### 7120b8021494Sopenharmony_ci 7121b8021494Sopenharmony_ciCopy SIMD&FP scalar register to vector elements (predicated). 7122b8021494Sopenharmony_ci 7123b8021494Sopenharmony_ci void cpy(const ZRegister& zd, const PRegisterM& pg, const VRegister& vn) 7124b8021494Sopenharmony_ci 7125b8021494Sopenharmony_ci 7126b8021494Sopenharmony_ci### CPY ### 7127b8021494Sopenharmony_ci 7128b8021494Sopenharmony_ciCopy general-purpose register to vector elements (predicated). 7129b8021494Sopenharmony_ci 7130b8021494Sopenharmony_ci void cpy(const ZRegister& zd, const PRegisterM& pg, const Register& rn) 7131b8021494Sopenharmony_ci 7132b8021494Sopenharmony_ci 7133b8021494Sopenharmony_ci### CPY ### 7134b8021494Sopenharmony_ci 7135b8021494Sopenharmony_ciCopy signed integer immediate to vector elements (predicated). 7136b8021494Sopenharmony_ci 7137b8021494Sopenharmony_ci void cpy(const ZRegister& zd, const PRegister& pg, int imm8, int shift = -1) 7138b8021494Sopenharmony_ci 7139b8021494Sopenharmony_ci 7140b8021494Sopenharmony_ci### CTERMEQ ### 7141b8021494Sopenharmony_ci 7142b8021494Sopenharmony_ciCompare and terminate loop. 7143b8021494Sopenharmony_ci 7144b8021494Sopenharmony_ci void ctermeq(const Register& rn, const Register& rm) 7145b8021494Sopenharmony_ci 7146b8021494Sopenharmony_ci 7147b8021494Sopenharmony_ci### CTERMNE ### 7148b8021494Sopenharmony_ci 7149b8021494Sopenharmony_ciCompare and terminate loop. 7150b8021494Sopenharmony_ci 7151b8021494Sopenharmony_ci void ctermne(const Register& rn, const Register& rm) 7152b8021494Sopenharmony_ci 7153b8021494Sopenharmony_ci 7154b8021494Sopenharmony_ci<a id="sve-d"> 7155b8021494Sopenharmony_ci 7156b8021494Sopenharmony_ci### DECB ### 7157b8021494Sopenharmony_ci 7158b8021494Sopenharmony_ciDecrement scalar by multiple of predicate constraint element count. 7159b8021494Sopenharmony_ci 7160b8021494Sopenharmony_ci void decb(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1) 7161b8021494Sopenharmony_ci 7162b8021494Sopenharmony_ci 7163b8021494Sopenharmony_ci### DECD ### 7164b8021494Sopenharmony_ci 7165b8021494Sopenharmony_ciDecrement scalar by multiple of predicate constraint element count. 7166b8021494Sopenharmony_ci 7167b8021494Sopenharmony_ci void decd(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1) 7168b8021494Sopenharmony_ci 7169b8021494Sopenharmony_ci 7170b8021494Sopenharmony_ci### DECD ### 7171b8021494Sopenharmony_ci 7172b8021494Sopenharmony_ciDecrement vector by multiple of predicate constraint element count. 7173b8021494Sopenharmony_ci 7174b8021494Sopenharmony_ci void decd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 7175b8021494Sopenharmony_ci 7176b8021494Sopenharmony_ci 7177b8021494Sopenharmony_ci### DECH ### 7178b8021494Sopenharmony_ci 7179b8021494Sopenharmony_ciDecrement scalar by multiple of predicate constraint element count. 7180b8021494Sopenharmony_ci 7181b8021494Sopenharmony_ci void dech(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1) 7182b8021494Sopenharmony_ci 7183b8021494Sopenharmony_ci 7184b8021494Sopenharmony_ci### DECH ### 7185b8021494Sopenharmony_ci 7186b8021494Sopenharmony_ciDecrement vector by multiple of predicate constraint element count. 7187b8021494Sopenharmony_ci 7188b8021494Sopenharmony_ci void dech(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 7189b8021494Sopenharmony_ci 7190b8021494Sopenharmony_ci 7191b8021494Sopenharmony_ci### DECP ### 7192b8021494Sopenharmony_ci 7193b8021494Sopenharmony_ciDecrement scalar by active predicate element count. 7194b8021494Sopenharmony_ci 7195b8021494Sopenharmony_ci void decp(const Register& rdn, const PRegisterWithLaneSize& pg) 7196b8021494Sopenharmony_ci 7197b8021494Sopenharmony_ci 7198b8021494Sopenharmony_ci### DECP ### 7199b8021494Sopenharmony_ci 7200b8021494Sopenharmony_ciDecrement vector by active predicate element count. 7201b8021494Sopenharmony_ci 7202b8021494Sopenharmony_ci void decp(const ZRegister& zdn, const PRegister& pg) 7203b8021494Sopenharmony_ci 7204b8021494Sopenharmony_ci 7205b8021494Sopenharmony_ci### DECW ### 7206b8021494Sopenharmony_ci 7207b8021494Sopenharmony_ciDecrement scalar by multiple of predicate constraint element count. 7208b8021494Sopenharmony_ci 7209b8021494Sopenharmony_ci void decw(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1) 7210b8021494Sopenharmony_ci 7211b8021494Sopenharmony_ci 7212b8021494Sopenharmony_ci### DECW ### 7213b8021494Sopenharmony_ci 7214b8021494Sopenharmony_ciDecrement vector by multiple of predicate constraint element count. 7215b8021494Sopenharmony_ci 7216b8021494Sopenharmony_ci void decw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 7217b8021494Sopenharmony_ci 7218b8021494Sopenharmony_ci 7219b8021494Sopenharmony_ci### DUP ### 7220b8021494Sopenharmony_ci 7221b8021494Sopenharmony_ciBroadcast general-purpose register to vector elements (unpredicated). 7222b8021494Sopenharmony_ci 7223b8021494Sopenharmony_ci void dup(const ZRegister& zd, const Register& xn) 7224b8021494Sopenharmony_ci 7225b8021494Sopenharmony_ci 7226b8021494Sopenharmony_ci### DUP ### 7227b8021494Sopenharmony_ci 7228b8021494Sopenharmony_ciBroadcast indexed element to vector (unpredicated). 7229b8021494Sopenharmony_ci 7230b8021494Sopenharmony_ci void dup(const ZRegister& zd, const ZRegister& zn, unsigned index) 7231b8021494Sopenharmony_ci 7232b8021494Sopenharmony_ci 7233b8021494Sopenharmony_ci### DUP ### 7234b8021494Sopenharmony_ci 7235b8021494Sopenharmony_ciBroadcast signed immediate to vector elements (unpredicated). 7236b8021494Sopenharmony_ci 7237b8021494Sopenharmony_ci void dup(const ZRegister& zd, int imm8, int shift = -1) 7238b8021494Sopenharmony_ci 7239b8021494Sopenharmony_ci 7240b8021494Sopenharmony_ci### DUPM ### 7241b8021494Sopenharmony_ci 7242b8021494Sopenharmony_ciBroadcast logical bitmask immediate to vector (unpredicated). 7243b8021494Sopenharmony_ci 7244b8021494Sopenharmony_ci void dupm(const ZRegister& zd, uint64_t imm) 7245b8021494Sopenharmony_ci 7246b8021494Sopenharmony_ci 7247b8021494Sopenharmony_ci<a id="sve-e"> 7248b8021494Sopenharmony_ci 7249b8021494Sopenharmony_ci### EON ### 7250b8021494Sopenharmony_ci 7251b8021494Sopenharmony_ciBitwise exclusive OR with inverted immediate (unpredicated). 7252b8021494Sopenharmony_ci 7253b8021494Sopenharmony_ci void eon(const ZRegister& zd, const ZRegister& zn, uint64_t imm) 7254b8021494Sopenharmony_ci 7255b8021494Sopenharmony_ci 7256b8021494Sopenharmony_ci### EOR ### 7257b8021494Sopenharmony_ci 7258b8021494Sopenharmony_ciBitwise exclusive OR predicates. 7259b8021494Sopenharmony_ci 7260b8021494Sopenharmony_ci void eor(const PRegisterWithLaneSize& pd, 7261b8021494Sopenharmony_ci const PRegisterZ& pg, 7262b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 7263b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 7264b8021494Sopenharmony_ci 7265b8021494Sopenharmony_ci 7266b8021494Sopenharmony_ci### EOR ### 7267b8021494Sopenharmony_ci 7268b8021494Sopenharmony_ciBitwise exclusive OR vectors (predicated). 7269b8021494Sopenharmony_ci 7270b8021494Sopenharmony_ci void eor(const ZRegister& zd, 7271b8021494Sopenharmony_ci const PRegisterM& pg, 7272b8021494Sopenharmony_ci const ZRegister& zn, 7273b8021494Sopenharmony_ci const ZRegister& zm) 7274b8021494Sopenharmony_ci 7275b8021494Sopenharmony_ci 7276b8021494Sopenharmony_ci### EOR ### 7277b8021494Sopenharmony_ci 7278b8021494Sopenharmony_ciBitwise exclusive OR vectors (unpredicated). 7279b8021494Sopenharmony_ci 7280b8021494Sopenharmony_ci void eor(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 7281b8021494Sopenharmony_ci 7282b8021494Sopenharmony_ci 7283b8021494Sopenharmony_ci### EOR ### 7284b8021494Sopenharmony_ci 7285b8021494Sopenharmony_ciBitwise exclusive OR with immediate (unpredicated). 7286b8021494Sopenharmony_ci 7287b8021494Sopenharmony_ci void eor(const ZRegister& zd, const ZRegister& zn, uint64_t imm) 7288b8021494Sopenharmony_ci 7289b8021494Sopenharmony_ci 7290b8021494Sopenharmony_ci### EOR3 ### 7291b8021494Sopenharmony_ci 7292b8021494Sopenharmony_ciBitwise exclusive OR of three vectors. 7293b8021494Sopenharmony_ci 7294b8021494Sopenharmony_ci void eor3(const ZRegister& zd, 7295b8021494Sopenharmony_ci const ZRegister& zn, 7296b8021494Sopenharmony_ci const ZRegister& zm, 7297b8021494Sopenharmony_ci const ZRegister& zk) 7298b8021494Sopenharmony_ci 7299b8021494Sopenharmony_ci 7300b8021494Sopenharmony_ci### EORBT ### 7301b8021494Sopenharmony_ci 7302b8021494Sopenharmony_ciInterleaving exclusive OR (bottom, top). 7303b8021494Sopenharmony_ci 7304b8021494Sopenharmony_ci void eorbt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 7305b8021494Sopenharmony_ci 7306b8021494Sopenharmony_ci 7307b8021494Sopenharmony_ci### EORS ### 7308b8021494Sopenharmony_ci 7309b8021494Sopenharmony_ciBitwise exclusive OR predicates. 7310b8021494Sopenharmony_ci 7311b8021494Sopenharmony_ci void eors(const PRegisterWithLaneSize& pd, 7312b8021494Sopenharmony_ci const PRegisterZ& pg, 7313b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 7314b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 7315b8021494Sopenharmony_ci 7316b8021494Sopenharmony_ci 7317b8021494Sopenharmony_ci### EORTB ### 7318b8021494Sopenharmony_ci 7319b8021494Sopenharmony_ciInterleaving exclusive OR (top, bottom). 7320b8021494Sopenharmony_ci 7321b8021494Sopenharmony_ci void eortb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 7322b8021494Sopenharmony_ci 7323b8021494Sopenharmony_ci 7324b8021494Sopenharmony_ci### EORV ### 7325b8021494Sopenharmony_ci 7326b8021494Sopenharmony_ciBitwise XOR reduction to scalar. 7327b8021494Sopenharmony_ci 7328b8021494Sopenharmony_ci void eorv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 7329b8021494Sopenharmony_ci 7330b8021494Sopenharmony_ci 7331b8021494Sopenharmony_ci### EXT ### 7332b8021494Sopenharmony_ci 7333b8021494Sopenharmony_ciExtract vector from pair of vectors. 7334b8021494Sopenharmony_ci 7335b8021494Sopenharmony_ci void ext(const ZRegister& zd, 7336b8021494Sopenharmony_ci const ZRegister& zn, 7337b8021494Sopenharmony_ci const ZRegister& zm, 7338b8021494Sopenharmony_ci unsigned offset) 7339b8021494Sopenharmony_ci 7340b8021494Sopenharmony_ci 7341b8021494Sopenharmony_ci<a id="sve-f"> 7342b8021494Sopenharmony_ci 7343b8021494Sopenharmony_ci### FABD ### 7344b8021494Sopenharmony_ci 7345b8021494Sopenharmony_ciFloating-point absolute difference (predicated). 7346b8021494Sopenharmony_ci 7347b8021494Sopenharmony_ci void fabd(const ZRegister& zd, 7348b8021494Sopenharmony_ci const PRegisterM& pg, 7349b8021494Sopenharmony_ci const ZRegister& zn, 7350b8021494Sopenharmony_ci const ZRegister& zm) 7351b8021494Sopenharmony_ci 7352b8021494Sopenharmony_ci 7353b8021494Sopenharmony_ci### FABS ### 7354b8021494Sopenharmony_ci 7355b8021494Sopenharmony_ciFloating-point absolute value (predicated). 7356b8021494Sopenharmony_ci 7357b8021494Sopenharmony_ci void fabs(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 7358b8021494Sopenharmony_ci 7359b8021494Sopenharmony_ci 7360b8021494Sopenharmony_ci### FACGE ### 7361b8021494Sopenharmony_ci 7362b8021494Sopenharmony_ciFloating-point absolute compare vectors. 7363b8021494Sopenharmony_ci 7364b8021494Sopenharmony_ci void facge(const PRegisterWithLaneSize& pd, 7365b8021494Sopenharmony_ci const PRegisterZ& pg, 7366b8021494Sopenharmony_ci const ZRegister& zn, 7367b8021494Sopenharmony_ci const ZRegister& zm) 7368b8021494Sopenharmony_ci 7369b8021494Sopenharmony_ci 7370b8021494Sopenharmony_ci### FACGT ### 7371b8021494Sopenharmony_ci 7372b8021494Sopenharmony_ciFloating-point absolute compare vectors. 7373b8021494Sopenharmony_ci 7374b8021494Sopenharmony_ci void facgt(const PRegisterWithLaneSize& pd, 7375b8021494Sopenharmony_ci const PRegisterZ& pg, 7376b8021494Sopenharmony_ci const ZRegister& zn, 7377b8021494Sopenharmony_ci const ZRegister& zm) 7378b8021494Sopenharmony_ci 7379b8021494Sopenharmony_ci 7380b8021494Sopenharmony_ci### FADD ### 7381b8021494Sopenharmony_ci 7382b8021494Sopenharmony_ciFloating-point add immediate (predicated). 7383b8021494Sopenharmony_ci 7384b8021494Sopenharmony_ci void fadd(const ZRegister& zd, 7385b8021494Sopenharmony_ci const PRegisterM& pg, 7386b8021494Sopenharmony_ci const ZRegister& zn, 7387b8021494Sopenharmony_ci double imm) 7388b8021494Sopenharmony_ci 7389b8021494Sopenharmony_ci 7390b8021494Sopenharmony_ci### FADD ### 7391b8021494Sopenharmony_ci 7392b8021494Sopenharmony_ciFloating-point add vector (predicated). 7393b8021494Sopenharmony_ci 7394b8021494Sopenharmony_ci void fadd(const ZRegister& zd, 7395b8021494Sopenharmony_ci const PRegisterM& pg, 7396b8021494Sopenharmony_ci const ZRegister& zn, 7397b8021494Sopenharmony_ci const ZRegister& zm) 7398b8021494Sopenharmony_ci 7399b8021494Sopenharmony_ci 7400b8021494Sopenharmony_ci### FADD ### 7401b8021494Sopenharmony_ci 7402b8021494Sopenharmony_ciFloating-point add vector (unpredicated). 7403b8021494Sopenharmony_ci 7404b8021494Sopenharmony_ci void fadd(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 7405b8021494Sopenharmony_ci 7406b8021494Sopenharmony_ci 7407b8021494Sopenharmony_ci### FADDA ### 7408b8021494Sopenharmony_ci 7409b8021494Sopenharmony_ciFloating-point add strictly-ordered reduction, accumulating in scalar. 7410b8021494Sopenharmony_ci 7411b8021494Sopenharmony_ci void fadda(const VRegister& vd, 7412b8021494Sopenharmony_ci const PRegister& pg, 7413b8021494Sopenharmony_ci const VRegister& vn, 7414b8021494Sopenharmony_ci const ZRegister& zm) 7415b8021494Sopenharmony_ci 7416b8021494Sopenharmony_ci 7417b8021494Sopenharmony_ci### FADDP ### 7418b8021494Sopenharmony_ci 7419b8021494Sopenharmony_ciFloating-point add pairwise. 7420b8021494Sopenharmony_ci 7421b8021494Sopenharmony_ci void faddp(const ZRegister& zd, 7422b8021494Sopenharmony_ci const PRegisterM& pg, 7423b8021494Sopenharmony_ci const ZRegister& zn, 7424b8021494Sopenharmony_ci const ZRegister& zm) 7425b8021494Sopenharmony_ci 7426b8021494Sopenharmony_ci 7427b8021494Sopenharmony_ci### FADDV ### 7428b8021494Sopenharmony_ci 7429b8021494Sopenharmony_ciFloating-point add recursive reduction to scalar. 7430b8021494Sopenharmony_ci 7431b8021494Sopenharmony_ci void faddv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 7432b8021494Sopenharmony_ci 7433b8021494Sopenharmony_ci 7434b8021494Sopenharmony_ci### FCADD ### 7435b8021494Sopenharmony_ci 7436b8021494Sopenharmony_ciFloating-point complex add with rotate (predicated). 7437b8021494Sopenharmony_ci 7438b8021494Sopenharmony_ci void fcadd(const ZRegister& zd, 7439b8021494Sopenharmony_ci const PRegisterM& pg, 7440b8021494Sopenharmony_ci const ZRegister& zn, 7441b8021494Sopenharmony_ci const ZRegister& zm, 7442b8021494Sopenharmony_ci int rot) 7443b8021494Sopenharmony_ci 7444b8021494Sopenharmony_ci 7445b8021494Sopenharmony_ci### FCMEQ ### 7446b8021494Sopenharmony_ci 7447b8021494Sopenharmony_ciFloating-point compare vector with zero. 7448b8021494Sopenharmony_ci 7449b8021494Sopenharmony_ci void fcmeq(const PRegisterWithLaneSize& pd, 7450b8021494Sopenharmony_ci const PRegisterZ& pg, 7451b8021494Sopenharmony_ci const ZRegister& zn, 7452b8021494Sopenharmony_ci double zero) 7453b8021494Sopenharmony_ci 7454b8021494Sopenharmony_ci 7455b8021494Sopenharmony_ci### FCMEQ ### 7456b8021494Sopenharmony_ci 7457b8021494Sopenharmony_ciFloating-point compare vectors. 7458b8021494Sopenharmony_ci 7459b8021494Sopenharmony_ci void fcmeq(const PRegisterWithLaneSize& pd, 7460b8021494Sopenharmony_ci const PRegisterZ& pg, 7461b8021494Sopenharmony_ci const ZRegister& zn, 7462b8021494Sopenharmony_ci const ZRegister& zm) 7463b8021494Sopenharmony_ci 7464b8021494Sopenharmony_ci 7465b8021494Sopenharmony_ci### FCMGE ### 7466b8021494Sopenharmony_ci 7467b8021494Sopenharmony_ciFloating-point compare vector with zero. 7468b8021494Sopenharmony_ci 7469b8021494Sopenharmony_ci void fcmge(const PRegisterWithLaneSize& pd, 7470b8021494Sopenharmony_ci const PRegisterZ& pg, 7471b8021494Sopenharmony_ci const ZRegister& zn, 7472b8021494Sopenharmony_ci double zero) 7473b8021494Sopenharmony_ci 7474b8021494Sopenharmony_ci 7475b8021494Sopenharmony_ci### FCMGE ### 7476b8021494Sopenharmony_ci 7477b8021494Sopenharmony_ciFloating-point compare vectors. 7478b8021494Sopenharmony_ci 7479b8021494Sopenharmony_ci void fcmge(const PRegisterWithLaneSize& pd, 7480b8021494Sopenharmony_ci const PRegisterZ& pg, 7481b8021494Sopenharmony_ci const ZRegister& zn, 7482b8021494Sopenharmony_ci const ZRegister& zm) 7483b8021494Sopenharmony_ci 7484b8021494Sopenharmony_ci 7485b8021494Sopenharmony_ci### FCMGT ### 7486b8021494Sopenharmony_ci 7487b8021494Sopenharmony_ciFloating-point compare vector with zero. 7488b8021494Sopenharmony_ci 7489b8021494Sopenharmony_ci void fcmgt(const PRegisterWithLaneSize& pd, 7490b8021494Sopenharmony_ci const PRegisterZ& pg, 7491b8021494Sopenharmony_ci const ZRegister& zn, 7492b8021494Sopenharmony_ci double zero) 7493b8021494Sopenharmony_ci 7494b8021494Sopenharmony_ci 7495b8021494Sopenharmony_ci### FCMGT ### 7496b8021494Sopenharmony_ci 7497b8021494Sopenharmony_ciFloating-point compare vectors. 7498b8021494Sopenharmony_ci 7499b8021494Sopenharmony_ci void fcmgt(const PRegisterWithLaneSize& pd, 7500b8021494Sopenharmony_ci const PRegisterZ& pg, 7501b8021494Sopenharmony_ci const ZRegister& zn, 7502b8021494Sopenharmony_ci const ZRegister& zm) 7503b8021494Sopenharmony_ci 7504b8021494Sopenharmony_ci 7505b8021494Sopenharmony_ci### FCMLA ### 7506b8021494Sopenharmony_ci 7507b8021494Sopenharmony_ciFloating-point complex multiply-add by indexed values with rotate. 7508b8021494Sopenharmony_ci 7509b8021494Sopenharmony_ci void fcmla(const ZRegister& zda, 7510b8021494Sopenharmony_ci const ZRegister& zn, 7511b8021494Sopenharmony_ci const ZRegister& zm, 7512b8021494Sopenharmony_ci int index, 7513b8021494Sopenharmony_ci int rot) 7514b8021494Sopenharmony_ci 7515b8021494Sopenharmony_ci 7516b8021494Sopenharmony_ci### FCMLA ### 7517b8021494Sopenharmony_ci 7518b8021494Sopenharmony_ciFloating-point complex multiply-add with rotate (predicated). 7519b8021494Sopenharmony_ci 7520b8021494Sopenharmony_ci void fcmla(const ZRegister& zda, 7521b8021494Sopenharmony_ci const PRegisterM& pg, 7522b8021494Sopenharmony_ci const ZRegister& zn, 7523b8021494Sopenharmony_ci const ZRegister& zm, 7524b8021494Sopenharmony_ci int rot) 7525b8021494Sopenharmony_ci 7526b8021494Sopenharmony_ci 7527b8021494Sopenharmony_ci### FCMLE ### 7528b8021494Sopenharmony_ci 7529b8021494Sopenharmony_ciFloating-point compare vector with zero. 7530b8021494Sopenharmony_ci 7531b8021494Sopenharmony_ci void fcmle(const PRegisterWithLaneSize& pd, 7532b8021494Sopenharmony_ci const PRegisterZ& pg, 7533b8021494Sopenharmony_ci const ZRegister& zn, 7534b8021494Sopenharmony_ci double zero) 7535b8021494Sopenharmony_ci 7536b8021494Sopenharmony_ci 7537b8021494Sopenharmony_ci### FCMLT ### 7538b8021494Sopenharmony_ci 7539b8021494Sopenharmony_ciFloating-point compare vector with zero. 7540b8021494Sopenharmony_ci 7541b8021494Sopenharmony_ci void fcmlt(const PRegisterWithLaneSize& pd, 7542b8021494Sopenharmony_ci const PRegisterZ& pg, 7543b8021494Sopenharmony_ci const ZRegister& zn, 7544b8021494Sopenharmony_ci double zero) 7545b8021494Sopenharmony_ci 7546b8021494Sopenharmony_ci 7547b8021494Sopenharmony_ci### FCMNE ### 7548b8021494Sopenharmony_ci 7549b8021494Sopenharmony_ciFloating-point compare vector with zero. 7550b8021494Sopenharmony_ci 7551b8021494Sopenharmony_ci void fcmne(const PRegisterWithLaneSize& pd, 7552b8021494Sopenharmony_ci const PRegisterZ& pg, 7553b8021494Sopenharmony_ci const ZRegister& zn, 7554b8021494Sopenharmony_ci double zero) 7555b8021494Sopenharmony_ci 7556b8021494Sopenharmony_ci 7557b8021494Sopenharmony_ci### FCMNE ### 7558b8021494Sopenharmony_ci 7559b8021494Sopenharmony_ciFloating-point compare vectors. 7560b8021494Sopenharmony_ci 7561b8021494Sopenharmony_ci void fcmne(const PRegisterWithLaneSize& pd, 7562b8021494Sopenharmony_ci const PRegisterZ& pg, 7563b8021494Sopenharmony_ci const ZRegister& zn, 7564b8021494Sopenharmony_ci const ZRegister& zm) 7565b8021494Sopenharmony_ci 7566b8021494Sopenharmony_ci 7567b8021494Sopenharmony_ci### FCMUO ### 7568b8021494Sopenharmony_ci 7569b8021494Sopenharmony_ciFloating-point compare vectors. 7570b8021494Sopenharmony_ci 7571b8021494Sopenharmony_ci void fcmuo(const PRegisterWithLaneSize& pd, 7572b8021494Sopenharmony_ci const PRegisterZ& pg, 7573b8021494Sopenharmony_ci const ZRegister& zn, 7574b8021494Sopenharmony_ci const ZRegister& zm) 7575b8021494Sopenharmony_ci 7576b8021494Sopenharmony_ci 7577b8021494Sopenharmony_ci### FCPY ### 7578b8021494Sopenharmony_ci 7579b8021494Sopenharmony_ciCopy floating-point immediate to vector elements (predicated). 7580b8021494Sopenharmony_ci 7581b8021494Sopenharmony_ci void fcpy(const ZRegister& zd, const PRegisterM& pg, double imm) 7582b8021494Sopenharmony_ci 7583b8021494Sopenharmony_ci 7584b8021494Sopenharmony_ci### FCPY ### 7585b8021494Sopenharmony_ci 7586b8021494Sopenharmony_ciCopy half-precision floating-point immediate to vector elements (predicated). 7587b8021494Sopenharmony_ci 7588b8021494Sopenharmony_ci void fcpy(const ZRegister& zd, const PRegisterM& pg, Float16 imm) 7589b8021494Sopenharmony_ci 7590b8021494Sopenharmony_ci 7591b8021494Sopenharmony_ci### FCVT ### 7592b8021494Sopenharmony_ci 7593b8021494Sopenharmony_ciFloating-point convert precision (predicated). 7594b8021494Sopenharmony_ci 7595b8021494Sopenharmony_ci void fcvt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 7596b8021494Sopenharmony_ci 7597b8021494Sopenharmony_ci 7598b8021494Sopenharmony_ci### FCVTLT ### 7599b8021494Sopenharmony_ci 7600b8021494Sopenharmony_ciFloating-point up convert long (top, predicated). 7601b8021494Sopenharmony_ci 7602b8021494Sopenharmony_ci void fcvtlt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 7603b8021494Sopenharmony_ci 7604b8021494Sopenharmony_ci 7605b8021494Sopenharmony_ci### FCVTNT ### 7606b8021494Sopenharmony_ci 7607b8021494Sopenharmony_ciFloating-point down convert and narrow (top, predicated). 7608b8021494Sopenharmony_ci 7609b8021494Sopenharmony_ci void fcvtnt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 7610b8021494Sopenharmony_ci 7611b8021494Sopenharmony_ci 7612b8021494Sopenharmony_ci### FCVTX ### 7613b8021494Sopenharmony_ci 7614b8021494Sopenharmony_ciFloating-point down convert, rounding to odd (predicated). 7615b8021494Sopenharmony_ci 7616b8021494Sopenharmony_ci void fcvtx(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 7617b8021494Sopenharmony_ci 7618b8021494Sopenharmony_ci 7619b8021494Sopenharmony_ci### FCVTXNT ### 7620b8021494Sopenharmony_ci 7621b8021494Sopenharmony_ciFloating-point down convert, rounding to odd (top, predicated). 7622b8021494Sopenharmony_ci 7623b8021494Sopenharmony_ci void fcvtxnt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 7624b8021494Sopenharmony_ci 7625b8021494Sopenharmony_ci 7626b8021494Sopenharmony_ci### FCVTZS ### 7627b8021494Sopenharmony_ci 7628b8021494Sopenharmony_ciFloating-point convert to signed integer, rounding toward zero (predicated). 7629b8021494Sopenharmony_ci 7630b8021494Sopenharmony_ci void fcvtzs(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 7631b8021494Sopenharmony_ci 7632b8021494Sopenharmony_ci 7633b8021494Sopenharmony_ci### FCVTZU ### 7634b8021494Sopenharmony_ci 7635b8021494Sopenharmony_ciFloating-point convert to unsigned integer, rounding toward zero (predicated). 7636b8021494Sopenharmony_ci 7637b8021494Sopenharmony_ci void fcvtzu(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 7638b8021494Sopenharmony_ci 7639b8021494Sopenharmony_ci 7640b8021494Sopenharmony_ci### FDIV ### 7641b8021494Sopenharmony_ci 7642b8021494Sopenharmony_ciFloating-point divide by vector (predicated). 7643b8021494Sopenharmony_ci 7644b8021494Sopenharmony_ci void fdiv(const ZRegister& zd, 7645b8021494Sopenharmony_ci const PRegisterM& pg, 7646b8021494Sopenharmony_ci const ZRegister& zn, 7647b8021494Sopenharmony_ci const ZRegister& zm) 7648b8021494Sopenharmony_ci 7649b8021494Sopenharmony_ci 7650b8021494Sopenharmony_ci### FDIVR ### 7651b8021494Sopenharmony_ci 7652b8021494Sopenharmony_ciFloating-point reversed divide by vector (predicated). 7653b8021494Sopenharmony_ci 7654b8021494Sopenharmony_ci void fdivr(const ZRegister& zd, 7655b8021494Sopenharmony_ci const PRegisterM& pg, 7656b8021494Sopenharmony_ci const ZRegister& zn, 7657b8021494Sopenharmony_ci const ZRegister& zm) 7658b8021494Sopenharmony_ci 7659b8021494Sopenharmony_ci 7660b8021494Sopenharmony_ci### FDUP ### 7661b8021494Sopenharmony_ci 7662b8021494Sopenharmony_ciBroadcast floating-point immediate to vector elements. 7663b8021494Sopenharmony_ci 7664b8021494Sopenharmony_ci void fdup(const ZRegister& zd, double imm) 7665b8021494Sopenharmony_ci 7666b8021494Sopenharmony_ci 7667b8021494Sopenharmony_ci### FDUP ### 7668b8021494Sopenharmony_ci 7669b8021494Sopenharmony_ciBroadcast half-precision floating-point immediate to vector elements. 7670b8021494Sopenharmony_ci 7671b8021494Sopenharmony_ci void fdup(const ZRegister& zd, Float16 imm) 7672b8021494Sopenharmony_ci 7673b8021494Sopenharmony_ci 7674b8021494Sopenharmony_ci### FEXPA ### 7675b8021494Sopenharmony_ci 7676b8021494Sopenharmony_ciFloating-point exponential accelerator. 7677b8021494Sopenharmony_ci 7678b8021494Sopenharmony_ci void fexpa(const ZRegister& zd, const ZRegister& zn) 7679b8021494Sopenharmony_ci 7680b8021494Sopenharmony_ci 7681b8021494Sopenharmony_ci### FLOGB ### 7682b8021494Sopenharmony_ci 7683b8021494Sopenharmony_ciFloating-point base 2 logarithm as integer. 7684b8021494Sopenharmony_ci 7685b8021494Sopenharmony_ci void flogb(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 7686b8021494Sopenharmony_ci 7687b8021494Sopenharmony_ci 7688b8021494Sopenharmony_ci### FMAD ### 7689b8021494Sopenharmony_ci 7690b8021494Sopenharmony_ciFloating-point fused multiply-add vectors (predicated), writing multiplicand [Zdn = Za + Zdn * Zm]. 7691b8021494Sopenharmony_ci 7692b8021494Sopenharmony_ci void fmad(const ZRegister& zdn, 7693b8021494Sopenharmony_ci const PRegisterM& pg, 7694b8021494Sopenharmony_ci const ZRegister& zm, 7695b8021494Sopenharmony_ci const ZRegister& za) 7696b8021494Sopenharmony_ci 7697b8021494Sopenharmony_ci 7698b8021494Sopenharmony_ci### FMAX ### 7699b8021494Sopenharmony_ci 7700b8021494Sopenharmony_ciFloating-point maximum (predicated). 7701b8021494Sopenharmony_ci 7702b8021494Sopenharmony_ci void fmax(const ZRegister& zd, 7703b8021494Sopenharmony_ci const PRegisterM& pg, 7704b8021494Sopenharmony_ci const ZRegister& zn, 7705b8021494Sopenharmony_ci const ZRegister& zm) 7706b8021494Sopenharmony_ci 7707b8021494Sopenharmony_ci 7708b8021494Sopenharmony_ci### FMAX ### 7709b8021494Sopenharmony_ci 7710b8021494Sopenharmony_ciFloating-point maximum with immediate (predicated). 7711b8021494Sopenharmony_ci 7712b8021494Sopenharmony_ci void fmax(const ZRegister& zd, 7713b8021494Sopenharmony_ci const PRegisterM& pg, 7714b8021494Sopenharmony_ci const ZRegister& zn, 7715b8021494Sopenharmony_ci double imm) 7716b8021494Sopenharmony_ci 7717b8021494Sopenharmony_ci 7718b8021494Sopenharmony_ci### FMAXNM ### 7719b8021494Sopenharmony_ci 7720b8021494Sopenharmony_ciFloating-point maximum number (predicated). 7721b8021494Sopenharmony_ci 7722b8021494Sopenharmony_ci void fmaxnm(const ZRegister& zd, 7723b8021494Sopenharmony_ci const PRegisterM& pg, 7724b8021494Sopenharmony_ci const ZRegister& zn, 7725b8021494Sopenharmony_ci const ZRegister& zm) 7726b8021494Sopenharmony_ci 7727b8021494Sopenharmony_ci 7728b8021494Sopenharmony_ci### FMAXNM ### 7729b8021494Sopenharmony_ci 7730b8021494Sopenharmony_ciFloating-point maximum number with immediate (predicated). 7731b8021494Sopenharmony_ci 7732b8021494Sopenharmony_ci void fmaxnm(const ZRegister& zd, 7733b8021494Sopenharmony_ci const PRegisterM& pg, 7734b8021494Sopenharmony_ci const ZRegister& zn, 7735b8021494Sopenharmony_ci double imm) 7736b8021494Sopenharmony_ci 7737b8021494Sopenharmony_ci 7738b8021494Sopenharmony_ci### FMAXNMP ### 7739b8021494Sopenharmony_ci 7740b8021494Sopenharmony_ciFloating-point maximum number pairwise. 7741b8021494Sopenharmony_ci 7742b8021494Sopenharmony_ci void fmaxnmp(const ZRegister& zd, 7743b8021494Sopenharmony_ci const PRegisterM& pg, 7744b8021494Sopenharmony_ci const ZRegister& zn, 7745b8021494Sopenharmony_ci const ZRegister& zm) 7746b8021494Sopenharmony_ci 7747b8021494Sopenharmony_ci 7748b8021494Sopenharmony_ci### FMAXNMV ### 7749b8021494Sopenharmony_ci 7750b8021494Sopenharmony_ciFloating-point maximum number recursive reduction to scalar. 7751b8021494Sopenharmony_ci 7752b8021494Sopenharmony_ci void fmaxnmv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 7753b8021494Sopenharmony_ci 7754b8021494Sopenharmony_ci 7755b8021494Sopenharmony_ci### FMAXP ### 7756b8021494Sopenharmony_ci 7757b8021494Sopenharmony_ciFloating-point maximum pairwise. 7758b8021494Sopenharmony_ci 7759b8021494Sopenharmony_ci void fmaxp(const ZRegister& zd, 7760b8021494Sopenharmony_ci const PRegisterM& pg, 7761b8021494Sopenharmony_ci const ZRegister& zn, 7762b8021494Sopenharmony_ci const ZRegister& zm) 7763b8021494Sopenharmony_ci 7764b8021494Sopenharmony_ci 7765b8021494Sopenharmony_ci### FMAXV ### 7766b8021494Sopenharmony_ci 7767b8021494Sopenharmony_ciFloating-point maximum recursive reduction to scalar. 7768b8021494Sopenharmony_ci 7769b8021494Sopenharmony_ci void fmaxv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 7770b8021494Sopenharmony_ci 7771b8021494Sopenharmony_ci 7772b8021494Sopenharmony_ci### FMIN ### 7773b8021494Sopenharmony_ci 7774b8021494Sopenharmony_ciFloating-point minimum (predicated). 7775b8021494Sopenharmony_ci 7776b8021494Sopenharmony_ci void fmin(const ZRegister& zd, 7777b8021494Sopenharmony_ci const PRegisterM& pg, 7778b8021494Sopenharmony_ci const ZRegister& zn, 7779b8021494Sopenharmony_ci const ZRegister& zm) 7780b8021494Sopenharmony_ci 7781b8021494Sopenharmony_ci 7782b8021494Sopenharmony_ci### FMIN ### 7783b8021494Sopenharmony_ci 7784b8021494Sopenharmony_ciFloating-point minimum with immediate (predicated). 7785b8021494Sopenharmony_ci 7786b8021494Sopenharmony_ci void fmin(const ZRegister& zd, 7787b8021494Sopenharmony_ci const PRegisterM& pg, 7788b8021494Sopenharmony_ci const ZRegister& zn, 7789b8021494Sopenharmony_ci double imm) 7790b8021494Sopenharmony_ci 7791b8021494Sopenharmony_ci 7792b8021494Sopenharmony_ci### FMINNM ### 7793b8021494Sopenharmony_ci 7794b8021494Sopenharmony_ciFloating-point minimum number (predicated). 7795b8021494Sopenharmony_ci 7796b8021494Sopenharmony_ci void fminnm(const ZRegister& zd, 7797b8021494Sopenharmony_ci const PRegisterM& pg, 7798b8021494Sopenharmony_ci const ZRegister& zn, 7799b8021494Sopenharmony_ci const ZRegister& zm) 7800b8021494Sopenharmony_ci 7801b8021494Sopenharmony_ci 7802b8021494Sopenharmony_ci### FMINNM ### 7803b8021494Sopenharmony_ci 7804b8021494Sopenharmony_ciFloating-point minimum number with immediate (predicated). 7805b8021494Sopenharmony_ci 7806b8021494Sopenharmony_ci void fminnm(const ZRegister& zd, 7807b8021494Sopenharmony_ci const PRegisterM& pg, 7808b8021494Sopenharmony_ci const ZRegister& zn, 7809b8021494Sopenharmony_ci double imm) 7810b8021494Sopenharmony_ci 7811b8021494Sopenharmony_ci 7812b8021494Sopenharmony_ci### FMINNMP ### 7813b8021494Sopenharmony_ci 7814b8021494Sopenharmony_ciFloating-point minimum number pairwise. 7815b8021494Sopenharmony_ci 7816b8021494Sopenharmony_ci void fminnmp(const ZRegister& zd, 7817b8021494Sopenharmony_ci const PRegisterM& pg, 7818b8021494Sopenharmony_ci const ZRegister& zn, 7819b8021494Sopenharmony_ci const ZRegister& zm) 7820b8021494Sopenharmony_ci 7821b8021494Sopenharmony_ci 7822b8021494Sopenharmony_ci### FMINNMV ### 7823b8021494Sopenharmony_ci 7824b8021494Sopenharmony_ciFloating-point minimum number recursive reduction to scalar. 7825b8021494Sopenharmony_ci 7826b8021494Sopenharmony_ci void fminnmv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 7827b8021494Sopenharmony_ci 7828b8021494Sopenharmony_ci 7829b8021494Sopenharmony_ci### FMINP ### 7830b8021494Sopenharmony_ci 7831b8021494Sopenharmony_ciFloating-point minimum pairwise. 7832b8021494Sopenharmony_ci 7833b8021494Sopenharmony_ci void fminp(const ZRegister& zd, 7834b8021494Sopenharmony_ci const PRegisterM& pg, 7835b8021494Sopenharmony_ci const ZRegister& zn, 7836b8021494Sopenharmony_ci const ZRegister& zm) 7837b8021494Sopenharmony_ci 7838b8021494Sopenharmony_ci 7839b8021494Sopenharmony_ci### FMINV ### 7840b8021494Sopenharmony_ci 7841b8021494Sopenharmony_ciFloating-point minimum recursive reduction to scalar. 7842b8021494Sopenharmony_ci 7843b8021494Sopenharmony_ci void fminv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 7844b8021494Sopenharmony_ci 7845b8021494Sopenharmony_ci 7846b8021494Sopenharmony_ci### FMLA ### 7847b8021494Sopenharmony_ci 7848b8021494Sopenharmony_ciFloating-point fused multiply-add by indexed elements (Zda = Zda + Zn * Zm[indexed]). 7849b8021494Sopenharmony_ci 7850b8021494Sopenharmony_ci void fmla(const ZRegister& zda, 7851b8021494Sopenharmony_ci const ZRegister& zn, 7852b8021494Sopenharmony_ci const ZRegister& zm, 7853b8021494Sopenharmony_ci int index) 7854b8021494Sopenharmony_ci 7855b8021494Sopenharmony_ci 7856b8021494Sopenharmony_ci### FMLA ### 7857b8021494Sopenharmony_ci 7858b8021494Sopenharmony_ciFloating-point fused multiply-add vectors (predicated), writing addend [Zda = Zda + Zn * Zm]. 7859b8021494Sopenharmony_ci 7860b8021494Sopenharmony_ci void fmla(const ZRegister& zda, 7861b8021494Sopenharmony_ci const PRegisterM& pg, 7862b8021494Sopenharmony_ci const ZRegister& zn, 7863b8021494Sopenharmony_ci const ZRegister& zm) 7864b8021494Sopenharmony_ci 7865b8021494Sopenharmony_ci 7866b8021494Sopenharmony_ci### FMLALB ### 7867b8021494Sopenharmony_ci 7868b8021494Sopenharmony_ciHalf-precision floating-point multiply-add long to single-precision (bottom). 7869b8021494Sopenharmony_ci 7870b8021494Sopenharmony_ci void fmlalb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 7871b8021494Sopenharmony_ci 7872b8021494Sopenharmony_ci 7873b8021494Sopenharmony_ci### FMLALB ### 7874b8021494Sopenharmony_ci 7875b8021494Sopenharmony_ciHalf-precision floating-point multiply-add long to single-precision (bottom, indexed). 7876b8021494Sopenharmony_ci 7877b8021494Sopenharmony_ci void fmlalb(const ZRegister& zda, 7878b8021494Sopenharmony_ci const ZRegister& zn, 7879b8021494Sopenharmony_ci const ZRegister& zm, 7880b8021494Sopenharmony_ci int index) 7881b8021494Sopenharmony_ci 7882b8021494Sopenharmony_ci 7883b8021494Sopenharmony_ci### FMLALT ### 7884b8021494Sopenharmony_ci 7885b8021494Sopenharmony_ciHalf-precision floating-point multiply-add long to single-precision (top). 7886b8021494Sopenharmony_ci 7887b8021494Sopenharmony_ci void fmlalt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 7888b8021494Sopenharmony_ci 7889b8021494Sopenharmony_ci 7890b8021494Sopenharmony_ci### FMLALT ### 7891b8021494Sopenharmony_ci 7892b8021494Sopenharmony_ciHalf-precision floating-point multiply-add long to single-precision (top, indexed). 7893b8021494Sopenharmony_ci 7894b8021494Sopenharmony_ci void fmlalt(const ZRegister& zda, 7895b8021494Sopenharmony_ci const ZRegister& zn, 7896b8021494Sopenharmony_ci const ZRegister& zm, 7897b8021494Sopenharmony_ci int index) 7898b8021494Sopenharmony_ci 7899b8021494Sopenharmony_ci 7900b8021494Sopenharmony_ci### FMLS ### 7901b8021494Sopenharmony_ci 7902b8021494Sopenharmony_ciFloating-point fused multiply-subtract by indexed elements (Zda = Zda + -Zn * Zm[indexed]). 7903b8021494Sopenharmony_ci 7904b8021494Sopenharmony_ci void fmls(const ZRegister& zda, 7905b8021494Sopenharmony_ci const ZRegister& zn, 7906b8021494Sopenharmony_ci const ZRegister& zm, 7907b8021494Sopenharmony_ci int index) 7908b8021494Sopenharmony_ci 7909b8021494Sopenharmony_ci 7910b8021494Sopenharmony_ci### FMLS ### 7911b8021494Sopenharmony_ci 7912b8021494Sopenharmony_ciFloating-point fused multiply-subtract vectors (predicated), writing addend [Zda = Zda + -Zn * Zm]. 7913b8021494Sopenharmony_ci 7914b8021494Sopenharmony_ci void fmls(const ZRegister& zda, 7915b8021494Sopenharmony_ci const PRegisterM& pg, 7916b8021494Sopenharmony_ci const ZRegister& zn, 7917b8021494Sopenharmony_ci const ZRegister& zm) 7918b8021494Sopenharmony_ci 7919b8021494Sopenharmony_ci 7920b8021494Sopenharmony_ci### FMLSLB ### 7921b8021494Sopenharmony_ci 7922b8021494Sopenharmony_ciHalf-precision floating-point multiply-subtract long from single-precision (bottom). 7923b8021494Sopenharmony_ci 7924b8021494Sopenharmony_ci void fmlslb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 7925b8021494Sopenharmony_ci 7926b8021494Sopenharmony_ci 7927b8021494Sopenharmony_ci### FMLSLB ### 7928b8021494Sopenharmony_ci 7929b8021494Sopenharmony_ciHalf-precision floating-point multiply-subtract long from single-precision (bottom, indexed). 7930b8021494Sopenharmony_ci 7931b8021494Sopenharmony_ci void fmlslb(const ZRegister& zda, 7932b8021494Sopenharmony_ci const ZRegister& zn, 7933b8021494Sopenharmony_ci const ZRegister& zm, 7934b8021494Sopenharmony_ci int index) 7935b8021494Sopenharmony_ci 7936b8021494Sopenharmony_ci 7937b8021494Sopenharmony_ci### FMLSLT ### 7938b8021494Sopenharmony_ci 7939b8021494Sopenharmony_ciHalf-precision floating-point multiply-subtract long from single-precision (top). 7940b8021494Sopenharmony_ci 7941b8021494Sopenharmony_ci void fmlslt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 7942b8021494Sopenharmony_ci 7943b8021494Sopenharmony_ci 7944b8021494Sopenharmony_ci### FMLSLT ### 7945b8021494Sopenharmony_ci 7946b8021494Sopenharmony_ciHalf-precision floating-point multiply-subtract long from single-precision (top, indexed). 7947b8021494Sopenharmony_ci 7948b8021494Sopenharmony_ci void fmlslt(const ZRegister& zda, 7949b8021494Sopenharmony_ci const ZRegister& zn, 7950b8021494Sopenharmony_ci const ZRegister& zm, 7951b8021494Sopenharmony_ci int index) 7952b8021494Sopenharmony_ci 7953b8021494Sopenharmony_ci 7954b8021494Sopenharmony_ci### FMMLA ### 7955b8021494Sopenharmony_ci 7956b8021494Sopenharmony_ciFloating-point matrix multiply-accumulate. 7957b8021494Sopenharmony_ci 7958b8021494Sopenharmony_ci void fmmla(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 7959b8021494Sopenharmony_ci 7960b8021494Sopenharmony_ci 7961b8021494Sopenharmony_ci### FMOV ### 7962b8021494Sopenharmony_ci 7963b8021494Sopenharmony_ciMove 8-bit floating-point immediate to vector elements (predicated). 7964b8021494Sopenharmony_ci 7965b8021494Sopenharmony_ci void fmov(const ZRegister& zd, const PRegisterM& pg, double imm) 7966b8021494Sopenharmony_ci 7967b8021494Sopenharmony_ci 7968b8021494Sopenharmony_ci### FMOV ### 7969b8021494Sopenharmony_ci 7970b8021494Sopenharmony_ciMove 8-bit floating-point immediate to vector elements (unpredicated). 7971b8021494Sopenharmony_ci 7972b8021494Sopenharmony_ci void fmov(const ZRegister& zd, double imm) 7973b8021494Sopenharmony_ci 7974b8021494Sopenharmony_ci 7975b8021494Sopenharmony_ci### FMSB ### 7976b8021494Sopenharmony_ci 7977b8021494Sopenharmony_ciFloating-point fused multiply-subtract vectors (predicated), writing multiplicand [Zdn = Za + -Zdn * Zm]. 7978b8021494Sopenharmony_ci 7979b8021494Sopenharmony_ci void fmsb(const ZRegister& zdn, 7980b8021494Sopenharmony_ci const PRegisterM& pg, 7981b8021494Sopenharmony_ci const ZRegister& zm, 7982b8021494Sopenharmony_ci const ZRegister& za) 7983b8021494Sopenharmony_ci 7984b8021494Sopenharmony_ci 7985b8021494Sopenharmony_ci### FMUL ### 7986b8021494Sopenharmony_ci 7987b8021494Sopenharmony_ciFloating-point multiply by immediate (predicated). 7988b8021494Sopenharmony_ci 7989b8021494Sopenharmony_ci void fmul(const ZRegister& zd, 7990b8021494Sopenharmony_ci const PRegisterM& pg, 7991b8021494Sopenharmony_ci const ZRegister& zn, 7992b8021494Sopenharmony_ci double imm) 7993b8021494Sopenharmony_ci 7994b8021494Sopenharmony_ci 7995b8021494Sopenharmony_ci### FMUL ### 7996b8021494Sopenharmony_ci 7997b8021494Sopenharmony_ciFloating-point multiply by indexed elements. 7998b8021494Sopenharmony_ci 7999b8021494Sopenharmony_ci void fmul(const ZRegister& zd, 8000b8021494Sopenharmony_ci const ZRegister& zn, 8001b8021494Sopenharmony_ci const ZRegister& zm, 8002b8021494Sopenharmony_ci unsigned index) 8003b8021494Sopenharmony_ci 8004b8021494Sopenharmony_ci 8005b8021494Sopenharmony_ci### FMUL ### 8006b8021494Sopenharmony_ci 8007b8021494Sopenharmony_ciFloating-point multiply vectors (predicated). 8008b8021494Sopenharmony_ci 8009b8021494Sopenharmony_ci void fmul(const ZRegister& zd, 8010b8021494Sopenharmony_ci const PRegisterM& pg, 8011b8021494Sopenharmony_ci const ZRegister& zn, 8012b8021494Sopenharmony_ci const ZRegister& zm) 8013b8021494Sopenharmony_ci 8014b8021494Sopenharmony_ci 8015b8021494Sopenharmony_ci### FMUL ### 8016b8021494Sopenharmony_ci 8017b8021494Sopenharmony_ciFloating-point multiply vectors (unpredicated). 8018b8021494Sopenharmony_ci 8019b8021494Sopenharmony_ci void fmul(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 8020b8021494Sopenharmony_ci 8021b8021494Sopenharmony_ci 8022b8021494Sopenharmony_ci### FMULX ### 8023b8021494Sopenharmony_ci 8024b8021494Sopenharmony_ciFloating-point multiply-extended vectors (predicated). 8025b8021494Sopenharmony_ci 8026b8021494Sopenharmony_ci void fmulx(const ZRegister& zd, 8027b8021494Sopenharmony_ci const PRegisterM& pg, 8028b8021494Sopenharmony_ci const ZRegister& zn, 8029b8021494Sopenharmony_ci const ZRegister& zm) 8030b8021494Sopenharmony_ci 8031b8021494Sopenharmony_ci 8032b8021494Sopenharmony_ci### FNEG ### 8033b8021494Sopenharmony_ci 8034b8021494Sopenharmony_ciFloating-point negate (predicated). 8035b8021494Sopenharmony_ci 8036b8021494Sopenharmony_ci void fneg(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 8037b8021494Sopenharmony_ci 8038b8021494Sopenharmony_ci 8039b8021494Sopenharmony_ci### FNMAD ### 8040b8021494Sopenharmony_ci 8041b8021494Sopenharmony_ciFloating-point negated fused multiply-add vectors (predicated), writing multiplicand [Zdn = -Za + -Zdn * Zm]. 8042b8021494Sopenharmony_ci 8043b8021494Sopenharmony_ci void fnmad(const ZRegister& zdn, 8044b8021494Sopenharmony_ci const PRegisterM& pg, 8045b8021494Sopenharmony_ci const ZRegister& zm, 8046b8021494Sopenharmony_ci const ZRegister& za) 8047b8021494Sopenharmony_ci 8048b8021494Sopenharmony_ci 8049b8021494Sopenharmony_ci### FNMLA ### 8050b8021494Sopenharmony_ci 8051b8021494Sopenharmony_ciFloating-point negated fused multiply-add vectors (predicated), writing addend [Zda = -Zda + -Zn * Zm]. 8052b8021494Sopenharmony_ci 8053b8021494Sopenharmony_ci void fnmla(const ZRegister& zda, 8054b8021494Sopenharmony_ci const PRegisterM& pg, 8055b8021494Sopenharmony_ci const ZRegister& zn, 8056b8021494Sopenharmony_ci const ZRegister& zm) 8057b8021494Sopenharmony_ci 8058b8021494Sopenharmony_ci 8059b8021494Sopenharmony_ci### FNMLS ### 8060b8021494Sopenharmony_ci 8061b8021494Sopenharmony_ciFloating-point negated fused multiply-subtract vectors (predicated), writing addend [Zda = -Zda + Zn * Zm]. 8062b8021494Sopenharmony_ci 8063b8021494Sopenharmony_ci void fnmls(const ZRegister& zda, 8064b8021494Sopenharmony_ci const PRegisterM& pg, 8065b8021494Sopenharmony_ci const ZRegister& zn, 8066b8021494Sopenharmony_ci const ZRegister& zm) 8067b8021494Sopenharmony_ci 8068b8021494Sopenharmony_ci 8069b8021494Sopenharmony_ci### FNMSB ### 8070b8021494Sopenharmony_ci 8071b8021494Sopenharmony_ciFloating-point negated fused multiply-subtract vectors (predicated), writing multiplicand [Zdn = -Za + Zdn * Zm]. 8072b8021494Sopenharmony_ci 8073b8021494Sopenharmony_ci void fnmsb(const ZRegister& zdn, 8074b8021494Sopenharmony_ci const PRegisterM& pg, 8075b8021494Sopenharmony_ci const ZRegister& zm, 8076b8021494Sopenharmony_ci const ZRegister& za) 8077b8021494Sopenharmony_ci 8078b8021494Sopenharmony_ci 8079b8021494Sopenharmony_ci### FRECPE ### 8080b8021494Sopenharmony_ci 8081b8021494Sopenharmony_ciFloating-point reciprocal estimate (unpredicated). 8082b8021494Sopenharmony_ci 8083b8021494Sopenharmony_ci void frecpe(const ZRegister& zd, const ZRegister& zn) 8084b8021494Sopenharmony_ci 8085b8021494Sopenharmony_ci 8086b8021494Sopenharmony_ci### FRECPS ### 8087b8021494Sopenharmony_ci 8088b8021494Sopenharmony_ciFloating-point reciprocal step (unpredicated). 8089b8021494Sopenharmony_ci 8090b8021494Sopenharmony_ci void frecps(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 8091b8021494Sopenharmony_ci 8092b8021494Sopenharmony_ci 8093b8021494Sopenharmony_ci### FRECPX ### 8094b8021494Sopenharmony_ci 8095b8021494Sopenharmony_ciFloating-point reciprocal exponent (predicated). 8096b8021494Sopenharmony_ci 8097b8021494Sopenharmony_ci void frecpx(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 8098b8021494Sopenharmony_ci 8099b8021494Sopenharmony_ci 8100b8021494Sopenharmony_ci### FRINTA ### 8101b8021494Sopenharmony_ci 8102b8021494Sopenharmony_ciFloating-point round to integral value (predicated). 8103b8021494Sopenharmony_ci 8104b8021494Sopenharmony_ci void frinta(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 8105b8021494Sopenharmony_ci 8106b8021494Sopenharmony_ci 8107b8021494Sopenharmony_ci### FRINTI ### 8108b8021494Sopenharmony_ci 8109b8021494Sopenharmony_ciFloating-point round to integral value (predicated). 8110b8021494Sopenharmony_ci 8111b8021494Sopenharmony_ci void frinti(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 8112b8021494Sopenharmony_ci 8113b8021494Sopenharmony_ci 8114b8021494Sopenharmony_ci### FRINTM ### 8115b8021494Sopenharmony_ci 8116b8021494Sopenharmony_ciFloating-point round to integral value (predicated). 8117b8021494Sopenharmony_ci 8118b8021494Sopenharmony_ci void frintm(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 8119b8021494Sopenharmony_ci 8120b8021494Sopenharmony_ci 8121b8021494Sopenharmony_ci### FRINTN ### 8122b8021494Sopenharmony_ci 8123b8021494Sopenharmony_ciFloating-point round to integral value (predicated). 8124b8021494Sopenharmony_ci 8125b8021494Sopenharmony_ci void frintn(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 8126b8021494Sopenharmony_ci 8127b8021494Sopenharmony_ci 8128b8021494Sopenharmony_ci### FRINTP ### 8129b8021494Sopenharmony_ci 8130b8021494Sopenharmony_ciFloating-point round to integral value (predicated). 8131b8021494Sopenharmony_ci 8132b8021494Sopenharmony_ci void frintp(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 8133b8021494Sopenharmony_ci 8134b8021494Sopenharmony_ci 8135b8021494Sopenharmony_ci### FRINTX ### 8136b8021494Sopenharmony_ci 8137b8021494Sopenharmony_ciFloating-point round to integral value (predicated). 8138b8021494Sopenharmony_ci 8139b8021494Sopenharmony_ci void frintx(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 8140b8021494Sopenharmony_ci 8141b8021494Sopenharmony_ci 8142b8021494Sopenharmony_ci### FRINTZ ### 8143b8021494Sopenharmony_ci 8144b8021494Sopenharmony_ciFloating-point round to integral value (predicated). 8145b8021494Sopenharmony_ci 8146b8021494Sopenharmony_ci void frintz(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 8147b8021494Sopenharmony_ci 8148b8021494Sopenharmony_ci 8149b8021494Sopenharmony_ci### FRSQRTE ### 8150b8021494Sopenharmony_ci 8151b8021494Sopenharmony_ciFloating-point reciprocal square root estimate (unpredicated). 8152b8021494Sopenharmony_ci 8153b8021494Sopenharmony_ci void frsqrte(const ZRegister& zd, const ZRegister& zn) 8154b8021494Sopenharmony_ci 8155b8021494Sopenharmony_ci 8156b8021494Sopenharmony_ci### FRSQRTS ### 8157b8021494Sopenharmony_ci 8158b8021494Sopenharmony_ciFloating-point reciprocal square root step (unpredicated). 8159b8021494Sopenharmony_ci 8160b8021494Sopenharmony_ci void frsqrts(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 8161b8021494Sopenharmony_ci 8162b8021494Sopenharmony_ci 8163b8021494Sopenharmony_ci### FSCALE ### 8164b8021494Sopenharmony_ci 8165b8021494Sopenharmony_ciFloating-point adjust exponent by vector (predicated). 8166b8021494Sopenharmony_ci 8167b8021494Sopenharmony_ci void fscale(const ZRegister& zd, 8168b8021494Sopenharmony_ci const PRegisterM& pg, 8169b8021494Sopenharmony_ci const ZRegister& zn, 8170b8021494Sopenharmony_ci const ZRegister& zm) 8171b8021494Sopenharmony_ci 8172b8021494Sopenharmony_ci 8173b8021494Sopenharmony_ci### FSQRT ### 8174b8021494Sopenharmony_ci 8175b8021494Sopenharmony_ciFloating-point square root (predicated). 8176b8021494Sopenharmony_ci 8177b8021494Sopenharmony_ci void fsqrt(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 8178b8021494Sopenharmony_ci 8179b8021494Sopenharmony_ci 8180b8021494Sopenharmony_ci### FSUB ### 8181b8021494Sopenharmony_ci 8182b8021494Sopenharmony_ciFloating-point subtract immediate (predicated). 8183b8021494Sopenharmony_ci 8184b8021494Sopenharmony_ci void fsub(const ZRegister& zd, 8185b8021494Sopenharmony_ci const PRegisterM& pg, 8186b8021494Sopenharmony_ci const ZRegister& zn, 8187b8021494Sopenharmony_ci double imm) 8188b8021494Sopenharmony_ci 8189b8021494Sopenharmony_ci 8190b8021494Sopenharmony_ci### FSUB ### 8191b8021494Sopenharmony_ci 8192b8021494Sopenharmony_ciFloating-point subtract vectors (predicated). 8193b8021494Sopenharmony_ci 8194b8021494Sopenharmony_ci void fsub(const ZRegister& zd, 8195b8021494Sopenharmony_ci const PRegisterM& pg, 8196b8021494Sopenharmony_ci const ZRegister& zn, 8197b8021494Sopenharmony_ci const ZRegister& zm) 8198b8021494Sopenharmony_ci 8199b8021494Sopenharmony_ci 8200b8021494Sopenharmony_ci### FSUB ### 8201b8021494Sopenharmony_ci 8202b8021494Sopenharmony_ciFloating-point subtract vectors (unpredicated). 8203b8021494Sopenharmony_ci 8204b8021494Sopenharmony_ci void fsub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 8205b8021494Sopenharmony_ci 8206b8021494Sopenharmony_ci 8207b8021494Sopenharmony_ci### FSUBR ### 8208b8021494Sopenharmony_ci 8209b8021494Sopenharmony_ciFloating-point reversed subtract from immediate (predicated). 8210b8021494Sopenharmony_ci 8211b8021494Sopenharmony_ci void fsubr(const ZRegister& zd, 8212b8021494Sopenharmony_ci const PRegisterM& pg, 8213b8021494Sopenharmony_ci const ZRegister& zn, 8214b8021494Sopenharmony_ci double imm) 8215b8021494Sopenharmony_ci 8216b8021494Sopenharmony_ci 8217b8021494Sopenharmony_ci### FSUBR ### 8218b8021494Sopenharmony_ci 8219b8021494Sopenharmony_ciFloating-point reversed subtract vectors (predicated). 8220b8021494Sopenharmony_ci 8221b8021494Sopenharmony_ci void fsubr(const ZRegister& zd, 8222b8021494Sopenharmony_ci const PRegisterM& pg, 8223b8021494Sopenharmony_ci const ZRegister& zn, 8224b8021494Sopenharmony_ci const ZRegister& zm) 8225b8021494Sopenharmony_ci 8226b8021494Sopenharmony_ci 8227b8021494Sopenharmony_ci### FTMAD ### 8228b8021494Sopenharmony_ci 8229b8021494Sopenharmony_ciFloating-point trigonometric multiply-add coefficient. 8230b8021494Sopenharmony_ci 8231b8021494Sopenharmony_ci void ftmad(const ZRegister& zd, 8232b8021494Sopenharmony_ci const ZRegister& zn, 8233b8021494Sopenharmony_ci const ZRegister& zm, 8234b8021494Sopenharmony_ci int imm3) 8235b8021494Sopenharmony_ci 8236b8021494Sopenharmony_ci 8237b8021494Sopenharmony_ci### FTSMUL ### 8238b8021494Sopenharmony_ci 8239b8021494Sopenharmony_ciFloating-point trigonometric starting value. 8240b8021494Sopenharmony_ci 8241b8021494Sopenharmony_ci void ftsmul(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 8242b8021494Sopenharmony_ci 8243b8021494Sopenharmony_ci 8244b8021494Sopenharmony_ci### FTSSEL ### 8245b8021494Sopenharmony_ci 8246b8021494Sopenharmony_ciFloating-point trigonometric select coefficient. 8247b8021494Sopenharmony_ci 8248b8021494Sopenharmony_ci void ftssel(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 8249b8021494Sopenharmony_ci 8250b8021494Sopenharmony_ci 8251b8021494Sopenharmony_ci<a id="sve-h"> 8252b8021494Sopenharmony_ci 8253b8021494Sopenharmony_ci### HISTCNT ### 8254b8021494Sopenharmony_ci 8255b8021494Sopenharmony_ciCount matching elements in vector. 8256b8021494Sopenharmony_ci 8257b8021494Sopenharmony_ci void histcnt(const ZRegister& zd, 8258b8021494Sopenharmony_ci const PRegisterZ& pg, 8259b8021494Sopenharmony_ci const ZRegister& zn, 8260b8021494Sopenharmony_ci const ZRegister& zm) 8261b8021494Sopenharmony_ci 8262b8021494Sopenharmony_ci 8263b8021494Sopenharmony_ci### HISTSEG ### 8264b8021494Sopenharmony_ci 8265b8021494Sopenharmony_ciCount matching elements in vector segments. 8266b8021494Sopenharmony_ci 8267b8021494Sopenharmony_ci void histseg(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 8268b8021494Sopenharmony_ci 8269b8021494Sopenharmony_ci 8270b8021494Sopenharmony_ci<a id="sve-i"> 8271b8021494Sopenharmony_ci 8272b8021494Sopenharmony_ci### INCB ### 8273b8021494Sopenharmony_ci 8274b8021494Sopenharmony_ciIncrement scalar by multiple of predicate constraint element count. 8275b8021494Sopenharmony_ci 8276b8021494Sopenharmony_ci void incb(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1) 8277b8021494Sopenharmony_ci 8278b8021494Sopenharmony_ci 8279b8021494Sopenharmony_ci### INCD ### 8280b8021494Sopenharmony_ci 8281b8021494Sopenharmony_ciIncrement scalar by multiple of predicate constraint element count. 8282b8021494Sopenharmony_ci 8283b8021494Sopenharmony_ci void incd(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1) 8284b8021494Sopenharmony_ci 8285b8021494Sopenharmony_ci 8286b8021494Sopenharmony_ci### INCD ### 8287b8021494Sopenharmony_ci 8288b8021494Sopenharmony_ciIncrement vector by multiple of predicate constraint element count. 8289b8021494Sopenharmony_ci 8290b8021494Sopenharmony_ci void incd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 8291b8021494Sopenharmony_ci 8292b8021494Sopenharmony_ci 8293b8021494Sopenharmony_ci### INCH ### 8294b8021494Sopenharmony_ci 8295b8021494Sopenharmony_ciIncrement scalar by multiple of predicate constraint element count. 8296b8021494Sopenharmony_ci 8297b8021494Sopenharmony_ci void inch(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1) 8298b8021494Sopenharmony_ci 8299b8021494Sopenharmony_ci 8300b8021494Sopenharmony_ci### INCH ### 8301b8021494Sopenharmony_ci 8302b8021494Sopenharmony_ciIncrement vector by multiple of predicate constraint element count. 8303b8021494Sopenharmony_ci 8304b8021494Sopenharmony_ci void inch(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 8305b8021494Sopenharmony_ci 8306b8021494Sopenharmony_ci 8307b8021494Sopenharmony_ci### INCP ### 8308b8021494Sopenharmony_ci 8309b8021494Sopenharmony_ciIncrement scalar by active predicate element count. 8310b8021494Sopenharmony_ci 8311b8021494Sopenharmony_ci void incp(const Register& rdn, const PRegisterWithLaneSize& pg) 8312b8021494Sopenharmony_ci 8313b8021494Sopenharmony_ci 8314b8021494Sopenharmony_ci### INCP ### 8315b8021494Sopenharmony_ci 8316b8021494Sopenharmony_ciIncrement vector by active predicate element count. 8317b8021494Sopenharmony_ci 8318b8021494Sopenharmony_ci void incp(const ZRegister& zdn, const PRegister& pg) 8319b8021494Sopenharmony_ci 8320b8021494Sopenharmony_ci 8321b8021494Sopenharmony_ci### INCW ### 8322b8021494Sopenharmony_ci 8323b8021494Sopenharmony_ciIncrement scalar by multiple of predicate constraint element count. 8324b8021494Sopenharmony_ci 8325b8021494Sopenharmony_ci void incw(const Register& xdn, int pattern = SVE_ALL, int multiplier = 1) 8326b8021494Sopenharmony_ci 8327b8021494Sopenharmony_ci 8328b8021494Sopenharmony_ci### INCW ### 8329b8021494Sopenharmony_ci 8330b8021494Sopenharmony_ciIncrement vector by multiple of predicate constraint element count. 8331b8021494Sopenharmony_ci 8332b8021494Sopenharmony_ci void incw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 8333b8021494Sopenharmony_ci 8334b8021494Sopenharmony_ci 8335b8021494Sopenharmony_ci### INDEX ### 8336b8021494Sopenharmony_ci 8337b8021494Sopenharmony_ciCreate index starting from and incremented by general-purpose register. 8338b8021494Sopenharmony_ci 8339b8021494Sopenharmony_ci void index(const ZRegister& zd, const Register& rn, const Register& rm) 8340b8021494Sopenharmony_ci 8341b8021494Sopenharmony_ci 8342b8021494Sopenharmony_ci### INDEX ### 8343b8021494Sopenharmony_ci 8344b8021494Sopenharmony_ciCreate index starting from and incremented by immediate. 8345b8021494Sopenharmony_ci 8346b8021494Sopenharmony_ci void index(const ZRegister& zd, int start, int step) 8347b8021494Sopenharmony_ci 8348b8021494Sopenharmony_ci 8349b8021494Sopenharmony_ci### INDEX ### 8350b8021494Sopenharmony_ci 8351b8021494Sopenharmony_ciCreate index starting from general-purpose register and incremented by immediate. 8352b8021494Sopenharmony_ci 8353b8021494Sopenharmony_ci void index(const ZRegister& zd, const Register& rn, int imm5) 8354b8021494Sopenharmony_ci 8355b8021494Sopenharmony_ci 8356b8021494Sopenharmony_ci### INDEX ### 8357b8021494Sopenharmony_ci 8358b8021494Sopenharmony_ciCreate index starting from immediate and incremented by general-purpose register. 8359b8021494Sopenharmony_ci 8360b8021494Sopenharmony_ci void index(const ZRegister& zd, int imm5, const Register& rm) 8361b8021494Sopenharmony_ci 8362b8021494Sopenharmony_ci 8363b8021494Sopenharmony_ci### INSR ### 8364b8021494Sopenharmony_ci 8365b8021494Sopenharmony_ciInsert SIMD&FP scalar register in shifted vector. 8366b8021494Sopenharmony_ci 8367b8021494Sopenharmony_ci void insr(const ZRegister& zdn, const VRegister& vm) 8368b8021494Sopenharmony_ci 8369b8021494Sopenharmony_ci 8370b8021494Sopenharmony_ci### INSR ### 8371b8021494Sopenharmony_ci 8372b8021494Sopenharmony_ciInsert general-purpose register in shifted vector. 8373b8021494Sopenharmony_ci 8374b8021494Sopenharmony_ci void insr(const ZRegister& zdn, const Register& rm) 8375b8021494Sopenharmony_ci 8376b8021494Sopenharmony_ci 8377b8021494Sopenharmony_ci<a id="sve-l"> 8378b8021494Sopenharmony_ci 8379b8021494Sopenharmony_ci### LASTA ### 8380b8021494Sopenharmony_ci 8381b8021494Sopenharmony_ciExtract element after last to SIMD&FP scalar register. 8382b8021494Sopenharmony_ci 8383b8021494Sopenharmony_ci void lasta(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 8384b8021494Sopenharmony_ci 8385b8021494Sopenharmony_ci 8386b8021494Sopenharmony_ci### LASTA ### 8387b8021494Sopenharmony_ci 8388b8021494Sopenharmony_ciExtract element after last to general-purpose register. 8389b8021494Sopenharmony_ci 8390b8021494Sopenharmony_ci void lasta(const Register& rd, const PRegister& pg, const ZRegister& zn) 8391b8021494Sopenharmony_ci 8392b8021494Sopenharmony_ci 8393b8021494Sopenharmony_ci### LASTB ### 8394b8021494Sopenharmony_ci 8395b8021494Sopenharmony_ciExtract last element to SIMD&FP scalar register. 8396b8021494Sopenharmony_ci 8397b8021494Sopenharmony_ci void lastb(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 8398b8021494Sopenharmony_ci 8399b8021494Sopenharmony_ci 8400b8021494Sopenharmony_ci### LASTB ### 8401b8021494Sopenharmony_ci 8402b8021494Sopenharmony_ciExtract last element to general-purpose register. 8403b8021494Sopenharmony_ci 8404b8021494Sopenharmony_ci void lastb(const Register& rd, const PRegister& pg, const ZRegister& zn) 8405b8021494Sopenharmony_ci 8406b8021494Sopenharmony_ci 8407b8021494Sopenharmony_ci### LD1B ### 8408b8021494Sopenharmony_ci 8409b8021494Sopenharmony_ciContiguous/gather load bytes to vector. 8410b8021494Sopenharmony_ci 8411b8021494Sopenharmony_ci void ld1b(const ZRegister& zt, 8412b8021494Sopenharmony_ci const PRegisterZ& pg, 8413b8021494Sopenharmony_ci const SVEMemOperand& addr) 8414b8021494Sopenharmony_ci 8415b8021494Sopenharmony_ci 8416b8021494Sopenharmony_ci### LD1D ### 8417b8021494Sopenharmony_ci 8418b8021494Sopenharmony_ciContiguous/gather load doublewords to vector. 8419b8021494Sopenharmony_ci 8420b8021494Sopenharmony_ci void ld1d(const ZRegister& zt, 8421b8021494Sopenharmony_ci const PRegisterZ& pg, 8422b8021494Sopenharmony_ci const SVEMemOperand& addr) 8423b8021494Sopenharmony_ci 8424b8021494Sopenharmony_ci 8425b8021494Sopenharmony_ci### LD1H ### 8426b8021494Sopenharmony_ci 8427b8021494Sopenharmony_ciContiguous/gather load halfwords to vector. 8428b8021494Sopenharmony_ci 8429b8021494Sopenharmony_ci void ld1h(const ZRegister& zt, 8430b8021494Sopenharmony_ci const PRegisterZ& pg, 8431b8021494Sopenharmony_ci const SVEMemOperand& addr) 8432b8021494Sopenharmony_ci 8433b8021494Sopenharmony_ci 8434b8021494Sopenharmony_ci### LD1RB ### 8435b8021494Sopenharmony_ci 8436b8021494Sopenharmony_ciLoad and broadcast unsigned byte to vector. 8437b8021494Sopenharmony_ci 8438b8021494Sopenharmony_ci void ld1rb(const ZRegister& zt, 8439b8021494Sopenharmony_ci const PRegisterZ& pg, 8440b8021494Sopenharmony_ci const SVEMemOperand& addr) 8441b8021494Sopenharmony_ci 8442b8021494Sopenharmony_ci 8443b8021494Sopenharmony_ci### LD1RD ### 8444b8021494Sopenharmony_ci 8445b8021494Sopenharmony_ciLoad and broadcast doubleword to vector. 8446b8021494Sopenharmony_ci 8447b8021494Sopenharmony_ci void ld1rd(const ZRegister& zt, 8448b8021494Sopenharmony_ci const PRegisterZ& pg, 8449b8021494Sopenharmony_ci const SVEMemOperand& addr) 8450b8021494Sopenharmony_ci 8451b8021494Sopenharmony_ci 8452b8021494Sopenharmony_ci### LD1RH ### 8453b8021494Sopenharmony_ci 8454b8021494Sopenharmony_ciLoad and broadcast unsigned halfword to vector. 8455b8021494Sopenharmony_ci 8456b8021494Sopenharmony_ci void ld1rh(const ZRegister& zt, 8457b8021494Sopenharmony_ci const PRegisterZ& pg, 8458b8021494Sopenharmony_ci const SVEMemOperand& addr) 8459b8021494Sopenharmony_ci 8460b8021494Sopenharmony_ci 8461b8021494Sopenharmony_ci### LD1ROB ### 8462b8021494Sopenharmony_ci 8463b8021494Sopenharmony_ciContiguous load and replicate thirty-two bytes. 8464b8021494Sopenharmony_ci 8465b8021494Sopenharmony_ci void ld1rob(const ZRegister& zt, 8466b8021494Sopenharmony_ci const PRegisterZ& pg, 8467b8021494Sopenharmony_ci const SVEMemOperand& addr) 8468b8021494Sopenharmony_ci 8469b8021494Sopenharmony_ci 8470b8021494Sopenharmony_ci### LD1ROD ### 8471b8021494Sopenharmony_ci 8472b8021494Sopenharmony_ciContiguous load and replicate four doublewords. 8473b8021494Sopenharmony_ci 8474b8021494Sopenharmony_ci void ld1rod(const ZRegister& zt, 8475b8021494Sopenharmony_ci const PRegisterZ& pg, 8476b8021494Sopenharmony_ci const SVEMemOperand& addr) 8477b8021494Sopenharmony_ci 8478b8021494Sopenharmony_ci 8479b8021494Sopenharmony_ci### LD1ROH ### 8480b8021494Sopenharmony_ci 8481b8021494Sopenharmony_ciContiguous load and replicate sixteen halfwords. 8482b8021494Sopenharmony_ci 8483b8021494Sopenharmony_ci void ld1roh(const ZRegister& zt, 8484b8021494Sopenharmony_ci const PRegisterZ& pg, 8485b8021494Sopenharmony_ci const SVEMemOperand& addr) 8486b8021494Sopenharmony_ci 8487b8021494Sopenharmony_ci 8488b8021494Sopenharmony_ci### LD1ROW ### 8489b8021494Sopenharmony_ci 8490b8021494Sopenharmony_ciContiguous load and replicate eight words. 8491b8021494Sopenharmony_ci 8492b8021494Sopenharmony_ci void ld1row(const ZRegister& zt, 8493b8021494Sopenharmony_ci const PRegisterZ& pg, 8494b8021494Sopenharmony_ci const SVEMemOperand& addr) 8495b8021494Sopenharmony_ci 8496b8021494Sopenharmony_ci 8497b8021494Sopenharmony_ci### LD1RQB ### 8498b8021494Sopenharmony_ci 8499b8021494Sopenharmony_ciContiguous load and replicate sixteen bytes. 8500b8021494Sopenharmony_ci 8501b8021494Sopenharmony_ci void ld1rqb(const ZRegister& zt, 8502b8021494Sopenharmony_ci const PRegisterZ& pg, 8503b8021494Sopenharmony_ci const SVEMemOperand& addr) 8504b8021494Sopenharmony_ci 8505b8021494Sopenharmony_ci 8506b8021494Sopenharmony_ci### LD1RQD ### 8507b8021494Sopenharmony_ci 8508b8021494Sopenharmony_ciContiguous load and replicate two doublewords. 8509b8021494Sopenharmony_ci 8510b8021494Sopenharmony_ci void ld1rqd(const ZRegister& zt, 8511b8021494Sopenharmony_ci const PRegisterZ& pg, 8512b8021494Sopenharmony_ci const SVEMemOperand& addr) 8513b8021494Sopenharmony_ci 8514b8021494Sopenharmony_ci 8515b8021494Sopenharmony_ci### LD1RQH ### 8516b8021494Sopenharmony_ci 8517b8021494Sopenharmony_ciContiguous load and replicate eight halfwords. 8518b8021494Sopenharmony_ci 8519b8021494Sopenharmony_ci void ld1rqh(const ZRegister& zt, 8520b8021494Sopenharmony_ci const PRegisterZ& pg, 8521b8021494Sopenharmony_ci const SVEMemOperand& addr) 8522b8021494Sopenharmony_ci 8523b8021494Sopenharmony_ci 8524b8021494Sopenharmony_ci### LD1RQW ### 8525b8021494Sopenharmony_ci 8526b8021494Sopenharmony_ciContiguous load and replicate four words. 8527b8021494Sopenharmony_ci 8528b8021494Sopenharmony_ci void ld1rqw(const ZRegister& zt, 8529b8021494Sopenharmony_ci const PRegisterZ& pg, 8530b8021494Sopenharmony_ci const SVEMemOperand& addr) 8531b8021494Sopenharmony_ci 8532b8021494Sopenharmony_ci 8533b8021494Sopenharmony_ci### LD1RSB ### 8534b8021494Sopenharmony_ci 8535b8021494Sopenharmony_ciLoad and broadcast signed byte to vector. 8536b8021494Sopenharmony_ci 8537b8021494Sopenharmony_ci void ld1rsb(const ZRegister& zt, 8538b8021494Sopenharmony_ci const PRegisterZ& pg, 8539b8021494Sopenharmony_ci const SVEMemOperand& addr) 8540b8021494Sopenharmony_ci 8541b8021494Sopenharmony_ci 8542b8021494Sopenharmony_ci### LD1RSH ### 8543b8021494Sopenharmony_ci 8544b8021494Sopenharmony_ciLoad and broadcast signed halfword to vector. 8545b8021494Sopenharmony_ci 8546b8021494Sopenharmony_ci void ld1rsh(const ZRegister& zt, 8547b8021494Sopenharmony_ci const PRegisterZ& pg, 8548b8021494Sopenharmony_ci const SVEMemOperand& addr) 8549b8021494Sopenharmony_ci 8550b8021494Sopenharmony_ci 8551b8021494Sopenharmony_ci### LD1RSW ### 8552b8021494Sopenharmony_ci 8553b8021494Sopenharmony_ciLoad and broadcast signed word to vector. 8554b8021494Sopenharmony_ci 8555b8021494Sopenharmony_ci void ld1rsw(const ZRegister& zt, 8556b8021494Sopenharmony_ci const PRegisterZ& pg, 8557b8021494Sopenharmony_ci const SVEMemOperand& addr) 8558b8021494Sopenharmony_ci 8559b8021494Sopenharmony_ci 8560b8021494Sopenharmony_ci### LD1RW ### 8561b8021494Sopenharmony_ci 8562b8021494Sopenharmony_ciLoad and broadcast unsigned word to vector. 8563b8021494Sopenharmony_ci 8564b8021494Sopenharmony_ci void ld1rw(const ZRegister& zt, 8565b8021494Sopenharmony_ci const PRegisterZ& pg, 8566b8021494Sopenharmony_ci const SVEMemOperand& addr) 8567b8021494Sopenharmony_ci 8568b8021494Sopenharmony_ci 8569b8021494Sopenharmony_ci### LD1SB ### 8570b8021494Sopenharmony_ci 8571b8021494Sopenharmony_ciContiguous/gather load signed bytes to vector. 8572b8021494Sopenharmony_ci 8573b8021494Sopenharmony_ci void ld1sb(const ZRegister& zt, 8574b8021494Sopenharmony_ci const PRegisterZ& pg, 8575b8021494Sopenharmony_ci const SVEMemOperand& addr) 8576b8021494Sopenharmony_ci 8577b8021494Sopenharmony_ci 8578b8021494Sopenharmony_ci### LD1SH ### 8579b8021494Sopenharmony_ci 8580b8021494Sopenharmony_ciContiguous/gather load signed halfwords to vector. 8581b8021494Sopenharmony_ci 8582b8021494Sopenharmony_ci void ld1sh(const ZRegister& zt, 8583b8021494Sopenharmony_ci const PRegisterZ& pg, 8584b8021494Sopenharmony_ci const SVEMemOperand& addr) 8585b8021494Sopenharmony_ci 8586b8021494Sopenharmony_ci 8587b8021494Sopenharmony_ci### LD1SW ### 8588b8021494Sopenharmony_ci 8589b8021494Sopenharmony_ciContiguous/gather load signed words to vector. 8590b8021494Sopenharmony_ci 8591b8021494Sopenharmony_ci void ld1sw(const ZRegister& zt, 8592b8021494Sopenharmony_ci const PRegisterZ& pg, 8593b8021494Sopenharmony_ci const SVEMemOperand& addr) 8594b8021494Sopenharmony_ci 8595b8021494Sopenharmony_ci 8596b8021494Sopenharmony_ci### LD1W ### 8597b8021494Sopenharmony_ci 8598b8021494Sopenharmony_ciContiguous/gather load words to vector. 8599b8021494Sopenharmony_ci 8600b8021494Sopenharmony_ci void ld1w(const ZRegister& zt, 8601b8021494Sopenharmony_ci const PRegisterZ& pg, 8602b8021494Sopenharmony_ci const SVEMemOperand& addr) 8603b8021494Sopenharmony_ci 8604b8021494Sopenharmony_ci 8605b8021494Sopenharmony_ci### LD2B ### 8606b8021494Sopenharmony_ci 8607b8021494Sopenharmony_ciContiguous load two-byte structures to two vectors. 8608b8021494Sopenharmony_ci 8609b8021494Sopenharmony_ci void ld2b(const ZRegister& zt1, 8610b8021494Sopenharmony_ci const ZRegister& zt2, 8611b8021494Sopenharmony_ci const PRegisterZ& pg, 8612b8021494Sopenharmony_ci const SVEMemOperand& addr) 8613b8021494Sopenharmony_ci 8614b8021494Sopenharmony_ci 8615b8021494Sopenharmony_ci### LD2D ### 8616b8021494Sopenharmony_ci 8617b8021494Sopenharmony_ciContiguous load two-doubleword structures to two vectors. 8618b8021494Sopenharmony_ci 8619b8021494Sopenharmony_ci void ld2d(const ZRegister& zt1, 8620b8021494Sopenharmony_ci const ZRegister& zt2, 8621b8021494Sopenharmony_ci const PRegisterZ& pg, 8622b8021494Sopenharmony_ci const SVEMemOperand& addr) 8623b8021494Sopenharmony_ci 8624b8021494Sopenharmony_ci 8625b8021494Sopenharmony_ci### LD2H ### 8626b8021494Sopenharmony_ci 8627b8021494Sopenharmony_ciContiguous load two-halfword structures to two vectors. 8628b8021494Sopenharmony_ci 8629b8021494Sopenharmony_ci void ld2h(const ZRegister& zt1, 8630b8021494Sopenharmony_ci const ZRegister& zt2, 8631b8021494Sopenharmony_ci const PRegisterZ& pg, 8632b8021494Sopenharmony_ci const SVEMemOperand& addr) 8633b8021494Sopenharmony_ci 8634b8021494Sopenharmony_ci 8635b8021494Sopenharmony_ci### LD2W ### 8636b8021494Sopenharmony_ci 8637b8021494Sopenharmony_ciContiguous load two-word structures to two vectors. 8638b8021494Sopenharmony_ci 8639b8021494Sopenharmony_ci void ld2w(const ZRegister& zt1, 8640b8021494Sopenharmony_ci const ZRegister& zt2, 8641b8021494Sopenharmony_ci const PRegisterZ& pg, 8642b8021494Sopenharmony_ci const SVEMemOperand& addr) 8643b8021494Sopenharmony_ci 8644b8021494Sopenharmony_ci 8645b8021494Sopenharmony_ci### LD3B ### 8646b8021494Sopenharmony_ci 8647b8021494Sopenharmony_ciContiguous load three-byte structures to three vectors. 8648b8021494Sopenharmony_ci 8649b8021494Sopenharmony_ci void ld3b(const ZRegister& zt1, 8650b8021494Sopenharmony_ci const ZRegister& zt2, 8651b8021494Sopenharmony_ci const ZRegister& zt3, 8652b8021494Sopenharmony_ci const PRegisterZ& pg, 8653b8021494Sopenharmony_ci const SVEMemOperand& addr) 8654b8021494Sopenharmony_ci 8655b8021494Sopenharmony_ci 8656b8021494Sopenharmony_ci### LD3D ### 8657b8021494Sopenharmony_ci 8658b8021494Sopenharmony_ciContiguous load three-doubleword structures to three vectors. 8659b8021494Sopenharmony_ci 8660b8021494Sopenharmony_ci void ld3d(const ZRegister& zt1, 8661b8021494Sopenharmony_ci const ZRegister& zt2, 8662b8021494Sopenharmony_ci const ZRegister& zt3, 8663b8021494Sopenharmony_ci const PRegisterZ& pg, 8664b8021494Sopenharmony_ci const SVEMemOperand& addr) 8665b8021494Sopenharmony_ci 8666b8021494Sopenharmony_ci 8667b8021494Sopenharmony_ci### LD3H ### 8668b8021494Sopenharmony_ci 8669b8021494Sopenharmony_ciContiguous load three-halfword structures to three vectors. 8670b8021494Sopenharmony_ci 8671b8021494Sopenharmony_ci void ld3h(const ZRegister& zt1, 8672b8021494Sopenharmony_ci const ZRegister& zt2, 8673b8021494Sopenharmony_ci const ZRegister& zt3, 8674b8021494Sopenharmony_ci const PRegisterZ& pg, 8675b8021494Sopenharmony_ci const SVEMemOperand& addr) 8676b8021494Sopenharmony_ci 8677b8021494Sopenharmony_ci 8678b8021494Sopenharmony_ci### LD3W ### 8679b8021494Sopenharmony_ci 8680b8021494Sopenharmony_ciContiguous load three-word structures to three vectors. 8681b8021494Sopenharmony_ci 8682b8021494Sopenharmony_ci void ld3w(const ZRegister& zt1, 8683b8021494Sopenharmony_ci const ZRegister& zt2, 8684b8021494Sopenharmony_ci const ZRegister& zt3, 8685b8021494Sopenharmony_ci const PRegisterZ& pg, 8686b8021494Sopenharmony_ci const SVEMemOperand& addr) 8687b8021494Sopenharmony_ci 8688b8021494Sopenharmony_ci 8689b8021494Sopenharmony_ci### LD4B ### 8690b8021494Sopenharmony_ci 8691b8021494Sopenharmony_ciContiguous load four-byte structures to four vectors. 8692b8021494Sopenharmony_ci 8693b8021494Sopenharmony_ci void ld4b(const ZRegister& zt1, 8694b8021494Sopenharmony_ci const ZRegister& zt2, 8695b8021494Sopenharmony_ci const ZRegister& zt3, 8696b8021494Sopenharmony_ci const ZRegister& zt4, 8697b8021494Sopenharmony_ci const PRegisterZ& pg, 8698b8021494Sopenharmony_ci const SVEMemOperand& addr) 8699b8021494Sopenharmony_ci 8700b8021494Sopenharmony_ci 8701b8021494Sopenharmony_ci### LD4D ### 8702b8021494Sopenharmony_ci 8703b8021494Sopenharmony_ciContiguous load four-doubleword structures to four vectors. 8704b8021494Sopenharmony_ci 8705b8021494Sopenharmony_ci void ld4d(const ZRegister& zt1, 8706b8021494Sopenharmony_ci const ZRegister& zt2, 8707b8021494Sopenharmony_ci const ZRegister& zt3, 8708b8021494Sopenharmony_ci const ZRegister& zt4, 8709b8021494Sopenharmony_ci const PRegisterZ& pg, 8710b8021494Sopenharmony_ci const SVEMemOperand& addr) 8711b8021494Sopenharmony_ci 8712b8021494Sopenharmony_ci 8713b8021494Sopenharmony_ci### LD4H ### 8714b8021494Sopenharmony_ci 8715b8021494Sopenharmony_ciContiguous load four-halfword structures to four vectors. 8716b8021494Sopenharmony_ci 8717b8021494Sopenharmony_ci void ld4h(const ZRegister& zt1, 8718b8021494Sopenharmony_ci const ZRegister& zt2, 8719b8021494Sopenharmony_ci const ZRegister& zt3, 8720b8021494Sopenharmony_ci const ZRegister& zt4, 8721b8021494Sopenharmony_ci const PRegisterZ& pg, 8722b8021494Sopenharmony_ci const SVEMemOperand& addr) 8723b8021494Sopenharmony_ci 8724b8021494Sopenharmony_ci 8725b8021494Sopenharmony_ci### LD4W ### 8726b8021494Sopenharmony_ci 8727b8021494Sopenharmony_ciContiguous load four-word structures to four vectors. 8728b8021494Sopenharmony_ci 8729b8021494Sopenharmony_ci void ld4w(const ZRegister& zt1, 8730b8021494Sopenharmony_ci const ZRegister& zt2, 8731b8021494Sopenharmony_ci const ZRegister& zt3, 8732b8021494Sopenharmony_ci const ZRegister& zt4, 8733b8021494Sopenharmony_ci const PRegisterZ& pg, 8734b8021494Sopenharmony_ci const SVEMemOperand& addr) 8735b8021494Sopenharmony_ci 8736b8021494Sopenharmony_ci 8737b8021494Sopenharmony_ci### LDFF1B ### 8738b8021494Sopenharmony_ci 8739b8021494Sopenharmony_ciContiguous load first-fault unsigned bytes to vector. 8740b8021494Sopenharmony_ci 8741b8021494Sopenharmony_ci void ldff1b(const ZRegister& zt, 8742b8021494Sopenharmony_ci const PRegisterZ& pg, 8743b8021494Sopenharmony_ci const SVEMemOperand& addr) 8744b8021494Sopenharmony_ci 8745b8021494Sopenharmony_ci 8746b8021494Sopenharmony_ci### LDFF1B ### 8747b8021494Sopenharmony_ci 8748b8021494Sopenharmony_ciGather load first-fault unsigned bytes to vector (immediate index). 8749b8021494Sopenharmony_ci 8750b8021494Sopenharmony_ci void ldff1b(const ZRegister& zt, 8751b8021494Sopenharmony_ci const PRegisterZ& pg, 8752b8021494Sopenharmony_ci const ZRegister& zn, 8753b8021494Sopenharmony_ci int imm5) 8754b8021494Sopenharmony_ci 8755b8021494Sopenharmony_ci 8756b8021494Sopenharmony_ci### LDFF1B ### 8757b8021494Sopenharmony_ci 8758b8021494Sopenharmony_ciGather load first-fault unsigned bytes to vector. 8759b8021494Sopenharmony_ci 8760b8021494Sopenharmony_ci void ldff1b(const ZRegister& zt, 8761b8021494Sopenharmony_ci const PRegisterZ& pg, 8762b8021494Sopenharmony_ci const Register& xn, 8763b8021494Sopenharmony_ci const ZRegister& zm) 8764b8021494Sopenharmony_ci 8765b8021494Sopenharmony_ci 8766b8021494Sopenharmony_ci### LDFF1D ### 8767b8021494Sopenharmony_ci 8768b8021494Sopenharmony_ciContiguous load first-fault doublewords to vector. 8769b8021494Sopenharmony_ci 8770b8021494Sopenharmony_ci void ldff1d(const ZRegister& zt, 8771b8021494Sopenharmony_ci const PRegisterZ& pg, 8772b8021494Sopenharmony_ci const SVEMemOperand& addr) 8773b8021494Sopenharmony_ci 8774b8021494Sopenharmony_ci 8775b8021494Sopenharmony_ci### LDFF1D ### 8776b8021494Sopenharmony_ci 8777b8021494Sopenharmony_ciGather load first-fault doublewords to vector (immediate index). 8778b8021494Sopenharmony_ci 8779b8021494Sopenharmony_ci void ldff1d(const ZRegister& zt, 8780b8021494Sopenharmony_ci const PRegisterZ& pg, 8781b8021494Sopenharmony_ci const ZRegister& zn, 8782b8021494Sopenharmony_ci int imm5) 8783b8021494Sopenharmony_ci 8784b8021494Sopenharmony_ci 8785b8021494Sopenharmony_ci### LDFF1D ### 8786b8021494Sopenharmony_ci 8787b8021494Sopenharmony_ciGather load first-fault doublewords to vector (vector index). 8788b8021494Sopenharmony_ci 8789b8021494Sopenharmony_ci void ldff1d(const ZRegister& zt, 8790b8021494Sopenharmony_ci const PRegisterZ& pg, 8791b8021494Sopenharmony_ci const Register& xn, 8792b8021494Sopenharmony_ci const ZRegister& zm) 8793b8021494Sopenharmony_ci 8794b8021494Sopenharmony_ci 8795b8021494Sopenharmony_ci### LDFF1H ### 8796b8021494Sopenharmony_ci 8797b8021494Sopenharmony_ciContiguous load first-fault unsigned halfwords to vector. 8798b8021494Sopenharmony_ci 8799b8021494Sopenharmony_ci void ldff1h(const ZRegister& zt, 8800b8021494Sopenharmony_ci const PRegisterZ& pg, 8801b8021494Sopenharmony_ci const SVEMemOperand& addr) 8802b8021494Sopenharmony_ci 8803b8021494Sopenharmony_ci 8804b8021494Sopenharmony_ci### LDFF1H ### 8805b8021494Sopenharmony_ci 8806b8021494Sopenharmony_ciGather load first-fault unsigned halfwords to vector (immediate index). 8807b8021494Sopenharmony_ci 8808b8021494Sopenharmony_ci void ldff1h(const ZRegister& zt, 8809b8021494Sopenharmony_ci const PRegisterZ& pg, 8810b8021494Sopenharmony_ci const ZRegister& zn, 8811b8021494Sopenharmony_ci int imm5) 8812b8021494Sopenharmony_ci 8813b8021494Sopenharmony_ci 8814b8021494Sopenharmony_ci### LDFF1H ### 8815b8021494Sopenharmony_ci 8816b8021494Sopenharmony_ciGather load first-fault unsigned halfwords to vector (vector index). 8817b8021494Sopenharmony_ci 8818b8021494Sopenharmony_ci void ldff1h(const ZRegister& zt, 8819b8021494Sopenharmony_ci const PRegisterZ& pg, 8820b8021494Sopenharmony_ci const Register& xn, 8821b8021494Sopenharmony_ci const ZRegister& zm) 8822b8021494Sopenharmony_ci 8823b8021494Sopenharmony_ci 8824b8021494Sopenharmony_ci### LDFF1SB ### 8825b8021494Sopenharmony_ci 8826b8021494Sopenharmony_ciContiguous load first-fault signed bytes to vector. 8827b8021494Sopenharmony_ci 8828b8021494Sopenharmony_ci void ldff1sb(const ZRegister& zt, 8829b8021494Sopenharmony_ci const PRegisterZ& pg, 8830b8021494Sopenharmony_ci const SVEMemOperand& addr) 8831b8021494Sopenharmony_ci 8832b8021494Sopenharmony_ci 8833b8021494Sopenharmony_ci### LDFF1SB ### 8834b8021494Sopenharmony_ci 8835b8021494Sopenharmony_ciGather load first-fault signed bytes to vector (immediate index). 8836b8021494Sopenharmony_ci 8837b8021494Sopenharmony_ci void ldff1sb(const ZRegister& zt, 8838b8021494Sopenharmony_ci const PRegisterZ& pg, 8839b8021494Sopenharmony_ci const ZRegister& zn, 8840b8021494Sopenharmony_ci int imm5) 8841b8021494Sopenharmony_ci 8842b8021494Sopenharmony_ci 8843b8021494Sopenharmony_ci### LDFF1SB ### 8844b8021494Sopenharmony_ci 8845b8021494Sopenharmony_ciGather load first-fault signed bytes to vector (vector index). 8846b8021494Sopenharmony_ci 8847b8021494Sopenharmony_ci void ldff1sb(const ZRegister& zt, 8848b8021494Sopenharmony_ci const PRegisterZ& pg, 8849b8021494Sopenharmony_ci const Register& xn, 8850b8021494Sopenharmony_ci const ZRegister& zm) 8851b8021494Sopenharmony_ci 8852b8021494Sopenharmony_ci 8853b8021494Sopenharmony_ci### LDFF1SH ### 8854b8021494Sopenharmony_ci 8855b8021494Sopenharmony_ciContiguous load first-fault signed halfwords to vector. 8856b8021494Sopenharmony_ci 8857b8021494Sopenharmony_ci void ldff1sh(const ZRegister& zt, 8858b8021494Sopenharmony_ci const PRegisterZ& pg, 8859b8021494Sopenharmony_ci const SVEMemOperand& addr) 8860b8021494Sopenharmony_ci 8861b8021494Sopenharmony_ci 8862b8021494Sopenharmony_ci### LDFF1SH ### 8863b8021494Sopenharmony_ci 8864b8021494Sopenharmony_ciGather load first-fault signed halfwords to vector (immediate index). 8865b8021494Sopenharmony_ci 8866b8021494Sopenharmony_ci void ldff1sh(const ZRegister& zt, 8867b8021494Sopenharmony_ci const PRegisterZ& pg, 8868b8021494Sopenharmony_ci const ZRegister& zn, 8869b8021494Sopenharmony_ci int imm5) 8870b8021494Sopenharmony_ci 8871b8021494Sopenharmony_ci 8872b8021494Sopenharmony_ci### LDFF1SH ### 8873b8021494Sopenharmony_ci 8874b8021494Sopenharmony_ciGather load first-fault signed halfwords to vector (vector index). 8875b8021494Sopenharmony_ci 8876b8021494Sopenharmony_ci void ldff1sh(const ZRegister& zt, 8877b8021494Sopenharmony_ci const PRegisterZ& pg, 8878b8021494Sopenharmony_ci const Register& xn, 8879b8021494Sopenharmony_ci const ZRegister& zm) 8880b8021494Sopenharmony_ci 8881b8021494Sopenharmony_ci 8882b8021494Sopenharmony_ci### LDFF1SW ### 8883b8021494Sopenharmony_ci 8884b8021494Sopenharmony_ciContiguous load first-fault signed words to vector. 8885b8021494Sopenharmony_ci 8886b8021494Sopenharmony_ci void ldff1sw(const ZRegister& zt, 8887b8021494Sopenharmony_ci const PRegisterZ& pg, 8888b8021494Sopenharmony_ci const SVEMemOperand& addr) 8889b8021494Sopenharmony_ci 8890b8021494Sopenharmony_ci 8891b8021494Sopenharmony_ci### LDFF1SW ### 8892b8021494Sopenharmony_ci 8893b8021494Sopenharmony_ciGather load first-fault signed words to vector (immediate index). 8894b8021494Sopenharmony_ci 8895b8021494Sopenharmony_ci void ldff1sw(const ZRegister& zt, 8896b8021494Sopenharmony_ci const PRegisterZ& pg, 8897b8021494Sopenharmony_ci const ZRegister& zn, 8898b8021494Sopenharmony_ci int imm5) 8899b8021494Sopenharmony_ci 8900b8021494Sopenharmony_ci 8901b8021494Sopenharmony_ci### LDFF1SW ### 8902b8021494Sopenharmony_ci 8903b8021494Sopenharmony_ciGather load first-fault signed words to vector (vector index). 8904b8021494Sopenharmony_ci 8905b8021494Sopenharmony_ci void ldff1sw(const ZRegister& zt, 8906b8021494Sopenharmony_ci const PRegisterZ& pg, 8907b8021494Sopenharmony_ci const Register& xn, 8908b8021494Sopenharmony_ci const ZRegister& zm) 8909b8021494Sopenharmony_ci 8910b8021494Sopenharmony_ci 8911b8021494Sopenharmony_ci### LDFF1W ### 8912b8021494Sopenharmony_ci 8913b8021494Sopenharmony_ciContiguous load first-fault unsigned words to vector. 8914b8021494Sopenharmony_ci 8915b8021494Sopenharmony_ci void ldff1w(const ZRegister& zt, 8916b8021494Sopenharmony_ci const PRegisterZ& pg, 8917b8021494Sopenharmony_ci const SVEMemOperand& addr) 8918b8021494Sopenharmony_ci 8919b8021494Sopenharmony_ci 8920b8021494Sopenharmony_ci### LDFF1W ### 8921b8021494Sopenharmony_ci 8922b8021494Sopenharmony_ciGather load first-fault unsigned words to vector (immediate index). 8923b8021494Sopenharmony_ci 8924b8021494Sopenharmony_ci void ldff1w(const ZRegister& zt, 8925b8021494Sopenharmony_ci const PRegisterZ& pg, 8926b8021494Sopenharmony_ci const ZRegister& zn, 8927b8021494Sopenharmony_ci int imm5) 8928b8021494Sopenharmony_ci 8929b8021494Sopenharmony_ci 8930b8021494Sopenharmony_ci### LDFF1W ### 8931b8021494Sopenharmony_ci 8932b8021494Sopenharmony_ciGather load first-fault unsigned words to vector (vector index). 8933b8021494Sopenharmony_ci 8934b8021494Sopenharmony_ci void ldff1w(const ZRegister& zt, 8935b8021494Sopenharmony_ci const PRegisterZ& pg, 8936b8021494Sopenharmony_ci const Register& xn, 8937b8021494Sopenharmony_ci const ZRegister& zm) 8938b8021494Sopenharmony_ci 8939b8021494Sopenharmony_ci 8940b8021494Sopenharmony_ci### LDNF1B ### 8941b8021494Sopenharmony_ci 8942b8021494Sopenharmony_ciContiguous load non-fault unsigned bytes to vector (immediate index). 8943b8021494Sopenharmony_ci 8944b8021494Sopenharmony_ci void ldnf1b(const ZRegister& zt, 8945b8021494Sopenharmony_ci const PRegisterZ& pg, 8946b8021494Sopenharmony_ci const SVEMemOperand& addr) 8947b8021494Sopenharmony_ci 8948b8021494Sopenharmony_ci 8949b8021494Sopenharmony_ci### LDNF1D ### 8950b8021494Sopenharmony_ci 8951b8021494Sopenharmony_ciContiguous load non-fault doublewords to vector (immediate index). 8952b8021494Sopenharmony_ci 8953b8021494Sopenharmony_ci void ldnf1d(const ZRegister& zt, 8954b8021494Sopenharmony_ci const PRegisterZ& pg, 8955b8021494Sopenharmony_ci const SVEMemOperand& addr) 8956b8021494Sopenharmony_ci 8957b8021494Sopenharmony_ci 8958b8021494Sopenharmony_ci### LDNF1H ### 8959b8021494Sopenharmony_ci 8960b8021494Sopenharmony_ciContiguous load non-fault unsigned halfwords to vector (immediate index). 8961b8021494Sopenharmony_ci 8962b8021494Sopenharmony_ci void ldnf1h(const ZRegister& zt, 8963b8021494Sopenharmony_ci const PRegisterZ& pg, 8964b8021494Sopenharmony_ci const SVEMemOperand& addr) 8965b8021494Sopenharmony_ci 8966b8021494Sopenharmony_ci 8967b8021494Sopenharmony_ci### LDNF1SB ### 8968b8021494Sopenharmony_ci 8969b8021494Sopenharmony_ciContiguous load non-fault signed bytes to vector (immediate index). 8970b8021494Sopenharmony_ci 8971b8021494Sopenharmony_ci void ldnf1sb(const ZRegister& zt, 8972b8021494Sopenharmony_ci const PRegisterZ& pg, 8973b8021494Sopenharmony_ci const SVEMemOperand& addr) 8974b8021494Sopenharmony_ci 8975b8021494Sopenharmony_ci 8976b8021494Sopenharmony_ci### LDNF1SH ### 8977b8021494Sopenharmony_ci 8978b8021494Sopenharmony_ciContiguous load non-fault signed halfwords to vector (immediate index). 8979b8021494Sopenharmony_ci 8980b8021494Sopenharmony_ci void ldnf1sh(const ZRegister& zt, 8981b8021494Sopenharmony_ci const PRegisterZ& pg, 8982b8021494Sopenharmony_ci const SVEMemOperand& addr) 8983b8021494Sopenharmony_ci 8984b8021494Sopenharmony_ci 8985b8021494Sopenharmony_ci### LDNF1SW ### 8986b8021494Sopenharmony_ci 8987b8021494Sopenharmony_ciContiguous load non-fault signed words to vector (immediate index). 8988b8021494Sopenharmony_ci 8989b8021494Sopenharmony_ci void ldnf1sw(const ZRegister& zt, 8990b8021494Sopenharmony_ci const PRegisterZ& pg, 8991b8021494Sopenharmony_ci const SVEMemOperand& addr) 8992b8021494Sopenharmony_ci 8993b8021494Sopenharmony_ci 8994b8021494Sopenharmony_ci### LDNF1W ### 8995b8021494Sopenharmony_ci 8996b8021494Sopenharmony_ciContiguous load non-fault unsigned words to vector (immediate index). 8997b8021494Sopenharmony_ci 8998b8021494Sopenharmony_ci void ldnf1w(const ZRegister& zt, 8999b8021494Sopenharmony_ci const PRegisterZ& pg, 9000b8021494Sopenharmony_ci const SVEMemOperand& addr) 9001b8021494Sopenharmony_ci 9002b8021494Sopenharmony_ci 9003b8021494Sopenharmony_ci### LDNT1B ### 9004b8021494Sopenharmony_ci 9005b8021494Sopenharmony_ciContiguous load non-temporal bytes to vector. 9006b8021494Sopenharmony_ci 9007b8021494Sopenharmony_ci void ldnt1b(const ZRegister& zt, 9008b8021494Sopenharmony_ci const PRegisterZ& pg, 9009b8021494Sopenharmony_ci const SVEMemOperand& addr) 9010b8021494Sopenharmony_ci 9011b8021494Sopenharmony_ci 9012b8021494Sopenharmony_ci### LDNT1D ### 9013b8021494Sopenharmony_ci 9014b8021494Sopenharmony_ciContiguous load non-temporal doublewords to vector. 9015b8021494Sopenharmony_ci 9016b8021494Sopenharmony_ci void ldnt1d(const ZRegister& zt, 9017b8021494Sopenharmony_ci const PRegisterZ& pg, 9018b8021494Sopenharmony_ci const SVEMemOperand& addr) 9019b8021494Sopenharmony_ci 9020b8021494Sopenharmony_ci 9021b8021494Sopenharmony_ci### LDNT1H ### 9022b8021494Sopenharmony_ci 9023b8021494Sopenharmony_ciContiguous load non-temporal halfwords to vector. 9024b8021494Sopenharmony_ci 9025b8021494Sopenharmony_ci void ldnt1h(const ZRegister& zt, 9026b8021494Sopenharmony_ci const PRegisterZ& pg, 9027b8021494Sopenharmony_ci const SVEMemOperand& addr) 9028b8021494Sopenharmony_ci 9029b8021494Sopenharmony_ci 9030b8021494Sopenharmony_ci### LDNT1SB ### 9031b8021494Sopenharmony_ci 9032b8021494Sopenharmony_ciGather load non-temporal signed bytes. 9033b8021494Sopenharmony_ci 9034b8021494Sopenharmony_ci void ldnt1sb(const ZRegister& zt, 9035b8021494Sopenharmony_ci const PRegisterZ& pg, 9036b8021494Sopenharmony_ci const SVEMemOperand& addr) 9037b8021494Sopenharmony_ci 9038b8021494Sopenharmony_ci 9039b8021494Sopenharmony_ci### LDNT1SH ### 9040b8021494Sopenharmony_ci 9041b8021494Sopenharmony_ciGather load non-temporal signed halfwords. 9042b8021494Sopenharmony_ci 9043b8021494Sopenharmony_ci void ldnt1sh(const ZRegister& zt, 9044b8021494Sopenharmony_ci const PRegisterZ& pg, 9045b8021494Sopenharmony_ci const SVEMemOperand& addr) 9046b8021494Sopenharmony_ci 9047b8021494Sopenharmony_ci 9048b8021494Sopenharmony_ci### LDNT1SW ### 9049b8021494Sopenharmony_ci 9050b8021494Sopenharmony_ciGather load non-temporal signed words. 9051b8021494Sopenharmony_ci 9052b8021494Sopenharmony_ci void ldnt1sw(const ZRegister& zt, 9053b8021494Sopenharmony_ci const PRegisterZ& pg, 9054b8021494Sopenharmony_ci const SVEMemOperand& addr) 9055b8021494Sopenharmony_ci 9056b8021494Sopenharmony_ci 9057b8021494Sopenharmony_ci### LDNT1W ### 9058b8021494Sopenharmony_ci 9059b8021494Sopenharmony_ciContiguous load non-temporal words to vector. 9060b8021494Sopenharmony_ci 9061b8021494Sopenharmony_ci void ldnt1w(const ZRegister& zt, 9062b8021494Sopenharmony_ci const PRegisterZ& pg, 9063b8021494Sopenharmony_ci const SVEMemOperand& addr) 9064b8021494Sopenharmony_ci 9065b8021494Sopenharmony_ci 9066b8021494Sopenharmony_ci### LDR ### 9067b8021494Sopenharmony_ci 9068b8021494Sopenharmony_ciLoad SVE predicate/vector register. 9069b8021494Sopenharmony_ci 9070b8021494Sopenharmony_ci void ldr(const CPURegister& rt, const SVEMemOperand& addr) 9071b8021494Sopenharmony_ci 9072b8021494Sopenharmony_ci 9073b8021494Sopenharmony_ci### LSL ### 9074b8021494Sopenharmony_ci 9075b8021494Sopenharmony_ciLogical shift left by 64-bit wide elements (predicated). 9076b8021494Sopenharmony_ci 9077b8021494Sopenharmony_ci void lsl(const ZRegister& zd, 9078b8021494Sopenharmony_ci const PRegisterM& pg, 9079b8021494Sopenharmony_ci const ZRegister& zn, 9080b8021494Sopenharmony_ci const ZRegister& zm) 9081b8021494Sopenharmony_ci 9082b8021494Sopenharmony_ci 9083b8021494Sopenharmony_ci### LSL ### 9084b8021494Sopenharmony_ci 9085b8021494Sopenharmony_ciLogical shift left by 64-bit wide elements (unpredicated). 9086b8021494Sopenharmony_ci 9087b8021494Sopenharmony_ci void lsl(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9088b8021494Sopenharmony_ci 9089b8021494Sopenharmony_ci 9090b8021494Sopenharmony_ci### LSL ### 9091b8021494Sopenharmony_ci 9092b8021494Sopenharmony_ciLogical shift left by immediate (predicated). 9093b8021494Sopenharmony_ci 9094b8021494Sopenharmony_ci void lsl(const ZRegister& zd, 9095b8021494Sopenharmony_ci const PRegisterM& pg, 9096b8021494Sopenharmony_ci const ZRegister& zn, 9097b8021494Sopenharmony_ci int shift) 9098b8021494Sopenharmony_ci 9099b8021494Sopenharmony_ci 9100b8021494Sopenharmony_ci### LSL ### 9101b8021494Sopenharmony_ci 9102b8021494Sopenharmony_ciLogical shift left by immediate (unpredicated). 9103b8021494Sopenharmony_ci 9104b8021494Sopenharmony_ci void lsl(const ZRegister& zd, const ZRegister& zn, int shift) 9105b8021494Sopenharmony_ci 9106b8021494Sopenharmony_ci 9107b8021494Sopenharmony_ci### LSLR ### 9108b8021494Sopenharmony_ci 9109b8021494Sopenharmony_ciReversed logical shift left by vector (predicated). 9110b8021494Sopenharmony_ci 9111b8021494Sopenharmony_ci void lslr(const ZRegister& zd, 9112b8021494Sopenharmony_ci const PRegisterM& pg, 9113b8021494Sopenharmony_ci const ZRegister& zn, 9114b8021494Sopenharmony_ci const ZRegister& zm) 9115b8021494Sopenharmony_ci 9116b8021494Sopenharmony_ci 9117b8021494Sopenharmony_ci### LSR ### 9118b8021494Sopenharmony_ci 9119b8021494Sopenharmony_ciLogical shift right by 64-bit wide elements (predicated). 9120b8021494Sopenharmony_ci 9121b8021494Sopenharmony_ci void lsr(const ZRegister& zd, 9122b8021494Sopenharmony_ci const PRegisterM& pg, 9123b8021494Sopenharmony_ci const ZRegister& zn, 9124b8021494Sopenharmony_ci const ZRegister& zm) 9125b8021494Sopenharmony_ci 9126b8021494Sopenharmony_ci 9127b8021494Sopenharmony_ci### LSR ### 9128b8021494Sopenharmony_ci 9129b8021494Sopenharmony_ciLogical shift right by 64-bit wide elements (unpredicated). 9130b8021494Sopenharmony_ci 9131b8021494Sopenharmony_ci void lsr(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9132b8021494Sopenharmony_ci 9133b8021494Sopenharmony_ci 9134b8021494Sopenharmony_ci### LSR ### 9135b8021494Sopenharmony_ci 9136b8021494Sopenharmony_ciLogical shift right by immediate (predicated). 9137b8021494Sopenharmony_ci 9138b8021494Sopenharmony_ci void lsr(const ZRegister& zd, 9139b8021494Sopenharmony_ci const PRegisterM& pg, 9140b8021494Sopenharmony_ci const ZRegister& zn, 9141b8021494Sopenharmony_ci int shift) 9142b8021494Sopenharmony_ci 9143b8021494Sopenharmony_ci 9144b8021494Sopenharmony_ci### LSR ### 9145b8021494Sopenharmony_ci 9146b8021494Sopenharmony_ciLogical shift right by immediate (unpredicated). 9147b8021494Sopenharmony_ci 9148b8021494Sopenharmony_ci void lsr(const ZRegister& zd, const ZRegister& zn, int shift) 9149b8021494Sopenharmony_ci 9150b8021494Sopenharmony_ci 9151b8021494Sopenharmony_ci### LSRR ### 9152b8021494Sopenharmony_ci 9153b8021494Sopenharmony_ciReversed logical shift right by vector (predicated). 9154b8021494Sopenharmony_ci 9155b8021494Sopenharmony_ci void lsrr(const ZRegister& zd, 9156b8021494Sopenharmony_ci const PRegisterM& pg, 9157b8021494Sopenharmony_ci const ZRegister& zn, 9158b8021494Sopenharmony_ci const ZRegister& zm) 9159b8021494Sopenharmony_ci 9160b8021494Sopenharmony_ci 9161b8021494Sopenharmony_ci<a id="sve-m"> 9162b8021494Sopenharmony_ci 9163b8021494Sopenharmony_ci### MAD ### 9164b8021494Sopenharmony_ci 9165b8021494Sopenharmony_ciMultiply-add vectors (predicated), writing multiplicand [Zdn = Za + Zdn * Zm]. 9166b8021494Sopenharmony_ci 9167b8021494Sopenharmony_ci void mad(const ZRegister& zdn, 9168b8021494Sopenharmony_ci const PRegisterM& pg, 9169b8021494Sopenharmony_ci const ZRegister& zm, 9170b8021494Sopenharmony_ci const ZRegister& za) 9171b8021494Sopenharmony_ci 9172b8021494Sopenharmony_ci 9173b8021494Sopenharmony_ci### MATCH ### 9174b8021494Sopenharmony_ci 9175b8021494Sopenharmony_ciDetect any matching elements, setting the condition flags. 9176b8021494Sopenharmony_ci 9177b8021494Sopenharmony_ci void match(const PRegisterWithLaneSize& pd, 9178b8021494Sopenharmony_ci const PRegisterZ& pg, 9179b8021494Sopenharmony_ci const ZRegister& zn, 9180b8021494Sopenharmony_ci const ZRegister& zm) 9181b8021494Sopenharmony_ci 9182b8021494Sopenharmony_ci 9183b8021494Sopenharmony_ci### MLA ### 9184b8021494Sopenharmony_ci 9185b8021494Sopenharmony_ciMultiply-add to accumulator (indexed). 9186b8021494Sopenharmony_ci 9187b8021494Sopenharmony_ci void mla(const ZRegister& zda, 9188b8021494Sopenharmony_ci const ZRegister& zn, 9189b8021494Sopenharmony_ci const ZRegister& zm, 9190b8021494Sopenharmony_ci int index) 9191b8021494Sopenharmony_ci 9192b8021494Sopenharmony_ci 9193b8021494Sopenharmony_ci### MLA ### 9194b8021494Sopenharmony_ci 9195b8021494Sopenharmony_ciMultiply-add vectors (predicated), writing addend [Zda = Zda + Zn * Zm]. 9196b8021494Sopenharmony_ci 9197b8021494Sopenharmony_ci void mla(const ZRegister& zda, 9198b8021494Sopenharmony_ci const PRegisterM& pg, 9199b8021494Sopenharmony_ci const ZRegister& zn, 9200b8021494Sopenharmony_ci const ZRegister& zm) 9201b8021494Sopenharmony_ci 9202b8021494Sopenharmony_ci 9203b8021494Sopenharmony_ci### MLS ### 9204b8021494Sopenharmony_ci 9205b8021494Sopenharmony_ciMultiply-subtract from accumulator (indexed). 9206b8021494Sopenharmony_ci 9207b8021494Sopenharmony_ci void mls(const ZRegister& zda, 9208b8021494Sopenharmony_ci const ZRegister& zn, 9209b8021494Sopenharmony_ci const ZRegister& zm, 9210b8021494Sopenharmony_ci int index) 9211b8021494Sopenharmony_ci 9212b8021494Sopenharmony_ci 9213b8021494Sopenharmony_ci### MLS ### 9214b8021494Sopenharmony_ci 9215b8021494Sopenharmony_ciMultiply-subtract vectors (predicated), writing addend [Zda = Zda - Zn * Zm]. 9216b8021494Sopenharmony_ci 9217b8021494Sopenharmony_ci void mls(const ZRegister& zda, 9218b8021494Sopenharmony_ci const PRegisterM& pg, 9219b8021494Sopenharmony_ci const ZRegister& zn, 9220b8021494Sopenharmony_ci const ZRegister& zm) 9221b8021494Sopenharmony_ci 9222b8021494Sopenharmony_ci 9223b8021494Sopenharmony_ci### MOV ### 9224b8021494Sopenharmony_ci 9225b8021494Sopenharmony_ciMove SIMD&FP scalar register to vector elements (predicated) 9226b8021494Sopenharmony_ci 9227b8021494Sopenharmony_ci void mov(const ZRegister& zd, const PRegisterM& pg, const VRegister& vn) 9228b8021494Sopenharmony_ci 9229b8021494Sopenharmony_ci 9230b8021494Sopenharmony_ci### MOV ### 9231b8021494Sopenharmony_ci 9232b8021494Sopenharmony_ciMove SIMD&FP scalar register to vector elements (unpredicated) 9233b8021494Sopenharmony_ci 9234b8021494Sopenharmony_ci void mov(const ZRegister& zd, const VRegister& vn) 9235b8021494Sopenharmony_ci 9236b8021494Sopenharmony_ci 9237b8021494Sopenharmony_ci### MOV ### 9238b8021494Sopenharmony_ci 9239b8021494Sopenharmony_ciMove general-purpose register to vector elements (predicated) 9240b8021494Sopenharmony_ci 9241b8021494Sopenharmony_ci void mov(const ZRegister& zd, const PRegisterM& pg, const Register& rn) 9242b8021494Sopenharmony_ci 9243b8021494Sopenharmony_ci 9244b8021494Sopenharmony_ci### MOV ### 9245b8021494Sopenharmony_ci 9246b8021494Sopenharmony_ciMove general-purpose register to vector elements (unpredicated) 9247b8021494Sopenharmony_ci 9248b8021494Sopenharmony_ci void mov(const ZRegister& zd, const Register& xn) 9249b8021494Sopenharmony_ci 9250b8021494Sopenharmony_ci 9251b8021494Sopenharmony_ci### MOV ### 9252b8021494Sopenharmony_ci 9253b8021494Sopenharmony_ciMove indexed element to vector elements (unpredicated) 9254b8021494Sopenharmony_ci 9255b8021494Sopenharmony_ci void mov(const ZRegister& zd, const ZRegister& zn, unsigned index) 9256b8021494Sopenharmony_ci 9257b8021494Sopenharmony_ci 9258b8021494Sopenharmony_ci### MOV ### 9259b8021494Sopenharmony_ci 9260b8021494Sopenharmony_ciMove logical bitmask immediate to vector (unpredicated). 9261b8021494Sopenharmony_ci 9262b8021494Sopenharmony_ci void mov(const ZRegister& zd, uint64_t imm) 9263b8021494Sopenharmony_ci 9264b8021494Sopenharmony_ci 9265b8021494Sopenharmony_ci### MOV ### 9266b8021494Sopenharmony_ci 9267b8021494Sopenharmony_ciMove predicates (merging) 9268b8021494Sopenharmony_ci 9269b8021494Sopenharmony_ci void mov(const PRegisterWithLaneSize& pd, 9270b8021494Sopenharmony_ci const PRegisterM& pg, 9271b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 9272b8021494Sopenharmony_ci 9273b8021494Sopenharmony_ci 9274b8021494Sopenharmony_ci### MOV ### 9275b8021494Sopenharmony_ci 9276b8021494Sopenharmony_ciMove predicates (unpredicated) 9277b8021494Sopenharmony_ci 9278b8021494Sopenharmony_ci void mov(const PRegister& pd, const PRegister& pn) 9279b8021494Sopenharmony_ci 9280b8021494Sopenharmony_ci 9281b8021494Sopenharmony_ci### MOV ### 9282b8021494Sopenharmony_ci 9283b8021494Sopenharmony_ciMove predicates (zeroing) 9284b8021494Sopenharmony_ci 9285b8021494Sopenharmony_ci void mov(const PRegisterWithLaneSize& pd, 9286b8021494Sopenharmony_ci const PRegisterZ& pg, 9287b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 9288b8021494Sopenharmony_ci 9289b8021494Sopenharmony_ci 9290b8021494Sopenharmony_ci### MOV ### 9291b8021494Sopenharmony_ci 9292b8021494Sopenharmony_ciMove signed immediate to vector elements (unpredicated). 9293b8021494Sopenharmony_ci 9294b8021494Sopenharmony_ci void mov(const ZRegister& zd, int imm8, int shift) 9295b8021494Sopenharmony_ci 9296b8021494Sopenharmony_ci 9297b8021494Sopenharmony_ci### MOV ### 9298b8021494Sopenharmony_ci 9299b8021494Sopenharmony_ciMove signed integer immediate to vector elements (predicated) 9300b8021494Sopenharmony_ci 9301b8021494Sopenharmony_ci void mov(const ZRegister& zd, const PRegister& pg, int imm8, int shift = -1) 9302b8021494Sopenharmony_ci 9303b8021494Sopenharmony_ci 9304b8021494Sopenharmony_ci### MOV ### 9305b8021494Sopenharmony_ci 9306b8021494Sopenharmony_ciMove vector elements (predicated) 9307b8021494Sopenharmony_ci 9308b8021494Sopenharmony_ci void mov(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 9309b8021494Sopenharmony_ci 9310b8021494Sopenharmony_ci 9311b8021494Sopenharmony_ci### MOV ### 9312b8021494Sopenharmony_ci 9313b8021494Sopenharmony_ciMove vector register (unpredicated) 9314b8021494Sopenharmony_ci 9315b8021494Sopenharmony_ci void mov(const ZRegister& zd, const ZRegister& zn) 9316b8021494Sopenharmony_ci 9317b8021494Sopenharmony_ci 9318b8021494Sopenharmony_ci### MOVPRFX ### 9319b8021494Sopenharmony_ci 9320b8021494Sopenharmony_ciMove prefix (predicated). 9321b8021494Sopenharmony_ci 9322b8021494Sopenharmony_ci void movprfx(const ZRegister& zd, const PRegister& pg, const ZRegister& zn) 9323b8021494Sopenharmony_ci 9324b8021494Sopenharmony_ci 9325b8021494Sopenharmony_ci### MOVPRFX ### 9326b8021494Sopenharmony_ci 9327b8021494Sopenharmony_ciMove prefix (unpredicated). 9328b8021494Sopenharmony_ci 9329b8021494Sopenharmony_ci void movprfx(const ZRegister& zd, const ZRegister& zn) 9330b8021494Sopenharmony_ci 9331b8021494Sopenharmony_ci 9332b8021494Sopenharmony_ci### MOVS ### 9333b8021494Sopenharmony_ci 9334b8021494Sopenharmony_ciMove predicate (unpredicated), setting the condition flags 9335b8021494Sopenharmony_ci 9336b8021494Sopenharmony_ci void movs(const PRegister& pd, const PRegister& pn) 9337b8021494Sopenharmony_ci 9338b8021494Sopenharmony_ci 9339b8021494Sopenharmony_ci### MOVS ### 9340b8021494Sopenharmony_ci 9341b8021494Sopenharmony_ciMove predicates (zeroing), setting the condition flags 9342b8021494Sopenharmony_ci 9343b8021494Sopenharmony_ci void movs(const PRegisterWithLaneSize& pd, 9344b8021494Sopenharmony_ci const PRegisterZ& pg, 9345b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 9346b8021494Sopenharmony_ci 9347b8021494Sopenharmony_ci 9348b8021494Sopenharmony_ci### MSB ### 9349b8021494Sopenharmony_ci 9350b8021494Sopenharmony_ciMultiply-subtract vectors (predicated), writing multiplicand [Zdn = Za - Zdn * Zm]. 9351b8021494Sopenharmony_ci 9352b8021494Sopenharmony_ci void msb(const ZRegister& zdn, 9353b8021494Sopenharmony_ci const PRegisterM& pg, 9354b8021494Sopenharmony_ci const ZRegister& zm, 9355b8021494Sopenharmony_ci const ZRegister& za) 9356b8021494Sopenharmony_ci 9357b8021494Sopenharmony_ci 9358b8021494Sopenharmony_ci### MUL ### 9359b8021494Sopenharmony_ci 9360b8021494Sopenharmony_ciMultiply (indexed). 9361b8021494Sopenharmony_ci 9362b8021494Sopenharmony_ci void mul(const ZRegister& zd, 9363b8021494Sopenharmony_ci const ZRegister& zn, 9364b8021494Sopenharmony_ci const ZRegister& zm, 9365b8021494Sopenharmony_ci int index) 9366b8021494Sopenharmony_ci 9367b8021494Sopenharmony_ci 9368b8021494Sopenharmony_ci### MUL ### 9369b8021494Sopenharmony_ci 9370b8021494Sopenharmony_ciMultiply by immediate (unpredicated). 9371b8021494Sopenharmony_ci 9372b8021494Sopenharmony_ci void mul(const ZRegister& zd, const ZRegister& zn, int imm8) 9373b8021494Sopenharmony_ci 9374b8021494Sopenharmony_ci 9375b8021494Sopenharmony_ci### MUL ### 9376b8021494Sopenharmony_ci 9377b8021494Sopenharmony_ciMultiply vectors (predicated). 9378b8021494Sopenharmony_ci 9379b8021494Sopenharmony_ci void mul(const ZRegister& zd, 9380b8021494Sopenharmony_ci const PRegisterM& pg, 9381b8021494Sopenharmony_ci const ZRegister& zn, 9382b8021494Sopenharmony_ci const ZRegister& zm) 9383b8021494Sopenharmony_ci 9384b8021494Sopenharmony_ci 9385b8021494Sopenharmony_ci### MUL ### 9386b8021494Sopenharmony_ci 9387b8021494Sopenharmony_ciMultiply vectors (unpredicated). 9388b8021494Sopenharmony_ci 9389b8021494Sopenharmony_ci void mul(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9390b8021494Sopenharmony_ci 9391b8021494Sopenharmony_ci 9392b8021494Sopenharmony_ci<a id="sve-n"> 9393b8021494Sopenharmony_ci 9394b8021494Sopenharmony_ci### NAND ### 9395b8021494Sopenharmony_ci 9396b8021494Sopenharmony_ciBitwise NAND predicates. 9397b8021494Sopenharmony_ci 9398b8021494Sopenharmony_ci void nand(const PRegisterWithLaneSize& pd, 9399b8021494Sopenharmony_ci const PRegisterZ& pg, 9400b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 9401b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 9402b8021494Sopenharmony_ci 9403b8021494Sopenharmony_ci 9404b8021494Sopenharmony_ci### NANDS ### 9405b8021494Sopenharmony_ci 9406b8021494Sopenharmony_ciBitwise NAND predicates. 9407b8021494Sopenharmony_ci 9408b8021494Sopenharmony_ci void nands(const PRegisterWithLaneSize& pd, 9409b8021494Sopenharmony_ci const PRegisterZ& pg, 9410b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 9411b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 9412b8021494Sopenharmony_ci 9413b8021494Sopenharmony_ci 9414b8021494Sopenharmony_ci### NBSL ### 9415b8021494Sopenharmony_ci 9416b8021494Sopenharmony_ciBitwise inverted select. 9417b8021494Sopenharmony_ci 9418b8021494Sopenharmony_ci void nbsl(const ZRegister& zd, 9419b8021494Sopenharmony_ci const ZRegister& zn, 9420b8021494Sopenharmony_ci const ZRegister& zm, 9421b8021494Sopenharmony_ci const ZRegister& zk) 9422b8021494Sopenharmony_ci 9423b8021494Sopenharmony_ci 9424b8021494Sopenharmony_ci### NEG ### 9425b8021494Sopenharmony_ci 9426b8021494Sopenharmony_ciNegate (predicated). 9427b8021494Sopenharmony_ci 9428b8021494Sopenharmony_ci void neg(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 9429b8021494Sopenharmony_ci 9430b8021494Sopenharmony_ci 9431b8021494Sopenharmony_ci### NMATCH ### 9432b8021494Sopenharmony_ci 9433b8021494Sopenharmony_ciDetect no matching elements, setting the condition flags. 9434b8021494Sopenharmony_ci 9435b8021494Sopenharmony_ci void nmatch(const PRegisterWithLaneSize& pd, 9436b8021494Sopenharmony_ci const PRegisterZ& pg, 9437b8021494Sopenharmony_ci const ZRegister& zn, 9438b8021494Sopenharmony_ci const ZRegister& zm) 9439b8021494Sopenharmony_ci 9440b8021494Sopenharmony_ci 9441b8021494Sopenharmony_ci### NOR ### 9442b8021494Sopenharmony_ci 9443b8021494Sopenharmony_ciBitwise NOR predicates. 9444b8021494Sopenharmony_ci 9445b8021494Sopenharmony_ci void nor(const PRegisterWithLaneSize& pd, 9446b8021494Sopenharmony_ci const PRegisterZ& pg, 9447b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 9448b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 9449b8021494Sopenharmony_ci 9450b8021494Sopenharmony_ci 9451b8021494Sopenharmony_ci### NORS ### 9452b8021494Sopenharmony_ci 9453b8021494Sopenharmony_ciBitwise NOR predicates. 9454b8021494Sopenharmony_ci 9455b8021494Sopenharmony_ci void nors(const PRegisterWithLaneSize& pd, 9456b8021494Sopenharmony_ci const PRegisterZ& pg, 9457b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 9458b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 9459b8021494Sopenharmony_ci 9460b8021494Sopenharmony_ci 9461b8021494Sopenharmony_ci### NOT ### 9462b8021494Sopenharmony_ci 9463b8021494Sopenharmony_ciBitwise invert predicate. 9464b8021494Sopenharmony_ci 9465b8021494Sopenharmony_ci void not_(const PRegisterWithLaneSize& pd, 9466b8021494Sopenharmony_ci const PRegisterZ& pg, 9467b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 9468b8021494Sopenharmony_ci 9469b8021494Sopenharmony_ci 9470b8021494Sopenharmony_ci### NOT ### 9471b8021494Sopenharmony_ci 9472b8021494Sopenharmony_ciBitwise invert vector (predicated). 9473b8021494Sopenharmony_ci 9474b8021494Sopenharmony_ci void not_(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 9475b8021494Sopenharmony_ci 9476b8021494Sopenharmony_ci 9477b8021494Sopenharmony_ci### NOTS ### 9478b8021494Sopenharmony_ci 9479b8021494Sopenharmony_ciBitwise invert predicate, setting the condition flags. 9480b8021494Sopenharmony_ci 9481b8021494Sopenharmony_ci void nots(const PRegisterWithLaneSize& pd, 9482b8021494Sopenharmony_ci const PRegisterZ& pg, 9483b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 9484b8021494Sopenharmony_ci 9485b8021494Sopenharmony_ci 9486b8021494Sopenharmony_ci<a id="sve-o"> 9487b8021494Sopenharmony_ci 9488b8021494Sopenharmony_ci### ORN ### 9489b8021494Sopenharmony_ci 9490b8021494Sopenharmony_ciBitwise OR inverted predicate. 9491b8021494Sopenharmony_ci 9492b8021494Sopenharmony_ci void orn(const PRegisterWithLaneSize& pd, 9493b8021494Sopenharmony_ci const PRegisterZ& pg, 9494b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 9495b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 9496b8021494Sopenharmony_ci 9497b8021494Sopenharmony_ci 9498b8021494Sopenharmony_ci### ORN ### 9499b8021494Sopenharmony_ci 9500b8021494Sopenharmony_ciBitwise OR with inverted immediate (unpredicated). 9501b8021494Sopenharmony_ci 9502b8021494Sopenharmony_ci void orn(const ZRegister& zd, const ZRegister& zn, uint64_t imm) 9503b8021494Sopenharmony_ci 9504b8021494Sopenharmony_ci 9505b8021494Sopenharmony_ci### ORNS ### 9506b8021494Sopenharmony_ci 9507b8021494Sopenharmony_ciBitwise OR inverted predicate. 9508b8021494Sopenharmony_ci 9509b8021494Sopenharmony_ci void orns(const PRegisterWithLaneSize& pd, 9510b8021494Sopenharmony_ci const PRegisterZ& pg, 9511b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 9512b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 9513b8021494Sopenharmony_ci 9514b8021494Sopenharmony_ci 9515b8021494Sopenharmony_ci### ORR ### 9516b8021494Sopenharmony_ci 9517b8021494Sopenharmony_ciBitwise OR predicate. 9518b8021494Sopenharmony_ci 9519b8021494Sopenharmony_ci void orr(const PRegisterWithLaneSize& pd, 9520b8021494Sopenharmony_ci const PRegisterZ& pg, 9521b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 9522b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 9523b8021494Sopenharmony_ci 9524b8021494Sopenharmony_ci 9525b8021494Sopenharmony_ci### ORR ### 9526b8021494Sopenharmony_ci 9527b8021494Sopenharmony_ciBitwise OR vectors (predicated). 9528b8021494Sopenharmony_ci 9529b8021494Sopenharmony_ci void orr(const ZRegister& zd, 9530b8021494Sopenharmony_ci const PRegisterM& pg, 9531b8021494Sopenharmony_ci const ZRegister& zn, 9532b8021494Sopenharmony_ci const ZRegister& zm) 9533b8021494Sopenharmony_ci 9534b8021494Sopenharmony_ci 9535b8021494Sopenharmony_ci### ORR ### 9536b8021494Sopenharmony_ci 9537b8021494Sopenharmony_ciBitwise OR vectors (unpredicated). 9538b8021494Sopenharmony_ci 9539b8021494Sopenharmony_ci void orr(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9540b8021494Sopenharmony_ci 9541b8021494Sopenharmony_ci 9542b8021494Sopenharmony_ci### ORR ### 9543b8021494Sopenharmony_ci 9544b8021494Sopenharmony_ciBitwise OR with immediate (unpredicated). 9545b8021494Sopenharmony_ci 9546b8021494Sopenharmony_ci void orr(const ZRegister& zd, const ZRegister& zn, uint64_t imm) 9547b8021494Sopenharmony_ci 9548b8021494Sopenharmony_ci 9549b8021494Sopenharmony_ci### ORRS ### 9550b8021494Sopenharmony_ci 9551b8021494Sopenharmony_ciBitwise OR predicate. 9552b8021494Sopenharmony_ci 9553b8021494Sopenharmony_ci void orrs(const PRegisterWithLaneSize& pd, 9554b8021494Sopenharmony_ci const PRegisterZ& pg, 9555b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 9556b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 9557b8021494Sopenharmony_ci 9558b8021494Sopenharmony_ci 9559b8021494Sopenharmony_ci### ORV ### 9560b8021494Sopenharmony_ci 9561b8021494Sopenharmony_ciBitwise OR reduction to scalar. 9562b8021494Sopenharmony_ci 9563b8021494Sopenharmony_ci void orv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 9564b8021494Sopenharmony_ci 9565b8021494Sopenharmony_ci 9566b8021494Sopenharmony_ci<a id="sve-p"> 9567b8021494Sopenharmony_ci 9568b8021494Sopenharmony_ci### PFALSE ### 9569b8021494Sopenharmony_ci 9570b8021494Sopenharmony_ciSet all predicate elements to false. 9571b8021494Sopenharmony_ci 9572b8021494Sopenharmony_ci void pfalse(const PRegisterWithLaneSize& pd) 9573b8021494Sopenharmony_ci 9574b8021494Sopenharmony_ci 9575b8021494Sopenharmony_ci### PFIRST ### 9576b8021494Sopenharmony_ci 9577b8021494Sopenharmony_ciSet the first active predicate element to true. 9578b8021494Sopenharmony_ci 9579b8021494Sopenharmony_ci void pfirst(const PRegisterWithLaneSize& pd, 9580b8021494Sopenharmony_ci const PRegister& pg, 9581b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 9582b8021494Sopenharmony_ci 9583b8021494Sopenharmony_ci 9584b8021494Sopenharmony_ci### PMUL ### 9585b8021494Sopenharmony_ci 9586b8021494Sopenharmony_ciPolynomial multiply vectors (unpredicated). 9587b8021494Sopenharmony_ci 9588b8021494Sopenharmony_ci void pmul(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9589b8021494Sopenharmony_ci 9590b8021494Sopenharmony_ci 9591b8021494Sopenharmony_ci### PMULLB ### 9592b8021494Sopenharmony_ci 9593b8021494Sopenharmony_ciPolynomial multiply long (bottom). 9594b8021494Sopenharmony_ci 9595b8021494Sopenharmony_ci void pmullb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9596b8021494Sopenharmony_ci 9597b8021494Sopenharmony_ci 9598b8021494Sopenharmony_ci### PMULLT ### 9599b8021494Sopenharmony_ci 9600b8021494Sopenharmony_ciPolynomial multiply long (top). 9601b8021494Sopenharmony_ci 9602b8021494Sopenharmony_ci void pmullt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9603b8021494Sopenharmony_ci 9604b8021494Sopenharmony_ci 9605b8021494Sopenharmony_ci### PNEXT ### 9606b8021494Sopenharmony_ci 9607b8021494Sopenharmony_ciFind next active predicate. 9608b8021494Sopenharmony_ci 9609b8021494Sopenharmony_ci void pnext(const PRegisterWithLaneSize& pd, 9610b8021494Sopenharmony_ci const PRegister& pg, 9611b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 9612b8021494Sopenharmony_ci 9613b8021494Sopenharmony_ci 9614b8021494Sopenharmony_ci### PRFB ### 9615b8021494Sopenharmony_ci 9616b8021494Sopenharmony_ciPrefetch bytes. 9617b8021494Sopenharmony_ci 9618b8021494Sopenharmony_ci void prfb(PrefetchOperation prfop, 9619b8021494Sopenharmony_ci const PRegister& pg, 9620b8021494Sopenharmony_ci const SVEMemOperand& addr) 9621b8021494Sopenharmony_ci 9622b8021494Sopenharmony_ci 9623b8021494Sopenharmony_ci### PRFD ### 9624b8021494Sopenharmony_ci 9625b8021494Sopenharmony_ciPrefetch doublewords. 9626b8021494Sopenharmony_ci 9627b8021494Sopenharmony_ci void prfd(PrefetchOperation prfop, 9628b8021494Sopenharmony_ci const PRegister& pg, 9629b8021494Sopenharmony_ci const SVEMemOperand& addr) 9630b8021494Sopenharmony_ci 9631b8021494Sopenharmony_ci 9632b8021494Sopenharmony_ci### PRFH ### 9633b8021494Sopenharmony_ci 9634b8021494Sopenharmony_ciPrefetch halfwords. 9635b8021494Sopenharmony_ci 9636b8021494Sopenharmony_ci void prfh(PrefetchOperation prfop, 9637b8021494Sopenharmony_ci const PRegister& pg, 9638b8021494Sopenharmony_ci const SVEMemOperand& addr) 9639b8021494Sopenharmony_ci 9640b8021494Sopenharmony_ci 9641b8021494Sopenharmony_ci### PRFW ### 9642b8021494Sopenharmony_ci 9643b8021494Sopenharmony_ciPrefetch words. 9644b8021494Sopenharmony_ci 9645b8021494Sopenharmony_ci void prfw(PrefetchOperation prfop, 9646b8021494Sopenharmony_ci const PRegister& pg, 9647b8021494Sopenharmony_ci const SVEMemOperand& addr) 9648b8021494Sopenharmony_ci 9649b8021494Sopenharmony_ci 9650b8021494Sopenharmony_ci### PTEST ### 9651b8021494Sopenharmony_ci 9652b8021494Sopenharmony_ciSet condition flags for predicate. 9653b8021494Sopenharmony_ci 9654b8021494Sopenharmony_ci void ptest(const PRegister& pg, const PRegisterWithLaneSize& pn) 9655b8021494Sopenharmony_ci 9656b8021494Sopenharmony_ci 9657b8021494Sopenharmony_ci### PTRUE ### 9658b8021494Sopenharmony_ci 9659b8021494Sopenharmony_ciInitialise predicate from named constraint. 9660b8021494Sopenharmony_ci 9661b8021494Sopenharmony_ci void ptrue(const PRegisterWithLaneSize& pd, int pattern = SVE_ALL) 9662b8021494Sopenharmony_ci 9663b8021494Sopenharmony_ci 9664b8021494Sopenharmony_ci### PTRUES ### 9665b8021494Sopenharmony_ci 9666b8021494Sopenharmony_ciInitialise predicate from named constraint. 9667b8021494Sopenharmony_ci 9668b8021494Sopenharmony_ci void ptrues(const PRegisterWithLaneSize& pd, int pattern = SVE_ALL) 9669b8021494Sopenharmony_ci 9670b8021494Sopenharmony_ci 9671b8021494Sopenharmony_ci### PUNPKHI ### 9672b8021494Sopenharmony_ci 9673b8021494Sopenharmony_ciUnpack and widen half of predicate. 9674b8021494Sopenharmony_ci 9675b8021494Sopenharmony_ci void punpkhi(const PRegisterWithLaneSize& pd, 9676b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 9677b8021494Sopenharmony_ci 9678b8021494Sopenharmony_ci 9679b8021494Sopenharmony_ci### PUNPKLO ### 9680b8021494Sopenharmony_ci 9681b8021494Sopenharmony_ciUnpack and widen half of predicate. 9682b8021494Sopenharmony_ci 9683b8021494Sopenharmony_ci void punpklo(const PRegisterWithLaneSize& pd, 9684b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn) 9685b8021494Sopenharmony_ci 9686b8021494Sopenharmony_ci 9687b8021494Sopenharmony_ci<a id="sve-r"> 9688b8021494Sopenharmony_ci 9689b8021494Sopenharmony_ci### RADDHNB ### 9690b8021494Sopenharmony_ci 9691b8021494Sopenharmony_ciRounding add narrow high part (bottom). 9692b8021494Sopenharmony_ci 9693b8021494Sopenharmony_ci void raddhnb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9694b8021494Sopenharmony_ci 9695b8021494Sopenharmony_ci 9696b8021494Sopenharmony_ci### RADDHNT ### 9697b8021494Sopenharmony_ci 9698b8021494Sopenharmony_ciRounding add narrow high part (top). 9699b8021494Sopenharmony_ci 9700b8021494Sopenharmony_ci void raddhnt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9701b8021494Sopenharmony_ci 9702b8021494Sopenharmony_ci 9703b8021494Sopenharmony_ci### RBIT ### 9704b8021494Sopenharmony_ci 9705b8021494Sopenharmony_ciReverse bits (predicated). 9706b8021494Sopenharmony_ci 9707b8021494Sopenharmony_ci void rbit(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 9708b8021494Sopenharmony_ci 9709b8021494Sopenharmony_ci 9710b8021494Sopenharmony_ci### RDFFR ### 9711b8021494Sopenharmony_ci 9712b8021494Sopenharmony_ciRead the first-fault register. 9713b8021494Sopenharmony_ci 9714b8021494Sopenharmony_ci void rdffr(const PRegisterWithLaneSize& pd) 9715b8021494Sopenharmony_ci 9716b8021494Sopenharmony_ci 9717b8021494Sopenharmony_ci### RDFFR ### 9718b8021494Sopenharmony_ci 9719b8021494Sopenharmony_ciReturn predicate of succesfully loaded elements. 9720b8021494Sopenharmony_ci 9721b8021494Sopenharmony_ci void rdffr(const PRegisterWithLaneSize& pd, const PRegisterZ& pg) 9722b8021494Sopenharmony_ci 9723b8021494Sopenharmony_ci 9724b8021494Sopenharmony_ci### RDFFRS ### 9725b8021494Sopenharmony_ci 9726b8021494Sopenharmony_ciReturn predicate of succesfully loaded elements. 9727b8021494Sopenharmony_ci 9728b8021494Sopenharmony_ci void rdffrs(const PRegisterWithLaneSize& pd, const PRegisterZ& pg) 9729b8021494Sopenharmony_ci 9730b8021494Sopenharmony_ci 9731b8021494Sopenharmony_ci### RDVL ### 9732b8021494Sopenharmony_ci 9733b8021494Sopenharmony_ciRead multiple of vector register size to scalar register. 9734b8021494Sopenharmony_ci 9735b8021494Sopenharmony_ci void rdvl(const Register& xd, int imm6) 9736b8021494Sopenharmony_ci 9737b8021494Sopenharmony_ci 9738b8021494Sopenharmony_ci### REV ### 9739b8021494Sopenharmony_ci 9740b8021494Sopenharmony_ciReverse all elements in a predicate. 9741b8021494Sopenharmony_ci 9742b8021494Sopenharmony_ci void rev(const PRegisterWithLaneSize& pd, const PRegisterWithLaneSize& pn) 9743b8021494Sopenharmony_ci 9744b8021494Sopenharmony_ci 9745b8021494Sopenharmony_ci### REV ### 9746b8021494Sopenharmony_ci 9747b8021494Sopenharmony_ciReverse all elements in a vector (unpredicated). 9748b8021494Sopenharmony_ci 9749b8021494Sopenharmony_ci void rev(const ZRegister& zd, const ZRegister& zn) 9750b8021494Sopenharmony_ci 9751b8021494Sopenharmony_ci 9752b8021494Sopenharmony_ci### REVB ### 9753b8021494Sopenharmony_ci 9754b8021494Sopenharmony_ciReverse bytes / halfwords / words within elements (predicated). 9755b8021494Sopenharmony_ci 9756b8021494Sopenharmony_ci void revb(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 9757b8021494Sopenharmony_ci 9758b8021494Sopenharmony_ci 9759b8021494Sopenharmony_ci### REVH ### 9760b8021494Sopenharmony_ci 9761b8021494Sopenharmony_ciReverse bytes / halfwords / words within elements (predicated). 9762b8021494Sopenharmony_ci 9763b8021494Sopenharmony_ci void revh(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 9764b8021494Sopenharmony_ci 9765b8021494Sopenharmony_ci 9766b8021494Sopenharmony_ci### REVW ### 9767b8021494Sopenharmony_ci 9768b8021494Sopenharmony_ciReverse bytes / halfwords / words within elements (predicated). 9769b8021494Sopenharmony_ci 9770b8021494Sopenharmony_ci void revw(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 9771b8021494Sopenharmony_ci 9772b8021494Sopenharmony_ci 9773b8021494Sopenharmony_ci### RSHRNB ### 9774b8021494Sopenharmony_ci 9775b8021494Sopenharmony_ciRounding shift right narrow by immediate (bottom). 9776b8021494Sopenharmony_ci 9777b8021494Sopenharmony_ci void rshrnb(const ZRegister& zd, const ZRegister& zn, int shift) 9778b8021494Sopenharmony_ci 9779b8021494Sopenharmony_ci 9780b8021494Sopenharmony_ci### RSHRNT ### 9781b8021494Sopenharmony_ci 9782b8021494Sopenharmony_ciRounding shift right narrow by immediate (top). 9783b8021494Sopenharmony_ci 9784b8021494Sopenharmony_ci void rshrnt(const ZRegister& zd, const ZRegister& zn, int shift) 9785b8021494Sopenharmony_ci 9786b8021494Sopenharmony_ci 9787b8021494Sopenharmony_ci### RSUBHNB ### 9788b8021494Sopenharmony_ci 9789b8021494Sopenharmony_ciRounding subtract narrow high part (bottom). 9790b8021494Sopenharmony_ci 9791b8021494Sopenharmony_ci void rsubhnb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9792b8021494Sopenharmony_ci 9793b8021494Sopenharmony_ci 9794b8021494Sopenharmony_ci### RSUBHNT ### 9795b8021494Sopenharmony_ci 9796b8021494Sopenharmony_ciRounding subtract narrow high part (top). 9797b8021494Sopenharmony_ci 9798b8021494Sopenharmony_ci void rsubhnt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9799b8021494Sopenharmony_ci 9800b8021494Sopenharmony_ci 9801b8021494Sopenharmony_ci<a id="sve-s"> 9802b8021494Sopenharmony_ci 9803b8021494Sopenharmony_ci### SABA ### 9804b8021494Sopenharmony_ci 9805b8021494Sopenharmony_ciSigned absolute difference and accumulate. 9806b8021494Sopenharmony_ci 9807b8021494Sopenharmony_ci void saba(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 9808b8021494Sopenharmony_ci 9809b8021494Sopenharmony_ci 9810b8021494Sopenharmony_ci### SABALB ### 9811b8021494Sopenharmony_ci 9812b8021494Sopenharmony_ciSigned absolute difference and accumulate long (bottom). 9813b8021494Sopenharmony_ci 9814b8021494Sopenharmony_ci void sabalb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 9815b8021494Sopenharmony_ci 9816b8021494Sopenharmony_ci 9817b8021494Sopenharmony_ci### SABALT ### 9818b8021494Sopenharmony_ci 9819b8021494Sopenharmony_ciSigned absolute difference and accumulate long (top). 9820b8021494Sopenharmony_ci 9821b8021494Sopenharmony_ci void sabalt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 9822b8021494Sopenharmony_ci 9823b8021494Sopenharmony_ci 9824b8021494Sopenharmony_ci### SABD ### 9825b8021494Sopenharmony_ci 9826b8021494Sopenharmony_ciSigned absolute difference (predicated). 9827b8021494Sopenharmony_ci 9828b8021494Sopenharmony_ci void sabd(const ZRegister& zd, 9829b8021494Sopenharmony_ci const PRegisterM& pg, 9830b8021494Sopenharmony_ci const ZRegister& zn, 9831b8021494Sopenharmony_ci const ZRegister& zm) 9832b8021494Sopenharmony_ci 9833b8021494Sopenharmony_ci 9834b8021494Sopenharmony_ci### SABDLB ### 9835b8021494Sopenharmony_ci 9836b8021494Sopenharmony_ciSigned absolute difference long (bottom). 9837b8021494Sopenharmony_ci 9838b8021494Sopenharmony_ci void sabdlb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9839b8021494Sopenharmony_ci 9840b8021494Sopenharmony_ci 9841b8021494Sopenharmony_ci### SABDLT ### 9842b8021494Sopenharmony_ci 9843b8021494Sopenharmony_ciSigned absolute difference long (top). 9844b8021494Sopenharmony_ci 9845b8021494Sopenharmony_ci void sabdlt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9846b8021494Sopenharmony_ci 9847b8021494Sopenharmony_ci 9848b8021494Sopenharmony_ci### SADALP ### 9849b8021494Sopenharmony_ci 9850b8021494Sopenharmony_ciSigned add and accumulate long pairwise. 9851b8021494Sopenharmony_ci 9852b8021494Sopenharmony_ci void sadalp(const ZRegister& zda, const PRegisterM& pg, const ZRegister& zn) 9853b8021494Sopenharmony_ci 9854b8021494Sopenharmony_ci 9855b8021494Sopenharmony_ci### SADDLB ### 9856b8021494Sopenharmony_ci 9857b8021494Sopenharmony_ciSigned add long (bottom). 9858b8021494Sopenharmony_ci 9859b8021494Sopenharmony_ci void saddlb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9860b8021494Sopenharmony_ci 9861b8021494Sopenharmony_ci 9862b8021494Sopenharmony_ci### SADDLBT ### 9863b8021494Sopenharmony_ci 9864b8021494Sopenharmony_ciSigned add long (bottom + top). 9865b8021494Sopenharmony_ci 9866b8021494Sopenharmony_ci void saddlbt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9867b8021494Sopenharmony_ci 9868b8021494Sopenharmony_ci 9869b8021494Sopenharmony_ci### SADDLT ### 9870b8021494Sopenharmony_ci 9871b8021494Sopenharmony_ciSigned add long (top). 9872b8021494Sopenharmony_ci 9873b8021494Sopenharmony_ci void saddlt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9874b8021494Sopenharmony_ci 9875b8021494Sopenharmony_ci 9876b8021494Sopenharmony_ci### SADDV ### 9877b8021494Sopenharmony_ci 9878b8021494Sopenharmony_ciSigned add reduction to scalar. 9879b8021494Sopenharmony_ci 9880b8021494Sopenharmony_ci void saddv(const VRegister& dd, const PRegister& pg, const ZRegister& zn) 9881b8021494Sopenharmony_ci 9882b8021494Sopenharmony_ci 9883b8021494Sopenharmony_ci### SADDWB ### 9884b8021494Sopenharmony_ci 9885b8021494Sopenharmony_ciSigned add wide (bottom). 9886b8021494Sopenharmony_ci 9887b8021494Sopenharmony_ci void saddwb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9888b8021494Sopenharmony_ci 9889b8021494Sopenharmony_ci 9890b8021494Sopenharmony_ci### SADDWT ### 9891b8021494Sopenharmony_ci 9892b8021494Sopenharmony_ciSigned add wide (top). 9893b8021494Sopenharmony_ci 9894b8021494Sopenharmony_ci void saddwt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 9895b8021494Sopenharmony_ci 9896b8021494Sopenharmony_ci 9897b8021494Sopenharmony_ci### SBCLB ### 9898b8021494Sopenharmony_ci 9899b8021494Sopenharmony_ciSubtract with carry long (bottom). 9900b8021494Sopenharmony_ci 9901b8021494Sopenharmony_ci void sbclb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 9902b8021494Sopenharmony_ci 9903b8021494Sopenharmony_ci 9904b8021494Sopenharmony_ci### SBCLT ### 9905b8021494Sopenharmony_ci 9906b8021494Sopenharmony_ciSubtract with carry long (top). 9907b8021494Sopenharmony_ci 9908b8021494Sopenharmony_ci void sbclt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 9909b8021494Sopenharmony_ci 9910b8021494Sopenharmony_ci 9911b8021494Sopenharmony_ci### SCVTF ### 9912b8021494Sopenharmony_ci 9913b8021494Sopenharmony_ciSigned integer convert to floating-point (predicated). 9914b8021494Sopenharmony_ci 9915b8021494Sopenharmony_ci void scvtf(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 9916b8021494Sopenharmony_ci 9917b8021494Sopenharmony_ci 9918b8021494Sopenharmony_ci### SDIV ### 9919b8021494Sopenharmony_ci 9920b8021494Sopenharmony_ciSigned divide (predicated). 9921b8021494Sopenharmony_ci 9922b8021494Sopenharmony_ci void sdiv(const ZRegister& zd, 9923b8021494Sopenharmony_ci const PRegisterM& pg, 9924b8021494Sopenharmony_ci const ZRegister& zn, 9925b8021494Sopenharmony_ci const ZRegister& zm) 9926b8021494Sopenharmony_ci 9927b8021494Sopenharmony_ci 9928b8021494Sopenharmony_ci### SDIVR ### 9929b8021494Sopenharmony_ci 9930b8021494Sopenharmony_ciSigned reversed divide (predicated). 9931b8021494Sopenharmony_ci 9932b8021494Sopenharmony_ci void sdivr(const ZRegister& zd, 9933b8021494Sopenharmony_ci const PRegisterM& pg, 9934b8021494Sopenharmony_ci const ZRegister& zn, 9935b8021494Sopenharmony_ci const ZRegister& zm) 9936b8021494Sopenharmony_ci 9937b8021494Sopenharmony_ci 9938b8021494Sopenharmony_ci### SDOT ### 9939b8021494Sopenharmony_ci 9940b8021494Sopenharmony_ciSigned dot product by indexed quadtuplet. 9941b8021494Sopenharmony_ci 9942b8021494Sopenharmony_ci void sdot(const ZRegister& zda, 9943b8021494Sopenharmony_ci const ZRegister& zn, 9944b8021494Sopenharmony_ci const ZRegister& zm, 9945b8021494Sopenharmony_ci int index) 9946b8021494Sopenharmony_ci 9947b8021494Sopenharmony_ci 9948b8021494Sopenharmony_ci### SDOT ### 9949b8021494Sopenharmony_ci 9950b8021494Sopenharmony_ciSigned dot product. 9951b8021494Sopenharmony_ci 9952b8021494Sopenharmony_ci void sdot(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 9953b8021494Sopenharmony_ci 9954b8021494Sopenharmony_ci 9955b8021494Sopenharmony_ci### SEL ### 9956b8021494Sopenharmony_ci 9957b8021494Sopenharmony_ciConditionally select elements from two predicates. 9958b8021494Sopenharmony_ci 9959b8021494Sopenharmony_ci void sel(const PRegisterWithLaneSize& pd, 9960b8021494Sopenharmony_ci const PRegister& pg, 9961b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 9962b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 9963b8021494Sopenharmony_ci 9964b8021494Sopenharmony_ci 9965b8021494Sopenharmony_ci### SEL ### 9966b8021494Sopenharmony_ci 9967b8021494Sopenharmony_ciConditionally select elements from two vectors. 9968b8021494Sopenharmony_ci 9969b8021494Sopenharmony_ci void sel(const ZRegister& zd, 9970b8021494Sopenharmony_ci const PRegister& pg, 9971b8021494Sopenharmony_ci const ZRegister& zn, 9972b8021494Sopenharmony_ci const ZRegister& zm) 9973b8021494Sopenharmony_ci 9974b8021494Sopenharmony_ci 9975b8021494Sopenharmony_ci### SETFFR ### 9976b8021494Sopenharmony_ci 9977b8021494Sopenharmony_ciInitialise the first-fault register to all true. 9978b8021494Sopenharmony_ci 9979b8021494Sopenharmony_ci void setffr() 9980b8021494Sopenharmony_ci 9981b8021494Sopenharmony_ci 9982b8021494Sopenharmony_ci### SHADD ### 9983b8021494Sopenharmony_ci 9984b8021494Sopenharmony_ciSigned halving addition. 9985b8021494Sopenharmony_ci 9986b8021494Sopenharmony_ci void shadd(const ZRegister& zd, 9987b8021494Sopenharmony_ci const PRegisterM& pg, 9988b8021494Sopenharmony_ci const ZRegister& zn, 9989b8021494Sopenharmony_ci const ZRegister& zm) 9990b8021494Sopenharmony_ci 9991b8021494Sopenharmony_ci 9992b8021494Sopenharmony_ci### SHRNB ### 9993b8021494Sopenharmony_ci 9994b8021494Sopenharmony_ciShift right narrow by immediate (bottom). 9995b8021494Sopenharmony_ci 9996b8021494Sopenharmony_ci void shrnb(const ZRegister& zd, const ZRegister& zn, int shift) 9997b8021494Sopenharmony_ci 9998b8021494Sopenharmony_ci 9999b8021494Sopenharmony_ci### SHRNT ### 10000b8021494Sopenharmony_ci 10001b8021494Sopenharmony_ciShift right narrow by immediate (top). 10002b8021494Sopenharmony_ci 10003b8021494Sopenharmony_ci void shrnt(const ZRegister& zd, const ZRegister& zn, int shift) 10004b8021494Sopenharmony_ci 10005b8021494Sopenharmony_ci 10006b8021494Sopenharmony_ci### SHSUB ### 10007b8021494Sopenharmony_ci 10008b8021494Sopenharmony_ciSigned halving subtract. 10009b8021494Sopenharmony_ci 10010b8021494Sopenharmony_ci void shsub(const ZRegister& zd, 10011b8021494Sopenharmony_ci const PRegisterM& pg, 10012b8021494Sopenharmony_ci const ZRegister& zn, 10013b8021494Sopenharmony_ci const ZRegister& zm) 10014b8021494Sopenharmony_ci 10015b8021494Sopenharmony_ci 10016b8021494Sopenharmony_ci### SHSUBR ### 10017b8021494Sopenharmony_ci 10018b8021494Sopenharmony_ciSigned halving subtract reversed vectors. 10019b8021494Sopenharmony_ci 10020b8021494Sopenharmony_ci void shsubr(const ZRegister& zd, 10021b8021494Sopenharmony_ci const PRegisterM& pg, 10022b8021494Sopenharmony_ci const ZRegister& zn, 10023b8021494Sopenharmony_ci const ZRegister& zm) 10024b8021494Sopenharmony_ci 10025b8021494Sopenharmony_ci 10026b8021494Sopenharmony_ci### SLI ### 10027b8021494Sopenharmony_ci 10028b8021494Sopenharmony_ciShift left and insert (immediate). 10029b8021494Sopenharmony_ci 10030b8021494Sopenharmony_ci void sli(const ZRegister& zd, const ZRegister& zn, int shift) 10031b8021494Sopenharmony_ci 10032b8021494Sopenharmony_ci 10033b8021494Sopenharmony_ci### SMAX ### 10034b8021494Sopenharmony_ci 10035b8021494Sopenharmony_ciSigned maximum vectors (predicated). 10036b8021494Sopenharmony_ci 10037b8021494Sopenharmony_ci void smax(const ZRegister& zd, 10038b8021494Sopenharmony_ci const PRegisterM& pg, 10039b8021494Sopenharmony_ci const ZRegister& zn, 10040b8021494Sopenharmony_ci const ZRegister& zm) 10041b8021494Sopenharmony_ci 10042b8021494Sopenharmony_ci 10043b8021494Sopenharmony_ci### SMAX ### 10044b8021494Sopenharmony_ci 10045b8021494Sopenharmony_ciSigned maximum with immediate (unpredicated). 10046b8021494Sopenharmony_ci 10047b8021494Sopenharmony_ci void smax(const ZRegister& zd, const ZRegister& zn, int imm8) 10048b8021494Sopenharmony_ci 10049b8021494Sopenharmony_ci 10050b8021494Sopenharmony_ci### SMAXP ### 10051b8021494Sopenharmony_ci 10052b8021494Sopenharmony_ciSigned maximum pairwise. 10053b8021494Sopenharmony_ci 10054b8021494Sopenharmony_ci void smaxp(const ZRegister& zd, 10055b8021494Sopenharmony_ci const PRegisterM& pg, 10056b8021494Sopenharmony_ci const ZRegister& zn, 10057b8021494Sopenharmony_ci const ZRegister& zm) 10058b8021494Sopenharmony_ci 10059b8021494Sopenharmony_ci 10060b8021494Sopenharmony_ci### SMAXV ### 10061b8021494Sopenharmony_ci 10062b8021494Sopenharmony_ciSigned maximum reduction to scalar. 10063b8021494Sopenharmony_ci 10064b8021494Sopenharmony_ci void smaxv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 10065b8021494Sopenharmony_ci 10066b8021494Sopenharmony_ci 10067b8021494Sopenharmony_ci### SMIN ### 10068b8021494Sopenharmony_ci 10069b8021494Sopenharmony_ciSigned minimum vectors (predicated). 10070b8021494Sopenharmony_ci 10071b8021494Sopenharmony_ci void smin(const ZRegister& zd, 10072b8021494Sopenharmony_ci const PRegisterM& pg, 10073b8021494Sopenharmony_ci const ZRegister& zn, 10074b8021494Sopenharmony_ci const ZRegister& zm) 10075b8021494Sopenharmony_ci 10076b8021494Sopenharmony_ci 10077b8021494Sopenharmony_ci### SMIN ### 10078b8021494Sopenharmony_ci 10079b8021494Sopenharmony_ciSigned minimum with immediate (unpredicated). 10080b8021494Sopenharmony_ci 10081b8021494Sopenharmony_ci void smin(const ZRegister& zd, const ZRegister& zn, int imm8) 10082b8021494Sopenharmony_ci 10083b8021494Sopenharmony_ci 10084b8021494Sopenharmony_ci### SMINP ### 10085b8021494Sopenharmony_ci 10086b8021494Sopenharmony_ciSigned minimum pairwise. 10087b8021494Sopenharmony_ci 10088b8021494Sopenharmony_ci void sminp(const ZRegister& zd, 10089b8021494Sopenharmony_ci const PRegisterM& pg, 10090b8021494Sopenharmony_ci const ZRegister& zn, 10091b8021494Sopenharmony_ci const ZRegister& zm) 10092b8021494Sopenharmony_ci 10093b8021494Sopenharmony_ci 10094b8021494Sopenharmony_ci### SMINV ### 10095b8021494Sopenharmony_ci 10096b8021494Sopenharmony_ciSigned minimum reduction to scalar. 10097b8021494Sopenharmony_ci 10098b8021494Sopenharmony_ci void sminv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 10099b8021494Sopenharmony_ci 10100b8021494Sopenharmony_ci 10101b8021494Sopenharmony_ci### SMLALB ### 10102b8021494Sopenharmony_ci 10103b8021494Sopenharmony_ciSigned multiply-add long to accumulator (bottom). 10104b8021494Sopenharmony_ci 10105b8021494Sopenharmony_ci void smlalb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 10106b8021494Sopenharmony_ci 10107b8021494Sopenharmony_ci 10108b8021494Sopenharmony_ci### SMLALB ### 10109b8021494Sopenharmony_ci 10110b8021494Sopenharmony_ciSigned multiply-add long to accumulator (bottom, indexed). 10111b8021494Sopenharmony_ci 10112b8021494Sopenharmony_ci void smlalb(const ZRegister& zda, 10113b8021494Sopenharmony_ci const ZRegister& zn, 10114b8021494Sopenharmony_ci const ZRegister& zm, 10115b8021494Sopenharmony_ci int index) 10116b8021494Sopenharmony_ci 10117b8021494Sopenharmony_ci 10118b8021494Sopenharmony_ci### SMLALT ### 10119b8021494Sopenharmony_ci 10120b8021494Sopenharmony_ciSigned multiply-add long to accumulator (top). 10121b8021494Sopenharmony_ci 10122b8021494Sopenharmony_ci void smlalt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 10123b8021494Sopenharmony_ci 10124b8021494Sopenharmony_ci 10125b8021494Sopenharmony_ci### SMLALT ### 10126b8021494Sopenharmony_ci 10127b8021494Sopenharmony_ciSigned multiply-add long to accumulator (top, indexed). 10128b8021494Sopenharmony_ci 10129b8021494Sopenharmony_ci void smlalt(const ZRegister& zda, 10130b8021494Sopenharmony_ci const ZRegister& zn, 10131b8021494Sopenharmony_ci const ZRegister& zm, 10132b8021494Sopenharmony_ci int index) 10133b8021494Sopenharmony_ci 10134b8021494Sopenharmony_ci 10135b8021494Sopenharmony_ci### SMLSLB ### 10136b8021494Sopenharmony_ci 10137b8021494Sopenharmony_ciSigned multiply-subtract long from accumulator (bottom). 10138b8021494Sopenharmony_ci 10139b8021494Sopenharmony_ci void smlslb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 10140b8021494Sopenharmony_ci 10141b8021494Sopenharmony_ci 10142b8021494Sopenharmony_ci### SMLSLB ### 10143b8021494Sopenharmony_ci 10144b8021494Sopenharmony_ciSigned multiply-subtract long from accumulator (bottom, indexed). 10145b8021494Sopenharmony_ci 10146b8021494Sopenharmony_ci void smlslb(const ZRegister& zda, 10147b8021494Sopenharmony_ci const ZRegister& zn, 10148b8021494Sopenharmony_ci const ZRegister& zm, 10149b8021494Sopenharmony_ci int index) 10150b8021494Sopenharmony_ci 10151b8021494Sopenharmony_ci 10152b8021494Sopenharmony_ci### SMLSLT ### 10153b8021494Sopenharmony_ci 10154b8021494Sopenharmony_ciSigned multiply-subtract long from accumulator (top). 10155b8021494Sopenharmony_ci 10156b8021494Sopenharmony_ci void smlslt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 10157b8021494Sopenharmony_ci 10158b8021494Sopenharmony_ci 10159b8021494Sopenharmony_ci### SMLSLT ### 10160b8021494Sopenharmony_ci 10161b8021494Sopenharmony_ciSigned multiply-subtract long from accumulator (top, indexed). 10162b8021494Sopenharmony_ci 10163b8021494Sopenharmony_ci void smlslt(const ZRegister& zda, 10164b8021494Sopenharmony_ci const ZRegister& zn, 10165b8021494Sopenharmony_ci const ZRegister& zm, 10166b8021494Sopenharmony_ci int index) 10167b8021494Sopenharmony_ci 10168b8021494Sopenharmony_ci 10169b8021494Sopenharmony_ci### SMMLA ### 10170b8021494Sopenharmony_ci 10171b8021494Sopenharmony_ciSigned integer matrix multiply-accumulate. 10172b8021494Sopenharmony_ci 10173b8021494Sopenharmony_ci void smmla(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 10174b8021494Sopenharmony_ci 10175b8021494Sopenharmony_ci 10176b8021494Sopenharmony_ci### SMULH ### 10177b8021494Sopenharmony_ci 10178b8021494Sopenharmony_ciSigned multiply returning high half (predicated). 10179b8021494Sopenharmony_ci 10180b8021494Sopenharmony_ci void smulh(const ZRegister& zd, 10181b8021494Sopenharmony_ci const PRegisterM& pg, 10182b8021494Sopenharmony_ci const ZRegister& zn, 10183b8021494Sopenharmony_ci const ZRegister& zm) 10184b8021494Sopenharmony_ci 10185b8021494Sopenharmony_ci 10186b8021494Sopenharmony_ci### SMULH ### 10187b8021494Sopenharmony_ci 10188b8021494Sopenharmony_ciSigned multiply returning high half (unpredicated). 10189b8021494Sopenharmony_ci 10190b8021494Sopenharmony_ci void smulh(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10191b8021494Sopenharmony_ci 10192b8021494Sopenharmony_ci 10193b8021494Sopenharmony_ci### SMULLB ### 10194b8021494Sopenharmony_ci 10195b8021494Sopenharmony_ciSigned multiply long (bottom). 10196b8021494Sopenharmony_ci 10197b8021494Sopenharmony_ci void smullb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10198b8021494Sopenharmony_ci 10199b8021494Sopenharmony_ci 10200b8021494Sopenharmony_ci### SMULLB ### 10201b8021494Sopenharmony_ci 10202b8021494Sopenharmony_ciSigned multiply long (bottom, indexed). 10203b8021494Sopenharmony_ci 10204b8021494Sopenharmony_ci void smullb(const ZRegister& zd, 10205b8021494Sopenharmony_ci const ZRegister& zn, 10206b8021494Sopenharmony_ci const ZRegister& zm, 10207b8021494Sopenharmony_ci int index) 10208b8021494Sopenharmony_ci 10209b8021494Sopenharmony_ci 10210b8021494Sopenharmony_ci### SMULLT ### 10211b8021494Sopenharmony_ci 10212b8021494Sopenharmony_ciSigned multiply long (top). 10213b8021494Sopenharmony_ci 10214b8021494Sopenharmony_ci void smullt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10215b8021494Sopenharmony_ci 10216b8021494Sopenharmony_ci 10217b8021494Sopenharmony_ci### SMULLT ### 10218b8021494Sopenharmony_ci 10219b8021494Sopenharmony_ciSigned multiply long (top, indexed). 10220b8021494Sopenharmony_ci 10221b8021494Sopenharmony_ci void smullt(const ZRegister& zd, 10222b8021494Sopenharmony_ci const ZRegister& zn, 10223b8021494Sopenharmony_ci const ZRegister& zm, 10224b8021494Sopenharmony_ci int index) 10225b8021494Sopenharmony_ci 10226b8021494Sopenharmony_ci 10227b8021494Sopenharmony_ci### SPLICE ### 10228b8021494Sopenharmony_ci 10229b8021494Sopenharmony_ciSplice two vectors under predicate control. 10230b8021494Sopenharmony_ci 10231b8021494Sopenharmony_ci void splice(const ZRegister& zd, 10232b8021494Sopenharmony_ci const PRegister& pg, 10233b8021494Sopenharmony_ci const ZRegister& zn, 10234b8021494Sopenharmony_ci const ZRegister& zm) 10235b8021494Sopenharmony_ci 10236b8021494Sopenharmony_ci 10237b8021494Sopenharmony_ci### SQABS ### 10238b8021494Sopenharmony_ci 10239b8021494Sopenharmony_ciSigned saturating absolute value. 10240b8021494Sopenharmony_ci 10241b8021494Sopenharmony_ci void sqabs(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 10242b8021494Sopenharmony_ci 10243b8021494Sopenharmony_ci 10244b8021494Sopenharmony_ci### SQADD ### 10245b8021494Sopenharmony_ci 10246b8021494Sopenharmony_ciSigned saturating add immediate (unpredicated). 10247b8021494Sopenharmony_ci 10248b8021494Sopenharmony_ci void sqadd(const ZRegister& zd, 10249b8021494Sopenharmony_ci const ZRegister& zn, 10250b8021494Sopenharmony_ci int imm8, 10251b8021494Sopenharmony_ci int shift = -1) 10252b8021494Sopenharmony_ci 10253b8021494Sopenharmony_ci 10254b8021494Sopenharmony_ci### SQADD ### 10255b8021494Sopenharmony_ci 10256b8021494Sopenharmony_ciSigned saturating add vectors (unpredicated). 10257b8021494Sopenharmony_ci 10258b8021494Sopenharmony_ci void sqadd(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10259b8021494Sopenharmony_ci 10260b8021494Sopenharmony_ci 10261b8021494Sopenharmony_ci### SQADD ### 10262b8021494Sopenharmony_ci 10263b8021494Sopenharmony_ciSigned saturating addition (predicated). 10264b8021494Sopenharmony_ci 10265b8021494Sopenharmony_ci void sqadd(const ZRegister& zd, 10266b8021494Sopenharmony_ci const PRegisterM& pg, 10267b8021494Sopenharmony_ci const ZRegister& zn, 10268b8021494Sopenharmony_ci const ZRegister& zm) 10269b8021494Sopenharmony_ci 10270b8021494Sopenharmony_ci 10271b8021494Sopenharmony_ci### SQCADD ### 10272b8021494Sopenharmony_ci 10273b8021494Sopenharmony_ciSaturating complex integer add with rotate. 10274b8021494Sopenharmony_ci 10275b8021494Sopenharmony_ci void sqcadd(const ZRegister& zd, 10276b8021494Sopenharmony_ci const ZRegister& zn, 10277b8021494Sopenharmony_ci const ZRegister& zm, 10278b8021494Sopenharmony_ci int rot) 10279b8021494Sopenharmony_ci 10280b8021494Sopenharmony_ci 10281b8021494Sopenharmony_ci### SQDECB ### 10282b8021494Sopenharmony_ci 10283b8021494Sopenharmony_ciSigned saturating decrement scalar by multiple of 8-bit predicate constraint element count. 10284b8021494Sopenharmony_ci 10285b8021494Sopenharmony_ci void sqdecb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 10286b8021494Sopenharmony_ci 10287b8021494Sopenharmony_ci 10288b8021494Sopenharmony_ci### SQDECB ### 10289b8021494Sopenharmony_ci 10290b8021494Sopenharmony_ciSigned saturating decrement scalar by multiple of 8-bit predicate constraint element count. 10291b8021494Sopenharmony_ci 10292b8021494Sopenharmony_ci void sqdecb(const Register& xd, 10293b8021494Sopenharmony_ci const Register& wn, 10294b8021494Sopenharmony_ci int pattern, 10295b8021494Sopenharmony_ci int multiplier) 10296b8021494Sopenharmony_ci 10297b8021494Sopenharmony_ci 10298b8021494Sopenharmony_ci### SQDECD ### 10299b8021494Sopenharmony_ci 10300b8021494Sopenharmony_ciSigned saturating decrement scalar by multiple of 64-bit predicate constraint element count. 10301b8021494Sopenharmony_ci 10302b8021494Sopenharmony_ci void sqdecd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 10303b8021494Sopenharmony_ci 10304b8021494Sopenharmony_ci 10305b8021494Sopenharmony_ci### SQDECD ### 10306b8021494Sopenharmony_ci 10307b8021494Sopenharmony_ciSigned saturating decrement scalar by multiple of 64-bit predicate constraint element count. 10308b8021494Sopenharmony_ci 10309b8021494Sopenharmony_ci void sqdecd(const Register& xd, 10310b8021494Sopenharmony_ci const Register& wn, 10311b8021494Sopenharmony_ci int pattern = SVE_ALL, 10312b8021494Sopenharmony_ci int multiplier = 1) 10313b8021494Sopenharmony_ci 10314b8021494Sopenharmony_ci 10315b8021494Sopenharmony_ci### SQDECD ### 10316b8021494Sopenharmony_ci 10317b8021494Sopenharmony_ciSigned saturating decrement vector by multiple of 64-bit predicate constraint element count. 10318b8021494Sopenharmony_ci 10319b8021494Sopenharmony_ci void sqdecd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 10320b8021494Sopenharmony_ci 10321b8021494Sopenharmony_ci 10322b8021494Sopenharmony_ci### SQDECH ### 10323b8021494Sopenharmony_ci 10324b8021494Sopenharmony_ciSigned saturating decrement scalar by multiple of 16-bit predicate constraint element count. 10325b8021494Sopenharmony_ci 10326b8021494Sopenharmony_ci void sqdech(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 10327b8021494Sopenharmony_ci 10328b8021494Sopenharmony_ci 10329b8021494Sopenharmony_ci### SQDECH ### 10330b8021494Sopenharmony_ci 10331b8021494Sopenharmony_ciSigned saturating decrement scalar by multiple of 16-bit predicate constraint element count. 10332b8021494Sopenharmony_ci 10333b8021494Sopenharmony_ci void sqdech(const Register& xd, 10334b8021494Sopenharmony_ci const Register& wn, 10335b8021494Sopenharmony_ci int pattern = SVE_ALL, 10336b8021494Sopenharmony_ci int multiplier = 1) 10337b8021494Sopenharmony_ci 10338b8021494Sopenharmony_ci 10339b8021494Sopenharmony_ci### SQDECH ### 10340b8021494Sopenharmony_ci 10341b8021494Sopenharmony_ciSigned saturating decrement vector by multiple of 16-bit predicate constraint element count. 10342b8021494Sopenharmony_ci 10343b8021494Sopenharmony_ci void sqdech(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 10344b8021494Sopenharmony_ci 10345b8021494Sopenharmony_ci 10346b8021494Sopenharmony_ci### SQDECP ### 10347b8021494Sopenharmony_ci 10348b8021494Sopenharmony_ciSigned saturating decrement scalar by active predicate element count. 10349b8021494Sopenharmony_ci 10350b8021494Sopenharmony_ci void sqdecp(const Register& xd, 10351b8021494Sopenharmony_ci const PRegisterWithLaneSize& pg, 10352b8021494Sopenharmony_ci const Register& wn) 10353b8021494Sopenharmony_ci 10354b8021494Sopenharmony_ci 10355b8021494Sopenharmony_ci### SQDECP ### 10356b8021494Sopenharmony_ci 10357b8021494Sopenharmony_ciSigned saturating decrement scalar by active predicate element count. 10358b8021494Sopenharmony_ci 10359b8021494Sopenharmony_ci void sqdecp(const Register& xdn, const PRegisterWithLaneSize& pg) 10360b8021494Sopenharmony_ci 10361b8021494Sopenharmony_ci 10362b8021494Sopenharmony_ci### SQDECP ### 10363b8021494Sopenharmony_ci 10364b8021494Sopenharmony_ciSigned saturating decrement vector by active predicate element count. 10365b8021494Sopenharmony_ci 10366b8021494Sopenharmony_ci void sqdecp(const ZRegister& zdn, const PRegister& pg) 10367b8021494Sopenharmony_ci 10368b8021494Sopenharmony_ci 10369b8021494Sopenharmony_ci### SQDECW ### 10370b8021494Sopenharmony_ci 10371b8021494Sopenharmony_ciSigned saturating decrement scalar by multiple of 32-bit predicate constraint element count. 10372b8021494Sopenharmony_ci 10373b8021494Sopenharmony_ci void sqdecw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 10374b8021494Sopenharmony_ci 10375b8021494Sopenharmony_ci 10376b8021494Sopenharmony_ci### SQDECW ### 10377b8021494Sopenharmony_ci 10378b8021494Sopenharmony_ciSigned saturating decrement scalar by multiple of 32-bit predicate constraint element count. 10379b8021494Sopenharmony_ci 10380b8021494Sopenharmony_ci void sqdecw(const Register& xd, 10381b8021494Sopenharmony_ci const Register& wn, 10382b8021494Sopenharmony_ci int pattern = SVE_ALL, 10383b8021494Sopenharmony_ci int multiplier = 1) 10384b8021494Sopenharmony_ci 10385b8021494Sopenharmony_ci 10386b8021494Sopenharmony_ci### SQDECW ### 10387b8021494Sopenharmony_ci 10388b8021494Sopenharmony_ciSigned saturating decrement vector by multiple of 32-bit predicate constraint element count. 10389b8021494Sopenharmony_ci 10390b8021494Sopenharmony_ci void sqdecw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 10391b8021494Sopenharmony_ci 10392b8021494Sopenharmony_ci 10393b8021494Sopenharmony_ci### SQDMLALB ### 10394b8021494Sopenharmony_ci 10395b8021494Sopenharmony_ciSigned saturating doubling multiply-add long to accumulator (bottom). 10396b8021494Sopenharmony_ci 10397b8021494Sopenharmony_ci void sqdmlalb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 10398b8021494Sopenharmony_ci 10399b8021494Sopenharmony_ci 10400b8021494Sopenharmony_ci### SQDMLALB ### 10401b8021494Sopenharmony_ci 10402b8021494Sopenharmony_ciSigned saturating doubling multiply-add long to accumulator (bottom, indexed). 10403b8021494Sopenharmony_ci 10404b8021494Sopenharmony_ci void sqdmlalb(const ZRegister& zda, 10405b8021494Sopenharmony_ci const ZRegister& zn, 10406b8021494Sopenharmony_ci const ZRegister& zm, 10407b8021494Sopenharmony_ci int index) 10408b8021494Sopenharmony_ci 10409b8021494Sopenharmony_ci 10410b8021494Sopenharmony_ci### SQDMLALBT ### 10411b8021494Sopenharmony_ci 10412b8021494Sopenharmony_ciSigned saturating doubling multiply-add long to accumulator (bottom x top). 10413b8021494Sopenharmony_ci 10414b8021494Sopenharmony_ci void sqdmlalbt(const ZRegister& zda, 10415b8021494Sopenharmony_ci const ZRegister& zn, 10416b8021494Sopenharmony_ci const ZRegister& zm) 10417b8021494Sopenharmony_ci 10418b8021494Sopenharmony_ci 10419b8021494Sopenharmony_ci### SQDMLALT ### 10420b8021494Sopenharmony_ci 10421b8021494Sopenharmony_ciSigned saturating doubling multiply-add long to accumulator (top). 10422b8021494Sopenharmony_ci 10423b8021494Sopenharmony_ci void sqdmlalt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 10424b8021494Sopenharmony_ci 10425b8021494Sopenharmony_ci 10426b8021494Sopenharmony_ci### SQDMLALT ### 10427b8021494Sopenharmony_ci 10428b8021494Sopenharmony_ciSigned saturating doubling multiply-add long to accumulator (top, indexed). 10429b8021494Sopenharmony_ci 10430b8021494Sopenharmony_ci void sqdmlalt(const ZRegister& zda, 10431b8021494Sopenharmony_ci const ZRegister& zn, 10432b8021494Sopenharmony_ci const ZRegister& zm, 10433b8021494Sopenharmony_ci int index) 10434b8021494Sopenharmony_ci 10435b8021494Sopenharmony_ci 10436b8021494Sopenharmony_ci### SQDMLSLB ### 10437b8021494Sopenharmony_ci 10438b8021494Sopenharmony_ciSigned saturating doubling multiply-subtract long from accumulator (bottom). 10439b8021494Sopenharmony_ci 10440b8021494Sopenharmony_ci void sqdmlslb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 10441b8021494Sopenharmony_ci 10442b8021494Sopenharmony_ci 10443b8021494Sopenharmony_ci### SQDMLSLB ### 10444b8021494Sopenharmony_ci 10445b8021494Sopenharmony_ciSigned saturating doubling multiply-subtract long from accumulator (bottom, indexed). 10446b8021494Sopenharmony_ci 10447b8021494Sopenharmony_ci void sqdmlslb(const ZRegister& zda, 10448b8021494Sopenharmony_ci const ZRegister& zn, 10449b8021494Sopenharmony_ci const ZRegister& zm, 10450b8021494Sopenharmony_ci int index) 10451b8021494Sopenharmony_ci 10452b8021494Sopenharmony_ci 10453b8021494Sopenharmony_ci### SQDMLSLBT ### 10454b8021494Sopenharmony_ci 10455b8021494Sopenharmony_ciSigned saturating doubling multiply-subtract long from accumulator (bottom x top). 10456b8021494Sopenharmony_ci 10457b8021494Sopenharmony_ci void sqdmlslbt(const ZRegister& zda, 10458b8021494Sopenharmony_ci const ZRegister& zn, 10459b8021494Sopenharmony_ci const ZRegister& zm) 10460b8021494Sopenharmony_ci 10461b8021494Sopenharmony_ci 10462b8021494Sopenharmony_ci### SQDMLSLT ### 10463b8021494Sopenharmony_ci 10464b8021494Sopenharmony_ciSigned saturating doubling multiply-subtract long from accumulator (top). 10465b8021494Sopenharmony_ci 10466b8021494Sopenharmony_ci void sqdmlslt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 10467b8021494Sopenharmony_ci 10468b8021494Sopenharmony_ci 10469b8021494Sopenharmony_ci### SQDMLSLT ### 10470b8021494Sopenharmony_ci 10471b8021494Sopenharmony_ciSigned saturating doubling multiply-subtract long from accumulator (top, indexed). 10472b8021494Sopenharmony_ci 10473b8021494Sopenharmony_ci void sqdmlslt(const ZRegister& zda, 10474b8021494Sopenharmony_ci const ZRegister& zn, 10475b8021494Sopenharmony_ci const ZRegister& zm, 10476b8021494Sopenharmony_ci int index) 10477b8021494Sopenharmony_ci 10478b8021494Sopenharmony_ci 10479b8021494Sopenharmony_ci### SQDMULH ### 10480b8021494Sopenharmony_ci 10481b8021494Sopenharmony_ciSigned saturating doubling multiply high (indexed). 10482b8021494Sopenharmony_ci 10483b8021494Sopenharmony_ci void sqdmulh(const ZRegister& zd, 10484b8021494Sopenharmony_ci const ZRegister& zn, 10485b8021494Sopenharmony_ci const ZRegister& zm, 10486b8021494Sopenharmony_ci int index) 10487b8021494Sopenharmony_ci 10488b8021494Sopenharmony_ci 10489b8021494Sopenharmony_ci### SQDMULH ### 10490b8021494Sopenharmony_ci 10491b8021494Sopenharmony_ciSigned saturating doubling multiply high (unpredicated). 10492b8021494Sopenharmony_ci 10493b8021494Sopenharmony_ci void sqdmulh(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10494b8021494Sopenharmony_ci 10495b8021494Sopenharmony_ci 10496b8021494Sopenharmony_ci### SQDMULLB ### 10497b8021494Sopenharmony_ci 10498b8021494Sopenharmony_ciSigned saturating doubling multiply long (bottom). 10499b8021494Sopenharmony_ci 10500b8021494Sopenharmony_ci void sqdmullb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10501b8021494Sopenharmony_ci 10502b8021494Sopenharmony_ci 10503b8021494Sopenharmony_ci### SQDMULLB ### 10504b8021494Sopenharmony_ci 10505b8021494Sopenharmony_ciSigned saturating doubling multiply long (bottom, indexed). 10506b8021494Sopenharmony_ci 10507b8021494Sopenharmony_ci void sqdmullb(const ZRegister& zd, 10508b8021494Sopenharmony_ci const ZRegister& zn, 10509b8021494Sopenharmony_ci const ZRegister& zm, 10510b8021494Sopenharmony_ci int index) 10511b8021494Sopenharmony_ci 10512b8021494Sopenharmony_ci 10513b8021494Sopenharmony_ci### SQDMULLT ### 10514b8021494Sopenharmony_ci 10515b8021494Sopenharmony_ciSigned saturating doubling multiply long (top). 10516b8021494Sopenharmony_ci 10517b8021494Sopenharmony_ci void sqdmullt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10518b8021494Sopenharmony_ci 10519b8021494Sopenharmony_ci 10520b8021494Sopenharmony_ci### SQDMULLT ### 10521b8021494Sopenharmony_ci 10522b8021494Sopenharmony_ciSigned saturating doubling multiply long (top, indexed). 10523b8021494Sopenharmony_ci 10524b8021494Sopenharmony_ci void sqdmullt(const ZRegister& zd, 10525b8021494Sopenharmony_ci const ZRegister& zn, 10526b8021494Sopenharmony_ci const ZRegister& zm, 10527b8021494Sopenharmony_ci int index) 10528b8021494Sopenharmony_ci 10529b8021494Sopenharmony_ci 10530b8021494Sopenharmony_ci### SQINCB ### 10531b8021494Sopenharmony_ci 10532b8021494Sopenharmony_ciSigned saturating increment scalar by multiple of 8-bit predicate constraint element count. 10533b8021494Sopenharmony_ci 10534b8021494Sopenharmony_ci void sqincb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 10535b8021494Sopenharmony_ci 10536b8021494Sopenharmony_ci 10537b8021494Sopenharmony_ci### SQINCB ### 10538b8021494Sopenharmony_ci 10539b8021494Sopenharmony_ciSigned saturating increment scalar by multiple of 8-bit predicate constraint element count. 10540b8021494Sopenharmony_ci 10541b8021494Sopenharmony_ci void sqincb(const Register& xd, 10542b8021494Sopenharmony_ci const Register& wn, 10543b8021494Sopenharmony_ci int pattern = SVE_ALL, 10544b8021494Sopenharmony_ci int multiplier = 1) 10545b8021494Sopenharmony_ci 10546b8021494Sopenharmony_ci 10547b8021494Sopenharmony_ci### SQINCD ### 10548b8021494Sopenharmony_ci 10549b8021494Sopenharmony_ciSigned saturating increment scalar by multiple of 64-bit predicate constraint element count. 10550b8021494Sopenharmony_ci 10551b8021494Sopenharmony_ci void sqincd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 10552b8021494Sopenharmony_ci 10553b8021494Sopenharmony_ci 10554b8021494Sopenharmony_ci### SQINCD ### 10555b8021494Sopenharmony_ci 10556b8021494Sopenharmony_ciSigned saturating increment scalar by multiple of 64-bit predicate constraint element count. 10557b8021494Sopenharmony_ci 10558b8021494Sopenharmony_ci void sqincd(const Register& xd, 10559b8021494Sopenharmony_ci const Register& wn, 10560b8021494Sopenharmony_ci int pattern, 10561b8021494Sopenharmony_ci int multiplier) 10562b8021494Sopenharmony_ci 10563b8021494Sopenharmony_ci 10564b8021494Sopenharmony_ci### SQINCD ### 10565b8021494Sopenharmony_ci 10566b8021494Sopenharmony_ciSigned saturating increment vector by multiple of 64-bit predicate constraint element count. 10567b8021494Sopenharmony_ci 10568b8021494Sopenharmony_ci void sqincd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 10569b8021494Sopenharmony_ci 10570b8021494Sopenharmony_ci 10571b8021494Sopenharmony_ci### SQINCH ### 10572b8021494Sopenharmony_ci 10573b8021494Sopenharmony_ciSigned saturating increment scalar by multiple of 16-bit predicate constraint element count. 10574b8021494Sopenharmony_ci 10575b8021494Sopenharmony_ci void sqinch(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 10576b8021494Sopenharmony_ci 10577b8021494Sopenharmony_ci 10578b8021494Sopenharmony_ci### SQINCH ### 10579b8021494Sopenharmony_ci 10580b8021494Sopenharmony_ciSigned saturating increment scalar by multiple of 16-bit predicate constraint element count. 10581b8021494Sopenharmony_ci 10582b8021494Sopenharmony_ci void sqinch(const Register& xd, 10583b8021494Sopenharmony_ci const Register& wn, 10584b8021494Sopenharmony_ci int pattern = SVE_ALL, 10585b8021494Sopenharmony_ci int multiplier = 1) 10586b8021494Sopenharmony_ci 10587b8021494Sopenharmony_ci 10588b8021494Sopenharmony_ci### SQINCH ### 10589b8021494Sopenharmony_ci 10590b8021494Sopenharmony_ciSigned saturating increment vector by multiple of 16-bit predicate constraint element count. 10591b8021494Sopenharmony_ci 10592b8021494Sopenharmony_ci void sqinch(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 10593b8021494Sopenharmony_ci 10594b8021494Sopenharmony_ci 10595b8021494Sopenharmony_ci### SQINCP ### 10596b8021494Sopenharmony_ci 10597b8021494Sopenharmony_ciSigned saturating increment scalar by active predicate element count. 10598b8021494Sopenharmony_ci 10599b8021494Sopenharmony_ci void sqincp(const Register& xd, 10600b8021494Sopenharmony_ci const PRegisterWithLaneSize& pg, 10601b8021494Sopenharmony_ci const Register& wn) 10602b8021494Sopenharmony_ci 10603b8021494Sopenharmony_ci 10604b8021494Sopenharmony_ci### SQINCP ### 10605b8021494Sopenharmony_ci 10606b8021494Sopenharmony_ciSigned saturating increment scalar by active predicate element count. 10607b8021494Sopenharmony_ci 10608b8021494Sopenharmony_ci void sqincp(const Register& xdn, const PRegisterWithLaneSize& pg) 10609b8021494Sopenharmony_ci 10610b8021494Sopenharmony_ci 10611b8021494Sopenharmony_ci### SQINCP ### 10612b8021494Sopenharmony_ci 10613b8021494Sopenharmony_ciSigned saturating increment vector by active predicate element count. 10614b8021494Sopenharmony_ci 10615b8021494Sopenharmony_ci void sqincp(const ZRegister& zdn, const PRegister& pg) 10616b8021494Sopenharmony_ci 10617b8021494Sopenharmony_ci 10618b8021494Sopenharmony_ci### SQINCW ### 10619b8021494Sopenharmony_ci 10620b8021494Sopenharmony_ciSigned saturating increment scalar by multiple of 32-bit predicate constraint element count. 10621b8021494Sopenharmony_ci 10622b8021494Sopenharmony_ci void sqincw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 10623b8021494Sopenharmony_ci 10624b8021494Sopenharmony_ci 10625b8021494Sopenharmony_ci### SQINCW ### 10626b8021494Sopenharmony_ci 10627b8021494Sopenharmony_ciSigned saturating increment scalar by multiple of 32-bit predicate constraint element count. 10628b8021494Sopenharmony_ci 10629b8021494Sopenharmony_ci void sqincw(const Register& xd, 10630b8021494Sopenharmony_ci const Register& wn, 10631b8021494Sopenharmony_ci int pattern = SVE_ALL, 10632b8021494Sopenharmony_ci int multiplier = 1) 10633b8021494Sopenharmony_ci 10634b8021494Sopenharmony_ci 10635b8021494Sopenharmony_ci### SQINCW ### 10636b8021494Sopenharmony_ci 10637b8021494Sopenharmony_ciSigned saturating increment vector by multiple of 32-bit predicate constraint element count. 10638b8021494Sopenharmony_ci 10639b8021494Sopenharmony_ci void sqincw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 10640b8021494Sopenharmony_ci 10641b8021494Sopenharmony_ci 10642b8021494Sopenharmony_ci### SQNEG ### 10643b8021494Sopenharmony_ci 10644b8021494Sopenharmony_ciSigned saturating negate. 10645b8021494Sopenharmony_ci 10646b8021494Sopenharmony_ci void sqneg(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 10647b8021494Sopenharmony_ci 10648b8021494Sopenharmony_ci 10649b8021494Sopenharmony_ci### SQRDCMLAH ### 10650b8021494Sopenharmony_ci 10651b8021494Sopenharmony_ciSaturating rounding doubling complex integer multiply-add high with rotate (indexed). 10652b8021494Sopenharmony_ci 10653b8021494Sopenharmony_ci void sqrdcmlah(const ZRegister& zda, 10654b8021494Sopenharmony_ci const ZRegister& zn, 10655b8021494Sopenharmony_ci const ZRegister& zm, 10656b8021494Sopenharmony_ci int index, 10657b8021494Sopenharmony_ci int rot) 10658b8021494Sopenharmony_ci 10659b8021494Sopenharmony_ci 10660b8021494Sopenharmony_ci### SQRDCMLAH ### 10661b8021494Sopenharmony_ci 10662b8021494Sopenharmony_ciSaturating rounding doubling complex integer multiply-add high with rotate. 10663b8021494Sopenharmony_ci 10664b8021494Sopenharmony_ci void sqrdcmlah(const ZRegister& zda, 10665b8021494Sopenharmony_ci const ZRegister& zn, 10666b8021494Sopenharmony_ci const ZRegister& zm, 10667b8021494Sopenharmony_ci int rot) 10668b8021494Sopenharmony_ci 10669b8021494Sopenharmony_ci 10670b8021494Sopenharmony_ci### SQRDMLAH ### 10671b8021494Sopenharmony_ci 10672b8021494Sopenharmony_ciSigned saturating rounding doubling multiply-add high to accumulator (indexed). 10673b8021494Sopenharmony_ci 10674b8021494Sopenharmony_ci void sqrdmlah(const ZRegister& zda, 10675b8021494Sopenharmony_ci const ZRegister& zn, 10676b8021494Sopenharmony_ci const ZRegister& zm, 10677b8021494Sopenharmony_ci int index) 10678b8021494Sopenharmony_ci 10679b8021494Sopenharmony_ci 10680b8021494Sopenharmony_ci### SQRDMLAH ### 10681b8021494Sopenharmony_ci 10682b8021494Sopenharmony_ciSigned saturating rounding doubling multiply-add high to accumulator (unpredicated). 10683b8021494Sopenharmony_ci 10684b8021494Sopenharmony_ci void sqrdmlah(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 10685b8021494Sopenharmony_ci 10686b8021494Sopenharmony_ci 10687b8021494Sopenharmony_ci### SQRDMLSH ### 10688b8021494Sopenharmony_ci 10689b8021494Sopenharmony_ciSigned saturating rounding doubling multiply-subtract high from accumulator (indexed). 10690b8021494Sopenharmony_ci 10691b8021494Sopenharmony_ci void sqrdmlsh(const ZRegister& zda, 10692b8021494Sopenharmony_ci const ZRegister& zn, 10693b8021494Sopenharmony_ci const ZRegister& zm, 10694b8021494Sopenharmony_ci int index) 10695b8021494Sopenharmony_ci 10696b8021494Sopenharmony_ci 10697b8021494Sopenharmony_ci### SQRDMLSH ### 10698b8021494Sopenharmony_ci 10699b8021494Sopenharmony_ciSigned saturating rounding doubling multiply-subtract high from accumulator (unpredicated). 10700b8021494Sopenharmony_ci 10701b8021494Sopenharmony_ci void sqrdmlsh(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 10702b8021494Sopenharmony_ci 10703b8021494Sopenharmony_ci 10704b8021494Sopenharmony_ci### SQRDMULH ### 10705b8021494Sopenharmony_ci 10706b8021494Sopenharmony_ciSigned saturating rounding doubling multiply high (indexed). 10707b8021494Sopenharmony_ci 10708b8021494Sopenharmony_ci void sqrdmulh(const ZRegister& zd, 10709b8021494Sopenharmony_ci const ZRegister& zn, 10710b8021494Sopenharmony_ci const ZRegister& zm, 10711b8021494Sopenharmony_ci int index) 10712b8021494Sopenharmony_ci 10713b8021494Sopenharmony_ci 10714b8021494Sopenharmony_ci### SQRDMULH ### 10715b8021494Sopenharmony_ci 10716b8021494Sopenharmony_ciSigned saturating rounding doubling multiply high (unpredicated). 10717b8021494Sopenharmony_ci 10718b8021494Sopenharmony_ci void sqrdmulh(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10719b8021494Sopenharmony_ci 10720b8021494Sopenharmony_ci 10721b8021494Sopenharmony_ci### SQRSHL ### 10722b8021494Sopenharmony_ci 10723b8021494Sopenharmony_ciSigned saturating rounding shift left by vector (predicated). 10724b8021494Sopenharmony_ci 10725b8021494Sopenharmony_ci void sqrshl(const ZRegister& zd, 10726b8021494Sopenharmony_ci const PRegisterM& pg, 10727b8021494Sopenharmony_ci const ZRegister& zn, 10728b8021494Sopenharmony_ci const ZRegister& zm) 10729b8021494Sopenharmony_ci 10730b8021494Sopenharmony_ci 10731b8021494Sopenharmony_ci### SQRSHLR ### 10732b8021494Sopenharmony_ci 10733b8021494Sopenharmony_ciSigned saturating rounding shift left reversed vectors (predicated). 10734b8021494Sopenharmony_ci 10735b8021494Sopenharmony_ci void sqrshlr(const ZRegister& zd, 10736b8021494Sopenharmony_ci const PRegisterM& pg, 10737b8021494Sopenharmony_ci const ZRegister& zn, 10738b8021494Sopenharmony_ci const ZRegister& zm) 10739b8021494Sopenharmony_ci 10740b8021494Sopenharmony_ci 10741b8021494Sopenharmony_ci### SQRSHRNB ### 10742b8021494Sopenharmony_ci 10743b8021494Sopenharmony_ciSigned saturating rounding shift right narrow by immediate (bottom). 10744b8021494Sopenharmony_ci 10745b8021494Sopenharmony_ci void sqrshrnb(const ZRegister& zd, const ZRegister& zn, int shift) 10746b8021494Sopenharmony_ci 10747b8021494Sopenharmony_ci 10748b8021494Sopenharmony_ci### SQRSHRNT ### 10749b8021494Sopenharmony_ci 10750b8021494Sopenharmony_ciSigned saturating rounding shift right narrow by immediate (top). 10751b8021494Sopenharmony_ci 10752b8021494Sopenharmony_ci void sqrshrnt(const ZRegister& zd, const ZRegister& zn, int shift) 10753b8021494Sopenharmony_ci 10754b8021494Sopenharmony_ci 10755b8021494Sopenharmony_ci### SQRSHRUNB ### 10756b8021494Sopenharmony_ci 10757b8021494Sopenharmony_ciSigned saturating rounding shift right unsigned narrow by immediate (bottom). 10758b8021494Sopenharmony_ci 10759b8021494Sopenharmony_ci void sqrshrunb(const ZRegister& zd, const ZRegister& zn, int shift) 10760b8021494Sopenharmony_ci 10761b8021494Sopenharmony_ci 10762b8021494Sopenharmony_ci### SQRSHRUNT ### 10763b8021494Sopenharmony_ci 10764b8021494Sopenharmony_ciSigned saturating rounding shift right unsigned narrow by immediate (top). 10765b8021494Sopenharmony_ci 10766b8021494Sopenharmony_ci void sqrshrunt(const ZRegister& zd, const ZRegister& zn, int shift) 10767b8021494Sopenharmony_ci 10768b8021494Sopenharmony_ci 10769b8021494Sopenharmony_ci### SQSHL ### 10770b8021494Sopenharmony_ci 10771b8021494Sopenharmony_ciSigned saturating shift left by immediate. 10772b8021494Sopenharmony_ci 10773b8021494Sopenharmony_ci void sqshl(const ZRegister& zd, 10774b8021494Sopenharmony_ci const PRegisterM& pg, 10775b8021494Sopenharmony_ci const ZRegister& zn, 10776b8021494Sopenharmony_ci int shift) 10777b8021494Sopenharmony_ci 10778b8021494Sopenharmony_ci 10779b8021494Sopenharmony_ci### SQSHL ### 10780b8021494Sopenharmony_ci 10781b8021494Sopenharmony_ciSigned saturating shift left by vector (predicated). 10782b8021494Sopenharmony_ci 10783b8021494Sopenharmony_ci void sqshl(const ZRegister& zd, 10784b8021494Sopenharmony_ci const PRegisterM& pg, 10785b8021494Sopenharmony_ci const ZRegister& zn, 10786b8021494Sopenharmony_ci const ZRegister& zm) 10787b8021494Sopenharmony_ci 10788b8021494Sopenharmony_ci 10789b8021494Sopenharmony_ci### SQSHLR ### 10790b8021494Sopenharmony_ci 10791b8021494Sopenharmony_ciSigned saturating shift left reversed vectors (predicated). 10792b8021494Sopenharmony_ci 10793b8021494Sopenharmony_ci void sqshlr(const ZRegister& zd, 10794b8021494Sopenharmony_ci const PRegisterM& pg, 10795b8021494Sopenharmony_ci const ZRegister& zn, 10796b8021494Sopenharmony_ci const ZRegister& zm) 10797b8021494Sopenharmony_ci 10798b8021494Sopenharmony_ci 10799b8021494Sopenharmony_ci### SQSHLU ### 10800b8021494Sopenharmony_ci 10801b8021494Sopenharmony_ciSigned saturating shift left unsigned by immediate. 10802b8021494Sopenharmony_ci 10803b8021494Sopenharmony_ci void sqshlu(const ZRegister& zd, 10804b8021494Sopenharmony_ci const PRegisterM& pg, 10805b8021494Sopenharmony_ci const ZRegister& zn, 10806b8021494Sopenharmony_ci int shift) 10807b8021494Sopenharmony_ci 10808b8021494Sopenharmony_ci 10809b8021494Sopenharmony_ci### SQSHRNB ### 10810b8021494Sopenharmony_ci 10811b8021494Sopenharmony_ciSigned saturating shift right narrow by immediate (bottom). 10812b8021494Sopenharmony_ci 10813b8021494Sopenharmony_ci void sqshrnb(const ZRegister& zd, const ZRegister& zn, int shift) 10814b8021494Sopenharmony_ci 10815b8021494Sopenharmony_ci 10816b8021494Sopenharmony_ci### SQSHRNT ### 10817b8021494Sopenharmony_ci 10818b8021494Sopenharmony_ciSigned saturating shift right narrow by immediate (top). 10819b8021494Sopenharmony_ci 10820b8021494Sopenharmony_ci void sqshrnt(const ZRegister& zd, const ZRegister& zn, int shift) 10821b8021494Sopenharmony_ci 10822b8021494Sopenharmony_ci 10823b8021494Sopenharmony_ci### SQSHRUNB ### 10824b8021494Sopenharmony_ci 10825b8021494Sopenharmony_ciSigned saturating shift right unsigned narrow by immediate (bottom). 10826b8021494Sopenharmony_ci 10827b8021494Sopenharmony_ci void sqshrunb(const ZRegister& zd, const ZRegister& zn, int shift) 10828b8021494Sopenharmony_ci 10829b8021494Sopenharmony_ci 10830b8021494Sopenharmony_ci### SQSHRUNT ### 10831b8021494Sopenharmony_ci 10832b8021494Sopenharmony_ciSigned saturating shift right unsigned narrow by immediate (top). 10833b8021494Sopenharmony_ci 10834b8021494Sopenharmony_ci void sqshrunt(const ZRegister& zd, const ZRegister& zn, int shift) 10835b8021494Sopenharmony_ci 10836b8021494Sopenharmony_ci 10837b8021494Sopenharmony_ci### SQSUB ### 10838b8021494Sopenharmony_ci 10839b8021494Sopenharmony_ciSigned saturating subtract immediate (unpredicated). 10840b8021494Sopenharmony_ci 10841b8021494Sopenharmony_ci void sqsub(const ZRegister& zd, 10842b8021494Sopenharmony_ci const ZRegister& zn, 10843b8021494Sopenharmony_ci int imm8, 10844b8021494Sopenharmony_ci int shift = -1) 10845b8021494Sopenharmony_ci 10846b8021494Sopenharmony_ci 10847b8021494Sopenharmony_ci### SQSUB ### 10848b8021494Sopenharmony_ci 10849b8021494Sopenharmony_ciSigned saturating subtract vectors (unpredicated). 10850b8021494Sopenharmony_ci 10851b8021494Sopenharmony_ci void sqsub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10852b8021494Sopenharmony_ci 10853b8021494Sopenharmony_ci 10854b8021494Sopenharmony_ci### SQSUB ### 10855b8021494Sopenharmony_ci 10856b8021494Sopenharmony_ciSigned saturating subtraction (predicated). 10857b8021494Sopenharmony_ci 10858b8021494Sopenharmony_ci void sqsub(const ZRegister& zd, 10859b8021494Sopenharmony_ci const PRegisterM& pg, 10860b8021494Sopenharmony_ci const ZRegister& zn, 10861b8021494Sopenharmony_ci const ZRegister& zm) 10862b8021494Sopenharmony_ci 10863b8021494Sopenharmony_ci 10864b8021494Sopenharmony_ci### SQSUBR ### 10865b8021494Sopenharmony_ci 10866b8021494Sopenharmony_ciSigned saturating subtraction reversed vectors (predicated). 10867b8021494Sopenharmony_ci 10868b8021494Sopenharmony_ci void sqsubr(const ZRegister& zd, 10869b8021494Sopenharmony_ci const PRegisterM& pg, 10870b8021494Sopenharmony_ci const ZRegister& zn, 10871b8021494Sopenharmony_ci const ZRegister& zm) 10872b8021494Sopenharmony_ci 10873b8021494Sopenharmony_ci 10874b8021494Sopenharmony_ci### SQXTNB ### 10875b8021494Sopenharmony_ci 10876b8021494Sopenharmony_ciSigned saturating extract narrow (bottom). 10877b8021494Sopenharmony_ci 10878b8021494Sopenharmony_ci void sqxtnb(const ZRegister& zd, const ZRegister& zn) 10879b8021494Sopenharmony_ci 10880b8021494Sopenharmony_ci 10881b8021494Sopenharmony_ci### SQXTNT ### 10882b8021494Sopenharmony_ci 10883b8021494Sopenharmony_ciSigned saturating extract narrow (top). 10884b8021494Sopenharmony_ci 10885b8021494Sopenharmony_ci void sqxtnt(const ZRegister& zd, const ZRegister& zn) 10886b8021494Sopenharmony_ci 10887b8021494Sopenharmony_ci 10888b8021494Sopenharmony_ci### SQXTUNB ### 10889b8021494Sopenharmony_ci 10890b8021494Sopenharmony_ciSigned saturating unsigned extract narrow (bottom). 10891b8021494Sopenharmony_ci 10892b8021494Sopenharmony_ci void sqxtunb(const ZRegister& zd, const ZRegister& zn) 10893b8021494Sopenharmony_ci 10894b8021494Sopenharmony_ci 10895b8021494Sopenharmony_ci### SQXTUNT ### 10896b8021494Sopenharmony_ci 10897b8021494Sopenharmony_ciSigned saturating unsigned extract narrow (top). 10898b8021494Sopenharmony_ci 10899b8021494Sopenharmony_ci void sqxtunt(const ZRegister& zd, const ZRegister& zn) 10900b8021494Sopenharmony_ci 10901b8021494Sopenharmony_ci 10902b8021494Sopenharmony_ci### SRHADD ### 10903b8021494Sopenharmony_ci 10904b8021494Sopenharmony_ciSigned rounding halving addition. 10905b8021494Sopenharmony_ci 10906b8021494Sopenharmony_ci void srhadd(const ZRegister& zd, 10907b8021494Sopenharmony_ci const PRegisterM& pg, 10908b8021494Sopenharmony_ci const ZRegister& zn, 10909b8021494Sopenharmony_ci const ZRegister& zm) 10910b8021494Sopenharmony_ci 10911b8021494Sopenharmony_ci 10912b8021494Sopenharmony_ci### SRI ### 10913b8021494Sopenharmony_ci 10914b8021494Sopenharmony_ciShift right and insert (immediate). 10915b8021494Sopenharmony_ci 10916b8021494Sopenharmony_ci void sri(const ZRegister& zd, const ZRegister& zn, int shift) 10917b8021494Sopenharmony_ci 10918b8021494Sopenharmony_ci 10919b8021494Sopenharmony_ci### SRSHL ### 10920b8021494Sopenharmony_ci 10921b8021494Sopenharmony_ciSigned rounding shift left by vector (predicated). 10922b8021494Sopenharmony_ci 10923b8021494Sopenharmony_ci void srshl(const ZRegister& zd, 10924b8021494Sopenharmony_ci const PRegisterM& pg, 10925b8021494Sopenharmony_ci const ZRegister& zn, 10926b8021494Sopenharmony_ci const ZRegister& zm) 10927b8021494Sopenharmony_ci 10928b8021494Sopenharmony_ci 10929b8021494Sopenharmony_ci### SRSHLR ### 10930b8021494Sopenharmony_ci 10931b8021494Sopenharmony_ciSigned rounding shift left reversed vectors (predicated). 10932b8021494Sopenharmony_ci 10933b8021494Sopenharmony_ci void srshlr(const ZRegister& zd, 10934b8021494Sopenharmony_ci const PRegisterM& pg, 10935b8021494Sopenharmony_ci const ZRegister& zn, 10936b8021494Sopenharmony_ci const ZRegister& zm) 10937b8021494Sopenharmony_ci 10938b8021494Sopenharmony_ci 10939b8021494Sopenharmony_ci### SRSHR ### 10940b8021494Sopenharmony_ci 10941b8021494Sopenharmony_ciSigned rounding shift right by immediate. 10942b8021494Sopenharmony_ci 10943b8021494Sopenharmony_ci void srshr(const ZRegister& zd, 10944b8021494Sopenharmony_ci const PRegisterM& pg, 10945b8021494Sopenharmony_ci const ZRegister& zn, 10946b8021494Sopenharmony_ci int shift) 10947b8021494Sopenharmony_ci 10948b8021494Sopenharmony_ci 10949b8021494Sopenharmony_ci### SRSRA ### 10950b8021494Sopenharmony_ci 10951b8021494Sopenharmony_ciSigned rounding shift right and accumulate (immediate). 10952b8021494Sopenharmony_ci 10953b8021494Sopenharmony_ci void srsra(const ZRegister& zda, const ZRegister& zn, int shift) 10954b8021494Sopenharmony_ci 10955b8021494Sopenharmony_ci 10956b8021494Sopenharmony_ci### SSHLLB ### 10957b8021494Sopenharmony_ci 10958b8021494Sopenharmony_ciSigned shift left long by immediate (bottom). 10959b8021494Sopenharmony_ci 10960b8021494Sopenharmony_ci void sshllb(const ZRegister& zd, const ZRegister& zn, int shift) 10961b8021494Sopenharmony_ci 10962b8021494Sopenharmony_ci 10963b8021494Sopenharmony_ci### SSHLLT ### 10964b8021494Sopenharmony_ci 10965b8021494Sopenharmony_ciSigned shift left long by immediate (top). 10966b8021494Sopenharmony_ci 10967b8021494Sopenharmony_ci void sshllt(const ZRegister& zd, const ZRegister& zn, int shift) 10968b8021494Sopenharmony_ci 10969b8021494Sopenharmony_ci 10970b8021494Sopenharmony_ci### SSRA ### 10971b8021494Sopenharmony_ci 10972b8021494Sopenharmony_ciSigned shift right and accumulate (immediate). 10973b8021494Sopenharmony_ci 10974b8021494Sopenharmony_ci void ssra(const ZRegister& zda, const ZRegister& zn, int shift) 10975b8021494Sopenharmony_ci 10976b8021494Sopenharmony_ci 10977b8021494Sopenharmony_ci### SSUBLB ### 10978b8021494Sopenharmony_ci 10979b8021494Sopenharmony_ciSigned subtract long (bottom). 10980b8021494Sopenharmony_ci 10981b8021494Sopenharmony_ci void ssublb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10982b8021494Sopenharmony_ci 10983b8021494Sopenharmony_ci 10984b8021494Sopenharmony_ci### SSUBLBT ### 10985b8021494Sopenharmony_ci 10986b8021494Sopenharmony_ciSigned subtract long (bottom - top). 10987b8021494Sopenharmony_ci 10988b8021494Sopenharmony_ci void ssublbt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10989b8021494Sopenharmony_ci 10990b8021494Sopenharmony_ci 10991b8021494Sopenharmony_ci### SSUBLT ### 10992b8021494Sopenharmony_ci 10993b8021494Sopenharmony_ciSigned subtract long (top). 10994b8021494Sopenharmony_ci 10995b8021494Sopenharmony_ci void ssublt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 10996b8021494Sopenharmony_ci 10997b8021494Sopenharmony_ci 10998b8021494Sopenharmony_ci### SSUBLTB ### 10999b8021494Sopenharmony_ci 11000b8021494Sopenharmony_ciSigned subtract long (top - bottom). 11001b8021494Sopenharmony_ci 11002b8021494Sopenharmony_ci void ssubltb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11003b8021494Sopenharmony_ci 11004b8021494Sopenharmony_ci 11005b8021494Sopenharmony_ci### SSUBWB ### 11006b8021494Sopenharmony_ci 11007b8021494Sopenharmony_ciSigned subtract wide (bottom). 11008b8021494Sopenharmony_ci 11009b8021494Sopenharmony_ci void ssubwb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11010b8021494Sopenharmony_ci 11011b8021494Sopenharmony_ci 11012b8021494Sopenharmony_ci### SSUBWT ### 11013b8021494Sopenharmony_ci 11014b8021494Sopenharmony_ciSigned subtract wide (top). 11015b8021494Sopenharmony_ci 11016b8021494Sopenharmony_ci void ssubwt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11017b8021494Sopenharmony_ci 11018b8021494Sopenharmony_ci 11019b8021494Sopenharmony_ci### ST1B ### 11020b8021494Sopenharmony_ci 11021b8021494Sopenharmony_ciContiguous/scatter store bytes from vector. 11022b8021494Sopenharmony_ci 11023b8021494Sopenharmony_ci void st1b(const ZRegister& zt, 11024b8021494Sopenharmony_ci const PRegister& pg, 11025b8021494Sopenharmony_ci const SVEMemOperand& addr) 11026b8021494Sopenharmony_ci 11027b8021494Sopenharmony_ci 11028b8021494Sopenharmony_ci### ST1D ### 11029b8021494Sopenharmony_ci 11030b8021494Sopenharmony_ciContiguous/scatter store doublewords from vector. 11031b8021494Sopenharmony_ci 11032b8021494Sopenharmony_ci void st1d(const ZRegister& zt, 11033b8021494Sopenharmony_ci const PRegister& pg, 11034b8021494Sopenharmony_ci const SVEMemOperand& addr) 11035b8021494Sopenharmony_ci 11036b8021494Sopenharmony_ci 11037b8021494Sopenharmony_ci### ST1H ### 11038b8021494Sopenharmony_ci 11039b8021494Sopenharmony_ciContiguous/scatter store halfwords from vector. 11040b8021494Sopenharmony_ci 11041b8021494Sopenharmony_ci void st1h(const ZRegister& zt, 11042b8021494Sopenharmony_ci const PRegister& pg, 11043b8021494Sopenharmony_ci const SVEMemOperand& addr) 11044b8021494Sopenharmony_ci 11045b8021494Sopenharmony_ci 11046b8021494Sopenharmony_ci### ST1W ### 11047b8021494Sopenharmony_ci 11048b8021494Sopenharmony_ciContiguous/scatter store words from vector. 11049b8021494Sopenharmony_ci 11050b8021494Sopenharmony_ci void st1w(const ZRegister& zt, 11051b8021494Sopenharmony_ci const PRegister& pg, 11052b8021494Sopenharmony_ci const SVEMemOperand& addr) 11053b8021494Sopenharmony_ci 11054b8021494Sopenharmony_ci 11055b8021494Sopenharmony_ci### ST2B ### 11056b8021494Sopenharmony_ci 11057b8021494Sopenharmony_ciContiguous store two-byte structures from two vectors. 11058b8021494Sopenharmony_ci 11059b8021494Sopenharmony_ci void st2b(const ZRegister& zt1, 11060b8021494Sopenharmony_ci const ZRegister& zt2, 11061b8021494Sopenharmony_ci const PRegister& pg, 11062b8021494Sopenharmony_ci const SVEMemOperand& addr) 11063b8021494Sopenharmony_ci 11064b8021494Sopenharmony_ci 11065b8021494Sopenharmony_ci### ST2D ### 11066b8021494Sopenharmony_ci 11067b8021494Sopenharmony_ciContiguous store two-doubleword structures from two vectors, 11068b8021494Sopenharmony_ci 11069b8021494Sopenharmony_ci void st2d(const ZRegister& zt1, 11070b8021494Sopenharmony_ci const ZRegister& zt2, 11071b8021494Sopenharmony_ci const PRegister& pg, 11072b8021494Sopenharmony_ci const SVEMemOperand& addr) 11073b8021494Sopenharmony_ci 11074b8021494Sopenharmony_ci 11075b8021494Sopenharmony_ci### ST2H ### 11076b8021494Sopenharmony_ci 11077b8021494Sopenharmony_ciContiguous store two-halfword structures from two vectors. 11078b8021494Sopenharmony_ci 11079b8021494Sopenharmony_ci void st2h(const ZRegister& zt1, 11080b8021494Sopenharmony_ci const ZRegister& zt2, 11081b8021494Sopenharmony_ci const PRegister& pg, 11082b8021494Sopenharmony_ci const SVEMemOperand& addr) 11083b8021494Sopenharmony_ci 11084b8021494Sopenharmony_ci 11085b8021494Sopenharmony_ci### ST2W ### 11086b8021494Sopenharmony_ci 11087b8021494Sopenharmony_ciContiguous store two-word structures from two vectors. 11088b8021494Sopenharmony_ci 11089b8021494Sopenharmony_ci void st2w(const ZRegister& zt1, 11090b8021494Sopenharmony_ci const ZRegister& zt2, 11091b8021494Sopenharmony_ci const PRegister& pg, 11092b8021494Sopenharmony_ci const SVEMemOperand& addr) 11093b8021494Sopenharmony_ci 11094b8021494Sopenharmony_ci 11095b8021494Sopenharmony_ci### ST3B ### 11096b8021494Sopenharmony_ci 11097b8021494Sopenharmony_ciContiguous store three-byte structures from three vectors. 11098b8021494Sopenharmony_ci 11099b8021494Sopenharmony_ci void st3b(const ZRegister& zt1, 11100b8021494Sopenharmony_ci const ZRegister& zt2, 11101b8021494Sopenharmony_ci const ZRegister& zt3, 11102b8021494Sopenharmony_ci const PRegister& pg, 11103b8021494Sopenharmony_ci const SVEMemOperand& addr) 11104b8021494Sopenharmony_ci 11105b8021494Sopenharmony_ci 11106b8021494Sopenharmony_ci### ST3D ### 11107b8021494Sopenharmony_ci 11108b8021494Sopenharmony_ciContiguous store three-doubleword structures from three vectors. 11109b8021494Sopenharmony_ci 11110b8021494Sopenharmony_ci void st3d(const ZRegister& zt1, 11111b8021494Sopenharmony_ci const ZRegister& zt2, 11112b8021494Sopenharmony_ci const ZRegister& zt3, 11113b8021494Sopenharmony_ci const PRegister& pg, 11114b8021494Sopenharmony_ci const SVEMemOperand& addr) 11115b8021494Sopenharmony_ci 11116b8021494Sopenharmony_ci 11117b8021494Sopenharmony_ci### ST3H ### 11118b8021494Sopenharmony_ci 11119b8021494Sopenharmony_ciContiguous store three-halfword structures from three vectors. 11120b8021494Sopenharmony_ci 11121b8021494Sopenharmony_ci void st3h(const ZRegister& zt1, 11122b8021494Sopenharmony_ci const ZRegister& zt2, 11123b8021494Sopenharmony_ci const ZRegister& zt3, 11124b8021494Sopenharmony_ci const PRegister& pg, 11125b8021494Sopenharmony_ci const SVEMemOperand& addr) 11126b8021494Sopenharmony_ci 11127b8021494Sopenharmony_ci 11128b8021494Sopenharmony_ci### ST3W ### 11129b8021494Sopenharmony_ci 11130b8021494Sopenharmony_ciContiguous store three-word structures from three vectors. 11131b8021494Sopenharmony_ci 11132b8021494Sopenharmony_ci void st3w(const ZRegister& zt1, 11133b8021494Sopenharmony_ci const ZRegister& zt2, 11134b8021494Sopenharmony_ci const ZRegister& zt3, 11135b8021494Sopenharmony_ci const PRegister& pg, 11136b8021494Sopenharmony_ci const SVEMemOperand& addr) 11137b8021494Sopenharmony_ci 11138b8021494Sopenharmony_ci 11139b8021494Sopenharmony_ci### ST4B ### 11140b8021494Sopenharmony_ci 11141b8021494Sopenharmony_ciContiguous store four-byte structures from four vectors. 11142b8021494Sopenharmony_ci 11143b8021494Sopenharmony_ci void st4b(const ZRegister& zt1, 11144b8021494Sopenharmony_ci const ZRegister& zt2, 11145b8021494Sopenharmony_ci const ZRegister& zt3, 11146b8021494Sopenharmony_ci const ZRegister& zt4, 11147b8021494Sopenharmony_ci const PRegister& pg, 11148b8021494Sopenharmony_ci const SVEMemOperand& addr) 11149b8021494Sopenharmony_ci 11150b8021494Sopenharmony_ci 11151b8021494Sopenharmony_ci### ST4D ### 11152b8021494Sopenharmony_ci 11153b8021494Sopenharmony_ciContiguous store four-doubleword structures from four vectors. 11154b8021494Sopenharmony_ci 11155b8021494Sopenharmony_ci void st4d(const ZRegister& zt1, 11156b8021494Sopenharmony_ci const ZRegister& zt2, 11157b8021494Sopenharmony_ci const ZRegister& zt3, 11158b8021494Sopenharmony_ci const ZRegister& zt4, 11159b8021494Sopenharmony_ci const PRegister& pg, 11160b8021494Sopenharmony_ci const SVEMemOperand& addr) 11161b8021494Sopenharmony_ci 11162b8021494Sopenharmony_ci 11163b8021494Sopenharmony_ci### ST4H ### 11164b8021494Sopenharmony_ci 11165b8021494Sopenharmony_ciContiguous store four-halfword structures from four vectors. 11166b8021494Sopenharmony_ci 11167b8021494Sopenharmony_ci void st4h(const ZRegister& zt1, 11168b8021494Sopenharmony_ci const ZRegister& zt2, 11169b8021494Sopenharmony_ci const ZRegister& zt3, 11170b8021494Sopenharmony_ci const ZRegister& zt4, 11171b8021494Sopenharmony_ci const PRegister& pg, 11172b8021494Sopenharmony_ci const SVEMemOperand& addr) 11173b8021494Sopenharmony_ci 11174b8021494Sopenharmony_ci 11175b8021494Sopenharmony_ci### ST4W ### 11176b8021494Sopenharmony_ci 11177b8021494Sopenharmony_ciContiguous store four-word structures from four vectors. 11178b8021494Sopenharmony_ci 11179b8021494Sopenharmony_ci void st4w(const ZRegister& zt1, 11180b8021494Sopenharmony_ci const ZRegister& zt2, 11181b8021494Sopenharmony_ci const ZRegister& zt3, 11182b8021494Sopenharmony_ci const ZRegister& zt4, 11183b8021494Sopenharmony_ci const PRegister& pg, 11184b8021494Sopenharmony_ci const SVEMemOperand& addr) 11185b8021494Sopenharmony_ci 11186b8021494Sopenharmony_ci 11187b8021494Sopenharmony_ci### STNT1B ### 11188b8021494Sopenharmony_ci 11189b8021494Sopenharmony_ciContiguous store non-temporal bytes from vector. 11190b8021494Sopenharmony_ci 11191b8021494Sopenharmony_ci void stnt1b(const ZRegister& zt, 11192b8021494Sopenharmony_ci const PRegister& pg, 11193b8021494Sopenharmony_ci const SVEMemOperand& addr) 11194b8021494Sopenharmony_ci 11195b8021494Sopenharmony_ci 11196b8021494Sopenharmony_ci### STNT1D ### 11197b8021494Sopenharmony_ci 11198b8021494Sopenharmony_ciContiguous store non-temporal doublewords from vector. 11199b8021494Sopenharmony_ci 11200b8021494Sopenharmony_ci void stnt1d(const ZRegister& zt, 11201b8021494Sopenharmony_ci const PRegister& pg, 11202b8021494Sopenharmony_ci const SVEMemOperand& addr) 11203b8021494Sopenharmony_ci 11204b8021494Sopenharmony_ci 11205b8021494Sopenharmony_ci### STNT1H ### 11206b8021494Sopenharmony_ci 11207b8021494Sopenharmony_ciContiguous store non-temporal halfwords from vector. 11208b8021494Sopenharmony_ci 11209b8021494Sopenharmony_ci void stnt1h(const ZRegister& zt, 11210b8021494Sopenharmony_ci const PRegister& pg, 11211b8021494Sopenharmony_ci const SVEMemOperand& addr) 11212b8021494Sopenharmony_ci 11213b8021494Sopenharmony_ci 11214b8021494Sopenharmony_ci### STNT1W ### 11215b8021494Sopenharmony_ci 11216b8021494Sopenharmony_ciContiguous store non-temporal words from vector. 11217b8021494Sopenharmony_ci 11218b8021494Sopenharmony_ci void stnt1w(const ZRegister& zt, 11219b8021494Sopenharmony_ci const PRegister& pg, 11220b8021494Sopenharmony_ci const SVEMemOperand& addr) 11221b8021494Sopenharmony_ci 11222b8021494Sopenharmony_ci 11223b8021494Sopenharmony_ci### STR ### 11224b8021494Sopenharmony_ci 11225b8021494Sopenharmony_ciStore SVE predicate/vector register. 11226b8021494Sopenharmony_ci 11227b8021494Sopenharmony_ci void str(const CPURegister& rt, const SVEMemOperand& addr) 11228b8021494Sopenharmony_ci 11229b8021494Sopenharmony_ci 11230b8021494Sopenharmony_ci### SUB ### 11231b8021494Sopenharmony_ci 11232b8021494Sopenharmony_ciSubtract immediate (unpredicated). 11233b8021494Sopenharmony_ci 11234b8021494Sopenharmony_ci void sub(const ZRegister& zd, const ZRegister& zn, int imm8, int shift = -1) 11235b8021494Sopenharmony_ci 11236b8021494Sopenharmony_ci 11237b8021494Sopenharmony_ci### SUB ### 11238b8021494Sopenharmony_ci 11239b8021494Sopenharmony_ciSubtract vectors (predicated). 11240b8021494Sopenharmony_ci 11241b8021494Sopenharmony_ci void sub(const ZRegister& zd, 11242b8021494Sopenharmony_ci const PRegisterM& pg, 11243b8021494Sopenharmony_ci const ZRegister& zn, 11244b8021494Sopenharmony_ci const ZRegister& zm) 11245b8021494Sopenharmony_ci 11246b8021494Sopenharmony_ci 11247b8021494Sopenharmony_ci### SUB ### 11248b8021494Sopenharmony_ci 11249b8021494Sopenharmony_ciSubtract vectors (unpredicated). 11250b8021494Sopenharmony_ci 11251b8021494Sopenharmony_ci void sub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11252b8021494Sopenharmony_ci 11253b8021494Sopenharmony_ci 11254b8021494Sopenharmony_ci### SUBHNB ### 11255b8021494Sopenharmony_ci 11256b8021494Sopenharmony_ciSubtract narrow high part (bottom). 11257b8021494Sopenharmony_ci 11258b8021494Sopenharmony_ci void subhnb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11259b8021494Sopenharmony_ci 11260b8021494Sopenharmony_ci 11261b8021494Sopenharmony_ci### SUBHNT ### 11262b8021494Sopenharmony_ci 11263b8021494Sopenharmony_ciSubtract narrow high part (top). 11264b8021494Sopenharmony_ci 11265b8021494Sopenharmony_ci void subhnt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11266b8021494Sopenharmony_ci 11267b8021494Sopenharmony_ci 11268b8021494Sopenharmony_ci### SUBR ### 11269b8021494Sopenharmony_ci 11270b8021494Sopenharmony_ciReversed subtract from immediate (unpredicated). 11271b8021494Sopenharmony_ci 11272b8021494Sopenharmony_ci void subr(const ZRegister& zd, const ZRegister& zn, int imm8, int shift = -1) 11273b8021494Sopenharmony_ci 11274b8021494Sopenharmony_ci 11275b8021494Sopenharmony_ci### SUBR ### 11276b8021494Sopenharmony_ci 11277b8021494Sopenharmony_ciReversed subtract vectors (predicated). 11278b8021494Sopenharmony_ci 11279b8021494Sopenharmony_ci void subr(const ZRegister& zd, 11280b8021494Sopenharmony_ci const PRegisterM& pg, 11281b8021494Sopenharmony_ci const ZRegister& zn, 11282b8021494Sopenharmony_ci const ZRegister& zm) 11283b8021494Sopenharmony_ci 11284b8021494Sopenharmony_ci 11285b8021494Sopenharmony_ci### SUDOT ### 11286b8021494Sopenharmony_ci 11287b8021494Sopenharmony_ciSigned by unsigned integer indexed dot product. 11288b8021494Sopenharmony_ci 11289b8021494Sopenharmony_ci void sudot(const ZRegister& zda, 11290b8021494Sopenharmony_ci const ZRegister& zn, 11291b8021494Sopenharmony_ci const ZRegister& zm, 11292b8021494Sopenharmony_ci int index) 11293b8021494Sopenharmony_ci 11294b8021494Sopenharmony_ci 11295b8021494Sopenharmony_ci### SUNPKHI ### 11296b8021494Sopenharmony_ci 11297b8021494Sopenharmony_ciSigned unpack and extend half of vector. 11298b8021494Sopenharmony_ci 11299b8021494Sopenharmony_ci void sunpkhi(const ZRegister& zd, const ZRegister& zn) 11300b8021494Sopenharmony_ci 11301b8021494Sopenharmony_ci 11302b8021494Sopenharmony_ci### SUNPKLO ### 11303b8021494Sopenharmony_ci 11304b8021494Sopenharmony_ciSigned unpack and extend half of vector. 11305b8021494Sopenharmony_ci 11306b8021494Sopenharmony_ci void sunpklo(const ZRegister& zd, const ZRegister& zn) 11307b8021494Sopenharmony_ci 11308b8021494Sopenharmony_ci 11309b8021494Sopenharmony_ci### SUQADD ### 11310b8021494Sopenharmony_ci 11311b8021494Sopenharmony_ciSigned saturating addition of unsigned value. 11312b8021494Sopenharmony_ci 11313b8021494Sopenharmony_ci void suqadd(const ZRegister& zd, 11314b8021494Sopenharmony_ci const PRegisterM& pg, 11315b8021494Sopenharmony_ci const ZRegister& zn, 11316b8021494Sopenharmony_ci const ZRegister& zm) 11317b8021494Sopenharmony_ci 11318b8021494Sopenharmony_ci 11319b8021494Sopenharmony_ci### SXTB ### 11320b8021494Sopenharmony_ci 11321b8021494Sopenharmony_ciSigned byte extend (predicated). 11322b8021494Sopenharmony_ci 11323b8021494Sopenharmony_ci void sxtb(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 11324b8021494Sopenharmony_ci 11325b8021494Sopenharmony_ci 11326b8021494Sopenharmony_ci### SXTH ### 11327b8021494Sopenharmony_ci 11328b8021494Sopenharmony_ciSigned halfword extend (predicated). 11329b8021494Sopenharmony_ci 11330b8021494Sopenharmony_ci void sxth(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 11331b8021494Sopenharmony_ci 11332b8021494Sopenharmony_ci 11333b8021494Sopenharmony_ci### SXTW ### 11334b8021494Sopenharmony_ci 11335b8021494Sopenharmony_ciSigned word extend (predicated). 11336b8021494Sopenharmony_ci 11337b8021494Sopenharmony_ci void sxtw(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 11338b8021494Sopenharmony_ci 11339b8021494Sopenharmony_ci 11340b8021494Sopenharmony_ci<a id="sve-t"> 11341b8021494Sopenharmony_ci 11342b8021494Sopenharmony_ci### TBL ### 11343b8021494Sopenharmony_ci 11344b8021494Sopenharmony_ciProgrammable table lookup in one or two vector table (zeroing). 11345b8021494Sopenharmony_ci 11346b8021494Sopenharmony_ci void tbl(const ZRegister& zd, 11347b8021494Sopenharmony_ci const ZRegister& zn1, 11348b8021494Sopenharmony_ci const ZRegister& zn2, 11349b8021494Sopenharmony_ci const ZRegister& zm) 11350b8021494Sopenharmony_ci 11351b8021494Sopenharmony_ci 11352b8021494Sopenharmony_ci### TBL ### 11353b8021494Sopenharmony_ci 11354b8021494Sopenharmony_ciProgrammable table lookup/permute using vector of indices into a vector. 11355b8021494Sopenharmony_ci 11356b8021494Sopenharmony_ci void tbl(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11357b8021494Sopenharmony_ci 11358b8021494Sopenharmony_ci 11359b8021494Sopenharmony_ci### TBX ### 11360b8021494Sopenharmony_ci 11361b8021494Sopenharmony_ciProgrammable table lookup in single vector table (merging). 11362b8021494Sopenharmony_ci 11363b8021494Sopenharmony_ci void tbx(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11364b8021494Sopenharmony_ci 11365b8021494Sopenharmony_ci 11366b8021494Sopenharmony_ci### TRN1 ### 11367b8021494Sopenharmony_ci 11368b8021494Sopenharmony_ciInterleave even or odd elements from two predicates. 11369b8021494Sopenharmony_ci 11370b8021494Sopenharmony_ci void trn1(const PRegisterWithLaneSize& pd, 11371b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 11372b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 11373b8021494Sopenharmony_ci 11374b8021494Sopenharmony_ci 11375b8021494Sopenharmony_ci### TRN1 ### 11376b8021494Sopenharmony_ci 11377b8021494Sopenharmony_ciInterleave even or odd elements from two vectors. 11378b8021494Sopenharmony_ci 11379b8021494Sopenharmony_ci void trn1(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11380b8021494Sopenharmony_ci 11381b8021494Sopenharmony_ci 11382b8021494Sopenharmony_ci### TRN2 ### 11383b8021494Sopenharmony_ci 11384b8021494Sopenharmony_ciInterleave even or odd elements from two predicates. 11385b8021494Sopenharmony_ci 11386b8021494Sopenharmony_ci void trn2(const PRegisterWithLaneSize& pd, 11387b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 11388b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 11389b8021494Sopenharmony_ci 11390b8021494Sopenharmony_ci 11391b8021494Sopenharmony_ci### TRN2 ### 11392b8021494Sopenharmony_ci 11393b8021494Sopenharmony_ciInterleave even or odd elements from two vectors. 11394b8021494Sopenharmony_ci 11395b8021494Sopenharmony_ci void trn2(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11396b8021494Sopenharmony_ci 11397b8021494Sopenharmony_ci 11398b8021494Sopenharmony_ci<a id="sve-u"> 11399b8021494Sopenharmony_ci 11400b8021494Sopenharmony_ci### UABA ### 11401b8021494Sopenharmony_ci 11402b8021494Sopenharmony_ciUnsigned absolute difference and accumulate. 11403b8021494Sopenharmony_ci 11404b8021494Sopenharmony_ci void uaba(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 11405b8021494Sopenharmony_ci 11406b8021494Sopenharmony_ci 11407b8021494Sopenharmony_ci### UABALB ### 11408b8021494Sopenharmony_ci 11409b8021494Sopenharmony_ciUnsigned absolute difference and accumulate long (bottom). 11410b8021494Sopenharmony_ci 11411b8021494Sopenharmony_ci void uabalb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 11412b8021494Sopenharmony_ci 11413b8021494Sopenharmony_ci 11414b8021494Sopenharmony_ci### UABALT ### 11415b8021494Sopenharmony_ci 11416b8021494Sopenharmony_ciUnsigned absolute difference and accumulate long (top). 11417b8021494Sopenharmony_ci 11418b8021494Sopenharmony_ci void uabalt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 11419b8021494Sopenharmony_ci 11420b8021494Sopenharmony_ci 11421b8021494Sopenharmony_ci### UABD ### 11422b8021494Sopenharmony_ci 11423b8021494Sopenharmony_ciUnsigned absolute difference (predicated). 11424b8021494Sopenharmony_ci 11425b8021494Sopenharmony_ci void uabd(const ZRegister& zd, 11426b8021494Sopenharmony_ci const PRegisterM& pg, 11427b8021494Sopenharmony_ci const ZRegister& zn, 11428b8021494Sopenharmony_ci const ZRegister& zm) 11429b8021494Sopenharmony_ci 11430b8021494Sopenharmony_ci 11431b8021494Sopenharmony_ci### UABDLB ### 11432b8021494Sopenharmony_ci 11433b8021494Sopenharmony_ciUnsigned absolute difference long (bottom). 11434b8021494Sopenharmony_ci 11435b8021494Sopenharmony_ci void uabdlb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11436b8021494Sopenharmony_ci 11437b8021494Sopenharmony_ci 11438b8021494Sopenharmony_ci### UABDLT ### 11439b8021494Sopenharmony_ci 11440b8021494Sopenharmony_ciUnsigned absolute difference long (top). 11441b8021494Sopenharmony_ci 11442b8021494Sopenharmony_ci void uabdlt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11443b8021494Sopenharmony_ci 11444b8021494Sopenharmony_ci 11445b8021494Sopenharmony_ci### UADALP ### 11446b8021494Sopenharmony_ci 11447b8021494Sopenharmony_ciUnsigned add and accumulate long pairwise. 11448b8021494Sopenharmony_ci 11449b8021494Sopenharmony_ci void uadalp(const ZRegister& zda, const PRegisterM& pg, const ZRegister& zn) 11450b8021494Sopenharmony_ci 11451b8021494Sopenharmony_ci 11452b8021494Sopenharmony_ci### UADDLB ### 11453b8021494Sopenharmony_ci 11454b8021494Sopenharmony_ciUnsigned add long (bottom). 11455b8021494Sopenharmony_ci 11456b8021494Sopenharmony_ci void uaddlb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11457b8021494Sopenharmony_ci 11458b8021494Sopenharmony_ci 11459b8021494Sopenharmony_ci### UADDLT ### 11460b8021494Sopenharmony_ci 11461b8021494Sopenharmony_ciUnsigned add long (top). 11462b8021494Sopenharmony_ci 11463b8021494Sopenharmony_ci void uaddlt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11464b8021494Sopenharmony_ci 11465b8021494Sopenharmony_ci 11466b8021494Sopenharmony_ci### UADDV ### 11467b8021494Sopenharmony_ci 11468b8021494Sopenharmony_ciUnsigned add reduction to scalar. 11469b8021494Sopenharmony_ci 11470b8021494Sopenharmony_ci void uaddv(const VRegister& dd, const PRegister& pg, const ZRegister& zn) 11471b8021494Sopenharmony_ci 11472b8021494Sopenharmony_ci 11473b8021494Sopenharmony_ci### UADDWB ### 11474b8021494Sopenharmony_ci 11475b8021494Sopenharmony_ciUnsigned add wide (bottom). 11476b8021494Sopenharmony_ci 11477b8021494Sopenharmony_ci void uaddwb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11478b8021494Sopenharmony_ci 11479b8021494Sopenharmony_ci 11480b8021494Sopenharmony_ci### UADDWT ### 11481b8021494Sopenharmony_ci 11482b8021494Sopenharmony_ciUnsigned add wide (top). 11483b8021494Sopenharmony_ci 11484b8021494Sopenharmony_ci void uaddwt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11485b8021494Sopenharmony_ci 11486b8021494Sopenharmony_ci 11487b8021494Sopenharmony_ci### UCVTF ### 11488b8021494Sopenharmony_ci 11489b8021494Sopenharmony_ciUnsigned integer convert to floating-point (predicated). 11490b8021494Sopenharmony_ci 11491b8021494Sopenharmony_ci void ucvtf(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 11492b8021494Sopenharmony_ci 11493b8021494Sopenharmony_ci 11494b8021494Sopenharmony_ci### UDIV ### 11495b8021494Sopenharmony_ci 11496b8021494Sopenharmony_ciUnsigned divide (predicated). 11497b8021494Sopenharmony_ci 11498b8021494Sopenharmony_ci void udiv(const ZRegister& zd, 11499b8021494Sopenharmony_ci const PRegisterM& pg, 11500b8021494Sopenharmony_ci const ZRegister& zn, 11501b8021494Sopenharmony_ci const ZRegister& zm) 11502b8021494Sopenharmony_ci 11503b8021494Sopenharmony_ci 11504b8021494Sopenharmony_ci### UDIVR ### 11505b8021494Sopenharmony_ci 11506b8021494Sopenharmony_ciUnsigned reversed divide (predicated). 11507b8021494Sopenharmony_ci 11508b8021494Sopenharmony_ci void udivr(const ZRegister& zd, 11509b8021494Sopenharmony_ci const PRegisterM& pg, 11510b8021494Sopenharmony_ci const ZRegister& zn, 11511b8021494Sopenharmony_ci const ZRegister& zm) 11512b8021494Sopenharmony_ci 11513b8021494Sopenharmony_ci 11514b8021494Sopenharmony_ci### UDOT ### 11515b8021494Sopenharmony_ci 11516b8021494Sopenharmony_ciUnsigned dot product by indexed quadtuplet. 11517b8021494Sopenharmony_ci 11518b8021494Sopenharmony_ci void udot(const ZRegister& zda, 11519b8021494Sopenharmony_ci const ZRegister& zn, 11520b8021494Sopenharmony_ci const ZRegister& zm, 11521b8021494Sopenharmony_ci int index) 11522b8021494Sopenharmony_ci 11523b8021494Sopenharmony_ci 11524b8021494Sopenharmony_ci### UDOT ### 11525b8021494Sopenharmony_ci 11526b8021494Sopenharmony_ciUnsigned dot product. 11527b8021494Sopenharmony_ci 11528b8021494Sopenharmony_ci void udot(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 11529b8021494Sopenharmony_ci 11530b8021494Sopenharmony_ci 11531b8021494Sopenharmony_ci### UHADD ### 11532b8021494Sopenharmony_ci 11533b8021494Sopenharmony_ciUnsigned halving addition. 11534b8021494Sopenharmony_ci 11535b8021494Sopenharmony_ci void uhadd(const ZRegister& zd, 11536b8021494Sopenharmony_ci const PRegisterM& pg, 11537b8021494Sopenharmony_ci const ZRegister& zn, 11538b8021494Sopenharmony_ci const ZRegister& zm) 11539b8021494Sopenharmony_ci 11540b8021494Sopenharmony_ci 11541b8021494Sopenharmony_ci### UHSUB ### 11542b8021494Sopenharmony_ci 11543b8021494Sopenharmony_ciUnsigned halving subtract. 11544b8021494Sopenharmony_ci 11545b8021494Sopenharmony_ci void uhsub(const ZRegister& zd, 11546b8021494Sopenharmony_ci const PRegisterM& pg, 11547b8021494Sopenharmony_ci const ZRegister& zn, 11548b8021494Sopenharmony_ci const ZRegister& zm) 11549b8021494Sopenharmony_ci 11550b8021494Sopenharmony_ci 11551b8021494Sopenharmony_ci### UHSUBR ### 11552b8021494Sopenharmony_ci 11553b8021494Sopenharmony_ciUnsigned halving subtract reversed vectors. 11554b8021494Sopenharmony_ci 11555b8021494Sopenharmony_ci void uhsubr(const ZRegister& zd, 11556b8021494Sopenharmony_ci const PRegisterM& pg, 11557b8021494Sopenharmony_ci const ZRegister& zn, 11558b8021494Sopenharmony_ci const ZRegister& zm) 11559b8021494Sopenharmony_ci 11560b8021494Sopenharmony_ci 11561b8021494Sopenharmony_ci### UMAX ### 11562b8021494Sopenharmony_ci 11563b8021494Sopenharmony_ciUnsigned maximum vectors (predicated). 11564b8021494Sopenharmony_ci 11565b8021494Sopenharmony_ci void umax(const ZRegister& zd, 11566b8021494Sopenharmony_ci const PRegisterM& pg, 11567b8021494Sopenharmony_ci const ZRegister& zn, 11568b8021494Sopenharmony_ci const ZRegister& zm) 11569b8021494Sopenharmony_ci 11570b8021494Sopenharmony_ci 11571b8021494Sopenharmony_ci### UMAX ### 11572b8021494Sopenharmony_ci 11573b8021494Sopenharmony_ciUnsigned maximum with immediate (unpredicated). 11574b8021494Sopenharmony_ci 11575b8021494Sopenharmony_ci void umax(const ZRegister& zd, const ZRegister& zn, int imm8) 11576b8021494Sopenharmony_ci 11577b8021494Sopenharmony_ci 11578b8021494Sopenharmony_ci### UMAXP ### 11579b8021494Sopenharmony_ci 11580b8021494Sopenharmony_ciUnsigned maximum pairwise. 11581b8021494Sopenharmony_ci 11582b8021494Sopenharmony_ci void umaxp(const ZRegister& zd, 11583b8021494Sopenharmony_ci const PRegisterM& pg, 11584b8021494Sopenharmony_ci const ZRegister& zn, 11585b8021494Sopenharmony_ci const ZRegister& zm) 11586b8021494Sopenharmony_ci 11587b8021494Sopenharmony_ci 11588b8021494Sopenharmony_ci### UMAXV ### 11589b8021494Sopenharmony_ci 11590b8021494Sopenharmony_ciUnsigned maximum reduction to scalar. 11591b8021494Sopenharmony_ci 11592b8021494Sopenharmony_ci void umaxv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 11593b8021494Sopenharmony_ci 11594b8021494Sopenharmony_ci 11595b8021494Sopenharmony_ci### UMIN ### 11596b8021494Sopenharmony_ci 11597b8021494Sopenharmony_ciUnsigned minimum vectors (predicated). 11598b8021494Sopenharmony_ci 11599b8021494Sopenharmony_ci void umin(const ZRegister& zd, 11600b8021494Sopenharmony_ci const PRegisterM& pg, 11601b8021494Sopenharmony_ci const ZRegister& zn, 11602b8021494Sopenharmony_ci const ZRegister& zm) 11603b8021494Sopenharmony_ci 11604b8021494Sopenharmony_ci 11605b8021494Sopenharmony_ci### UMIN ### 11606b8021494Sopenharmony_ci 11607b8021494Sopenharmony_ciUnsigned minimum with immediate (unpredicated). 11608b8021494Sopenharmony_ci 11609b8021494Sopenharmony_ci void umin(const ZRegister& zd, const ZRegister& zn, int imm8) 11610b8021494Sopenharmony_ci 11611b8021494Sopenharmony_ci 11612b8021494Sopenharmony_ci### UMINP ### 11613b8021494Sopenharmony_ci 11614b8021494Sopenharmony_ciUnsigned minimum pairwise. 11615b8021494Sopenharmony_ci 11616b8021494Sopenharmony_ci void uminp(const ZRegister& zd, 11617b8021494Sopenharmony_ci const PRegisterM& pg, 11618b8021494Sopenharmony_ci const ZRegister& zn, 11619b8021494Sopenharmony_ci const ZRegister& zm) 11620b8021494Sopenharmony_ci 11621b8021494Sopenharmony_ci 11622b8021494Sopenharmony_ci### UMINV ### 11623b8021494Sopenharmony_ci 11624b8021494Sopenharmony_ciUnsigned minimum reduction to scalar. 11625b8021494Sopenharmony_ci 11626b8021494Sopenharmony_ci void uminv(const VRegister& vd, const PRegister& pg, const ZRegister& zn) 11627b8021494Sopenharmony_ci 11628b8021494Sopenharmony_ci 11629b8021494Sopenharmony_ci### UMLALB ### 11630b8021494Sopenharmony_ci 11631b8021494Sopenharmony_ciUnsigned multiply-add long to accumulator (bottom). 11632b8021494Sopenharmony_ci 11633b8021494Sopenharmony_ci void umlalb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 11634b8021494Sopenharmony_ci 11635b8021494Sopenharmony_ci 11636b8021494Sopenharmony_ci### UMLALB ### 11637b8021494Sopenharmony_ci 11638b8021494Sopenharmony_ciUnsigned multiply-add long to accumulator (bottom, indexed). 11639b8021494Sopenharmony_ci 11640b8021494Sopenharmony_ci void umlalb(const ZRegister& zda, 11641b8021494Sopenharmony_ci const ZRegister& zn, 11642b8021494Sopenharmony_ci const ZRegister& zm, 11643b8021494Sopenharmony_ci int index) 11644b8021494Sopenharmony_ci 11645b8021494Sopenharmony_ci 11646b8021494Sopenharmony_ci### UMLALT ### 11647b8021494Sopenharmony_ci 11648b8021494Sopenharmony_ciUnsigned multiply-add long to accumulator (top). 11649b8021494Sopenharmony_ci 11650b8021494Sopenharmony_ci void umlalt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 11651b8021494Sopenharmony_ci 11652b8021494Sopenharmony_ci 11653b8021494Sopenharmony_ci### UMLALT ### 11654b8021494Sopenharmony_ci 11655b8021494Sopenharmony_ciUnsigned multiply-add long to accumulator (top, indexed). 11656b8021494Sopenharmony_ci 11657b8021494Sopenharmony_ci void umlalt(const ZRegister& zda, 11658b8021494Sopenharmony_ci const ZRegister& zn, 11659b8021494Sopenharmony_ci const ZRegister& zm, 11660b8021494Sopenharmony_ci int index) 11661b8021494Sopenharmony_ci 11662b8021494Sopenharmony_ci 11663b8021494Sopenharmony_ci### UMLSLB ### 11664b8021494Sopenharmony_ci 11665b8021494Sopenharmony_ciUnsigned multiply-subtract long from accumulator (bottom). 11666b8021494Sopenharmony_ci 11667b8021494Sopenharmony_ci void umlslb(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 11668b8021494Sopenharmony_ci 11669b8021494Sopenharmony_ci 11670b8021494Sopenharmony_ci### UMLSLB ### 11671b8021494Sopenharmony_ci 11672b8021494Sopenharmony_ciUnsigned multiply-subtract long from accumulator (bottom, indexed). 11673b8021494Sopenharmony_ci 11674b8021494Sopenharmony_ci void umlslb(const ZRegister& zda, 11675b8021494Sopenharmony_ci const ZRegister& zn, 11676b8021494Sopenharmony_ci const ZRegister& zm, 11677b8021494Sopenharmony_ci int index) 11678b8021494Sopenharmony_ci 11679b8021494Sopenharmony_ci 11680b8021494Sopenharmony_ci### UMLSLT ### 11681b8021494Sopenharmony_ci 11682b8021494Sopenharmony_ciUnsigned multiply-subtract long from accumulator (top). 11683b8021494Sopenharmony_ci 11684b8021494Sopenharmony_ci void umlslt(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 11685b8021494Sopenharmony_ci 11686b8021494Sopenharmony_ci 11687b8021494Sopenharmony_ci### UMLSLT ### 11688b8021494Sopenharmony_ci 11689b8021494Sopenharmony_ciUnsigned multiply-subtract long from accumulator (top, indexed). 11690b8021494Sopenharmony_ci 11691b8021494Sopenharmony_ci void umlslt(const ZRegister& zda, 11692b8021494Sopenharmony_ci const ZRegister& zn, 11693b8021494Sopenharmony_ci const ZRegister& zm, 11694b8021494Sopenharmony_ci int index) 11695b8021494Sopenharmony_ci 11696b8021494Sopenharmony_ci 11697b8021494Sopenharmony_ci### UMMLA ### 11698b8021494Sopenharmony_ci 11699b8021494Sopenharmony_ciUnsigned integer matrix multiply-accumulate. 11700b8021494Sopenharmony_ci 11701b8021494Sopenharmony_ci void ummla(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 11702b8021494Sopenharmony_ci 11703b8021494Sopenharmony_ci 11704b8021494Sopenharmony_ci### UMULH ### 11705b8021494Sopenharmony_ci 11706b8021494Sopenharmony_ciUnsigned multiply returning high half (predicated). 11707b8021494Sopenharmony_ci 11708b8021494Sopenharmony_ci void umulh(const ZRegister& zd, 11709b8021494Sopenharmony_ci const PRegisterM& pg, 11710b8021494Sopenharmony_ci const ZRegister& zn, 11711b8021494Sopenharmony_ci const ZRegister& zm) 11712b8021494Sopenharmony_ci 11713b8021494Sopenharmony_ci 11714b8021494Sopenharmony_ci### UMULH ### 11715b8021494Sopenharmony_ci 11716b8021494Sopenharmony_ciUnsigned multiply returning high half (unpredicated). 11717b8021494Sopenharmony_ci 11718b8021494Sopenharmony_ci void umulh(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11719b8021494Sopenharmony_ci 11720b8021494Sopenharmony_ci 11721b8021494Sopenharmony_ci### UMULLB ### 11722b8021494Sopenharmony_ci 11723b8021494Sopenharmony_ciUnsigned multiply long (bottom). 11724b8021494Sopenharmony_ci 11725b8021494Sopenharmony_ci void umullb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11726b8021494Sopenharmony_ci 11727b8021494Sopenharmony_ci 11728b8021494Sopenharmony_ci### UMULLB ### 11729b8021494Sopenharmony_ci 11730b8021494Sopenharmony_ciUnsigned multiply long (bottom, indexed). 11731b8021494Sopenharmony_ci 11732b8021494Sopenharmony_ci void umullb(const ZRegister& zd, 11733b8021494Sopenharmony_ci const ZRegister& zn, 11734b8021494Sopenharmony_ci const ZRegister& zm, 11735b8021494Sopenharmony_ci int index) 11736b8021494Sopenharmony_ci 11737b8021494Sopenharmony_ci 11738b8021494Sopenharmony_ci### UMULLT ### 11739b8021494Sopenharmony_ci 11740b8021494Sopenharmony_ciUnsigned multiply long (top). 11741b8021494Sopenharmony_ci 11742b8021494Sopenharmony_ci void umullt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11743b8021494Sopenharmony_ci 11744b8021494Sopenharmony_ci 11745b8021494Sopenharmony_ci### UMULLT ### 11746b8021494Sopenharmony_ci 11747b8021494Sopenharmony_ciUnsigned multiply long (top, indexed). 11748b8021494Sopenharmony_ci 11749b8021494Sopenharmony_ci void umullt(const ZRegister& zd, 11750b8021494Sopenharmony_ci const ZRegister& zn, 11751b8021494Sopenharmony_ci const ZRegister& zm, 11752b8021494Sopenharmony_ci int index) 11753b8021494Sopenharmony_ci 11754b8021494Sopenharmony_ci 11755b8021494Sopenharmony_ci### UQADD ### 11756b8021494Sopenharmony_ci 11757b8021494Sopenharmony_ciUnsigned saturating add immediate (unpredicated). 11758b8021494Sopenharmony_ci 11759b8021494Sopenharmony_ci void uqadd(const ZRegister& zd, 11760b8021494Sopenharmony_ci const ZRegister& zn, 11761b8021494Sopenharmony_ci int imm8, 11762b8021494Sopenharmony_ci int shift = -1) 11763b8021494Sopenharmony_ci 11764b8021494Sopenharmony_ci 11765b8021494Sopenharmony_ci### UQADD ### 11766b8021494Sopenharmony_ci 11767b8021494Sopenharmony_ciUnsigned saturating add vectors (unpredicated). 11768b8021494Sopenharmony_ci 11769b8021494Sopenharmony_ci void uqadd(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 11770b8021494Sopenharmony_ci 11771b8021494Sopenharmony_ci 11772b8021494Sopenharmony_ci### UQADD ### 11773b8021494Sopenharmony_ci 11774b8021494Sopenharmony_ciUnsigned saturating addition (predicated). 11775b8021494Sopenharmony_ci 11776b8021494Sopenharmony_ci void uqadd(const ZRegister& zd, 11777b8021494Sopenharmony_ci const PRegisterM& pg, 11778b8021494Sopenharmony_ci const ZRegister& zn, 11779b8021494Sopenharmony_ci const ZRegister& zm) 11780b8021494Sopenharmony_ci 11781b8021494Sopenharmony_ci 11782b8021494Sopenharmony_ci### UQDECB ### 11783b8021494Sopenharmony_ci 11784b8021494Sopenharmony_ciUnsigned saturating decrement scalar by multiple of 8-bit predicate constraint element count. 11785b8021494Sopenharmony_ci 11786b8021494Sopenharmony_ci void uqdecb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 11787b8021494Sopenharmony_ci 11788b8021494Sopenharmony_ci 11789b8021494Sopenharmony_ci### UQDECD ### 11790b8021494Sopenharmony_ci 11791b8021494Sopenharmony_ciUnsigned saturating decrement scalar by multiple of 64-bit predicate constraint element count. 11792b8021494Sopenharmony_ci 11793b8021494Sopenharmony_ci void uqdecd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 11794b8021494Sopenharmony_ci 11795b8021494Sopenharmony_ci 11796b8021494Sopenharmony_ci### UQDECD ### 11797b8021494Sopenharmony_ci 11798b8021494Sopenharmony_ciUnsigned saturating decrement vector by multiple of 64-bit predicate constraint element count. 11799b8021494Sopenharmony_ci 11800b8021494Sopenharmony_ci void uqdecd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 11801b8021494Sopenharmony_ci 11802b8021494Sopenharmony_ci 11803b8021494Sopenharmony_ci### UQDECH ### 11804b8021494Sopenharmony_ci 11805b8021494Sopenharmony_ciUnsigned saturating decrement scalar by multiple of 16-bit predicate constraint element count. 11806b8021494Sopenharmony_ci 11807b8021494Sopenharmony_ci void uqdech(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 11808b8021494Sopenharmony_ci 11809b8021494Sopenharmony_ci 11810b8021494Sopenharmony_ci### UQDECH ### 11811b8021494Sopenharmony_ci 11812b8021494Sopenharmony_ciUnsigned saturating decrement vector by multiple of 16-bit predicate constraint element count. 11813b8021494Sopenharmony_ci 11814b8021494Sopenharmony_ci void uqdech(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 11815b8021494Sopenharmony_ci 11816b8021494Sopenharmony_ci 11817b8021494Sopenharmony_ci### UQDECP ### 11818b8021494Sopenharmony_ci 11819b8021494Sopenharmony_ciUnsigned saturating decrement scalar by active predicate element count. 11820b8021494Sopenharmony_ci 11821b8021494Sopenharmony_ci void uqdecp(const Register& rdn, const PRegisterWithLaneSize& pg) 11822b8021494Sopenharmony_ci 11823b8021494Sopenharmony_ci 11824b8021494Sopenharmony_ci### UQDECP ### 11825b8021494Sopenharmony_ci 11826b8021494Sopenharmony_ciUnsigned saturating decrement vector by active predicate element count. 11827b8021494Sopenharmony_ci 11828b8021494Sopenharmony_ci void uqdecp(const ZRegister& zdn, const PRegister& pg) 11829b8021494Sopenharmony_ci 11830b8021494Sopenharmony_ci 11831b8021494Sopenharmony_ci### UQDECW ### 11832b8021494Sopenharmony_ci 11833b8021494Sopenharmony_ciUnsigned saturating decrement scalar by multiple of 32-bit predicate constraint element count. 11834b8021494Sopenharmony_ci 11835b8021494Sopenharmony_ci void uqdecw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 11836b8021494Sopenharmony_ci 11837b8021494Sopenharmony_ci 11838b8021494Sopenharmony_ci### UQDECW ### 11839b8021494Sopenharmony_ci 11840b8021494Sopenharmony_ciUnsigned saturating decrement vector by multiple of 32-bit predicate constraint element count. 11841b8021494Sopenharmony_ci 11842b8021494Sopenharmony_ci void uqdecw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 11843b8021494Sopenharmony_ci 11844b8021494Sopenharmony_ci 11845b8021494Sopenharmony_ci### UQINCB ### 11846b8021494Sopenharmony_ci 11847b8021494Sopenharmony_ciUnsigned saturating increment scalar by multiple of 8-bit predicate constraint element count. 11848b8021494Sopenharmony_ci 11849b8021494Sopenharmony_ci void uqincb(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 11850b8021494Sopenharmony_ci 11851b8021494Sopenharmony_ci 11852b8021494Sopenharmony_ci### UQINCD ### 11853b8021494Sopenharmony_ci 11854b8021494Sopenharmony_ciUnsigned saturating increment scalar by multiple of 64-bit predicate constraint element count. 11855b8021494Sopenharmony_ci 11856b8021494Sopenharmony_ci void uqincd(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 11857b8021494Sopenharmony_ci 11858b8021494Sopenharmony_ci 11859b8021494Sopenharmony_ci### UQINCD ### 11860b8021494Sopenharmony_ci 11861b8021494Sopenharmony_ciUnsigned saturating increment vector by multiple of 64-bit predicate constraint element count. 11862b8021494Sopenharmony_ci 11863b8021494Sopenharmony_ci void uqincd(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 11864b8021494Sopenharmony_ci 11865b8021494Sopenharmony_ci 11866b8021494Sopenharmony_ci### UQINCH ### 11867b8021494Sopenharmony_ci 11868b8021494Sopenharmony_ciUnsigned saturating increment scalar by multiple of 16-bit predicate constraint element count. 11869b8021494Sopenharmony_ci 11870b8021494Sopenharmony_ci void uqinch(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 11871b8021494Sopenharmony_ci 11872b8021494Sopenharmony_ci 11873b8021494Sopenharmony_ci### UQINCH ### 11874b8021494Sopenharmony_ci 11875b8021494Sopenharmony_ciUnsigned saturating increment vector by multiple of 16-bit predicate constraint element count. 11876b8021494Sopenharmony_ci 11877b8021494Sopenharmony_ci void uqinch(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 11878b8021494Sopenharmony_ci 11879b8021494Sopenharmony_ci 11880b8021494Sopenharmony_ci### UQINCP ### 11881b8021494Sopenharmony_ci 11882b8021494Sopenharmony_ciUnsigned saturating increment scalar by active predicate element count. 11883b8021494Sopenharmony_ci 11884b8021494Sopenharmony_ci void uqincp(const Register& rdn, const PRegisterWithLaneSize& pg) 11885b8021494Sopenharmony_ci 11886b8021494Sopenharmony_ci 11887b8021494Sopenharmony_ci### UQINCP ### 11888b8021494Sopenharmony_ci 11889b8021494Sopenharmony_ciUnsigned saturating increment vector by active predicate element count. 11890b8021494Sopenharmony_ci 11891b8021494Sopenharmony_ci void uqincp(const ZRegister& zdn, const PRegister& pg) 11892b8021494Sopenharmony_ci 11893b8021494Sopenharmony_ci 11894b8021494Sopenharmony_ci### UQINCW ### 11895b8021494Sopenharmony_ci 11896b8021494Sopenharmony_ciUnsigned saturating increment scalar by multiple of 32-bit predicate constraint element count. 11897b8021494Sopenharmony_ci 11898b8021494Sopenharmony_ci void uqincw(const Register& rdn, int pattern = SVE_ALL, int multiplier = 1) 11899b8021494Sopenharmony_ci 11900b8021494Sopenharmony_ci 11901b8021494Sopenharmony_ci### UQINCW ### 11902b8021494Sopenharmony_ci 11903b8021494Sopenharmony_ciUnsigned saturating increment vector by multiple of 32-bit predicate constraint element count. 11904b8021494Sopenharmony_ci 11905b8021494Sopenharmony_ci void uqincw(const ZRegister& zdn, int pattern = SVE_ALL, int multiplier = 1) 11906b8021494Sopenharmony_ci 11907b8021494Sopenharmony_ci 11908b8021494Sopenharmony_ci### UQRSHL ### 11909b8021494Sopenharmony_ci 11910b8021494Sopenharmony_ciUnsigned saturating rounding shift left by vector (predicated). 11911b8021494Sopenharmony_ci 11912b8021494Sopenharmony_ci void uqrshl(const ZRegister& zd, 11913b8021494Sopenharmony_ci const PRegisterM& pg, 11914b8021494Sopenharmony_ci const ZRegister& zn, 11915b8021494Sopenharmony_ci const ZRegister& zm) 11916b8021494Sopenharmony_ci 11917b8021494Sopenharmony_ci 11918b8021494Sopenharmony_ci### UQRSHLR ### 11919b8021494Sopenharmony_ci 11920b8021494Sopenharmony_ciUnsigned saturating rounding shift left reversed vectors (predicated). 11921b8021494Sopenharmony_ci 11922b8021494Sopenharmony_ci void uqrshlr(const ZRegister& zd, 11923b8021494Sopenharmony_ci const PRegisterM& pg, 11924b8021494Sopenharmony_ci const ZRegister& zn, 11925b8021494Sopenharmony_ci const ZRegister& zm) 11926b8021494Sopenharmony_ci 11927b8021494Sopenharmony_ci 11928b8021494Sopenharmony_ci### UQRSHRNB ### 11929b8021494Sopenharmony_ci 11930b8021494Sopenharmony_ciUnsigned saturating rounding shift right narrow by immediate (bottom). 11931b8021494Sopenharmony_ci 11932b8021494Sopenharmony_ci void uqrshrnb(const ZRegister& zd, const ZRegister& zn, int shift) 11933b8021494Sopenharmony_ci 11934b8021494Sopenharmony_ci 11935b8021494Sopenharmony_ci### UQRSHRNT ### 11936b8021494Sopenharmony_ci 11937b8021494Sopenharmony_ciUnsigned saturating rounding shift right narrow by immediate (top). 11938b8021494Sopenharmony_ci 11939b8021494Sopenharmony_ci void uqrshrnt(const ZRegister& zd, const ZRegister& zn, int shift) 11940b8021494Sopenharmony_ci 11941b8021494Sopenharmony_ci 11942b8021494Sopenharmony_ci### UQSHL ### 11943b8021494Sopenharmony_ci 11944b8021494Sopenharmony_ciUnsigned saturating shift left by immediate. 11945b8021494Sopenharmony_ci 11946b8021494Sopenharmony_ci void uqshl(const ZRegister& zd, 11947b8021494Sopenharmony_ci const PRegisterM& pg, 11948b8021494Sopenharmony_ci const ZRegister& zn, 11949b8021494Sopenharmony_ci int shift) 11950b8021494Sopenharmony_ci 11951b8021494Sopenharmony_ci 11952b8021494Sopenharmony_ci### UQSHL ### 11953b8021494Sopenharmony_ci 11954b8021494Sopenharmony_ciUnsigned saturating shift left by vector (predicated). 11955b8021494Sopenharmony_ci 11956b8021494Sopenharmony_ci void uqshl(const ZRegister& zd, 11957b8021494Sopenharmony_ci const PRegisterM& pg, 11958b8021494Sopenharmony_ci const ZRegister& zn, 11959b8021494Sopenharmony_ci const ZRegister& zm) 11960b8021494Sopenharmony_ci 11961b8021494Sopenharmony_ci 11962b8021494Sopenharmony_ci### UQSHLR ### 11963b8021494Sopenharmony_ci 11964b8021494Sopenharmony_ciUnsigned saturating shift left reversed vectors (predicated). 11965b8021494Sopenharmony_ci 11966b8021494Sopenharmony_ci void uqshlr(const ZRegister& zd, 11967b8021494Sopenharmony_ci const PRegisterM& pg, 11968b8021494Sopenharmony_ci const ZRegister& zn, 11969b8021494Sopenharmony_ci const ZRegister& zm) 11970b8021494Sopenharmony_ci 11971b8021494Sopenharmony_ci 11972b8021494Sopenharmony_ci### UQSHRNB ### 11973b8021494Sopenharmony_ci 11974b8021494Sopenharmony_ciUnsigned saturating shift right narrow by immediate (bottom). 11975b8021494Sopenharmony_ci 11976b8021494Sopenharmony_ci void uqshrnb(const ZRegister& zd, const ZRegister& zn, int shift) 11977b8021494Sopenharmony_ci 11978b8021494Sopenharmony_ci 11979b8021494Sopenharmony_ci### UQSHRNT ### 11980b8021494Sopenharmony_ci 11981b8021494Sopenharmony_ciUnsigned saturating shift right narrow by immediate (top). 11982b8021494Sopenharmony_ci 11983b8021494Sopenharmony_ci void uqshrnt(const ZRegister& zd, const ZRegister& zn, int shift) 11984b8021494Sopenharmony_ci 11985b8021494Sopenharmony_ci 11986b8021494Sopenharmony_ci### UQSUB ### 11987b8021494Sopenharmony_ci 11988b8021494Sopenharmony_ciUnsigned saturating subtract immediate (unpredicated). 11989b8021494Sopenharmony_ci 11990b8021494Sopenharmony_ci void uqsub(const ZRegister& zd, 11991b8021494Sopenharmony_ci const ZRegister& zn, 11992b8021494Sopenharmony_ci int imm8, 11993b8021494Sopenharmony_ci int shift = -1) 11994b8021494Sopenharmony_ci 11995b8021494Sopenharmony_ci 11996b8021494Sopenharmony_ci### UQSUB ### 11997b8021494Sopenharmony_ci 11998b8021494Sopenharmony_ciUnsigned saturating subtract vectors (unpredicated). 11999b8021494Sopenharmony_ci 12000b8021494Sopenharmony_ci void uqsub(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 12001b8021494Sopenharmony_ci 12002b8021494Sopenharmony_ci 12003b8021494Sopenharmony_ci### UQSUB ### 12004b8021494Sopenharmony_ci 12005b8021494Sopenharmony_ciUnsigned saturating subtraction (predicated). 12006b8021494Sopenharmony_ci 12007b8021494Sopenharmony_ci void uqsub(const ZRegister& zd, 12008b8021494Sopenharmony_ci const PRegisterM& pg, 12009b8021494Sopenharmony_ci const ZRegister& zn, 12010b8021494Sopenharmony_ci const ZRegister& zm) 12011b8021494Sopenharmony_ci 12012b8021494Sopenharmony_ci 12013b8021494Sopenharmony_ci### UQSUBR ### 12014b8021494Sopenharmony_ci 12015b8021494Sopenharmony_ciUnsigned saturating subtraction reversed vectors (predicated). 12016b8021494Sopenharmony_ci 12017b8021494Sopenharmony_ci void uqsubr(const ZRegister& zd, 12018b8021494Sopenharmony_ci const PRegisterM& pg, 12019b8021494Sopenharmony_ci const ZRegister& zn, 12020b8021494Sopenharmony_ci const ZRegister& zm) 12021b8021494Sopenharmony_ci 12022b8021494Sopenharmony_ci 12023b8021494Sopenharmony_ci### UQXTNB ### 12024b8021494Sopenharmony_ci 12025b8021494Sopenharmony_ciUnsigned saturating extract narrow (bottom). 12026b8021494Sopenharmony_ci 12027b8021494Sopenharmony_ci void uqxtnb(const ZRegister& zd, const ZRegister& zn) 12028b8021494Sopenharmony_ci 12029b8021494Sopenharmony_ci 12030b8021494Sopenharmony_ci### UQXTNT ### 12031b8021494Sopenharmony_ci 12032b8021494Sopenharmony_ciUnsigned saturating extract narrow (top). 12033b8021494Sopenharmony_ci 12034b8021494Sopenharmony_ci void uqxtnt(const ZRegister& zd, const ZRegister& zn) 12035b8021494Sopenharmony_ci 12036b8021494Sopenharmony_ci 12037b8021494Sopenharmony_ci### URECPE ### 12038b8021494Sopenharmony_ci 12039b8021494Sopenharmony_ciUnsigned reciprocal estimate (predicated). 12040b8021494Sopenharmony_ci 12041b8021494Sopenharmony_ci void urecpe(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 12042b8021494Sopenharmony_ci 12043b8021494Sopenharmony_ci 12044b8021494Sopenharmony_ci### URHADD ### 12045b8021494Sopenharmony_ci 12046b8021494Sopenharmony_ciUnsigned rounding halving addition. 12047b8021494Sopenharmony_ci 12048b8021494Sopenharmony_ci void urhadd(const ZRegister& zd, 12049b8021494Sopenharmony_ci const PRegisterM& pg, 12050b8021494Sopenharmony_ci const ZRegister& zn, 12051b8021494Sopenharmony_ci const ZRegister& zm) 12052b8021494Sopenharmony_ci 12053b8021494Sopenharmony_ci 12054b8021494Sopenharmony_ci### URSHL ### 12055b8021494Sopenharmony_ci 12056b8021494Sopenharmony_ciUnsigned rounding shift left by vector (predicated). 12057b8021494Sopenharmony_ci 12058b8021494Sopenharmony_ci void urshl(const ZRegister& zd, 12059b8021494Sopenharmony_ci const PRegisterM& pg, 12060b8021494Sopenharmony_ci const ZRegister& zn, 12061b8021494Sopenharmony_ci const ZRegister& zm) 12062b8021494Sopenharmony_ci 12063b8021494Sopenharmony_ci 12064b8021494Sopenharmony_ci### URSHLR ### 12065b8021494Sopenharmony_ci 12066b8021494Sopenharmony_ciUnsigned rounding shift left reversed vectors (predicated). 12067b8021494Sopenharmony_ci 12068b8021494Sopenharmony_ci void urshlr(const ZRegister& zd, 12069b8021494Sopenharmony_ci const PRegisterM& pg, 12070b8021494Sopenharmony_ci const ZRegister& zn, 12071b8021494Sopenharmony_ci const ZRegister& zm) 12072b8021494Sopenharmony_ci 12073b8021494Sopenharmony_ci 12074b8021494Sopenharmony_ci### URSHR ### 12075b8021494Sopenharmony_ci 12076b8021494Sopenharmony_ciUnsigned rounding shift right by immediate. 12077b8021494Sopenharmony_ci 12078b8021494Sopenharmony_ci void urshr(const ZRegister& zd, 12079b8021494Sopenharmony_ci const PRegisterM& pg, 12080b8021494Sopenharmony_ci const ZRegister& zn, 12081b8021494Sopenharmony_ci int shift) 12082b8021494Sopenharmony_ci 12083b8021494Sopenharmony_ci 12084b8021494Sopenharmony_ci### URSQRTE ### 12085b8021494Sopenharmony_ci 12086b8021494Sopenharmony_ciUnsigned reciprocal square root estimate (predicated). 12087b8021494Sopenharmony_ci 12088b8021494Sopenharmony_ci void ursqrte(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 12089b8021494Sopenharmony_ci 12090b8021494Sopenharmony_ci 12091b8021494Sopenharmony_ci### URSRA ### 12092b8021494Sopenharmony_ci 12093b8021494Sopenharmony_ciUnsigned rounding shift right and accumulate (immediate). 12094b8021494Sopenharmony_ci 12095b8021494Sopenharmony_ci void ursra(const ZRegister& zda, const ZRegister& zn, int shift) 12096b8021494Sopenharmony_ci 12097b8021494Sopenharmony_ci 12098b8021494Sopenharmony_ci### USDOT ### 12099b8021494Sopenharmony_ci 12100b8021494Sopenharmony_ciUnsigned by signed integer dot product. 12101b8021494Sopenharmony_ci 12102b8021494Sopenharmony_ci void usdot(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 12103b8021494Sopenharmony_ci 12104b8021494Sopenharmony_ci 12105b8021494Sopenharmony_ci### USDOT ### 12106b8021494Sopenharmony_ci 12107b8021494Sopenharmony_ciUnsigned by signed integer indexed dot product. 12108b8021494Sopenharmony_ci 12109b8021494Sopenharmony_ci void usdot(const ZRegister& zda, 12110b8021494Sopenharmony_ci const ZRegister& zn, 12111b8021494Sopenharmony_ci const ZRegister& zm, 12112b8021494Sopenharmony_ci int index) 12113b8021494Sopenharmony_ci 12114b8021494Sopenharmony_ci 12115b8021494Sopenharmony_ci### USHLLB ### 12116b8021494Sopenharmony_ci 12117b8021494Sopenharmony_ciUnsigned shift left long by immediate (bottom). 12118b8021494Sopenharmony_ci 12119b8021494Sopenharmony_ci void ushllb(const ZRegister& zd, const ZRegister& zn, int shift) 12120b8021494Sopenharmony_ci 12121b8021494Sopenharmony_ci 12122b8021494Sopenharmony_ci### USHLLT ### 12123b8021494Sopenharmony_ci 12124b8021494Sopenharmony_ciUnsigned shift left long by immediate (top). 12125b8021494Sopenharmony_ci 12126b8021494Sopenharmony_ci void ushllt(const ZRegister& zd, const ZRegister& zn, int shift) 12127b8021494Sopenharmony_ci 12128b8021494Sopenharmony_ci 12129b8021494Sopenharmony_ci### USMMLA ### 12130b8021494Sopenharmony_ci 12131b8021494Sopenharmony_ciUnsigned by signed integer matrix multiply-accumulate. 12132b8021494Sopenharmony_ci 12133b8021494Sopenharmony_ci void usmmla(const ZRegister& zda, const ZRegister& zn, const ZRegister& zm) 12134b8021494Sopenharmony_ci 12135b8021494Sopenharmony_ci 12136b8021494Sopenharmony_ci### USQADD ### 12137b8021494Sopenharmony_ci 12138b8021494Sopenharmony_ciUnsigned saturating addition of signed value. 12139b8021494Sopenharmony_ci 12140b8021494Sopenharmony_ci void usqadd(const ZRegister& zd, 12141b8021494Sopenharmony_ci const PRegisterM& pg, 12142b8021494Sopenharmony_ci const ZRegister& zn, 12143b8021494Sopenharmony_ci const ZRegister& zm) 12144b8021494Sopenharmony_ci 12145b8021494Sopenharmony_ci 12146b8021494Sopenharmony_ci### USRA ### 12147b8021494Sopenharmony_ci 12148b8021494Sopenharmony_ciUnsigned shift right and accumulate (immediate). 12149b8021494Sopenharmony_ci 12150b8021494Sopenharmony_ci void usra(const ZRegister& zda, const ZRegister& zn, int shift) 12151b8021494Sopenharmony_ci 12152b8021494Sopenharmony_ci 12153b8021494Sopenharmony_ci### USUBLB ### 12154b8021494Sopenharmony_ci 12155b8021494Sopenharmony_ciUnsigned subtract long (bottom). 12156b8021494Sopenharmony_ci 12157b8021494Sopenharmony_ci void usublb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 12158b8021494Sopenharmony_ci 12159b8021494Sopenharmony_ci 12160b8021494Sopenharmony_ci### USUBLT ### 12161b8021494Sopenharmony_ci 12162b8021494Sopenharmony_ciUnsigned subtract long (top). 12163b8021494Sopenharmony_ci 12164b8021494Sopenharmony_ci void usublt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 12165b8021494Sopenharmony_ci 12166b8021494Sopenharmony_ci 12167b8021494Sopenharmony_ci### USUBWB ### 12168b8021494Sopenharmony_ci 12169b8021494Sopenharmony_ciUnsigned subtract wide (bottom). 12170b8021494Sopenharmony_ci 12171b8021494Sopenharmony_ci void usubwb(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 12172b8021494Sopenharmony_ci 12173b8021494Sopenharmony_ci 12174b8021494Sopenharmony_ci### USUBWT ### 12175b8021494Sopenharmony_ci 12176b8021494Sopenharmony_ciUnsigned subtract wide (top). 12177b8021494Sopenharmony_ci 12178b8021494Sopenharmony_ci void usubwt(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 12179b8021494Sopenharmony_ci 12180b8021494Sopenharmony_ci 12181b8021494Sopenharmony_ci### UUNPKHI ### 12182b8021494Sopenharmony_ci 12183b8021494Sopenharmony_ciUnsigned unpack and extend half of vector. 12184b8021494Sopenharmony_ci 12185b8021494Sopenharmony_ci void uunpkhi(const ZRegister& zd, const ZRegister& zn) 12186b8021494Sopenharmony_ci 12187b8021494Sopenharmony_ci 12188b8021494Sopenharmony_ci### UUNPKLO ### 12189b8021494Sopenharmony_ci 12190b8021494Sopenharmony_ciUnsigned unpack and extend half of vector. 12191b8021494Sopenharmony_ci 12192b8021494Sopenharmony_ci void uunpklo(const ZRegister& zd, const ZRegister& zn) 12193b8021494Sopenharmony_ci 12194b8021494Sopenharmony_ci 12195b8021494Sopenharmony_ci### UXTB ### 12196b8021494Sopenharmony_ci 12197b8021494Sopenharmony_ciUnsigned byte extend (predicated). 12198b8021494Sopenharmony_ci 12199b8021494Sopenharmony_ci void uxtb(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 12200b8021494Sopenharmony_ci 12201b8021494Sopenharmony_ci 12202b8021494Sopenharmony_ci### UXTH ### 12203b8021494Sopenharmony_ci 12204b8021494Sopenharmony_ciUnsigned halfword extend (predicated). 12205b8021494Sopenharmony_ci 12206b8021494Sopenharmony_ci void uxth(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 12207b8021494Sopenharmony_ci 12208b8021494Sopenharmony_ci 12209b8021494Sopenharmony_ci### UXTW ### 12210b8021494Sopenharmony_ci 12211b8021494Sopenharmony_ciUnsigned word extend (predicated). 12212b8021494Sopenharmony_ci 12213b8021494Sopenharmony_ci void uxtw(const ZRegister& zd, const PRegisterM& pg, const ZRegister& zn) 12214b8021494Sopenharmony_ci 12215b8021494Sopenharmony_ci 12216b8021494Sopenharmony_ci### UZP1 ### 12217b8021494Sopenharmony_ci 12218b8021494Sopenharmony_ciConcatenate even or odd elements from two predicates. 12219b8021494Sopenharmony_ci 12220b8021494Sopenharmony_ci void uzp1(const PRegisterWithLaneSize& pd, 12221b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 12222b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 12223b8021494Sopenharmony_ci 12224b8021494Sopenharmony_ci 12225b8021494Sopenharmony_ci### UZP1 ### 12226b8021494Sopenharmony_ci 12227b8021494Sopenharmony_ciConcatenate even or odd elements from two vectors. 12228b8021494Sopenharmony_ci 12229b8021494Sopenharmony_ci void uzp1(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 12230b8021494Sopenharmony_ci 12231b8021494Sopenharmony_ci 12232b8021494Sopenharmony_ci### UZP2 ### 12233b8021494Sopenharmony_ci 12234b8021494Sopenharmony_ciConcatenate even or odd elements from two predicates. 12235b8021494Sopenharmony_ci 12236b8021494Sopenharmony_ci void uzp2(const PRegisterWithLaneSize& pd, 12237b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 12238b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 12239b8021494Sopenharmony_ci 12240b8021494Sopenharmony_ci 12241b8021494Sopenharmony_ci### UZP2 ### 12242b8021494Sopenharmony_ci 12243b8021494Sopenharmony_ciConcatenate even or odd elements from two vectors. 12244b8021494Sopenharmony_ci 12245b8021494Sopenharmony_ci void uzp2(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 12246b8021494Sopenharmony_ci 12247b8021494Sopenharmony_ci 12248b8021494Sopenharmony_ci<a id="sve-w"> 12249b8021494Sopenharmony_ci 12250b8021494Sopenharmony_ci### WHILEGE ### 12251b8021494Sopenharmony_ci 12252b8021494Sopenharmony_ciWhile decrementing signed scalar greater than or equal to scalar. 12253b8021494Sopenharmony_ci 12254b8021494Sopenharmony_ci void whilege(const PRegisterWithLaneSize& pd, 12255b8021494Sopenharmony_ci const Register& rn, 12256b8021494Sopenharmony_ci const Register& rm) 12257b8021494Sopenharmony_ci 12258b8021494Sopenharmony_ci 12259b8021494Sopenharmony_ci### WHILEGT ### 12260b8021494Sopenharmony_ci 12261b8021494Sopenharmony_ciWhile decrementing signed scalar greater than scalar. 12262b8021494Sopenharmony_ci 12263b8021494Sopenharmony_ci void whilegt(const PRegisterWithLaneSize& pd, 12264b8021494Sopenharmony_ci const Register& rn, 12265b8021494Sopenharmony_ci const Register& rm) 12266b8021494Sopenharmony_ci 12267b8021494Sopenharmony_ci 12268b8021494Sopenharmony_ci### WHILEHI ### 12269b8021494Sopenharmony_ci 12270b8021494Sopenharmony_ciWhile decrementing unsigned scalar higher than scalar. 12271b8021494Sopenharmony_ci 12272b8021494Sopenharmony_ci void whilehi(const PRegisterWithLaneSize& pd, 12273b8021494Sopenharmony_ci const Register& rn, 12274b8021494Sopenharmony_ci const Register& rm) 12275b8021494Sopenharmony_ci 12276b8021494Sopenharmony_ci 12277b8021494Sopenharmony_ci### WHILEHS ### 12278b8021494Sopenharmony_ci 12279b8021494Sopenharmony_ciWhile decrementing unsigned scalar higher or same as scalar. 12280b8021494Sopenharmony_ci 12281b8021494Sopenharmony_ci void whilehs(const PRegisterWithLaneSize& pd, 12282b8021494Sopenharmony_ci const Register& rn, 12283b8021494Sopenharmony_ci const Register& rm) 12284b8021494Sopenharmony_ci 12285b8021494Sopenharmony_ci 12286b8021494Sopenharmony_ci### WHILELE ### 12287b8021494Sopenharmony_ci 12288b8021494Sopenharmony_ciWhile incrementing signed scalar less than or equal to scalar. 12289b8021494Sopenharmony_ci 12290b8021494Sopenharmony_ci void whilele(const PRegisterWithLaneSize& pd, 12291b8021494Sopenharmony_ci const Register& rn, 12292b8021494Sopenharmony_ci const Register& rm) 12293b8021494Sopenharmony_ci 12294b8021494Sopenharmony_ci 12295b8021494Sopenharmony_ci### WHILELO ### 12296b8021494Sopenharmony_ci 12297b8021494Sopenharmony_ciWhile incrementing unsigned scalar lower than scalar. 12298b8021494Sopenharmony_ci 12299b8021494Sopenharmony_ci void whilelo(const PRegisterWithLaneSize& pd, 12300b8021494Sopenharmony_ci const Register& rn, 12301b8021494Sopenharmony_ci const Register& rm) 12302b8021494Sopenharmony_ci 12303b8021494Sopenharmony_ci 12304b8021494Sopenharmony_ci### WHILELS ### 12305b8021494Sopenharmony_ci 12306b8021494Sopenharmony_ciWhile incrementing unsigned scalar lower or same as scalar. 12307b8021494Sopenharmony_ci 12308b8021494Sopenharmony_ci void whilels(const PRegisterWithLaneSize& pd, 12309b8021494Sopenharmony_ci const Register& rn, 12310b8021494Sopenharmony_ci const Register& rm) 12311b8021494Sopenharmony_ci 12312b8021494Sopenharmony_ci 12313b8021494Sopenharmony_ci### WHILELT ### 12314b8021494Sopenharmony_ci 12315b8021494Sopenharmony_ciWhile incrementing signed scalar less than scalar. 12316b8021494Sopenharmony_ci 12317b8021494Sopenharmony_ci void whilelt(const PRegisterWithLaneSize& pd, 12318b8021494Sopenharmony_ci const Register& rn, 12319b8021494Sopenharmony_ci const Register& rm) 12320b8021494Sopenharmony_ci 12321b8021494Sopenharmony_ci 12322b8021494Sopenharmony_ci### WHILERW ### 12323b8021494Sopenharmony_ci 12324b8021494Sopenharmony_ciWhile free of read-after-write conflicts. 12325b8021494Sopenharmony_ci 12326b8021494Sopenharmony_ci void whilerw(const PRegisterWithLaneSize& pd, 12327b8021494Sopenharmony_ci const Register& rn, 12328b8021494Sopenharmony_ci const Register& rm) 12329b8021494Sopenharmony_ci 12330b8021494Sopenharmony_ci 12331b8021494Sopenharmony_ci### WHILEWR ### 12332b8021494Sopenharmony_ci 12333b8021494Sopenharmony_ciWhile free of write-after-read/write conflicts. 12334b8021494Sopenharmony_ci 12335b8021494Sopenharmony_ci void whilewr(const PRegisterWithLaneSize& pd, 12336b8021494Sopenharmony_ci const Register& rn, 12337b8021494Sopenharmony_ci const Register& rm) 12338b8021494Sopenharmony_ci 12339b8021494Sopenharmony_ci 12340b8021494Sopenharmony_ci### WRFFR ### 12341b8021494Sopenharmony_ci 12342b8021494Sopenharmony_ciWrite the first-fault register. 12343b8021494Sopenharmony_ci 12344b8021494Sopenharmony_ci void wrffr(const PRegisterWithLaneSize& pn) 12345b8021494Sopenharmony_ci 12346b8021494Sopenharmony_ci 12347b8021494Sopenharmony_ci<a id="sve-x"> 12348b8021494Sopenharmony_ci 12349b8021494Sopenharmony_ci### XAR ### 12350b8021494Sopenharmony_ci 12351b8021494Sopenharmony_ciBitwise exclusive OR and rotate right by immediate. 12352b8021494Sopenharmony_ci 12353b8021494Sopenharmony_ci void xar(const ZRegister& zd, 12354b8021494Sopenharmony_ci const ZRegister& zn, 12355b8021494Sopenharmony_ci const ZRegister& zm, 12356b8021494Sopenharmony_ci int shift) 12357b8021494Sopenharmony_ci 12358b8021494Sopenharmony_ci 12359b8021494Sopenharmony_ci<a id="sve-z"> 12360b8021494Sopenharmony_ci 12361b8021494Sopenharmony_ci### ZIP1 ### 12362b8021494Sopenharmony_ci 12363b8021494Sopenharmony_ciInterleave elements from two half predicates. 12364b8021494Sopenharmony_ci 12365b8021494Sopenharmony_ci void zip1(const PRegisterWithLaneSize& pd, 12366b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 12367b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 12368b8021494Sopenharmony_ci 12369b8021494Sopenharmony_ci 12370b8021494Sopenharmony_ci### ZIP1 ### 12371b8021494Sopenharmony_ci 12372b8021494Sopenharmony_ciInterleave elements from two half vectors. 12373b8021494Sopenharmony_ci 12374b8021494Sopenharmony_ci void zip1(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 12375b8021494Sopenharmony_ci 12376b8021494Sopenharmony_ci 12377b8021494Sopenharmony_ci### ZIP2 ### 12378b8021494Sopenharmony_ci 12379b8021494Sopenharmony_ciInterleave elements from two half predicates. 12380b8021494Sopenharmony_ci 12381b8021494Sopenharmony_ci void zip2(const PRegisterWithLaneSize& pd, 12382b8021494Sopenharmony_ci const PRegisterWithLaneSize& pn, 12383b8021494Sopenharmony_ci const PRegisterWithLaneSize& pm) 12384b8021494Sopenharmony_ci 12385b8021494Sopenharmony_ci 12386b8021494Sopenharmony_ci### ZIP2 ### 12387b8021494Sopenharmony_ci 12388b8021494Sopenharmony_ciInterleave elements from two half vectors. 12389b8021494Sopenharmony_ci 12390b8021494Sopenharmony_ci void zip2(const ZRegister& zd, const ZRegister& zn, const ZRegister& zm) 12391b8021494Sopenharmony_ci 12392b8021494Sopenharmony_ci 12393b8021494Sopenharmony_ci 12394b8021494Sopenharmony_ciAdditional or pseudo instructions 12395b8021494Sopenharmony_ci--------------------------------- 12396b8021494Sopenharmony_ci 12397b8021494Sopenharmony_ci<a id="pseudo-b"> 12398b8021494Sopenharmony_ci 12399b8021494Sopenharmony_ci### BIND ### 12400b8021494Sopenharmony_ci 12401b8021494Sopenharmony_ciBind a label to the current PC. 12402b8021494Sopenharmony_ci 12403b8021494Sopenharmony_ci void bind(Label* label) 12404b8021494Sopenharmony_ci 12405b8021494Sopenharmony_ci 12406b8021494Sopenharmony_ci<a id="pseudo-d"> 12407b8021494Sopenharmony_ci 12408b8021494Sopenharmony_ci### DC ### 12409b8021494Sopenharmony_ci 12410b8021494Sopenharmony_ciEmit data in the instruction stream. 12411b8021494Sopenharmony_ci 12412b8021494Sopenharmony_ci void dc(T data) 12413b8021494Sopenharmony_ci 12414b8021494Sopenharmony_ci 12415b8021494Sopenharmony_ci### DC32 ### 12416b8021494Sopenharmony_ci 12417b8021494Sopenharmony_ciEmit 32 bits of data into the instruction stream. 12418b8021494Sopenharmony_ci 12419b8021494Sopenharmony_ci void dc32(uint32_t data) 12420b8021494Sopenharmony_ci 12421b8021494Sopenharmony_ci 12422b8021494Sopenharmony_ci### DC64 ### 12423b8021494Sopenharmony_ci 12424b8021494Sopenharmony_ciEmit 64 bits of data into the instruction stream. 12425b8021494Sopenharmony_ci 12426b8021494Sopenharmony_ci void dc64(uint64_t data) 12427b8021494Sopenharmony_ci 12428b8021494Sopenharmony_ci 12429b8021494Sopenharmony_ci### DCI ### 12430b8021494Sopenharmony_ci 12431b8021494Sopenharmony_ciEmit raw instructions into the instruction stream. 12432b8021494Sopenharmony_ci 12433b8021494Sopenharmony_ci void dci(Instr raw_inst) 12434b8021494Sopenharmony_ci 12435b8021494Sopenharmony_ci 12436b8021494Sopenharmony_ci<a id="pseudo-p"> 12437b8021494Sopenharmony_ci 12438b8021494Sopenharmony_ci### PLACE ### 12439b8021494Sopenharmony_ci 12440b8021494Sopenharmony_ciPlace a literal at the current PC. 12441b8021494Sopenharmony_ci 12442b8021494Sopenharmony_ci void place(RawLiteral* literal) 12443b8021494Sopenharmony_ci 12444b8021494Sopenharmony_ci 12445b8021494Sopenharmony_ci 12446