Changes between Version 28 and Version 29 of GcnInstrsVop2
- Timestamp:
- 06/16/17 19:00:24 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GcnInstrsVop2
v28 v29 194 194 NOTE: OMOD and CLAMP modifier affects only for instruction that output is 195 195 floating 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> 196 NOTE: ABS and negation is applied to source operand for any instruction. </p> 198 197 <p>Negation and absolute value can be combined: <code>-ABS(V0)</code>. Modifiers CLAMP and 199 198 OMOD (MUL:2, MUL:4 and DIV:2) can be given in random order.</p> … … 784 783 Syntax: V_MAC_F16 VDST, SRC0, SRC1<br /> 785 784 Description: Multiply FP16 value from SRC0 by FP16 value from SRC1 and 786 add result to VDST. It applies OMOD modifier to result .<br />785 add result to VDST. It applies OMOD modifier to result and it flush denormals.<br /> 787 786 Operation:<br /> 788 787 <code>VDST = ASHALF(SRC0) * ASHALF(SRC1) + ASHALF(VDST)</code></p> … … 791 790 Opcode VOP3A: 287 (0x11f) for GCN 1.0/1.1; 278 (0x116) for GCN 1.2<br /> 792 791 Syntax: 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 /> 792 Description: Multiply FP value from SRC0 by FP value from SRC1 and add result to VDST. 793 It applies OMOD modifier to result and it flush denormals.<br /> 794 794 Operation:<br /> 795 795 <code>VDST = ASFLOAT(SRC0) * ASFLOAT(SRC1) + ASFLOAT(VDST)</code></p> … … 799 799 Syntax: V_MAC_LEGACY_F32 VDST, SRC0, SRC1<br /> 800 800 Description: 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 /> 801 If one of value is 0.0 then always do not change VDST (do not apply IEEE rules for 0.0*x). 802 It applies OMOD modifier to result and it flush denormals.<br /> 802 803 Operation:<br /> 803 804 <code>if (ASFLOAT(SRC0)!=0.0 && ASFLOAT(SRC1)!=0.0) 804 805 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 /> 808 Opcode: 293 (0x125) for GCN 1.2<br /> 809 Syntax: V_MADAK_F16 VDST, SRC0, SRC1, FLOAT16LIT<br /> 810 Description: Multiply FP16 value from SRC0 with FP16 value from SRC1 and add 811 the constant literal FLOATLIT16; and store result to VDST. Constant literal follows 812 after instruction word. It flush denormals.<br /> 813 Operation: 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 /> 817 Opcode: VOP3A: 289 (0x121) for GCN 1.0/1.1; 280 (0x118) for GCN 1.2<br /> 818 Syntax: V_MADAK_F32 VDST, SRC0, SRC1, FLOATLIT<br /> 819 Description: Multiply FP value from SRC0 with FP value from SRC1 and add 820 the constant literal FLOATLIT; and store result to VDST. Constant literal follows 821 after instruction word. It flush denormals.<br /> 822 Operation: 823 <code>VDST = ASFLOAT(SRC0) * ASFLOAT(SRC1) + ASFLOAT(FLOATLIT)</code></p> 805 824 <h4>V_MADMK_F16</h4> 806 825 <p>Opcode: 36 (0x24) for GCN 1.2<br /> … … 809 828 Description: Multiply FP16 value from SRC0 with the constant literal FLOAT16LIT and add 810 829 FP16 value from SRC1; and store result to VDST. Constant literal follows 811 after instruction word. Use nearest-even rouding.<br />830 after instruction word. It flush denormals.<br /> 812 831 Operation: 813 832 <code>VDST = ASHALF(SRC0) * ASHALF(FLOAT16LIT) + ASHALF(SRC1)</code></p> … … 818 837 Description: Multiply FP value from SRC0 with the constant literal FLOATLIT and add 819 838 FP value from SRC1; and store result to VDST. Constant literal follows 820 after instruction word. <br />839 after instruction word. It flush denormals.<br /> 821 840 Operation: 822 841 <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 add828 the constant literal FLOATLIT16; and store result to VDST. Constant literal follows829 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 add837 the constant literal FLOATLIT; and store result to VDST. Constant literal follows838 after instruction word.<br />839 Operation:840 <code>VDST = ASFLOAT(SRC0) * ASFLOAT(SRC1) + ASFLOAT(FLOATLIT)</code></p>841 842 <h4>V_MAX_F16</h4> 842 843 <p>Opcode VOP2: 45 (0x2d) for GCN 1.2<br />