Changes between Version 7 and Version 8 of GcnInstrsVop2


Ignore:
Timestamp:
Nov 22, 2015, 3:00:17 PM (5 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GcnInstrsVop2

    v7 v8  
    495495VDST = temp
    496496UINT64 mask = (1ULL<<LANEID)
    497 SDST = (SDST&amp;~mask) | ((temp &gt;&gt; 32) ? MASK : 0)</code></p>
     497SDST = (SDST&amp;~mask) | ((temp &gt;&gt; 32) ? mask : 0)</code></p>
    498498<h4>V_AND_B32</h4>
    499499<p>Opcode: VOP2: 27 (0x1b) for GCN 1.0/1.1; 19 (0x13) for GCN 1.2<br />
     
    774774Opcode VOP3a: 260 (0x104) for GCN 1.0/1.1; 258 (0x102) for GCN 1.2<br />
    775775Syntax: V_SUB_F32 VDST, SRC0, SRC1<br />
    776 Description: Subtract FP value from SRC0 and FP value from SRC1 and store result to VDST.<br />
     776Description: Subtract FP value of SRC1 from FP value of SRC0 and store result to VDST.<br />
    777777Operation:<br />
    778778<code>VDST = (FLOAT)SRC0 - (FLOAT)SRC1</code></p>
     779<h4>V_SUB_I32, V_SUB_U32</h4>
     780<p>Opcode VOP2: 38 (0x26) for GCN 1.0/1.1; 26 (0x1a) for GCN 1.2<br />
     781Opcode VOP3b: 294 (0x126) for GCN 1.0/1.1; 282 (0x11a) for GCN 1.2<br />
     782Syntax VOP2 GCN 1.0/1.1: V_SUB_I32 VDST, VCC, SRC0, SRC1<br />
     783Syntax VOP3b GCN 1.0/1.1: V_SUB_I32 VDST, SDST(2), SRC0, SRC1<br />
     784Syntax VOP2 GCN 1.2: V_SUB_U32 VDST, VCC, SRC0, SRC1<br />
     785Syntax VOP3b GCN 1.2: V_SUB_U32 VDST, SDST(2), SRC0, SRC1<br />
     786Description: Subtract SRC1 from SRC0 and store result to VDST and store borrow flag to
     787SDST bit with number that equal to lane id. SDST is 64-bit.<br />
     788Operation:<br />
     789<code>UINT64 temp = (UINT64)SRC0 - (UINT64)SRC1
     790VDST = temp
     791UINT64 mask = (1ULL&lt;&lt;LANEID)
     792SDST = (SDST&amp;~mask) | ((temp&gt;&gt;32) ? mask : 0)</code></p>
    779793<h4>V_SUBREV_F32</h4>
    780794<p>Opcode VOP2: 5 (0x5) for GCN 1.0/1.1; 2 (0x3) for GCN 1.2<br />
    781795Opcode VOP3a: 261 (0x105) for GCN 1.0/1.1; 259 (0x103) for GCN 1.2<br />
    782796Syntax: V_SUBREV_F32 VDST, SRC0, SRC1<br />
    783 Description: Subtract FP value from SRC1 and FP value from SRC0 and store result to VDST.<br />
     797Description: Subtract FP value of SRC0 from FP value of SRC1 and store result to VDST.<br />
    784798Operation:<br />
    785799<code>VDST = (FLOAT)SRC1 - (FLOAT)SRC0</code></p>
     800<h4>V_SUBREV_I32, V_SUBREV_U32</h4>
     801<p>Opcode VOP2: 39 (0x27) for GCN 1.0/1.1; 27 (0x1b) for GCN 1.2<br />
     802Opcode VOP3b: 295 (0x127) for GCN 1.0/1.1; 283 (0x11b) for GCN 1.2<br />
     803Syntax VOP2 GCN 1.0/1.1: V_SUBREV_I32 VDST, VCC, SRC0, SRC1<br />
     804Syntax VOP3b GCN 1.0/1.1: V_SUBREV_I32 VDST, SDST(2), SRC0, SRC1<br />
     805Syntax VOP2 GCN 1.2: V_SUBREV_U32 VDST, VCC, SRC0, SRC1<br />
     806Syntax VOP3b GCN 1.2: V_SUBREV_U32 VDST, SDST(2), SRC0, SRC1<br />
     807Description: Subtract SRC0 from SRC1 and store result to VDST and store borrow flag to
     808SDST bit with number that equal to lane id. SDST is 64-bit.<br />
     809Operation:<br />
     810<code>UINT64 temp = (UINT64)SRC1 - (UINT64)SRC0
     811VDST = temp
     812UINT64 mask = (1ULL&lt;&lt;LANEID)
     813SDST = (SDST&amp;~mask) | ((temp&gt;&gt;32) ? mask : 0)</code></p>
    786814<h4>V_XOR_B32</h4>
    787815<p>Opcode: VOP2: 29 (0x1d) for GCN 1.0/1.1; 21 (0x15) for GCN 1.2<br />