Hi,
how to use new instructions if they are not supported by assembler? I have two options, use macros or use Microsoft's Assembler while creating a separate object file.
Galois Field New Instructions (GFNI)
EVEX-encoded Galois field new instructions:
Instruction Description
VGF2P8AFFINEINVQB Galois field affine transformation inverse Supported, Enabled
VGF2P8AFFINEQB Galois field affine transformation Supported, Enabled
VGF2P8MULB Galois field multiply bytes Supported, Enabled
IA AVX-512 Neural Network Instructions (AVX512_VNNI) Supported, Enabled
IA AVX-512 Vector Bit Manipulation Instructions (AVX512_VBMI) Supported, Enabled
IA AVX-512 Vector Bit Manipulation Instructions 2 (AVX512_VBMI2) Supported, Enabled
AVX-512 Vector Neural Network Instructions (VNNI) - x86 -
https://en.wikichip.org/wiki/x86/avx512_vnniThe major motivation behind the AVX512 VNNI extension is the observation that many tight convolutional neural network loops require the repeated multiplication of two 16-bit values or two 8-bit values and accumulate the result to a 32-bit accumulator. Using the foundation AVX-512, for 16-bit, this is possible using two instructions - VPMADDWD which is used to multiply two 16-bit pairs and add them together followed a VPADDD which adds the accumulate value.
VPMADDWD xmm1, xmm2, xmm3/m128
VPMADDWD ymm1, ymm2, ymm3/m256
VPMADDWD xmm1 {k1}{z}, xmm2, xmm3/m128
VPMADDWD ymm1 {k1}{z}, ymm2, ymm3/m256
VPMADDWD zmm1 {k1}{z}, zmm2, zmm3/m512
Combined Volume Set of Intel® 64 and IA-32 Architectures Software Developer’s Manuals (PDF) -
https://www.intel.com/content/www/us/en/develop/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.htmlThe question is, do we have any universal macros for describing commands that are not available for assembly?
Thanks!