https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86520
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- >When this happens in the real code I'm compiling/execution Also if you are accessing device memory, you are required to use volatile to force the memory accesses not to combine.