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.