Mnemonic Syntax Format Summary
abs ABS <Vd>.<T>, <Vn>.<T> SIMD Two Register Calculates absolute value of integer elements.
abs ABS <Zdn>.<T>, <Pg>/M, <Zdn>.<T> SVE Integer Unary Calculates absolute value of integers.
adc ADC{S}<c> <Rd>, <Rn>, <Rm> {, <shift>} Data Proc Adds two 32-bit values and the Carry flag.
adc ADC <Wd>, <Wn>, <Wm> Data Processing (3-source) Adds two register values and the Carry flag.
adc ADC <Xd>, <Xn>, <Xm> Data Processing (3-source) Adds two 64-bit register values and the Carry flag.
adc.w ADC.W <Rd>, <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit add with carry (Access high registers/large constants).
adcs ADCS <Wd>, <Wn>, <Wm> Data Processing (3-source) Adds two register values and Carry, updating NZCV flags.
adcs ADCS <Xd>, <Xn>, <Xm> Data Processing (3-source) Adds two 64-bit register values and Carry, updating NZCV flags.
add ADD{S}<c> <Rd>, <Rn>, <Rm> {, <shift>} Data Proc Adds two 32-bit values.
add ADD <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Adds corresponding elements in two vectors.
add ADD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Integer Binary Adds two vectors under predicate control.
add ADD <Wd|Wsp>, <Wn|Wsp>, <Wm> {, <extend> {#<amount>}} Data Processing (Register) Adds a register value and a sign/zero-extended register value.
add ADD <Xd|SP>, <Xn|SP>, <R><m> {, <extend> {#<amount>}} Data Processing (Register) Adds a 64-bit register and an extended register value.
add ADD <Wd|Wsp>, <Wn|Wsp>, #<imm> {, lsl #<shift>} Data Processing (Immediate) Adds a register value and an immediate value.
add ADD <Xd|SP>, <Xn|SP>, #<imm> {, lsl #<shift>} Data Processing (Immediate) Adds a 64-bit register value and an immediate value.
add ADD <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Data Processing (Register) Adds a register value and a shifted register value.
add ADD <Xd>, <Xn>, <Xm> {, <shift> #<amount>} Data Processing (Register) Adds a 64-bit register value and a shifted register value.
add.w ADD.W <Rd>, <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit add.
addg ADDG <Xd|SP>, <Xn|SP>, #<uimm6>, #<uimm4> Data Processing Adds an immediate to an address, modifying the Allocation Tag (MTE).
addp ADDP <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Adds adjacent pairs of elements.
addp ADDP <Dd>, <Vn>.<T> NEON Scalar Adds two 64-bit values to a 64-bit result (Scalar NEON).
adds ADDS <Wd>, <Wn|Wsp>, <Wm> {, <extend> {#<amount>}} Data Processing (Register) Adds and updates flags (Extended Register).
adds ADDS <Xd>, <Xn|SP>, <R><m> {, <extend> {#<amount>}} Data Processing (Register) Adds and updates flags (Extended Register 64-bit).
adds ADDS <Wd>, <Wn|Wsp>, #<imm> {, lsl #<shift>} Data Processing (Immediate) Adds immediate and updates flags.
adds ADDS <Xd>, <Xn|SP>, #<imm> {, lsl #<shift>} Data Processing (Immediate) Adds immediate and updates flags (64-bit).
adds ADDS <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Data Processing (Register) Adds shifted register and updates flags.
adds ADDS <Xd>, <Xn>, <Xm> {, <shift> #<amount>} Data Processing (Register) Adds shifted register and updates flags (64-bit).
addv ADDV <V><d>, <Vn>.<T> SIMD Across Lane Adds all elements of the vector into a scalar result.
adr ADR<c> <Rd>, <label> Data Proc Adds an immediate value to the PC register.
adr ADR <Rd>, <label> Thumb Data Proc Adds an immediate value to the PC (Thumb).
adr ADR <Xd>, <label> PC-rel Calculates the address of a label (PC +/- 1MB range).
adr.w ADR.W <Rd>, <label> Thumb Data Proc Thumb-2 32-bit ADR.
adrp ADRP <Xd>, <label> PC-rel Calculates page address of a label (PC +/- 4GB range).
aesd AESD <Vd>.16B, <Vm>.16B Crypto AES single round decryption (AArch64 NEON).
aesd AESD.8 <Qd>, <Qm> Crypto 2-Reg Performs one round of AES decryption (AArch32).
aesd AESD <Vd>.<T>, <Vn>.<T> Crypto Performs one round of AES decryption.
aese AESE <Vd>.16B, <Vm>.16B Crypto AES single round encryption (AArch64 NEON).
aese AESE.8 <Qd>, <Qm> Crypto 2-Reg Performs one round of AES encryption (AArch32).
aese AESE <Vd>.<T>, <Vn>.<T> Crypto Performs one round of AES encryption.
aesimc AESIMC.8 <Qd>, <Qm> Crypto 2-Reg AES Inverse Mix Columns transformation.
aesimc AESIMC <Vd>.<T>, <Vn>.<T> Crypto Performs AES Inverse Mix Columns transformation.
aesmc AESMC.8 <Qd>, <Qm> Crypto 2-Reg AES Mix Columns transformation.
aesmc AESMC <Vd>.<T>, <Vn>.<T> Crypto Performs AES Mix Columns transformation.
and AND{S}<c> <Rd>, <Rn>, <Rm> {, <shift>} Data Proc Performs a bitwise AND on two 32-bit values.
and AND <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Bitwise AND of two vectors.
and AND <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Logic Bitwise AND of two vectors under predicate.
and AND <Wd|Wsp>, <Wn>, #<imm> Logical (Immediate) Bitwise AND with logical immediate.
and AND <Xd|SP>, <Xn>, #<imm> Logical (Immediate) Bitwise AND with logical immediate (64-bit).
and AND <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Logical (Register) Bitwise AND with shifted register.
and AND <Xd>, <Xn>, <Xm> {, <shift> #<amount>} Logical (Register) Bitwise AND with shifted register (64-bit).
and.w AND.W <Rd>, <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit AND.
ands ANDS <Wd>, <Wn>, #<imm> Logical (Immediate) Bitwise AND immediate, updates flags.
ands ANDS <Xd>, <Xn>, #<imm> Logical (Immediate) Bitwise AND immediate, updates flags (64-bit).
ands ANDS <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Logical (Register) Bitwise AND shifted register, updates flags.
ands ANDS <Xd>, <Xn>, <Xm> {, <shift> #<amount>} Logical (Register) Bitwise AND shifted register, updates flags (64-bit).
andv ANDV <Vd>, <Pg>, <Zn>.<T> SVE Reduction ANDs all active elements into a scalar.
asr ASR{S}<c> <Rd>, <Rm>, <Rs> Data Proc Arithmetic right shift (sign-extending).
asr ASR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Shift Shifts elements right arithmetically under predicate.
asr ASR <Wd>, <Wn>, #<shift> Data Processing (Immediate) Arithmetic shift right by immediate.
asr ASR <Xd>, <Xn>, #<shift> Data Processing (Immediate) Arithmetic shift right by immediate (64-bit).
asr ASR <Wd>, <Wn>, <Wm> Data Processing (Register) Arithmetic shift right by register value.
asr ASR <Xd>, <Xn>, <Xm> Data Processing (Register) Arithmetic shift right by register value (64-bit).
at AT S1E1R, <Xt> System Performs stage 1 address translation for current EL.
at AT S1E1W, <Xt> System Performs stage 1 address translation for write permission.
at AT <op>, <Xt> System Alias Translates a virtual address to a physical address (for debug/software).
autda AUTDA <Xd>, <Xn> Data Processing Authenticates a data address signed with Key A.
autdb AUTDB <Xd>, <Xn> Data Processing Authenticates a data address signed with Key B.
autia AUTIA <Xd>, <Xn|SP> Data Processing Authenticates a pointer signed with Key A. Corrupts pointer if failed.
autia AUTIA <Xd>, <Xn> Data Processing Authenticates an instruction address signed with Key A.
autib AUTIB <Xd>, <Xn|SP> Data Processing Authenticates a pointer signed with Key B.
autib AUTIB <Xd>, <Xn> Data Processing Authenticates an instruction address signed with Key B.
b B<c> <label> Branch Branch relative (PC +/- 32MB).
b B <label> Branch Unconditional branch to label.
b.cond B.cond <label> Branch Branch if condition is met (e.g., B.EQ, B.NE).
b.w B.W <label> Thumb Branch Thumb-2 32-bit Unconditional Branch (large range).
bc.cond BC.cond <label> Branch Branch if condition is met, with stronger ordering guarantees.
bfadd BFADD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE BFloat16 Adds BFloat16 elements.
bfc BFC<c> <Rd>, #<lsb>, #<width> Data Proc Clears a bitfield in a register.
bfc BFC <Rd>, #<lsb>, #<width> Thumb Bitfield Clears a bitfield in a register.
bfcvtn BFCVTN <Vd>.<Tb>, <Vn>.<Ta> NEON 2-Reg Converts Float32 to BFloat16 (Lower Half).
bfcvtn2 BFCVTN2 <Vd>.<Tb>, <Vn>.<Ta> NEON 2-Reg Converts Float32 to BFloat16 (Upper Half).
bfdot BFDOT <Vd>.<T>, <Vn>.<T>, <Vm>.<T> NEON 3-Reg Computes dot product of BFloat16 elements, accumulating to Float32 (NEON).
bfi BFI<c> <Rd>, <Rn>, #<lsb>, #<width> Data Proc Copies a bitfield into a register.
bfi BFI <Rd>, <Rn>, #<lsb>, #<width> Thumb Bitfield Inserts a bitfield into a register.
bfm BFM <Wd>, <Wn>, #<immr>, #<imms> Bitfield Moves a bitfield from source to destination.
bfm BFM <Xd>, <Xn>, #<immr>, #<imms> Bitfield Moves a bitfield from source to destination (64-bit).
bfmax BFMAX <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE BFloat16 Calculates maximum of BFloat16 elements.
bfmin BFMIN <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE BFloat16 Calculates minimum of BFloat16 elements.
bfmmla BFMMLA <Vd>.<T>, <Vn>.<T>, <Vm>.<T> NEON 3-Reg Performs 2x2 matrix multiplication on BFloat16 tiles (NEON).
bfmul BFMUL <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE BFloat16 Multiplies BFloat16 elements.
bfsub BFSUB <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE BFloat16 Subtracts BFloat16 elements.
bic BIC{S}<c> <Rd>, <Rn>, <Rm> {, <shift>} Data Proc Performs AND NOT (Rd = Rn & ~Rm).
bic BIC <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register ANDs Vd with NOT of Vm.
bic BIC <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Logic Bitwise AND NOT of two vectors under predicate.
bic BIC <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Logical (Register) ANDs register with NOT of shifted register (AND NOT).
bic BIC <Xd>, <Xn>, <Xm> {, <shift> #<amount>} Logical (Register) ANDs register with NOT of shifted register (64-bit).
bic.w BIC.W <Rd>, <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit AND NOT.
bics BICS <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Logical (Register) Performs BIC and updates flags.
bics BICS <Xd>, <Xn>, <Xm> {, <shift> #<amount>} Logical (Register) Performs BIC and updates flags (64-bit).
bif BIF <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Inserts bits from Vn into Vd where Vm (mask) is 0.
bit BIT <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Inserts bits from Vn into Vd where Vm (mask) is 1.
bkpt BKPT #<imm> Thumb System Software Breakpoint (Thumb encoding).
bkpt BKPT #<imm> System Causes a software breakpoint.
bl BL<c> <label> Branch Calls a subroutine, storing return address in LR (R14).
bl BL <label> Branch Function call. Branches to label and stores return address in LR (X30).
bl.w BL.W <label> Thumb Branch Thumb-2 32-bit Branch with Link.
blr BLR <Xn> Branch (Reg) Indirect function call. Branches to address in Xn and stores return in LR.
blx BLX<c> <Rm> Branch Calls subroutine and optionally switches to Thumb state.
br BR <Xn> Branch (Reg) Indirect branch to address in Xn.
brb BRB <op> System Injects an entry into the Branch Record Buffer (Debug).
brbtsy BRBTSY System Synchronizes the BRBE timestamp.
brk BRK #<imm> Exception Generates a Breakpoint instruction exception.
brka BRKA <Pd>.B, <Pg>/Z, <Pn>.B SVE Predicate Sets predicates up to and including the first active element.
brkb BRKB <Pd>.B, <Pg>/Z, <Pn>.B SVE Predicate Sets predicates up to (but excluding) the first active element.
bsl BSL <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Selects bits from Vn or Vm based on Vd (mask). (Vd = (Vd & Vn) | (~Vd & Vm)).
bti BTI <target> System Hint Marks a valid target for indirect branches (Guard against JOP/ROP).
bti BTI {<target>} System Mark a valid target for an indirect branch (Control Flow Integrity).
bx BX<c> <Rm> Branch Branches to address in register, optionally switching ISA.
bxj BXJ<c> <Rm> Branch Legacy instruction to enter Jazelle state (Now behaves like BX).
cas CAS <Ws>, <Wt>, [<Xn|SP>] Atomic Atomically compares and swaps a 32-bit value in memory (LSE).
cas CAS <Xs>, <Xt>, [<Xn|SP>] Atomic Atomic Compare and Swap (64-bit).
casa CASA <Ws>, <Wt>, [<Xn|SP>] Atomic Atomic CAS with Acquire semantics.
casal CASAL <Ws>, <Wt>, [<Xn|SP>] Atomic Atomic CAS with Acquire and Release semantics.
casl CASL <Ws>, <Wt>, [<Xn|SP>] Atomic Atomic CAS with Release semantics.
casp CASP <Ws>, <W(s+1)>, <Wt>, <W(t+1)>, [<Xn|SP>] Atomic Atomically compares and swaps a pair of registers (LSE).
cbnz CBNZ <Rn>, <label> Thumb Branch Branches to label if register is not zero (Thumb-only).
cbnz CBNZ <Wt>, <label> Branch Branches if register is not zero.
cbnz CBNZ <Xt>, <label> Branch Branches if 64-bit register is not zero.
cbz CBZ <Rn>, <label> Thumb Branch Branches to label if register is zero (Thumb-only, does not affect flags).
cbz CBZ <Wt>, <label> Branch Branches if register is zero.
cbz CBZ <Xt>, <label> Branch Branches if 64-bit register is zero.
ccmn CCMN <Wn>, #<imm>, #<nzcv>, <cond> Cond Comp Compares register with negative immediate if condition is true.
ccmn CCMN <Xn>, #<imm>, #<nzcv>, <cond> Cond Comp Compares 64-bit register with negative immediate if condition is true.
ccmn CCMN <Wn>, <Wm>, #<nzcv>, <cond> Cond Comp Compares two registers (negated) if condition is true.
ccmp CCMP <Wn>, #<imm>, #<nzcv>, <cond> Cond Comp Compares register with immediate if condition is true.
ccmp CCMP <Wn>, <Wm>, #<nzcv>, <cond> Cond Comp Compares two registers if condition is true.
cdp CDP<c> <coproc>, <opc1>, <CRd>, <CRn>, <CRm>, <opc2> Coprocessor Initiates a coprocessor data processing operation.
cdp2 CDP2<c> <coproc>, <opc1>, <CRd>, <CRn>, <CRm>, <opc2> Coprocessor Initiates a coprocessor operation (Extension encoding).
cfinv CFINV System Inverts the C (Carry) flag.
chk CHK <#imm> System Check feature status (FEAT_CHK).
cinc CINC <Wd>, <Wn>, <cond> Cond Select Increment register if condition is true, else copy. (Alias for CSINC)
cinv CINV <Wd>, <Wn>, <cond> Cond Select Invert register bits if condition is true, else copy. (Alias for CSINV)
clasta CLASTA <Rdn>, <Pg>, <Rdn>, <Zm>.<T> SVE Extract Extracts element after the last active element.
clastb CLASTB <Rdn>, <Pg>, <Rdn>, <Zm>.<T> SVE Extract Extracts the last active element.
clrex CLREX {#<imm>} System Clears the local monitor state (AArch64 variant).
clrex CLREX<c> System Clears the local exclusive access monitor.
clrex CLREX Thumb System Clears exclusive monitor (Thumb).
cls CLS <Wd>, <Wn> Data Processing Counts number of consecutive sign bits.
clz CLZ <Vd>.<T>, <Vn>.<T> SIMD Two Register Counts leading zeros for each element.
clz CLZ<c> <Rd>, <Rm> Data Proc Counts the number of consecutive zeros from MSB.
clz CLZ <Wd>, <Wn> Data Processing Counts number of consecutive zeros.
clz CLZ <Rd>, <Rm> Thumb Misc Counts consecutive zeros.
cmeq CMEQ <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Compares elements (Vn == Vm) and sets bits to all 1s or 0s.
cmge CMGE <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Compares elements (Vn >= Vm).
cmgt CMGT <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Compares elements (Vn > Vm) and sets bits to all 1s or 0s.
cmn CMN<c> <Rn>, <Rm> {, <shift>} Data Proc Adds two values and updates flags (discarding result). Same as ADDS with no destination.
cmn CMN <Wn>, #<imm> Data Processing Adds register and immediate, updates flags (discard result). (Alias for ADDS)
cmn.w CMN.W <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit Compare Negative (Add and update flags).
cmp CMP<c> <Rn>, <Rm> {, <shift>} Data Proc Subtracts two values and updates flags (discarding result).
cmp CMP <Wn>, #<imm> Data Processing Subtracts immediate from register, updates flags (discard result). (Alias for SUBS)
cmp.w CMP.W <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit Compare (Subtract and update flags).
cmpeq CMPEQ <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> SVE Compare Sets predicate bits where elements are equal.
cmpgt CMPGT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> SVE Compare Sets predicate bits where Zn > Zm.
cmtst CMTST <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Tests if any bits match ((Vn & Vm) != 0).
cneg CNEG <Wd>, <Wn>, <cond> Cond Select Negate register if condition is true, else copy. (Alias for CSNEG)
cnt CNT <Vd>.<T>, <Vn>.<T> SIMD Two Register Counts set bits (population count) per byte.
cntp CNTP <Xn>, <Pg>, <Pn>.<T> SVE Count Counts the number of true elements in a predicate.
compact COMPACT <Zd>.<T>, <Pg>, <Zn>.<T> SVE Permute Packs active elements to the bottom of the vector.
cosp COSP <Xt> System Prevents speculation from determining that the instruction is executed.
cosp COSP <Xt> System Prevents speculation from reordering beyond this point.
cppp CPPP <Xt> System Prevents cache prefetch prediction past this instruction.
cps CPS<effect> <iflags> {, #<mode>} System Changes the processor mode or interrupt masks.
cps CPS<effect> <iflags> {, #<mode>} Thumb System Change mode/state (Thumb).
cpy CPY <Zd>.<T>, <Pg>/M, <Zn>.<T> SVE2 Move Copies data from source to destination using SVE vector length.
cpy CPY <Zd>.<T>, <Pg>/M, <R><n> SVE Move Copies scalar value to active vector elements (Alias for DUP predicated).
crc32b CRC32B<c> <Rd>, <Rn>, <Rm> Data Proc CRC32 checksum update (Byte).
crc32b CRC32B <Wd>, <Wn>, <Wm> Data Processing Updates CRC32 checksum with a byte.
crc32cb CRC32CB <Wd>, <Wn>, <Wm> Data Processing Updates CRC32C (Castagnoli) checksum with a byte.
crc32w CRC32W<c> <Rd>, <Rn>, <Rm> Data Proc CRC32 checksum update (Word).
crc32w CRC32W <Wd>, <Wn>, <Wm> Data Processing Updates CRC32 checksum with a word.
crc32x CRC32X <Wd>, <Wn>, <Xm> Data Processing Updates CRC32 checksum with a doubleword (64-bit).
csdb CSDB System Hint Prevents speculative data consumption.
csdb CSDB System Hint Prevents speculative data consumption.
csdb CSDB System Hint Prevents speculative data consumption (v8.0).
csel CSEL <Wd>, <Wn>, <Wm>, <cond> Cond Select Selects between two registers based on condition.
cset CSET <Wd>, <cond> Cond Select Sets register to 1 if condition true, else 0. (Alias for CSINC)
csinc CSINC <Wd>, <Wn>, <Wm>, <cond> Cond Select Selects Wn if cond true, else (Wm + 1).
csinv CSINV <Wd>, <Wn>, <Wm>, <cond> Cond Select Selects Wn if cond true, else NOT Wm.
csneg CSNEG <Wd>, <Wn>, <Wm>, <cond> Cond Select Selects Wn if cond true, else -Wm.
dbg DBG #<option> System Hint Provides a hint to the debug system.
dbg DBG #<option> Thumb System Debug hint (Thumb).
dc DC <op>, <Xt> System Alias Performs data cache maintenance (Clean, Invalidate, Flush).
dcps1 DCPS1 System Switches execution to EL1 (Debug).
dcps1 DCPS1 {#<imm>} Exception Switch to Exception Level 1 (Debug).
dcps2 DCPS2 System Switches execution to EL2 (Debug).
dcps2 DCPS2 {#<imm>} Exception Switch to Exception Level 2 (Debug).
dcps3 DCPS3 System Switches execution to EL3 (Debug).
dcps3 DCPS3 {#<imm>} Exception Switch to Exception Level 3 (Debug).
decb DECB <Xdn>, <pattern> {, MUL #<imm>} SVE Inc/Dec Decrements a register by the number of active bytes.
decd DECD <Xdn>, <pattern> {, MUL #<imm>} SVE Inc/Dec Decrements a register by the number of active doublewords.
decw DECW <Xdn>, <pattern> {, MUL #<imm>} SVE Inc/Dec Decrements a register by the number of active words.
dfb DFB System Hint Deprecated alias for DSB.
dgh DGH System Hint Hints that multiple memory accesses should be merged.
dmb DMB <option> System Ensures memory access ordering.
dmb DMB <option> System Ensures memory access ordering.
dmb DMB <option> Thumb System Memory barrier (Thumb).
drps DRPS System Restores state from SPSR_ELx and DLR_EL0.
dsb DSB <option> System Ensures completion of memory accesses.
dsb DSB <option> System Ensures completion of memory accesses.
dsb DSB <option> Thumb System Sync barrier (Thumb).
dup DUP <Vd>.<T>, <R><n> SIMD Copy Duplicates a general-purpose register to all vector elements.
dup DUP <Vd>.<T>, <Vn>.<Ts>[<index>] SIMD Copy Duplicates a vector element to all elements in destination.
dup DUP <Zd>.<T>, <R><n|m> SVE Move Broadcasts a scalar register or immediate to all active vector elements.
eon EON <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Logical (Register) XORs register with NOT of shifted register (XNOR).
eon EON <Xd>, <Xn>, <Xm> {, <shift> #<amount>} Logical (Register) XORs 64-bit register with NOT of shifted register.
eor EOR{S}<c> <Rd>, <Rn>, <Rm> {, <shift>} Data Proc Performs bitwise XOR.
eor EOR <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Bitwise XOR of two vectors.
eor EOR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Logic Bitwise XOR of two vectors under predicate.
eor EOR <Wd|Wsp>, <Wn>, #<imm> Logical (Immediate) XORs register with immediate.
eor EOR <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Logical (Register) XORs two registers.
eor.w EOR.W <Rd>, <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit XOR.
eorv EORV <Vd>, <Pg>, <Zn>.<T> SVE Reduction XORs all active elements into a scalar.
eret ERET System Returns from an exception, restoring PC and CPSR.
eret ERET System Returns from an exception.
eret ERET Thumb System Returns from an exception (Thumb state).
esb ESB System Alias Synchronizes unrecoverable system errors.
esb ESB System Hint Synchronizes errors.
esb ESB System Hint Synchronizes system errors (v8.2).
ext EXT <Vd>.<T>, <Vn>.<T>, <Vm>.<T>, #<index> SIMD Extract Extracts a vector from a pair of vectors (Sliding window).
ext EXT <Zdn>.<T>, <Zdn>.<T>, <Zm>.<T>, #<imm> SVE Permute Extracts a vector from a pair (sliding window) using immediate byte index.
extr EXTR <Wd>, <Wn>, <Wm>, #<lsb> Data Processing Extracts a register from a pair of registers.
extr EXTR <Xd>, <Xn>, <Xm>, #<lsb> Data Processing Extracts a 64-bit register from a pair.
fabs FABS <Vd>.8H, <Vn>.8H NEON FP16 Absolute value of half-precision vector.
fabs FABS <Vd>.<T>, <Vn>.<T> SIMD Two Register Calculates absolute value for each element.
fabs FABS <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Data Processing Calculates the absolute value of a float.
fabs FABS <Zdn>.<T>, <Pg>/M, <Zdn>.<T> SVE FP Unary Calculates absolute value of floats.
fadd FADD <Vd>.8H, <Vn>.8H, <Vm>.8H NEON FP16 Adds two half-precision floating-point vectors.
fadd FADD <Sd>, <Sn>, <Sm> Float Data Proc Adds two single-precision floating-point registers.
fadd FADD <Dd>, <Dn>, <Dm> Float Data Proc Adds two double-precision floating-point registers.
fadd FADD <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Adds elements of two floating-point vectors.
fadd FADD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE FP Binary Adds floating-point elements under predicate.
fadd FADD <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm> FP Data Processing Adds two floating-point values.
faddp FADDP <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Adds adjacent pairs of float elements.
faddv FADDV <Vd>, <Pg>, <Zn>.<T> SVE Reduction Sums all active floating-point elements into a scalar result.
fcadd FCADD <Vd>.4S, <Vn>.4S, <Vm>.4S, #<rot> NEON Complex Complex addition with rotation (NEON).
fcadd FCADD <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>, #<rot> SVE FP Complex Performs complex addition with rotation.
fccmp FCCMP <Hn|Sn|Dn>, <Hm|Sm|Dm>, #<nzcv>, <cond> FP Compare Compares floats only if condition is met, else sets flags to immediate.
fcmla FCMLA <Vd>.4S, <Vn>.4S, <Vm>.4S, #<rot> NEON Complex Complex multiply-accumulate with rotation (NEON).
fcmla FCMLA <Zda>.<T>, <Pg>/M, <Zn>.<T>, <Zm>.<T>, #<rot> SVE FP Complex Performs complex multiply-accumulate.
fcmp FCMP <Sn>, <Sm> Float Compare Compares two single-precision registers and updates NZCV flags.
fcmp FCMP <Dn>, <Dm> Float Compare Compares two double-precision registers and updates NZCV flags.
fcmp FCMP <Hn|Sn|Dn>, <Hm|Sm|Dm|#0.0> FP Compare Compares two floating-point values and updates process flags (NZCV).
fcmpeq FCMPEQ <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> SVE FP Compare Sets predicate bits where float elements are equal.
fcmpgt FCMPGT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, <Zm>.<T> SVE FP Compare Sets predicate bits where float Zn > Zm.
fcsel FCSEL <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm>, <cond> FP Data Processing Selects one of two floats based on condition flags.
fcvt FCVT <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Conversion Converts between float precisions (e.g., Half <-> Single <-> Double).
fcvtas FCVTAS <Wd|Xd>, <Hn|Sn|Dn> FP Conversion Converts float to signed integer, rounding to nearest.
fcvtau FCVTAU <Wd|Xd>, <Hn|Sn|Dn> FP Conversion Converts float to unsigned integer, rounding to nearest.
fcvtl FCVTL <Vd>.4S, <Vn>.4H NEON FP16 Converts Half-precision (Bottom) to Single-precision.
fcvtl FCVTL <Vd>.<Td>, <Vn>.<Ts> SIMD Two Register Converts narrow floats to wide floats (e.g., Half -> Single).
fcvtl2 FCVTL2 <Vd>.4S, <Vn>.8H NEON FP16 Converts Half-precision (Top) to Single-precision.
fcvtms FCVTMS <Wd|Xd>, <Hn|Sn|Dn> FP Conversion Converts float to signed integer, rounding towards minus infinity (Floor).
fcvtmu FCVTMU <Wd|Xd>, <Hn|Sn|Dn> FP Conversion Converts float to unsigned integer, rounding towards minus infinity.
fcvtn FCVTN <Vd>.4H, <Vn>.4S NEON FP16 Converts Single-precision to Half-precision (Bottom).
fcvtn FCVTN <Vd>.<Td>, <Vn>.<Ts> SIMD Two Register Converts wide floats to narrow floats (e.g., Single -> Half).
fcvtn2 FCVTN2 <Vd>.8H, <Vn>.4S NEON FP16 Converts Single-precision to Half-precision (Top).
fcvtns FCVTNS <Wd|Xd>, <Hn|Sn|Dn> FP Conversion Converts float to signed integer, rounding to nearest (bankers' round).
fcvtnu FCVTNU <Wd|Xd>, <Hn|Sn|Dn> FP Conversion Converts float to unsigned integer, rounding to nearest (bankers' round).
fcvtps FCVTPS <Wd|Xd>, <Hn|Sn|Dn> FP Conversion Converts float to signed integer, rounding towards plus infinity (Ceil).
fcvtpu FCVTPU <Wd|Xd>, <Hn|Sn|Dn> FP Conversion Converts float to unsigned integer, rounding towards plus infinity.
fcvtzs FCVTZS <Vd>.<T>, <Vn>.<T> {, #<fbits>} SIMD Two Register Converts floats to signed integers (Truncate).
fcvtzs FCVTZS <Xd>, <Dn> Float Conversion Converts floating-point to signed integer.
fcvtzs FCVTZS <Wd|Xd>, <Hn|Sn|Dn> {, #<fbits>} FP Conversion Converts float to signed integer, rounding towards zero (Truncate).
fcvtzs FCVTZS <Zdn>.<T>, <Pg>/M, <Zdn>.<T> SVE Conversion Converts floats to signed integers (Truncate).
fcvtzu FCVTZU <Vd>.<T>, <Vn>.<T> {, #<fbits>} SIMD Two Register Converts floats to unsigned integers (Truncate).
fcvtzu FCVTZU <Wd|Xd>, <Hn|Sn|Dn> {, #<fbits>} FP Conversion Converts float to unsigned integer, rounding towards zero (Truncate).
fcvtzu FCVTZU <Zdn>.<T>, <Pg>/M, <Zdn>.<T> SVE Conversion Converts floats to unsigned integers (Truncate).
fdiv FDIV <Vd>.8H, <Vn>.8H, <Vm>.8H NEON FP16 Divides two half-precision floating-point vectors.
fdiv FDIV <Sd>, <Sn>, <Sm> Float Data Proc Divides two single-precision floating-point registers.
fdiv FDIV <Dd>, <Dn>, <Dm> Float Data Proc Divides two double-precision floating-point registers.
fdiv FDIV <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Divides elements of floating-point vectors.
fdiv FDIV <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE FP Binary Divides floating-point elements under predicate.
fdiv FDIV <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm> FP Data Processing Divides two floating-point values.
fjcvtzs FJCVTZS <Wd>, <Dn> Float Convert Converts double to signed 32-bit integer with JS rounding semantics.
fmadd FMADD <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm>, <Ha|Sa|Da> FP Data Processing Calculates (Vn * Vm) + Va without intermediate rounding.
fmax FMAX <Vd>.8H, <Vn>.8H, <Vm>.8H NEON FP16 Finds max of half-precision vectors.
fmax FMAX <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Compares and returns the larger value per element.
fmax FMAX <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE FP Binary Determines maximum value of active float elements.
fmax FMAX <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm> FP Data Processing Returns the larger of two values.
fmaxnm FMAXNM <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm> FP Data Processing Returns larger value, handling NaNs according to IEEE 754-2008 'maxNum'.
fmaxp FMAXP <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Max of adjacent float elements.
fmaxv FMAXV <Sd>, <Vn>.<T> NEON Reduction Finds max float in a vector.
fmaxv FMAXV <Vd>, <Pg>, <Zn>.<T> SVE Reduction Finds max float in vector.
fmin FMIN <Vd>.8H, <Vn>.8H, <Vm>.8H NEON FP16 Finds min of half-precision vectors.
fmin FMIN <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Compares and returns the smaller value per element.
fmin FMIN <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE FP Binary Determines minimum value of active float elements.
fmin FMIN <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm> FP Data Processing Returns the smaller of two values.
fminnm FMINNM <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm> FP Data Processing Returns smaller value, handling NaNs according to IEEE 754-2008 'minNum'.
fminp FMINP <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Min of adjacent float elements.
fminv FMINV <Sd>, <Vn>.<T> NEON Reduction Finds min float in a vector.
fminv FMINV <Vd>, <Pg>, <Zn>.<T> SVE Reduction Finds min float in vector.
fmla FMLA <Vd>.8H, <Vn>.8H, <Vm>.8H NEON FP16 Fused multiply-add on half-precision vectors.
fmla FMLA <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Multiplies and adds to destination (Vd = Vd + Vn * Vm).
fmla FMLA <Zda>.<T>, <Pg>/M, <Zn>.<T>, <Zm>.<T> SVE FP Ternary Calculates (Zda + Zn * Zm) under predicate.
fmls FMLS <Vd>.8H, <Vn>.8H, <Vm>.8H NEON FP16 Fused multiply-subtract on half-precision vectors.
fmls FMLS <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Multiplies and subtracts from destination (Vd = Vd - Vn * Vm).
fmls FMLS <Zda>.<T>, <Pg>/M, <Zn>.<T>, <Zm>.<T> SVE FP Ternary Calculates (Zda - Zn * Zm) under predicate.
fmov FMOV <Dd>, <Dn> Float Data Proc Copies value between floating-point registers.
fmov FMOV <Dd>, #<imm> Float Imm Moves immediate value into floating-point register.
fmov FMOV <Hd|Sd|Dd>, #<fimm> FP Immediate Moves a floating-point immediate into a scalar register.
fmov FMOV <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Data Processing Copies a value from one scalar FP register to another.
fmov FMOV <Wd|Xd>, <Sn|Dn> FP Conversion Copies bits between a General-Purpose Register (W/X) and FP Register (S/D).
fmov FMOV <Sd|Dd>, <Wn|Xn> FP Conversion Copies bits from a General-Purpose Register (W/X) to FP Register (S/D).
fmsub FMSUB <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm>, <Ha|Sa|Da> FP Data Processing Calculates (Vn * Vm) - Va.
fmul FMUL <Vd>.8H, <Vn>.8H, <Vm>.8H NEON FP16 Multiplies two half-precision floating-point vectors.
fmul FMUL <Sd>, <Sn>, <Sm> Float Data Proc Multiplies two single-precision floating-point registers.
fmul FMUL <Dd>, <Dn>, <Dm> Float Data Proc Multiplies two double-precision floating-point registers.
fmul FMUL <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Multiplies elements of floating-point vectors.
fmul FMUL <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE FP Binary Multiplies floating-point elements under predicate.
fmul FMUL <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm> FP Data Processing Multiplies two floating-point values.
fneg FNEG <Vd>.8H, <Vn>.8H NEON FP16 Negates half-precision vector.
fneg FNEG <Vd>.<T>, <Vn>.<T> SIMD Two Register Negates each element.
fneg FNEG <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Data Processing Negates the value (flips sign bit).
fneg FNEG <Zdn>.<T>, <Pg>/M, <Zdn>.<T> SVE FP Unary Negates floats.
fnmadd FNMADD <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm>, <Ha|Sa|Da> FP Data Processing Calculates -((Vn * Vm) + Va).
fnmsub FNMSUB <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm>, <Ha|Sa|Da> FP Data Processing Calculates -((Vn * Vm) - Va).
fnmul FNMUL <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm> FP Data Processing Calculates -(Vn * Vm).
frecpe FRECPE <Vd>.<T>, <Vn>.<T> SIMD Two Register Estimates reciprocal (1/x) for floats.
frecps FRECPS <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Newton-Raphson step for reciprocal refinement.
frint32x FRINT32X <Sd>, <Sn> Float Conversion Rounds to 32-bit integer, exact exception.
frint32z FRINT32Z <Sd>, <Sn> Float Conversion Rounds to 32-bit integer towards zero.
frint64x FRINT64X <Sd>, <Sn> Float Conversion Rounds to 64-bit integer, exact exception.
frint64z FRINT64Z <Sd>, <Sn> Float Conversion Rounds to 64-bit integer towards zero.
frinta FRINTA <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Data Processing Rounds float to nearest integral value (ties away from zero).
frinti FRINTI <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Data Processing Rounds float to integral value using current FPCR rounding mode.
frintm FRINTM <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Data Processing Rounds float to integral value towards minus infinity (Floor).
frintn FRINTN <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Data Processing Rounds float to integral value nearest, ties to even.
frintp FRINTP <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Data Processing Rounds float to integral value towards plus infinity (Ceil).
frintx FRINTX <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Data Processing Rounds float to integral value using current mode, raising Inexact exception.
frintz FRINTZ <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Data Processing Rounds float to integral value towards zero (Truncate).
frsqrte FRSQRTE <Vd>.<T>, <Vn>.<T> SIMD Two Register Estimates reciprocal square root (1/sqrt(x)).
frsqrts FRSQRTS <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Newton-Raphson step for reciprocal square root refinement.
fsqrt FSQRT <Vd>.8H, <Vn>.8H NEON FP16 Square root of half-precision vector.
fsqrt FSQRT <Vd>.<T>, <Vn>.<T> SIMD Two Register Calculates square root for each element.
fsqrt FSQRT <Hd|Sd|Dd>, <Hn|Sn|Dn> FP Data Processing Calculates square root.
fsqrt FSQRT <Zdn>.<T>, <Pg>/M, <Zdn>.<T> SVE FP Unary Calculates square root of floats.
fsub FSUB <Vd>.8H, <Vn>.8H, <Vm>.8H NEON FP16 Subtracts two half-precision floating-point vectors.
fsub FSUB <Sd>, <Sn>, <Sm> Float Data Proc Subtracts two single-precision floating-point registers.
fsub FSUB <Dd>, <Dn>, <Dm> Float Data Proc Subtracts two double-precision floating-point registers.
fsub FSUB <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Subtracts elements of floating-point vectors.
fsub FSUB <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE FP Binary Subtracts floating-point elements under predicate.
fsub FSUB <Hd|Sd|Dd>, <Hn|Sn|Dn>, <Hm|Sm|Dm> FP Data Processing Subtracts two floating-point values.
gcspopm GCSPOPM System Pops the value from the Guarded Control Stack into LR.
gcsss1 GCSSS1 <Xt> System First step to switch the GCS pointer.
gcsss2 GCSSS2 <Xt> System Second step to switch the GCS pointer.
gmi GMI <Xd>, <Xn|SP>, <Xm> Data Processing Calculates a mask of excluded tags (MTE).
hint HINT #<imm> System Provides a hint to the processor (e.g., NOP, YIELD).
hlt HLT #<imm> Thumb System Enters halting debug state (Thumb encoding).
hlt HLT #<imm> System Enters halting debug state.
hlt HLT #<imm> Exception Enters Halting debug mode.
hvc HVC #<imm> System Calls the Hypervisor (EL2).
hvc HVC #<imm> Exception Generates a Hypervisor Call exception to EL2.
hvc HVC #<imm> Thumb System Calls the Hypervisor (EL2) from Thumb state.
ic IC <op> {, <Xt>} System Alias Performs instruction cache maintenance.
incb INCB <Xdn>, <pattern> {, MUL #<imm>} SVE Inc/Dec Increments a general-purpose register by the number of active bytes in the pattern.
incd INCD <Xdn>, <pattern> {, MUL #<imm>} SVE Inc/Dec Increments a register by the number of active doublewords.
incw INCW <Xdn>, <pattern> {, MUL #<imm>} SVE Inc/Dec Increments a register by the number of active words.
index INDEX <Zd>.<T>, <Start>, <Step> SVE Index Generates a vector of indices: V[i] = Start + i * Step.
ins INS <Vd>.<Ts>[<index>], <Rn> SIMD Copy Moves data from a GPR to a specific vector element.
insr INSR <Zdn>.<T>, <R><m> SVE Move Inserts scalar into bottom of vector, shifting other elements up.
irg IRG <Xd|SP>, <Xn|SP>{, <Xm>} Data Processing Inserts a random Allocation Tag into a pointer (MTE).
irg IRG <Xd|SP>, <Xn|SP> {, <Xm>} Data Processing Inserts a random Tag into a pointer (MTE).
isb ISB <option> System Flushes the pipeline.
isb ISB {<option>} System Flushes the pipeline and prefetches.
isb ISB <option> Thumb System Instruction barrier (Thumb).
it IT{x{y{z}}} <cond> Thumb IT Makes up to 4 following instructions conditional (Thumb-only).
lasta LASTA <Vd>.<T>, <Pg>, <Zn>.<T> SVE Extract Extracts element after last active (SIMD scalar destination).
lastb LASTB <Vd>.<T>, <Pg>, <Zn>.<T> SVE Extract Extracts last active element (SIMD scalar destination).
ld1 LD1 { <Vt>.<T>, ... }, [<Xn|SP>] SIMD Load/Store Loads one element structure from memory into 1-4 registers.
ld1b LD1B { <Zt>.B }, <Pg>/Z, [<Xn|SP>] SVE Load Loads bytes from memory into a vector under predicate control.
ld1d LD1D { <Zt>.D }, <Pg>/Z, [<Xn|SP>] SVE Load Loads doublewords from memory into a vector under predicate control.
ld1h LD1H { <Zt>.H }, <Pg>/Z, [<Xn|SP>] SVE Load Loads halfwords from memory into a vector under predicate control.
ld1r LD1R { <Vt>.<T> }, [<Xn|SP>] SIMD Load/Store Loads one element and replicates it to all lanes of the vector.
ld1w LD1W { <Zt>.S }, <Pg>/Z, [<Xn|SP>] SVE Load Loads words from memory into a vector under predicate control.
ld1w LD1W { <Zt>.S }, <Pg>/Z, [<Xn|SP>, <Zm>.S, SXTW #<shift>] SVE Gather Loads words from non-contiguous addresses (Scatter-Gather).
ld2 LD2 { <Vt1>.<T>, <Vt2>.<T> }, [<Xn|SP>] SIMD Load/Store Loads two-element structures from memory into two registers (De-interleave).
ld2r LD2R { <Vt1>.<T>, <Vt2>.<T> }, [<Xn|SP>] SIMD Load/Store Loads 2 elements and replicates them to all lanes.
ld3 LD3 { <Vt1>.<T>, <Vt2>.<T>, <Vt3>.<T> }, [<Xn|SP>] SIMD Load/Store Loads three-element structures (e.g., RGB) into three registers.
ld4 LD4 { <Vt1>.<T>, <Vt2>.<T>, <Vt3>.<T>, <Vt4>.<T> }, [<Xn|SP>] SIMD Load/Store Loads four-element structures (e.g., RGBA) into four registers.
ld64b LD64B <Xt>, [<Xn|SP>] Load/Store Loads a 64-byte block of data atomically (Accelerator support).
lda LDA<c> <Rt>, [<Rn>] Load/Store Loads a word with Acquire semantics.
ldadd LDADD <Ws>, <Wt>, [<Xn|SP>] Atomic Atomically adds a value to memory (LSE).
ldaexb LDAEXB<c> <Rt>, [<Rn>] Load Excl Loads a byte, acquires semantics, marks exclusive.
ldaexd LDAEXD<c> <Rt>, <Rt2>, [<Rn>] Load Excl Loads a doubleword, acquires semantics, marks exclusive.
ldaexh LDAEXH<c> <Rt>, [<Rn>] Load Excl Loads a halfword, acquires semantics, marks exclusive.
ldalex LDAEX<c> <Rt>, [<Rn>] Load/Store Loads a word with Acquire Exclusive semantics.
ldapr LDAPR <Wt>, [<Xn|SP>] Load/Store Loads a word with RCpc Acquire semantics.
ldaprb LDAPRB <Wt>, [<Xn|SP>] Load/Store Loads a byte with Release Consistency (process consistent) Acquire semantics.
ldaprh LDAPRH <Wt>, [<Xn|SP>] Load/Store Loads a halfword with RCpc Acquire semantics.
ldar LDAR <Wt>, [<Xn|SP>] Load/Store Loads a word with Acquire semantics.
ldarb LDARB <Wt>, [<Xn|SP>] Load/Store Loads a byte with Acquire semantics.
ldarh LDARH <Wt>, [<Xn|SP>] Load/Store Loads a halfword with Acquire semantics.
ldaxr LDAXR <Wt>, [<Xn|SP>] Load/Store Excl Loads a word with Acquire Exclusive semantics.
ldaxrb LDAXRB <Wt>, [<Xn|SP>] Load/Store Excl Loads a byte with Acquire Exclusive semantics.
ldaxrh LDAXRH <Wt>, [<Xn|SP>] Load/Store Excl Loads a halfword with Acquire Exclusive semantics.
ldc LDC{L}<c> <coproc>, <CRd>, [<Rn>, #+/-<imm>]{!} Coprocessor Loads memory into a coprocessor.
ldc2 LDC2{L}<c> <coproc>, <CRd>, [<Rn>, #+/-<imm>]{!} Coprocessor Loads memory into a coprocessor (Extension encoding).
ldclr LDCLR <Ws>, <Wt>, [<Xn|SP>] Atomic Atomically clears bits in memory (AND NOT) (LSE).
ldeor LDEOR <Ws>, <Wt>, [<Xn|SP>] Atomic Atomically XORs a value in memory (LSE).
ldff1b LDFF1B { <Zt>.B }, <Pg>/Z, [<Xn|SP>] SVE Load Loads bytes speculatively; suppresses faults after the first active element.
ldff1d LDFF1D { <Zt>.D }, <Pg>/Z, [<Xn|SP>] SVE Load Loads doublewords speculatively; suppresses faults after the first active element.
ldff1h LDFF1H { <Zt>.H }, <Pg>/Z, [<Xn|SP>] SVE Load Loads halfwords speculatively; suppresses faults after the first active element.
ldff1w LDFF1W { <Zt>.S }, <Pg>/Z, [<Xn|SP>] SVE Load Loads words speculatively; suppresses faults after the first active element.
ldg LDG <Xt>, [<Xn|SP>, #<simm>] Load/Store Loads the Allocation Tag from memory.
ldm LDM<mode><c> <Rn>{!}, <registers> Load Multiple Loads multiple registers from memory (Stack pop).
ldm LDM <Rn>!, <registers> Thumb Load Multiple Load multiple registers (Thumb 16-bit).
ldm.w LDM.W <Rn>{!}, <registers> Thumb Load Multiple Thumb-2 32-bit Load Multiple.
ldnf1b LDNF1B { <Zt>.B }, <Pg>/Z, [<Xn|SP>] SVE Load Loads bytes without faulting; returns 0 if fault occurs.
ldnf1d LDNF1D { <Zt>.D }, <Pg>/Z, [<Xn|SP>] SVE Load Loads doublewords without faulting.
ldnf1h LDNF1H { <Zt>.H }, <Pg>/Z, [<Xn|SP>] SVE Load Loads halfwords without faulting.
ldnf1w LDNF1W { <Zt>.S }, <Pg>/Z, [<Xn|SP>] SVE Load Loads words without faulting.
ldnp LDNP <Wt1>, <Wt2>, [<Xn|SP>, #<imm>] Load/Store Pair Loads two words, hinting non-temporal data (no caching).
ldp LDP <St1|Dt1|Qt1>, <St2|Dt2|Qt2>, [<Xn|SP>, #<imm>] Load/Store Pair Loads two floating-point/SIMD registers.
ldp LDP <Wt1>, <Wt2>, [<Xn|SP>], #<imm> Load/Store Pair Loads two words from memory.
ldp LDP <Xt1>, <Xt2>, [<Xn|SP>], #<imm> Load/Store Pair Loads two 64-bit doublewords from memory.
ldpsw LDPSW <Xt1>, <Xt2>, [<Xn|SP>, #<imm>] Load/Store Pair Loads two words and sign-extends them to 64-bit.
ldr LDR<c> <Rt>, [<Rn>, #+/-<imm>]{!} Load/Store Loads a word from memory.
ldr LDR<c> <Rt>, <label> Load Literal Loads a word from a label.
ldr LDR <Rt>, <label> Thumb Load Loads a word from a label (Thumb).
ldr LDR <Bt|Ht|St|Dt|Qt>, [<Xn|SP>, #<pimm>] Load/Store Loads a floating-point/SIMD register from memory.
ldr LDR <Wt>, [<Xn|SP>, #<pimm>] Load/Store Imm Loads a word from memory (Immediate offset).
ldr LDR <Wt>, <label> Load Literal Loads a word from a PC-relative address.
ldr LDR <Wt>, [<Xn|SP>, <R><m> {, <extend> <amount>}] Load/Store Reg Loads a word from memory (Register offset).
ldr.w LDR.W <Rt>, [<Rn>, #<imm>] Thumb Load Thumb-2 32-bit Load Word.
ldraa LDRAA <Xt>, [<Xn|SP>, #<simm>] Load/Store Loads a value, authenticating the address with Key A.
ldrab LDRAB <Xt>, [<Xn|SP>, #<simm>] Load/Store Loads a value, authenticating the address with Key B.
ldrb LDRB<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Loads a byte from memory (Zero extended).
ldrb LDRB <Wt>, [<Xn|SP>, #<pimm>] Load/Store Loads a byte from memory (zero-extended) using immediate offset.
ldrb LDRB <Wt>, [<Xn|SP>, <R><m> {, <extend> <amount>}] Load/Store Loads a byte from memory (zero-extended) using register offset.
ldrb.w LDRB.W <Rt>, [<Rn>, #<imm>] Thumb Load Thumb-2 32-bit Load Byte.
ldrbt LDRBT<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Loads a byte using User Mode permissions.
ldrd LDRD<c> <Rt>, <Rt2>, [<Rn>, #+/-<imm>] Load/Store Loads two consecutive words into consecutive registers.
ldrd LDRD <Rt>, <Rt2>, [<Rn>, #+/-<imm>] Thumb Load Loads two words from memory (Thumb).
ldrex LDREX<c> <Rt>, [<Rn>] Load/Store Loads a word and marks physical address as exclusive.
ldrex LDREX <Rt>, [<Rn>] Thumb Load Excl Loads word and sets exclusive monitor (Thumb).
ldrexb LDREXB<c> <Rt>, [<Rn>] Load/Store Excl Loads a byte and marks address as exclusive.
ldrexb LDREXB <Rt>, [<Rn>] Thumb Load Excl Loads byte exclusively (Thumb).
ldrexd LDREXD<c> <Rt>, <Rt2>, [<Rn>] Load/Store Excl Loads a doubleword and marks address as exclusive.
ldrexh LDREXH<c> <Rt>, [<Rn>] Load/Store Excl Loads a halfword and marks address as exclusive.
ldrexh LDREXH <Rt>, [<Rn>] Thumb Load Excl Loads halfword exclusively (Thumb).
ldrh LDRH<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Loads a halfword (Zero extended).
ldrh LDRH <Wt>, [<Xn|SP>, #<pimm>] Load/Store Loads a halfword from memory (zero-extended).
ldrh LDRH <Wt>, [<Xn|SP>, <R><m> {, <extend> <amount>}] Load/Store Loads a halfword from memory (zero-extended) using register offset.
ldrh.w LDRH.W <Rt>, [<Rn>, #<imm>] Thumb Load Thumb-2 32-bit Load Halfword.
ldrht LDRHT<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Loads a halfword using User Mode permissions.
ldrsb LDRSB<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Loads a byte and sign-extends it.
ldrsb LDRSB <Wt>, [<Xn|SP>, #<pimm>] Load/Store Loads a byte and sign-extends it to 32-bits.
ldrsb LDRSB <Xt>, [<Xn|SP>, #<pimm>] Load/Store Loads a byte and sign-extends it to 64-bits.
ldrsb.w LDRSB.W <Rt>, [<Rn>, #<imm>] Thumb Load Thumb-2 32-bit Load Signed Byte.
ldrsbt LDRSBT<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Loads a signed byte using User Mode permissions.
ldrsh LDRSH<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Loads a halfword and sign-extends it.
ldrsh.w LDRSH.W <Rt>, [<Rn>, #<imm>] Thumb Load Thumb-2 32-bit Load Signed Halfword.
ldrsht LDRSHT<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Loads a signed halfword using User Mode permissions.
ldrsw LDRSW <Xt>, [<Xn|SP>, #<pimm>] Load/Store Loads a word and sign-extends it to 64-bits.
ldrsw LDRSW <Xt>, <label> Load Literal Loads a word from PC-relative address and sign-extends to 64-bits.
ldrt LDRT<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Loads a word using User Mode permissions (even if Privileged).
ldset LDSET <Ws>, <Wt>, [<Xn|SP>] Atomic Atomically sets bits in memory (OR) (LSE).
ldsmax LDSMAX <Ws>, <Wt>, [<Xn|SP>] Atomic Atomically stores max of value and memory (Signed) (LSE).
ldsmin LDSMIN <Ws>, <Wt>, [<Xn|SP>] Atomic Atomically stores min of value and memory (Signed) (LSE).
ldtr LDTR <Wt>, [<Xn|SP>, #<simm>] Load/Store Loads a word as if in EL0 (User mode).
ldumax LDUMAX <Ws>, <Wt>, [<Xn|SP>] Atomic Atomically stores max of value and memory (Unsigned) (LSE).
ldumin LDUMIN <Ws>, <Wt>, [<Xn|SP>] Atomic Atomically stores min of value and memory (Unsigned) (LSE).
ldur LDUR <Wt>, [<Xn|SP>, #<simm>] Load/Store Loads a word using an unscaled immediate offset.
ldxp LDXP <Wt1>, <Wt2>, [<Xn|SP>] Load/Store Excl Loads two words as an exclusive operation.
ldxr LDXR <Wt>, [<Xn|SP>] Load/Store Excl Loads a word and marks physical address as exclusive access.
lsl LSL{S}<c> <Rd>, <Rm>, <Rs> Data Proc Shifts a register left.
lsl LSLV <Wd>, <Wn>, <Wm> Data Processing Shifts register left by variable amount.
lsl LSL <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Shift Shifts elements left under predicate.
lsr LSR{S}<c> <Rd>, <Rm>, <Rs> Data Proc Shifts a register right.
lsr LSRV <Wd>, <Wn>, <Wm> Data Processing Shifts register right by variable amount.
lsr LSR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Shift Shifts elements right logically under predicate.
madd MADD <Wd>, <Wn>, <Wm>, <Wa> Data Processing Calculates (Ra + (Rn * Rm)).
madd MADD <Xd>, <Xn>, <Xm>, <Xa> Data Processing Calculates (Xa + (Xn * Xm)).
mcr MCR<c> <coproc>, <opc1>, <Rt>, <CRn>, <CRm>{, <opc2>} Coprocessor Writes a general-purpose register to a coprocessor register (e.g., CP15).
mcr2 MCR2<c> <coproc>, <opc1>, <Rt>, <CRn>, <CRm>{, <opc2>} Coprocessor Writes a general-purpose register to a coprocessor (Extension encoding).
mcrr MCRR<c> <coproc>, <opc1>, <Rt>, <Rt2>, <CRm> Coprocessor Writes two general-purpose registers to a coprocessor (64-bit transfer).
mcrr2 MCRR2<c> <coproc>, <opc1>, <Rt>, <Rt2>, <CRm> Coprocessor Writes two registers to a coprocessor (Extension encoding).
mia MIA<c> <Acc>, <Rn>, <Rm> Coprocessor Multiplies two 32-bit values and adds to 40-bit internal acc (XScale Legacy).
miaph MIAPH<c> <Acc>, <Rn>, <Rm> Coprocessor SIMD multiply of packed halfwords to internal acc (XScale Legacy).
mla MLA{S}<c> <Rd>, <Rn>, <Rm>, <Ra> Multiply Calculates Rd = (Rn * Rm) + Ra.
mla MLA <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Multiplies elements and adds to destination (Vd = Vd + Vn * Vm).
mla MLA <Rd>, <Rm>, <Ra>, <Rn> Thumb Mul Rd = Rn + (Rm * Ra).
mls MLS<c> <Rd>, <Rn>, <Rm>, <Ra> Multiply Calculates Rd = Ra - (Rn * Rm).
mls MLS <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Multiplies elements and subtracts from destination (Vd = Vd - Vn * Vm).
mls MLS <Rd>, <Rm>, <Ra>, <Rn> Thumb Mul Rd = Rn - (Rm * Ra).
mov MOV{S}<c> <Rd>, <Operand2> Data Proc Moves a value into a register.
mov MOV <Vd>.<T>, <Vn>.<T> SIMD Alias Copies a vector register (Alias for ORR Vd, Vn, Vn).
mov MOV <Vd>.<Ts>[<index1>], <Vn>.<Ts>[<index2>] SIMD Copy Moves a vector element to another vector element (Alias for INS).
mov.w MOV.W <Rd>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit Move.
movi MOVI <Vd>.<T>, #<imm8> {, lsl #<shift>} SIMD Modified Imm Moves an immediate value into every element of a vector.
movk MOVK <Wd>, #<imm16> {, lsl #<shift>} Data Processing Inserts a 16-bit immediate into a register, keeping other bits unchanged.
movn MOVN <Wd>, #<imm16> {, lsl #<shift>} Data Processing Moves inverted 16-bit immediate to register.
movt MOVT<c> <Rd>, #<imm16> Data Proc Writes a 16-bit immediate to the top half of a register.
movw MOVW<c> <Rd>, #<imm16> Data Proc Writes a 16-bit immediate to the bottom half, zeroing top.
movz MOVZ <Wd>, #<imm16> {, lsl #<shift>} Data Processing Moves 16-bit immediate to register, zeroing other bits.
mrc MRC<c> <coproc>, <opc1>, <Rt>, <CRn>, <CRm>{, <opc2>} Coprocessor Reads a coprocessor register into a general-purpose register.
mrc2 MRC2<c> <coproc>, <opc1>, <Rt>, <CRn>, <CRm>{, <opc2>} Coprocessor Reads a coprocessor register into a general-purpose register (Extension encoding).
mrrc MRRC<c> <coproc>, <opc1>, <Rt>, <Rt2>, <CRm> Coprocessor Reads a coprocessor register into two general-purpose registers.
mrrc2 MRRC2<c> <coproc>, <opc1>, <Rt>, <Rt2>, <CRm> Coprocessor Reads a coprocessor register into two registers (Extension encoding).
mrrs MRRS <Xt>, <Xt+1>, <sysreg> System Reads a 128-bit system register into two general-purpose registers.
mrs MRS <Rd>, <banked_reg> System Reads a banked register into a general-purpose register.
mrs MRS<c> <Rd>, <spec_reg> System Reads CPSR or SPSR.
mrs MRS <Xt>, <system_reg> System Reads a system register (like TPIDR_EL0 or NZCV) into a general-purpose register.
mrs MRS <Rd>, <spec_reg> Thumb System Read special register (Thumb).
msr MSR <banked_reg>, <Rn> System Writes to a banked register from a general-purpose register.
msr MSR<c> <spec_reg>_<fields>, <Rn> System Writes to CPSR or SPSR.
msr MSR <system_reg>, <Xt> System Writes a general-purpose register value to a system register.
msr MSR <spec_reg>, #<imm> System Writes an immediate to a status register (A32).
msr MSR <spec_reg>, #<imm> Thumb System Writes an immediate to a status register (Thumb).
msr MSR <spec_reg>, <Rn> Thumb System Write special register (Thumb).
msrr MSRR <sysreg>, <Xt>, <Xt+1> System Writes two general-purpose registers into a 128-bit system register.
msub MSUB <Wd>, <Wn>, <Wm>, <Wa> Data Processing Calculates (Ra - (Rn * Rm)).
mul MUL{S}<c> <Rd>, <Rn>, <Rm> Multiply Multiplies two 32-bit values.
mul MUL <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Multiplies corresponding elements in two vectors.
mul MUL <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Integer Binary Multiplies two vectors under predicate.
mvn MVN{S}<c> <Rd>, <Operand2> Data Proc Moves bitwise inverse of value.
mvn MVN <Vd>.<T>, <Vn>.<T> SIMD Two Register Bitwise NOT of a vector.
mvn.w MVN.W <Rd>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit Move Inverse.
mvni MVNI <Vd>.<T>, #<imm8> {, lsl #<shift>} SIMD Modified Imm Moves the inverse of an immediate value into every element.
neg NEG <Vd>.<T>, <Vn>.<T> SIMD Two Register Negates integer elements.
neg NEG <Zdn>.<T>, <Pg>/M, <Zdn>.<T> SVE Integer Unary Negates integers.
nop NOP<c> System Does nothing.
nop NOP System Alias Does nothing. Used for padding or timing.
nop NOP Thumb System No op (Thumb 16-bit).
not NOT <Vd>.<T>, <Vn>.<T> SIMD Two Register Inverts all bits. (Alias for MVN).
not NOT <Zdn>.<T>, <Pg>/M, <Zdn>.<T> SVE Integer Unary Inverts bits.
orn ORN <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register ORs Vd with NOT of Vm.
orn ORN <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Logical (Register) ORs register with NOT of shifted register.
orn.w ORN.W <Rd>, <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit OR NOT.
orr ORR{S}<c> <Rd>, <Rn>, <Operand2> Data Proc Performs bitwise OR.
orr ORR <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Bitwise OR of two vectors.
orr ORR <Wd|Wsp>, <Wn>, #<imm> Logical (Immediate) ORs register with logical immediate.
orr ORR <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Logical (Register) ORs two registers.
orr ORR <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Logic Bitwise OR of two vectors under predicate.
orr.w ORR.W <Rd>, <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit OR.
orv ORV <Vd>, <Pg>, <Zn>.<T> SVE Reduction ORs all active elements into a scalar.
pacda PACDA <Xd>, <Xn|SP> Data Processing Signs a data pointer using Key A.
pacda PACDA <Xd>, <Xn> Data Processing Signs a data address using Key A.
pacdb PACDB <Xd>, <Xn|SP> Data Processing Signs a data pointer using Key B.
pacdb PACDB <Xd>, <Xn> Data Processing Signs a data address using Key B.
pacga PACGA <Xd>, <Xn>, <Xm> Data Processing Computes a pointer authentication code for an address and modifier.
pacia PACIA <Xd>, <Xn|SP> Data Processing Signs a pointer in Xd using Key A and modifier Xm (or SP).
pacia PACIA <Xd>, <Xn> Data Processing Signs an instruction address using Key A.
pacib PACIB <Xd>, <Xn|SP> Data Processing Signs a pointer in Xd using Key B.
pacib PACIB <Xd>, <Xn> Data Processing Signs an instruction address using Key B.
pfalse PFALSE <Pd>.B SVE Predicate Clears all elements of the predicate register.
pfirst PFIRST <Pd>.B, <Pg>, <Pn>.B SVE Predicate Sets destination predicate to true only at the first active element.
pkhbt PKHBT<c> <Rd>, <Rn>, <Rm> {, LSL #<imm>} Data Proc Combines bottom half of Rn with top half of shifted Rm.
pkhtb PKHTB<c> <Rd>, <Rn>, <Rm> {, ASR #<imm>} Data Proc Combines top half of Rn with bottom half of shifted Rm.
pld PLD [<Rn>, #<imm>] Load/Store Hints memory system to bring data into cache.
pldw PLDW [<Rn>, #<imm>] Load/Store Hints memory system to bring data into cache for writing.
pldw PLDW [<Rn>, #<imm>] Thumb Load/Store Hints memory system to bring data into cache for writing (Thumb).
pli PLI [<Rn>, #<imm>] Load/Store Hints memory system to bring instructions into cache.
pmul PMUL <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Performs polynomial multiplication over {0,1}.
pmull PMULL <Vd>.1Q, <Vn>.1D, <Vm>.1D Crypto Polynomial multiply long (NEON).
pmull PMULL <Vd>.<Td>, <Vn>.<Ts>, <Vm>.<Ts> SIMD Three Register Diff Performs polynomial multiplication over {0,1} producing wide result (Used for GCM).
pnext PNEXT <Pdn>.<T>, <Pg>, <Pdn>.<T> SVE Predicate Finds the next active predicate bit.
pop POP<c> <registers> Load Multiple Loads registers from stack (Alias for LDMIA SP!).
pop POP <registers> Thumb Load Multiple Pop registers from stack (Thumb 16-bit).
pop.w POP.W <registers> Thumb Load Multiple Thumb-2 32-bit Pop.
prfm PRFM <prfop>, [<Xn|SP>, #<pimm>] Load/Store Imm Signals the memory system to prefetch data into cache.
prfm PRFM <prfop>, <label> Load Literal Prefetches data from a PC-relative address.
prfm PRFM <prfop>, [<Xn|SP>, <R><m> {, <extend> <amount>}] Load/Store Reg Prefetches data using a register offset.
psb PSB CSYNC System Alias Synchronizes the statistical profiling unit.
pssbb PSSBB System Hint Prevents speculation on physical resources.
pssbb PSSBB System Hint Prevents speculation on physical resources (v8.0).
ptest PTEST <Pg>, <Pn>.B SVE Predicate Updates processor flags (NZCV) based on predicate state.
ptrue PTRUE <Pd>.<T> {, <pattern>} SVE Predicate Sets elements of the predicate register to true (all active).
push PUSH<c> <registers> Store Multiple Stores registers to stack (Alias for STMDB SP!).
push PUSH <registers> Thumb Store Multiple Push registers to stack (Thumb 16-bit).
push.w PUSH.W <registers> Thumb Store Multiple Thumb-2 32-bit Push.
qadd QADD<c> <Rd>, <Rm>, <Rn> Data Proc Adds two values and saturates the result.
qadd16 QADD16<c> <Rd>, <Rn>, <Rm> SIMD Integer Parallel saturating add of 2 signed halfwords.
qadd8 QADD8<c> <Rd>, <Rn>, <Rm> SIMD Integer Parallel saturating add of 4 signed bytes.
qdadd QDADD<c> <Rd>, <Rm>, <Rn> Data Proc Doubles the second operand, adds to first, and saturates.
qdsub QDSUB<c> <Rd>, <Rm>, <Rn> Data Proc Doubles the second operand, subtracts from first, and saturates.
qsub QSUB<c> <Rd>, <Rm>, <Rn> Data Proc Subtracts two values and saturates the result.
qsub16 QSUB16<c> <Rd>, <Rn>, <Rm> SIMD Integer Parallel saturating subtract of 2 signed halfwords.
qsub8 QSUB8<c> <Rd>, <Rn>, <Rm> SIMD Integer Parallel saturating subtract of 4 signed bytes.
rbit RBIT<c> <Rd>, <Rm> Data Proc Reverses bits in a 32-bit register.
rbit RBIT <Xd>, <Xn> Data Processing Reverses the bit order in a 64-bit register.
rbit RBIT <Wd>, <Wn> Data Processing Reverses the bit order in a register.
rbit RBIT <Rd>, <Rm> Thumb Misc Reverses bits in a 32-bit register.
rbit RBIT <Zd>.<T>, <Pg>/M, <Zn>.<T> SVE Permute Reverses bits in each element.
rcw RCW <Xt>, <Xt+1>, [<Xn>] Atomic Atomically reads, checks, and updates a 128-bit descriptor in memory (Translation Hardening).
rcw RCW <Xt>, <Xt+1>, [<Xn>] Atomic Atomically updates a 128-bit descriptor in memory (Translation Hardening).
rcwa RCWA <Xt>, <Xt+1>, [<Xn>] Atomic Read Check Write with Acquire semantics.
rcwal RCWAL <Xt>, <Xt+1>, [<Xn>] Atomic Read Check Write with Acquire and Release semantics.
rcws RCWS <Xt>, <Xt+1>, [<Xn>] Atomic Read Check Write with soft failure reporting (Translation Hardening).
ret RET {<Xn>} Branch Branches to address in LR (or specified register).
rev REV<c> <Rd>, <Rm> Data Proc Reverses bytes (Endian swap).
rev REV <Wd>, <Wn> Data Processing Reverses the byte order in a 32-bit register (Endianness swap).
rev REV <Xd>, <Xn> Data Processing Reverses the byte order in a 64-bit register.
rev REV <Rd>, <Rm> Thumb Data Proc Endian swap (Thumb).
rev REV <Wd>, <Wn> Data Processing Reverses byte order (Endian swap) in a 32-bit register.
rev REV <Rd>, <Rm> Thumb Misc Reverses bytes (Endian swap).
rev REV <Zd>.<T>, <Zn>.<T> SVE Permute Reverses the order of elements in the vector.
rev16 REV16 <Rd>, <Rm> Thumb Data Proc Reverse bytes in halfwords (Thumb).
rev16 REV16 <Wd>, <Wn> Data Processing Reverses bytes in each 16-bit halfword.
rev16 REV16 <Rd>, <Rm> Thumb Misc Reverses bytes in each 16-bit halfword.
rev32 REV32 <Xd>, <Xn> Data Processing Reverses bytes in each 32-bit word (64-bit op).
revb REVB <Zd>.<T>, <Pg>/M, <Zn>.<T> SVE Permute Reverses bytes within 16/32/64-bit elements.
revh REVH <Zd>.<T>, <Pg>/M, <Zn>.<T> SVE Permute Reverses halfwords within 32/64-bit elements.
revsh REVSH <Rd>, <Rm> Thumb Data Proc Reverse bytes in low halfword, sign extend (Thumb).
revsh REVSH <Rd>, <Rm> Thumb Misc Reverses bytes in low halfword and sign-extends.
revw REVW <Zd>.D, <Pg>/M, <Zn>.D SVE Permute Reverses words within 64-bit elements.
rfe RFE<c> <Rn>{!} System Loads PC and CPSR from the stack.
rmif RMIF <Xn>, #<shift>, #<mask> Data Processing Rotates a register and inserts bits into the Process State flags.
rndr RNDR <Xt> System Reads a random number from hardware entropy source.
rndrrs RNDRRS <Xt> System Reads a random number and requests reseed.
ror ROR{S}<c> <Rd>, <Rm>, <Rs> Data Proc Rotates register right.
rorv RORV <Wd>, <Wn>, <Wm> Data Processing Rotates register right by variable amount.
rrx RRX{S}<c> <Rd>, <Rm> Data Proc Shifts register right by 1, inserting Carry flag into MSB.
rrx RRX{S}.W <Rd>, <Rm> Thumb2 Data Proc Thumb-2 32-bit Rotate Right with Extend.
rsb RSB{S}<c> <Rd>, <Rn>, <Operand2> Data Proc Calculates Rd = Operand2 - Rn.
rsb RSB <Rd>, <Rn>, #0 Thumb Data Proc Reverse Subtract (Thumb 16-bit).
rsb.w RSB.W <Rd>, <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit reverse subtract.
rsc RSC{S}<c> <Rd>, <Rn>, <Operand2> Data Proc Calculates Rd = Operand2 - Rn - NOT(Carry).
sadd16 SADD16<c> <Rd>, <Rn>, <Rm> SIMD Integer Parallel add of two signed 16-bit halfwords.
sadd8 SADD8<c> <Rd>, <Rn>, <Rm> SIMD Integer Parallel add of four signed 8-bit bytes.
saddl SADDL <Vd>.<Td>, <Vn>.<Ts>, <Vm>.<Ts> SIMD Three Register Diff Adds lower/upper halves of signed vectors, producing wider result (Widening).
saddv SADDV <Vd>, <Pg>, <Zn>.<T> SVE Reduction Sums all active signed elements into a scalar result.
saddw SADDW <Vd>.<Td>, <Vn>.<Td>, <Vm>.<Ts> SIMD Three Register Diff Adds a wide vector to the lower/upper half of a narrow vector.
sb SB System Hint Prevents speculative execution across the barrier.
sb SB System Hint Prevents speculative execution across the barrier (v8.0).
sbc SBC{S}<c> <Rd>, <Rn>, <Operand2> Data Proc Calculates Rd = Rn - Operand2 - NOT(Carry).
sbc SBC <Wd>, <Wn>, <Wm> Data Processing Subtracts with borrow (Carry - 1).
sbc.w SBC.W <Rd>, <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit subtract with carry.
sbcs SBCS <Wd>, <Wn>, <Wm> Data Processing Subtracts with borrow and updates flags.
sbfm SBFM <Wd>, <Wn>, #<immr>, #<imms> Bitfield Extracts/Inserts bitfield with sign extension.
sbfx SBFX<c> <Rd>, <Rn>, #<lsb>, #<width> Data Proc Extracts bits from a register and sign-extends them.
sbfx SBFX <Rd>, <Rn>, #<lsb>, #<width> Thumb Bitfield Extracts and sign-extends bits.
scvtf SCVTF <Dd>, <Xn> Float Conversion Converts signed integer (scalar) to floating-point.
scvtf SCVTF <Hd|Sd|Dd>, <Wn|Xn> {, #<fbits>} FP Conversion Converts signed integer (GPR) to floating-point.
scvtf SCVTF <Zdn>.<T>, <Pg>/M, <Zdn>.<T> SVE Conversion Converts signed integers to floats.
sdiv SDIV<c> <Rd>, <Rn>, <Rm> Data Proc Signed integer division.
sdiv SDIV <Wd>, <Wn>, <Wm> Data Processing Divides two signed registers.
sdiv SDIV <Rd>, <Rn>, <Rm> Thumb Div Signed integer division.
sdiv SDIV <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Integer Binary Divides signed integers.
sdot SDOT <Vd>.4S, <Vn>.16B, <Vm>.16B NEON DotProd Dot product of signed integers (AArch64 NEON).
sdot SDOT { <Zd1>.S-<Zd2>.S }, <Zn>.B, <Zm>.B SME2 DotProd Multi-vector signed dot product (SME2).
sdot SDOT<c>.S8 <Qd>, <Qn>, <Qm> NEON 3-Reg Signed Dot Product (vector by vector).
sdot SDOT <Zda>.<T>, <Zn>.<Tb>, <Zm>.<Tb> SVE Dot Product Computes dot product of signed integers (AI Acceleration).
sel SEL<c> <Rd>, <Rn>, <Rm> Data Proc Selects bytes from Rn or Rm based on GE flags.
sel SEL <Zd>.<T>, <Pg>, <Zn>.<T>, <Zm>.<T> SVE Select Selects elements from Zn or Zm based on predicate.
setend SETEND <endian> System Sets the endianness for data accesses (BE/LE).
setend SETEND <endian> Thumb System Set endianness (Thumb).
setf16 SETF16 <Wn> System Sets PSTATE flags based on 16-bit operand.
setf8 SETF8 <Wn> System Sets PSTATE flags based on 8-bit operand.
setpan SETPAN #<imm> System Enables/Disables PAN (Prevents kernel accessing user memory).
sev SEV System Hint Sends an event to all processors.
sev SEV System Alias Sends an event to all processors in the cluster (wakes up WFE).
sev SEV Thumb System Send event (Thumb).
sevl SEVL System Hint Sends an event locally.
sevl SEVL System Alias Sends an event locally to the executing processor.
sevl SEVL Thumb System Send local event (Thumb).
sha1c SHA1C <Qd>, <Sn>, <Vm>.4S Crypto SHA1 hash choose (AArch64 NEON).
sha1c SHA1C.32 <Qd>, <Qn>, <Qm> Crypto 3-Reg SHA1 hash update (Choose).
sha1c SHA1C <Qd>, <Sn>, <Vm>.<T> Crypto SHA1 hash update (Choose function).
sha1h SHA1H <Sd>, <Sn> Crypto SHA1 hash update (AArch64 NEON).
sha1h SHA1H.32 <Qd>, <Qm> Crypto 2-Reg Updates SHA1 hash state.
sha1m SHA1M.32 <Qd>, <Qn>, <Qm> Crypto 3-Reg SHA1 hash update (Majority).
sha1m SHA1M <Qd>, <Sn>, <Vm>.<T> Crypto SHA1 hash update (Majority function).
sha1p SHA1P.32 <Qd>, <Qn>, <Qm> Crypto 3-Reg SHA1 hash update (Parity).
sha1p SHA1P <Qd>, <Sn>, <Vm>.<T> Crypto SHA1 hash update (Parity function).
sha256h SHA256H <Qd>, <Qn>, <Vm>.4S Crypto SHA256 hash part 1 (AArch64 NEON).
sha256h SHA256H <Qd>, <Qn>, <Vm>.<T> Crypto SHA256 hash update (part 1).
sha256h SHA256H.32 <Qd>, <Qn>, <Qm> Crypto 3-Reg SHA256 hash update (part 1).
sha256h2 SHA256H2 <Qd>, <Qn>, <Vm>.4S Crypto SHA256 hash part 2 (AArch64 NEON).
sha256h2 SHA256H2 <Qd>, <Qn>, <Vm>.<T> Crypto SHA256 hash update (part 2).
sha256h2 SHA256H2.32 <Qd>, <Qn>, <Qm> Crypto 3-Reg SHA256 hash update (part 2).
sha256su0 SHA256SU0.32 <Qd>, <Qm> Crypto 2-Reg SHA256 schedule update instruction 0.
sha256su1 SHA256SU1.32 <Qd>, <Qn>, <Qm> Crypto 3-Reg SHA256 schedule update instruction 1.
sha512h SHA512H.64 <Qd>, <Qn>, <Qm> Crypto 3-Reg SHA512 hash update part 1.
sha512h2 SHA512H2.64 <Qd>, <Qn>, <Qm> Crypto 3-Reg SHA512 hash update part 2.
sha512su0 SHA512SU0.64 <Qd>, <Qm> Crypto 2-Reg SHA512 schedule update instruction 0.
sha512su1 SHA512SU1.64 <Qd>, <Qn>, <Qm> Crypto 3-Reg SHA512 schedule update instruction 1.
shadd16 SHADD16<c> <Rd>, <Rn>, <Rm> SIMD Integer Signed add and halving (average) of 2 halfwords.
shadd8 SHADD8<c> <Rd>, <Rn>, <Rm> SIMD Integer Signed add and halving (average) of 4 bytes.
shl SHL <Vd>.<T>, <Vn>.<T>, #<shift> SIMD Shift Imm Shifts elements left by immediate value.
shll SHLL <Vd>.<Td>, <Vn>.<Ts>, #<shift> SIMD Shift Imm Shifts narrow vector left, extending to wide result.
shrn SHRN <Vd>.<Tb>, <Vn>.<Ta>, #<shift> SIMD Shift Imm Shifts wide vector right, narrowing to destination (Upper/Lower).
shsub16 SHSUB16<c> <Rd>, <Rn>, <Rm> SIMD Integer Signed subtract and halving of 2 halfwords.
shsub8 SHSUB8<c> <Rd>, <Rn>, <Rm> SIMD Integer Signed subtract and halving of 4 bytes.
sli SLI <Vd>.<T>, <Vn>.<T>, #<shift> SIMD Shift Imm Shifts source left and inserts into destination.
sm3partw1 SM3PARTW1.32 <Qd>, <Qn>, <Qm> Crypto 3-Reg SM3 schedule update part 1.
sm3partw2 SM3PARTW2.32 <Qd>, <Qn>, <Qm> Crypto 3-Reg SM3 schedule update part 2.
sm3ss1 SM3SS1.32 <Qd>, <Qn>, <Qm> Crypto 3-Reg SM3 cryptographic hash step 1.
sm3tt1a SM3TT1A.32 <Qd>, <Dn>, <Dm>, #<imm> Crypto Imm SM3 cryptographic hash step 2A.
sm3tt1b SM3TT1B.32 <Qd>, <Dn>, <Dm>, #<imm> Crypto Imm SM3 cryptographic hash step 2B.
sm3tt2a SM3TT2A.32 <Qd>, <Dn>, <Dm>, #<imm> Crypto Imm SM3 cryptographic hash step 3A.
sm3tt2b SM3TT2B.32 <Qd>, <Dn>, <Dm>, #<imm> Crypto Imm SM3 cryptographic hash step 3B.
sm4e SM4E.32 <Qd>, <Qm> Crypto 2-Reg SM4 encryption step.
sm4ekey SM4EKEY.32 <Qd>, <Qm> Crypto 2-Reg SM4 key schedule step.
smaddl SMADDL <Xd>, <Wn>, <Wm>, <Xa> Data Processing Multiplies two 32-bit registers, adds to 64-bit register (64-bit result).
smax SMAX <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Returns larger signed integer per element.
smax SMAX <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Integer Binary Determines maximum signed value per element.
smaxv SMAXV <V><d>, <Vn>.<T> SIMD Across Lane Finds the maximum signed value across the vector.
smaxv SMAXV <Vd>, <Pg>, <Zn>.<T> SVE Reduction Finds max signed element in vector.
smc SMC<c> #<imm> System Calls the Secure Monitor (EL3).
smc SMC #<imm> Thumb System Calls the Secure Monitor (EL3) from Thumb state.
smin SMIN <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Returns smaller signed integer per element.
smin SMIN <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Integer Binary Determines minimum signed value per element.
sminv SMINV <Vd>, <Pg>, <Zn>.<T> SVE Reduction Finds min signed element in vector.
smlabb SMLABB<c> <Rd>, <Rn>, <Rm>, <Ra> Multiply Accumulates (Rn.B * Rm.B) into Ra.
smlabt SMLABT<c> <Rd>, <Rn>, <Rm>, <Ra> Multiply Accumulates (Rn.B * Rm.T) into Ra.
smlad SMLAD{X}<c> <Rd>, <Rn>, <Rm>, <Ra> Multiply Dual multiply add + accumulate.
smlal SMLAL <Vd>.<Td>, <Vn>.<Ts>, <Vm>.<Ts> SIMD Three Register Diff Multiplies signed narrow vectors and adds to wide destination.
smlal SMLAL <RdLo>, <RdHi>, <Rn>, <Rm> Thumb Mul Signed Multiply Accumulate (64-bit result).
smlalbb SMLALBB<c> <RdLo>, <RdHi>, <Rn>, <Rm> Multiply Accumulates (Rn.B * Rm.B) into 64-bit pair.
smlalbt SMLALBT<c> <RdLo>, <RdHi>, <Rn>, <Rm> Multiply Accumulates (Rn.B * Rm.T) into 64-bit pair.
smlald SMLALD{X}<c> <RdLo>, <RdHi>, <Rn>, <Rm> Multiply Dual multiply add + 64-bit accumulate.
smlaltb SMLALTB<c> <RdLo>, <RdHi>, <Rn>, <Rm> Multiply Accumulates (Rn.T * Rm.B) into 64-bit pair.
smlaltt SMLALTT<c> <RdLo>, <RdHi>, <Rn>, <Rm> Multiply Accumulates (Rn.T * Rm.T) into 64-bit pair.
smlatb SMLATB<c> <Rd>, <Rn>, <Rm>, <Ra> Multiply Accumulates (Rn.T * Rm.B) into Ra.
smlatt SMLATT<c> <Rd>, <Rn>, <Rm>, <Ra> Multiply Accumulates (Rn.T * Rm.T) into Ra.
smlawb SMLAWB<c> <Rd>, <Rn>, <Rm>, <Ra> Multiply Performs SMULWB and adds to accumulator.
smlawt SMLAWT<c> <Rd>, <Rn>, <Rm>, <Ra> Multiply Performs SMULWT and adds to accumulator.
smlsd SMLSD{X}<c> <Rd>, <Rn>, <Rm>, <Ra> Multiply Dual multiply subtract + accumulate.
smlsld SMLSLD{X}<c> <RdLo>, <RdHi>, <Rn>, <Rm> Multiply Dual multiply subtract + 64-bit accumulate.
smmla SMMLA{R}<c> <Rd>, <Rn>, <Rm>, <Ra> Multiply SMMUL + Accumulate.
smmla SMMLA <Vd>.<T>, <Vn>.<T>, <Vm>.<T> NEON 3-Reg Performs 2x2 matrix multiplication on Signed Int8 tiles.
smmul SMMUL{R}<c> <Rd>, <Rn>, <Rm> Multiply Multiplies and returns the top 32-bits of the 64-bit result.
smsubl SMSUBL <Xd>, <Wn>, <Wm>, <Xa> Data Processing Calculates (Xa - (Wn * Wm)) (64-bit result).
smuad SMUAD{X}<c> <Rd>, <Rn>, <Rm> Multiply Performs two 16x16 multiplies and adds results (Top*Top + Bot*Bot).
smulbb SMULBB<c> <Rd>, <Rn>, <Rm> Multiply Multiplies the bottom 16 bits of Rn and Rm.
smulbt SMULBT<c> <Rd>, <Rn>, <Rm> Multiply Multiplies the bottom 16 bits of Rn and top 16 bits of Rm.
smulh SMULH <Xd>, <Xn>, <Xm> Data Processing Multiplies two 64-bit registers, keeps high 64 bits.
smull SMULL <Vd>.<Td>, <Vn>.<Ts>, <Vm>.<Ts> SIMD Three Register Diff Multiplies signed narrow vectors, producing wider result.
smull SMULL <RdLo>, <RdHi>, <Rn>, <Rm> Thumb Mul Signed Multiply (64-bit result).
smultb SMULTB<c> <Rd>, <Rn>, <Rm> Multiply Multiplies the top 16 bits of Rn and bottom 16 bits of Rm.
smultt SMULTT<c> <Rd>, <Rn>, <Rm> Multiply Multiplies the top 16 bits of Rn and top 16 bits of Rm.
smulwb SMULWB<c> <Rd>, <Rn>, <Rm> Multiply Multiplies 32-bit Rn by bottom 16-bits of Rm, takes top 32-bits.
smulwt SMULWT<c> <Rd>, <Rn>, <Rm> Multiply Multiplies 32-bit Rn by top 16-bits of Rm, takes top 32-bits.
smusd SMUSD{X}<c> <Rd>, <Rn>, <Rm> Multiply Performs two 16x16 multiplies and subtracts results.
splice SPLICE <Zdn>.<T>, <Pg>, <Zdn>.<T>, <Zm>.<T> SVE Permute Splices two vectors based on the last active element of the first.
sqadd SQADD <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Adds signed integers with saturation.
sqsub SQSUB <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Subtracts signed integers with saturation.
sqxtn SQXTN <Vd>.<Tb>, <Vn>.<Ta> SIMD Shift Imm Reads wide elements, saturates, and narrows.
sri SRI <Vd>.<T>, <Vn>.<T>, #<shift> SIMD Shift Imm Shifts source right and inserts into destination.
srs SRS<c> SP{!}, #<mode> System Stores LR and SPSR to the stack of a specific mode.
ssat SSAT<c> <Rd>, #<imm>, <Rm> {, <shift>} Data Proc Saturates a signed value to a specified bit width.
ssat16 SSAT16<c> <Rd>, #<imm>, <Rm> Data Proc Saturates two signed 16-bit values.
ssbb SSBB System Hint Prevents speculative loads bypassing earlier stores (v8.0).
sshr SSHR <Vd>.<T>, <Vn>.<T>, #<shift> SIMD Shift Imm Shifts elements right (arithmetic/sign-extending).
ssra SSRA <Vd>.<T>, <Vn>.<T>, #<shift> SIMD Shift Imm Arithmetic right shift and add to destination.
ssub16 SSUB16<c> <Rd>, <Rn>, <Rm> SIMD Integer Parallel sub of two signed 16-bit halfwords.
ssubl SSUBL <Vd>.<Td>, <Vn>.<Ts>, <Vm>.<Ts> SIMD Three Register Diff Subtracts signed narrow vectors, producing wider result.
st1 ST1 { <Vt>.<T>, ... }, [<Xn|SP>] SIMD Load/Store Stores one element structure from 1-4 registers to memory.
st1b ST1B { <Zt>.B }, <Pg>, [<Xn|SP>] SVE Store Stores active bytes from vector to memory.
st1d ST1D { <Zt>.D }, <Pg>, [<Xn|SP>] SVE Store Stores active doublewords from vector to memory.
st1h ST1H { <Zt>.H }, <Pg>, [<Xn|SP>] SVE Store Stores active halfwords from vector to memory.
st1w ST1W { <Zt>.S }, <Pg>, [<Xn|SP>] SVE Store Stores active words from vector to memory.
st1w ST1W { <Zt>.S }, <Pg>, [<Xn|SP>, <Zm>.S, SXTW #<shift>] SVE Scatter Stores words to non-contiguous addresses.
st2 ST2 { <Vt1>.<T>, <Vt2>.<T> }, [<Xn|SP>] SIMD Load/Store Stores two-element structures from two registers to memory (Interleave).
st2g ST2G <Xt|SP>, [<Xn|SP>, #<simm>] Load/Store Stores Allocation Tags to two granules.
st2g ST2G <Xt|SP>, [<Xn|SP>, #<simm>] Load/Store Stores the Allocation Tag to two memory granules.
st3 ST3 { <Vt1>.<T>, <Vt2>.<T>, <Vt3>.<T> }, [<Xn|SP>] SIMD Load/Store Stores three-element structures from three registers (Interleave RGB).
st4 ST4 { <Vt1>.<T>, <Vt2>.<T>, <Vt3>.<T>, <Vt4>.<T> }, [<Xn|SP>] SIMD Load/Store Stores four-element structures from four registers (Interleave RGBA).
st64b ST64B <Xt>, [<Xn|SP>] Load/Store Stores a 64-byte block of data atomically.
st64bv ST64BV <Ws>, <Xt>, [<Xn|SP>] Load/Store Stores 64 bytes atomically and returns status (Success/Fail).
st64bv0 ST64BV0 <Ws>, <Xt>, [<Xn|SP>] Load/Store Stores 64 bytes (eliding the first 8 bytes as zero) and returns status.
stc STC{L}<c> <coproc>, <CRd>, [<Rn>, #+/-<imm>]{!} Coprocessor Stores coprocessor contents to memory.
stc2 STC2{L}<c> <coproc>, <CRd>, [<Rn>, #+/-<imm>]{!} Coprocessor Stores coprocessor contents to memory (Extension encoding).
stg STG <Xt|SP>, [<Xn|SP>, #<simm>] Load/Store Stores the Allocation Tag to memory.
stg STG <Xt|SP>, [<Xn|SP>, #<simm>] Load/Store Stores the Allocation Tag to memory.
stgp STGP <Xt>, <Xt2>, [<Xn|SP>, #<simm>] Load/Store Stores Tag and two 64-bit data values.
stl STL<c> <Rt>, [<Rn>] Load/Store Stores a word with Release semantics.
stlex STLEX<c> <Rd>, <Rt>, [<Rn>] Load/Store Stores a word with Release Exclusive semantics.
stlexb STLEXB<c> <Rd>, <Rt>, [<Rn>] Store Excl Stores a byte with Release semantics if exclusive.
stlexd STLEXD<c> <Rd>, <Rt>, <Rt2>, [<Rn>] Store Excl Stores a doubleword with Release semantics if exclusive.
stlexh STLEXH<c> <Rd>, <Rt>, [<Rn>] Store Excl Stores a halfword with Release semantics if exclusive.
stlr STLR <Wt>, [<Xn|SP>] Load/Store Stores a word with Release semantics.
stlrb STLRB <Wt>, [<Xn|SP>] Load/Store Stores a byte with Release semantics.
stlrh STLRH <Wt>, [<Xn|SP>] Load/Store Stores a halfword with Release semantics.
stlxr STLXR <Ws>, <Wt>, [<Xn|SP>] Load/Store Excl Stores a word with Release Exclusive semantics.
stlxrb STLXRB <Ws>, <Wt>, [<Xn|SP>] Load/Store Excl Stores a byte with Release Exclusive semantics.
stlxrh STLXRH <Ws>, <Wt>, [<Xn|SP>] Load/Store Excl Stores a halfword with Release Exclusive semantics.
stm STM<mode><c> <Rn>{!}, <registers> Store Multiple Stores multiple registers to memory.
stm STM <Rn>!, <registers> Thumb Store Multiple Store multiple registers (Thumb 16-bit).
stm.w STM.W <Rn>{!}, <registers> Thumb Store Multiple Thumb-2 32-bit Store Multiple.
stnp STNP <Wt1>, <Wt2>, [<Xn|SP>, #<imm>] Load/Store Pair Stores two registers, hinting non-temporal data.
stp STP <Wt1>, <Wt2>, [<Xn|SP>, #<imm>] Load/Store Pair Stores two 32-bit registers.
stp STP <Xt1>, <Xt2>, [<Xn|SP>, #<imm>] Load/Store Pair Stores two 64-bit registers.
stp STP <St1|Dt1|Qt1>, <St2|Dt2|Qt2>, [<Xn|SP>, #<imm>] Load/Store Pair Stores two floating-point/SIMD registers.
str STR<c> <Rt>, [<Rn>, #+/-<imm>]{!} Load/Store Stores a word to memory.
str STR <Wt>, [<Xn|SP>, #<pimm>] Load/Store Imm Stores a register to memory (Immediate offset).
str STR <Wt>, [<Xn|SP>, <R><m> {, <extend> <amount>}] Load/Store Reg Stores a register to memory (Register offset).
str STR <Bt|Ht|St|Dt|Qt>, [<Xn|SP>, #<pimm>] Load/Store Stores a floating-point/SIMD register to memory.
str.w STR.W <Rt>, [<Rn>, #<imm>] Thumb Store Thumb-2 32-bit Store Word.
strb STRB <Wt>, [<Xn|SP>, #<pimm>] Load/Store Stores the low byte of a register.
strb STRB <Wt>, [<Xn|SP>, <R><m> {, <extend> <amount>}] Load/Store Stores the low byte of a register using register offset.
strb.w STRB.W <Rt>, [<Rn>, #<imm>] Thumb Store Thumb-2 32-bit Store Byte.
strbt STRBT<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Stores a byte using User Mode permissions.
strd STRD <Rt>, <Rt2>, [<Rn>, #+/-<imm>] Thumb Store Stores two words to memory (Thumb).
strex STREX <Rd>, <Rt>, [<Rn>] Thumb Store Excl Stores word if exclusive monitor is open (Thumb).
strexb STREXB<c> <Rd>, <Rt>, [<Rn>] Load/Store Excl Stores a byte if address is still exclusive.
strexb STREXB <Rd>, <Rt>, [<Rn>] Thumb Store Excl Stores byte exclusively (Thumb).
strexd STREXD<c> <Rd>, <Rt>, <Rt2>, [<Rn>] Load/Store Excl Stores a doubleword if address is still exclusive.
strexh STREXH<c> <Rd>, <Rt>, [<Rn>] Load/Store Excl Stores a halfword if address is still exclusive.
strexh STREXH <Rd>, <Rt>, [<Rn>] Thumb Store Excl Stores halfword exclusively (Thumb).
strh STRH <Wt>, [<Xn|SP>, #<pimm>] Load/Store Stores the low halfword of a register.
strh STRH <Wt>, [<Xn|SP>, <R><m> {, <extend> <amount>}] Load/Store Stores the low halfword of a register using register offset.
strh.w STRH.W <Rt>, [<Rn>, #<imm>] Thumb Store Thumb-2 32-bit Store Halfword.
strht STRHT<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Stores a halfword using User Mode permissions.
strt STRT<c> <Rt>, [<Rn>, #+/-<imm>] Load/Store Stores a word using User Mode permissions.
sttr STTR <Wt>, [<Xn|SP>, #<simm>] Load/Store Stores a register as if in EL0 (User mode).
sttrb STTRB <Wt>, [<Xn|SP>, #<simm>] Load/Store Stores a byte as if in EL0.
sttrh STTRH <Wt>, [<Xn|SP>, #<simm>] Load/Store Stores a halfword as if in EL0.
stur STUR <Wt>, [<Xn|SP>, #<simm>] Load/Store Stores a register using an unscaled immediate offset.
sturb STURB <Wt>, [<Xn|SP>, #<simm>] Load/Store Stores a byte using an unscaled immediate offset.
sturh STURH <Wt>, [<Xn|SP>, #<simm>] Load/Store Stores a halfword using an unscaled immediate offset.
stxp STXP <Ws>, <Wt1>, <Wt2>, [<Xn|SP>] Load/Store Excl Stores two registers if exclusive monitor matches.
stxr STXR <Ws>, <Wt>, [<Xn|SP>] Load/Store Excl Stores a word if exclusive monitor matches.
stxrb STXRB <Ws>, <Wt>, [<Xn|SP>] Load/Store Excl Stores a byte if exclusive monitor matches.
stxrh STXRH <Ws>, <Wt>, [<Xn|SP>] Load/Store Excl Stores a halfword if exclusive monitor matches.
stz2g STZ2G <Xt|SP>, [<Xn|SP>, #<simm>] Load/Store Stores Allocation Tags and zeros two granules.
stz2g STZ2G <Xt|SP>, [<Xn|SP>, #<simm>] Load/Store Stores Tag and zeros memory for two granules.
stzg STZG <Xt|SP>, [<Xn|SP>, #<simm>] Load/Store Stores the Allocation Tag and zeros the data granule.
sub SUB{S}<c> <Rd>, <Rn>, <Operand2> Data Proc Subtracts two values.
sub SUB <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Subtracts elements of Vm from Vn.
sub SUB <Wd|Wsp>, <Wn|Wsp>, <Wm> {, <extend> {#<amount>}} Data Processing Subtracts extended register from register.
sub SUB <Wd|Wsp>, <Wn|Wsp>, #<imm> {, lsl #<shift>} Data Processing Subtracts immediate from register.
sub SUB <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Data Processing Subtracts shifted register from register.
sub SUB <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Integer Binary Subtracts vector Zm from Zdn under predicate.
sub.w SUB.W <Rd>, <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit subtract.
subg SUBG <Xd|SP>, <Xn|SP>, #<uimm6>, #<uimm4> Data Processing Subtracts an immediate from an address, modifying the Allocation Tag (MTE).
subp SUBP <Xd>, <Xn|SP>, <Xm|SP> Data Processing Subtracts pointers ignoring Tags.
subp SUBP <Xd>, <Xn|SP>, <Xm|SP> Data Processing Subtracts pointers (ignoring tags) to get difference.
subs SUBS <Wd>, <Wn|Wsp>, <Wm> {, <extend> {#<amount>}} Data Processing Subtracts extended register and updates flags.
subs SUBS <Wd>, <Wn|Wsp>, #<imm> {, lsl #<shift>} Data Processing Subtracts immediate and updates flags.
subs SUBS <Wd>, <Wn>, <Wm> {, <shift> #<amount>} Data Processing Subtracts shifted register and updates flags.
subs SUBS PC, LR, #<imm> Data Proc Subs PC, LR, #imm (Exception return mechanism).
subs SUBS PC, LR, #<imm> Thumb Data Proc Subs PC, LR, #imm (Exception return mechanism).
sudot SUDOT <Vd>.<T>, <Vn>.<T>, <Vm>.<T>[<index>] NEON 3-Reg Dot product of Signed Int8 and Unsigned Int8 (Indexed).
sunpkhi SUNPKHI <Zd>.<T>, <Zn>.<Tb> SVE Permute Unpacks and sign-extends upper half of vector elements.
sunpklo SUNPKLO <Zd>.<T>, <Zn>.<Tb> SVE Permute Unpacks and sign-extends lower half of vector elements.
svc SVC #<imm> Thumb System System Call (Thumb encoding).
svc SVC<c> #<imm> System System call (formerly SWI).
svc SVC #<imm> Exception Generates a Supervisor Call exception (system call to OS).
swp SWP <Ws>, <Wt>, [<Xn|SP>] Atomic Atomically swaps a value in memory (LSE).
swp SWP<c> <Rt>, <Rt2>, [<Rn>] Load/Store Atomic swap word (Legacy).
sxtab SXTAB<c> <Rd>, <Rn>, <Rm> {, <rotation>} Data Proc Sign-extends a byte from Rm and adds to Rn.
sxtab16 SXTAB16<c> <Rd>, <Rn>, <Rm> {, <rotation>} Data Proc Sign-extends two bytes and adds to two halfwords.
sxtah SXTAH<c> <Rd>, <Rn>, <Rm> {, <rotation>} Data Proc Sign-extends a halfword and adds to Rn.
sxtb SXTB <Wd>, <Wn> Bitfield Extracts the lowest 8 bits and sign-extends to 32 bits (Alias for SBFM).
sxtb SXTB<c> <Rd>, <Rm> {, <rotation>} Data Proc Sign-extends the low byte (8-bits) to 32-bits.
sxtb SXTB <Rd>, <Rm> Thumb Data Proc Sign-extends byte to word (Thumb).
sxtb16 SXTB16<c> <Rd>, <Rm> {, <rotation>} Data Proc Sign-extends two bytes to two halfwords.
sxth SXTH<c> <Rd>, <Rm> {, <rotation>} Data Proc Sign-extends the low halfword (16-bits) to 32-bits.
sxth SXTH <Rd>, <Rm> Thumb Data Proc Sign-extends halfword to word (Thumb).
sxtw SXTW <Xd>, <Wn> Bitfield Sign-extends a 32-bit register to 64 bits (Alias for SBFM).
sys SYS #<op1>, Cn, Cm, #<op2> {, <Xt>} System Executes a system instruction (cache/TLB maintenance).
tbb TBB [<Rn>, <Rm>] Thumb Branch PC-relative branch using a table of bytes (Switch statements).
tbh TBH [<Rn>, <Rm>, LSL #1] Thumb Branch PC-relative branch using a table of halfwords.
tbl TBL <Vd>.<T>, { <Vn>.16B, ... }, <Vm>.<T> SIMD Table Look up elements in a table of vectors using indices.
tbl TBL <Zd>.<T>, <Zn>.<T>, <Zm>.<T> SVE Permute Looks up elements in a vector table using indices.
tbnz TBNZ <Wt|Xt>, #<imm>, <label> Branch Branches if specified bit is 1.
tbz TBZ <Wt|Xt>, #<imm>, <label> Branch Branches if specified bit is 0.
tcommit TCOMMIT System Commits the current transaction.
teq TEQ<c> <Rn>, <Operand2> Data Proc Bitwise Exclusive OR and update flags (discard result).
teq.w TEQ.W <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit Test Equivalence (XOR and update flags).
tlbi TLBI VMALLE1IS System Invalidates all TLB entries in the inner shareable domain.
tlbi TLBI VAE1, <Xt> System Invalidates TLB entries by Virtual Address.
tlbi TLBI <op> {, <Xt>} System Alias Invalidates Translation Lookaside Buffer entries.
trcit TRCIT <Xt> System Generates a trace packet.
trn1 TRN1 <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Permute Transposes elements (Lower).
trn1 TRN1 <Zd>.<T>, <Zn>.<T>, <Zm>.<T> SVE Permute Interleaves even elements from two vectors.
trn2 TRN2 <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Permute Transposes elements (Upper).
trn2 TRN2 <Zd>.<T>, <Zn>.<T>, <Zm>.<T> SVE Permute Interleaves odd elements from two vectors.
tsb TSB CSYNC System Hint Ensures trace generation is complete.
tsb TSB CSYNC System Hint Ensures trace generation is complete (v8.2).
tst TST<c> <Rn>, <Operand2> Data Proc Bitwise AND and update flags (discard result).
tst.w TST.W <Rn>, <Operand2> Thumb2 Data Proc Thumb-2 32-bit Test (AND and update flags).
tstart TSTART <Xd> System Starts a memory transaction. Returns 0 if successful.
ttest TTEST <Xd> System Tests the transaction nesting depth.
uadd16 UADD16<c> <Rd>, <Rn>, <Rm> SIMD Integer Parallel add of two unsigned 16-bit halfwords.
uadd8 UADD8<c> <Rd>, <Rn>, <Rm> SIMD Integer Parallel add of four unsigned 8-bit bytes.
uaddl UADDL <Vd>.<Td>, <Vn>.<Ts>, <Vm>.<Ts> SIMD Three Register Diff Adds lower/upper halves of unsigned vectors, producing wider result.
uaddv UADDV <Vd>, <Pg>, <Zn>.<T> SVE Reduction Sums all active unsigned elements into a scalar result.
uaddw UADDW <Vd>.<Td>, <Vn>.<Td>, <Vm>.<Ts> SIMD Three Register Diff Adds a wide vector to the lower/upper half of a narrow vector (Unsigned).
ubfm UBFM <Wd>, <Wn>, #<immr>, #<imms> Bitfield Extracts/Inserts bitfield (Zero Extend).
ubfx UBFX<c> <Rd>, <Rn>, #<lsb>, #<width> Data Proc Extracts bits from a register and zero-extends them.
ubfx UBFX <Rd>, <Rn>, #<lsb>, #<width> Thumb Bitfield Extracts and zero-extends bits.
ucvtf UCVTF <Hd|Sd|Dd>, <Wn|Xn> {, #<fbits>} FP Conversion Converts unsigned integer (GPR) to floating-point.
ucvtf UCVTF <Zdn>.<T>, <Pg>/M, <Zdn>.<T> SVE Conversion Converts unsigned integers to floats.
udf UDF #<imm> System Permanently undefined instruction (generates Undefined Instruction exception).
udf UDF #<imm> Thumb System Permanently undefined instruction (Thumb).
udiv UDIV<c> <Rd>, <Rn>, <Rm> Data Proc Unsigned integer division.
udiv UDIV <Wd>, <Wn>, <Wm> Data Processing Divides two unsigned registers.
udiv UDIV <Rd>, <Rn>, <Rm> Thumb Div Unsigned integer division.
udiv UDIV <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Integer Binary Divides unsigned integers.
udot UDOT <Vd>.4S, <Vn>.16B, <Vm>.16B NEON DotProd Dot product of unsigned integers (AArch64 NEON).
udot UDOT { <Zd1>.S-<Zd2>.S }, <Zn>.B, <Zm>.B SME2 DotProd Multi-vector unsigned dot product (SME2).
udot UDOT<c>.U8 <Qd>, <Qn>, <Qm> NEON 3-Reg Unsigned Dot Product (vector by vector).
udot UDOT <Zda>.<T>, <Zn>.<Tb>, <Zm>.<Tb> SVE Dot Product Computes dot product of unsigned integers.
uhadd16 UHADD16<c> <Rd>, <Rn>, <Rm> SIMD Integer Unsigned average of 2 halfwords.
uhadd8 UHADD8<c> <Rd>, <Rn>, <Rm> SIMD Integer Unsigned average of 4 bytes.
uhsub16 UHSUB16<c> <Rd>, <Rn>, <Rm> SIMD Integer Unsigned halving subtract of 2 halfwords.
uhsub8 UHSUB8<c> <Rd>, <Rn>, <Rm> SIMD Integer Unsigned halving subtract of 4 bytes.
umaal UMAAL<c> <RdLo>, <RdHi>, <Rn>, <Rm> Multiply Calculates (Rn * Rm) + RdLo + RdHi -> 64-bit result.
umaddl UMADDL <Xd>, <Wn>, <Wm>, <Xa> Data Processing Multiplies two 32-bit regs, adds to 64-bit reg (Unsigned).
umax UMAX <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Returns larger unsigned integer per element.
umax UMAX <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Integer Binary Determines maximum unsigned value per element.
umaxv UMAXV <Vd>, <Pg>, <Zn>.<T> SVE Reduction Finds max unsigned element in vector.
umin UMIN <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Returns smaller unsigned integer per element.
umin UMIN <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> SVE Integer Binary Determines minimum unsigned value per element.
uminv UMINV <V><d>, <Vn>.<T> SIMD Across Lane Finds the minimum unsigned value across the vector.
uminv UMINV <Vd>, <Pg>, <Zn>.<T> SVE Reduction Finds min unsigned element in vector.
umlal UMLAL <Vd>.<Td>, <Vn>.<Ts>, <Vm>.<Ts> SIMD Three Register Diff Multiplies unsigned narrow vectors and adds to wide destination.
umlal UMLAL{S}<c> <RdLo>, <RdHi>, <Rn>, <Rm> Multiply Unsigned (Rn * Rm) + 64-bit Accumulator.
umlal UMLAL <RdLo>, <RdHi>, <Rn>, <Rm> Thumb Mul Unsigned Multiply Accumulate (64-bit result).
ummla UMMLA <Vd>.<T>, <Vn>.<T>, <Vm>.<T> NEON 3-Reg Performs 2x2 matrix multiplication on Unsigned Int8 tiles.
umsubl UMSUBL <Xd>, <Wn>, <Wm>, <Xa> Data Processing Calculates (Xa - (Wn * Wm)) (Unsigned 64-bit).
umulh UMULH <Xd>, <Xn>, <Xm> Data Processing Multiplies two 64-bit registers, keeps high 64 bits (Unsigned).
umull UMULL <Vd>.<Td>, <Vn>.<Ts>, <Vm>.<Ts> SIMD Three Register Diff Multiplies unsigned narrow vectors, producing wider result.
umull UMULL{S}<c> <RdLo>, <RdHi>, <Rn>, <Rm> Multiply Unsigned (Rn * Rm) -> 64-bit Result.
umull UMULL <RdLo>, <RdHi>, <Rn>, <Rm> Thumb Mul Unsigned Multiply (64-bit result).
uqadd UQADD <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Adds unsigned integers with saturation.
uqadd16 UQADD16<c> <Rd>, <Rn>, <Rm> SIMD Integer Unsigned saturating add of 2 halfwords.
uqadd8 UQADD8<c> <Rd>, <Rn>, <Rm> SIMD Integer Unsigned saturating add of 4 bytes.
uqsub UQSUB <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Three Register Subtracts unsigned integers with saturation.
uqsub16 UQSUB16<c> <Rd>, <Rn>, <Rm> SIMD Integer Unsigned saturating subtract of 2 halfwords.
uqsub8 UQSUB8<c> <Rd>, <Rn>, <Rm> SIMD Integer Unsigned saturating subtract of 4 bytes.
uqxtn UQXTN <Vd>.<Tb>, <Vn>.<Ta> SIMD Shift Imm Reads wide unsigned elements, saturates, and narrows.
urecpe URECPE <Vd>.<T>, <Vn>.<T> SIMD Two Register Estimates reciprocal for unsigned integers.
usad8 USAD8<c> <Rd>, <Rn>, <Rm> SIMD Integer Computes sum of absolute differences of bytes (Video Codec).
usada8 USADA8<c> <Rd>, <Rn>, <Rm>, <Ra> SIMD Integer USAD8 plus accumulator.
usat USAT<c> <Rd>, #<imm>, <Rm> {, <shift>} Data Proc Saturates an unsigned value to a specified bit width.
usat16 USAT16<c> <Rd>, #<imm>, <Rm> Data Proc Saturates two unsigned 16-bit values.
usdot USDOT<c>.S8 <Qd>, <Qn>, <Qm> NEON 3-Reg Dot product of unsigned and signed integers.
usdot USDOT <Vd>.<T>, <Vn>.<T>, <Vm>.<T> NEON 3-Reg Dot product of Unsigned Int8 and Signed Int8.
ushr USHR <Vd>.<T>, <Vn>.<T>, #<shift> SIMD Shift Imm Shifts elements right (logical).
usmmla USMMLA <Vd>.<T>, <Vn>.<T>, <Vm>.<T> NEON 3-Reg Matrix multiply Unsigned Int8 with Signed Int8.
usra USRA <Vd>.<T>, <Vn>.<T>, #<shift> SIMD Shift Imm Logical right shift and add to destination.
usub16 USUB16<c> <Rd>, <Rn>, <Rm> SIMD Integer Parallel sub of two unsigned 16-bit halfwords.
usubl USUBL <Vd>.<Td>, <Vn>.<Ts>, <Vm>.<Ts> SIMD Three Register Diff Subtracts unsigned narrow vectors, producing wider result.
uunpkhi UUNPKHI <Zd>.<T>, <Zn>.<Tb> SVE Permute Unpacks and zero-extends upper half of vector elements.
uunpklo UUNPKLO <Zd>.<T>, <Zn>.<Tb> SVE Permute Unpacks and zero-extends lower half of vector elements.
uxtab UXTAB<c> <Rd>, <Rn>, <Rm> {, <rotation>} Data Proc Zero-extends a byte and adds to Rn.
uxtab16 UXTAB16<c> <Rd>, <Rn>, <Rm> {, <rotation>} Data Proc Zero-extends two bytes and adds to two halfwords.
uxtah UXTAH<c> <Rd>, <Rn>, <Rm> {, <rotation>} Data Proc Zero-extends a halfword and adds to Rn.
uxtb UXTB<c> <Rd>, <Rm> {, <rotation>} Data Proc Zero-extends the low byte to 32-bits.
uxtb UXTB <Rd>, <Rm> Thumb Data Proc Zero-extends byte to word (Thumb).
uxtb16 UXTB16<c> <Rd>, <Rm> {, <rotation>} Data Proc Zero-extends two bytes to two halfwords.
uxth UXTH<c> <Rd>, <Rm> {, <rotation>} Data Proc Zero-extends the low halfword to 32-bits.
uxth UXTH <Rd>, <Rm> Thumb Data Proc Zero-extends halfword to word (Thumb).
uzp1 UZP1 <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Permute De-interleaves lower halves (Selects odd elements).
uzp1 UZP1 <Zd>.<T>, <Zn>.<T>, <Zm>.<T> SVE Permute Selects even elements from concatenated vectors.
uzp2 UZP2 <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Permute De-interleaves upper halves (Selects even elements).
uzp2 UZP2 <Zd>.<T>, <Zn>.<T>, <Zm>.<T> SVE Permute Selects odd elements from concatenated vectors.
vaba VABA<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Computes absolute difference and adds to accumulator.
vabal VABAL<c>.<dt> <Qd>, <Dn>, <Dm> NEON 3-Reg Computes absolute difference of narrow elements and adds to wide acc.
vabd VABD<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Computes absolute difference between elements.
vabdl VABDL<c>.<dt> <Qd>, <Dn>, <Dm> NEON 3-Reg Computes absolute difference of narrow elements to wide result.
vabs VABS<c>.F32 <Sd>, <Sm> VFP Unary Calculates absolute value.
vabs VABS<c>.<dt> <Qd>, <Qm> NEON 2-Reg Calculates absolute value of integer/float elements.
vabs VABS<c>.F64 <Dd>, <Dm> VFP Unary Absolute value of double-precision register.
vacge VACGE<c>.F32 <Qd>, <Qn>, <Qm> NEON 3-Reg Compares absolute values (|Vn| >= |Vm|).
vacgt VACGT<c>.F32 <Qd>, <Qn>, <Qm> NEON 3-Reg Compares absolute values (|Vn| > |Vm|).
vadd VADD<c>.F32 <Sd>, <Sn>, <Sm> VFP Arith Adds two floating-point values.
vadd VADD<c>.F64 <Dd>, <Dn>, <Dm> VFP Arith Adds two double-precision floating-point values.
vadd VADD<c>.I<size> <Qd>, <Qn>, <Qm> NEON 3-Reg Adds integer elements of two vectors.
vaddhn VADDHN<c>.<dt> <Dd>, <Qn>, <Qm> NEON 3-Reg Adds 2N-bit elements, selects high N-bits for result.
vaddl VADDL<c>.<dt> <Qd>, <Dn>, <Dm> NEON 3-Reg Adds N-bit elements, producing 2N-bit results.
vaddw VADDW<c>.<dt> <Qd>, <Qn>, <Dm> NEON 3-Reg Adds N-bit vector to 2N-bit vector.
vand VAND<c> <Qd>, <Qn>, <Qm> NEON 3-Reg Bitwise AND of two vectors.
vbfcvt VBFCVT<c>.BF16.F32 <Qd>, <Qm> NEON BFloat16 Converts Float32 to BFloat16.
vbfdot VBFDOT<c>.BF16 <Qd>, <Qn>, <Qm> NEON BFloat16 BFloat16 dot product to float32 accumulator.
vbfmmla VBFMMLA<c>.BF16 <Qd>, <Qn>, <Qm> NEON BFloat16 BFloat16 matrix multiply-accumulate.
vbic VBIC<c> <Qd>, <Qn>, <Qm> NEON 3-Reg ANDs Vd with NOT of Vm (Vd & ~Vm).
vbif VBIF<c> <Qd>, <Qm>, <Qn> NEON 3-Reg Inserts bits from Vm into Vd where Vn (mask) is 0.
vbit VBIT<c> <Qd>, <Qm>, <Qn> NEON 3-Reg Inserts bits from Vm into Vd where Vn (mask) is 1.
vbsl VBSL<c> <Qd>, <Qn>, <Qm> NEON 3-Reg Selects bits from Vn or Vm based on Vd (mask).
vcadd VCADD<c>.I<size> <Qd>, <Qn>, <Qm>, #<rot> NEON Complex Complex integer addition with rotation (NEON).
vceq VCEQ<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Sets destination bits to all 1s if elements equal, else 0s.
vcge VCGE<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Compares elements (>=) and sets result mask.
vcgt VCGT<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Compares elements (>) and sets result mask.
vcle VCLE<c>.<dt> <Qd>, <Qn>, <Qm> NEON Alias Compares elements (<=). Alias for VCGE with swapped operands.
vcls VCLS<c>.<dt> <Qd>, <Qm> NEON 2-Reg Counts number of consecutive sign bits.
vclt VCLT<c>.<dt> <Qd>, <Qn>, <Qm> NEON Alias Compares elements (<). Alias for VCGT with swapped operands.
vclz VCLZ<c>.<dt> <Qd>, <Qm> NEON 2-Reg Counts number of consecutive zeros.
vcmla VCMLA<c>.I<size> <Qd>, <Qn>, <Qm>, #<rot> NEON Complex Complex integer multiply-accumulate with rotation.
vcmp VCMP<c>.F32 <Sd>, <Sm> VFP Compare Compares two floating-point values.
vcmp VCMP<c>.F32 <Sd>, #0.0 VFP Compare Compares a floating-point value with #0.0.
vcmp VCMP<c>.F64 <Dd>, <Dm> VFP Compare Compares two double-precision values.
vcmpe VCMPE<c>.F32 <Sd>, <Sm> VFP Compare Compares values and raises exception on NaN.
vcnt VCNT<c>.8 <Qd>, <Qm> NEON 2-Reg Population count (number of 1s) per byte.
vcvt VCVT<c>.<Td>.<Tm> <Sd>, <Sm> VFP Convert Converts float to signed/unsigned integer.
vcvt VCVT<c>.<Td>.<Tm> <Qd>, <Qm>, #<fbits> VFP Convert Converts between floating-point and fixed-point.
vcvta VCVTA<c>.<dt>.F32 <Qd>, <Qm> NEON 2-Reg Converts float to integer, rounding to nearest.
vcvta VCVTA<c>.<dt>.F64 <Sd>, <Dm> VFP Convert Converts double to integer, rounding to nearest.
vcvtb VCVTB<c>.F16.F32 <Sd>, <Sm> VFP Convert Converts single-precision to half-precision (Bottom half).
vcvtb VCVTB<c>.F16.F32 <Sd>, <Sm> VFP Convert Converts single-precision to half-precision (Bottom).
vcvtm VCVTM<c>.<dt>.F32 <Qd>, <Qm> NEON 2-Reg Converts float to integer, rounding towards -Inf (Floor).
vcvtn VCVTN<c>.<dt>.F32 <Qd>, <Qm> NEON 2-Reg Converts float to integer, rounding to nearest even.
vcvtn VCVTN<c>.<dt>.F64 <Sd>, <Dm> VFP Convert Converts double to integer, rounding to nearest even.
vcvtp VCVTP<c>.<dt>.F32 <Qd>, <Qm> NEON 2-Reg Converts float to integer, rounding towards +Inf (Ceil).
vcvtt VCVTT<c>.F16.F32 <Sd>, <Sm> VFP Convert Converts single-precision to half-precision (Top half).
vcvtt VCVTT<c>.F16.F32 <Sd>, <Sm> VFP Convert Converts single-precision to half-precision (Top).
vdiv VDIV<c>.F32 <Sd>, <Sn>, <Sm> VFP Arith Divides two floating-point values.
vdiv VDIV<c>.F64 <Dd>, <Dn>, <Dm> VFP Arith Divides two double-precision registers.
vdup VDUP<c>.<dt> <Qd>, <Dm[x]> NEON Scalar Duplicates a scalar value to all lanes of a vector.
veor VEOR<c> <Qd>, <Qn>, <Qm> NEON 3-Reg Bitwise XOR of two vectors.
vext VEXT<c>.8 <Qd>, <Qn>, <Qm>, #<imm> NEON Extract Extracts a new vector from a pair of vectors (Sliding window).
vfma VFMA<c>.F32 <Qd>, <Qn>, <Qm> NEON 3-Reg Computes Vd = Vd + (Vn * Vm) with single rounding.
vfma VFMA<c>.F64 <Qd>, <Qn>, <Qm> VFP Arith Fused multiply-add (Double).
vfms VFMS<c>.F32 <Qd>, <Qn>, <Qm> NEON 3-Reg Computes Vd = Vd - (Vn * Vm) with single rounding.
vfms VFMS<c>.F64 <Qd>, <Qn>, <Qm> VFP Arith Fused multiply-subtract (Double).
vfnma VFNMA<c>.F32 <Sd>, <Sn>, <Sm> VFP Arith Computes Vd = Vd - (Vn * Vm).
vfnms VFNMS<c>.F32 <Sd>, <Sn>, <Sm> VFP Arith Computes Vd = -Vd + (Vn * Vm).
vhadd VHADD<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Add elements and shift right by 1 (Average).
vhsub VHSUB<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Subtract elements and shift right by 1.
vjcvt VJCVT<c>.S32.F64 <Sd>, <Dm> VFP Convert Converts double to signed 32-bit integer (JS semantics).
vld1 VLD1<c>.<size> <list>, [<Rn>]{!} NEON Load Loads vector data from memory (interleaved or sequential).
vld2 VLD2<c>.<size> <list>, [<Rn>]{!} NEON Load De-interleaves 2 streams of data while loading.
vld3 VLD3<c>.<size> <list>, [<Rn>]{!} NEON Load Loads three-element structures (e.g., RGB) and de-interleaves them into three registers.
vld4 VLD4<c>.<size> <list>, [<Rn>]{!} NEON Load Loads four-element structures (e.g., RGBA) and de-interleaves them into four registers.
vldm VLDM<c><mode> <Rn>{!}, <list> VFP Load Multiple Loads multiple VFP registers from memory.
vldr VLDR<c> <Sd>, [<Rn>, #+/-<imm>] VFP Load Loads a floating-point register from memory.
vmax VMAX<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Selects maximum value from elements.
vmaxnm VMAXNM<c>.F64 <Dd>, <Dn>, <Dm> VFP Misc Returns larger double-precision value, handling NaNs.
vmaxnm VMAXNM<c>.F32 <Qd>, <Qn>, <Qm> NEON 3-Reg Returns larger value, handling NaNs per IEEE 754-2008.
vmin VMIN<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Selects minimum value from elements.
vminnm VMINNM<c>.F64 <Dd>, <Dn>, <Dm> VFP Misc Returns smaller double-precision value, handling NaNs.
vminnm VMINNM<c>.F32 <Qd>, <Qn>, <Qm> NEON 3-Reg Returns smaller value, handling NaNs per IEEE 754-2008.
vmla VMLA<c>.F32 <Sd>, <Sn>, <Sm> VFP Arith Sd = Sd + (Sn * Sm).
vmla VMLA<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Multiplies and adds to accumulator.
vmls VMLS<c>.F32 <Sd>, <Sn>, <Sm> VFP Arith Sd = Sd - (Sn * Sm).
vmls VMLS<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Multiplies and subtracts from accumulator.
vmmla VMMLA<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Matrix multiply-accumulate (BFloat16/Int8).
vmov VMOV<c>.F32 <Sd>, <Sm> VFP Move Moves data between VFP registers.
vmov VMOV<c> <Sn>, <Rt> VFP Transfer Moves data between Core registers (R) and VFP registers (S).
vmov VMOV<c>.<dt> <Qd>, #<imm> NEON Imm Moves immediate value into vector.
vmov VMOV<c>.F64 <Dd>, <Dm> VFP Move Moves data between Double registers.
vmov VMOV<c> <Rt>, <Rt2>, <Dm> VFP Transfer Moves a Double register to/from two Core registers.
vmovl VMOVL<c>.<dt> <Qd>, <Dm> NEON 2-Reg Copies N-bit elements to 2N-bit elements (Widening).
vmovn VMOVN<c>.<dt> <Dd>, <Qm> NEON 2-Reg Copies 2N-bit elements to N-bit elements (Narrowing).
vmrs VMRS<c> <Rt>, <spec_reg> VFP System Reads a VFP system register (like FPSCR).
vmsr VMSR<c> <spec_reg>, <Rt> VFP System Writes to a VFP system register.
vmul VMUL<c>.F32 <Sd>, <Sn>, <Sm> VFP Arith Multiplies two floating-point values.
vmul VMUL<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Multiplies elements.
vmull VMULL<c>.<dt> <Qd>, <Dn>, <Dm> NEON 3-Reg Multiplies N-bit elements producing 2N-bit results.
vmvn VMVN<c> <Qd>, <Qm> NEON 2-Reg Moves bitwise inverse of immediate/register.
vneg VNEG<c>.F32 <Sd>, <Sm> VFP Unary Negates the value.
vneg VNEG<c>.<dt> <Qd>, <Qm> NEON 2-Reg Negates integer/float elements.
vneg VNEG<c>.F64 <Dd>, <Dm> VFP Unary Negates double-precision register.
vnmul VNMUL<c>.F32 <Sd>, <Sn>, <Sm> VFP Arith Sd = -(Sn * Sm).
vorn VORN<c> <Qd>, <Qn>, <Qm> NEON 3-Reg Bitwise OR with NOT (Vd = Vn | ~Vm).
vorr VORR<c> <Qd>, <Qn>, <Qm> NEON 3-Reg Bitwise OR of two vectors.
vpadal VPADAL<c>.<dt> <Qd>, <Qm> NEON 2-Reg Adds adjacent pairs and accumulates into wide destination.
vpadd VPADD<c>.<dt> <Dd>, <Dn>, <Dm> NEON 3-Reg Adds adjacent pairs of elements.
vpaddl VPADDL<c>.<dt> <Qd>, <Qm> NEON 2-Reg Adds adjacent pairs and produces wide result.
vpmax VPMAX<c>.<dt> <Dd>, <Dn>, <Dm> NEON 3-Reg Maximum of adjacent pairs.
vpmin VPMIN<c>.<dt> <Dd>, <Dn>, <Dm> NEON 3-Reg Minimum of adjacent pairs.
vpop VPOP <list> VFP Load Multiple Pops VFP registers from the stack (Alias for VLDMIA SP!).
vpush VPUSH <list> VFP Store Multiple Pushes VFP registers to the stack (Alias for VSTMDB SP!).
vqadd VQADD<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Adds elements with saturation.
vqdmlal VQDMLAL<c>.<dt> <Qd>, <Dn>, <Dm> NEON 3-Reg Multiplies, doubles, saturates, and adds to accumulator (High precision DSP).
vqdmlsl VQDMLSL<c>.<dt> <Qd>, <Dn>, <Dm> NEON 3-Reg Multiplies, doubles, saturates, and subtracts from accumulator.
vqdmulh VQDMULH<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Multiplies, doubles, saturates, and keeps high half.
vqdmull VQDMULL<c>.<dt> <Qd>, <Dn>, <Dm> NEON 3-Reg Multiplies narrow elements, doubles, and saturates into wide elements.
vqrdmulh VQRDMULH<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Fixed-point multiply with rounding and saturation.
vqrshl VQRSHL<c>.<dt> <Qd>, <Qm>, <Qn> NEON 3-Reg Shifts left with saturation and rounding.
vqrshrn VQRSHRN<c>.<dt> <Dd>, <Qm>, #<imm> NEON Shift Shifts right, saturates, rounds, and narrows.
vqshl VQSHL<c>.<dt> <Qd>, <Qm>, <Qn> NEON 3-Reg Shifts left with saturation based on register.
vqshl VQSHL<c>.<dt> <Qd>, <Qm>, #<imm> NEON Shift Shifts left with saturation based on immediate.
vqshlu VQSHLU<c>.<dt> <Qd>, <Qm>, #<imm> NEON Shift Shifts signed elements left, saturating to unsigned result.
vqshr VQSHR<c>.U<size> <Qd>, <Qm>, #<imm> NEON Shift Shifts right with saturation (Unsigned).
vqshrn VQSHRN<c>.<dt> <Dd>, <Qm>, #<imm> NEON Shift Shifts right, saturates, and narrows.
vqsub VQSUB<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Subtracts elements with saturation.
vraddhn VRADDHN<c>.<dt> <Dd>, <Qn>, <Qm> NEON 3-Reg Adds wide elements, rounds, and returns high narrow half.
vrecpe VRECPE<c>.<dt> <Qd>, <Qm> NEON 2-Reg Estimates reciprocal (1/x).
vrecps VRECPS<c>.F32 <Qd>, <Qn>, <Qm> NEON 3-Reg Newton-Raphson step for reciprocal refinement: (2 - Vn * Vm).
vrev16 VREV16<c>.<dt> <Qd>, <Qm> NEON 2-Reg Reverses bytes within 16-bit halfwords.
vrev32 VREV32<c>.<dt> <Qd>, <Qm> NEON 2-Reg Reverses elements within 32-bit words.
vrev64 VREV64<c>.<dt> <Qd>, <Qm> NEON 2-Reg Reverses elements within 64-bit doublewords.
vrinta VRINTA<c>.F32 <Qd>, <Qm> NEON 2-Reg Rounds float to integral float (Nearest).
vrintm VRINTM<c>.F32 <Sd>, <Sm> VFP Unary Rounds float towards Minus Infinity (Floor).
vrintm VRINTM<c>.F64 <Dd>, <Dm> VFP Unary Rounds double towards Minus Infinity (Floor).
vrintn VRINTN<c>.F32 <Qd>, <Qm> NEON 2-Reg Rounds float to integral float (Nearest Even).
vrintp VRINTP<c>.F32 <Sd>, <Sm> VFP Unary Rounds float towards Plus Infinity (Ceil).
vrintp VRINTP<c>.F64 <Dd>, <Dm> VFP Unary Rounds double towards Plus Infinity (Ceil).
vrintr VRINTR<c>.F32 <Sd>, <Sm> VFP Unary Rounds float to integral float using FPSCR rounding mode.
vrintx VRINTX<c>.F32 <Sd>, <Sm> VFP Unary Rounds float to integral float, raising Inexact exception.
vrintz VRINTZ<c>.F32 <Qd>, <Qm> NEON 2-Reg Rounds float to integral float (Towards Zero).
vrshl VRSHL<c>.<dt> <Qd>, <Qm>, <Qn> NEON 3-Reg Shifts left with rounding based on a register value.
vrshr VRSHR<c>.<dt> <Qd>, <Qm>, #<imm> NEON Shift Shifts right with rounding based on immediate.
vrshrn VRSHRN<c>.<dt> <Dd>, <Qm>, #<imm> NEON Shift Shifts right, rounds, and narrows (2N -> N bits).
vrsqrte VRSQRTE<c>.<dt> <Qd>, <Qm> NEON 2-Reg Estimates reciprocal square root (1/sqrt(x)).
vrsqrts VRSQRTS<c>.F32 <Qd>, <Qn>, <Qm> NEON 3-Reg Newton-Raphson step for reciprocal sqrt refinement: (3 - Vn * Vm) / 2.
vrsra VRSRA<c>.<dt> <Qd>, <Qm>, #<imm> NEON Shift Shifts right with rounding and adds to accumulator.
vrsubhn VRSUBHN<c>.<dt> <Dd>, <Qn>, <Qm> NEON 3-Reg Subtracts wide elements, rounds, and returns high narrow half.
vsel VSEL<cond>.F64 <Dd>, <Dn>, <Dm> VFP Misc Selects between two double-precision registers based on flags.
vsel VSEL<cond>.F32 <Sd>, <Sn>, <Sm> VFP Misc Selects elements from Dn or Dm based on condition flags (predicated VFP).
vshl VSHL<c>.<dt> <Qd>, <Qm>, #<imm> NEON Shift Shifts elements left.
vshr VSHR<c>.<dt> <Qd>, <Qm>, #<imm> NEON Shift Shifts elements right.
vshrn VSHRN<c>.<dt> <Dd>, <Qm>, #<imm> NEON Shift Shifts right and narrows result.
vsli VSLI<c>.<size> <Qd>, <Qm>, #<imm> NEON Shift Shifts bits left and inserts into destination (merging).
vsmmla VSMMLA<c>.S8 <Qd>, <Qn>, <Qm> NEON MatMul Matrix multiply-accumulate (Signed Int8).
vsqrt VSQRT<c>.F32 <Sd>, <Sm> VFP Unary Calculates square root.
vsqrt VSQRT<c>.F64 <Dd>, <Dm> VFP Unary Square root of double-precision register.
vsra VSRA<c>.<dt> <Qd>, <Qm>, #<imm> NEON Shift Shifts elements right and adds to the destination accumulator.
vsri VSRI<c>.<size> <Qd>, <Qm>, #<imm> NEON Shift Shifts bits right and inserts into destination.
vst1 VST1<c>.<size> <list>, [<Rn>]{!} NEON Store Stores vector data to memory.
vst3 VST3<c>.<size> <list>, [<Rn>]{!} NEON Store Interleaves and stores three registers into memory (e.g., RGB).
vst4 VST4<c>.<size> <list>, [<Rn>]{!} NEON Store Interleaves and stores four registers into memory (e.g., RGBA).
vstm VSTM<c><mode> <Rn>{!}, <list> VFP Store Multiple Stores multiple VFP registers to memory.
vstr VSTR<c> <Sd>, [<Rn>, #+/-<imm>] VFP Store Stores a floating-point register to memory.
vsub VSUB<c>.F32 <Sd>, <Sn>, <Sm> VFP Arith Subtracts two floating-point values.
vsub VSUB<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Subtracts integer elements.
vsubhn VSUBHN<c>.<dt> <Dd>, <Qn>, <Qm> NEON 3-Reg Subtracts wide elements and returns high narrow half.
vswp VSWP<c> <Qd>, <Qm> NEON 2-Reg Swaps the contents of two vectors.
vtbl VTBL<c>.8 <Dd>, <list>, <Dm> NEON Table Look up elements in a vector table.
vtbx VTBX<c>.8 <Dd>, <list>, <Dm> NEON Table Inserts elements into a vector using a table lookup.
vtrn VTRN<c>.<dt> <Qd>, <Qm> NEON 2-Reg Transposes elements of two vectors.
vtst VTST<c>.<dt> <Qd>, <Qn>, <Qm> NEON 3-Reg Tests if any bits match (Vd = (Vn & Vm) != 0).
vummla VUMMLA<c>.U8 <Qd>, <Qn>, <Qm> NEON MatMul Matrix multiply-accumulate (Unsigned Int8).
vusdot VUSDOT<c>.S8 <Qd>, <Qn>, <Qm> NEON DotProd Dot product of unsigned (src1) and signed (src2) bytes.
vusmmla VUSMMLA<c>.S8 <Qd>, <Qn>, <Qm> NEON MatMul Matrix multiply-accumulate (Unsigned x Signed Int8).
vuzp VUZP<c>.<dt> <Qd>, <Qm> NEON 2-Reg De-interleaves vectors.
vzip VZIP<c>.<dt> <Qd>, <Qm> NEON 2-Reg Interleaves vectors.
wfe WFE System Hint Enters low-power state until an event occurs.
wfe WFE System Alias Puts the processor into a low-power state until an event occurs.
wfe WFE Thumb System Wait for event (Thumb).
wfet WFET <Wn> System Waits for an event or a timeout (using a counter).
wfi WFI System Hint Enters low-power state until an interrupt occurs.
wfi WFI System Alias Puts the processor into a low-power state until an interrupt occurs.
wfi WFI Thumb System Wait for interrupt (Thumb).
wfit WFIT <Wn> System Waits for an interrupt or a timeout.
whilehi WHILEHI <Pd>.<T>, <Xn>, <Xm> SVE Compare Generates predicate for unsigned loop (while Xn > Xm).
whilehs WHILEHS <Pd>.<T>, <Xn>, <Xm> SVE Compare Generates predicate for unsigned loop (while Xn >= Xm).
whilele WHILELE <Pd>.<T>, <Xn>, <Xm> SVE Compare Scalar Generates a predicate based on loop counter (while Xn <= Xm).
whilelo WHILELO <Pd>.<T>, <Xn>, <Xm> SVE Compare Generates predicate for unsigned loop (while Xn < Xm).
whilels WHILELS <Pd>.<T>, <Xn>, <Xm> SVE Compare Generates predicate for unsigned loop (while Xn <= Xm).
xpacd XPACD <Xd> Data Processing Removes the PAC signature from a data pointer.
xpaci XPACI <Xd> Data Processing Removes the PAC signature from an instruction pointer.
xpaclri XPACLRI System Removes the pointer authentication code from an instruction address.
xtn XTN <Vd>.<Tb>, <Vn>.<Ta> SIMD Shift Imm Reads elements, narrows them, and writes to lower half of destination.
yield YIELD System Hint Hints that the task is performing a spin-wait.
yield YIELD System Alias Hints that the current thread is performing a spin-wait loop.
yield YIELD Thumb System Yield hint (Thumb).
zip1 ZIP1 <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Permute Interleaves the lower halves of two vectors.
zip1 ZIP1 <Zd>.<T>, <Zn>.<T>, <Zm>.<T> SVE Permute Interleaves elements from the lower halves.
zip2 ZIP2 <Vd>.<T>, <Vn>.<T>, <Vm>.<T> SIMD Permute Interleaves the upper halves of two vectors.
zip2 ZIP2 <Zd>.<T>, <Zn>.<T>, <Zm>.<T> SVE Permute Interleaves elements from the upper halves.