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.

Reply via email to