On Tue, May 21, 2024 at 5:44 PM LIU Hao via Gcc-help <gcc-help@xxxxxxxxxxx> wrote: > > 在 2024-05-17 00:18, anand akhare 写道: > > thanks everyone for replies. I am referring intel sw dev manual and it is sufficient for my work. It > > is true intel provides instructions but when instruction support is added in gnu assembler i was > > sort of hoping it will be documented somewhere. However, that is not necessary because gnu syntax is > > quite intuitive and if instruction is supported, it is easy to figure out how it will work by gnu > > syntax. > > As a matter of fact (maybe of all facts), there are always surprises! > > > For example, on https://sourceware.org/binutils/docs/as/i386_002dVariations.html, there is > > ... Mnemonic suffixes of ‘x’, ‘y’ and ‘z’ specify xmm (128-bit vector), ymm (256-bit > vector) and zmm (512-bit vector) memory references, only when there’s no other way to > disambiguate an instruction. ... > > which is wrong. SIMD instructions never have suffixes. This also means the SSE `movq` instruction I think here, the suffixes of 'x', 'y' and 'z' are for some instructions in AT&T format. .i.e. vcvtpd2ph, when src is memory operand, we don't known it's 512-bit or 256-bit or 128-bit memory, and the dest is always xmm register(2 packed fp16, 4 packed fp16, 8 packed fp16). the suffix is needed to specify operand size. -- BR, Hongtao