Bug 28087 - [x86-64] vcvtpd2dq, vcvtpd2ps, and vcvttpd2dq don't have their VEX encoding
Summary: [x86-64] vcvtpd2dq, vcvtpd2ps, and vcvttpd2dq don't have their VEX encoding
Status: RESOLVED NOTABUG
Alias: None
Product: binutils
Classification: Unclassified
Component: gas (show other bugs)
Version: 2.36.1
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-07-14 16:35 UTC by newdefectus
Modified: 2021-07-14 21:33 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description newdefectus 2021-07-14 16:35:04 UTC
According to the Intel docs, "vcvtpd2dq (%rcx), %ymm2" should assemble to C5 FB E6 11, however GAS assembles it as 62 F1 FF 48 E6 11, the EVEX version, which, while also valid, is unnecessarily 2 bytes longer. Additionally, using the {vex2} or {vex3} prefixes on these instructions will cause an error.
Comment 1 H.J. Lu 2021-07-14 21:33:32 UTC
"vcvtpd2dq (%rcx), %ymm2" is AVX512 only.  "c5 fb e6 11" is

c5 fb e6 11          	vcvtpd2dqx (%rcx),%xmm2

The destination is XMM, not YMM.