[nvptx] Add shf.{l,r}.wrap insn
authorTom de Vries <tdevries@suse.de>
Wed, 23 Feb 2022 08:39:53 +0000 (09:39 +0100)
committerTom de Vries <tdevries@suse.de>
Thu, 24 Feb 2022 08:18:47 +0000 (09:18 +0100)
commitc982d02ffe26fcd07280bf0f35f90df9be00716e
treeb89f92f6c201010e9f7966a026e7464a670f5a5b
parent7862f6ccd85a001e4d70abb00bb95d8c7846ba80
[nvptx] Add shf.{l,r}.wrap insn

Ptx contains funnel shift operations shf.l.wrap and shf.r.wrap that can be
used to implement 32-bit left or right rotate.

Add define_insns rotlsi3 and rotrsi3.

Tested on nvptx.

gcc/ChangeLog:

2022-02-23  Tom de Vries  <tdevries@suse.de>

* config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
"rotrsi3"): New define_insn.

gcc/testsuite/ChangeLog:

2022-02-23  Tom de Vries  <tdevries@suse.de>

* gcc.target/nvptx/rotate-run.c: New test.
* gcc.target/nvptx/rotate.c: New test.
gcc/config/nvptx/nvptx.md
gcc/testsuite/gcc.target/nvptx/rotate-run.c [new file with mode: 0644]
gcc/testsuite/gcc.target/nvptx/rotate.c [new file with mode: 0644]