pto.pintlv_b8¶
pto.pintlv_b8 is part of the Predicate Generation And Algebra instruction set.
Summary¶
Interleave two b8-granularity predicate sources and materialize the lower and higher result halves as two predicate outputs.
Mechanism¶
pto.pintlv_b8 is the 8-bit-element-granularity variant of the predicate-interleave family (pto.pintlv_b8 / pto.pintlv_b16 / pto.pintlv_b32). It takes two !pto.mask<b8> sources and emits the two interleaved halves under the same b8 granularity. The hardware view of the predicate-register image is preserved bit-for-bit; only how the bits are grouped into 8-bit element slots changes.
Syntax¶
AS Level 1 (SSA)¶
%low, %high = pto.pintlv_b8 %src0, %src1
: !pto.mask<b8>, !pto.mask<b8> -> !pto.mask<b8>, !pto.mask<b8>
Inputs¶
| Operand | Type | Description |
|---|---|---|
%src0 |
!pto.mask<b8> |
First predicate source |
%src1 |
!pto.mask<b8> |
Second predicate source |
Expected Outputs¶
| Result | Type | Description |
|---|---|---|
%low |
!pto.mask<b8> |
Lower interleaved half produced from %src0 / %src1 |
%high |
!pto.mask<b8> |
Upper interleaved half produced from %src0 / %src1 |
Side Effects¶
None. pto.pintlv_b8 is a pure predicate transform; it does not read or write UB, GM, or any architectural state beyond producing its two SSA results.
Constraints¶
Constraints
- All operands and results MUST use
!pto.mask<b8>. Mixing predicate granularities is illegal; usepto.pbitcastfirst if a producer emits a different granularity. - The two outputs form an ordered pair (
%low,%high) and that pairing MUST be preserved.
Examples¶
%lo, %hi = pto.pintlv_b8 %m0, %m1
: !pto.mask<b8>, !pto.mask<b8> -> !pto.mask<b8>, !pto.mask<b8>
Related Ops / Instruction Set Links¶
- Instruction set overview: Predicate Generation And Algebra
- Other variants: pto.pintlv_b16, pto.pintlv_b32
- Inverse: pto.pdintlv_b8
- Mask granularity reinterpret: pto.pbitcast