https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80837
--- Comment #5 from Peter Cordes <peter at cordes dot ca> --- (In reply to Jakub Jelinek from comment #4) > Can't reproduce. It is true that we now emit the __atomic_load_16 call, but > that was intentional change Yup. >, 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 Ok that's disappointing, but hopefully is very rare after inlining. > 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. I can't repro it locally with gcc7.1.1 either. This is the version info from -fverbose-asm on the godbolt.org link (which does still repro it) # GNU C++11 (GCC-Explorer-Build) version 7.1.0 (x86_64-linux-gnu) # compiled by GNU C version 5.4.0 20160609, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.16.1-GMP It's not present in the gcc7.2 build on Godbolt.org either. I asked Matt Godbolt what exact version the compiler explorer site is using for the gcc7.1.0 dropdown (https://github.com/mattgodbolt/compiler-explorer/issues/684). Hopefully he can help us track down a gcc SVN revision to repro it, or confirm that it was a misconfigured or buggy gcc or something. Just to rule out the possibility of a now-dormant bug lurking somewhere.