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