aboutsummaryrefslogtreecommitdiff
path: root/gcc/d/expr.cc
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2022-02-15 14:36:26 +0100
committerTom de Vries <tdevries@suse.de>2022-02-19 20:05:56 +0100
commit69cb3f2abb911acebfc7ffede2ee7151a3e14a59 (patch)
tree64d86cc4c708f0aed54b4b2187aca75bc3ec572a /gcc/d/expr.cc
parent9ed52438b8ca99a0dffe74da96c2281cbc9cbb4b (diff)
downloadgcc-69cb3f2abb911acebfc7ffede2ee7151a3e14a59.zip
gcc-69cb3f2abb911acebfc7ffede2ee7151a3e14a59.tar.gz
gcc-69cb3f2abb911acebfc7ffede2ee7151a3e14a59.tar.bz2
[nvptx] Use _ as destination operand of atom.exch
We currently generate this code for an atomic store: ... .reg.u32 %r21; atom.exch.b32 %r21,[%r22],%r23; ... where %r21 is set but unused. Use the ptx bit bucket operand '_' instead, such that we have: ... atom.exch.b32 _,[%r22],%r23; ... [ Note that the same problem still occurs for this code: ... void atomic_store (int *ptr, int val) { __atomic_exchange_n (ptr, val, MEMMODEL_RELAXED); } ... ] Tested on nvptx. gcc/ChangeLog: 2022-02-19 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn. * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): Rename to ... (define_insn "nvptx_atomic_store_sm70<mode>"): This. (define_insn "nvptx_atomic_store<mode>"): New define_insn. (define_expand "atomic_store<mode>"): Handle rename. Use nvptx_atomic_store instead of atomic_exchange. gcc/testsuite/ChangeLog: 2022-02-19 Tom de Vries <tdevries@suse.de> * gcc.target/nvptx/atomic-store-1.c: Update.
Diffstat (limited to 'gcc/d/expr.cc')
0 files changed, 0 insertions, 0 deletions