Changes between Version 1 and Version 2 of GcnInstrsVintrp


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

--

Legend:

Unmodified
Added
Removed
Modified
  • GcnInstrsVintrp

    v1 v2  
    4848</tbody>
    4949</table>
    50 <p>Encoding type is 0b110010 for GCN 1.0/1.1 or 0b110101 for GCN 1.2.</p>
     50<p>Encoding type is 0b110010 for GCN 1.0/1.1 or 0b110101 for GCN 1.2/1.4.</p>
    5151<p>Syntax: INSTRUCTION VDST, VSRC, ATTR{ATTR_NUM}.{ATTRCHAN}</p>
    5252<ul>
     
    242242<h3>Instruction set</h3>
    243243<p>Alphabetically sorted instruction list:</p>
     244<h4>V_INTERP_MOV_F32</h4>
     245<p>Opcode: 2 (0x2)<br />
     246Syntax: V_INTERP_MOV_F32 VDST, PARAMTYPE, ATTR.ATTRCHAN<br />
     247Description: Move parameter value into VDST. The PARAMTYPE is P0, P10 or P20.<br />
     248NOTE: The indices in LDS is dword indices.<br />
     249Operation:<br />
     250<code>UINT S = 12*(ATTR*NUMPRIM + PRIMID(LANEID&gt;&gt;2))
     251if (PARAMTYPE==P0)
     252    VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2])
     253else if (PARAMTYPE==P10)
     254    VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2 + 1])
     255else if (PARAMTYPE==P20)
     256    VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN + 8])</code></p>
    244257<h4>V_INTERP_P1_F32</h4>
    245258<p>Opcode: 0 (0x0)<br />
     
    265278FLOAT P20[LANEID] = ASFLOAT(LDS[S + ATTRCHAN + 8])
    266279VDST[LANEID] = ASFLOAT(VDST[LANEID]) + ASFLOAT(VSRC[LANEID]) * P20[LANEID]</code></p>
    267 <h4>V_INTERP_MOV_F32</h4>
    268 <p>Opcode: 2 (0x2)<br />
    269 Syntax: V_INTERP_MOV_F32 VDST, PARAMTYPE, ATTR.ATTRCHAN<br />
    270 Description: Move parameter value into VDST. The PARAMTYPE is P0, P10 or P20.<br />
    271 NOTE: The indices in LDS is dword indices.<br />
    272 Operation:<br />
    273 <code>UINT S = 12*(ATTR*NUMPRIM + PRIMID(LANEID&gt;&gt;2))
    274 if (PARAMTYPE==P0)
    275     VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2])
    276 else if (PARAMTYPE==P10)
    277     VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN*2 + 1])
    278 else if (PARAMTYPE==P20)
    279     VDST[LANEID] = ASFLOAT(LDS[S + ATTRCHAN + 8])</code></p>
    280280}}}