Changes between Version 2 and Version 3 of GcnInstrsVopc
- Timestamp:
- 12/04/15 23:00:18 (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GcnInstrsVopc
v2 v3 3 3 #!html 4 4 <h2>GCN ISA VOPC/VOP3 instructions</h2> 5 <p>VOPC instructions can be encoded in the VOPC encoding and the VOP3A /VOP3Bencoding.5 <p>VOPC instructions can be encoded in the VOPC encoding and the VOP3A encoding. 6 6 List of fields for VOPC encoding:</p> 7 7 <table> … … 58 58 </tr> 59 59 <tr> 60 <td>8-14</td>61 <td>SDST</td>62 <td>Scalar destination operand (VOP3B)</td>63 </tr>64 <tr>65 60 <td>11</td> 66 61 <td>CLAMP</td> … … 68 63 </tr> 69 64 <tr> 70 <td>15</td>71 <td>CLAMP</td>72 <td>CLAMP modifier (VOP3B)</td>73 </tr>74 <tr>75 65 <td>17-25</td> 76 66 <td>OPCODE</td> … … 128 118 <td>ABS</td> 129 119 <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>135 120 </tr> 136 121 <tr> … … 365 350 <tr> 366 351 <td>13 (0xd)</td> 367 <td>NE G</td>352 <td>NEQ</td> 368 353 <td>SDST(LANEID) = !((TYPE)SRC0 == (TYPE)SRC1)</td> 369 354 </tr> … … 570 555 <code>V_CMP_LT_U32 VCC, V0, V1 # V0<V1 571 556 V_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> 573 559 <h4>V_CMP_CLASS_F16</h4> 574 560 <p>Opcode: 20 (0x14) for GCN 1.2<br /> 575 561 Syntax VOPC: V_CMP_CLASS_F16 VCC, SRC0, SRC1<br /> 576 562 Syntax VOP3: V_CMP_CLASS_F16 SDST, SRC0, SRC1<br /> 577 Operation: Check whether S SRC0 half floating point value belongs to one of specified class.563 Operation: Check whether SRC0 half floating point value belongs to one of specified class. 578 564 Classes are specified as set bits in SRC1. If that condition is satisfied then store 579 565 1 to bit of SDST with number of current lane id, otherwise clear that bit. 566 This instruction doesn't raise exception under any circumstances. 580 567 No flushing denormalized values for SRC0. List of classes:</p> 581 568 <table> … … 633 620 Syntax VOPC: V_CMPX_CLASS_F16 VCC, SRC0, SRC1<br /> 634 621 Syntax VOP3: V_CMPX_CLASS_F16 SDST, SRC0, SRC1<br /> 635 Operation: Check whether S SRC0 half floating point value belongs to one of specified class.622 Operation: Check whether SRC0 half floating point value belongs to one of specified class. 636 623 Classes are specified as set bits in SRC1. If that condition is satisfied then store 637 624 1 to bit of SDST and EXEC with number of current lane id, otherwise clear that bit. 625 This instruction doesn't raise exception under any circumstances. 638 626 No flushing denormalized values for SRC0. List of classes:</p> 639 627 <table> … … 691 679 Syntax VOPC: V_CMP_CLASS_F32 VCC, SRC0, SRC1<br /> 692 680 Syntax VOP3: V_CMP_CLASS_F32 SDST, SRC0, SRC1<br /> 693 Operation: Check whether S SRC0 single floating point value belongs to one of specified class.681 Operation: Check whether SRC0 single floating point value belongs to one of specified class. 694 682 Classes are specified as set bits in SRC1. If that condition is satisfied then store 695 683 1 to bit of SDST with number of current lane id, otherwise clear that bit. 684 This instruction doesn't raise exception under any circumstances. 696 685 No flushing denormalized values for SRC0. List of classes:</p> 697 686 <table> … … 749 738 Syntax VOPC: V_CMPX_CLASS_F32 VCC, SRC0, SRC1<br /> 750 739 Syntax VOP3: V_CMPX_CLASS_F32 SDST, SRC0, SRC1<br /> 751 Operation: Check whether S SRC0 single floating point value belongs to one of specified class.740 Operation: Check whether SRC0 single floating point value belongs to one of specified class. 752 741 Classes are specified as set bits in SRC1. If that condition is satisfied then store 753 742 1 to bit of SDST and EXEC with number of current lane id, otherwise clear that bit. 743 This instruction doesn't raise exception under any circumstances. 754 744 No flushing denormalized values for SRC0. List of classes:</p> 755 745 <table> … … 807 797 Syntax VOPC: V_CMP_CLASS_F64 VCC, SRC0, SRC1(2)<br /> 808 798 Syntax VOP3: V_CMP_CLASS_F64 SDST, SRC0(2), SRC1(2)<br /> 809 Operation: Check whether S SRC0 double floating point value belongs to one of specified class.799 Operation: Check whether SRC0 double floating point value belongs to one of specified class. 810 800 Classes are specified as set bits in SRC1. If that condition is satisfied then store 811 801 1 to bit of SDST with number of current lane id, otherwise clear that bit. 802 This instruction doesn't raise exception under any circumstances. 812 803 No flushing denormalized values for SRC0. List of classes:</p> 813 804 <table> … … 865 856 Syntax VOPC: V_CMPX_CLASS_F64 VCC, SRC0(2), SRC1(2)<br /> 866 857 Syntax VOP3: V_CMPX_CLASS_F64 SDST, SRC0(2), SRC1(2)<br /> 867 Operation: Check whether S SRC0 double floating point value belongs to one of specified class.858 Operation: Check whether SRC0 double floating point value belongs to one of specified class. 868 859 Classes are specified as set bits in SRC1. If that condition is satisfied then store 869 860 1 to bit of SDST and EXEC with number of current lane id, otherwise clear that bit. 861 This instruction doesn't raise exception under any circumstances. 870 862 No flushing denormalized values for SRC0. List of classes:</p> 871 863 <table>