PLOOP
Operation
Builds the next predicate chunk from a remaining count and lane offset.
Assembler Syntax
PLOOP.{B|W|L|Q}(z) Rn(r), Rn(s), Pn(p), <ea>(e)
Privilege
Unprivileged
Required CPUID flags
VECTOR
PLOOP reads an unsigned remaining count and an unsigned lane offset. Let \(N\) denote the number of lanes for the selected element width. If the remaining count is zero, PLOOP transfers control to the encoded target and leaves the predicate and both scalar registers unchanged.
For a nonzero remaining count, an offset at or above the selected element count raises VECTOR_LOOP_OFFSET_OUT_OF_RANGE and commits no state. A valid iteration sets the next \(\min(\operatorname{remaining},\,N-\operatorname{offset})\) significant predicate positions, clears every other predicate bit, subtracts the number of set positions from the remaining count, clears the offset register, and falls through.
PLOOP.W head iteration
PLOOP.W body iteration
PLOOP.W tail iteration
PLOOP.W head-tail iteration
2.75in
Encodings
PLOOP.{B|W|L|Q}(z) Rn(r), Rn(s), Pn(p), <ea>(e)
Format: Instruction format for PLOOP.{B|W|L|Q}(z) Rn(r), Rn(s), Pn(p), <ea>(e)
remaining, offset — illegal_instruction