vpopcnth
Vector Population Count Halfword
Counts set bits in each halfword.
Details
Counts the number of set bits (population count) in each of the 8 halfword elements in vB and stores the result in the corresponding halfword of vD. Each result is an unsigned integer in the range 0–16. No status flags are affected. This instruction is part of the VMX (AltiVec) extension.
Pseudocode Operation
for i in 0 to 7 do
count ← 0
halfword ← vB[i*16 : i*16+15]
for j in 0 to 15 do
if halfword[j] = 1 then
count ← count + 1
vD[i*16 : i*16+15] ← count
Programming Note
This instruction is useful for counting the number of set bits in each halfword of a vector, which can be helpful in various bit manipulation tasks. Ensure that the Vector Facility (VEC) is enabled in the Machine State Register (MSR) before using this instruction; otherwise, it will raise an exception. The operation is performed on 8 halfwords per vector register, and there are no specific alignment requirements for the data being processed.
Example
Encoding
Operands
-
vD
Target -
vB
Source