PowerISA Instructions

1135 instructions — click any row to view encoding, pseudocode, and full documentation.

1135 instructions
Mnemonic Syntax Format Extension Summary
add add RT, RA, RB XO-form Base Adds the contents of two registers and places the result in a third register.
add. add. RT,RA,RB XO-form Base Adds the contents of two registers and updates the condition register.
addc addc RT,RA,RB
addc. RT,RA,RB
addco RT,RA,RB
addco. RT,RA,RB
XO-form Base Adds the contents of two registers and a carry bit, placing the result in a target register.
adde adde RT, RA, RB XO-form Base Adds two registers plus the current Carry bit.
addex addex RT,RA,RB,CY XO-form Base Adds the contents of two registers and an alternate carry bit, updating the condition register.
addg6s addg6s RT,RA,RB XO-form Base Adds the contents of two registers and generates sixes based on carry bits.
addi addi RT, RA, SI D-form Base Adds a signed immediate value to the contents of a register and places the result in another register.
addic addic RT,RA,SI
subf RT,RA,RB
subf. RT,RA,RB
subfo RT,RA,RB
subfo. RT,RA,RB
D-form Base Adds an immediate to a register and updates the Carry bit.
addic. addic. RT, RA, SI D-form Base Adds an immediate, updates Carry, and updates Condition Register Field 0 (CR0).
addis addis RT, RA, SI D-form Base Adds an immediate value shifted left by 16 bits to the contents of a register and places the result in another register.
addme addme RT,RA
addme. RT,RA
addmeo RT,RA
addmeo. RT,RA
XO-form Base Adds the contents of a register and a constant minus one, with optional overflow exception.
addme. addme. RT,RA,RB XO-form Base Adds the contents of two registers and subtracts one, then updates the condition register.
addze addze RT, RA XO-form Base Adds a register, 0, and the Carry bit.
and and RT,RS,RB
and. RT,RS,RB
X-form Base Performs a bitwise AND operation on the contents of two registers and places the result into another register.
andc andc RA, RS, RB X-form Base Performs a bitwise AND between RS and the one's complement of RB.
andi. andi. RA, RS, UI D-form Base Performs a bitwise AND operation between the contents of a register and an immediate value, and updates the condition register.
andis. andis. RA, RS, UI D-form Base Performs a bitwise AND between a register and a 16-bit immediate shifted left by 16 bits. Always updates CR0.
attn attn X-form Privileged Stops execution and alerts the hardware debugger.
b b target_addr (AA=0 LK=0)
b+ target_addr (AA=1 LK=0)
ba target_addr (AA=0 LK=1)
ba+ target_addr (AA=1 LK=1)
I-form Base Unconditionally branches to a target address relative to the current instruction pointer.
ba ba target_addr I-form Base Unconditionally branches to an absolute address.
bc bc BO,BI,target_addr (AA=0 LK=0)
bc BO,BI,target_addr (AA=1 LK=0)
bc BO,BI,target_addr (AA=0 LK=1)
bc BO,BI,target_addr (AA=1 LK=1)
B-form Base Branches conditionally based on the Count Register (CTR) and/or a bit in the Condition Register (CR).
bcctr bcctr BO, BI XL-form Base Branches to the address in the Count Register (CTR) if the condition is met. Used for computed jumps and switch statements.
bcdadd. bcdadd. VRT,RA,RB XO-form Decimal Floating-Point Adds two packed decimal integers and updates the condition register.
bcdcfn. bcdcfn. vD, vB, PS VX-form Vector BCD Converts a national decimal value to packed decimal format and stores it in the target vector register.
bcdcfsq. bcdcfsq. vD, vB, PS VX-form Vector BCD Converts a signed quadword integer to packed decimal format and updates the condition register.
bcdcfz. bcdcfz. vD, vB, PS VX-form Vector BCD Converts BCD Zoned format to Signed Packed BCD.
bcdcpsgn. bcdcpsgn. VRT,VRA,VRB VX-form Decimal Floating-Point Copies the sign of a decimal value from one register to another while preserving the magnitude.
bcdctn. bcdctn. vD, vB VX-form Vector BCD Converts a packed decimal value to national decimal format and stores it in a vector register.
bcdctsq. bcdctsq. vD, vB VX-form Vector BCD Compares two binary coded decimal (BCD) numbers in a quadword format and tests the sign.
bcdctz. bcdctz. vD, vB, PS VX-form Vector BCD Converts Signed Packed BCD to Zoned format.
bcds. bcds. VRT,VRA,VRB,PS VX-form Decimal Floating-Point Shifts a signed packed decimal value by a specified number of digits and rounds the result.
bcdsetsgn. bcdsetsgn. VRT,VRB,PS VX-form Decimal Floating-Point Sets the sign of a packed decimal value in a vector register based on the specified conditions.
bcdsr. bcdsr. VRT,VRA,VRB,PS VX-form VMX (AltiVec) Shifts a binary coded decimal value by a specified number of digits and rounds the result.
bcdtrunc. bcdtrunc. VRT,VRA,VRB,PS VX-form Decimal Floating-Point Truncates a decimal value to a specified length and updates the condition register.
bcdus. bcdus. VRT,VRA,VRB VX-form VMX (AltiVec) Performs an unsigned shift on packed decimal values in vector registers.
bcdutrunc. bcdutrunc. VRT,VRA,VRB VX-form VMX (AltiVec) Truncates the unsigned decimal value in VRB to a specified length and places it into VRT.
bclr bclr BO,BI,BH
bclrl BO,BI,BH
XL-form Base Branches to the address in the Link Register (LR) if the condition is met. Used for function returns.
bctar bctar BO,BI,BH (LK=0) XL-form Base Conditional branch based on the contents of the Condition Register and the Count Register.
bl bl target_addr I-form Base Branches to a target address and saves the return address (CIA + 4) in the Link Register (LR). Used for function calls.
blt blt target
blta target
bltlr
clears LR
bltctr clears CTR
B-form Base Branches to a target address if the condition 'less than' is true.
blt+ blt+ target B-form Base Branches to the target address if CR0 reflects condition 'less than', predicting the branch will be taken.
bpermd bpermd RA, RS, RB X-form Base Permutes bits from RS based on the index values in RB. Highly optimized for bit shuffling.
brd brd RT,RA XO-form Base Reverses the bytes in a doubleword.
brh brh RA,RS X-form Base Reverses the byte order of a halfword in a register.
cfuged cfuged RA, RS, RB X-form Base Separates bits of the source register into two groups based on a mask (Power10 Scalar).
clrbhrb clrbhrb X-form Base Clear Branch History Rolling Buffer. Clears all entries in the Branch History Rolling Buffer (BHRB) to zero. Used to flush branch prediction history, for example when switching execution contexts to prevent information leakage between security domains.
cmp cmp BF, L, RA, RB X-form Base Compares two registers as signed integers and records the result in the specified Condition Register Field.
cmpb cmpb RA, RS, RB X-form Base Compares bytes in two GPRs, result is byte mask.
cmpdi cmpdi bf,ra,si XO-form Base Compares a doubleword immediate value with the contents of a register and updates the condition register.
cmpeqb cmpeqb RA, RS, RB X-form Base Compares the contents of bits 56:63 of register RA with each byte in register RB and sets the condition register field BF.
cmpi cmpi BF, L, RA, SI D-form Base Compares the contents of register RA with a sign-extended immediate value.
cmpl cmpl BF, L, RA, RB X-form Base Compares two registers as unsigned integers.
cmpli cmpli BF, L, RA, UI D-form Base Compares the contents of a register with an immediate value and updates the condition register.
cmprb cmprb BF, L, RA, RB X-form Base Compares a byte value in one register to see if it falls within a range defined by another register.
cntlzd cntlzd RT,RA
cntlzd. RT,RA
X-form Base Counts the number of consecutive 0 bits starting from bit 0 (MSB of 64-bit reg).
cntlzdm cntlzdm RA, RS, RB X-form Base Counts leading zeros in RS, but only considering bits set in mask RB.
cntlzw cntlzw RA, RS X-form Base Counts the number of consecutive 0 bits starting from bit 32 (MSB of the low word).
cnttzd cnttzd RA, RS X-form Base Counts the number of trailing zeros in 64-bits.
cnttzdm cnttzdm RA, RS, RB X-form Base Counts trailing zeros in RS, but only considering bits set in mask RB.
cnttzw cnttzw RA, RS X-form Base Counts the number of trailing zeros in the low 32-bits.
copy copy RA, RB X-form Privileged Initiates a hardware copy (accelerator) operation.
cp_abort cp_abort X-form Privileged Aborts a hardware accelerator copy-paste sequence.
cpabort cpabort X-form Base Aborts any in-progress copy-paste operation, discarding any pending copy target set by a previous Copy instruction.
crand crand BT, BA, BB XL-form Base Performs a bitwise AND between two bits in the Condition Register.
crc32b crc32b RA, RS X-form Base Accumulates a CRC32 checksum using the low byte of RS.
crc32d crc32d RA, RS X-form Base Accumulates a CRC32 checksum using the doubleword in RS.
crc32h crc32h RA, RS X-form Base Accumulates a CRC32 checksum using the low halfword of RS.
crc32w crc32w RA, RS X-form Base Accumulates a CRC32 checksum using the word in RS.
creqv creqv CRb,CRA,CRB XL-form Base Sets the condition register field to 1 if the corresponding fields of two source registers are equal, otherwise sets it to 0.
crnor crnor BT,BA,BB XL-form Base Performs a bitwise NOR operation on the specified bits of the Condition Registers and stores the result in another bit of the Condition Register.
cror cror BT, BA, BB XL-form Base Performs a bitwise OR between two bits in the Condition Register.
crxor crxor BT, BA, BB XL-form Base Performs a bitwise XOR between two bits in the Condition Register. Used to clear CR bits (crxor x,x,x).
ctfix ctfix FRT,FRA X-form Decimal Floating-Point Converts a decimal floating-point value to a fixed-point integer.
dadd dadd FRT,FRA,FRB
Rc=0
X-form Decimal Floating-Point Adds two 64-bit Decimal Floating Point (DFP) numbers. Used in financial calculations to avoid rounding errors.
dadd. dadd. FRD,FRB,FRC XO-form Base Adds the contents of two double precision floating-point registers and updates the condition register.
daddq daddq vD, vA, vB X-form Decimal Floating-Point Adds two 128-bit DFP numbers.
darn darn RT, L X-form Base Returns a random number from the hardware RNG. (L=3: Raw, L=1: Conditioned, L=0: 32-bit).
dcba dcba RA, RB X-form Base Allocates a cache block without loading from memory (optimization for overwrite).
dcbf dcbf RA,RB,L

dcbfl RA,RB

dcbflp RA,RB

dcbfps RA,RB

dcbstps RA,RB
X-form Base Flushes the cache block from the data cache to main memory and invalidates it. Used for DMA coherency.
dcbi dcbi RA, RB X-form Privileged Invalidates a cache block (Privileged).
dcblc dcblc CT, RA, RB X-form Embedded Clears a cache line lock.
dcbst dcbst RA, RB X-form Base Writes the cache block to main memory if it is modified (Clean), but keeps it in the cache.
dcbt dcbt RA,RB,TH

dcbtt RA,RB

dcbna RA,RB

dcbtds RA,RB,TH
X-form Base Hints to the hardware to prefetch the cache block at the specified address into the cache.
dcbtls dcbtls CT, RA, RB X-form Privileged Locks a cache line in the L1 cache.
dcbtst dcbtst TH, RA, RB X-form Base Provides a hint that describes a block or data stream to which the program may perform a store access.
dcbz dcbz RA, RB X-form Base Zeros out an entire cache block (usually 128 bytes) in memory. Critical for optimizing memory clears (memset).
dcbzl dcbzl RA, RB X-form Base Zeros a cache block (implementation defined size).
dccci dccci RA, RB X-form Embedded Invalidates a congruence class in the data cache (Embedded).
dcffi dcffi FRT,FRB
Rc=0
X-form Decimal Floating-Point Converts a 64-bit signed binary integer to a DFP Long value.
dcffix dcffix FRT, FRB X-form Decimal Floating-Point Converts a 64-bit integer to DFP.
dcffixq dcffixq vD, vB X-form Decimal Floating-Point Converts 64-bit integer to 128-bit DFP.
dcffixqq dcffixqq RT,RA X-form Floating-Point Converts a double-precision floating-point value to a quadword integer.
dcmpo dcmpo BF, FRA, FRB X-form Decimal Floating-Point Compares two decimal floating-point operands and updates the condition register.
dcmpoq dcmpoq BF, vA, vB X-form Decimal Floating-Point Compares two DFP values and sets the condition register based on their order.
dcmpu dcmpu BF, FRA, FRB X-form Decimal Floating-Point Compares two DFP operands and sets the CR field to indicate the result.
dcmpuq dcmpuq BF, vA, vB X-form Decimal Floating-Point Compares two 128-bit DFP numbers (Non-signaling).
dcread dcread RT, RA, RB X-form Embedded Reads a data cache tag or data (Debug).
dctdp dctdp FRT, FRB X-form Decimal Floating-Point Converts DFP Short (32-bit compressed) to DFP Long (64-bit).
dctfix dctfix FRT,FRB
dctfix. FRT,FRB
X-form Decimal Floating-Point Converts a decimal floating-point number to a fixed-point integer.
dctfixq dctfixq vD, vB X-form Decimal Floating-Point Converts 128-bit DFP to 64-bit integer.
dctqpq dctqpq vD, FRB X-form Decimal Floating-Point Converts DFP Long (64-bit) to DFP Quad (128-bit).
ddedpd ddedpd SP,FRT,FRB
ddedpd. SP,FRT,FRB
X-form Decimal Floating-Point Converts a portion of the significand of a DFP operand to a signed or unsigned BCD number.
ddedpdq ddedpdq vD, vB, SP X-form Decimal Floating-Point Decodes BCD to 128-bit DFP.
ddiv ddiv FRT,FRA,FRB
ddiv. FRT,FRA,FRB
X-form Decimal Floating-Point Divides the contents of two decimal floating-point registers and places the result in a target register.
ddivq ddivq vD, vA, vB X-form Decimal Floating-Point Divides two 128-bit DFP numbers.
denbcd denbcd FRT, FRB, S X-form Decimal Floating-Point Encodes a DFP number into BCD format.
denbcdq denbcdq vD, vB, S X-form Decimal Floating-Point Encodes 128-bit DFP to BCD.
dfadd dfadd DRT,DSRC1,DSRC2 X-form Decimal Floating-Point Adds two decimal floating-point numbers.
diex diex FRT, FRA, FRB X-form Decimal Floating-Point Combines a sign/coefficient from FRA and exponent from FRB.
diexq diexq vD, vA, vB X-form Decimal Floating-Point Inserts exponent into 128-bit DFP.
diexq. diexq. RT,RA,RB X-form Decimal Floating-Point Inserts the biased exponent from a source register into a destination register in quad format.
divd divd RT,RA,RB
OE=0 Rc=0
XO-form Base Divides the contents of two registers and places the quotient into a target register.
divde divde RT, RA, RB XO-form Base Divides the contents of two registers and updates the condition register.
divdeu divdeu RT, RA, RB XO-form Base 64-bit extended unsigned division.
divdu divdu RT, RA, RB XO-form Base Divides the 64-bit value in RA by the 64-bit value in RB (Unsigned).
divsq divsq vD, vA, vB VX-form Base Divides a 128-bit signed integer by a 128-bit signed integer (using VSX pairs).
divuq divuq vD, vA, vB VX-form Base Divides a 128-bit unsigned integer by a 128-bit unsigned integer.
divw divw RT, RA, RB XO-form Base Divides the contents of two registers and places the quotient into a target register.
divwe divwe RT, RA, RB XO-form Base Performs a signed division of a 64-bit dividend by a 32-bit divisor and places the result in a 32-bit register.
divweu divweu RT, RA, RB XO-form Base Performs an unsigned division of a 64-bit dividend by a 32-bit divisor and returns the quotient in a 32-bit register.
divwu divwu RT, RA, RB XO-form Base Divides the lower 32 bits of RA by the lower 32 bits of RB (Unsigned).
dmul dmul FRT,FRA,FRB
dmul. FRT,FRA,FRB
X-form Decimal Floating-Point Multiplies the contents of two DFP registers and places the result in another DFP register.
dmulq dmulq vD, vA, vB X-form Decimal Floating-Point Multiplies two 128-bit DFP numbers.
doze doze X-form Privileged Enters Doze power-saving mode (Supervisor only).
dqua dqua FRT,FRA,FRB,RMC
dqua. FRT,FRA,FRB,RMC
X-form Decimal Floating-Point Adjusts the exponent of a DFP number to match a reference. Critical for aligning decimal points before addition.
dquai dquai TE,FRT,FRB,RMC
dquai. TE,FRT,FRB,RMC
Z23-form Decimal Floating-Point Adjusts the value to a form having the specified exponent in the range -16 to 15.
dquai. dquai. FRT,FRB,UI Z23-form Decimal Floating-Point Quantizes a DFP value to an immediate number of decimal digits.
dquaq dquaq vD, vA, vB X-form Decimal Floating-Point Adjusts exponent of 128-bit DFP number.
drdpq drdpq FRT, vB X-form Decimal Floating-Point Rounds DFP Quad (128-bit) to DFP Long (64-bit).
drintn drintn R,FRT,FRB,RMC

drintn. R,FRT,FRB,RMC
Z23-form Decimal Floating-Point Rounds a decimal floating-point number to an integer without recognizing an inexact exception.
drintx drintx R,FRT,FRB,RMC

drintx. R,FRT,FRB,RMC
Z23-form Decimal Floating-Point Rounds a decimal floating-point number to the nearest integer and places it into a floating-point register.
drrnd drrnd FRT,FRA,FRB,RMC

