Hello, this is meant to be a bug report, hopefully this is the appropriate
place.

1) vmovdqu %ymm0, %ymm1
as --64 -o test.o test.s
Assembles ok.

2) vmovdqu %ymm0, %ymm16
as --64 -o test.o test.s
test.s: Assembler messages:
test.s:1: Error: unsupported instruction `vmovdqu'

2) Requires the vmovdqu<8/16/32/64> mnemonic. I understand that vmovdqu is
the VEX version, while vmovdqu<8/16/32/64> encodes as EVEX. I also
understand that 2) requires EVEX. However, I don't see a reason why 2)
could not default to one version of vmovdqu<8/16/32/64> with writemask k0.
If it doesn't, the consequence is that inline asm e.g. written in C needs
to write vmovdqu for ymm <= 15 and vmovsqu32 for ymm > 15. This is
inconvenient e.g. for macros.

#ifdef __AVX__
vmovdqu ymm0, []
[..]
vmovdqu ymm15, []
#ifdef __AVX512F__
vmovdqu32 ymm15, []
[..]
vmovdqu32 ymm31, []
#endif
#endif

as --version
GNU assembler (GNU Binutils for Debian) 2.30
Copyright (C) 2018 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `x86_64-linux-gnu'.

Thanks in advance!
Hendrik Greving
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to