AL2P : Attribute Logical to physical (translate)

Format:

SPA 5.0:
        {@{!}Pg}   AL2P{.io}{.SZ}   {Puniform}, Rd , Ra, immS11   {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   
        {@{!}Pg}   AL2P{.io}{.SZ}   {Puniform}, Rd ,     immU10   {&req_6}   {&rdN}   {&wrN}   {?sched}   ;   

 .io:     {.I*, .O)                  
          Load from the input ISBE (.I) or output ISBE (.O)
 .sz:     { .32*, .64, .96, .128 } 

Description:

This instruction will convert the logical attribute to physical attribute number, taking into account the bmap table. If the logical attribute does not exist for the shader, then that status is also provided in the result structure. In that case, ALD/AST instructions, which use the result of AL2P instructions, will produce default values. Since default values depend on logical address it is passed on via result structure as well.

AL2P sets Puniform to be true if all the participating threads are using the same attribute number. IPA.IDX accepts Puniform, and can perf-optimize the case where all threads are using the same index.

Examples:

AL2P.I.96 R0,     16;                
AL2P.O    R0, R1, -8;      

using AL2P to do indexed ALD:
AL2P.I.64       R0,  R1, 12;
ALD.I.PHYS.64   R2,  a[R0] ;

using AL2P to do indexed AST:
AL2P.O.128      R0,  R1, -32;
AST.PHYS.128    R2,  a[R0] ;

Back to Index of Instructions