drrnd. FRT,FRA,FRB,RMC
Z23-form Decimal Floating-Point Rounds a decimal floating-point value to the specified number of significant digits.
drrnd. drrnd. RA, RB Z23-form Decimal Floating-Point Rerounds a decimal floating-point number to the specified precision.
drrndq drrndq vD, vA, vB X-form Decimal Floating-Point Rerounds a 128-bit DFP number to fewer digits.
drsp drsp FRT,FRB
drsp. FRT,FRB
X-form Decimal Floating-Point Rounds DFP Long (64-bit) to DFP Short (32-bit compressed).
dscli dscli FRT,FRA,SH
(Rc=0)
Z23-form Decimal Floating-Point Shifts the significand of a DFP operand left by a specified number of digits.
dsri dsri FRT, FRA, SH Z23-form Decimal Floating-Point Shifts the coefficient of a DFP number right.
dss dss STRM X-form Base Stops a data stream prefetch operation.
dssall dssall X-form Base Stops all active data stream prefetch operations.
dst dst RA, RB, STRM X-form Base Initiates a hardware data stream prefetch (AltiVec Legacy).
dstst dstst RA, RB, STRM X-form Base Initiates a prefetch for writing.
dststt dststt RA, RB, STRM X-form Base Initiates a transient prefetch for writing.
dstt dstt RA, RB, STRM X-form Base Initiates a transient (non-temporal) data stream prefetch.
dsub dsub FRT,FRA,FRB
(Rc=0)
X-form Decimal Floating-Point Subtracts the contents of two DFP registers and places the result in another DFP register.
dsubq dsubq vD, vA, vB X-form Decimal Floating-Point Subtracts two 128-bit DFP numbers.
dtstdc dtstdc BF,FRA,DCM Z22-form Decimal Floating-Point Tests the data class of a DFP operand and sets the CR field.
dtstex dtstex BF,FRA,FRB X-form Decimal Floating-Point Compares the exponent values of two DFP operands and updates CR field BF and FPCC.
dtstsf dtstsf BF,FRA,FRB X-form Decimal Floating-Point Tests the significance of a DFP value in FPR[FRB] against a reference significance.
dtstsfi dtstsfi BF, U, FRB X-form Decimal Floating-Point Tests the significance of a decimal floating-point value in FPR[FRB] against an immediate value UIM.
dtstsfiq dtstsfiq BF, U, FRB X-form Decimal Floating-Point Tests DFP Quad significance.
dxex dxex FRT,FRB
dxex. FRT,FRB
X-form Decimal Floating-Point Extracts the biased exponent of a DFP operand in FRB and places it into FRT.
dxexq dxexq vD, vB X-form Decimal Floating-Point Extracts exponent from 128-bit DFP.
eciwx eciwx RT, RA, RB X-form Base Loads a word from an external device using the EAR register.
ecowx ecowx RS, RA, RB X-form Base Stores a word to an external device using the EAR register.
ehpriv ehpriv OC X-form Embedded Enters embedded hypervisor privileged state.
eieio eieio X-form Base 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 Base Bitwise Equivalence (XNOR). RA = ~(RS ^ RB).
extldi extldi ra,rs,n,b (n > 0) XO-form Base Extracts a field of n bits starting at bit position b in the source register, left justifies this field in the target register, and clears all other bits of the target register to 0.
extlwi extlwi ra,rs,n,b (n > 0) XO-form Base Extracts a specified number of bits from the source register, left-justifies them, and places them in the target register.
extsb extsb RT,RS
extsb. RT,RS
X-form Base Sign extends the low byte of a register to the full width.
extsh extsh RA, RS X-form Base Sign extends the low halfword.
extsw extsw RT,RS
extsw. RT,RS
X-form Base Sign extends the low word (32-bit) to 64 bits.
extswsli extswsli RA,RS,SH XS-form Base Sign-extends the low-order 32 bits of a register, shifts it left by SH bits, and places the result in another register.
fabs fabs FRT, FRB X-form Floating-Point Computes absolute value of a float.
fadd fadd FRT,FRA,FRB
fadd. FRT,FRA,FRB
A-form Floating-Point Adds the contents of two floating-point registers and places the result into another register.
fcfid fcfid FRT,FRB
fcfid. FRT,FRB
X-form Floating-Point Converts a signed doubleword integer to a double-precision floating-point number.
fcfids fcfids FRT,FRB
fcfids. FRT,FRB
X-form Floating-Point Converts a 64-bit signed fixed-point operand in register FRB to single-precision floating-point.
fcfidu fcfidu FRT, FRB X-form Floating-Point Converts 64-bit Unsigned Int to Double.
fcfidus fcfidus FRT, FRB X-form Floating-Point Converts 64-bit Unsigned Int to Single.
fcfidus. fcfidus. FRT,FRB X-form Floating-Point Converts an unsigned doubleword integer in a floating-point register to a single-precision floating-point number, rounding the result.
fcmpu fcmpu BF, FRA, FRB X-form Floating-Point Compares two floating-point registers and sets the Condition Register (CR) field. Does not trap on NaNs.
fcpsgn fcpsgn FRT, FRA, FRB X-form Floating-Point Copies sign from FRB to FRA.
fcpsgn. fcpsgn. FRT,FRB,FRA X-form Floating-Point Copies the sign of one floating-point number to another.
fctid fctid FRT, FRB X-form Floating-Point Converts a double-precision floating-point value to a signed 64-bit integer using rounding.
fctidu fctidu FRT,FRB X-form Floating-Point Converts a double-precision floating-point value to an unsigned 64-bit integer using rounding.
fctidz fctidz FRT, FRB X-form Floating-Point Converts Double to 64-bit Int (Truncate).
fctiw fctiw FRT,FRB
fctiw. FRT,FRB
X-form Floating-Point Converts a float to a 32-bit signed integer (using the current rounding mode) and stores it in the lower half of the FPR.
fctiwu fctiwu FRT,FRB X-form Floating-Point Converts a double-precision floating-point value to an unsigned integer using rounding.
fctiwuz fctiwuz[.] FRT,FRB X-form Floating-Point Converts a double-precision floating-point number to an unsigned integer word.
fctiwz fctiwz FRT, FRB X-form Floating-Point Converts Double to 32-bit Int (Truncate).
fdiv. fdiv. FC,FA,FB XO-form Floating-Point Divides the contents of two floating-point registers and updates the condition register.
fdivs fdivs FRT,FRA,FRB XO-form Floating-Point Divides the contents of two single precision floating point registers.
fmadd fmadd FRT,FRA,FRC,FRB
fmadd. FRT,FRA,FRC,FRB
A-form Floating-Point Performs (A * C) + B with a single rounding step. (The classic FMA).
fmr fmr FRT,FRB
fmr. FRT,FRB
X-form Floating-Point Copies a float register (Pseudo: for FRB).
fmrgew fmrgew FRT,FRA,FRB X-form Floating-Point Merges the even words from two floating-point registers into a third.
fmsub fmsub FRT, FRA, FRC, FRB A-form Floating-Point Multiplies two floating-point values and subtracts a third.
fmul fmul FRT,FRA,FRC
fmul. FRT,FRA,FRC
A-form Floating-Point Multiplies the contents of two floating-point registers and places the result into another register.
fnabs fnabs FRT, FRB X-form Floating-Point Computes negative absolute value of a float.
fneg fneg FRT, FRB X-form Floating-Point Negates a float.
fnmadd fnmadd FRT,FRA,FRC,FRB
fnmadd. FRT,FRA,FRC,FRB
A-form Floating-Point Performs a floating-point negative multiply-add operation.
fnmsub fnmsub FRT, FRA, FRC, FRB A-form Floating-Point -(A*C - B)
fre fre FRT,FRB
fre. FRT,FRB
A-form Floating-Point Estimates the reciprocal of a floating-point operand.
fre. fre. RT,RA XO-form Floating-Point Estimates the reciprocal of a floating-point number.
fres fres FRT, FRB A-form Floating-Point Estimates the reciprocal of a single-precision floating-point number.
frin frin FRT,FRB
frin. FRT,FRB
X-form Floating-Point Rounds the floating-point operand in register FRB to an integral value using the rounding mode round to nearest.
frip frip FRT,FRB
frip. FRT,FRB
X-form Floating-Point Rounds a floating-point operand towards +infinity and places the result into a register.
frsp frsp FRT,FRB
frsp. FRT,FRB
X-form Floating-Point Rounds the contents of a floating-point register to single-precision.
frsqrte frsqrte FRT,FRB
frsqrte. FRT,FRB
A-form Floating-Point Estimates the reciprocal of the square root of a floating-point operand.
frsqrtes frsqrtes FRT, FRB A-form Floating-Point Estimates 1/sqrt(x) (Single Precision).
fsel fsel FRT,FRA,FRC,FRB
fsel. FRT,FRA,FRC,FRB
A-form Floating-Point Selects FRA if FRC >= 0, else FRB (Optional).
fsqrt fsqrt FRT,FRB
fsqrt. FRT,FRB
X-form Floating-Point Computes the square root of a floating-point number.
fsqrts fsqrts FRT, FRB X-form Floating-Point Computes square root (Single).
ftdiv ftdiv BF, FRA, FRB X-form Floating-Point Tests the double-precision floating-point operand in register FRB and sets flags based on certain conditions.
ftsqrt ftsqrt BF, FRB X-form Floating-Point Tests for conditions that would cause a sqrt exception.
hashchk hashchk RA X-form Base Checks the hash of the Return Address Stack (ROP Protection).
hashchkp hashchkp RA X-form Privileged Checks the hash value of a memory location against a computed hash.
hashst hashst RA X-form Base Stores the computed doubleword hash value to a doubleword storage location.
hashstp hashstp RA X-form Privileged Privileged version of hash store.
hrfid hrfid XL-form Privileged Returns from a hypervisor interrupt.
icbi icbi RA, RB X-form Base Invalidates the instruction cache block associated with the address. Critical for self-modifying code or JITs.
icblc icblc CT, RA, RB X-form Embedded Clears an instruction cache line lock.
icbt icbt RA, RB X-form Base Provides a hint that the program will soon execute code from the block containing the byte addressed by EA, and that the block should be loaded into the cache specified by the CT field.
icbtls icbtls CT, RA, RB X-form Privileged Locks an instruction cache line.
iccci iccci RA, RB X-form Embedded Invalidates a congruence class in the instruction cache (Embedded).
icread icread RA, RB X-form Embedded Reads an instruction cache tag or data (Debug).
isel isel RT, RA, RB, BC A-form Base Conditionally copies RA or RB to RT based on a CR bit. (Equivalent to C ternary operator 'cond ? a : b').
isync isync XL-form Base Ensures that all instructions preceding the isync instruction have completed before it completes, and that no subsequent instructions are initiated until after the isync instruction completes.
lbarx lbarx RT,RA,RB,EH
lbarx RT,RA,RB
X-form Base Loads a byte from memory and reserves the location for exclusive access.
lbz lbz RT, D(RA) D-form Base Loads a byte from memory into the low 8 bits of a register and clears the upper 56 bits.
lbzbrx lbzbrx RT,RA,RB X-form Base Loads a byte from memory and reverses its order, placing it into a register.
lbzci lbzci RT, RA, RB X-form Base Loads a byte bypassing the cache. Used for memory-mapped I/O.
lbzcix lbzcix RT,RA,RB X-form Base Loads a byte from memory into a register, zeroing the upper bits of the target register.
lbzepx lbzepx RT, RA, RB X-form Embedded Loads a byte using the External PID (for OS kernels accessing user memory).
lbzu lbzu RT,D(RA) D-form Base Loads a byte from memory into a register, zeroing the upper bits of the target register, and updates the base address register.
lbzux lbzux RT,RA,RB X-form Base Loads a byte from memory into a register, zero-extends it to 32 bits, and updates the base address.
ld ld RT, DS(RA) DS-form Base Loads a doubleword (64 bits) from memory.
ldarx ldarx RT,RA,RB,EH
ldarx RT,RA,RB
X-form Base Loads a doubleword and creates a reservation. 64-bit version of lwarx.
ldat ldat RT,RA,RB X-form Base Atomically loads a doubleword from memory.
ldbrx ldbrx RT, RA, RB X-form Base Loads a doubleword from memory, byte-reversing it before storing in the target register.
ldci ldci RT, RA, RB X-form Base Loads a doubleword bypassing the cache.
lfd lfd FRT,D(RA) D-form Floating-Point Loads a double-precision floating-point value from memory into a floating-point register.
lfdp lfdp FRTp,disp(RA) DS-form Floating-Point Loads a doubleword-pair from storage into an even-odd pair of FPRs.
lfdu lfdu FRT,D(RA) D-form Floating-Point Loads a doubleword from memory into a floating-point register and updates the base address register.
lfs lfs FRT,D(RA) D-form Floating-Point Loads a single-precision floating-point value from memory into a floating-point register and converts it to double precision.
lfsu lfsu FRT,D(RA) X-form Floating-Point Loads a floating-point single-precision operand from memory into a register and updates the base address.
lfsx lfsx FT,RA,RB X-form Floating-Point Loads a single-precision floating-point value from memory into a floating-point register.
lha lha RT, D(RA) D-form Base Loads a halfword (16 bits) from memory and sign-extends it to 64 bits.
lharx lharx RT, RA, RB X-form Base Atomic Load Halfword.
lhax lhax RT,RA,RB X-form Base Loads a halfword from memory into a register and extends it to a full word, with indexed addressing.
lhbrx lhbrx RT, RA, RB X-form Base Loads a halfword from memory, byte-reverses it, and stores it in a register.
lhz lhz RT, D(RA) D-form Base Loads a halfword (16 bits) from memory and clears the upper 48 bits.
lhzci lhzci RT, RA, RB X-form Base Loads a halfword bypassing the cache.
lhzepx lhzepx RT, RA, RB X-form Embedded Loads a halfword using the External PID.
lhzu lhzu RT,D(RA) D-form Base Loads a halfword from memory into a register, zero-extends it to 64 bits, and updates the base address.
li li RT, SIM D-form Base Loads a 16-bit signed immediate into a register. (Alias for 'addi RT, 0, SIM').
lis lis RT, SIM D-form Base 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 Base Loads words from memory into registers RT through R31 (Context Switch).
lq lq RTp, DQ(RA) DQ-form Base Loads 128 bits into two adjacent GPRs (Even/Odd pair).
lqarx lqarx RTp, RA, RB X-form Base Loads a quadword from memory and reserves the location for conditional store.
lswi lswi RT, RA, NB X-form Base Loads a sequence of bytes from memory into general-purpose registers.
lswx lswx RT, RA, RB X-form Base Loads N bytes from memory (N in XER).
lvebx lvebx VRT,RA,RB X-form VMX (AltiVec) Loads a byte from memory into a vector register element.
lvehx lvehx VX,RA,RB X-form VMX (AltiVec) Loads a halfword element from memory into the corresponding halfword element of a vector register, with the address computed as the sum of RA and RB, aligned to a halfword boundary.
lvewx lvewx VRT,RA,RB X-form VMX (AltiVec) Loads a word from memory into a vector register element.
lvsl lvsl VRT,RA,RB X-form VMX (AltiVec) Loads a vector pattern suitable for shifting left indexed.
lvx lvx vD, RA, RB X-form VMX (AltiVec) 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 Base Loads a word (32 bits) from memory and sign-extends it to 64 bits.
lwarx lwarx RT,RA,D
lwarx EH=0 RT,RA,D
lwarx EH=1 RT,RA,D
X-form Base Loads a word and creates a reservation for use with 'stwcx.'. Critical for implementing atomic primitives (mutexes).
lwat lwat RT,RA,FC X-form Base Loads a word from memory atomically.
lwax lwax RT,RA,RB X-form Base Loads a word from memory into a register using an indexed address.
lwbrx lwbrx RT, RA, RB X-form Base Loads a word and swaps bytes.
lwdi lwdi RT, RA, RB X-form Embedded Loads a word and sends decoration sideband signals to the bus.
lwsync lwsync Pseudo Base 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 Base Loads a word (32 bits) from memory and clears the upper 32 bits.
lwzci lwzci RT, RA, RB X-form Base Loads a word bypassing the cache.
lwzepx lwzepx RT, RA, RB X-form Embedded Loads a word using the External PID.
lxsd lxsd VRT,disp(RA) DS-form VSX Loads a doubleword from memory into a VSX scalar register.
lxsdx lxsdx XT,RA,RB X-form VSX Loads a doubleword from memory into a VSX scalar register.
lxsibzx lxsibzx XT,RA,RB X-form VSX Loads a byte from memory and places it into the specified VSX register, zeroing the upper half.
lxsiwax lxsiwax XT, RA, RB XX1-form VSX Loads a word from memory into the left-most doubleword element of a VSR, sign-extends it to 64 bits, and aligns it.
lxsiwzx lxsiwzx XT, RA, RB XX1-form VSX Loads a word from memory and places it into the specified VSX register, zero-extending it.
lxssp lxssp RT,RA,RB XX2-form VSX Accesses a floating-point operand in single-precision format from storage, converts it to double-precision format, and loads it into a VSR.
lxsspx lxsspx XT,RA,RB X-form VSX Loads a single-precision floating-point value from memory and converts it to double-precision format in a VSX register.
lxv lxv XT, DQ(RA) DQ-form VSX Loads a 128-bit vector from memory (VSX aligned offset).
lxvb16x lxvb16x XT,RA,RB X-form VSX Loads a vector of 16 byte elements from memory into a VSX register.
lxvd2x lxvd2x XT, RA, RB XX1-form VSX 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 VSX Loads a doubleword from memory and splats it into two elements of a VSX vector register.
lxvh8x lxvh8x XT,RA,RB X-form VSX Loads a vector of 8 halfwords from memory into a VSX register.
lxvkq lxvkq XT,UIM X-form VSX Loads a special value into a VSX vector register.
lxvl lxvl XT, RA, RB XX1-form VSX Loads N bytes into a vector, where N is specified in a GPR.
lxvll lxvll XT,RA,RB X-form VSX Loads a variable-length vector from memory into a VSX register, left-justifying the data.
lxvp lxvp XT, DQ(RA) DQ-form VSX Loads a double quadword from memory into two VSX registers.
lxvpx lxvpx XTp,RA,RB X-form VSX Loads a vector from memory into two VSR registers.
lxvrbx lxvrbx XT,RA,RB X-form VSX Loads a byte from memory into the rightmost byte of a VSX vector register.
lxvrdx lxvrdx XT,RA,RB X-form VSX Loads a doubleword from memory into the rightmost element of a VSX vector register.
lxvrhx lxvrhx XT,RA,RB X-form VSX Loads a halfword from memory into the rightmost element of a VSX vector register.
lxvrwx lxvrwx XT,RA,RB X-form VSX Loads a word from memory into the rightmost word of a VSX vector register.
lxvw4x lxvw4x XT, RA, RB XX1-form VSX Loads four words into a vector (unaligned).
lxvwsx lxvwsx XT, RA, RB XX1-form VSX Loads a 32-bit word and replicates it across the vector.
lxvx lxvx XT,RA,RB X-form VSX Loads a quadword from memory into a VSX register.
macchw macchw RT, RA, RB XO-form Embedded Multiply bottom half of RA by top half of RB, add to RT.
macchws macchws RT, RA, RB XO-form Embedded Signed Multiply Accumulate Cross Halfword with Saturation.
macchwsu macchwsu RT, RA, RB XO-form Embedded Mixed Sign Multiply Accumulate Cross Halfword with Saturation.
macchwu macchwu RT, RA, RB XO-form Embedded Unsigned Multiply Accumulate Cross Halfword.
machhw machhw RT, RA, RB XO-form Embedded Multiply top half of RA by top half of RB, add to RT.
machhws machhws RT, RA, RB XO-form Embedded Signed Multiply Accumulate High Halfword with Saturation.
machhwsu machhwsu RT, RA, RB XO-form Embedded Mixed Sign Multiply Accumulate High Halfword with Saturation.
machhwu machhwu RT, RA, RB XO-form Embedded Unsigned Multiply Accumulate High Halfword.
maclhw maclhw RT, RA, RB XO-form Embedded Multiply bottom half of RA by bottom half of RB, add to RT.
maclhws maclhws RT, RA, RB XO-form Embedded Signed Multiply Accumulate Low Halfword with Saturation.
maclhwsu maclhwsu RT, RA, RB XO-form Embedded Mixed Sign Multiply Accumulate Low Halfword with Saturation.
maclhwu maclhwu RT, RA, RB XO-form Embedded Unsigned Multiply Accumulate Low Halfword.
maddhd maddhd RT,RA,RB,RC VA-form Base Multiplies two 64-bit operands and adds the result to a third 64-bit operand, placing the high-order 64 bits of the sum into a target register.
mbar mbar MO X-form Embedded Ensures memory access ordering (Embedded version of 'sync').
mcrf mcrf BF, BFA XL-form Base Copies the contents of one Condition Register field to another. Used to save comparison results.
mcrfs mcrfs BF, BFA X-form Floating-Point Moves a field from the Floating-Point Status and Control Register (FPSCR) to the Condition Register.
mcrxrx mcrxrx BF X-form Base Copies the contents of the XER register fields OV, OV32, CA, and CA32 to the specified condition register field.
mfbhrbe mfbhrbe RT, BHRBE X-form Base Reads a specific entry from the BHRB.
mfcr mfcr RT X-form Base Copies the entire 32-bit Condition Register into a General Purpose Register.
mfctr mfctr RT XFX-form Base Moves CTR to GPR. (Alias for 'mfspr RT, 9').
mfdcr mfdcr RT, DCRN XFX-form Embedded Reads an on-chip peripheral register (DCR).
mffs mffs FRT
mffs. FRT
X-form Floating-Point Moves the contents of the Floating-Point Status and Control Register (FPSCR) into a floating-point register.
mffscdrn mffscdrn FRT,FRB X-form Floating-Point Moves control bits from FPSCR to a register and sets the DRN field.
mffsl mffsl FRT X-form Floating-Point Moves the control and non-sticky status bits from the FPSCR to a general-purpose register.
mflr mflr RT XFX-form Base Moves LR to GPR. (Alias for 'mfspr RT, 8').
mfmsr mfmsr RT X-form Privileged Moves the contents of the Machine State Register (MSR) into a general-purpose register.
mfocrf mfocrf RT, FXM XFX-form Base Moves a single CR field to a GPR.
mfpmr mfpmr RT, PMRN X-form Embedded Reads a performance monitor register (Embedded).
mfpvr mfpvr RT X-form Privileged Reads the PVR (Processor ID).
mfspr mfspr RT, SPR XFX-form Base Moves the contents of a special purpose register into a general-purpose register.
mfsr mfsr RT, SR X-form Base Legacy 32-bit segment register read.
mfsrin mfsrin RT, RB X-form Base Indirect read of segment register using RB.
mftar mftar RT XFX-form Base Reads the TAR into a GPR.
mftb mftb RT,268
mftb RT
XFX-form Base Moves the contents of the Time Base Register (TBR) into a general-purpose register.
mftbu mftbu RT XFX-form Base Reads the upper 32 bits of the Timebase (32-bit implementations).
mfvsrd mfvsrd RA, XS XX1-form VSX Moves the contents of a doubleword element from a Vector-Scalar Register (VSR) to a General Purpose Register (GPR).
mfvsrld mfvsrld RA, XS XX1-form VSX Moves the lower doubleword of a vector register to a general-purpose register.
mfvsrwz mfvsrwz RA, XS XX1-form VSX Moves the contents of a word element from a vector-scalar register to a general-purpose register, zeroing the upper bits.
modsd modsd RT, RA, RB X-form Base Calculates remainder of signed doubleword division.
modsq modsq vD, vA, vB VX-form Base Computes remainder of 128-bit signed division.
modsw modsw RT, RA, RB X-form Base Calculates remainder of signed word division.
modud modud RT, RA, RB X-form Base Calculates remainder of unsigned doubleword division.
moduq moduq vD, vA, vB VX-form Base Computes remainder of 128-bit unsigned division.
moduw moduw RT, RA, RB X-form Base Calculates remainder of unsigned word division.
mr mr RA, RS X-form Base Copies contents of RS to RA. (Alias for 'or RA, RS, RS').
msgclr msgclr RB X-form Privileged Clears a pending doorbell interrupt (Inter-processor comms).
msgclrp msgclrp RB X-form Privileged Clears a privileged doorbell interrupt.
msgslp msgslp RB X-form Privileged Transitions the processor to a sleep state via message.
msgsnd msgsnd RB X-form Privileged Sends a doorbell interrupt to another processor.
msgsndp msgsndp RB X-form Privileged Sends a message to other threads on the same processor or sub-processor.
msgsndu msgsndu RB X-form Privileged Sends a message to other threads in the system.
msgsync msgsync X-form Privileged Provides an ordering function for stores relative to data accesses by other threads after a Directed Ultravisor Doorbell or Directed Hypervisor Doorbell interrupt.
msync msync X-form Embedded Synchronizes memory accesses (Alias for sync).
mtcrf mtcrf FXM, RS XFX-form Base Copies bits from a register into the Condition Register, updated only the fields specified by the mask (FXM).
mtctr mtctr RS XFX-form Base Moves GPR to CTR. (Alias for 'mtspr 9, RS').
mtdcr mtdcr DCRN, RS XFX-form Embedded Writes an on-chip peripheral register (DCR).
mtfsb0 mtfsb0 BT X-form Floating-Point Clears a specific bit in the FPSCR.
mtfsb1 mtfsb1 BT X-form Floating-Point Sets a specific bit in the FPSCR.
mtfsf mtfsf FLM,FRB,L,W
mtfsf. FLM,FRB,L,W
XFL-form Floating-Point Moves the contents of a floating-point register into specified fields of the FPSCR.
mtfsfi mtfsfi BF, U X-form Floating-Point Writes a 4-bit immediate to a specific FPSCR field.
mtlr mtlr RS XFX-form Base Moves GPR to LR. (Alias for 'mtspr 8, RS').
mtmsr mtmsr RS,L
mtmsr RS
X-form Privileged Sets the Machine State Register (MSR) based on the contents of a source register and a control bit.
mtmsrd mtmsrd RS,L
mtmsrd RS
X-form Privileged Sets the Machine State Register (MSR) based on the contents of a source register and an L field.
mtocrf mtocrf FXM, RS XFX-form Base Moves a GPR field to a single CR field.
mtpmr mtpmr PMRN, RS X-form Embedded Writes a performance monitor register (Embedded).
mtspr mtspr SPR, RS XFX-form Base Copies a value from a general-purpose register to a system SPR (e.g., CTR, LR, XER).
mtsr mtsr SR, RS X-form Base Legacy 32-bit segment register write.
mtsrin mtsrin RS, RB X-form Base Indirect write of segment register using RB.
mttar mttar RS XFX-form Base Moves a GPR value to the TAR.
mtvscr mtvscr VRB VX-form VMX (AltiVec) Moves the contents of a vector register word into the VSCR.
mtvsrbm mtvsrbm VRT,RB VX-form VMX (AltiVec) Moves a byte mask from a GPR to a VSR.
mtvsrbmi N/A XO-form Base Moves a bit mask immediate value into a vector scalar register, setting each byte element based on corresponding bits of the immediate.
mtvsrd mtvsrd XT, RA XX1-form VSX Moves 64 bits from a GPR to a VSR.
mtvsrdd mtvsrdd XT, RA, RB X-form VSX Moves the contents of two general-purpose registers into a vector-scalar register (VSR) as doublewords.
mtvsrqm mtvsrqm VRT,RB VX-form VMX (AltiVec) Moves a quadword mask from a general-purpose register to a vector scalar register.
mtvsrwa mtvsrwa XT, RA XX1-form VSX Moves the two's-complement integer in bits 32:63 of GPR[RA] to doubleword element 0 of VSR[XT], sign-extended to 64 bits.
mtvsrwm mtvsrwm VRT,RB VX-form VMX (AltiVec) Moves a word mask from a general-purpose register to a vector scalar register.
mtvsrws mtvsrws XT, RA XX1-form VSX Moves a 32-bit word from a GPR and replicates it across the vector.
mulchw mulchw RT, RA, RB XO-form Embedded Multiply bottom half of RA by top half of RB.
mulchwu mulchwu RT, RA, RB XO-form Embedded Unsigned Multiply Cross Halfword.
mulhd mulhd RT, RA, RB XO-form Base Multiplies two 64-bit integers and returns the upper 64 bits of the 128-bit result (Signed).
mulhd. mulhd. RT,RA,RB XO-form Base Multiplies the contents of two registers and places the high-order 64 bits of the product into a target register.
mulhdu mulhdu RT, RA, RB XO-form Base Multiplies two 64-bit integers and returns the upper 64 bits of the 128-bit result (Unsigned).
mulhhw mulhhw RT, RA, RB XO-form Embedded Multiply top half of RA by top half of RB.
mulhhwu mulhhwu RT, RA, RB XO-form Embedded Unsigned Multiply High Halfword.
mulhw mulhw RT, RA, RB XO-form Base Multiplies two 32-bit integers and returns the upper 32 bits (Signed).
mulhwu mulhwu RT, RA, RB XO-form Base Multiplies two 32-bit integers and returns the upper 32 bits (Unsigned).
mulld mulld RT,RA,RB
mulldo RT,RA,RB
XO-form Base Multiplies the contents of two registers and places the low-order 64 bits of the product into a target register.
mullhw mullhw RT, RA, RB XO-form Embedded Multiply bottom half of RA by bottom half of RB.
mullhwu mullhwu RT, RA, RB XO-form Embedded Unsigned Multiply Low Halfword.
mulli mulli RT,RA,SI D-form Base Multiplies the contents of a register by an immediate value and places the low-order 32 bits of the product into another register.
mullw mullw RT, RA, RB XO-form Base Multiplies two 32-bit integers and stores the lower 32 bits of the 64-bit result.
nand nand RA, RS, RB X-form Base Bitwise NAND. RA = ~(RS & RB).
nap nap X-form Privileged Enters Nap power-saving mode (Supervisor only).
neg neg RT, RA XO-form Base Computes the two's complement negation of a register (0 - RT).
nmacchw nmacchw RT, RA, RB XO-form Embedded Negate product of cross halfwords and add to accumulator.
nmacchws nmacchws RT, RA, RB XO-form Embedded Negate product of cross halfwords and add to accumulator (Signed Saturation).
nmachhw nmachhw RT, RA, RB XO-form Embedded Negate product of high halfwords and add to accumulator.
nmachhws nmachhws RT, RA, RB XO-form Embedded Negate product of high halfwords and add to accumulator (Signed Saturation).
nmaclhw nmaclhw RT, RA, RB XO-form Embedded Negate product of low halfwords and add to accumulator.
nmaclhws nmaclhws RT, RA, RB XO-form Embedded Negate product of low halfwords and add to accumulator (Signed Saturation).
nop nop D-form Base Does nothing. (Alias for 'ori 0, 0, 0').
nor nor RA, RS, RB X-form Base Bitwise NOR. RA = ~(RS | RB).
not not Rx,Ry
not. Rx,Ry
X-form Base Complements the contents of one register and places the result into another register.
or or RT,RA,RB
miso
X-form Base Performs a bitwise OR operation on the contents of two registers and places the result in a third register.
or. or. RT,RA,RB X-form Base Performs a bitwise OR operation on the contents of two registers and updates the condition register.
orc orc RA,RS,RB
orc. RA,RS,RB
X-form Base Performs a bitwise OR operation between the contents of two registers and the complement of the third register.
ori ori RT,RS,SImm
ori R31,R31,0
D-form Base Performs a bitwise OR operation between the contents of a register and an immediate value, placing the result in another register.
oris oris RA, RS, UI D-form Base Performs a bitwise OR with a 16-bit immediate shifted left by 16 bits.
paddi paddi RT, RA, SI, R MLS:D-form Prefixed Adds 34-bit immediate.
paste paste RA, RB X-form Privileged Transfers data from the copy buffer to a specified memory location.
paste. paste. RA, RB X-form Privileged Paste operation that updates CR0 to indicate success/fail.
pdepd pdepd RA, RS, RB X-form Base Deposits bits from RS to RA under control of mask RB (Scalar).
pextd pextd RA, RS, RB X-form Base Extracts bits from a source register based on a mask and places them into the target register.
pla pla RT, label Pseudo Prefixed Pseudo-instruction for paddi with R=1. Loads the address of a label.
plbz plbz RT, D34(RA), R MLS:D-form Prefixed Loads a byte and zero-extends it, using a 34-bit offset.
pld pld RT, D34(RA), R MLS:D-form Prefixed Loads a 64-bit value from memory using a 34-bit immediate offset (PC-relative or absolute).
plfd plfd RT,RA,RB D-form Prefixed Loads a double-precision floating-point value from memory into a VSX register.
plh plh RT, D(RA), R MLS:D-form Prefixed Loads 16-bit halfword using 34-bit offset.
plha plha RT, D(RA), R MLS:D-form Prefixed Loads 16-bit halfword (Sign Extended) using 34-bit offset.
pli pli RT, SI34 MLS:D-form Prefixed Loads a 34-bit signed immediate into a register. (Replaces multiple 'lis/ori' instructions).
plq plq RTp, D(RA), R MLS:D-form Prefixed Loads 128 bits into two GPRs using a 34-bit offset.
plwa plwa RT, D(RA), R MLS:D-form Prefixed Loads 32-bit word (Sign Extended) using 34-bit offset.
plwz plwz RT, D34(RA), R MLS:D-form Prefixed Loads a 32-bit word and zero-extends it to 64 bits, using a 34-bit offset.
plxv plxv RT,RA,RB D-form Prefixed Loads a 128-bit VSX vector from memory into a VSX register using a prefixed instruction with a large displacement.
plxvp plxvp XT, D(RA), R 8LS:D-form Prefixed Loads a 256-bit vector pair with 34-bit offset.
pmxvbf16ger2 pmxvbf16ger2 AT, XA, XB, XMSK, YMSK MMIRR-form Prefixed Matrix Multiply Assist (MMA) instruction. Computes ACC <- ACC + (A * B) using BF16 inputs.
pmxvbf16ger2np pmxvbf16ger2np AT,XA,XB,XMSK,YMSK,PMSK MMIRR:XX3-form VSX Performs a masked vector operation with bfloat16 elements using negative multiplication and positive accumulation.
pmxvf16ger2np pmxvf16ger2np AT,XA,XB,XMSK,YMSK,PMSK MMIRR:XX3-form VSX Performs a masked vector operation with negative multiplication and positive accumulation.
pmxvf16ger2pp pmxvf16ger2pp MMIRR:XX3-form MMA Performs a prefixed masked VSX vector 16-bit floating-point GER rank-2 update with positive multiply and positive accumulate.
pmxvf32gernp pmxvf32gernp AT,XA,XB,XMSK,YMSK MMIRR:XX3-form VSX Performs a masked vector operation with negative multiplication and positive accumulation.
pmxvf32gerpp pmxvf32gerpp MMIRR:XX3-form MMA Performs a prefixed masked VSX vector 32-bit floating-point GER rank-1 update with positive multiply and positive accumulate.
pmxvf64ger pmxvf64ger AT, XA, XB, XMSK, YMSK MMIRR-form Prefixed Masked version of Double-Precision MMA.
pmxvf64gernn pmxvf64gernn MMIRR:XX3-form MMA Performs a prefixed masked VSX vector 64-bit floating-point GER (rank-1 update) with negative multiply and negative accumulate.
pmxvf64gernp pmxvf64gernp AT,XAp,XB,XMSK,YMSK MMIRR:XX3-form VSX Performs a masked vector floating-point operation with negative multiplication and positive accumulation.
pmxvi4ger8 pmxvi4ger8 AT, XA, XB, XMSK, YMSK MMIRR-form Prefixed Masked 4-bit integer matrix multiply.
pmxvi4ger8pp pmxvi4ger8pp AT, XA, XB, XMSK, YMSK MMIRR-form Prefixed Masked unsigned 4-bit integer matrix multiply.
pmxvi8ger4 pmxvi8ger4 AT, XA, XB, XMSK, YMSK MMIRR-form Prefixed Masked version of 8-bit integer MMA.
pmxvi8ger4pp pmxvi8ger4pp MMIRR:XX3-form MMA Performs a prefixed masked VSX vector 8-bit signed/unsigned integer GER rank-4 update with positive multiply and positive accumulate, adding the result to the accumulator.
pnop pnop *-form Prefixed No operation is performed.
popcntb popcntb RA,RS X-form Base Counts the number of one bits in each byte of a register.
popcntd popcntd RA, RS X-form Base Counts the number of set bits (1s) in a 64-bit register.
popcntw popcntw RA, RS X-form Base Counts the number of set bits (1s) in the lower 32 bits of a register.
prtyd prtyd RA, RS X-form Base Calculates parity of a doubleword (Scalar).
prtyw prtyw RA, RS X-form Base Calculates parity of a word (Scalar).
ps_add ps_add FRT, FRA, FRB A-form VMX (AltiVec) Adds two paired singles.
ps_madd ps_madd FRT, FRA, FRC, FRB A-form VMX (AltiVec) Multiply-Add on paired singles.
ps_mul ps_mul FRT, FRA, FRC A-form VMX (AltiVec) Multiplies two paired singles.
ps_sub ps_sub FRT, FRA, FRB A-form VMX (AltiVec) Subtracts two paired singles.
psq_l psq_l FRT, D(RA), W, I X-form VMX (AltiVec) Loads a paired single from memory (Embedded/Legacy).
psq_st psq_st FRS, D(RA), W, I X-form VMX (AltiVec) Stores a paired single to memory (Embedded/Legacy).
pstb pstb RS, D(RA), R MLS:D-form Prefixed Stores byte using 34-bit offset.
pstfd pstfd FRT,RA,RB MLS:D-form Prefixed Stores a double-precision floating-point value from a register to memory.
pstfs pstfs FRT,RA,RB MLS:D-form Floating-Point Stores a single-precision floating-point value from a register to memory.
psth psth RS, D(RA), R MLS:D-form Prefixed Stores halfword using 34-bit offset.
pstq pstq RSp, D(RA), R MLS:D-form Prefixed Stores 128 bits from two GPRs using a 34-bit offset.
pststd pststd RS, D34(RA), R MLS:D-form Prefixed Stores a 64-bit value to memory using a 34-bit immediate offset.
pstw pstw RS, D(RA), R MLS:D-form Prefixed Stores word using 34-bit offset.
pstxvp pstxvp XS, D(RA), R 8LS:D-form Prefixed Stores a 256-bit vector pair with 34-bit offset.
rfebb rfebb S
rfebb
XL-form Base Returns control to the address specified by EBBRR0:61 || 0b00 or 320 || EBBRR32:61 || 0b00, depending on MSRSF.
rfid rfid XL-form Privileged Returns from an interrupt handler. Restores PC from SRR0 and MSR from SRR1.
rfscv rfscv XL-form Privileged Returns from a vectored system call.
ripv ripv X-form Privileged Enters Deep Sleep mode (Supervisor only).
rldcr rldcr RT,RS,RB,ME
rldcr. RT,RS,RB,ME
MDS-form Base Rotates the contents of register RS left by a variable number of bits specified by (RB)58:63, and clears the rightmost bits.
rldic rldic RT,RA,RB,MB
rldic. RT,RA,RB,MB
MD-form Base 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 Base Rotates the contents of a register left by a specified number of bits and clears higher-order bits.
rldicr rldicr RA, RS, SH, ME MD-form Base 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 Base Rotates 64-bit value and inserts into target under mask.
rlwimi rlwimi RA, RS, SH, MB, ME M-form Base Rotates a word left, then inserts bits into the target under a mask. Used for inserting bitfields.
rlwinm rlwinm RA,RS,SH,MB,ME
rlwinm. RA,RS,SH,MB,ME
M-form Base Rotates the low-order 32 bits of a register left by a specified number of bit positions, generates a mask, and performs an AND operation.
rlwnm rlwnm RT,RS,RB,MB,ME
rlwnm. RT,RS,RB,MB,ME
M-form Base Rotates the contents of register RS left by the number of bits specified by (RB)59:63, and then performs a bitwise AND operation with a mask.
rotatel rotatel RT,RA,RB XO-form Base Rotates the contents of a register to the left by a specified number of bit positions.
sc sc LEV SC-form Base Provides the means by which a program can call upon the system to perform a service.
scv scv LEV SC-form Base Performs a system call to a fixed vector address (Faster than 'sc').
setb setb RT, BFA X-form Base Sets the target register based on the condition register field BFA.
setbc setbc RT, BI X-form Base Sets RT to 1 if CR bit is set, else 0. (Branchless logic).
setbcr setbcr RT, BI X-form Base Sets RT to 1 if CR bit is clear, else 0.
setnbc setnbc RT, BI X-form Base Sets RT to -1 if CR bit is set, else 0.
setnbcr setnbcr RT, BI X-form Base Sets RT to -1 if CR bit is clear, else 0.
slbfee. slbfee. RT,RB X-form Base Searches the SLB for an entry that matches the effective address specified by register RB.
slbia slbia
slbia IH
X-form Privileged Invalidates all Segment Lookaside Buffer entries (OS Management).
slbiag slbiag RS,L
slbiag RS
X-form Base Invalidates all SLBs for a specified LPID and PID.
slbie slbie RB X-form Privileged Invalidates an SLB entry. Critical for memory management on Power systems.
slbieg slbieg RS,RB X-form Base Invalidates SLB entries based on the contents of registers RS and RB.
slbmfee slbmfee RT, RB X-form Privileged Reads the ESID part of an SLB entry.
slbmfev slbmfev RT, RB X-form Privileged Reads software-loaded SLB entries and places the contents of the B, VSID, Ks, Kp, N, L, C, and LP fields into register RT.
slbmte slbmte RS, RB X-form Privileged Writes an SLB entry (Mapping effective to virtual address).
slbsync slbsync X-form Privileged Provides an ordering function for the effects of all slbieg and slbiag instructions executed by the thread executing the slbsync instruction.
sld sld RA, RS, RB X-form Base Shifts a 64-bit register left by the amount specified in RB.
sleep sleep X-form Privileged Enters Sleep power-saving mode (Supervisor only).
slw slw RT,RA,RB
slw. RT,RA,RB
X-form Base Shifts a 32-bit register left by the amount specified in RB.
slw. slw. RT,RA,RB XO-form Base Shifts the contents of a register left by a specified number of bits and updates the condition register.
srad srad RA, RS, RB X-form Base Arithmetic right shift of 64-bit value (preserves sign).
srad. srad. RT,RA,RB X-form Base Shifts the contents of a doubleword register right algebraically, shifting in sign bits.
sradi sradi RA, RS, SH XS-form Base Performs an arithmetic right shift on a 64-bit doubleword by a constant amount.
sraw sraw RA, RS, RB X-form Base 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 Base Shifts the contents of a register right by an immediate value and replicates the sign bit.
srd srd RA, RS, RB X-form Base Logical right shift of 64-bit value.
srw srw RA, RS, RB X-form Base Performs a logical right shift (zeros shifted in) on a 32-bit word.
stax stax RS,RA,RB X-form Base Performs an atomic update to an aligned memory location based on the function code (FC) specified.
stb stb RS, D(RA) D-form Base Stores the low 8 bits of a register to memory.
stbci stbci RS, RA, RB X-form Base Stores a byte bypassing the cache.
stbcix stbcix RS,RA,RB X-form Base Stores a byte from a register to memory with caching inhibited and guarded.
stbcx. stbcx. RS, RA, RB X-form Base Stores a byte from a register to memory if the reservation is valid and matches the address.
stbepx stbepx RS, RA, RB X-form Embedded Stores a byte using the External PID.
std std RS, DS(RA) DS-form Base Stores a 64-bit doubleword to memory.
stdbrx stdbrx RS, RA, RB X-form Base Swaps bytes and stores 64 bits.
stdci stdci RS, RA, RB X-form Base Stores a doubleword bypassing the cache.
stdcx. stdcx. RS, RA, RB X-form Base Stores a doubleword from a register to memory if the reservation is valid and matches the address used for the reservation.
stdi stdi RS, RA, RB X-form Embedded Stores a word and sends decoration sideband signals.
stdu stdu RS,disp(RA) DS-form Base Stores a doubleword from a register to memory and updates the base address register.
stdx stdx RS,RA,RB X-form Base Stores a doubleword from a register to memory using an indexed address.
stfd stfd FRS,D(RA) D-form Floating-Point Stores a double-precision floating-point value from a register to memory.
stfdp stfdp FRSp,disp(RA) DS-form Floating-Point Stores the contents of two floating-point registers into memory as a doubleword pair.
stfdux stfdux FRS,RA,RB X-form Floating-Point Stores the contents of a floating-point register into memory and updates the base address register.
stfs stfs FRS,D(RA) DS-form Floating-Point Stores a single-precision floating-point value from an FPR to memory.
stfsx stfsx FRS,RA,RB X-form Floating-Point Stores a single-precision floating-point value from a register to memory using an indexed address.
sth sth RS, D(RA) D-form Base Stores the high half of a doubleword from a register to memory.
sthbrx sthbrx RS, RA, RB X-form Base Swaps bytes and stores a halfword.
sthci sthci RS, RA, RB X-form Base Stores a halfword bypassing the cache.
sthcix sthcix RT,RB,RA X-form Base Stores a halfword from a general-purpose register to memory, with caching inhibited.
sthcx. sthcx. RS, RA, RB X-form Base Stores a halfword from a register to memory conditionally based on a reservation.
sthep sthepx RS, RA, RB X-form Embedded Stores a halfword using the External PID.
stmw stmw RT, D(RA) D-form Base Stores words from registers RT through R31 to memory (Context Switch).
stop stop X-form Privileged Stops instruction execution and enters a power-saving state (replaces nap/doze on P9+).
stq stq RSp, DQ(RA) DQ-form Base Stores a quadword from two general-purpose registers into memory.
stqcx. stqcx. RS, RA, RB X-form Base Stores a quadword from a register to memory if a reservation exists and the conditions are met.
stswi stswi RT, RA, NB X-form Base Stores a string of words from general-purpose registers to memory, starting at the address in RA and using an immediate byte count.
stswx stswx RT, RA, RB X-form Base Stores N bytes to memory (N in XER).
stvebx stvebx VRS,RA,RB X-form VMX (AltiVec) Stores a byte element from a vector register into memory.
stvehx stvehx VRS,RA,RB X-form VMX (AltiVec) Stores a halfword element from a vector register to memory.
stvx stvx vS, RA, RB X-form VMX (AltiVec) Stores a quadword from a vector register to memory at an address formed by adding two general-purpose registers.
stvxl stvxl VS,RA,RB X-form Base Stores a vector element to memory, with the last element being stored if the index is out of bounds.
stw stw RS, D(RA) D-form Base Stores the low 32 bits of a register to memory.
stwat stwat RS,RA,FC X-form Base Stores a word atomically to memory.
stwbrx stwbrx RS, RA, RB X-form Base Swaps bytes and stores a word.
stwci stwci RS, RA, RB X-form Base Stores a word bypassing the cache.
stwcix stwcix RS,RA,RB X-form Base Stores a word from a source register to memory with caching inhibited.
stwcx. stwcx. RS, RA, RB X-form Base Stores a word from a register to memory if the reservation is valid and matches the address used in the corresponding lwarx instruction.
stwepx stwepx RS, RA, RB X-form Embedded Stores a word using the External PID.
stxsd stxsd VRS,disp(RA) DS-form VSX Stores the contents of doubleword element 0 of VSR[XS] to memory.
stxsdx stxsdx XS,RA,RB X-form VSX Stores a doubleword from a VSX scalar register to memory.
stxsibx stxsibx XS,RA,RB X-form VSX Stores a byte from a VSX scalar register into memory at an address formed by adding two general-purpose registers.
stxsiwx stxsiwx XS, RA, RB XX1-form VSX Stores a single-precision floating-point value from a VSX register into memory, indexed by another register.
stxssp stxssp VRS,disp(RA) DS-form VSX Stores a single-precision floating-point value from a VSX register to memory.
stxsspx stxsspx XS,RA,RB X-form VSX Stores a single-precision floating-point value from a VSX register to memory.
stxv stxv XS, DQ(RA) DQ-form VSX Stores a 128-bit vector to memory (VSX aligned offset).
stxvb16x stxvb16x XS,RA,RB X-form VSX Stores a vector of 16 byte elements from VSR[XS] into Big-Endian storage using stxvb16x, retaining left-to-right element ordering.
stxvd2x stxvd2x XS, RA, RB XX1-form VSX Stores a 128-bit VSX register to memory. Does NOT require alignment.
stxvh8x stxvh8x XS,RA,RB X-form VSX Stores a vector of 8 halfword elements from VSR[X] into memory using indexed addressing.
stxvl stxvl XS, RA, RB XX1-form VSX Stores a specified number of bytes from a VSX vector register to memory.
stxvll stxvll XS,RA,RB X-form VSX Stores a left-justified vector from a VSX register to memory.
stxvp stxvp XS, DQ(RA) DQ-form VSX Stores a pair of VSX vector registers to memory.
stxvpx stxvpx XSp,RA,RB X-form VSX Stores a vector from two VSR registers into memory at the effective address.
stxvrbx stxvrbx XS,RA,RB X-form VSX Stores the rightmost byte of a VSX vector element to memory.
stxvrdx stxvrdx VX,RA,RB X-form VSX Stores the rightmost doubleword of a VSX vector register to memory.
stxvrhx stxvrhx XS,RA,RB X-form VSX Stores the rightmost halfword of a VSX vector element to memory.
stxvw4x stxvw4x XS, RA, RB XX1-form VSX Stores four words from a vector (unaligned).
stxvx stxvx xW,r0,rPW
stxvx xX,r0,rPX
stxvx xY,r0,rPY
stxvx xZ,r0,rPZ
X-form VSX Stores a vector element from the VSX register file to memory.
subfc. subfc. RT,RA,RB XO-form Base Subtracts the contents of one register from the complement of another and updates the carry-out flag.
sync sync
sync L
hwsync
lwsync
ptesync
plwsync
stncisync
stcisync
stsncisync
stcisync
X-form Base Ensures that all instructions preceding the sync instruction have completed before the sync instruction completes, and no subsequent instructions are initiated until after the sync instruction completes.
tabort. tabort. RA X-form Transactional Memory Forces a transaction failure and rollback.
tabortdc tabortdc TO, RA, RB X-form Transactional Memory Aborts a transaction if the condition is met (Doubleword comparison).
tabortdci tabortdci TO, RA, SI X-form Transactional Memory Aborts transaction if doubleword condition (Immediate) is met.
tabortwc tabortwc TO, RA, RB X-form Transactional Memory Aborts a transaction if the condition is met (Word comparison).
tabortwci tabortwci TO, RA, SI X-form Transactional Memory Aborts transaction if word condition (Immediate) is met.
tbegin. tbegin. R X-form Transactional Memory 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 Transactional Memory Checks transaction status and updates CR.
td td TO, RA, RB X-form Base Traps if condition (comparison of doublewords) is met.
tdi tdi TO, RA, SIM D-form Base Compares the contents of a register with an immediate value and invokes a trap handler if specified conditions are met.
tend. tend. A X-form Transactional Memory Commits the current hardware transaction. If successful, memory changes become visible atomically.
tlbia tlbia X-form Privileged Invalidates the entire Translation Lookaside Buffer.
tlbie tlbie RB, RS X-form Privileged Invalidates a TLB entry corresponding to the address in RB.
tlbiel tlbiel RS, RIC, PRS, effR X-form Privileged Invalidates a TLB entry on the current processor only.
tlbilx tlbilx T, RA, RB X-form Embedded Invalidates TLB entries on the local processor based on Process ID (PID).
tlbivax tlbivax RA, RB X-form Embedded Invalidates a TLB entry by virtual address.
tlbre tlbre X-form Embedded Reads a TLB entry into MAS registers.
tlbsx tlbsx RA, RB X-form Embedded Searches the TLB for an address.
tlbsync tlbsync X-form Privileged Provides an ordering function for the effects of all tlbie instructions executed by the thread executing the tlbsync instruction.
tlbwe tlbwe X-form Embedded Writes a TLB entry from MAS registers.
trap trap Pseudo Base Unconditional trap. Forces an exception. (Encoded as tw 31, 0, 0).
trechkpt trechkpt X-form Transactional Memory Updates the transaction checkpoint.
tresume tresume. X-form Transactional Memory Resumes a suspended transaction.
tsr tsr L X-form Transactional Memory Suspends or resumes a transaction based on L.
tsuspend tsuspend. X-form Transactional Memory Suspends the current transaction.
tw tw TO, RA, RB X-form Base Traps if condition (comparison of words) is met.
twi twi TO, RA, SIM D-form Base Compares the contents of register RA with an immediate value and invokes the system trap handler if any specified condition is met.
urfid urfid XL-form Privileged Returns from an ultravisor interrupt.
vabsdub vabsdub vD, vA, vB VA-form VMX (AltiVec) Returns the absolute value of the difference of integer values in byte elements.
vabsduh vabsduh vD, vA, vB VA-form VMX (AltiVec) Computes |A - B| for halfwords.
vabsduw vabsduw vD, vA, vB VA-form VMX (AltiVec) Calculates the absolute difference of unsigned words from two vector registers and stores the result in another vector register.
vaddcuq vaddcuq vD, vA, vB VX-form VMX (AltiVec) Adds the contents of two vector registers and writes the carry-out to another register.
vaddcuw vaddcuw vD, vA, vB VX-form VMX (AltiVec) Adds the contents of two vector registers and writes the carry-out to another vector register.
vaddfp vaddfp vD, vA, vB VA-form VMX (AltiVec) Adds the contents of two vector registers and places the result in another vector register.
vaddsbs vaddsbs vD, vA, vB VX-form VMX (AltiVec) Adds 16 signed bytes with saturation (-128..127).
vaddshs vaddshs vD, vA, vB VX-form VMX (AltiVec) Adds the contents of two vector registers and saturates the result if it overflows.
vaddsws vaddsws vD, vA, vB VX-form VMX (AltiVec) Adds 4 signed words with saturation.
vaddubm vaddubm vD, vA, vB VX-form VMX (AltiVec) Adds the contents of two vector registers and updates the result in another vector register, modulo operation for bytes.
vaddubs vaddubs vD, vA, vB VX-form VMX (AltiVec) Adds the contents of two vector registers and saturates the result if it overflows.
vaddudm vaddudm vD, vA, vB VX-form VMX (AltiVec) Adds 2 doublewords modulo 2^64.
vadduhm vadduhm vD, vA, vB VX-form VMX (AltiVec) Adds 8 halfwords modulo 65536.
vadduhs vadduhs vD, vA, vB VX-form VMX (AltiVec) Adds the contents of two vector registers and saturates the result.
vadduqm vadduqm vD, vA, vB VA-form VMX (AltiVec) Adds the contents of two vector registers and updates the destination register with the result modulo 2^128.
vadduwm vadduwm vD, vA, vB VX-form VMX (AltiVec) Adds 4 words modulo 2^32.
vadduws vadduws vD, vA, vB VX-form VMX (AltiVec) Adds the contents of two vector registers and saturates the result if it exceeds 32 bits.
vand vand vD, vA, vB VX-form VMX (AltiVec) Performs a bitwise AND operation on the contents of two vector registers and stores the result in another vector register.
vandc vandc vD, vA, vB VX-form VMX (AltiVec) Bitwise AND of vA with the ones' complement of vB (vA & ~vB).
vavgsb vavgsb vD, vA, vB VA-form VMX (AltiVec) Performs a signed byte-wise average of two vector registers and stores the result in another vector register.
vavgsh vavgsh vD, vA, vB VA-form VMX (AltiVec) Performs a signed halfword average operation on vector elements.
vavgsw vavgsw vD, vA, vB VA-form VMX (AltiVec) Performs a vector average of signed words from two source vectors and stores the result in a destination vector.
vavgub vavgub vD, vA, vB VA-form VMX (AltiVec) Computes (a+b+1)/2 for bytes.
vavguh vavguh vD, vA, vB VA-form VMX (AltiVec) Computes (a+b+1)/2 for halfwords.
vavguw vavguw vD, vA, vB VA-form VMX (AltiVec) Computes (a+b+1)/2 for words.
vbcdadd vbcdadd vD, vA, vB, PS VX-form Vector Crypto Adds two BCD (Binary Coded Decimal) vectors.
vbcdsub vbcdsub vD, vA, vB, PS VX-form Vector Crypto Subtracts two BCD vectors.
vbpermd vbpermd VRT,VRA,VRB VX-form VMX (AltiVec) Performs a bit permute operation on doublewords of two vector registers and stores the result in another vector register.
vbpermq vbpermq VRT,VRA,VRB VX-form VMX (AltiVec) Performs a bit permutation on two vector registers and stores the result in another vector register.
vbrd vbrd vD, vB VX-form VMX (AltiVec) Reverses bytes within each doubleword.
vbrh vbrh vD, vB VX-form VMX (AltiVec) Reverses bytes within each halfword (Endian Swap).
vbrq vbrq vD, vB VX-form VMX (AltiVec) Reverses bytes within the entire 128-bit quadword.
vbrw vbrw vD, vB VX-form VMX (AltiVec) Reverses bytes within each word.
vcfsx vcfsx vD, vB, UIM VX-form VMX (AltiVec) Converts signed fixed-point values in a vector register to single-precision floating-point values.
vcfuged vcfuged vD, vA, vB VX-form VMX (AltiVec) Separates bits of source into two groups based on mask (Power10).
vcfux vcfux vD, vB, UIM VX-form VMX (AltiVec) Converts 4 unsigned 32-bit integers to floats.
vcipher vcipher vD, vA, vB VX-form Vector Crypto Performs one round of AES encryption (SubBytes, ShiftRows, MixColumns, AddRoundKey).
vcipherlast vcipherlast vD, vA, vB VX-form Vector Crypto Performs the final round of AES encryption (SubBytes, ShiftRows, AddRoundKey). No MixColumns.
vclrlb vclrlb vD, vA, RB VX-form VMX (AltiVec) Clears the leftmost bytes in a vector register based on the value in a general-purpose register.
vclrrb vclrrb vD, vA, RB VX-form VMX (AltiVec) Clears the N rightmost bytes of a vector.
vclzb vclzb vD, vB VX-form VMX (AltiVec) Counts the number of leading zero bits in each byte element of a vector register.
vclzd vclzd vD, vB VX-form VMX (AltiVec) Counts the number of leading zero bits in each doubleword element of a vector register.
vclzdm vclzdm VRT, VRA, VRB X-form VMX (AltiVec) Counts the number of leading zeros in each doubleword element of a vector, considering a mask.
vclzh vclzh vD, vB VX-form VMX (AltiVec) Counts leading zeros in each halfword.
vclzlsbb vclzlsbb RA, vB VX-form VMX (AltiVec) Counts the number of contiguous leading byte elements in VSR[VRB+32] having a zero least-significant bit.
vclzw vclzw vD, vB VX-form VMX (AltiVec) Counts the number of leading zero bits in each word element of a vector register.
vcmpbfp vcmpbfp VRT,VRA,VRB
vcmpbfp. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares two VSRs word element by word and sets the target VSR if Rc=1.
vcmpeqfp vcmpeqfp VRT,VRA,VRB
vcmpeqfp. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares the elements of two vector registers for equality and stores the result in a third vector register.
vcmpequb vcmpequb VRT,VRA,VRB
vcmpequb. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares two vector registers element by element as unsigned bytes and sets the target vector register based on the comparison.
vcmpequd vcmpequd VRT,VRA,VRB
vcmpequd. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares two vector registers for equality on an unsigned doubleword basis and stores the result in a third vector register.
vcmpequh vcmpequh VRT,VRA,VRB
vcmpequh. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares each halfword of two vector registers and sets the corresponding halfword in the target register to all 1s if they are equal, otherwise all 0s.
vcmpequq vcmpequq VRT,VRA,VRB
vcmpequq. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares two quadwords and sets the result to all ones if they are equal, otherwise all zeros.
vcmpequw vcmpequw VRT,VRA,VRB
vcmpequw. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares each word of two vector registers and sets the corresponding word in the target register to all 1s if they are equal, otherwise all 0s.
vcmpgefp vcmpgefp vD, vA, vB VC-form VMX (AltiVec) Compares 4 floats (A >= B).
vcmpgefp. vcmpgefp. VRT, VRA, VRB VC-form Base Compares the elements of two vector registers and sets the result in a third vector register based on whether each element is greater than or equal to the corresponding element in the other vector.
vcmpgtfp vcmpgtfp VRT,VRA,VRB
vcmpgtfp. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares the contents of two vector registers and sets the target vector register based on whether each element is greater than the corresponding element in the other vector.
vcmpgtsb vcmpgtsb VRT,VRA,VRB
vcmpgtsb. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares each byte of two vector registers and sets the corresponding result byte to all 1s if the signed byte in the first source register is greater than the signed byte in the second source register, otherwise sets it to all 0s.
vcmpgtsd vcmpgtsd VRT,VRA,VRB
vcmpgtsd. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares two doublewords of signed integers and sets the result vector based on the comparison.
vcmpgtsh vcmpgtsh VRT,VRA,VRB
vcmpgtsh. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares each halfword of two vector registers and sets the corresponding result element to all 1s if the first operand is greater than the second, otherwise all 0s.
vcmpgtsq vcmpgtsq VRT,VRA,VRB
vcmpgtsq. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares two signed quadwords and sets the result based on whether the first is greater than the second.
vcmpgtsw vcmpgtsw VRT,VRA,VRB
vcmpgtsw. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares each word of two vector registers and sets the corresponding word in the target vector register to all 1s if the first operand is greater than the second, otherwise to all 0s.
vcmpgtub vcmpgtub vD, vA, vB VC-form VMX (AltiVec) Unsigned > comparison for 16 bytes.
vcmpgtud vcmpgtud vD, vA, vB VC-form VMX (AltiVec) Compares the contents of two vector registers and sets a result based on whether each element in the first register is greater than the corresponding element in the second register.
vcmpgtuh vcmpgtuh vD, vA, vB VC-form VMX (AltiVec) Unsigned > comparison for 8 halfwords.
vcmpgtuw vcmpgtuw vD, vA, vB VC-form VMX (AltiVec) Unsigned > comparison for 4 words.
vcmpneb vcmpneb VRT,VRA,VRB
vcmpneb. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares each byte of two vector registers and sets the result register to all 1s if the bytes are not equal, otherwise all 0s.
vcmpneh vcmpneh VRT,VRA,VRB
vcmpneh. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares the contents of two vector registers and sets the result register to all 1s if the elements are not equal, otherwise all 0s.
vcmpnew vcmpnew VRT,VRA,VRB
vcmpnew. VRT,VRA,VRB
VC-form VMX (AltiVec) Compares each word of two vector registers and sets the corresponding word in the target vector register to all 1s if the words are not equal, otherwise to all 0s.
vcmpsq vcmpsq BF,VRA,VRB VX-form VMX (AltiVec) Compares the signed integer values in two vector registers and updates the condition register.
vcntmbb vcntmbb RT,VRB,MP VX-form VMX (AltiVec) Counts the number of true (or false) mask bits in a VSR and places the count in the leftmost byte of a GPR.
vcntmbw vcntmbw RT,VRB,MP VX-form VMX (AltiVec) Counts the number of word elements in a vector register that have bit 0 set to a specified value.
vctsxs vctsxs vD, vB, UIM VX-form VMX (AltiVec) Converts a vector of floating-point values to signed fixed-point integers with rounding towards zero and saturation.
vctuxs vctuxs vD, vB, UIM VX-form VMX (AltiVec) Converts 4 floats to 4 unsigned 32-bit integers.
vctzb vctzb vD, vB VX-form VMX (AltiVec) Counts the number of trailing zero bits in each byte element of a vector register.
vctzd vctzd vD, vB VX-form VMX (AltiVec) Counts the number of consecutive zero bits starting at bit 63 of each doubleword element in VSR[VRB+32] and places the result into VSR[VRT+32].
vctzh vctzh vD, vB VX-form VMX (AltiVec) Counts trailing zeros in each halfword.
vctzlsbb vctzlsbb RA, vB VX-form VMX (AltiVec) Counts the number of trailing zero bits in each byte element of a vector.
vctzw vctzw vD, vB VX-form VMX (AltiVec) Counts the number of trailing zero bits in each word element of a vector register.
vdivesd vdivesd VRT,VRA,VRB VX-form VMX (AltiVec) Performs extended signed doubleword division on vector elements.
vdivesq vdivesq VRT,VRA,VRB VX-form VMX (AltiVec) Divides the contents of two vector registers and updates the destination register with the quotient.
vdivesw vdivesw VRT,VRA,VRB VX-form VMX (AltiVec) Divides the contents of two vector registers and updates the result in another vector register.
vdivsd vdivsd VRT,VRA,VRB VX-form VMX (AltiVec) Divides the contents of two vector registers and updates the result in another vector register.
vdivsq vdivsq VRT,VRA,VRB VX-form VMX (AltiVec) Divides the contents of two vector registers and updates the destination register with the quotient.
vdivsw vdivsw VRT,VRA,VRB VX-form VMX (AltiVec) Divides the contents of two vector registers and updates the result in another vector register.
veqv veqv VRT,VRA,VRB VX-form VMX (AltiVec) Performs a logical equivalence operation on the contents of two vector registers and stores the result in another vector register.
vexpandbm vexpandbm vD, vB VX-form VMX (AltiVec) Expands the mask from bit 0 of each byte element in the source VSR to all bits in the corresponding element in the target VSR.
vexpanddm vexpanddm vD, vB VX-form VMX (AltiVec) Expands bits from a GPR mask into a doubleword-element vector.
vexpandhm vexpandhm vD, vB VX-form VMX (AltiVec) Expands bits from a GPR mask into a halfword-element vector.
vexpandqm vexpandqm vD, vB VX-form VMX (AltiVec) Expands bits from a GPR mask into a quadword-element vector.
vexpandwm vexpandwm vD, vB VX-form VMX (AltiVec) Expands bits from a GPR mask into a word-element vector.
vexptefp vexptefp VRT, VRB VX-form VMX (AltiVec) Estimates the result of raising 2 to the power of each element in a vector.
vextddvlx vextddvlx VRT,VRA,VRB,RC VA-form VMX (AltiVec) Extracts a doubleword from the concatenation of two vector registers based on an index specified in a general-purpose register.
vextdubvlx vextdubvlx VRT,VRA,VRB,RC VA-form VMX (AltiVec) Extracts a double unsigned byte from two vector registers using a left-index specified by a general-purpose register and places it into another vector register.
vextduhvlx vextduhvlx VRT,VRA,VRB,RC VA-form VMX (AltiVec) Extracts a double unsigned halfword from two vector registers and places it into another vector register based on the index specified in a general-purpose register.
vextduwvlx vextduwvlx VRT,VRA,VRB,RC VA-form VMX (AltiVec) Extracts a doubleword from the concatenation of two vector registers based on an index specified in a general-purpose register.
vextractbm vextractbm RA, vB VX-form VMX (AltiVec) Extracts bit 0 of each byte element from a VSR into a GPR.
vextractd vextractd RA, vB, UIM VX-form VMX (AltiVec) Extracts a doubleword from a vector into a GPR.
vextractdm vextractdm RA, vB VX-form VMX (AltiVec) Extracts MSB of each doubleword into a GPR mask.
vextracthm vextracthm RA, vB VX-form VMX (AltiVec) Extracts MSB of each halfword into a GPR mask.
vextractqm vextractqm RA, vB VX-form VMX (AltiVec) Extracts the least significant bit of a vector register and places it into a general-purpose register.
vextractub vextractub RA, vB, UIM VX-form VMX (AltiVec) Extracts an unsigned byte from a vector register and places it into the upper byte of another vector register.
vextractuh vextractuh RA, vB, UIM VX-form VMX (AltiVec) Extracts a halfword from a vector into a GPR.
vextractuw vextractuw RA, vB, UIM VX-form VMX (AltiVec) Extracts an unsigned word from a vector register and places it into another vector register using an immediate-specified index.
vextractwm vextractwm RA, vB VX-form VMX (AltiVec) Extracts the least significant bit of each word element from a vector register and places them into a general-purpose register.
vextsb2d vextsb2d vD, vB VX-form VMX (AltiVec) Sign-extends the byte elements of a vector register to doublewords.
vextsb2w vextsb2w vD, vB VX-form VMX (AltiVec) Sign-extends each byte in a vector to a word.
vextsh2d vextsh2d vD, vB VX-form VMX (AltiVec) Extends the sign of each halfword in a vector to doubleword.
vextsh2w vextsh2w vD, vB VX-form VMX (AltiVec) Sign-extends halfwords to words.
vextsw2d vextsw2d vD, vB VX-form VMX (AltiVec) Extends the sign of each word in a vector to doubleword.
vextublx vextublx RT,RA,VRB VX-form VMX (AltiVec) Extracts an unsigned byte from a vector register and places it into a general-purpose register using the left-index specified in another general-purpose register.
vextuhlx vextuhlx RT,RA,VRB VX-form VMX (AltiVec) Extracts an unsigned halfword from a vector register and places it into a general-purpose register using the left index specified in another general-purpose register.
vextuwlx vextuwlx RT,RA,VRB VX-form VMX (AltiVec) Extracts an unsigned word from a vector register and places it into a general-purpose register.
vextuwrx vextuwrx VRT,RA,RB VX-form VMX (AltiVec) Extracts an unsigned word from a vector register and places it into a general-purpose register.
vgbbd vgbbd vD, vB VX-form VMX (AltiVec) The contents of bit j of each byte of doubleword element i of VSR[VRB+32] are concatenated and placed into byte j of doubleword element i of VSR[VRT+32].
vgnb vgnb vD, vB, UIM VX-form VMX (AltiVec) Gathers every Nth bit from a vector register and places it into a general-purpose register.
vinsblx vinsblx VRT,RA,RB VX-form VMX (AltiVec) Inserts a byte from a general-purpose register into a vector register at an index specified by another general-purpose register.
vinsbvlx vinsbvlx VRT,RA,VRB VX-form VMX (AltiVec) Inserts a byte from one vector register into another based on an index specified in a general-purpose register.
vinsdlx vinsdlx VRT,RA,RB VX-form VMX (AltiVec) Inserts a doubleword from a general-purpose register into a vector register at a position specified by another general-purpose register.
vinsertb vinsertb vD, vB, UIM VX-form VMX (AltiVec) Inserts a byte element from one vector register into another at an immediate-specified index.
vinsertd vinsertd vD, vB, UIM VX-form VMX (AltiVec) Inserts a doubleword from a GPR into a vector.
vinsertd_p vinsertd vD, RB, UIM VX-form VMX (AltiVec) Inserts doubleword from GPR into Vector.
vinserth vinserth vD, vB, UIM VX-form VMX (AltiVec) Inserts a halfword from a GPR into a vector.
vinserth_p vinserth vD, RB, UIM VX-form VMX (AltiVec) Inserts halfword from GPR into Vector.
vinsertw vinsertw vD, vB, UIM VX-form VMX (AltiVec) Inserts a word element from one vector register into another vector register at an immediate-specified index.
vinsertw_p vinsertw vD, RB, UIM VX-form VMX (AltiVec) Inserts word from GPR into Vector.
vinshlx vinshlx VRT,RA,RB VX-form VMX (AltiVec) Inserts the high halfword of a general-purpose register into a vector register at a position specified by another general-purpose register.
vinshvlx vinshvlx VRT,RA,VRB VX-form VMX (AltiVec) Inserts halfword from a vector register into another vector register at a position specified by a general-purpose register.
vinshvrx vinshvrx VX-form VMX (AltiVec) Inserts a halfword from a vector register into another vector register at a position specified by a general-purpose register.
vinsw vinsw VRT,RB,UIM VX-form VMX (AltiVec) Inserts the contents of a word from a general-purpose register into a vector register at an immediate-specified index.
vinswlx vinswlx VRT,RA,RB VX-form VMX (AltiVec) Inserts the contents of bits 32:63 of a general-purpose register into byte elements of a vector register based on an index specified in another general-purpose register.
vinswvlx vinswvlx VRT,RA,VRB VX-form VMX (AltiVec) Inserts a word from a vector register into another vector register at a position specified by a general-purpose register.
vlogefp vlogefp VRT,VRB VX-form VMX (AltiVec) Estimates the base 2 logarithm of single-precision floating-point elements in a vector register.
vmaddfp vmaddfp VRT,VRA,VRB,VRC VA-form VMX (AltiVec) Performs a multiply-add operation on vector elements.
vmaxfp vmaxfp VRT,VRA,VRB VX-form VMX (AltiVec) Performs element-wise maximum of two vector registers and stores the result in a third vector register.
vmaxsb vmaxsb vD, vA, vB VA-form VMX (AltiVec) Performs a signed byte-wise maximum operation on two vector registers and stores the result in another vector register.
vmaxsd vmaxsd VRT,VRA,VRB VX-form VMX (AltiVec) Compares the signed doublewords of two vector registers and stores the maximum value in a third vector register.
vmaxsh vmaxsh vD, vA, vB VA-form VMX (AltiVec) Compares the signed halfwords of two vector registers and stores the maximum values in a third vector register.
vmaxsw vmaxsw vD, vA, vB VA-form VMX (AltiVec) Compares the signed integer values in each word element of two vector registers and stores the larger value into a third vector register.
vmaxub vmaxub vD, vA, vB VA-form VMX (AltiVec) Selects maximum value per byte (unsigned).
vmaxuh vmaxuh vD, vA, vB VA-form VMX (AltiVec) Selects maximum value per halfword (unsigned).
vmaxuw vmaxuw vD, vA, vB VA-form VMX (AltiVec) Selects maximum value per word (unsigned).
vmhaddshs vmhaddshs VRT,VRA,VRB,VRC VA-form VMX (AltiVec) Performs a vector multiply-high-add signed halfword operation with saturation.
vminsb vminsb vD, vA, vB VA-form VMX (AltiVec) Compares the signed byte elements of two vector registers and stores the minimum values in a third vector register.
vminsd vminsd VRT,VRA,VRB VX-form VMX (AltiVec) Compares the signed doublewords of two vector registers and stores the minimum values in a third vector register.
vminsh vminsh vD, vA, vB VA-form VMX (AltiVec) Compares the signed halfwords of two vector registers and selects the minimum value for each corresponding pair.
vminsw vminsw vD, vA, vB VA-form VMX (AltiVec) Compares the signed integer values in each word element of two vector registers and stores the smaller value into a target vector register.
vminub vminub vD, vA, vB VA-form VMX (AltiVec) Selects minimum value per byte (unsigned).
vminuh vminuh vD, vA, vB VA-form VMX (AltiVec) Selects minimum value per halfword (unsigned).
vminuw vminuw vD, vA, vB VA-form VMX (AltiVec) Selects minimum value per word (unsigned).
vmladduhm vmladduhm VRT,VRA,VRB,VRC VA-form VMX (AltiVec) Performs a vector multiply-low-add unsigned halfword modulo operation.
vmodsd vmodsd VRT,VRA,VRB VX-form VMX (AltiVec) Performs vector modulo signed doubleword operation.
vmodsq vmodsq VRT,VRA,VRB VX-form VMX (AltiVec) Performs signed modulo operation on quadword elements of two vector registers and stores the result in another vector register.
vmodsw vmodsw VRT,VRA,VRB VX-form VMX (AltiVec) Performs modulo operation on signed integers in vector registers.
vmrgew vmrgew vD, vA, vB VX-form VMX (AltiVec) Merges even word elements from two vector registers into a third.
vmrghb vmrghb vD, vA, vB VX-form VMX (AltiVec) Interleaves high-order bytes from two vectors (Permutation).
vmrghh vmrghh vD, vA, vB VX-form VMX (AltiVec) Merges the high halfwords of two vector registers into a target vector register.
vmrghw vmrghw vD, vA, vB VX-form VMX (AltiVec) Merges the high words of two vector registers into a target vector register.
vmrglb vmrglb vD, vA, vB VX-form VMX (AltiVec) Interleaves low-order bytes.
vmrglh vmrglh vD, vA, vB VX-form VMX (AltiVec) Interleaves low-order halfwords.
vmrglw vmrglw vD, vA, vB VX-form VMX (AltiVec) Interleaves low-order words.
vmrgow vmrgow vD, vA, vB VX-form VMX (AltiVec) Merges odd words from two vectors.
vmsumcud vmsumcud VRT,VRA,VRB,VRC VA-form VMX (AltiVec) Performs vector multiply-sum and writes the carry-out of the low-order 128 bits to a destination register.
vmsummbm vmsummbm VRT,VRA,VRB,VRC X-form VMX (AltiVec) Performs a vector multiply-sum operation with mixed byte elements.
vmsumshm vmsumshm vD, vA, vB, vC VA-form VMX (AltiVec) Multiplies halfwords and sums adjacent results into words.
vmsumshs vmsumshs vD, vA, vB, vC VA-form VMX (AltiVec) Performs a vector multiply-sum operation on signed halfwords and saturates the result.
vmsumubm vmsumubm vD, vA, vB, vC VA-form VMX (AltiVec) Multiplies bytes and sums adjacent results into words.
vmsumudm vmsumudm VRT,VRA,VRB,VRC VA-form VMX (AltiVec) Performs a horizontal add of the doubleword elements in VSR[VRA+32] using vmsumudm.
vmsumuhs vmsumuhs VRT,VRA,VRB,VRC VA-form VMX (AltiVec) Performs a vector multiply-sum operation on unsigned halfwords and saturates the result.
vmul10ecuq vmul10ecuq VX,VA,VB VX-form VMX (AltiVec) Multiplies the unsigned quadword integer in vector register VA by 10, adds the least-significant bit of VB as a carry-in digit, and writes the carry-out of the result to vector register VX.
vmul10euq vmul10euq VRT,VRA,VRB VX-form VMX (AltiVec) Multiplies the contents of two vector registers by 10 and extends the result.
vmul10uq vmul10uq VRT,VRA VX-form VMX (AltiVec) Multiplies the contents of a vector register by 10 and places the result in another vector register.
vmulesb vmulesb vD, vA, vB VX-form VMX (AltiVec) Multiplies the even-indexed bytes of two vector registers and stores the results in a destination vector register.
vmulesd vmulesd VRT,VRA,VRB VX-form VMX (AltiVec) Multiplies the even doublewords of two vector registers and places the result in another vector register.
vmulesh vmulesh vD, vA, vB VX-form VMX (AltiVec) Multiplies the even-numbered halfwords of two vector registers and places the results into a destination vector register.
vmulesw vmulesw vD, vA, vB VX-form VMX (AltiVec) Multiplies even-indexed signed words from two vector registers and stores the results in a destination vector register.
vmuleub vmuleub vD, vA, vB VX-form VMX (AltiVec) Multiplies even-indexed bytes of two vector registers and stores the results in a destination vector register.
vmuleud vmuleud VRT,VRA,VRB VX-form VMX (AltiVec) Multiplies the even doublewords of two vector registers and places the result in another vector register.
vmuleuh vmuleuh vD, vA, vB VX-form VMX (AltiVec) Multiplies the even-numbered halfwords of two vector registers and places the results into a destination vector register.
vmuleuw vmuleuw vD, vA, vB VX-form VMX (AltiVec) Multiplies the even-numbered words of two vector registers and places the results in a destination vector register.
vmulfp vmulfp vD, vA, vB VA-form VMX (AltiVec) Multiplies four single-precision floats (Classic VMX).
vmulhsd vmulhsd vD, vA, vB VX-form VMX (AltiVec) Multiplies the signed doublewords of two vector registers and stores the high-order 64 bits of each product in a result vector register.
vmulhsw vmulhsw vD, vA, vB VX-form VMX (AltiVec) Multiplies the signed integer values in each word element of two vector registers and places the high-order 32 bits of the 64-bit product into the corresponding word element of a third vector register.
vmulhud vmulhud vD, vA, vB VX-form VMX (AltiVec) Multiplies unsigned doublewords, returning the high 64 bits.
vmulhuw vmulhuw vD, vA, vB VX-form VMX (AltiVec) Multiplies unsigned words, returning the high 32 bits.
vmulld vmulld VRT,VRA,VRB VX-form VMX (AltiVec) Multiplies the contents of two vector registers and places the low-order 64 bits of each product into a target vector register.
vmulosb vmulosb vD, vA, vB VX-form VMX (AltiVec) Multiplies odd signed bytes to halfwords.
vmulosh vmulosh vD, vA, vB VX-form VMX (AltiVec) Multiplies odd signed halfwords to words.
vmulosw vmulosw vD, vA, vB VX-form VMX (AltiVec) Multiplies odd words (1,3) to 64-bit signed result.
vmuloub vmuloub vD, vA, vB VX-form VMX (AltiVec) Multiplies odd unsigned bytes to halfwords.
vmulouh vmulouh vD, vA, vB VX-form VMX (AltiVec) Multiplies odd unsigned halfwords to words.
vmulouw vmulouw vD, vA, vB VA-form VMX (AltiVec) Multiplies the 1st and 3rd words of the source vectors to produce two 64-bit results.
vmuluwm vmuluwm VRT,VRA,VRB VX-form VMX (AltiVec) Multiplies the contents of two vector registers and places the low-order 32 bits of each product into a target vector register.
vncipher vncipher vD, vA, vB VX-form Vector Crypto Performs one round of an AES inverse cipher operation on the intermediate state array.
vncipherlast vncipherlast vD, vA, vB VX-form Vector Crypto Performs the final round of AES decryption.
vnegd vnegd vD, vB VX-form VMX (AltiVec) Negates each doubleword integer.
vnegw vnegw vD, vB VX-form VMX (AltiVec) Negates the contents of each word element in a vector register.
vnor vnor vD, vA, vB VX-form VMX (AltiVec) Performs a logical NOR operation on the contents of two vector registers and stores the result in another vector register.
vor vor vD, vA, vB VX-form VMX (AltiVec) Bitwise OR of two 128-bit vectors.
vpdepd vpdepd vD, vA, vB VX-form VMX (AltiVec) Deposits bits from source to target under control of a mask (Power10).
vperm vperm vD, vA, vB, vC VA-form VMX (AltiVec) 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 VMX (AltiVec) Bitwise byte shuffle similar to vperm but for little-endian access optimization.
vpermxor vpermxor vD, vA, vB, vC VA-form Vector Crypto Permutes bytes from vA and vB, then XORs with vC. Used for finite field arithmetic.
vpextd vpextd vD, vA, vB VX-form VMX (AltiVec) Extracts bits from one vector register based on the bit positions specified in another vector register and places them into a third vector register.
vpkpx vpkpx vD, vA, vB VX-form VMX (AltiVec) Packs the contents of two vector registers into a single vector register, with each source word being considered as a 32-bit pixel and each target halfword as a 16-bit pixel.
vpksdss vpksdss VRT,VRA,VRB VX-form VMX (AltiVec) Packs signed doublewords from two vector registers into a single vector register with signed saturation.
vpkshss vpkshss vD, vA, vB VX-form VMX (AltiVec) Packs signed halfwords from two vector registers into a single vector register with signed saturation.
vpkswss vpkswss vD, vA, vB VX-form VMX (AltiVec) Packs signed words from two vector registers into a single vector register with signed saturation.
vpkswus vpkswus VRT,VSRA,VSRB VX-form VMX (AltiVec) Packs signed words from two source vectors into one destination vector with unsigned saturation.
vpkudum vpkudum VRT,VRA,VRB VX-form VMX (AltiVec) Packs the upper halves of doublewords from two source vectors into a destination vector.
vpkuhum vpkuhum vD, vA, vB VX-form VMX (AltiVec) Packs the upper half of each 16-bit element from two vector registers into a single byte in another vector register.
vpkuhus vpkuhus vD, vA, vB VX-form VMX (AltiVec) Saturates 8 halfwords to 16 unsigned bytes.
vpkuwum vpkuwum vD, vA, vB VX-form VMX (AltiVec) Packs the upper half of each word from two vector registers into a single vector register using modulo arithmetic.
vpmsumb vpmsumb vD, vA, vB VX-form Vector Crypto Performs GF(2) polynomial arithmetic (Carryless Multiply) on bytes.
vpmsumd vpmsumd vD, vA, vB VX-form Vector Crypto Performs GF(2) polynomial arithmetic on doublewords.
vpmsumh vpmsumh vD, vA, vB VX-form VMX (AltiVec) Performs GF(2) polynomial arithmetic on halfwords.
vpmsumw vpmsumw vD, vA, vB VX-form Vector Crypto Performs a polynomial multiply-sum operation on word elements of two vector registers and stores the result in another vector register.
vpopcntb vpopcntb vD, vB VX-form VMX (AltiVec) Counts the number of bits set to 1 in each byte of a vector register.
vpopcntd vpopcntd vD, vB VX-form VMX (AltiVec) Counts set bits in each doubleword.
vpopcnth vpopcnth vD, vB VX-form VMX (AltiVec) Counts set bits in each halfword.
vpopcntw vpopcntw vD, vB VX-form VMX (AltiVec) Counts the number of bits set to 1 in each word element of a vector register.
vprtybd vprtybd vD, vB VX-form VMX (AltiVec) Computes parity of bytes within doublewords.
vprtybq vprtybq vD, vB VX-form VMX (AltiVec) Calculates the parity of each byte in a vector register and stores the result in another vector register.
vprtybw vprtybw vD, vB VX-form VMX (AltiVec) Calculates the parity of each byte in a vector word and stores the result.
vrefp vrefp VRT,VRB VX-form VMX (AltiVec) Estimates the reciprocal of single-precision floating-point elements in a vector.
vrfim vrfim vD, vB VX-form VMX (AltiVec) Rounds each element of a vector toward negative infinity.
vrfin vrfin vD, vB VX-form VMX (AltiVec) Rounds 4 floats to nearest integer.
vrfip vrfip vD, vB VX-form VMX (AltiVec) Rounds each element of a vector to the nearest integer towards positive infinity.
vrfiz vrfiz vD, vB VX-form VMX (AltiVec) Rounds 4 floats to integer (trunc).
vrlb vrlb vD, vA, vB VX-form VMX (AltiVec) Rotates each byte of the source vector left by a specified number of bits.
vrld vrld vD, vA, vB VX-form VMX (AltiVec) Rotates each doubleword left.
vrldmi vrldmi VRT,VRA,VRB VX-form VMX (AltiVec) Rotates the contents of a vector register left by a specified number of bits and inserts the result into another vector register under control of a mask.
vrlh vrlh vD, vA, vB VX-form VMX (AltiVec) Rotates each halfword left.
vrlq vrlq vD, vA, vB VX-form VMX (AltiVec) Rotates the contents of a vector register left by a specified number of bits.
vrlqnm vrlqnm VRT,VRA,VRB VX-form VMX (AltiVec) Rotates the contents of a vector register left by a specified number of bits and performs a bitwise AND operation with a mask derived from another vector register.
vrlw vrlw vD, vA, vB VX-form VMX (AltiVec) Rotates each word element of the source vector left by a specified number of bits.
vrlwmi vrlwmi VRT,VRA,VRB VX-form VMX (AltiVec) Rotates the contents of each word element in a vector left by a specified number of bits and inserts the result into another vector under control of a mask.
vrlwnm vrlwnm VRT,VRA,VRB VX-form VMX (AltiVec) Rotates each word element of the source vector left by a specified number of bits and then performs a bitwise AND operation with a mask.
vsbox vsbox vD, vA VX-form Vector Crypto Performs the SubBytes operation (S-Box lookup) on a vector.
vsel vsel vD, vA, vB, vC VA-form VMX (AltiVec) 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 Vector Crypto Performs the SHA-512 σ0, σ1, Σ0, or Σ1 functions on doubleword elements of vector registers.
vshasigmaw vshasigmaw vD, vA, ST, SIX VX-form Vector Crypto Performs the Sigma0/Sigma1/sigma0/sigma1 functions for SHA-256.
vsl vsl vD, vA, vB VX-form VMX (AltiVec) Shifts the contents of a vector register left by a specified number of bits.
vslb vslb vD, vA, vB VX-form VMX (AltiVec) Shifts each byte element of the source vector left by a specified number of bits.
vsldbi vsldbi VRT,VRA,VRB,SH VN-form VMX (AltiVec) Shifts the contents of two vector registers left by a specified number of bits and places the result into another vector register.
vslh vslh vD, vA, vB VX-form VMX (AltiVec) Shifts each halfword left.
vslo vslo vD, vA, vB VX-form VMX (AltiVec) Shifts the contents of a vector register left by a specified number of bytes.
vslq vslq vD, vA, vB VX-form VMX (AltiVec) Shifts the contents of a vector register left by a specified number of bits.
vslv vslv VRT,VRA,VRB VX-form VMX (AltiVec) Shifts the contents of vector elements left by a variable amount.
vslw vslw vD, vA, vB VX-form VMX (AltiVec) 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 VMX (AltiVec) Splat a byte from one vector element into all elements of another vector.
vsplth vsplth vD, vB, UIM VX-form VMX (AltiVec) Duplicates a halfword element across the vector.
vspltisb vspltisb vD, SIM VX-form VMX (AltiVec) Splat an immediate signed byte value into all elements of a vector register.
vspltish vspltish vD, SIM VX-form VMX (AltiVec) Fills vector with immediate 5-bit signed value.
vspltisw vspltisw vD, SIM VX-form VMX (AltiVec) Splat a signed immediate value into all elements of a vector register.
vspltw vspltw vD, vB, UIM VX-form VMX (AltiVec) Copies a single word element from the source vector into all four word elements of the destination.
vsr vsr vD, vA, vB VX-form VMX (AltiVec) Shifts vector right by octet count in vB.
vsrab vsrab vD, vA, vB VX-form VMX (AltiVec) Shifts each byte of the source vector right by a specified number of bits, filling vacated bits with copies of the sign bit.
vsrah vsrah vD, vA, vB VX-form VMX (AltiVec) Arithmetic right shift of halfwords.
vsraq vsraq vD, vA, vB VX-form VMX (AltiVec) Shifts the contents of a vector register right algebraically by a specified number of bits.
vsraw vsraw vD, vA, vB VX-form VMX (AltiVec) Shifts each word element of the source vector right by a specified number of bits, filling vacated bits with copies of the sign bit.
vsrb vsrb vD, vA, vB VX-form VMX (AltiVec) Shifts each byte element of the source vector right by a specified number of bits.
vsrh vsrh vD, vA, vB VX-form VMX (AltiVec) Shifts the contents of each element in a vector right by a specified number of bits.
vsro vsro vD, vA, vB VX-form VMX (AltiVec) Shifts vector right by byte count.
vsrq vsrq vD, vA, vB VX-form VMX (AltiVec) Shifts the contents of a vector register right by a specified number of bits.
vsrv vsrv vTMP1, vSRC, vSHCT1 X-form VMX (AltiVec) Shifts each element of the source vector right by a variable amount specified in another vector.
vsrw vsrw vD, vA, vB VX-form VMX (AltiVec) Shifts each word element of the source vector right by a specified number of bits.
vstribl vstribl vD, vB VX-form VMX (AltiVec) Stores the leftmost byte of each element in a vector register to memory.
vstribr vstribr VRT,VRB
vstribr. VRT,VRB
VX-form VMX (AltiVec) Isolates the rightmost non-zero byte in a vector string and shifts it to the left.
vstrihr vstrihr VRT,VRB
vstrihr. VRT,VRB
VC-form VMX (AltiVec) Isolates the rightmost non-zero halfword in a vector string.
vstril vstril vD, vB VX-form VMX (AltiVec) Isolates the leftmost element that matches the condition.
vstril_p vstril. vD, vB VX-form VMX (AltiVec) Isolates the leftmost element and updates CR6.
vstrir vstrir vD, vB VX-form VMX (AltiVec) Isolates the rightmost element that matches the condition.
vstrir_p vstrir. vD, vB VX-form VMX (AltiVec) Isolates the rightmost element and updates CR6.
vsubcuq vsubcuq vD, vA, vB VX-form VMX (AltiVec) Subtracts the contents of two vector registers, adds one, and writes the carry-out to another register.
vsubcuw vsubcuw vD, vA, vB VX-form VMX (AltiVec) Subtracts the unsigned integer values in word elements of two vector registers and writes the result to another vector register, along with the carry-out.
vsubfp vsubfp vD, vA, vB VA-form VMX (AltiVec) Subtracts four single-precision floats (Classic VMX).
vsubsbs vsubsbs vD, vA, vB VX-form VMX (AltiVec) Subtracts 16 signed bytes with saturation.
vsubshs vsubshs vD, vA, vB VX-form VMX (AltiVec) Subtracts the contents of two vector registers and saturates the result to halfword elements.
vsubsws vsubsws vD, vA, vB VX-form VMX (AltiVec) Subtracts 4 signed words with saturation.
vsububm vsububm vD, vA, vB VX-form VMX (AltiVec) Subtracts the contents of two vector registers and updates the result in another vector register using modulo operation for bytes.
vsububs vsububs vD, vA, vB VX-form VMX (AltiVec) Subtracts the contents of two vector registers and saturates the result to zero if it underflows.
vsubudm vsubudm vD, vA, vB VX-form VMX (AltiVec) Subtracts the contents of two vector registers and places the result in a third vector register, modulo operation.
vsubuhm vsubuhm vD, vA, vB VX-form VMX (AltiVec) Subtracts 8 halfwords modulo 65536.
vsubuhs vsubuhs vD, vA, vB VX-form VMX (AltiVec) Subtracts 8 unsigned halfwords with saturation.
vsubuqm vsubuqm vD, vA, vB VA-form VMX (AltiVec) Subtracts the contents of two vector registers and places the result in another vector register, modulo operation.
vsubuwm vsubuwm vD, vA, vB VA-form VMX (AltiVec) Subtracts the contents of two vector registers and updates the result in another vector register.
vsubuws vsubuws vD, vA, vB VX-form VMX (AltiVec) Subtracts the contents of two vector registers and saturates the result if it underflows.
vsum2sws vsum2sws vD, vA, vB VA-form VMX (AltiVec) Adds the contents of two vector registers and updates the saturation flag.
vsum4sbs vsum4sbs vD, vA, vB VA-form VMX (AltiVec) Adds the contents of four signed byte elements from two vector registers and saturates the result.
vsum4shs vsum4shs vD, vA, vB VA-form VMX (AltiVec) Sums every 2 halfwords into a word.
vsum4ubs vsum4ubs vD, vA, vB VA-form VMX (AltiVec) Sums the unsigned byte elements of two vector registers and saturates the result.
vsumsws vsumsws vD, vA, vB VA-form VMX (AltiVec) Adds the contents of four word elements of one vector register to a single word element of another vector register and saturates the result.
vupkhpx vupkhpx vD, vB VX-form VMX (AltiVec) Unpacks high 4 pixels to 4 words.
vupkhsb vupkhsb vD, vB VX-form VMX (AltiVec) Unpacks the high signed byte from each element of a vector register into halfwords of another vector register.
vupkhsh vupkhsh vD, vB VX-form VMX (AltiVec) Unpacks the high signed halfwords from a vector register into a new vector register.
vupkhsw vupkhsw VRT,VRB VX-form VMX (AltiVec) Unpacks the high signed words from a vector register into a doubleword format.
vupklpx vupklpx vD, vB VX-form VMX (AltiVec) Unpacks low 4 pixels to 4 words.
vupklsb vupklsb vD, vB VX-form VMX (AltiVec) Unpacks low 8 signed bytes to 8 signed halfwords.
vupklsh vupklsh vD, vB VX-form VMX (AltiVec) Unpacks low 4 signed halfwords to 4 signed words.
vxor vxor vD, vA, vB VX-form VMX (AltiVec) Bitwise XOR of two 128-bit vectors.
wait wait WC,PL
wait WC
wait
X-form Base Stops instruction execution and places the processor in a lower power state until an interrupt occurs.
waitimpl waitimpl X-form Base Waits for a specific implementation event.
waitrsv waitrsv X-form Base Waits until a reservation is lost (Multithreading sync).
wrtee wrtee RS X-form Embedded Updates the EE bit of the MSR from a GPR.
wrteei wrteei E X-form Embedded Updates the EE bit of the MSR from an immediate.
xmsubasp xmsubasp XT,XA,XB XX3-form VSX Performs a multiply-subtract operation on single-precision floating-point values.
xor xor RA, RS, RB X-form Base Performs a bitwise Exclusive OR comparison.
xori xori RA, RS, UI D-form Base Performs a bitwise XOR with a 16-bit unsigned immediate.
xoris xoris RA, RS, UI D-form Base Performs a bitwise XOR with a 16-bit immediate shifted left by 16 bits.
xsabsdp xsabsdp XT, XB XX2-form VSX Computes the absolute value of a double-precision floating-point number.
xsabsqp xsabsqp vD, vB X-form VSX Computes the absolute value of a quad-precision floating-point number.
xsadddp xsadddp XT, XA, XB XX3-form VSX Adds two double-precision floating-point values from vector scalar registers and stores the result in a target vector scalar register.
xsaddqp xsaddqp vD, vA, vB X-form VSX Adds two 128-bit Quad-Precision floating-point numbers held in VSX registers (pairs).
xsaddqpo xsaddqpo vD, vA, vB X-form VSX Used for Quad-Precision arithmetic on hardware that splits quads.
xsaddsp xsaddsp XT, XA, XB XX3-form VSX Adds the contents of two single-precision floating-point numbers and places the result in a double-precision format.
xscmpeqdp xscmpeqdp XT,XA,XB XX3-form VSX Compares two double-precision floating-point values and sets the target vector register based on equality.
xscmpeqqp xscmpeqqp VRT,VRA,VRB X-form VSX Compares two quad-precision floating-point values and sets the target vector register to all 1s if they are equal, otherwise all 0s.
xscmpexpdp xscmpexpdp BF, XA, XB XX3-form VSX Compares the exponents of two double-precision floating-point values in VSX registers and updates the condition register.
xscmpexpqp xscmpexpqp BF, vA, vB X-form VSX Compares the exponents of two quad-precision floating-point values and updates the condition register.
xscmpgedp xscmpgedp XT,XA,XB XX3-form VSX Compares two double-precision floating-point values and sets the target vector register based on the comparison result.
xscmpgeqp xscmpgeqp VRT,VRA,VRB X-form VSX Compares two quad-precision floating-point values and sets the target register based on the comparison.
xscmpgtdp xscmpgtdp XT,XA,XB XX3-form VSX Compares two double-precision floating-point values and sets the target vector register based on the comparison.
xscmpgtqp xscmpgtqp VRT,VRA,VRB X-form VSX Compares two quad-precision floating-point values and sets the target vector register to all 1s if the first value is greater than the second, otherwise all 0s.
xscmpodp xscmpodp BF, XA, XB XX3-form VSX Compares two double-precision floating-point values and sets the condition register based on the comparison.
xscmpopoqp xscmpopoqp BF, vA, vB X-form VSX Compares Quad floats (Signaling on NaN).
xscmpoqp xscmpoqp BF,VRA,VRB X-form VSX Compares two quad-precision floating-point values and updates the condition register.
xscmpudp xscmpudp BF, XA, XB XX3-form VSX Compares two double-precision floating-point values and sets the condition register based on the comparison.
xscmpuqp xscmpuqp BF, vA, vB X-form VSX Compares two quad-precision floating-point values and updates the condition register.
xscpsgndp xscpsgndp XT,XA,XB X-form VSX Copies the sign of a double-precision floating-point value from one register to another.
xscpsgnqp xscpsgnqp vD, vA, vB X-form VSX Copies sign from B to A (128-bit).
xscvdphp xscvdphp XT, XB XX2-form VSX Converts a double-precision floating-point value to a half-precision floating-point value with rounding.
xscvdpqp xscvdpqp vD, vB X-form VSX Converts a double-precision floating-point value to a quad-precision floating-point value.
xscvdpsp xscvdpsp XT, XB XX2-form VSX Converts a double-precision floating-point value in VSR[XB] to single-precision format and places the result into VSR[XT].
xscvdpspn xscvdpspn XT,XB XX2-form VSX Converts a scalar single-precision floating-point value to vector single-precision format without raising exceptions for inexact results.
xscvdpsxds xscvdpsxds XT, XB XX2-form VSX Converts a double-precision floating-point value to a signed doubleword integer using round towards zero.
xscvdpsxw xscvdpsxw XT,XB X-form VSX Converts a double-precision floating-point number to a signed word, rounding towards zero.
xscvdpsxws xscvdpsxws XT,XB X-form VSX Converts a double-precision floating-point value to a signed word format using round towards zero.
xscvdpuxds xscvdpuxds XT, XB XX2-form VSX Converts a double-precision floating-point value to an unsigned 64-bit integer using round towards zero.
xscvdpuxws xscvdpuxws XT,XB XX2-form VSX Converts a double-precision floating-point value to an unsigned 32-bit integer, rounding towards zero.
xscvhpdp xscvhpdp XT, XB XX2-form VSX Converts a half-precision floating-point value to a double-precision floating-point value.
xscvqpdp xscvqpdp vD, vB X-form VSX Converts a quad-precision floating-point value to a double-precision floating-point value with round-to-even rounding.
xscvqpsd xscvqpsd vD, vB X-form VSX Converts 128-bit Float to 64-bit Signed Integer.
xscvqpsdz xscvqpsdz VRT,VRB X-form VSX Converts a quad-precision floating-point value to a signed doubleword integer, rounding towards zero.
xscvqpsqz xscvqpsqz VRT,VRB X-form VSX Converts a quad-precision floating-point value to a signed quadword integer, rounding towards zero.
xscvqpswz xscvqpswz VRT,VRB X-form VSX Converts a quad-precision floating-point value to a signed word format.
xscvqpud xscvqpud vD, vB X-form VSX Converts 128-bit Float to 64-bit Unsigned Integer.
xscvqpudz xscvqpudz VRT,VRB X-form VSX Converts a quad-precision floating-point value to an unsigned doubleword integer, rounding towards zero.
xscvqpuqz xscvqpuqz VRT,VRB X-form VSX Converts a quad-precision floating-point value to an unsigned quadword integer, rounding towards zero.
xscvqpuwz xscvqpuwz VRT,VRB X-form VSX Converts a quad-precision floating-point value to an unsigned word format.
xscvsdqp xscvsdqp vD, vB X-form VSX Converts a signed doubleword integer from VSR[VRB+32] to quad-precision floating-point in VSR[VRT+32].
xscvspdp xscvspdp XT, XB XX2-form VSX Converts a single-precision floating-point value in VSR[XB] to double-precision format and places the result into VSR[XT].
xscvsqqp xscvsqqp VRT,VRB X-form VSX Converts a signed quadword integer to a quad-precision floating-point number and rounds it.
xscvsxddp xscvsxddp XT,RB X-form VSX Converts a signed doubleword integer from VSX register XB to a double-precision floating-point number in VSX register XT, rounding according to the FPSCR.RN setting.
xscvsxdsp xscvsxdsp XT,XB XX2-form VSX Converts a signed doubleword integer in a VSX register to a single-precision floating-point number and rounds it.
xscvudqp xscvudqp vD, vB X-form VSX Converts 64-bit Unsigned Integer to 128-bit Float.
xsdivdp xsdivdp XT,XA,XB XX3-form VSX Divides the double-precision floating-point value in VSR[XA] by the double-precision floating-point value in VSR[XB].
xsdivqp xsdivqp vD, vA, vB X-form VSX Divides the contents of two quad-precision floating-point registers and places the result in another register.
xsdivqpo xsdivqpo vD, vA, vB X-form VSX Used for Quad-Precision arithmetic on hardware that splits quads.
xsdivsp xsdivsp XT, XA, XB XX3-form VSX Divides the contents of two doubleword elements in VSX registers and places the result in a single-precision format.
xsiexpdp xsiexpdp XT, XA, XB XX3-form VSX Inserts exponent from one double into another.
xsiexpqp xsiexpqp VRT,VRA,VRB X-form VSX Inserts the exponent from a doubleword element of one vector register into another vector register.
xsmaddadp xsmaddadp XT,XA,XB XX3-form VSX Performs a double-precision floating-point multiply-add operation.
xsmaddasp xsmaddasp XT,XA,XB XX3-form VSX Performs a single-precision floating-point multiply-add operation.
xsmaddmsp xsmaddmsp FRT,FRB,FRC XX3-form VSX Multiplies two single-precision floating-point values and adds a third, storing the result in the target register (Type-M form).
xsmaddqp xsmaddqp VRT,VRA,VRB X-form VSX Performs a quad-precision floating-point multiply-add operation with rounding to even.
xsmaxcdp xsmaxcdp XT, XA, XB XX3-form VSX Computes the maximum of two double-precision floating-point values and stores the result in a vector scalar register.
xsmaxcqp xsmaxcqp vD, vA, vB X-form VSX Compares two quad-precision floating-point values and selects the maximum.
xsmaxdp xsmaxdp XT, XA, XB XX3-form VSX Compares the doubleword elements of two vector scalar registers and stores the maximum value in another vector scalar register.
xsmaxjdp xsmaxjdp XT, XA, XB XX3-form VSX Compares two double-precision floating-point values and returns the larger one, with specific handling for zero and NaN values.
xsmaxqp xsmaxqp vD, vA, vB X-form VSX Selects maximum of two Quad floats.
xsmincdp xsmincdp XT, XA, XB XX3-form VSX Computes the minimum of two double-precision floating-point numbers and handles NaNs according to Type-C rules.
xsmincqp xsmincqp vD, vA, vB X-form VSX Compares two quad-precision floating-point values and selects the minimum value.
xsmindp xsmindp XT, XA, XB XX3-form VSX Computes the minimum of two double-precision floating-point values and places the result into a vector scalar register.
xsminjdp xsminjdp XT, XA, XB XX3-form VSX Compares two double-precision floating-point values and selects the minimum value, handling special cases like NaNs and zeros.
xsminqp xsminqp vD, vA, vB X-form VSX Selects minimum of two Quad floats.
xsmsubadp xsmsubadp XT,XA,XB XX3-form VSX Performs a double-precision floating-point multiply-subtract operation.
xsmsubasp xsmsubasp XT,XA,XB X-form VSX Performs a multiply-subtract-add operation on single-precision floating-point values.
xsmsubqp xsmsubqp VRT,VRA,VRB
xsmsubqpo VRT,VRA,VRB
X-form VSX Performs a multiply-subtract operation on quad-precision floating-point values.
xsmuldp xsmuldp XT,XA,XB XX3-form VSX Multiplies two double-precision floating-point numbers and places the result in a vector register.
xsmulqp xsmulqp vD, vA, vB X-form VSX Multiplies two quad-precision floating-point numbers and rounds the result to odd.
xsmulsp xsmulsp XT, XA, XB XX3-form VSX Multiplies two single-precision floating-point numbers and stores the result in a doubleword element of a VSX register.
xsnabsdp xsnabsdp XT,XB XX2-form VSX Computes the negative absolute value of a double-precision floating-point number.
xsnegdp xsnegdp XT, XB XX2-form VSX Negates the contents of a double-precision floating-point register and stores the result in another register.
xsnegqp xsnegqp vD, vB X-form VSX Negates a 128-bit Quad float.
xsnmaddadp xsnmaddadp XT,XA,XB XX3-form VSX Performs a negative multiply-add operation on double-precision floating-point values.
xsnmaddasp xsnmaddasp XT,XA,XB XX3-form VSX Performs a negative multiply-add operation on single-precision floating-point values.
xsnmaddmdp xsnmaddmdp VRT, VRA, VRB, VRC XX3-form VSX Computes the negative of the fused multiply-add of the double-precision floating-point operands, storing the result in the target scalar VSX register (Type-M: target register is used as the addend).
xsnmaddqp xsnmaddqp VRT,VRA,VRB
xsnmaddqpo VRT,VRA,VRB
X-form VSX Performs a negative multiply-add operation on quad-precision floating-point values.
xsnmsubadp xsnmsubadp XT,XA,XB XX3-form VSX Performs a negative multiply-subtract operation on double-precision floating-point values.
xsnmsubasp xsnmsubasp XT,XA,XB XX3-form VSX Performs a negative multiply-subtract operation on single-precision floating-point values.
xsnmsubmsp xsnmsubmsp XX3-form VSX Performs a scalar negative multiply-subtract operation in single-precision floating-point, storing the result using the Type-M (multiplicand) form where the target register provides one of the multiplicand operands.
xsnmsubqp xsnmsubqp VRT,VRA,VRB X-form VSX Performs a negative multiply-subtract operation on quad-precision floating-point values.
xsrdpi xsrdpi VRT, VRA X-form VSX Rounds a double-precision floating-point value to an integer using the specified rounding mode.
xsrdpic xsrdpic XT,XB XX2-form VSX Rounds a double-precision floating-point value to an integer using the current rounding mode.
xsrdpim xsrdpim XT,XB XX2-form VSX Rounds a double-precision floating-point value in VSR[XB] towards negative infinity and places the result into VSR[XT].
xsrdpip xsrdpip XT,XB XX2-form VSX Rounds a double-precision floating-point value towards positive infinity and stores the result in a vector scalar register.
xsrdpiz xsrdpiz XT,XB XX2-form VSX Rounds a double-precision floating-point value toward zero and places the result into a vector-scalar register.
xsredp xsredp XT,XB XX2-form VSX Estimates the reciprocal of a double-precision floating-point value.
xsresp xsresp XT,XB XX2-form VSX Estimates the reciprocal of a single-precision floating-point value.
xsrintqp xsrintqp vD, vB X-form VSX Rounds Quad float to nearest Integer.
xsrqpi xsrqpi vD, vB, R Z23-form VSX Rounds a quad-precision floating-point value in VRB to an integer and places the result in VRT.
xsrqpix xsrqpix vD, vB, R Z23-form VSX Rounds a Quad float to a Quad integer (Exact).
xsrqpxp xsrqpxp R, VRT, VRB, RMC Z23-form VSX Rounds a quad-precision floating-point value to extended-precision.
xsrsp xsrsp XT,XB X-form VSX Rounds a double-precision floating-point value in VSR[XB] to single-precision and stores the result in VSR[XT].
xsrsqrtedp xsrsqrtedp XT,XB XX2-form VSX Estimates the reciprocal square root of a double-precision floating-point value.
xsrsqrtesp xsrsqrtesp XT,XB XX2-form VSX Estimates the reciprocal square root of a single-precision floating-point value.
xssqrtdp xssqrtdp XT, XB XX2-form VSX Computes the unbounded-precision square root of a double-precision floating-point value and rounds it to double-precision format.
xssqrtqp xssqrtqp vD, vB X-form VSX Computes the square root of a quad-precision floating-point value with unbounded significand precision and exponent range.
xssqrtqpo xssqrtqpo vD, vB X-form VSX Used for Quad-Precision arithmetic on hardware that splits quads.
xssqrtsp xssqrtsp XT,XB XX2-form VSX Computes the square root of a single-precision floating-point number in VSX.
xssubdp xssubdp XT,XA,XB XX3-form VSX Subtracts the contents of two double-precision floating-point registers and places the result in another register.
xssubqp xssubqp VRT,VRA,VRB
xssubqpo VRT,VRA,VRB
X-form VSX Subtracts the contents of two quad-precision floating-point registers and handles special cases like NaNs.
xssubqpo xssubqpo vD, vA, vB X-form VSX Used for Quad-Precision arithmetic on hardware that splits quads.
xssubsp xssubsp XT, XA, XB XX3-form VSX Subtracts the contents of two single-precision floating-point values and places the result in a vector register.
xstdivdp xstdivdp BF,XA,XB XX3-form VSX Performs a double-precision floating-point division and sets condition flags based on the result.
xstsqrtdp xstsqrtdp BF,XB XX2-form VSX Tests the double-precision floating-point value in VSR[XB] and sets condition register field BF based on various flags.
xststdcdp xststdcdp BF, XB, DCM XX2-form VSX Tests the data class of a double-precision floating-point value in VSR[XB] and sets bits in CR field BF and FPCC accordingly.
xststdcqp xststdcqp BF, vB, DCM X-form VSX Tests the data class of a quad-precision floating-point value and sets condition register bits based on the result.
xststdcsp xststdcsp BF, vB, DCM XX2-form VSX Tests the data class of a single-precision floating-point value in a VSX register and sets condition bits accordingly.
xsxexpdp xsxexpdp XT, XB XX2-form VSX Extracts the exponent from a double-precision floating-point value in VSR and places it into GPR.
xsxsigdp xsxsigdp XT, XB XX2-form VSX Extracts the significand of a double-precision floating-point value from a VSX register and places it into a general-purpose register.
xsxsigqp xsxsigqp VRT, VRA X-form Floating-Point Extracts the significand of a quad-precision floating-point number.
xvabsdp xvabsdp XT, XB XX2-form VSX Computes the absolute value of each double-precision floating-point element in a vector.
xvabssp xvabssp XT, XB XX2-form VSX Computes absolute value for four single-precision floats.
xvadddp xvadddp XT, XA, XB XX3-form VSX Adds the contents of two double-precision floating-point elements from two vector registers and places the result into a target vector register.
xvaddsp xvaddsp XT, XA, XB XX3-form VSX Adds the contents of two single-precision floating-point vector registers and places the result in another vector register.
xvbf16ger2 xvbf16ger2 AT, XA, XB XX3-form MMA Performs BFloat16 (Brain Float) matrix multiply accumulate.
xvcmpeqdp xvcmpeqdp XT,XA,XB
xvcmpeqdp. XT,XA,XB
XX3-form VSX Compares two double-precision floating-point values in vector registers and sets the target register based on equality.
xvcmpeqsp xvcmpeqsp XT,XA,XB
xvcmpeqsp. XT,XA,XB
XX3-form VSX Compares each single-precision floating-point element of two VSX registers and sets the corresponding element in the target register to all 1s if they are equal, otherwise all 0s.
xvcmpgedp xvcmpgedp XT,XA,XB
xvcmpgedp. XT,XA,XB
XX3-form VSX Compares two double-precision floating-point values and sets the target vector register based on the comparison.
xvcmpgesp xvcmpgesp XT,XA,XB
xvcmpgesp. XT,XA,XB
XX3-form VSX Compares each element of two single-precision floating-point vectors and sets the target vector elements to all 1s if the corresponding source elements are greater than or equal, otherwise all 0s.
xvcmpgtdp xvcmpgtdp XT,XA,XB
xvcmpgtdp. XT,XA,XB
XX3-form VSX Compares two double-precision floating-point values and sets the target vector register based on the comparison.
xvcmpgtsp xvcmpgtsp XT,XA,XB
xvcmpgtsp. XT,XA,XB
XX3-form VSX Compares each single-precision floating-point element in two vector registers and sets the corresponding element in a target vector register to all 1s if the first element is greater than the second, otherwise all 0s.
xvcpsgndp xvcpsgndp XT,XA,XB XX3-form VSX Copies the sign bit from one double-precision vector element to another.
xvcvbf16spn xvcvbf16spn XT,XB XX2-form VSX Converts a vector of bfloat16 values to single-precision floating-point format.
xvcvdpsp xvcvdpsp XT, XB XX2-form VSX Converts double-precision floating-point values in a vector to single-precision format.
xvcvdpsxds xvcvdpsxds XT, XB XX2-form VSX Converts a double-precision floating-point value to a signed doubleword integer, rounding according to the current rounding mode.
xvcvdpsxws xvcvdpsxws XT,XB X-form VSX Converts double-precision floating-point values in a vector to signed 32-bit integers with rounding towards zero.
xvcvdpuxds xvcvdpuxds XT, XB XX2-form VSX Converts double-precision floating-point values in a vector to unsigned doublewords using round towards zero.
xvcvdpuxws xvcvdpuxws XT,XB XX2-form VSX Converts double-precision floating-point values in a vector to unsigned 32-bit integers with rounding towards zero.
xvcvhpsp xvcvhpsp XT, XB XX2-form VSX Converts half-precision floating-point values in a vector register to single-precision floating-point values.
xvcvspbf16 xvcvspbf16 XT,XB XX2-form VSX Converts single-precision floating-point values in a vector register to bfloat16 format and stores them in another vector register.
xvcvspdp xvcvspdp XT, XB XX2-form VSX Converts two floats to two doubles.
xvcvsphp xvcvsphp XT, XB XX2-form VSX Converts each single-precision floating-point value in a vector register to half-precision and stores the result in another vector register.
xvcvspsxds xvcvspsxds XT, XB XX2-form VSX Converts single-precision floating-point values in a vector to signed doublewords, rounding towards zero.
xvcvspsxws xvcvspsxws XT,XB XX2-form VSX Converts a vector of single-precision floating-point numbers to signed integers using round towards zero.
xvcvspuxds xvcvspuxds XT,XB XX2-form VSX Converts a single-precision floating-point value to an unsigned doubleword integer, rounding according to the current rounding mode.
xvcvspuxws xvcvspuxws XT,XB XX2-form VSX Converts a single-precision floating-point value to an unsigned word using round towards zero.
xvcvsxddp xvcvsxddp XT,XB XX2-form VSX Converts signed doublewords from a vector register to double-precision floating-point values and rounds them.
xvcvsxdsp xvcvsxdsp XT,XB XX2-form VSX Converts signed doubleword elements of a vector register to single-precision floating-point and rounds the result.
xvcvsxwdp xvcvsxwdp XT,XB XX2-form VSX Converts signed word elements from a vector register to double-precision floating-point elements in another vector register.
xvcvsxwsp xvcvsxwsp XT, XB XX2-form VSX Converts a signed integer in each word of the source vector to single-precision floating-point and rounds it.
xvcvuxddp xvcvuxddp VRT, VRA, VRB XX2-form VSX Converts an unsigned doubleword vector element to a double-precision floating-point value.
xvcvuxdsp xvcvuxdsp VS32,VS64 XX2-form VSX Converts an unsigned doubleword to a single-precision floating-point value with rounding.
xvcvuxwsp xvcvuxwsp XT, XB XX2-form VSX Converts four 32-bit unsigned integers to four floats.
xvdivdp xvdivdp XT, XA, XB XX3-form VSX Divides the contents of two vector registers and places the result in another vector register.
xvdivsp xvdivsp XT, XA, XB XX3-form VSX Divides the contents of two vector registers and places the result in another vector register.
xvf16ger2 xvf16ger2 AT, XA, XB XX3-form MMA Performs a vector floating-point general element-wise rank-2 update operation.
xvf16ger2pn xvf16ger2pn XX3-form MMA Performs a rank-2 update of an accumulator register using 16-bit floating-point outer product, with positive multiply and negative accumulate.
xvf32ger xvf32ger AT, XA, XB XX3-form MMA Performs a vector floating-point general element-wise reduction with rank-1 update.
xvf64ger xvf64ger AT, XA, XB XX3-form MMA Performs a vector floating-point general element-wise reduction on 64-bit elements.
xvf64gernn xvf64gernn XX3-form MMA Performs a VSX Vector 64-bit Floating-Point GER (rank-1 update) with negative multiply and negative accumulate, updating an accumulator register.
xvi16ger2 xvi16ger2 AT, XA, XB XX3-form MMA Performs a rank-2 update of the contents of two registers and updates the condition register.
xvi16ger2s xvi16ger2s AT, XA, XB XX3-form MMA Performs a vectorized signed integer multiply and accumulate operation with saturation.
xvi4ger8 xvi4ger8 AT, XA, XB XX3-form MMA Performs an accumulation of eight outer products (rank 8 update) using signed 4-bit integers from two vector scalar registers.
xvi4ger8pp xvi4ger8pp AT, XA, XB XX3-form MMA Unsigned 4-bit integer matrix multiply accumulate.
xvi8ger4 xvi8ger4 AT, XA, XB XX3-form MMA Performs an 8-bit integer outer product (GER) and accumulates into a 512-bit register.
xvi8ger4pp xvi8ger4pp AT, XA, XB XX3-form MMA Signed/Unsigned variations of 8-bit matrix multiply accumulate.
xvi8ger4spp xvi8ger4spp AT,XA,XB XX3-form VSX Performs a vector-scalar operation on 8-bit signed and unsigned integers with saturation.
xviexpdp xviexpdp XT,XA,XB XX3-form VSX Inserts the exponent from one vector register into another for double-precision floating-point numbers.
xvmaddadp xvmaddadp XT, XA, XB XX3-form VSX Performs a double-precision floating-point multiply-add operation on vector elements.
xvmaddasp xvmaddasp XT,XA,XB XX3-form VSX Performs a single-precision floating-point multiply-add operation on vector elements.
xvmaxdp xvmaxdp XT, XA, XB XX3-form VSX Compares two double-precision floating-point values and selects the maximum value for each element.
xvmaxsp xvmaxsp XT, XA, XB XX3-form VSX Computes the maximum of corresponding single-precision floating-point elements in two vector registers and stores the result in a third vector register.
xvmindp xvmindp XT, XA, XB XX3-form VSX Compares two double-precision floating-point values and selects the minimum value for each element.
xvminsp xvminsp XT, XA, XB XX3-form VSX Performs a minimum operation on single-precision floating-point values from two vector scalar registers and stores the result in another vector scalar register.
xvmsubadp xvmsubadp XT,XA,XB XX3-form VSX Performs a double-precision floating-point multiply-subtract operation on vector elements.
xvmsubasp xvmsubasp XT,XA,XB XX3-form VSX Performs a vector multiply-subtract operation on single-precision floating-point values.
xvmsubmdp xvmsubmdp VRT, VRA, VRB, VRC XX3-form VSX Multiplies corresponding double-precision floating-point elements of two VSX registers, subtracts the corresponding element of a third register, and stores the results, using the Type-M (multiplicand) form.
xvmuldp xvmuldp XT, XA, XB XX3-form VSX Multiplies two double-precision floating-point numbers in vector registers and stores the result.
xvmulsp xvmulsp XT, XA, XB XX3-form VSX Multiplies the contents of two single-precision floating-point values and places the result into a vector register.
xvnabsdp xvnabsdp XT,XB XX2-form VSX Computes the negative absolute value of each double-precision floating-point element in a vector.
xvnegdp xvnegdp XT, XB XX2-form VSX Negates the contents of a double-precision floating-point vector register and stores the result in another vector register.
xvnegsp xvnegsp XT, XB XX2-form VSX Negates the contents of a single-precision floating-point register.
xvnmaddadp xvnmaddadp XT,XA,XB XX3-form VSX Performs a negative multiply-add operation on double-precision floating-point elements.
xvnmaddasp xvnmaddasp XT,XA,XB XX3-form VSX Performs a negative multiply-add operation on single-precision floating-point elements.
xvnmaddmsp N/A XX3-form VSX Performs a vector single-precision floating-point negative multiply-add operation (Type-M), computing the negation of (XB * XT + XA) for each single-precision element.
xvnmsubadp xvnmsubadp XT,XA,XB XX3-form VSX Performs a negative multiply-subtract operation on double-precision floating-point elements.
xvnmsubasp xvnmsubasp XT,XA,XB XX3-form VSX Performs a negative multiply-subtract operation on single-precision floating-point elements.
xvnmsubmdp xvnmsubmdp VRT, VRA, VRB, VRC XX3-form VSX Performs a negative multiply-subtract operation on double-precision floating-point values.
xvrdpi xvrdpi XT,XB XX2-form VSX Rounds each element of a double-precision floating-point vector to the nearest integer away from zero.
xvrdpic xvrdpic XT,XB XX2-form VSX Rounds each double-precision floating-point element of a vector to an integer using the current rounding mode.
xvrdpim xvrdpim XT,XB XX2-form VSX Rounds the contents of a vector register towards negative infinity and stores the result in another vector register.
xvrdpiz xvrdpiz XT,XB XX2-form VSX Rounds each double-precision floating-point element in a vector towards zero and stores the result as an integer.
xvredp xvredp XT,XB XX2-form VSX A double-precision floating-point estimate of the reciprocal of src is placed into doubleword element i of VSR[XT] in double-precision format.
xvresp xvresp XT,XB XX2-form VSX Estimates the reciprocal of single-precision floating-point values in a vector.
xvrspi xvrspi XT,XB XX2-form VSX Rounds each element of a vector from single-precision floating-point format to an integer using round to Nearest Away.
xvrspic xvrspic XT,XB XX2-form VSX Rounds each single-precision floating-point element of a vector to an integer using the current rounding mode.
xvrspim xvrspim XT,XB XX2-form VSX Rounds each element of a vector from single-precision floating-point format to integer format, rounding towards negative infinity.
xvrspiz xvrspiz XT,XB XX2-form VSX Rounds each single-precision floating-point element of a vector towards zero and stores the result in another vector.
xvrsqrtedp xvrsqrtedp XT,XB XX2-form VSX Estimates the reciprocal square root of double-precision floating-point values in vector registers.
xvrsqrtesp xvrsqrtesp XT,XB XX2-form VSX Estimates the reciprocal square root of single-precision floating-point values in a vector.
xvsqrtdp xvsqrtdp XT, XB XX2-form VSX Computes the square root of each double-precision floating-point element in a vector.
xvsqrtsp xvsqrtsp XT, XB XX2-form VSX Computes the square root of each single-precision floating-point element in a vector.
xvsubdp xvsubdp XT, XA, XB XX3-form VSX Subtracts the contents of two vector registers and places the result in a target vector register.
xvsubsp xvsubsp XT, XA, XB XX3-form VSX Subtracts the contents of two vector registers and places the result in another vector register.
xvtdivdp xvtdivdp BF,XA,XB XX3-form VSX Performs a double-precision floating-point division on vector elements and sets condition flags based on the results.
xvtdivsp xvtdivsp BF,XA,XB XX3-form VSX Performs a vectorized single-precision floating-point division test.
xvtlsbb xvtlsbb BF,XB XX2-form VSX Tests the least-significant bit of each byte in a VSX vector register and sets a condition register field based on the results.
xvtsqrtdp xvtsqrtdp BF,XB XX2-form VSX Tests the double-precision floating-point operands in VSR[XB] and sets condition register field BF based on certain conditions.
xvtsqrtsp xvtsqrtsp BF,XB XX2-form VSX Tests each element of a vector for conditions related to square root operations.
xvtstdcdp xvtstdcdp XT,XB,DCMX XX2-form VSX Tests each double-precision floating-point element in a vector against specified data classes and sets the corresponding elements in another vector to either all ones or all zeros based on the match.
xvtstdcsp xvtstdcsp XT,XB,DCMX XX2-form VSX Tests each single-precision floating-point element in a vector against specified data classes and sets the corresponding elements in another vector based on the match.
xvxexpdp xvxexpdp XT,XB XX2-form VSX Extracts the exponent from each double-precision floating-point value in a vector and places it into another vector.
xvxsigdp xvxsigdp XT,XB XX2-form VSX Extracts the significand of double-precision floating-point values from a vector register and places them into another vector register.
xxblendvb xxblendvb XT, XA, XB, XC XX4-form VSX Selects bytes from XA or XB based on the MSB of bytes in XC.
xxblendvd xxblendvd XT, XA, XB, XC XX4-form VSX Selects doublewords from XA or XB based on the MSB of doublewords in XC.
xxblendvh xxblendvh XT, XA, XB, XC XX4-form VSX Selects halfwords from XA or XB based on the MSB of halfwords in XC.
xxblendvw xxblendvw XT, XA, XB, XC XX4-form VSX Selects words from XA or XB based on the MSB of words in XC.
xxbrd xxbrd XT,XB XX-form VSX Reverses the bytes of each doubleword element in a vector register.
xxbrh xxbrh XT,XB XX2-form VSX Reverses the bytes of each halfword in a vector register.
xxbrw xxbrw XT,XB XX2-form VSX Reverses the bytes of each word in a vector register.
xxeval xxeval XT, XA, XB, XC, IMM 8RR:XX4-form VSX 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 VSX Extracts an unsigned word from a vector register and places it into another vector register.
xxgenpcvbm xxgenpcvbm XT, XB, IMM XX2-form VSX Generates a permute control vector based on the byte mask in VSR[VRB+32].
xxgenpcvdm xxgenpcvdm XT, XB, IMM XX2-form VSX Generates a permute control vector (PCV) based on the doubleword mask in VSR[VRB+32] and stores it in VSR[XT].
xxgenpcvhm xxgenpcvhm XT, XB, IMM XX2-form VSX Generates a permute control vector (PCV) based on the halfword mask in VSR[VRB+32].
xxgenpcvwm xxgenpcvwm XT, XB, IMM XX2-form VSX Generates a permute control vector (PCV) based on the word mask in VSR[VRB+32] and stores it in VSR[XT].
xxinsertw xxinsertw XT, RB, UIM XX2-form VSX Inserts a 32-bit word from a GPR into a specific element of a VSR.
xxland xxland XT, XA, XB XX3-form VSX Performs a bitwise AND operation on the contents of two vector registers and stores the result in another vector register.
xxlandc xxlandc XT, XA, XB XX3-form VSX vD = vA & ~vB
xxleqv xxleqv XT, XA, XB XX3-form VSX vD = ~(vA ^ vB) (XNOR)
xxlnand xxlnand XT, XA, XB XX3-form VSX vD = ~(vA & vB)
xxlnor xxlnor XT, XA, XB XX3-form VSX Performs a logical NOR operation on the contents of two VSX registers and stores the result in another VSX register.
xxlor xxlor XT, XA, XB XX3-form VSX Bitwise OR.
xxlorc xxlorc XT, XA, XB XX3-form VSX vD = vA | ~vB
xxlxor xxlxor XT, XA, XB XX3-form VSX Bitwise XOR.
xxmfacc xxmfacc AT X-form MMA Copies data from an Accumulator back to 4 adjacent VSRs.
xxmrghd xxmrghd XT, XA, XB XX3-form VSX Merges high doublewords from XA and XB.
xxmrghw xxmrghw XT, XA, XB XX3-form VSX Merges the high words of two VSX registers into a target VSX register.
xxmrgld xxmrgld XT, XA, XB XX3-form VSX Merges low doublewords from XA and XB.
xxmrglw xxmrglw XT, XA, XB XX3-form VSX Merges low words from two VSRs.
xxmtacc xxmtacc AT X-form MMA Copies data from 4 adjacent VSRs into an Accumulator.
xxperm xxperm XT, XA, XB, XC XX4-form VSX Performs a vector permute operation on the contents of three VSX registers.
xxpermdi xxpermdi XT, XA, XB, DM XX3-form VSX 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 VSX Little-endian optimized permute.
xxpermx xxpermx XT, XA, XB, XC, UIM XX4-form VSX Permutes bytes from two source vectors using a control vector and a 3-bit selector.
xxsel xxsel XT, XA, XB, XC XX4-form VSX Selects elements from two source vectors based on a mask vector.
xxsetaccz xxsetaccz AT X-form MMA Clears a 512-bit Accumulator register (composed of 4 VSRs) to zero.
xxsldwi xxsldwi XT,XA,XB,SHW XX3-form VSX Shifts the contents of two vector registers left by a specified number of words and places the result into another vector register.
xxsplti32dx xxsplti32dx XT, IX, IMM 8RR:D-form VSX Splats a 32-bit immediate into a doubleword index.
xxspltib xxspltib XT, IMM X-form VSX Copies an immediate byte value into each byte element of a vector register.
xxspltidp xxspltidp XT, IMM 8RR:D-form VSX Spatially duplicates a 32-bit immediate (converted to double) into both double elements.
xxspltiw xxspltiw XT, IMM 8RR:D-form VSX Spatially duplicates a 32-bit immediate into all 4 words of the target.
xxspltw xxspltw XT, XS, UIM XX2-form VSX Replicates a word element from one vector register into all elements of another vector register.
xxswapd xxswapd XT, XB XX2-form VSX Swaps the two doublewords in the register.
xxvger4spp N/A XX3-form MMA Performs a rank-4 update of an accumulator using 8-bit signed/unsigned integer GER operations with saturation, accumulating only positive multiply results into positive accumulate positions.