Changes between Version 28 and Version 29 of GcnInstrsVop2


Ignore:
Timestamp:
Jun 16, 2017, 7:00:24 PM (2 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GcnInstrsVop2

    v28 v29  
    194194NOTE: OMOD and CLAMP modifier affects only for instruction that output is
    195195floating point value.<br />
    196 NOTE: ABS and negation is applied to source operand for any instruction.<br />
    197 NOTE: OMOD modifier doesn't work for half precision (FP16) instructions (except V_MAC_F16).</p>
     196NOTE: ABS and negation is applied to source operand for any instruction.  </p>
    198197<p>Negation and absolute value can be combined: <code>-ABS(V0)</code>. Modifiers CLAMP and
    199198OMOD (MUL:2, MUL:4 and DIV:2) can be given in random order.</p>
     
    784783Syntax: V_MAC_F16 VDST, SRC0, SRC1<br />
    785784Description: Multiply FP16 value from SRC0 by FP16 value from SRC1 and
    786 add result to VDST. It applies OMOD modifier to result.<br />
     785add result to VDST. It applies OMOD modifier to result and it flush denormals.<br />
    787786Operation:<br />
    788787<code>VDST = ASHALF(SRC0) * ASHALF(SRC1) + ASHALF(VDST)</code></p>
     
    791790Opcode VOP3A: 287 (0x11f) for GCN 1.0/1.1; 278 (0x116) for GCN 1.2<br />
    792791Syntax: V_MAC_F32 VDST, SRC0, SRC1<br />
    793 Description: Multiply FP value from SRC0 by FP value from SRC1 and add result to VDST.<br />
     792Description: Multiply FP value from SRC0 by FP value from SRC1 and add result to VDST.
     793It applies OMOD modifier to result and it flush denormals.<br />
    794794Operation:<br />
    795795<code>VDST = ASFLOAT(SRC0) * ASFLOAT(SRC1) + ASFLOAT(VDST)</code></p>
     
    799799Syntax: V_MAC_LEGACY_F32 VDST, SRC0, SRC1<br />
    800800Description: Multiply FP value from SRC0 by FP value from SRC1 and add result to VDST.
    801 If one of value is 0.0 then always do not change VDST (do not apply IEEE rules for 0.0*x).<br />
     801If one of value is 0.0 then always do not change VDST (do not apply IEEE rules for 0.0*x).
     802It applies OMOD modifier to result and it flush denormals.<br />
    802803Operation:<br />
    803804<code>if (ASFLOAT(SRC0)!=0.0 &amp;&amp; ASFLOAT(SRC1)!=0.0)
    804805    VDST = ASFLOAT(SRC0) * ASFLOAT(SRC1) + ASFLOAT(VDST)</code></p>
     806<h4>V_MADAK_F16</h4>
     807<p>Opcode: 37 (0x25) for GCN 1.2<br />
     808Opcode: 293 (0x125) for GCN 1.2<br />
     809Syntax: V_MADAK_F16 VDST, SRC0, SRC1, FLOAT16LIT<br />
     810Description: Multiply FP16 value from SRC0 with FP16 value from SRC1 and add
     811the constant literal FLOATLIT16; and store result to VDST. Constant literal follows
     812after instruction word. It flush denormals.<br />
     813Operation:
     814<code>VDST = ASHALF(SRC0) * ASHALF(SRC1) + ASHALF(FLOAT16LIT)</code></p>
     815<h4>V_MADAK_F32</h4>
     816<p>Opcode: VOP2: 33 (0x21) for GCN 1.0/1.1; 24 (0x18) for GCN 1.2<br />
     817Opcode: VOP3A: 289 (0x121) for GCN 1.0/1.1; 280 (0x118) for GCN 1.2<br />
     818Syntax: V_MADAK_F32 VDST, SRC0, SRC1, FLOATLIT<br />
     819Description: Multiply FP value from SRC0 with FP value from SRC1 and add
     820the constant literal FLOATLIT; and store result to VDST. Constant literal follows
     821after instruction word. It flush denormals.<br />
     822Operation:
     823<code>VDST = ASFLOAT(SRC0) * ASFLOAT(SRC1) + ASFLOAT(FLOATLIT)</code></p>
    805824<h4>V_MADMK_F16</h4>
    806825<p>Opcode: 36 (0x24) for GCN 1.2<br />
     
    809828Description: Multiply FP16 value from SRC0 with the constant literal FLOAT16LIT and add
    810829FP16 value from SRC1; and store result to VDST. Constant literal follows
    811 after instruction word. Use nearest-even rouding.<br />
     830after instruction word. It flush denormals.<br />
    812831Operation:
    813832<code>VDST = ASHALF(SRC0) * ASHALF(FLOAT16LIT) + ASHALF(SRC1)</code></p>
     
    818837Description: Multiply FP value from SRC0 with the constant literal FLOATLIT and add
    819838FP value from SRC1; and store result to VDST. Constant literal follows
    820 after instruction word.<br />
     839after instruction word. It flush denormals.<br />
    821840Operation:
    822841<code>VDST = ASFLOAT(SRC0) * ASFLOAT(FLOATLIT) + ASFLOAT(SRC1)</code></p>
    823 <h4>V_MADAK_F16</h4>
    824 <p>Opcode: 37 (0x25) for GCN 1.2<br />
    825 Opcode: 293 (0x125) for GCN 1.2<br />
    826 Syntax: V_MADAK_F16 VDST, SRC0, SRC1, FLOAT16LIT<br />
    827 Description: Multiply FP16 value from SRC0 with FP16 value from SRC1 and add
    828 the constant literal FLOATLIT16; and store result to VDST. Constant literal follows
    829 after instruction word.<br />
    830 Operation:
    831 <code>VDST = ASHALF(SRC0) * ASHALF(SRC1) + ASHALF(FLOAT16LIT)</code></p>
    832 <h4>V_MADAK_F32</h4>
    833 <p>Opcode: VOP2: 33 (0x21) for GCN 1.0/1.1; 24 (0x18) for GCN 1.2<br />
    834 Opcode: VOP3A: 289 (0x121) for GCN 1.0/1.1; 280 (0x118) for GCN 1.2<br />
    835 Syntax: V_MADAK_F32 VDST, SRC0, SRC1, FLOATLIT<br />
    836 Description: Multiply FP value from SRC0 with FP value from SRC1 and add
    837 the constant literal FLOATLIT; and store result to VDST. Constant literal follows
    838 after instruction word.<br />
    839 Operation:
    840 <code>VDST = ASFLOAT(SRC0) * ASFLOAT(SRC1) + ASFLOAT(FLOATLIT)</code></p>
    841842<h4>V_MAX_F16</h4>
    842843<p>Opcode VOP2: 45 (0x2d) for GCN 1.2<br />