]> git.ipfire.org Git - thirdparty/gcc.git/commit
[nvptx] Use bit-bucket operand for atom insns
authorTom de Vries <tdevries@suse.de>
Mon, 7 Mar 2022 13:23:03 +0000 (14:23 +0100)
committerTom de Vries <tdevries@suse.de>
Thu, 10 Mar 2022 11:19:47 +0000 (12:19 +0100)
commit3ebcc053a4bd32973762b671b444730baf558805
tree1705486c2f180351e33c058f0e8f7730fc24decd
parent248bbcb2c3212bcb9f2a485b591dd37371133402
[nvptx] Use bit-bucket operand for atom insns

For an atomic fetch operation that doesn't use the result:
...
  __atomic_fetch_add (p64, v64, MEMMODEL_RELAXED);
...
we currently emit:
...
  atom.add.u64 %r26, [%r25], %r27;
...

Detect the REG_UNUSED reg-note for %r26, and emit instead:
...
  atom.add.u64 _, [%r25], %r27;
...

Likewise for all atom insns.

Tested on nvptx.

gcc/ChangeLog:

2022-03-07  Tom de Vries  <tdevries@suse.de>

PR target/104815
* config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
modifier.
* config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.

gcc/testsuite/ChangeLog:

2022-03-07  Tom de Vries  <tdevries@suse.de>

PR target/104815
* gcc.target/nvptx/atomic-bit-bucket-dest.c: New test.
gcc/config/nvptx/nvptx.cc
gcc/config/nvptx/nvptx.md
gcc/testsuite/gcc.target/nvptx/atomic-bit-bucket-dest.c [new file with mode: 0644]