[nvptx] Split up function ref plus const
authorTom de Vries <tdevries@suse.de>
Wed, 23 Sep 2020 15:35:23 +0000 (17:35 +0200)
committerTom de Vries <tdevries@suse.de>
Wed, 23 Sep 2020 20:45:14 +0000 (22:45 +0200)
commit37c3c297396af3229e9de35ef437f3614e0b4b87
treec91df8dfdce5c553b91ed3c5ffd631ae6df8e16f
parent74b27d8eedc7a4c0e8276345107790e6b3c023cb
[nvptx] Split up function ref plus const

With test-case gcc.c-torture/compile/pr92231.c, we run into:
...
nvptx-as: ptxas terminated with signal 11 [Segmentation fault], core dumped^M
compiler exited with status 1
FAIL: gcc.c-torture/compile/pr92231.c   -O0  (test for excess errors)
...
due to using a function reference plus constant as operand:
...
  mov.u64 %r24,bar+4096';
...

Fix this by splitting such an insn into:
...
  mov.u64 %r24,bar';
  add.u64 %r24,%r24,4096';
...

Tested on nvptx.

gcc/ChangeLog:

* config/nvptx/nvptx.md: Don't allow operand containing sum of
function ref and const.
gcc/config/nvptx/nvptx.md