https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91520

--- Comment #1 from Iain Sandoe <iains at gcc dot gnu.org> ---
Created attachment 46749
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46749&action=edit
Possible fix by modifying GCC output.


As noted, the LLVM backend is rejecting a disambiguation marker that is not
actually really required (the size of the operands is known when the operands
are registers).

This patch modifies the AVX512 output to omit the unnecessary disambiguation
marker in these cases, and updates the test suite to expect this form of the
instructions.

The patch fixes the fails on Darwin and doesn't regress Linux [at least with
GNU assembler (GNU Binutils for Debian) 2.28].

I suppose it would be possible to guard the changes on TARGET_MACHO and
likewise the tests, but that seems even more mess.

Given that the LLVM backend as been updated to allow the disambiguation markers
on register instructions - an alternative is to require Darwin to use updated
tools (however since most of the folks building on Darwin are using Xcode, they
have to wait for the update to arrive).

----

So, I am not currently planning on posting this patch for approval - but it is
posted here in case that is the "only solution" for some user.

-----

I plan on publishing an update to my alternate assembler/linker pair that
incorporates the changes from LLVM-9 and isn't dependent on the release
schedule for Xcode.

Reply via email to