https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104364
--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> --- (In reply to Thomas Schwinge from comment #0) > 'nvptx-none/mgomp/libatomic/cas_1_.o' (complete diff): > > @@ -113,7 +113,7 @@ > .loc 3 80 9 > or.b64 %r61,%r60,%r39; > .loc 3 82 11 > -@ %r71 atom.cas.b64 %r62,[%r35],%r29,%r61; > +atom.cas.b64 %r62,[%r35],%r29,%r61; > mov.b64 {%r69,%r70},%r62; > shfl.idx.b32 %r69,%r69,%r68,31; > shfl.idx.b32 %r70,%r70,%r68,31; > Interesting. This could be fallout from nvptx_reorg_uniform_simt. Basically, the function assumes that atom.cas is predicable, which it's not (anymore). What is odd is that the resulting insn is still validated, I would have expected that to fail.