Mnemonic Syntax Format Summary
add add RT, RA, RB XO-form Adds the contents of two registers.
addc addc RT, RA, RB XO-form Adds two registers and updates the Carry Architecture (CA) bit.
adde adde RT, RA, RB XO-form Adds two registers plus the current Carry bit.
addi addi RT, RA, SI D-form Adds a 16-bit signed immediate value to a register.
addic addic RT, RA, SI D-form Adds an immediate to a register and updates the Carry bit.
addic. addic. RT, RA, SI D-form Adds an immediate, updates Carry, and updates Condition Register Field 0 (CR0).
addis addis RT, RA, SI D-form Adds a 16-bit immediate shifted left by 16 bits to a register.
addme addme RT, RA XO-form Adds a register, -1, and the Carry bit.
addze addze RT, RA XO-form Adds a register, 0, and the Carry bit.
and and RA, RS, RB X-form Performs a bitwise AND between two registers.
andc andc RA, RS, RB X-form Performs a bitwise AND between RS and the one's complement of RB.
andi. andi. RA, RS, UI D-form Performs a bitwise AND between a register and a 16-bit unsigned immediate (zero-extended). Always updates CR0.
andis. andis. RA, RS, UI D-form Performs a bitwise AND between a register and a 16-bit immediate shifted left by 16 bits. Always updates CR0.
attn attn X-form Stops execution and alerts the hardware debugger.
b b target_addr I-form Unconditionally branches to a target address relative to the current instruction pointer.
ba ba target_addr I-form Unconditionally branches to an absolute address.
bc bc BO, BI, target_addr B-form Branches conditionally based on the Count Register (CTR) and/or a bit in the Condition Register (CR).
bcctr bcctr BO, BI XL-form Branches to the address in the Count Register (CTR) if the condition is met. Used for computed jumps and switch statements.
bcdcfn. bcdcfn. vD, vB, PS VX-form Converts BCD National format to Signed Packed BCD.
bcdcfsq. bcdcfsq. vD, vB, PS VX-form Converts a 128-bit signed integer to BCD.
bcdcfz. bcdcfz. vD, vB, PS VX-form Converts BCD Zoned format to Signed Packed BCD.
bcdctn. bcdctn. vD, vB VX-form Converts Signed Packed BCD to National format.
bcdctsq. bcdctsq. vD, vB VX-form Converts BCD to a 128-bit signed integer.
bcdctz. bcdctz. vD, vB, PS VX-form Converts Signed Packed BCD to Zoned format.
bclr bclr BO, BI XL-form Branches to the address in the Link Register (LR) if the condition is met. Used for function returns.
bctar bctar BO, BI, BH XL-form Branches to the address in the TAR. Used for fast indirect jumps (JIT).
bl bl target_addr I-form Branches to a target address and saves the return address (CIA + 4) in the Link Register (LR). Used for function calls.
bpermd bpermd RA, RS, RB X-form Permutes bits from RS based on the index values in RB. Highly optimized for bit shuffling.
cfuged cfuged RA, RS, RB X-form Separates bits of the source register into two groups based on a mask (Power10 Scalar).
clrbhrb clrbhrb X-form Clears the hardware branch history buffer (Performance tuning).
cmp cmp BF, L, RA, RB X-form Compares two registers as signed integers and records the result in the specified Condition Register Field.
cmpb cmpb RA, RS, RB X-form Compares bytes in two GPRs, result is byte mask.
cmpeqb cmpeqb RA, RS, RB X-form Compares bytes in two GPRs for equality (Scalar).
cmpi cmpi BF, L, RA, SI D-form Compares a register to a 16-bit signed immediate.
cmpl cmpl BF, L, RA, RB X-form Compares two registers as unsigned integers.
cmpli cmpli BF, L, RA, UI D-form Compares a register to a 16-bit unsigned immediate.
cmprb cmprb BF, L, RA, RB X-form Compares a byte against a range of values. (Is byte in [min, max]?)
cntlzd cntlzd RA, RS X-form Counts the number of consecutive 0 bits starting from bit 0 (MSB of 64-bit reg).
cntlzdm cntlzdm RA, RS, RB X-form Counts leading zeros in RS, but only considering bits set in mask RB.
cntlzw cntlzw RA, RS X-form Counts the number of consecutive 0 bits starting from bit 32 (MSB of the low word).
cnttzd cnttzd RA, RS X-form Counts the number of trailing zeros in 64-bits.
cnttzdm cnttzdm RA, RS, RB X-form Counts trailing zeros in RS, but only considering bits set in mask RB.
cnttzw cnttzw RA, RS X-form Counts the number of trailing zeros in the low 32-bits.
copy copy RA, RB X-form Initiates a hardware copy (accelerator) operation.
cp_abort cp_abort X-form Aborts a hardware accelerator copy-paste sequence.
crand crand BT, BA, BB XL-form Performs a bitwise AND between two bits in the Condition Register.
crc32b crc32b RA, RS X-form Accumulates a CRC32 checksum using the low byte of RS.
crc32d crc32d RA, RS X-form Accumulates a CRC32 checksum using the doubleword in RS.
crc32h crc32h RA, RS X-form Accumulates a CRC32 checksum using the low halfword of RS.
crc32w crc32w RA, RS X-form Accumulates a CRC32 checksum using the word in RS.
cror cror BT, BA, BB XL-form Performs a bitwise OR between two bits in the Condition Register.
crxor crxor BT, BA, BB XL-form Performs a bitwise XOR between two bits in the Condition Register. Used to clear CR bits (crxor x,x,x).
dadd dadd FRT, FRA, FRB X-form Adds two 64-bit Decimal Floating Point (DFP) numbers. Used in financial calculations to avoid rounding errors.
daddq daddq vD, vA, vB X-form Adds two 128-bit DFP numbers.
darn darn RT, L X-form Returns a random number from the hardware RNG. (L=3: Raw, L=1: Conditioned, L=0: 32-bit).
dcba dcba RA, RB X-form Allocates a cache block without loading from memory (optimization for overwrite).
dcbf dcbf RA, RB X-form Flushes the cache block from the data cache to main memory and invalidates it. Used for DMA coherency.
dcbi dcbi RA, RB X-form Invalidates a cache block (Privileged).
dcblc dcblc CT, RA, RB X-form Clears a cache line lock.
dcbst dcbst RA, RB X-form Writes the cache block to main memory if it is modified (Clean), but keeps it in the cache.
dcbt dcbt TH, RA, RB X-form Hints to the hardware to prefetch the cache block at the specified address into the cache.
dcbtls dcbtls CT, RA, RB X-form Locks a cache line in the L1 cache.
dcbtst dcbtst TH, RA, RB X-form Prefetches a cache block signaling intent to modify (RFO - Read For Ownership).
dcbtst dcbtst CT, RA, RB X-form Prefetches a cache block for writing (RFO).
dcbz dcbz RA, RB X-form Zeros out an entire cache block (usually 128 bytes) in memory. Critical for optimizing memory clears (memset).
dcbzl dcbzl RA, RB X-form Zeros a cache block (implementation defined size).
dccci dccci RA, RB X-form Invalidates a congruence class in the data cache (Embedded).
dcffix dcffix FRT, FRB X-form Converts a 64-bit integer to DFP.
dcffixq dcffixq vD, vB X-form Converts 64-bit integer to 128-bit DFP.
dcmpo dcmpo BF, FRA, FRB X-form Compares two DFP numbers (Signaling on NaN).
dcmpoq dcmpoq BF, vA, vB X-form Compares two 128-bit DFP numbers (Signaling).
dcmpu dcmpu BF, FRA, FRB X-form Compares two DFP numbers (Non-signaling on NaN).
dcmpuq dcmpuq BF, vA, vB X-form Compares two 128-bit DFP numbers (Non-signaling).
dcread dcread RT, RA, RB X-form Reads a data cache tag or data (Debug).
dctdp dctdp FRT, FRB X-form Converts DFP Short (32-bit compressed) to DFP Long (64-bit).
dctfix dctfix FRT, FRB X-form Converts DFP to a 64-bit integer.
dctfixq dctfixq vD, vB X-form Converts 128-bit DFP to 64-bit integer.
dctqpq dctqpq vD, FRB X-form Converts DFP Long (64-bit) to DFP Quad (128-bit).
ddedpd ddedpd FRT, FRB, SP X-form Decodes BCD to DFP format.
ddedpdq ddedpdq vD, vB, SP X-form Decodes BCD to 128-bit DFP.
ddiv ddiv FRT, FRA, FRB X-form Divides two 64-bit Decimal Floating Point numbers.
ddivq ddivq vD, vA, vB X-form Divides two 128-bit DFP numbers.
denbcd denbcd FRT, FRB, S X-form Encodes a DFP number into BCD format.
denbcdq denbcdq vD, vB, S X-form Encodes 128-bit DFP to BCD.
diex diex FRT, FRA, FRB X-form Combines a sign/coefficient from FRA and exponent from FRB.
diexq diexq vD, vA, vB X-form Inserts exponent into 128-bit DFP.
divd divd RT, RA, RB XO-form Divides the 64-bit value in RA by the 64-bit value in RB (Signed).
divde divde RT, RA, RB XO-form 64-bit extended division.
divdeu divdeu RT, RA, RB XO-form 64-bit extended unsigned division.
divdu divdu RT, RA, RB XO-form Divides the 64-bit value in RA by the 64-bit value in RB (Unsigned).
divsq divsq vD, vA, vB VX-form Divides a 128-bit signed integer by a 128-bit signed integer (using VSX pairs).
divuq divuq vD, vA, vB VX-form Divides a 128-bit unsigned integer by a 128-bit unsigned integer.
divw divw RT, RA, RB XO-form Divides the lower 32 bits of RA by the lower 32 bits of RB (Signed).
divwe divwe RT, RA, RB XO-form 32-bit extended division.
divweu divweu RT, RA, RB XO-form 32-bit extended unsigned division.
divwu divwu RT, RA, RB XO-form Divides the lower 32 bits of RA by the lower 32 bits of RB (Unsigned).
dmul dmul FRT, FRA, FRB X-form Multiplies two 64-bit Decimal Floating Point numbers.
dmulq dmulq vD, vA, vB X-form Multiplies two 128-bit DFP numbers.
doze doze X-form Enters Doze power-saving mode (Supervisor only).
dqua dqua FRT, FRA, FRB X-form Adjusts the exponent of a DFP number to match a reference. Critical for aligning decimal points before addition.
dquaq dquaq vD, vA, vB X-form Adjusts exponent of 128-bit DFP number.
drdpq drdpq FRT, vB X-form Rounds DFP Quad (128-bit) to DFP Long (64-bit).
drrndq drrndq vD, vA, vB X-form Rerounds a 128-bit DFP number to fewer digits.
drsp drsp FRT, FRB X-form Rounds DFP Long (64-bit) to DFP Short (32-bit compressed).
dscli dscli FRT, FRA, SH Z23-form Shifts the coefficient of a DFP number left.
dsri dsri FRT, FRA, SH Z23-form Shifts the coefficient of a DFP number right.
dss dss STRM X-form Stops a data stream prefetch operation.
dssall dssall X-form Stops all active data stream prefetch operations.
dst dst RA, RB, STRM X-form Initiates a hardware data stream prefetch (AltiVec Legacy).
dstst dstst RA, RB, STRM X-form Initiates a prefetch for writing.
dststt dststt RA, RB, STRM X-form Initiates a transient prefetch for writing.
dstt dstt RA, RB, STRM X-form Initiates a transient (non-temporal) data stream prefetch.
dsub dsub FRT, FRA, FRB X-form Subtracts two 64-bit Decimal Floating Point numbers.
dsubq dsubq vD, vA, vB X-form Subtracts two 128-bit DFP numbers.
dtstsfi dtstsfi BF, U, FRB X-form Tests DFP significance (number of digits).
dtstsfiq dtstsfiq BF, U, FRB X-form Tests DFP Quad significance.
dxex dxex FRT, FRB X-form Extracts the exponent from a DFP number.
dxexq dxexq vD, vB X-form Extracts exponent from 128-bit DFP.
e_add e_add RT, RA, RB E-form Adds two registers. (RT = RA + RB)
e_add16i e_add16i RT, RA, SI E-form Adds 16-bit immediate.
e_add16is e_add16is RT, RA, SI E-form Adds a 16-bit immediate shifted left by 16 bits.
e_addc e_addc RT, RA, RB E-form Adds two registers and updates Carry (CA).
e_adde e_adde RT, RA, RB E-form Adds two registers and the Carry bit.
e_addi e_addi RT, RA, SI E-form Adds immediate to register.
e_addme e_addme RT, RA E-form Adds register to -1 with Carry.
e_addze e_addze RT, RA E-form Adds register to 0 with Carry.
e_and e_and RT, RA, RB E-form Bitwise AND.
e_and2i e_and2i RT, UI E-form AND with 16-bit immediate.
e_and2is e_and2is RT, UI E-form AND with 16-bit immediate shifted left by 16 bits.
e_andc e_andc RT, RA, RB E-form RT = RA & ~RB.
e_b e_b BD24 E-form Unconditional branch (long range).
e_bc e_bc BO, BI, BD15 E-form Conditional branch.
e_bdnz e_bdnz BD E-form Decrements CTR, branches if CTR != 0.
e_bdnzf e_bdnzf BI, BD E-form Decrements CTR, branches if CTR != 0 AND CR bit is false.
e_bdnzt e_bdnzt BI, BD E-form Decrements CTR, branches if CTR != 0 AND CR bit is true.
e_bdz e_bdz BD E-form Decrements CTR, branches if CTR == 0.
e_bdzf e_bdzf BI, BD E-form Decrements CTR, branches if CTR == 0 AND CR bit is false.
e_bdzt e_bdzt BI, BD E-form Decrements CTR, branches if CTR == 0 AND CR bit is true.
e_bl e_bl BD24 E-form Function call (long range).
e_cmp e_cmp BF, RA, RB E-form Signed comparison.
e_cmp16i e_cmp16i BF, RA, SI E-form Compares word with 16-bit immediate.
e_cmph e_cmph BF, RA, RB E-form Compares 16-bit values.
e_cmph16i e_cmph16i BF, RA, SI E-form Compare halfword with immediate.
e_cmphl e_cmphl BF, RA, RB E-form Unsigned compare 16-bit values.
e_cmphl16i e_cmphl16i BF, RA, UI E-form Unsigned compare halfword with immediate.
e_cmpi e_cmpi BF, RA, SI E-form Compare with immediate.
e_cmpl e_cmpl BF, RA, RB E-form Unsigned comparison.
e_cmpl16i e_cmpl16i BF, RA, UI E-form Unsigned compare word with 16-bit immediate.
e_cmpli e_cmpli BF, RA, UI E-form Unsigned compare with immediate.
e_cntlzw e_cntlzw RT, RA E-form Counts leading zeros.
e_crand e_crand BT, BA, BB E-form CR bit logical AND.
e_crandc e_crandc BT, BA, BB E-form CR bit logical AND with complement (BT = BA & ~BB).
e_creqv e_creqv BT, BA, BB E-form CR bit logical XNOR.
e_crnand e_crnand BT, BA, BB E-form CR bit logical NAND.
e_crnor e_crnor BT, BA, BB E-form CR bit logical NOR.
e_cror e_cror BT, BA, BB E-form CR bit logical OR.
e_crorc e_crorc BT, BA, BB E-form CR bit logical OR with complement (BT = BA | ~BB).
e_crxor e_crxor BT, BA, BB E-form CR bit logical XOR.
e_dcbf e_dcbf RA, RB E-form Flushes a data cache block.
e_dcbst e_dcbst RA, RB E-form Stores a data cache block.
e_dcbt e_dcbt RA, RB E-form Prefetches a data cache block.
e_dcbtst e_dcbtst RA, RB E-form Prefetches a data cache block for writing.
e_dcbz e_dcbz RA, RB E-form Zeros a data cache block.
e_divw e_divw RT, RA, RB E-form Divides two words.
e_divwu e_divwu RT, RA, RB E-form Unsigned division.
e_eqv e_eqv RT, RA, RB E-form Bitwise XNOR.
e_extsb e_extsb RT, RA E-form Sign extends low byte.
e_extsh e_extsh RT, RA E-form Sign extends low halfword.
e_icbi e_icbi RA, RB E-form Invalidates an instruction cache block.
e_icbt e_icbt RA, RB E-form Prefetches an instruction cache block.
e_isync e_isync E-form Waits for previous instructions to complete.
e_lbz e_lbz RT, D(RA) E-form Loads byte with 16-bit offset.
e_lbzu e_lbzu RT, D(RA) E-form Loads byte and updates base register.
e_lhz e_lhz RT, D(RA) E-form Loads halfword with 16-bit offset.
e_lhzu e_lhzu RT, D(RA) E-form Loads halfword and updates base register.
e_lis e_lis RT, SI E-form Loads immediate into upper 16 bits.
e_lmv e_lmv D(RA) E-form Loads volatile registers (R0, R3-R12) from memory.
e_lmvcsrrw e_lmvcsrrw D(RA) E-form Loads volatile Critical SRRs (CSRR0, CSRR1) from memory.
e_lmvdsrrw e_lmvdsrrw D(RA) E-form Loads volatile Debug SRRs (DSRR0, DSRR1) from memory.
e_lmvgprw e_lmvgprw D(RA) E-form Loads volatile GPRs from memory (Word aligned).
e_lmvsprw e_lmvsprw D(RA) E-form Loads volatile SPRs (CR, LR, CTR, XER) from memory.
e_lmvsrrw e_lmvsrrw D(RA) E-form Loads volatile Save/Restore Registers (SRR0, SRR1) from memory.
e_lmw e_lmw RT, D(RA) E-form Loads words from memory into registers RT through R31.
e_lwz e_lwz RT, D(RA) E-form Loads word with 16-bit offset.
e_lwzu e_lwzu RT, D(RA) E-form Loads word and updates base register.
e_mbar e_mbar MO E-form Ensures memory access ordering.
e_mcrf e_mcrf BF, BFA E-form Copies one CR field to another.
e_mfspr e_mfspr RT, SPR E-form Reads an SPR.
e_msync e_msync E-form Synchronizes memory accesses.
e_mtspr e_mtspr SPR, RS E-form Writes an SPR.
e_mulhw e_mulhw RT, RA, RB E-form Multiplies two words, keeps high 32 bits (Signed).
e_mulhwu e_mulhwu RT, RA, RB E-form Multiplies two words, keeps high 32 bits (Unsigned).
e_mull2i e_mull2i RT, RA, SI E-form Multiplies register by immediate.
e_mullw e_mullw RT, RA, RB E-form Multiplies two words.
e_nand e_nand RT, RA, RB E-form Bitwise NAND.
e_neg e_neg RT, RA E-form Negates a register (RT = -RA).
e_nor e_nor RT, RA, RB E-form Bitwise NOR.
e_or e_or RT, RA, RB E-form Bitwise OR.
e_or2i e_or2i RT, UI E-form OR with 16-bit immediate.
e_or2is e_or2is RT, UI E-form OR with 16-bit immediate shifted left by 16 bits.
e_orc e_orc RT, RA, RB E-form RT = RA | ~RB.
e_rlw e_rlw RA, RS, RB E-form Rotates word left.
e_rlwimi e_rlwimi RA, RS, SH, MB, ME E-form Rotate and insert (Masking).
e_rlwinm e_rlwinm RA, RS, SH, MB, ME E-form Rotate and mask.
e_sc e_sc E-form System call (32-bit encoding).
e_slw e_slw RA, RS, RB E-form Shifts word left.
e_slw e_slw RA, RS, RB E-form Shifts word left.
e_sraw e_sraw RA, RS, RB E-form Arithmetic right shift.
e_sraw e_sraw RA, RS, RB E-form Arithmetic right shift.
e_srawi e_srawi RA, RS, SH E-form Arithmetic right shift by immediate.
e_srw e_srw RA, RS, RB E-form Shifts word right.
e_srw e_srw RA, RS, RB E-form Shifts word right.
e_stb e_stb RS, D(RA) E-form Stores byte with 16-bit offset.
e_stbu e_stbu RS, D(RA) E-form Stores byte and updates base register.
e_sth e_sth RS, D(RA) E-form Stores halfword with 16-bit offset.
e_sthu e_sthu RS, D(RA) E-form Stores halfword and updates base register.
e_stmv e_stmv D(RA) E-form Stores volatile registers (R0, R3-R12) to memory.
e_stmvcsrrw e_stmvcsrrw D(RA) E-form Stores volatile Critical SRRs (CSRR0, CSRR1) to memory.
e_stmvdsrrw e_stmvdsrrw D(RA) E-form Stores volatile Debug SRRs (DSRR0, DSRR1) to memory.
e_stmvgprw e_stmvgprw D(RA) E-form Stores volatile GPRs to memory (Word aligned).
e_stmvsprw e_stmvsprw D(RA) E-form Stores volatile SPRs (CR, LR, CTR, XER) to memory.
e_stmvsrrw e_stmvsrrw D(RA) E-form Stores volatile Save/Restore Registers (SRR0, SRR1) to memory.
e_stmw e_stmw RT, D(RA) E-form Stores words from registers RT through R31 to memory.
e_stmw e_stmw RS, D(RA) E-form Stores words from registers RT through R31 to memory.
e_stw e_stw RS, D(RA) E-form Stores word with 16-bit offset.
e_stwu e_stwu RS, D(RA) E-form Stores word and updates base register.
e_subf e_subf RT, RA, RB E-form Subtracts RA from RB (RT = RB - RA).
e_subfc e_subfc RT, RA, RB E-form Subtracts RA from RB and updates Carry.
e_subfe e_subfe RT, RA, RB E-form Subtracts RA from RB with Carry.
e_subfic e_subfic RT, RA, SI E-form Subtracts register from immediate.
e_subfme e_subfme RT, RA E-form Subtracts register from -1 with Carry.
e_subfze e_subfze RT, RA E-form Subtracts register from 0 with Carry.
e_tlbivax e_tlbivax RA, RB E-form Invalidates a TLB entry by address.
e_tlbre e_tlbre E-form Reads a TLB entry.
e_tlbsx e_tlbsx RA, RB E-form Searches for a TLB entry.
e_tlbwe e_tlbwe E-form Writes a TLB entry.
e_trap e_trap E-form Unconditional trap (32-bit).
e_wait e_wait E-form Waits for an interrupt.
e_xor e_xor RT, RA, RB E-form Bitwise XOR.
e_xor2i e_xor2i RT, UI E-form XOR with 16-bit immediate.
e_xor2is e_xor2is RT, UI E-form XOR with 16-bit immediate shifted left by 16 bits.
eciwx eciwx RT, RA, RB X-form Loads a word from an external device using the EAR register.
ecowx ecowx RS, RA, RB X-form Stores a word to an external device using the EAR register.
efdabs efdabs RT, RA SPE-form Double precision absolute value.
efdadd efdadd RT, RA, RB SPE-form Double precision add (SPE Float).
efdcfs efdcfs RT, RB SPE-form Converts single-precision to double-precision.
efdcmpeq efdcmpeq BF, RA, RB SPE-form Double precision compare equal.
efdcmpgt efdcmpgt BF, RA, RB SPE-form Double precision compare greater than.
efdcmplt efdcmplt BF, RA, RB SPE-form Double precision compare less than.
efddiv efddiv RT, RA, RB SPE-form Double precision divide (SPE Float).
efdmul efdmul RT, RA, RB SPE-form Double precision multiply (SPE Float).
efdneg efdneg RT, RA SPE-form Double precision negate.
efdsub efdsub RT, RA, RB SPE-form Double precision subtract (SPE Float).
efdtsteq efdtsteq BF, RA, RB SPE-form Tests if two double-precision floats are equal.
efdtstgt efdtstgt BF, RA, RB SPE-form Tests if double-precision A > B.
efdtstlt efdtstlt BF, RA, RB SPE-form Tests if double-precision A < B.
efsabs efsabs RT, RA SPE-form Single precision absolute value.
efsadd efsadd RT, RA, RB SPE-form Single precision add (SPE Float).
efscfd efscfd RT, RB SPE-form Converts double-precision to single-precision.
efscfsf efscfsf RT, RB SPE-form Converts 32-bit signed fractional to float.
efscfsi efscfsi RT, RB SPE-form Converts vector of signed integers to floats.
efscfsi efscfsi RT, RB SPE-form Converts signed 32-bit integer to single-precision float.
efscfuf efscfuf RT, RB SPE-form Converts 32-bit unsigned fractional to float.
efscfui efscfui RT, RB SPE-form Converts unsigned 32-bit integer to single-precision float.
efscmpeq efscmpeq BF, RA, RB SPE-form Single precision compare equal.
efscmpgt efscmpgt BF, RA, RB SPE-form Single precision compare greater than.
efscmplt efscmplt BF, RA, RB SPE-form Single precision compare less than.
efsctsi evfsctsi RT, RB SPE-form Converts vector of floats to signed integers.
efsctsi efsctsi RT, RB SPE-form Converts single-precision float to signed 32-bit integer.
efsctsiz efsctsiz RT, RB SPE-form Converts float to integer (Truncate).
efsctui efsctui RT, RB SPE-form Converts single-precision float to unsigned 32-bit integer.
efsctuiz efsctuiz RT, RB SPE-form Converts float to unsigned integer (Truncate).
efsdiv efsdiv RT, RA, RB SPE-form Single precision divide (SPE Float).
efsmul efsmul RT, RA, RB SPE-form Single precision multiply (SPE Float).
efsneg efsneg RT, RA SPE-form Single precision negate.
efssub efssub RT, RA, RB SPE-form Single precision subtract (SPE Float).
efststeq efststeq BF, RA, RB SPE-form Tests if two single-precision floats are equal, setting CR field.
efststgt efststgt BF, RA, RB SPE-form Tests if single-precision A > B.
efststlt efststlt BF, RA, RB SPE-form Tests if single-precision A < B.
ehpriv ehpriv OC X-form Enters embedded hypervisor privileged state.
eieio eieio X-form Ensures that load/store instructions preceding the EIEIO complete before those following it. Used for Memory-Mapped I/O synchronization.
eqv eqv RA, RS, RB X-form Performs a bitwise Equivalence (XNOR) operation. (RA = ~(RS ^ RB)).
evabs evabs RT, RA SPE-form Computes absolute value of words in a 64-bit vector.
evaddw evaddw RT, RA, RB SPE-form Adds two 64-bit vectors of two 32-bit words.
evand evand RT, RA, RB SPE-form Bitwise AND of two 64-bit vectors.
evandc evandc RT, RA, RB SPE-form RT = RA & ~RB.
evcmpeq evcmpeq BF, RA, RB SPE-form Compares two vectors for equality, setting CR field.
evcmpgts evcmpgts BF, RA, RB SPE-form Compares vectors (signed A > B).
evcmpgtu evcmpgtu BF, RA, RB SPE-form Compares vectors (unsigned A > B).
evcmplts evcmplts BF, RA, RB SPE-form Compares vectors (signed A < B).
evcmpltu evcmpltu BF, RA, RB SPE-form Compares vectors (unsigned A < B).
evcntlsw evcntlsw RT, RA SPE-form Counts leading sign bits in each word.
evcntlzw evcntlzw RT, RA SPE-form Counts leading zeros in each word.
eveqv eveqv RT, RA, RB SPE-form Bitwise Equivalence (XNOR).
evextsb evextsb RT, RA SPE-form Sign extends the low byte of each word to 32 bits.
evextsh evextsh RT, RA SPE-form Sign extends the low halfword of each word to 32 bits.
evfsabs evfsabs RT, RA SPE-form Computes absolute value of floats in vector.
evfsadd evfsadd RT, RA, RB SPE-form Adds two vectors of single-precision floats.
evfscfsi evfscfsi RT, RB SPE-form Converts vector of signed integers to floats.
evfsctsi evfsctsi RT, RB SPE-form Converts vector of floats to signed integers.
evfsdiv evfsdiv RT, RA, RB SPE-form Divides two vectors of single-precision floats.
evfsmul evfsmul RT, RA, RB SPE-form Multiplies two vectors of single-precision floats.
evfsneg evfsneg RT, RA SPE-form Negates floats in vector.
evfssub evfssub RT, RA, RB SPE-form Subtracts two vectors of single-precision floats.
evldd evldd RT, D(RA) SPE-form Loads 64 bits from memory into a vector GPR.
evldh evldh RT, D(RA) SPE-form Loads 4 halfwords from memory into a vector.
evldw evldw RT, D(RA) SPE-form Loads two words from memory (aligned) into a vector.
evlhhesplat evlhhesplat RT, D(RA) SPE-form Loads a halfword and duplicates it into the even halfwords of the target.
evlhhossplat evlhhossplat RT, D(RA) SPE-form Loads a halfword and duplicates it into the odd halfwords (sign extended).
evlhhousplat evlhhousplat RT, D(RA) SPE-form Loads a halfword and duplicates it into the odd halfwords (zero extended).
evlwhe evlwhe RT, D(RA) SPE-form Loads two words and places them in the even halfword positions.
evlwhos evlwhos RT, D(RA) SPE-form Loads words into odd positions (sign extended).
evlwhou evlwhou RT, D(RA) SPE-form Loads words into odd positions (zero extended).
evmhegsmfaa evmhegsmfaa RT, RA, RB SPE-form Fractional multiply accumulate (DSP).
evmhegsmfan evmhegsmfan RT, RA, RB SPE-form Fractional multiply negative accumulate.
evmhegum evmhegum RT, RA, RB SPE-form Unsigned multiply.
evmhesmia evmhesmia RT, RA, RB SPE-form Integer multiply accumulate.
evmhesmian evmhesmian RT, RA, RB SPE-form Integer multiply negative accumulate.
evmheumia evmheumia RT, RA, RB SPE-form Unsigned multiply accumulate.
evmheumian evmheumian RT, RA, RB SPE-form Unsigned multiply negative accumulate.
evmhosm evmhosm RT, RA, RB SPE-form Signed modulo multiply.
evmhosmi evmhosmi RT, RA, RB SPE-form Signed integer modulo multiply.
evmhossf evmhossf RT, RA, RB SPE-form Saturating fractional multiply.
evmhossfa evmhossfa RT, RA, RB SPE-form Saturating fractional multiply accumulate.
evmhoumi evmhoumi RT, RA, RB SPE-form Unsigned integer modulo multiply.
evmwhsm evmwhsm RT, RA, RB SPE-form Multiplies high 16-bits of words.
evmwhsmi evmwhsmi RT, RA, RB SPE-form Multiplies high 16-bits of words (integer).
evmwhssf evmwhssf RT, RA, RB SPE-form Fractional multiply of high words.
evmwhssfa evmwhssfa RT, RA, RB SPE-form Fractional multiply accumulate of high words.
evmwlumi evmwlumi RT, RA, RB SPE-form Multiplies low 16-bits of words.
evmwlumia evmwlumia RT, RA, RB SPE-form Multiply accumulate low words.
evmwlumiaa evmwlumiaa RT, RA, RB SPE-form Multiply and double accumulate low words.
evmwlusiaaw evmwlusiaaw RT, RA, RB SPE-form Complex mixed-sign accumulation.
evmwsmia evmwsmia RT, RA, RB SPE-form Signed integer multiply accumulate.
evmwsmiaa evmwsmiaa RT, RA, RB SPE-form Signed integer multiply double accumulate.
evmwsmiaaw evmwsmiaaw RT, RA, RB SPE-form Signed integer multiply accumulate word.
evmwssfaa evmwssfaa RT, RA, RB SPE-form Saturating fractional multiply double accumulate.
evmwssfaaw evmwssfaaw RT, RA, RB SPE-form Saturating fractional multiply accumulate word.
evmwumia evmwumia RT, RA, RB SPE-form Unsigned multiply accumulate.
evmwumiaa evmwumiaa RT, RA, RB SPE-form Unsigned multiply double accumulate.
evmwumiaaw evmwumiaaw RT, RA, RB SPE-form Unsigned multiply accumulate word.
evnand evnand RT, RA, RB SPE-form Bitwise NAND of two 64-bit vectors.
evneg evneg RT, RA SPE-form Negates words in a 64-bit vector.
evnor evnor RT, RA, RB SPE-form Bitwise NOR of two 64-bit vectors.
evor evor RT, RA, RB SPE-form Bitwise OR of two 64-bit vectors.
evorc evorc RT, RA, RB SPE-form RT = RA | ~RB.
evrlw evrlw RT, RA, RB SPE-form Rotates words in RA left by amount in RB.
evrlwi evrlwi RT, RA, UIM SPE-form Rotates words left by immediate value.
evrndw evrndw RT, RA SPE-form Rounds words in the vector.
evsel evsel RT, RA, RB, CR SPE-form Selects bits from RA or RB based on CR field.
evslw evslw RT, RA, RB SPE-form Shifts words in RA left by amount in RB.
evslwi evslwi RT, RA, UIM SPE-form Shifts words left by immediate value.
evsplatfi evsplatfi RT, SIM SPE-form Splats a 5-bit immediate (scaled) into both words.
evsplati evsplati RT, SIM SPE-form Splats a signed 5-bit immediate into both words.
evsrwis evsrwis RT, RA, UIM SPE-form Arithmetic right shift by immediate.
evsrwiu evsrwiu RT, RA, UIM SPE-form Logical right shift by immediate.
evsrws evsrws RT, RA, RB SPE-form Arithmetic right shift of words.
evsrwu evsrwu RT, RA, RB SPE-form Logical right shift of words.
evstdd evstdd RS, D(RA) SPE-form Stores 64-bit vector to memory.
evstdh evstdh RS, D(RA) SPE-form Stores 4 halfwords from vector to memory.
evstdw evstdw RS, D(RA) SPE-form Stores two words from vector to memory.
evstwhe evstwhe RS, D(RA) SPE-form Stores even halfwords to memory.
evstwho evstwho RS, D(RA) SPE-form Stores odd halfwords to memory.
evstwwe evstwwe RS, D(RA) SPE-form Stores the even word (upper 32-bits) to memory.
evstwwo evstwwo RS, D(RA) SPE-form Stores the odd word (lower 32-bits) to memory.
evsubfsmiaaw evsubfsmiaaw RT, RA, RB SPE-form Complex subtraction accumulate.
evsubfssiaaw evsubfssiaaw RT, RA, RB SPE-form Complex subtraction saturate accumulate.
evsubfw evsubfw RT, RA, RB SPE-form Subtracts words (Alternate syntax for evsubw).
evsubifw evsubifw RT, UIM, RB SPE-form Subtracts immediate from word.
evsubw evsubw RT, RA, RB SPE-form Subtracts two 64-bit vectors of two 32-bit words.
evxor evxor RT, RA, RB SPE-form Bitwise XOR of two 64-bit vectors.
extsb extsb RA, RS X-form Sign-extends the low byte (8 bits) of a register to 64 bits.
extsh extsh RA, RS X-form Sign-extends the low halfword (16 bits) of a register to 64 bits.
extsw extsw RA, RS X-form Sign-extends the low word (32 bits) of a register to 64 bits.
fabs fabs FRT, FRB X-form Computes absolute value of a float.
fadd fadd FRT, FRA, FRB A-form Adds two double-precision floating-point registers.
fcfid fcfid FRT, FRB X-form Converts 64-bit Int to Double.
fcfids fcfids FRT, FRB X-form Converts 64-bit Int to Single.
fcfidu fcfidu FRT, FRB X-form Converts 64-bit Unsigned Int to Double.
fcfidus fcfidus FRT, FRB X-form Converts 64-bit Unsigned Int to Single.
fcmpu fcmpu BF, FRA, FRB X-form Compares two floating-point registers and sets the Condition Register (CR) field. Does not trap on NaNs.
fcpsgn fcpsgn FRT, FRA, FRB X-form Copies sign from FRB to FRA.
fctid fctid FRT, FRB X-form Converts Double to 64-bit Int.
fctidz fctidz FRT, FRB X-form Converts Double to 64-bit Int (Truncate).
fctiw fctiw FRT, FRB X-form Converts a float to a 32-bit signed integer (using the current rounding mode) and stores it in the lower half of the FPR.
fctiwz fctiwz FRT, FRB X-form Converts Double to 32-bit Int (Truncate).
fmadd fmadd FRT, FRA, FRC, FRB A-form A*C + B
fmr fmr FRT, FRB X-form Copies a float register (Pseudo: for FRB).
fmsub fmsub FRT, FRA, FRC, FRB A-form A*C - B
fmul fmul FRT, FRA, FRC A-form Multiplies two double-precision floating-point registers.
fnabs fnabs FRT, FRB X-form Computes negative absolute value of a float.
fneg fneg FRT, FRB X-form Negates a float.
fnmadd fnmadd FRT, FRA, FRC, FRB A-form -(A*C + B)
fnmsub fnmsub FRT, FRA, FRC, FRB A-form -(A*C - B)
fre fre FRT, FRB A-form Estimates 1/x (Double Precision).
fres fres FRT, FRB A-form Estimates 1/x (Single Precision).
frsp frsp FRT, FRB X-form Rounds Double to Single.
frsqrte frsqrte FRT, FRB A-form Estimates 1/sqrt(x) (Double Precision).
frsqrtes frsqrtes FRT, FRB A-form Estimates 1/sqrt(x) (Single Precision).
fsel fsel FRT, FRA, FRC, FRB A-form Selects FRA if FRC >= 0, else FRB (Optional).
fsqrt fsqrt FRT, FRB X-form Computes square root (Double).
fsqrts fsqrts FRT, FRB X-form Computes square root (Single).
ftdiv ftdiv BF, FRA, FRB X-form Tests for conditions that would cause a divide exception.
ftsqrt ftsqrt BF, FRB X-form Tests for conditions that would cause a sqrt exception.
hashchk hashchk RA X-form Checks the hash of the Return Address Stack (ROP Protection).
hashchkp hashchkp RA X-form Privileged version of hash check.
hashst hashst RA X-form Stores the hash of the Return Address.
hashstp hashstp RA X-form Privileged version of hash store.
hrfid hrfid XL-form Returns from a hypervisor interrupt.
icbi icbi RA, RB X-form Invalidates the instruction cache block associated with the address. Critical for self-modifying code or JITs.
icblc icblc CT, RA, RB X-form Clears an instruction cache line lock.
icbt icbt RA, RB X-form Prefetches an instruction cache block.
icbt icbt CT, RA, RB X-form Prefetches an instruction cache block.
icbtls icbtls CT, RA, RB X-form Locks an instruction cache line.
iccci iccci RA, RB X-form Invalidates a congruence class in the instruction cache (Embedded).
icread icread RA, RB X-form Reads an instruction cache tag or data (Debug).
isel isel RT, RA, RB, BC A-form Conditionally copies RA or RB to RT based on a CR bit. (Equivalent to C ternary operator 'cond ? a : b').
isync isync XL-form Waits for previous instructions to complete.
lbarx lbarx RT, RA, RB X-form Atomic Load Byte.
lbz lbz RT, D(RA) D-form Loads a byte from memory into the low 8 bits of a register and clears the upper 56 bits.
lbzci lbzci RT, RA, RB X-form Loads a byte bypassing the cache. Used for memory-mapped I/O.
lbzepx lbzepx RT, RA, RB X-form Loads a byte using the External PID (for OS kernels accessing user memory).
ld ld RT, DS(RA) DS-form Loads a doubleword (64 bits) from memory.
ldarx ldarx RT, RA, RB X-form Loads a doubleword and creates a reservation. 64-bit version of lwarx.
ldbrx ldbrx RT, RA, RB X-form Loads 64 bits and swaps bytes.
ldci ldci RT, RA, RB X-form Loads a doubleword bypassing the cache.
lha lha RT, D(RA) D-form Loads a halfword (16 bits) from memory and sign-extends it to 64 bits.
lharx lharx RT, RA, RB X-form Atomic Load Halfword.
lhbrx lhbrx RT, RA, RB X-form Loads a halfword and swaps bytes (Little-Endian load).
lhz lhz RT, D(RA) D-form Loads a halfword (16 bits) from memory and clears the upper 48 bits.
lhzci lhzci RT, RA, RB X-form Loads a halfword bypassing the cache.
lhzepx lhzepx RT, RA, RB X-form Loads a halfword using the External PID.
li li RT, SIM D-form Loads a 16-bit signed immediate into a register. (Alias for 'addi RT, 0, SIM').
lis lis RT, SIM D-form Loads a 16-bit immediate into the upper half of a 32-bit word. (Alias for 'addis RT, 0, SIM').
lmw lmw RT, D(RA) D-form Loads words from memory into registers RT through R31 (Context Switch).
lq lq RTp, DQ(RA) DQ-form Loads 128 bits into two adjacent GPRs (Even/Odd pair).
lqarx lqarx RTp, RA, RB X-form Atomic Load 128-bit Quadword.
lswi lswi RT, RA, NB X-form Loads N bytes from memory into registers.
lswx lswx RT, RA, RB X-form Loads N bytes from memory (N in XER).
lvx lvx vD, RA, RB X-form Loads a 128-bit vector from memory into a Vector Register. Address must be 16-byte aligned (bits 60-63 of effective address are ignored).
lwa lwa RT, DS(RA) DS-form Loads a word (32 bits) from memory and sign-extends it to 64 bits.
lwarx lwarx RT, RA, RB X-form Loads a word and creates a reservation for use with 'stwcx.'. Critical for implementing atomic primitives (mutexes).
lwbrx lwbrx RT, RA, RB X-form Loads a word and swaps bytes.
lwdi lwdi RT, RA, RB X-form Loads a word and sends decoration sideband signals to the bus.
lwsync lwsync Pseudo Orders loads with loads, stores with stores, and loads with stores. Does NOT order stores with loads. (Encoded as sync 1).
lwz lwz RT, D(RA) D-form Loads a word (32 bits) from memory and clears the upper 32 bits.
lwzci lwzci RT, RA, RB X-form Loads a word bypassing the cache.
lwzepx lwzepx RT, RA, RB X-form Loads a word using the External PID.
lxsiwax lxsiwax XT, RA, RB XX1-form Loads a 32-bit signed integer into a VSX register (scalar).
lxsiwzx lxsiwzx XT, RA, RB XX1-form Loads a 32-bit unsigned integer into a VSX register (scalar).
lxv lxv XT, DQ(RA) DQ-form Loads a 128-bit vector from memory (VSX aligned offset).
lxvd2x lxvd2x XT, RA, RB XX1-form Loads a 128-bit vector from memory into a VSX register. Does NOT require 16-byte alignment (unlike lvx).
lxvdsx lxvdsx XT, RA, RB X-form Loads a doubleword and duplicates it to fill the vector.
lxvl lxvl XT, RA, RB XX1-form Loads N bytes into a vector, where N is specified in a GPR.
lxvp lxvp XT, DQ(RA) DQ-form Loads a 256-bit vector pair (two VSRs).
lxvw4x lxvw4x XT, RA, RB XX1-form Loads four words into a vector (unaligned).
lxvwsx lxvwsx XT, RA, RB XX1-form Loads a 32-bit word and replicates it across the vector.
macchw macchw RT, RA, RB XO-form Multiply bottom half of RA by top half of RB, add to RT.
macchws macchws RT, RA, RB XO-form Signed Multiply Accumulate Cross Halfword with Saturation.
macchwsu macchwsu RT, RA, RB XO-form Mixed Sign Multiply Accumulate Cross Halfword with Saturation.
macchwu macchwu RT, RA, RB XO-form Unsigned Multiply Accumulate Cross Halfword.
machhw machhw RT, RA, RB XO-form Multiply top half of RA by top half of RB, add to RT.
machhws machhws RT, RA, RB XO-form Signed Multiply Accumulate High Halfword with Saturation.
machhwsu machhwsu RT, RA, RB XO-form Mixed Sign Multiply Accumulate High Halfword with Saturation.
machhwu machhwu RT, RA, RB XO-form Unsigned Multiply Accumulate High Halfword.
maclhw maclhw RT, RA, RB XO-form Multiply bottom half of RA by bottom half of RB, add to RT.
maclhws maclhws RT, RA, RB XO-form Signed Multiply Accumulate Low Halfword with Saturation.
maclhwsu maclhwsu RT, RA, RB XO-form Mixed Sign Multiply Accumulate Low Halfword with Saturation.
maclhwu maclhwu RT, RA, RB XO-form Unsigned Multiply Accumulate Low Halfword.
mbar mbar MO X-form Ensures memory access ordering (Embedded version of 'sync').
mcrf mcrf BF, BFA XL-form Copies the contents of one Condition Register field to another. Used to save comparison results.
mcrfs mcrfs BF, BFA X-form Copies FPSCR exception bits to the Condition Register.
mcrxrx mcrxrx BF X-form Copies XER[OV, SO] to a Condition Register field.
mfbhrbe mfbhrbe RT, BHRBE X-form Reads a specific entry from the BHRB.
mfcr mfcr RT X-form Copies the entire 32-bit Condition Register into a General Purpose Register.
mfctr mfctr RT XFX-form Moves CTR to GPR. (Alias for 'mfspr RT, 9').
mfdcr mfdcr RT, DCRN XFX-form Reads an on-chip peripheral register (DCR).
mffs mffs FRT X-form Copies the Floating-Point Status and Control Register to a float register.
mflr mflr RT XFX-form Moves LR to GPR. (Alias for 'mfspr RT, 8').
mfmsr mfmsr RT X-form Reads the MSR (Privileged).
mfocrf mfocrf RT, FXM XFX-form Moves a single CR field to a GPR.
mfpmr mfpmr RT, PMRN X-form Reads a performance monitor register (Embedded).
mfpvr mfpvr RT X-form Reads the PVR (Processor ID).
mfspr mfspr RT, SPR XFX-form Copies a value from a system SPR to a general-purpose register.
mfsr mfsr RT, SR X-form Legacy 32-bit segment register read.
mfsrin mfsrin RT, RB X-form Indirect read of segment register using RB.
mftar mftar RT XFX-form Reads the TAR into a GPR.
mftb mftb RT XFX-form Reads the hardware timebase register (Timestamp).
mftbu mftbu RT XFX-form Reads the upper 32 bits of the Timebase (32-bit implementations).
mfvsrd mfvsrd RA, XS XX1-form Moves 64 bits from a VSR to a GPR.
mfvsrld mfvsrld RA, XS XX1-form Extracts the lower 64-bits of a VSR to a GPR.
mfvsrwz mfvsrwz RA, XS XX1-form Moves low 32 bits from VSR to GPR (zero extend).
modsd modsd RT, RA, RB X-form Calculates remainder of signed doubleword division.
modsq modsq vD, vA, vB VX-form Computes remainder of 128-bit signed division.
modsw modsw RT, RA, RB X-form Calculates remainder of signed word division.
modud modud RT, RA, RB X-form Calculates remainder of unsigned doubleword division.
moduq moduq vD, vA, vB VX-form Computes remainder of 128-bit unsigned division.
moduw moduw RT, RA, RB X-form Calculates remainder of unsigned word division.
mr mr RA, RS Pseudo Copies the contents of one register to another. (Encoded as OR RA, RS, RS).
mr mr RA, RS X-form Copies contents of RS to RA. (Alias for 'or RA, RS, RS').
msgclr msgclr RB X-form Clears a pending doorbell interrupt (Inter-processor comms).
msgclrp msgclrp RB X-form Clears a privileged doorbell interrupt.
msgslp msgslp RB X-form Transitions the processor to a sleep state via message.
msgsnd msgsnd RB X-form Sends a doorbell interrupt to another processor.
msgsndp msgsndp RB X-form Sends a privileged doorbell interrupt.
msgsync msgsync X-form Waits for previous messages to be accepted.
msync msync X-form Synchronizes memory accesses (Alias for sync).
mtcrf mtcrf FXM, RS XFX-form Copies bits from a register into the Condition Register, updated only the fields specified by the mask (FXM).
mtctr mtctr RS XFX-form Moves GPR to CTR. (Alias for 'mtspr 9, RS').
mtdcr mtdcr DCRN, RS XFX-form Writes an on-chip peripheral register (DCR).
mtfsb0 mtfsb0 BT X-form Clears a specific bit in the FPSCR.
mtfsb1 mtfsb1 BT X-form Sets a specific bit in the FPSCR.
mtfsf mtfsf FLM, FRB, W, L XFL-form Writes fields of the FPSCR from a float register.
mtfsfi mtfsfi BF, U X-form Writes a 4-bit immediate to a specific FPSCR field.
mtlr mtlr RS XFX-form Moves GPR to LR. (Alias for 'mtspr 8, RS').
mtmsr mtmsr RS, L X-form Writes the MSR (Privileged).
mtmsrd mtmsrd RS, L X-form Writes the 64-bit MSR.
mtocrf mtocrf FXM, RS XFX-form Moves a GPR field to a single CR field.
mtpmr mtpmr PMRN, RS X-form Writes a performance monitor register (Embedded).
mtspr mtspr SPR, RS XFX-form Copies a value from a general-purpose register to a system SPR (e.g., CTR, LR, XER).
mtsr mtsr SR, RS X-form Legacy 32-bit segment register write.
mtsrin mtsrin RS, RB X-form Indirect write of segment register using RB.
mttar mttar RS XFX-form Moves a GPR value to the TAR.
mtvsrd mtvsrd XT, RA XX1-form Moves 64 bits from a GPR to a VSR.
mtvsrdd mtvsrdd XT, RA, RB X-form Moves two 64-bit GPRs into one 128-bit VSR.
mtvsrwa mtvsrwa XT, RA XX1-form Moves low 32 bits from GPR to VSR (sign extend).
mtvsrws mtvsrws XT, RA XX1-form Moves a 32-bit word from a GPR and replicates it across the vector.
mulchw mulchw RT, RA, RB XO-form Multiply bottom half of RA by top half of RB.
mulchwu mulchwu RT, RA, RB XO-form Unsigned Multiply Cross Halfword.
mulhd mulhd RT, RA, RB XO-form Multiplies two 64-bit integers and returns the upper 64 bits of the 128-bit result (Signed).
mulhdu mulhdu RT, RA, RB XO-form Multiplies two 64-bit integers and returns the upper 64 bits of the 128-bit result (Unsigned).
mulhhw mulhhw RT, RA, RB XO-form Multiply top half of RA by top half of RB.
mulhhwu mulhhwu RT, RA, RB XO-form Unsigned Multiply High Halfword.
mulhw mulhw RT, RA, RB XO-form Multiplies two 32-bit integers and returns the upper 32 bits (Signed).
mulhwu mulhwu RT, RA, RB XO-form Multiplies two 32-bit integers and returns the upper 32 bits (Unsigned).
mulld mulld RT, RA, RB XO-form Multiplies two 64-bit integers and stores the lower 64 bits of the 128-bit result.
mullhw mullhw RT, RA, RB XO-form Multiply bottom half of RA by bottom half of RB.
mullhwu mullhwu RT, RA, RB XO-form Unsigned Multiply Low Halfword.
mullw mullw RT, RA, RB XO-form Multiplies two 32-bit integers and stores the lower 32 bits of the 64-bit result.
nand nand RA, RS, RB X-form Bitwise NAND. RA = ~(RS & RB).
nap nap X-form Enters Nap power-saving mode (Supervisor only).
neg neg RT, RA XO-form Computes the two's complement negation of a register (0 - RT).
nmacchw nmacchw RT, RA, RB XO-form Negate product of cross halfwords and add to accumulator.
nmacchws nmacchws RT, RA, RB XO-form Negate product of cross halfwords and add to accumulator (Signed Saturation).
nmachhw nmachhw RT, RA, RB XO-form Negate product of high halfwords and add to accumulator.
nmachhws nmachhws RT, RA, RB XO-form Negate product of high halfwords and add to accumulator (Signed Saturation).
nmaclhw nmaclhw RT, RA, RB XO-form Negate product of low halfwords and add to accumulator.
nmaclhws nmaclhws RT, RA, RB XO-form Negate product of low halfwords and add to accumulator (Signed Saturation).
nop nop D-form Does nothing. (Alias for 'ori 0, 0, 0').
nor nor RA, RS, RB X-form Bitwise NOR. RA = ~(RS | RB).
not not RA, RS X-form Ones' complement (Bitwise NOT). (Alias for 'nor RA, RS, RS').
or or RA, RS, RB X-form Performs a bitwise OR comparison.
orc orc RA, RS, RB X-form Bitwise OR with complement. RA = RS | ~RB.
ori ori RA, RS, UI D-form Performs a bitwise OR with a 16-bit unsigned immediate.
oris oris RA, RS, UI D-form Performs a bitwise OR with a 16-bit immediate shifted left by 16 bits.
paddi paddi RT, RA, SI, R MLS:D-form Adds 34-bit immediate.
paddi paddi RT, RA, SI34, R MLS:D-form (64-bit) Adds a 34-bit signed immediate to a register. Supports PC-relative addressing (LEA).
paste paste RA, RB X-form Completes a hardware copy (paste) operation.
paste. paste. RA, RB X-form Paste operation that updates CR0 to indicate success/fail.
pdepd pdepd RA, RS, RB X-form Deposits bits from RS to RA under control of mask RB (Scalar).
pextd pextd RA, RS, RB X-form Extracts bits from RS to RA under control of mask RB (Scalar).
pla pla RT, label Pseudo Pseudo-instruction for paddi with R=1. Loads the address of a label.
plbz plbz RT, D34(RA), R MLS:D-form Loads a byte and zero-extends it, using a 34-bit offset.
pld pld RT, D34(RA), R MLS:D-form Loads a 64-bit value from memory using a 34-bit immediate offset (PC-relative or absolute).
plh plh RT, D(RA), R MLS:D-form Loads 16-bit halfword using 34-bit offset.
plha plha RT, D(RA), R MLS:D-form Loads 16-bit halfword (Sign Extended) using 34-bit offset.
pli pli RT, SI34 MLS:D-form Loads a 34-bit signed immediate into a register. (Replaces multiple 'lis/ori' instructions).
plq plq RTp, D(RA), R MLS:D-form Loads 128 bits into two GPRs using a 34-bit offset.
plwa plwa RT, D(RA), R MLS:D-form Loads 32-bit word (Sign Extended) using 34-bit offset.
plwz plwz RT, D34(RA), R MLS:D-form Loads a 32-bit word and zero-extends it to 64 bits, using a 34-bit offset.
plxvp plxvp XT, D(RA), R 8LS:D-form Loads a 256-bit vector pair with 34-bit offset.
pmxvbf16ger2 pmxvbf16ger2 AT, XA, XB, XMSK, YMSK MMIRR-form Matrix Multiply Assist (MMA) instruction. Computes ACC <- ACC + (A * B) using BF16 inputs.
pmxvf64ger pmxvf64ger AT, XA, XB, XMSK, YMSK MMIRR-form Masked version of Double-Precision MMA.
pmxvi4ger8 pmxvi4ger8 AT, XA, XB, XMSK, YMSK MMIRR-form Masked 4-bit integer matrix multiply.
pmxvi4ger8pp pmxvi4ger8pp AT, XA, XB, XMSK, YMSK MMIRR-form Masked unsigned 4-bit integer matrix multiply.
pmxvi8ger4 pmxvi8ger4 AT, XA, XB, XMSK, YMSK MMIRR-form Masked version of 8-bit integer MMA.
popcntd popcntd RA, RS X-form Counts the number of set bits (1s) in a 64-bit register.
popcntw popcntw RA, RS X-form Counts the number of set bits (1s) in the lower 32 bits of a register.
prtyd prtyd RA, RS X-form Calculates parity of a doubleword (Scalar).
prtyw prtyw RA, RS X-form Calculates parity of a word (Scalar).
ps_add ps_add FRT, FRA, FRB A-form Adds two paired singles.
ps_madd ps_madd FRT, FRA, FRC, FRB A-form Multiply-Add on paired singles.
ps_mul ps_mul FRT, FRA, FRC A-form Multiplies two paired singles.
ps_sub ps_sub FRT, FRA, FRB A-form Subtracts two paired singles.
psq_l psq_l FRT, D(RA), W, I X-form Loads a paired single from memory (Embedded/Legacy).
psq_st psq_st FRS, D(RA), W, I X-form Stores a paired single to memory (Embedded/Legacy).
pstb pstb RS, D(RA), R MLS:D-form Stores byte using 34-bit offset.
psth psth RS, D(RA), R MLS:D-form Stores halfword using 34-bit offset.
pstq pstq RSp, D(RA), R MLS:D-form Stores 128 bits from two GPRs using a 34-bit offset.
pststd pststd RS, D34(RA), R MLS:D-form Stores a 64-bit value to memory using a 34-bit immediate offset.
pstw pstw RS, D(RA), R MLS:D-form Stores word using 34-bit offset.
pstxvp pstxvp XS, D(RA), R 8LS:D-form Stores a 256-bit vector pair with 34-bit offset.
rfebb rfebb S XL-form Returns from an event handler (EBB).
rfid rfid XL-form Returns from an interrupt handler. Restores PC from SRR0 and MSR from SRR1.
rfscv rfscv XL-form Returns from a vectored system call.
ripv ripv X-form Enters Deep Sleep mode (Supervisor only).
rldic rldic RA, RS, SH, MB MD-form Rotates a 64-bit value left, then clears bits based on a mask.
rldic rldic RA, RS, SH, MB MD-form Rotates a 64-bit register left, then clears bits based on a mask. 64-bit equivalent of rlwinm.
rldicl rldicl RA, RS, SH, MB MD-form Rotates left and clears upper bits (Extract/Shift Right logic).
rldicr rldicr RA, RS, SH, ME MD-form Rotates left and clears lower bits (Shift Left logic).
rldicr rldicr RA, RS, SH, ME MD-form Rotates 64-bit RS left by SH, then clears the low-order bits (ME+1 to 63).
rldimi rldimi RA, RS, SH, MB MD-form Rotates 64-bit value and inserts into target under mask.
rlwimi rlwimi RA, RS, SH, MB, ME M-form Rotates a word left, then inserts bits into the target under a mask. Used for inserting bitfields.
rlwinm rlwinm RA, RS, SH, MB, ME M-form Rotates a word left, then ANDs with a mask. Used for extracting bitfields.
rlwnm rlwnm RA, RS, RB, MB, ME M-form Rotates a word left by amount in RB, then ANDs with a mask.
sc sc LEV SC-form Invokes the operating system (Supervisor Call).
scv scv LEV SC-form Performs a system call to a fixed vector address (Faster than 'sc').
se_add se_add RX, RY SE-form Adds two registers (16-bit encoding). RX = RX + RY.
se_addaddi se_addaddi RX, RY, OIM SE-form Complex add (RX = RX + RY + OIM).
se_addi se_addi RX, OIM SE-form RX = RX + Immediate.
se_and se_and RX, RY SE-form Bitwise AND (16-bit). RX = RX & RY.
se_andi se_andi RX, UIM SE-form RX = RX & Immediate.
se_b se_b BD8 SE-form Unconditional short branch (8-bit displacement).
se_bc se_bc BO, BI, BD8 SE-form Branches if CR bit is set/clear.
se_bclri se_bclri RX, UIM SE-form Clears a specific bit in RX.
se_bctr se_bctr SE-form Computed jump.
se_bgeni se_bgeni RX, UI5 SE-form Generates a single bit.
se_bgeni se_bgeni RX, UIM SE-form Generates a value with a single bit set.
se_bl se_bl BD8 SE-form Function call (8-bit displacement).
se_blr se_blr SE-form Return from function.
se_bmaski se_bmaski RX, UI5 SE-form Creates a mask.
se_bmaski se_bmaski RX, UIM SE-form Generates a mask of ones.
se_bseti se_bseti RX, UIM SE-form Sets a specific bit in RX.
se_btsti se_btsti RX, UIM SE-form Tests a bit in RX and updates CR0.
se_cmp se_cmp RX, RY SE-form Signed comparison of RX and RY.
se_cmpi se_cmpi RX, OIM SE-form Compares RX with immediate.
se_cmpl se_cmpl RX, RY SE-form Unsigned comparison of RX and RY.
se_cmpli se_cmpli RX, UIM SE-form Unsigned comparison of RX with immediate.
se_extsb se_extsb RX SE-form Sign extends byte.
se_extsh se_extsh RX SE-form Sign extends halfword.
se_extzb se_extzb RX SE-form Zero extends byte.
se_extzh se_extzh RX SE-form Zero extends halfword.
se_lbz se_lbz RZ, SD4(RX) SE-form Loads byte with 4-bit offset.
se_lhz se_lhz RZ, SD4(RX) SE-form Loads halfword with 4-bit offset.
se_li se_li RX, UI7 SE-form Loads small immediate.
se_li se_li RX, UIM SE-form Loads a 7-bit immediate into RX.
se_lwz se_lwz RZ, SD4(RX) SE-form Loads word with 4-bit compressed offset.
se_mfar se_mfar RX, ARY SE-form Moves AR to RX (16-bit).
se_mfctr se_mfctr RX SE-form Reads CTR.
se_mflr se_mflr RX SE-form Reads LR.
se_mtar se_mtar ARX, RY SE-form Moves RX to AR (16-bit).
se_mtctr se_mtctr RX SE-form Writes CTR.
se_mtlr se_mtlr RX SE-form Writes LR.
se_mullw se_mullw RX, RY SE-form Multiplies two words (16-bit). RX = RX * RY.
se_neg se_neg RX SE-form Negates a register (16-bit). RX = -RX.
se_not se_not RX SE-form Bitwise NOT (16-bit). RX = ~RX.
se_or se_or RX, RY SE-form Bitwise OR (16-bit). RX = RX | RY.
se_rfci se_rfci SE-form Returns from critical interrupt.
se_rfdi se_rfdi SE-form Returns from debug interrupt.
se_rfi se_rfi SE-form Returns from standard interrupt.
se_rfmci se_rfmci SE-form Returns from machine check.
se_sc se_sc SE-form System call (16-bit encoding).
se_slw se_slw RX, RY SE-form Shifts word left (16-bit). RX = RX << RY.
se_srw se_srw RX, RY SE-form Shifts word right (16-bit). RX = RX >> RY.
se_stb se_stb RZ, SD4(RX) SE-form Stores byte with 4-bit offset.
se_sth se_sth RZ, SD4(RX) SE-form Stores halfword with 4-bit offset.
se_stw se_stw RZ, SD4(RX) SE-form Stores word with 4-bit compressed offset.
se_sub se_sub RX, RY SE-form Subtracts two registers (16-bit). RX = RX - RY.
se_trap se_trap SE-form Unconditional trap (16-bit).
se_xor se_xor RX, RY SE-form Bitwise XOR (16-bit). RX = RX ^ RY.
setb setb RT, BFA X-form Sets RT to -1, 0, or 1 based on CR field.
setbc setbc RT, BI X-form Sets RT to 1 if CR bit is set, else 0. (Branchless logic).
setbcr setbcr RT, BI X-form Sets RT to 1 if CR bit is clear, else 0.
setnbc setnbc RT, BI X-form Sets RT to -1 if CR bit is set, else 0.
setnbcr setnbcr RT, BI X-form Sets RT to -1 if CR bit is clear, else 0.
slbia slbia IH X-form Invalidates all Segment Lookaside Buffer entries (OS Management).
slbie slbie RB X-form Invalidates an SLB entry. Critical for memory management on Power systems.
slbmfee slbmfee RT, RB X-form Reads the ESID part of an SLB entry.
slbmfev slbmfev RT, RB X-form Reads the VSID part of an SLB entry.
slbmte slbmte RS, RB X-form Writes an SLB entry (Mapping effective to virtual address).
slbsync slbsync X-form Ensures SLB invalidations have propagated.
sld sld RA, RS, RB X-form Shifts a 64-bit value left by amount in RB.
sld sld RA, RS, RB X-form Shifts a 64-bit register left by the amount specified in RB.
sleep sleep X-form Enters Sleep power-saving mode (Supervisor only).
slw slw RA, RS, RB X-form Shifts a 32-bit register left by the amount specified in RB.
srad srad RA, RS, RB X-form Arithmetic right shift of 64-bit value (preserves sign).
sradi sradi RA, RS, SH XS-form Arithmetic right shift by immediate.
sradi sradi RA, RS, SH XS-form Performs an arithmetic right shift on a 64-bit doubleword by a constant amount.
sraw sraw RA, RS, RB X-form Performs an arithmetic right shift (sign bit replicated) on a 32-bit word. Updates Carry (CA) if bits are shifted out.
srawi srawi RA, RS, SH X-form Performs an arithmetic right shift on a 32-bit word by a constant amount.
srd srd RA, RS, RB X-form Logical right shift of 64-bit value.
srw srw RA, RS, RB X-form Performs a logical right shift (zeros shifted in) on a 32-bit word.
stb stb RS, D(RA) D-form Stores the low 8 bits of a register to memory.
stbci stbci RS, RA, RB X-form Stores a byte bypassing the cache.
stbcx. stbcx. RS, RA, RB X-form Atomic Store Byte.
stbepx stbepx RS, RA, RB X-form Stores a byte using the External PID.
std std RS, DS(RA) DS-form Stores a 64-bit doubleword to memory.
stdbrx stdbrx RS, RA, RB X-form Swaps bytes and stores 64 bits.
stdci stdci RS, RA, RB X-form Stores a doubleword bypassing the cache.
stdcx. stdcx. RS, RA, RB X-form Atomic Store Doubleword.
stdi stdi RS, RA, RB X-form Stores a word and sends decoration sideband signals.
sth sth RS, D(RA) D-form Stores the low 16 bits of a register to memory.
sthbrx sthbrx RS, RA, RB X-form Swaps bytes and stores a halfword.
sthci sthci RS, RA, RB X-form Stores a halfword bypassing the cache.
sthcx. sthcx. RS, RA, RB X-form Atomic Store Halfword.
sthep sthepx RS, RA, RB X-form Stores a halfword using the External PID.
stmw stmw RT, D(RA) D-form Stores words from registers RT through R31 to memory (Context Switch).
stop stop X-form Stops instruction execution and enters a power-saving state (replaces nap/doze on P9+).
stq stq RSp, DQ(RA) DQ-form Stores 128 bits from two adjacent GPRs.
stqcx. stqcx. RS, RA, RB X-form Atomic 128-bit store. Stores if reservation exists.
stswi stswi RT, RA, NB X-form Stores N bytes from registers to memory.
stswx stswx RT, RA, RB X-form Stores N bytes to memory (N in XER).
stvx stvx vS, RA, RB X-form Stores a 128-bit vector to memory. Address must be 16-byte aligned.
stw stw RS, D(RA) D-form Stores the low 32 bits of a register to memory.
stwbrx stwbrx RS, RA, RB X-form Swaps bytes and stores a word.
stwci stwci RS, RA, RB X-form Stores a word bypassing the cache.
stwcx. stwcx. RS, RA, RB X-form Atomic Store Word (checks reservation).
stwepx stwepx RS, RA, RB X-form Stores a word using the External PID.
stxsiwx stxsiwx XS, RA, RB XX1-form Stores the low 32 bits of a VSX register to memory.
stxv stxv XS, DQ(RA) DQ-form Stores a 128-bit vector to memory (VSX aligned offset).
stxvd2x stxvd2x XS, RA, RB XX1-form Stores a 128-bit VSX register to memory. Does NOT require alignment.
stxvl stxvl XS, RA, RB XX1-form Stores N bytes from a vector to memory.
stxvp stxvp XS, DQ(RA) DQ-form Stores a 256-bit vector pair.
stxvw4x stxvw4x XS, RA, RB XX1-form Stores four words from a vector (unaligned).
sync sync L X-form The master memory barrier. Ensures all previous instructions appear to complete before any subsequent instructions start. (L=0: Heavyweight, L=1: Lightweight/LWSYNC).
tabort. tabort. RA X-form Forces a transaction failure and rollback.
tabortdc tabortdc TO, RA, RB X-form Aborts a transaction if the condition is met (Doubleword comparison).
tabortdci tabortdci TO, RA, SI X-form Aborts transaction if doubleword condition (Immediate) is met.
tabortwc tabortwc TO, RA, RB X-form Aborts a transaction if the condition is met (Word comparison).
tabortwci tabortwci TO, RA, SI X-form Aborts transaction if word condition (Immediate) is met.
tbegin. tbegin. R X-form Initiates a hardware transaction. If the transaction fails, execution rolls back to this point. Sets CR0 based on success/failure.
tcheck tcheck BF X-form Checks transaction status and updates CR.
td td TO, RA, RB X-form Traps if condition (comparison of doublewords) is met.
tdi tdi TO, RA, SIM D-form Traps if condition (comparison with immediate) is met.
tend. tend. A X-form Commits the current hardware transaction. If successful, memory changes become visible atomically.
tlbia tlbia X-form Invalidates the entire Translation Lookaside Buffer.
tlbie tlbie RB, RS X-form Invalidates a TLB entry corresponding to the address in RB.
tlbiel tlbiel RB X-form Invalidates a TLB entry on the current processor only.
tlbilx tlbilx T, RA, RB X-form Invalidates TLB entries on the local processor based on Process ID (PID).
tlbivax tlbivax RA, RB X-form Invalidates a TLB entry by virtual address.
tlbre tlbre X-form Reads a TLB entry into MAS registers.
tlbsx tlbsx RA, RB X-form Searches the TLB for an address.
tlbsync tlbsync X-form Ensures TLB invalidations have propagated to all processors.
tlbwe tlbwe X-form Writes a TLB entry from MAS registers.
trap trap Pseudo Unconditional trap. Forces an exception. (Encoded as tw 31, 0, 0).
trechkpt trechkpt X-form Updates the transaction checkpoint.
tresume tresume. X-form Resumes a suspended transaction.
tsr tsr L X-form Suspends or resumes a transaction based on L.
tsuspend tsuspend. X-form Suspends the current transaction.
tw tw TO, RA, RB X-form Traps if condition (comparison of words) is met.
twi twi TO, RA, SIM D-form Traps if condition (comparison with immediate) is met.
urfid urfid XL-form Returns from an ultravisor interrupt.
vabsdub vabsdub vD, vA, vB VA-form Computes |A - B| for bytes.
vabsduh vabsduh vD, vA, vB VA-form Computes |A - B| for halfwords.
vabsduw vabsduw vD, vA, vB VA-form Computes |A - B| for words.
vaddcuq vaddcuq vD, vA, vB VX-form Calculates carry-out for quadword addition.
vaddcuw vaddcuw vD, vA, vB VX-form Calculates carry-out for word addition.
vaddfp vaddfp vD, vA, vB VA-form Adds four single-precision floats (Classic VMX).
vaddsbs vaddsbs vD, vA, vB VX-form Adds 16 signed bytes with saturation (-128..127).
vaddshs vaddshs vD, vA, vB VX-form Adds 8 signed halfwords with saturation.
vaddsws vaddsws vD, vA, vB VX-form Adds 4 signed words with saturation.
vaddubm vaddubm vD, vA, vB VA-form Adds sixteen 8-bit integers from two vectors. Arithmetic is modulo 256 (wraps around).
vaddubs vaddubs vD, vA, vB VX-form Adds 16 unsigned bytes with saturation (0..255).
vaddudm vaddudm vD, vA, vB VX-form Adds 2 doublewords modulo 2^64.
vadduhm vadduhm vD, vA, vB VX-form Adds 8 halfwords modulo 65536.
vadduhs vadduhs vD, vA, vB VX-form Adds 8 unsigned halfwords with saturation.
vadduqm vadduqm vD, vA, vB VA-form Adds two 128-bit integers.
vadduwm vadduwm vD, vA, vB VX-form Adds 4 words modulo 2^32.
vadduws vadduws vD, vA, vB VX-form Adds 4 unsigned words with saturation.
vand vand vD, vA, vB VX-form Bitwise AND of two 128-bit vectors.
vandc vandc vD, vA, vB VX-form Bitwise AND of vA with the ones' complement of vB (vA & ~vB).
vavgsb vavgsb vD, vA, vB VA-form Computes (a+b+1)/2 for signed bytes.
vavgsh vavgsh vD, vA, vB VA-form Computes (a+b+1)/2 for signed halfwords.
vavgsw vavgsw vD, vA, vB VA-form Computes (a+b+1)/2 for signed words.
vavgub vavgub vD, vA, vB VA-form Computes (a+b+1)/2 for bytes.
vavguh vavguh vD, vA, vB VA-form Computes (a+b+1)/2 for halfwords.
vavguw vavguw vD, vA, vB VA-form Computes (a+b+1)/2 for words.
vbcdadd vbcdadd vD, vA, vB, PS VX-form Adds two BCD (Binary Coded Decimal) vectors.
vbcdsub vbcdsub vD, vA, vB, PS VX-form Subtracts two BCD vectors.
vbrd vbrd vD, vB VX-form Reverses bytes within each doubleword.
vbrh vbrh vD, vB VX-form Reverses bytes within each halfword (Endian Swap).
vbrq vbrq vD, vB VX-form Reverses bytes within the entire 128-bit quadword.
vbrw vbrw vD, vB VX-form Reverses bytes within each word.
vcfsx vcfsx vD, vB, UIM VX-form Converts 4 signed 32-bit integers to floats.
vcfuged vcfuged vD, vA, vB VX-form Separates bits of source into two groups based on mask (Power10).
vcfux vcfux vD, vB, UIM VX-form Converts 4 unsigned 32-bit integers to floats.
vcipher vcipher vD, vA, vB VX-form Performs one round of AES encryption (SubBytes, ShiftRows, MixColumns, AddRoundKey).
vcipherlast vcipherlast vD, vA, vB VX-form Performs the final round of AES encryption (SubBytes, ShiftRows, AddRoundKey). No MixColumns.
vclrlb vclrlb vD, vA, RB VX-form Clears the N leftmost bytes of a vector.
vclrrb vclrrb vD, vA, RB VX-form Clears the N rightmost bytes of a vector.
vclzb vclzb vD, vB VX-form Counts leading zeros in each byte.
vclzd vclzd vD, vB VX-form Counts leading zeros in each doubleword.
vclzh vclzh vD, vB VX-form Counts leading zeros in each halfword.
vclzlsbb vclzlsbb RA, vB VX-form Counts leading zeros on the LSB of each byte.
vclzw vclzw vD, vB VX-form Counts leading zeros in each word.
vcmpbfp vcmpbfp vD, vA, vB VC-form Compares 4 floats to see if they are within bounds.
vcmpeqfp vcmpeqfp vD, vA, vB VC-form Compares 4 floats for equality.
vcmpequb vcmpequb vD, vA, vB VC-form Compares 16 bytes. Result is 0xFF (True) or 0x00 (False) per byte.
vcmpequd vcmpequd vD, vA, vB VC-form Compares 2 doublewords for equality.
vcmpequh vcmpequh vD, vA, vB VC-form Compares 8 halfwords for equality.
vcmpequw vcmpequw vD, vA, vB VC-form Compares words for equality. Sets result bits to all 1s (True) or all 0s (False).
vcmpgefp vcmpgefp vD, vA, vB VC-form Compares 4 floats (A >= B).
vcmpgtfp vcmpgtfp vD, vA, vB VC-form Compares 4 floats (A > B).
vcmpgtsb vcmpgtsb vD, vA, vB VC-form Signed > comparison for 16 bytes.
vcmpgtsd vcmpgtsd vD, vA, vB VC-form Signed > comparison for 2 doublewords.
vcmpgtsh vcmpgtsh vD, vA, vB VC-form Signed > comparison for 8 halfwords.
vcmpgtsw vcmpgtsw vD, vA, vB VC-form Signed > comparison for 4 words.
vcmpgtub vcmpgtub vD, vA, vB VC-form Unsigned > comparison for 16 bytes.
vcmpgtud vcmpgtud vD, vA, vB VC-form Unsigned > comparison for 2 doublewords.
vcmpgtuh vcmpgtuh vD, vA, vB VC-form Unsigned > comparison for 8 halfwords.
vcmpgtuw vcmpgtuw vD, vA, vB VC-form Unsigned > comparison for 4 words.
vcmpneb vcmpneb vD, vA, vB VC-form Compares bytes for inequality.
vcmpneh vcmpneh vD, vA, vB VC-form Compares halfwords for inequality.
vcmpnew vcmpnew vD, vA, vB VC-form Compares words for inequality.
vctsxs vctsxs vD, vB, UIM VX-form Converts 4 floats to 4 signed 32-bit integers.
vctuxs vctuxs vD, vB, UIM VX-form Converts 4 floats to 4 unsigned 32-bit integers.
vctzb vctzb vD, vB VX-form Counts trailing zeros in each byte.
vctzd vctzd vD, vB VX-form Counts trailing zeros in each doubleword.
vctzh vctzh vD, vB VX-form Counts trailing zeros in each halfword.
vctzlsbb vctzlsbb RA, vB VX-form Counts trailing zeros on the LSB of each byte.
vctzw vctzw vD, vB VX-form Counts trailing zeros in each word.
vexpandbm vexpandbm vD, vB VX-form Expands bits from a GPR mask into a byte-element vector.
vexpanddm vexpanddm vD, vB VX-form Expands bits from a GPR mask into a doubleword-element vector.
vexpandhm vexpandhm vD, vB VX-form Expands bits from a GPR mask into a halfword-element vector.
vexpandqm vexpandqm vD, vB VX-form Expands bits from a GPR mask into a quadword-element vector.
vexpandwm vexpandwm vD, vB VX-form Expands bits from a GPR mask into a word-element vector.
vextractbm vextractbm RA, vB VX-form Extracts MSB of each byte into a GPR mask.
vextractd vextractd RA, vB, UIM VX-form Extracts a doubleword from a vector into a GPR.
vextractdm vextractdm RA, vB VX-form Extracts MSB of each doubleword into a GPR mask.
vextracthm vextracthm RA, vB VX-form Extracts MSB of each halfword into a GPR mask.
vextractqm vextractqm RA, vB VX-form Extracts MSB of quadword into a GPR mask.
vextractub vextractub RA, vB, UIM VX-form Extracts a specific byte from a vector into a GPR.
vextractuh vextractuh RA, vB, UIM VX-form Extracts a halfword from a vector into a GPR.
vextractuw vextractuw RA, vB, UIM VX-form Extracts a word from a vector into a GPR.
vextractwm vextractwm RA, vB VX-form Extracts MSB of each word into a GPR mask.
vextsb2d vextsb2d vD, vB VX-form Sign-extends bytes to doublewords.
vextsb2w vextsb2w vD, vB VX-form Sign-extends bytes to words.
vextsh2d vextsh2d vD, vB VX-form Sign-extends halfwords to doublewords.
vextsh2w vextsh2w vD, vB VX-form Sign-extends halfwords to words.
vextsw2d vextsw2d vD, vB VX-form Sign-extends words to doublewords.
vgbbd vgbbd vD, vB VX-form Gathers the LSB of each byte into a single word. (Highly specific permutation).
vgnb vgnb vD, vB, UIM VX-form Gathers non-zero bytes from a vector into the bottom of the target.
vinsertb vinsertb vD, vB, UIM VX-form Inserts a byte from a GPR into a vector.
vinsertd vinsertd vD, vB, UIM VX-form Inserts a doubleword from a GPR into a vector.
vinsertd_p vinsertd vD, RB, UIM VX-form Inserts doubleword from GPR into Vector.
vinserth vinserth vD, vB, UIM VX-form Inserts a halfword from a GPR into a vector.
vinserth_p vinserth vD, RB, UIM VX-form Inserts halfword from GPR into Vector.
vinsertw vinsertw vD, vB, UIM VX-form Inserts a word from a GPR into a vector.
vinsertw_p vinsertw vD, RB, UIM VX-form Inserts word from GPR into Vector.
vmaxsb vmaxsb vD, vA, vB VA-form Selects maximum value per byte (signed).
vmaxsh vmaxsh vD, vA, vB VA-form Selects maximum value per halfword (signed).
vmaxsw vmaxsw vD, vA, vB VA-form Selects maximum value per word (signed).
vmaxub vmaxub vD, vA, vB VA-form Selects maximum value per byte (unsigned).
vmaxuh vmaxuh vD, vA, vB VA-form Selects maximum value per halfword (unsigned).
vmaxuw vmaxuw vD, vA, vB VA-form Selects maximum value per word (unsigned).
vminsb vminsb vD, vA, vB VA-form Selects minimum value per byte (signed).
vminsh vminsh vD, vA, vB VA-form Selects minimum value per halfword (signed).
vminsw vminsw vD, vA, vB VA-form Selects minimum value per word (signed).
vminub vminub vD, vA, vB VA-form Selects minimum value per byte (unsigned).
vminuh vminuh vD, vA, vB VA-form Selects minimum value per halfword (unsigned).
vminuw vminuw vD, vA, vB VA-form Selects minimum value per word (unsigned).
vmrgew vmrgew vD, vA, vB VX-form Merges even words from two vectors.
vmrghb vmrghb vD, vA, vB VX-form Interleaves high-order bytes from two vectors (Permutation).
vmrghh vmrghh vD, vA, vB VX-form Interleaves high-order halfwords.
vmrghw vmrghw vD, vA, vB VX-form Interleaves high-order words.
vmrglb vmrglb vD, vA, vB VX-form Interleaves low-order bytes.
vmrglh vmrglh vD, vA, vB VX-form Interleaves low-order halfwords.
vmrglw vmrglw vD, vA, vB VX-form Interleaves low-order words.
vmrgow vmrgow vD, vA, vB VX-form Merges odd words from two vectors.
vmsumshm vmsumshm vD, vA, vB, vC VA-form Multiplies halfwords and sums adjacent results into words.
vmsumshs vmsumshs vD, vA, vB, vC VA-form Multiplies halfwords and sums with saturation.
vmsumubm vmsumubm vD, vA, vB, vC VA-form Multiplies bytes and sums adjacent results into words.
vmulesb vmulesb vD, vA, vB VX-form Multiplies even signed bytes to halfwords.
vmulesh vmulesh vD, vA, vB VX-form Multiplies even signed halfwords to words.
vmulesw vmulesw vD, vA, vB VX-form Multiplies even words (0,2) to 64-bit signed result.
vmuleub vmuleub vD, vA, vB VX-form Multiplies even unsigned bytes to halfwords.
vmuleuh vmuleuh vD, vA, vB VX-form Multiplies even unsigned halfwords to words.
vmuleuw vmuleuw vD, vA, vB VX-form Multiplies even words (0,2) to 64-bit result.
vmulfp vmulfp vD, vA, vB VA-form Multiplies four single-precision floats (Classic VMX).
vmulhsd vmulhsd vD, vA, vB VX-form Multiplies signed doublewords, returning the high 64 bits.
vmulhsw vmulhsw vD, vA, vB VX-form Multiplies signed words, returning the high 32 bits.
vmulhud vmulhud vD, vA, vB VX-form Multiplies unsigned doublewords, returning the high 64 bits.
vmulhuw vmulhuw vD, vA, vB VX-form Multiplies unsigned words, returning the high 32 bits.
vmulosb vmulosb vD, vA, vB VX-form Multiplies odd signed bytes to halfwords.
vmulosh vmulosh vD, vA, vB VX-form Multiplies odd signed halfwords to words.
vmulosw vmulosw vD, vA, vB VX-form Multiplies odd words (1,3) to 64-bit signed result.
vmuloub vmuloub vD, vA, vB VX-form Multiplies odd unsigned bytes to halfwords.
vmulouh vmulouh vD, vA, vB VX-form Multiplies odd unsigned halfwords to words.
vmulouw vmulouw vD, vA, vB VA-form Multiplies the 1st and 3rd words of the source vectors to produce two 64-bit results.
vmulouw vmulouw vD, vA, vB VX-form Multiplies odd words (1,3) to 64-bit result.
vncipher vncipher vD, vA, vB VX-form Performs one round of AES decryption.
vncipherlast vncipherlast vD, vA, vB VX-form Performs the final round of AES decryption.
vnegd vnegd vD, vB VX-form Negates each doubleword integer.
vnegw vnegw vD, vB VX-form Negates each word integer.
vnor vnor vD, vA, vB VX-form Bitwise NOR of two 128-bit vectors. (NOT (A OR B)).
vor vor vD, vA, vB VX-form Bitwise OR of two 128-bit vectors.
vpdepd vpdepd vD, vA, vB VX-form Deposits bits from source to target under control of a mask (Power10).
vperm vperm vD, vA, vB, vC VA-form The signature AltiVec instruction. Constructs a new vector by selecting bytes from two source vectors based on a permute control vector.
vpermr vpermr vD, vA, vB, vC VA-form Bitwise byte shuffle similar to vperm but for little-endian access optimization.
vpermxor vpermxor vD, vA, vB, vC VA-form Permutes bytes from vA and vB, then XORs with vC. Used for finite field arithmetic.
vpextd vpextd vD, vA, vB VX-form Extracts bits from source based on a mask (Power10).
vpkpx vpkpx vD, vA, vB VX-form Packs 8 words into 8 pixels (1/5/5/5 format).
vpkshss vpkshss vD, vA, vB VX-form Saturates 8 signed halfwords to 16 signed bytes.
vpkswss vpkswss vD, vA, vB VX-form Saturates 4 signed words to 8 signed halfwords.
vpkuhum vpkuhum vD, vA, vB VX-form Truncates 8 halfwords to 16 bytes (modulo 256).
vpkuhus vpkuhus vD, vA, vB VX-form Saturates 8 halfwords to 16 unsigned bytes.
vpkuwum vpkuwum vD, vA, vB VX-form Truncates 4 words to 8 halfwords.
vpmsumb vpmsumb vD, vA, vB VX-form Performs GF(2) polynomial arithmetic (Carryless Multiply) on bytes.
vpmsumd vpmsumd vD, vA, vB VX-form Performs GF(2) polynomial arithmetic on doublewords.
vpmsumh vpmsumh vD, vA, vB VX-form Performs GF(2) polynomial arithmetic on halfwords.
vpmsumw vpmsumw vD, vA, vB VX-form Performs GF(2) polynomial arithmetic on words.
vpopcntb vpopcntb vD, vB VX-form Counts set bits in each byte.
vpopcntd vpopcntd vD, vB VX-form Counts set bits in each doubleword.
vpopcnth vpopcnth vD, vB VX-form Counts set bits in each halfword.
vpopcntw vpopcntw vD, vB VX-form Counts set bits in each word.
vprtybd vprtybd vD, vB VX-form Computes parity of bytes within doublewords.
vprtybq vprtybq vD, vB VX-form Computes parity of bytes within quadword.
vprtybw vprtybw vD, vB VX-form Computes parity of bytes within words.
vrfim vrfim vD, vB VX-form Rounds 4 floats to integer (floor).
vrfin vrfin vD, vB VX-form Rounds 4 floats to nearest integer.
vrfip vrfip vD, vB VX-form Rounds 4 floats to integer (ceil).
vrfiz vrfiz vD, vB VX-form Rounds 4 floats to integer (trunc).
vrlb vrlb vD, vA, vB VX-form Rotates each byte left.
vrld vrld vD, vA, vB VX-form Rotates each doubleword left.
vrlh vrlh vD, vA, vB VX-form Rotates each halfword left.
vrlq vrlq vD, vA, vB VX-form Rotates a 128-bit quadword left.
vrlw vrlw vD, vA, vB VX-form Rotates each word left.
vsbox vsbox vD, vA VX-form Performs the SubBytes operation (S-Box lookup) on a vector.
vsel vsel vD, vA, vB, vC VA-form Bitwise selection. copies bits from vA if the corresponding bit in vC is 0, or from vB if vC is 1. (Like 'mux').
vshasigmad vshasigmad vD, vA, ST, SIX VX-form Performs the Sigma0/Sigma1 functions for SHA-512.
vshasigmaw vshasigmaw vD, vA, ST, SIX VX-form Performs the Sigma0/Sigma1/sigma0/sigma1 functions for SHA-256.
vsl vsl vD, vA, vB VX-form Shifts vector left by octet count in vB.
vslb vslb vD, vA, vB VX-form Shifts each byte left.
vslh vslh vD, vA, vB VX-form Shifts each halfword left.
vslo vslo vD, vA, vB VX-form Shifts vector left by byte count.
vslq vslq vD, vA, vB VX-form Shifts a 128-bit quadword left.
vslw vslw vD, vA, vB VX-form Shifts each of the four words in vA left by the number of bits specified in the corresponding word of vB.
vspltb vspltb vD, vB, UIM VX-form Duplicates a byte element across the vector.
vsplth vsplth vD, vB, UIM VX-form Duplicates a halfword element across the vector.
vspltisb vspltisb vD, SIM VX-form Fills vector with immediate 5-bit signed value (-16 to 15).
vspltish vspltish vD, SIM VX-form Fills vector with immediate 5-bit signed value.
vspltisw vspltisw vD, SIM VX-form Fills vector with immediate 5-bit signed value.
vspltw vspltw vD, vB, UIM VX-form Copies a single word element from the source vector into all four word elements of the destination.
vsr vsr vD, vA, vB VX-form Shifts vector right by octet count in vB.
vsrab vsrab vD, vA, vB VX-form Arithmetic right shift of bytes.
vsrah vsrah vD, vA, vB VX-form Arithmetic right shift of halfwords.
vsraq vsraq vD, vA, vB VX-form Arithmetic right shift of a 128-bit quadword.
vsraw vsraw vD, vA, vB VX-form Arithmetic right shift of words.
vsrb vsrb vD, vA, vB VX-form Shifts each byte right.
vsrh vsrh vD, vA, vB VX-form Shifts each halfword right.
vsro vsro vD, vA, vB VX-form Shifts vector right by byte count.
vsrq vsrq vD, vA, vB VX-form Shifts a 128-bit quadword right.
vsrw vsrw vD, vA, vB VX-form Shifts each word right.
vstribl vstribl vD, vB VX-form Identifies the first zero byte from the left.
vstribr vstribr vD, vB VX-form Identifies the first zero byte from the right.
vstril vstril vD, vB VX-form Isolates the leftmost element that matches the condition.
vstril_p vstril. vD, vB VX-form Isolates the leftmost element and updates CR6.
vstrir vstrir vD, vB VX-form Isolates the rightmost element that matches the condition.
vstrir_p vstrir. vD, vB VX-form Isolates the rightmost element and updates CR6.
vsubcuq vsubcuq vD, vA, vB VX-form Calculates carry-out for quadword subtraction.
vsubcuw vsubcuw vD, vA, vB VX-form Calculates carry-out for word subtraction.
vsubfp vsubfp vD, vA, vB VA-form Subtracts four single-precision floats (Classic VMX).
vsubsbs vsubsbs vD, vA, vB VX-form Subtracts 16 signed bytes with saturation.
vsubshs vsubshs vD, vA, vB VX-form Subtracts 8 signed halfwords with saturation.
vsubsws vsubsws vD, vA, vB VX-form Subtracts 4 signed words with saturation.
vsububm vsububm vD, vA, vB VX-form Subtracts 16 bytes modulo 256.
vsububs vsububs vD, vA, vB VX-form Subtracts 16 unsigned bytes with saturation.
vsubudm vsubudm vD, vA, vB VX-form Subtracts 2 doublewords modulo 2^64.
vsubuhm vsubuhm vD, vA, vB VX-form Subtracts 8 halfwords modulo 65536.
vsubuhs vsubuhs vD, vA, vB VX-form Subtracts 8 unsigned halfwords with saturation.
vsubuqm vsubuqm vD, vA, vB VA-form Subtracts two 128-bit integers.
vsubuwm vsubuwm vD, vA, vB VA-form Subtracts four 32-bit integers in parallel.
vsubuws vsubuws vD, vA, vB VX-form Subtracts 4 unsigned words with saturation.
vsum2sws vsum2sws vD, vA, vB VA-form Sums pairs of words into signed words.
vsum4sbs vsum4sbs vD, vA, vB VA-form Sums every 4 signed bytes into a word.
vsum4shs vsum4shs vD, vA, vB VA-form Sums every 2 halfwords into a word.
vsum4ubs vsum4ubs vD, vA, vB VA-form Sums every 4 bytes into a word.
vsumsws vsumsws vD, vA, vB VA-form Sums all 4 words into a single word result.
vupkhpx vupkhpx vD, vB VX-form Unpacks high 4 pixels to 4 words.
vupkhsb vupkhsb vD, vB VX-form Unpacks high 8 signed bytes to 8 signed halfwords.
vupkhsh vupkhsh vD, vB VX-form Unpacks high 4 signed halfwords to 4 signed words.
vupklpx vupklpx vD, vB VX-form Unpacks low 4 pixels to 4 words.
vupklsb vupklsb vD, vB VX-form Unpacks low 8 signed bytes to 8 signed halfwords.
vupklsh vupklsh vD, vB VX-form Unpacks low 4 signed halfwords to 4 signed words.
vxor vxor vD, vA, vB VX-form Bitwise XOR of two 128-bit vectors.
wait wait WC X-form Stops instruction execution and places the processor in a lower power state until an interrupt occurs.
wait wait X-form Pauses execution to save power.
waitimpl waitimpl X-form Waits for a specific implementation event.
waitrsv waitrsv X-form Waits until a reservation is lost (Multithreading sync).
wrtee wrtee RS X-form Updates the EE bit of the MSR from a GPR.
wrteei wrteei E X-form Updates the EE bit of the MSR from an immediate.
xor xor RA, RS, RB X-form Performs a bitwise Exclusive OR comparison.
xori xori RA, RS, UI D-form Performs a bitwise XOR with a 16-bit unsigned immediate.
xoris xoris RA, RS, UI D-form Performs a bitwise XOR with a 16-bit immediate shifted left by 16 bits.
xsabsdp xsabsdp XT, XB XX2-form Scalar absolute value (64-bit float).
xsabsqp xsabsqp vD, vB X-form Computes absolute value of a Quad float.
xsadddp xsadddp XT, XA, XB XX3-form Adds the low doubleword of two VSX registers (scalar operation). The high doublewords are undefined or zeroed.
xsaddqp xsaddqp vD, vA, vB X-form Adds two 128-bit Quad-Precision floating-point numbers held in VSX registers (pairs).
xsaddqpo xsaddqpo vD, vA, vB X-form Used for Quad-Precision arithmetic on hardware that splits quads.
xsaddsp xsaddsp XT, XA, XB XX3-form Scalar float addition (32-bit).
xscmpexpdp xscmpexpdp BF, XA, XB XX3-form Compares exponents of two double-precision floats.
xscmpexpqp xscmpexpqp BF, vA, vB X-form Compares exponents of two Quad floats.
xscmpodp xscmpodp BF, XA, XB XX3-form Scalar compare (Exceptions on NaN).
xscmpopoqp xscmpopoqp BF, vA, vB X-form Compares Quad floats (Signaling on NaN).
xscmpudp xscmpudp BF, XA, XB XX3-form Scalar compare (No exceptions on NaN).
xscmpuqp xscmpuqp BF, vA, vB X-form Compares Quad floats (Non-signaling on NaN).
xscpsgnqp xscpsgnqp vD, vA, vB X-form Copies sign from B to A (128-bit).
xscvdphp xscvdphp XT, XB XX2-form Converts a 64-bit double to 16-bit float.
xscvdpqp xscvdpqp vD, vB X-form Converts a 64-bit Double to a 128-bit Quad float.
xscvdpsp xscvdpsp XT, XB XX2-form Demotes a Double to a Single.
xscvdpsxds xscvdpsxds XT, XB XX2-form Converts scalar Double to 64-bit Signed Integer.
xscvdpuxds xscvdpuxds XT, XB XX2-form Converts scalar Double to 64-bit Unsigned Integer.
xscvhpdp xscvhpdp XT, XB XX2-form Converts a 16-bit float to 64-bit double.
xscvqpdp xscvqpdp vD, vB X-form Demotes 128-bit Float to 64-bit Float.
xscvqpsd xscvqpsd vD, vB X-form Converts 128-bit Float to 64-bit Signed Integer.
xscvqpud xscvqpud vD, vB X-form Converts 128-bit Float to 64-bit Unsigned Integer.
xscvsdqp xscvsdqp vD, vB X-form Converts 64-bit Signed Integer to 128-bit Float.
xscvspdp xscvspdp XT, XB XX2-form Promotes a Single to a Double.
xscvudqp xscvudqp vD, vB X-form Converts 64-bit Unsigned Integer to 128-bit Float.
xsdivqp xsdivqp vD, vA, vB X-form Divides two 128-bit Quad-Precision floats.
xsdivqpo xsdivqpo vD, vA, vB X-form Used for Quad-Precision arithmetic on hardware that splits quads.
xsdivsp xsdivsp XT, XA, XB XX3-form Scalar float division (32-bit).
xsiexpdp xsiexpdp XT, XA, XB XX3-form Inserts exponent from one double into another.
xsmaxcdp xsmaxcdp XT, XA, XB XX3-form Max of two doubles (IEEE 754-2008 compliant).
xsmaxcqp xsmaxcqp vD, vA, vB X-form Max of Quad float (IEEE 754-2008 specific rules).
xsmaxdp xsmaxdp XT, XA, XB XX3-form Scalar maximum (64-bit float).
xsmaxjdp xsmaxjdp XT, XA, XB XX3-form Max of two doubles (Java compliant).
xsmaxqp xsmaxqp vD, vA, vB X-form Selects maximum of two Quad floats.
xsmincdp xsmincdp XT, XA, XB XX3-form Min of two doubles (IEEE 754-2008 compliant).
xsmincqp xsmincqp vD, vA, vB X-form Min of Quad float (IEEE 754-2008 specific rules).
xsmindp xsmindp XT, XA, XB XX3-form Scalar minimum (64-bit float).
xsminjdp xsminjdp XT, XA, XB XX3-form Min of two doubles (Java compliant).
xsminqp xsminqp vD, vA, vB X-form Selects minimum of two Quad floats.
xsmulqp xsmulqp vD, vA, vB X-form Multiplies two 128-bit Quad-Precision floating-point numbers.
xsmulsp xsmulsp XT, XA, XB XX3-form Scalar float multiplication (32-bit).
xsnegdp xsnegdp XT, XB XX2-form Scalar negation (64-bit float).
xsnegqp xsnegqp vD, vB X-form Negates a 128-bit Quad float.
xsrintqp xsrintqp vD, vB X-form Rounds Quad float to nearest Integer.
xsrqpi xsrqpi vD, vB, R Z23-form Rounds a Quad float to a Quad integer.
xsrqpix xsrqpix vD, vB, R Z23-form Rounds a Quad float to a Quad integer (Exact).
xssqrtdp xssqrtdp XT, XB XX2-form Scalar square root (64-bit float).
xssqrtqp xssqrtqp vD, vB X-form Computes square root of a 128-bit Quad-Precision float.
xssqrtqpo xssqrtqpo vD, vB X-form Used for Quad-Precision arithmetic on hardware that splits quads.
xssubqp xssubqp vD, vA, vB X-form Subtracts two 128-bit Quad-Precision floats.
xssubqpo xssubqpo vD, vA, vB X-form Used for Quad-Precision arithmetic on hardware that splits quads.
xssubsp xssubsp XT, XA, XB XX3-form Scalar float subtraction (32-bit).
xststdcdp xststdcdp BF, XB, DCM XX2-form Tests if a double falls into a specific class (NaN, Inf, Zero, Denormal).
xststdcqp xststdcqp BF, vB, DCM X-form Tests class of Quad float (NaN/Inf/Zero).
xststdcsp xststdcsp BF, vB, DCM XX2-form Tests a Single-Precision float for class membership (NaN, Inf, etc.).
xsxexpdp xsxexpdp XT, XB XX2-form Extracts exponent from double as an integer.
xsxsigdp xsxsigdp XT, XB XX2-form Extracts significand from double as an integer.
xvabsdp xvabsdp XT, XB XX2-form Computes absolute value for two double-precision floats.
xvabssp xvabssp XT, XB XX2-form Computes absolute value for four single-precision floats.
xvadddp xvadddp XT, XA, XB XX3-form Adds two pairs of double-precision floating-point numbers.
xvaddsp xvaddsp XT, XA, XB XX3-form Adds four single-precision floats.
xvbf16ger2 xvbf16ger2 AT, XA, XB XX3-form Performs BFloat16 (Brain Float) matrix multiply accumulate.
xvcmpeqdp xvcmpeqdp XT, XA, XB XX3-form Compares doubles for equality. Sets result to all 1s or 0s.
xvcmpeqsp xvcmpeqsp XT, XA, XB XX3-form Compares four floats for equality.
xvcmpgedp xvcmpgedp XT, XA, XB XX3-form Compares doubles (A >= B).
xvcmpgesp xvcmpgesp XT, XA, XB XX3-form Compares four floats (A >= B).
xvcmpgtdp xvcmpgtdp XT, XA, XB XX3-form Compares doubles (A > B).
xvcmpgtsp xvcmpgtsp XT, XA, XB XX3-form Compares four floats (A > B).
xvcvdpsp xvcvdpsp XT, XB XX2-form Converts two doubles to two floats.
xvcvdpsxds xvcvdpsxds XT, XB XX2-form Converts two doubles to two 64-bit signed integers.
xvcvdpuxds xvcvdpuxds XT, XB XX2-form Converts two doubles to two 64-bit unsigned integers.
xvcvhpsp xvcvhpsp XT, XB XX2-form Converts four 16-bit floats to four 32-bit floats.
xvcvspdp xvcvspdp XT, XB XX2-form Converts two floats to two doubles.
xvcvsphp xvcvsphp XT, XB XX2-form Converts four 32-bit floats to four 16-bit floats.
xvcvspsxds xvcvspsxds XT, XB XX2-form Converts two floats to two 64-bit signed integers.
xvcvsxwsp xvcvsxwsp XT, XB XX2-form Converts four 32-bit signed integers to four floats.
xvcvuxwsp xvcvuxwsp XT, XB XX2-form Converts four 32-bit unsigned integers to four floats.
xvdivdp xvdivdp XT, XA, XB XX3-form Divides two pairs of double-precision floats.
xvdivsp xvdivsp XT, XA, XB XX3-form Divides four single-precision floats.
xvf16ger2 xvf16ger2 AT, XA, XB XX3-form Performs IEEE Float16 matrix multiply accumulate.
xvf32ger xvf32ger AT, XA, XB XX3-form Performs Single-Precision Float matrix multiply accumulate.
xvf64ger xvf64ger AT, XA, XB XX3-form Performs Double-Precision Float matrix multiply accumulate.
xvi16ger2 xvi16ger2 AT, XA, XB XX3-form Performs a 16-bit integer outer product and accumulates.
xvi16ger2s xvi16ger2s AT, XA, XB XX3-form Performs a 16-bit integer outer product with saturation.
xvi4ger8 xvi4ger8 AT, XA, XB XX3-form Performs 4-bit integer matrix multiply accumulate (AI Quantization).
xvi4ger8pp xvi4ger8pp AT, XA, XB XX3-form Unsigned 4-bit integer matrix multiply accumulate.
xvi8ger4 xvi8ger4 AT, XA, XB XX3-form Performs an 8-bit integer outer product (GER) and accumulates into a 512-bit register.
xvi8ger4pp xvi8ger4pp AT, XA, XB XX3-form Signed/Unsigned variations of 8-bit matrix multiply accumulate.
xvmaddadp xvmaddadp XT, XA, XB XX3-form Performs (A * B) + T on vectors of doubles.
xvmaxdp xvmaxdp XT, XA, XB XX3-form Selects maximum value for two pairs of doubles.
xvmaxsp xvmaxsp XT, XA, XB XX3-form Selects maximum value for four floats.
xvmindp xvmindp XT, XA, XB XX3-form Selects minimum value for two pairs of doubles.
xvminsp xvminsp XT, XA, XB XX3-form Selects minimum value for four floats.
xvmuldp xvmuldp XT, XA, XB XX3-form Multiplies two pairs of double-precision floats.
xvmulsp xvmulsp XT, XA, XB XX3-form Multiplies four single-precision floats.
xvnegdp xvnegdp XT, XB XX2-form Negates two double-precision floats.
xvnegsp xvnegsp XT, XB XX2-form Negates four single-precision floats.
xvsqrtdp xvsqrtdp XT, XB XX2-form Computes square root for two double-precision floats.
xvsqrtsp xvsqrtsp XT, XB XX2-form Computes square root for four single-precision floats.
xvsubdp xvsubdp XT, XA, XB XX3-form Subtracts two pairs of double-precision floats. (vD = vA - vB)
xvsubsp xvsubsp XT, XA, XB XX3-form Subtracts four single-precision floats.
xxblendvb xxblendvb XT, XA, XB, XC XX4-form Selects bytes from XA or XB based on the MSB of bytes in XC.
xxblendvd xxblendvd XT, XA, XB, XC XX4-form Selects doublewords from XA or XB based on the MSB of doublewords in XC.
xxblendvh xxblendvh XT, XA, XB, XC XX4-form Selects halfwords from XA or XB based on the MSB of halfwords in XC.
xxblendvw xxblendvw XT, XA, XB, XC XX4-form Selects words from XA or XB based on the MSB of words in XC.
xxeval xxeval XT, XA, XB, XC, IMM 8RR:XX4-form Performs an arbitrary 3-input boolean logic function (LUT3) on vectors. The 8-bit immediate 'IMM' defines the truth table.
xxextractuw xxextractuw RT, XS, UIM XX2-form Extracts a 32-bit word from a VSR into a GPR.
xxgenpcvbm xxgenpcvbm XT, XB, IMM XX2-form Generates a Permute Control Vector from a byte mask.
xxgenpcvdm xxgenpcvdm XT, XB, IMM XX2-form Generates a Permute Control Vector from a doubleword mask.
xxgenpcvhm xxgenpcvhm XT, XB, IMM XX2-form Generates a Permute Control Vector from a halfword mask.
xxgenpcvwm xxgenpcvwm XT, XB, IMM XX2-form Generates a Permute Control Vector from a word mask.
xxinsertw xxinsertw XT, RB, UIM XX2-form Inserts a 32-bit word from a GPR into a specific element of a VSR.
xxland xxland XT, XA, XB XX3-form Bitwise AND.
xxlandc xxlandc XT, XA, XB XX3-form vD = vA & ~vB
xxleqv xxleqv XT, XA, XB XX3-form vD = ~(vA ^ vB) (XNOR)
xxlnand xxlnand XT, XA, XB XX3-form vD = ~(vA & vB)
xxlnor xxlnor XT, XA, XB XX3-form Bitwise NOR.
xxlor xxlor XT, XA, XB XX3-form Bitwise OR.
xxlorc xxlorc XT, XA, XB XX3-form vD = vA | ~vB
xxlxor xxlxor XT, XA, XB XX3-form Bitwise XOR.
xxmfacc xxmfacc AT X-form Copies data from an Accumulator back to 4 adjacent VSRs.
xxmrghd xxmrghd XT, XA, XB XX3-form Merges high doublewords from XA and XB.
xxmrghw xxmrghw XT, XA, XB XX3-form Merges high words from two VSRs.
xxmrgld xxmrgld XT, XA, XB XX3-form Merges low doublewords from XA and XB.
xxmrglw xxmrglw XT, XA, XB XX3-form Merges low words from two VSRs.
xxmtacc xxmtacc AT X-form Copies data from 4 adjacent VSRs into an Accumulator.
xxperm xxperm XT, XA, XB, XC XX4-form General permute for VSX registers.
xxpermdi xxpermdi XT, XA, XB, DM XX3-form Selects two doublewords from the four available in source registers XA and XB based on a 2-bit selector.
xxpermr xxpermr XT, XA, XB, XC XX4-form Little-endian optimized permute.
xxpermx xxpermx XT, XA, XB, XC, UIM XX4-form Permutes bytes from two source vectors using a control vector and a 3-bit selector.
xxsel xxsel XT, XA, XB, XC XX4-form Bitwise select between XA and XB based on XC.
xxsetaccz xxsetaccz AT X-form Clears a 512-bit Accumulator register (composed of 4 VSRs) to zero.
xxsplti32dx xxsplti32dx XT, IX, IMM 8RR:D-form Splats a 32-bit immediate into a doubleword index.
xxspltib xxspltib XT, IMM X-form Splats an 8-bit immediate into all bytes.
xxspltidp xxspltidp XT, IMM 8RR:D-form Spatially duplicates a 32-bit immediate (converted to double) into both double elements.
xxspltiw xxspltiw XT, IMM 8RR:D-form Spatially duplicates a 32-bit immediate into all 4 words of the target.
xxspltw xxspltw XT, XS, UIM XX2-form Replicates one word element across the entire vector.
xxswapd xxswapd XT, XB XX2-form Swaps the two doublewords in the register.