[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GNU as is confusing about vmovdqu mnemonics

From: Hendrik Greving
Subject: GNU as is confusing about vmovdqu mnemonics
Date: Wed, 13 Mar 2019 15:32:56 -0700

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, []

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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]