Changes between Version 37 and Version 38 of GcnInstrsVop3


Ignore:
Timestamp:
12/02/17 18:00:29 (6 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GcnInstrsVop3

    v37 v38  
    504504<tr>
    505505<th>Opcode</th>
    506 <th>Mnemonic (GCN 1.4)</th>
     506<th>Mnemonic (GCN 1.2)</th>
    507507<th>Mnemonic (GCN 1.4)</th>
    508508</tr>
     
    16131613<code>// SRC0*SRC1+SRC2
    16141614VDST = FMA(ASHALF(SRC0), ASHALF(SRC1), ASHALF(SRC2))</code></p>
     1615<h4>V_INTERP_P1_F32</h4>
     1616<p>Opcode: 624 (0x270) for GCN 1.2/1.4<br />
     1617Syntax: V_INTERP_P1_F32 VDST, VSRC, ATTR.ATTRCHAN<br />
     1618Description: Instruction does the first step of the interpolation (P0 + P10*I). The I
     1619coordinate given in VSRC register.<br />
     1620NOTE: The indices in LDS is dword indices.<br />
     1621NOTE: VDST and VSRC registers must not be same.<br />
     1622Operation:<br />
     1623<code>UINT S = 12*(ATTR*NUMPRIM + PRIMID(LANEID&gt;&gt;2))
     1624FLOAT P0[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2])
     1625FLOAT P10[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2 + 1])
     1626VDST[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 />
     1629Syntax: V_INTERP_P1_F32 VDST, VSRC, ATTR.ATTRCHAN<br />
     1630Description: Instruction does the second step of the interpolation (P20*J + D). The J
     1631coordinate given in VSRC register.<br />
     1632NOTE: The indices in LDS is dword indices.<br />
     1633NOTE: VDST and VSRC registers must not be same.<br />
     1634Operation:<br />
     1635<code>UINT S = 12*(ATTR*NUMPRIM + PRIMID(LANEID&gt;&gt;2))
     1636FLOAT P20[LANEID] = ASFLOAT(LDS[S + ATTRCHAN + 8])
     1637VDST[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 />
     1640Syntax: V_INTERP_MOV_F32 VDST, PARAMTYPE, ATTR.ATTRCHAN<br />
     1641Description: Move parameter value into VDST. The PARAMTYPE is P0, P10 or P20.<br />
     1642NOTE: The indices in LDS is dword indices.<br />
     1643Operation:<br />
     1644<code>UINT S = 12*(ATTR*NUMPRIM + PRIMID(LANEID&gt;&gt;2))
     1645if (PARAMTYPE==P0)
     1646    VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2])
     1647else if (PARAMTYPE==P10)
     1648    VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2 + 1])
     1649else if (PARAMTYPE==P20)
     1650    VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN + 8])</code></p>
    16151651<h4>V_LDEXP_F32</h4>
    16161652<p>Opcode: 648 (0x288) for GCN 1.2/1.4<br />