This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/80837] [7/8 regression] x86 accessing a member of a 16-byte atomic object generates terrible code: splitting/merging the bytes


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Can't reproduce.  It is true that we now emit the __atomic_load_16 call, but
that was intentional change, and it can't be easily tail call, because the
tailcall pass doesn't understand that the low 8 bytes of the 16 byte structure
are returned the same as the whole structure; I think that is pretty obscure
detail of the ABI, so I think it isn't worth teaching the tailcall pass about
such arch specific complexities.
But I certainly can't reproduce any significant value masking etc., tried
r235002 (+- gcc 6 branchpoint), r247000 (+- gcc 7 branchpoint) as well as
current trunk.
Unless it is something that has been broken on the 7 branch and later fixed.

But have just tried gcc 7.1.0 release and can't reproduce even there.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]