[Bug target/97158] [nvptx] Error compiling atomic complex double
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Sep 23 07:21:51 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97158
--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tom de Vries <vries@gcc.gnu.org>:
https://gcc.gnu.org/g:ca52f937fff52c494ef2951490c1654750ef8157
commit r11-3383-gca52f937fff52c494ef2951490c1654750ef8157
Author: Tom de Vries <tdevries@suse.de>
Date: Tue Sep 22 13:16:39 2020 +0200
[nvptx] Handle move from DF subreg to DF reg in nvptx_output_mov_insn
When compiling test-case gcc.dg/atomic/c11-atomic-exec-1.c, we run into
these ptxas errors:
...
line 100; error: Rounding modifier required for instruction 'cvt'
line 105; error: Rounding modifier required for instruction 'cvt'
...
The problem is that this move:
...
//(insn 13 11 14 2
// (set (reg:DF 28 [ _9 ])
// (subreg:DF (reg:TI 22 [ _1 ]) 0)) 9 {*movdf_insn}
// (nil))
cvt.f64.u64 %r28, %r22$0;
...
is emitted as cvt.f64.u64, while it should be a mov.b64 instead.
Fix this by handling this case in nvptx_output_mov_insn.
Tested on nvptx.
gcc/ChangeLog:
PR target/97158
* config/nvptx/nvptx.c (nvptx_output_mov_insn): Handle move from
DF subreg to DF reg.
More information about the Gcc-bugs
mailing list