Changes between Version 2 and Version 3 of GcnInstrsVopc


Ignore:
Timestamp:
12/04/15 23:00:18 (8 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GcnInstrsVopc

    v2 v3  
    33#!html
    44<h2>GCN ISA VOPC/VOP3 instructions</h2>
    5 <p>VOPC instructions can be encoded in the VOPC encoding and the VOP3A/VOP3B encoding.
     5<p>VOPC instructions can be encoded in the VOPC encoding and the VOP3A encoding.
    66List of fields for VOPC encoding:</p>
    77<table>
     
    5858</tr>
    5959<tr>
    60 <td>8-14</td>
    61 <td>SDST</td>
    62 <td>Scalar destination operand (VOP3B)</td>
    63 </tr>
    64 <tr>
    6560<td>11</td>
    6661<td>CLAMP</td>
     
    6863</tr>
    6964<tr>
    70 <td>15</td>
    71 <td>CLAMP</td>
    72 <td>CLAMP modifier (VOP3B)</td>
    73 </tr>
    74 <tr>
    7565<td>17-25</td>
    7666<td>OPCODE</td>
     
    128118<td>ABS</td>
    129119<td>Absolute modifiers for source operands (VOP3A)</td>
    130 </tr>
    131 <tr>
    132 <td>8-14</td>
    133 <td>SDST</td>
    134 <td>Scalar destination operand (VOP3B)</td>
    135120</tr>
    136121<tr>
     
    365350<tr>
    366351<td>13 (0xd)</td>
    367 <td>NEG</td>
     352<td>NEQ</td>
    368353<td>SDST(LANEID) = !((TYPE)SRC0 == (TYPE)SRC1)</td>
    369354</tr>
     
    570555<code>V_CMP_LT_U32 VCC, V0, V1  # V0&lt;V1
    571556V_CMPX_EQ_U32 VCC, V0, V1 # V0==V1, store result to EXEC, signal for any sNaN</code></p>
    572 <p>Table of class instructions:</p>
     557<h3>Class instructions</h3>
     558<p>List of class instructions:</p>
    573559<h4>V_CMP_CLASS_F16</h4>
    574560<p>Opcode: 20 (0x14) for GCN 1.2<br />
    575561Syntax VOPC: V_CMP_CLASS_F16 VCC, SRC0, SRC1<br />
    576562Syntax VOP3: V_CMP_CLASS_F16 SDST, SRC0, SRC1<br />
    577 Operation: Check whether SSRC0 half floating point value belongs to one of specified class.
     563Operation: Check whether SRC0 half floating point value belongs to one of specified class.
    578564Classes are specified as set bits in SRC1. If that condition is satisfied then store
    5795651 to bit of SDST with number of current lane id, otherwise clear that bit.
     566This instruction doesn't raise exception under any circumstances.
    580567No flushing denormalized values for SRC0. List of classes:</p>
    581568<table>
     
    633620Syntax VOPC: V_CMPX_CLASS_F16 VCC, SRC0, SRC1<br />
    634621Syntax VOP3: V_CMPX_CLASS_F16 SDST, SRC0, SRC1<br />
    635 Operation: Check whether SSRC0 half floating point value belongs to one of specified class.
     622Operation: Check whether SRC0 half floating point value belongs to one of specified class.
    636623Classes are specified as set bits in SRC1. If that condition is satisfied then store
    6376241 to bit of SDST and EXEC with number of current lane id, otherwise clear that bit.
     625This instruction doesn't raise exception under any circumstances.
    638626No flushing denormalized values for SRC0. List of classes:</p>
    639627<table>
     
    691679Syntax VOPC: V_CMP_CLASS_F32 VCC, SRC0, SRC1<br />
    692680Syntax VOP3: V_CMP_CLASS_F32 SDST, SRC0, SRC1<br />
    693 Operation: Check whether SSRC0 single floating point value belongs to one of specified class.
     681Operation: Check whether SRC0 single floating point value belongs to one of specified class.
    694682Classes are specified as set bits in SRC1. If that condition is satisfied then store
    6956831 to bit of SDST with number of current lane id, otherwise clear that bit.
     684This instruction doesn't raise exception under any circumstances.
    696685No flushing denormalized values for SRC0. List of classes:</p>
    697686<table>
     
    749738Syntax VOPC: V_CMPX_CLASS_F32 VCC, SRC0, SRC1<br />
    750739Syntax VOP3: V_CMPX_CLASS_F32 SDST, SRC0, SRC1<br />
    751 Operation: Check whether SSRC0 single floating point value belongs to one of specified class.
     740Operation: Check whether SRC0 single floating point value belongs to one of specified class.
    752741Classes are specified as set bits in SRC1. If that condition is satisfied then store
    7537421 to bit of SDST and EXEC with number of current lane id, otherwise clear that bit.
     743This instruction doesn't raise exception under any circumstances.
    754744No flushing denormalized values for SRC0. List of classes:</p>
    755745<table>
     
    807797Syntax VOPC: V_CMP_CLASS_F64 VCC, SRC0, SRC1(2)<br />
    808798Syntax VOP3: V_CMP_CLASS_F64 SDST, SRC0(2), SRC1(2)<br />
    809 Operation: Check whether SSRC0 double floating point value belongs to one of specified class.
     799Operation: Check whether SRC0 double floating point value belongs to one of specified class.
    810800Classes are specified as set bits in SRC1. If that condition is satisfied then store
    8118011 to bit of SDST with number of current lane id, otherwise clear that bit.
     802This instruction doesn't raise exception under any circumstances.
    812803No flushing denormalized values for SRC0. List of classes:</p>
    813804<table>
     
    865856Syntax VOPC: V_CMPX_CLASS_F64 VCC, SRC0(2), SRC1(2)<br />
    866857Syntax VOP3: V_CMPX_CLASS_F64 SDST, SRC0(2), SRC1(2)<br />
    867 Operation: Check whether SSRC0 double floating point value belongs to one of specified class.
     858Operation: Check whether SRC0 double floating point value belongs to one of specified class.
    868859Classes are specified as set bits in SRC1. If that condition is satisfied then store
    8698601 to bit of SDST and EXEC with number of current lane id, otherwise clear that bit.
     861This instruction doesn't raise exception under any circumstances.
    870862No flushing denormalized values for SRC0. List of classes:</p>
    871863<table>