| 1615 | <h4>V_INTERP_P1_F32</h4> |
| 1616 | <p>Opcode: 624 (0x270) for GCN 1.2/1.4<br /> |
| 1617 | Syntax: V_INTERP_P1_F32 VDST, VSRC, ATTR.ATTRCHAN<br /> |
| 1618 | Description: Instruction does the first step of the interpolation (P0 + P10*I). The I |
| 1619 | coordinate given in VSRC register.<br /> |
| 1620 | NOTE: The indices in LDS is dword indices.<br /> |
| 1621 | NOTE: VDST and VSRC registers must not be same.<br /> |
| 1622 | Operation:<br /> |
| 1623 | <code>UINT S = 12*(ATTR*NUMPRIM + PRIMID(LANEID>>2)) |
| 1624 | FLOAT P0[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2]) |
| 1625 | FLOAT P10[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2 + 1]) |
| 1626 | VDST[LANEID] = P0[LANEID] + ASFLOAT(VSRC[LANEID]) * P10[LANEID]</code></p> |
| 1627 | <h4>V_INTERP_P2_F32</h4> |
| 1628 | <p>Opcode: 625 (0x271) for GCN 1.2/1.4<br /> |
| 1629 | Syntax: V_INTERP_P1_F32 VDST, VSRC, ATTR.ATTRCHAN<br /> |
| 1630 | Description: Instruction does the second step of the interpolation (P20*J + D). The J |
| 1631 | coordinate given in VSRC register.<br /> |
| 1632 | NOTE: The indices in LDS is dword indices.<br /> |
| 1633 | NOTE: VDST and VSRC registers must not be same.<br /> |
| 1634 | Operation:<br /> |
| 1635 | <code>UINT S = 12*(ATTR*NUMPRIM + PRIMID(LANEID>>2)) |
| 1636 | FLOAT P20[LANEID] = ASFLOAT(LDS[S + ATTRCHAN + 8]) |
| 1637 | VDST[LANEID] = ASFLOAT(VDST[LANEID]) + ASFLOAT(VSRC[LANEID]) * P20[LANEID]</code></p> |
| 1638 | <h4>V_INTERP_MOV_F32</h4> |
| 1639 | <p>Opcode: 626 (0x272) for GCN 1.2/1.4<br /> |
| 1640 | Syntax: V_INTERP_MOV_F32 VDST, PARAMTYPE, ATTR.ATTRCHAN<br /> |
| 1641 | Description: Move parameter value into VDST. The PARAMTYPE is P0, P10 or P20.<br /> |
| 1642 | NOTE: The indices in LDS is dword indices.<br /> |
| 1643 | Operation:<br /> |
| 1644 | <code>UINT S = 12*(ATTR*NUMPRIM + PRIMID(LANEID>>2)) |
| 1645 | if (PARAMTYPE==P0) |
| 1646 | VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2]) |
| 1647 | else if (PARAMTYPE==P10) |
| 1648 | VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2 + 1]) |
| 1649 | else if (PARAMTYPE==P20) |
| 1650 | VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN + 8])</code></p> |