vctzw

Vector Count Trailing Zeros Word

vctzw vD, vB

Counts the number of trailing zero bits in each word element of a vector register.

Details

For vctzw, the number of consecutive zero bits starting at bit 31 of each word element in VSR[VRB+32] is counted and placed into the corresponding word element in VSR[VRT+32].

Pseudocode Operation

if MSR.VEC=0 then
    Vector_Unavailable()
do i = 0 to 3
    n ←0
do while n < 32
    if VSR[VRB+32].word[i].bit[31-n] = 0b1 then
        leave
    n ←n + 1
end
VSR[VRT+32].word[i] ←CHOP32(EXTZ(n))
end

Programming Note

The vctzw instruction counts the number of trailing zeros in each word element of a vector register. Ensure that the Vector Facility is enabled by checking and setting the VEC bit in the MSR register. This instruction operates on 32-bit words, so input data must be aligned accordingly. The result is stored in another vector register, preserving the original data unless explicitly overwritten.

Example

vctzw vd, vb

Encoding

Binary Layout
4
0
vD
6
0
11
vB
16
1922
 
Format VX-form
Opcode 0x10000782
Extension VMX (AltiVec)
Registers Altered MSR

Operands

  • vD
    Target
  • vB
    Source
  • VRT
    Target Vector Register
  • VRB
    Source Vector Register