PSETP : Combine Predicates and Set Predicate

Format:

SPA 5.0:
        {@{!}Pg}   PSETP.bop0        Pu,     {!}Pp, {!}Pq          {&req_6}   {?sched}   ;   
        {@{!}Pg}   PSETP.bop0.bop1   Pu, Pv, {!}Pp, {!}Pq, {!}Pr   {&req_6}   {?sched}   ;   

 .bop0:  { .AND, .OR, .XOR } 
 .bop1:  { .AND, .OR, .XOR } 

Description:

PSETP.bop0.bop1 sets two destination predicates Pu and Pv to Boolean values based on Boolean combinations .bop0 and .bop1 of source predicate operands {!}Pp, {!}Pq, and {!}Pr.

    Pu = (  {!}Pp  .bop0 {!}Pq ) .bop1 {!}Pr;
    Pv = ( (!{!}Pp) .bop0 {!}Pq) .bop1 {!}Pr;

The simple instruction format without .bop1 {!}Pr assembles as .AND PT, and Pv is PT, yielding effectively:

    Pu = ( {!}Pp .bop0 {!}Pq );

Predicate source operands {!}Pp, {!}Pq, and {!}Pr are 1-bit predicate registers with optional complements.

Predicate destination operands Pu and Pv are 1-bit predicate registers. To not write predicate Pu or Pv, specify predicate PT, which ignores writes.

Examples:

PSETP.AND    P1,     P2, !P3;
PSETP.AND.OR P1, P4, P2, !P3, P4;

Back to Index of Instructions