[nvptx] Emit mov.u32 instead of cvt.u32.u32 for truncsiqi2
authorTom de Vries <tdevries@suse.de>
Thu, 1 Oct 2020 09:07:20 +0000 (11:07 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 1 Oct 2020 19:22:16 +0000 (21:22 +0200)
commitb3ec0de08250d7e0599e36895d5cb727016c81d3
treea2dd483822dceed49f226da05ab31ab821f3191f
parentc2978b3405884e38429c1937f416753ca88d3cd6
[nvptx] Emit mov.u32 instead of cvt.u32.u32 for truncsiqi2

When running:
...
$ gcc.sh src/gcc/testsuite/gcc.target/nvptx/abi-complex-arg.c -S -dP
...
we have in abi-complex-arg.s:
...
//(insn 3 5 4 2
//  (set
//    (reg:QI 23)
//    (truncate:QI (reg:SI 22))) "abi-complex-arg.c":38:1 29 {truncsiqi2}
//  (nil))
                cvt.u32.u32     %r23, %r22;     // 3    [c=4]  truncsiqi2/0
...

The cvt.u32.u32 can be written shorter and clearer as mov.u32.

Fix this in define_insn "truncsi<QHIM>2".

Tested on nvptx.

gcc/ChangeLog:

2020-10-01  Tom de Vries  <tdevries@suse.de>

PR target/80845
* config/nvptx/nvptx.md (define_insn "truncsi<QHIM>2"): Emit mov.u32
instead of cvt.u32.u32.
gcc/config/nvptx/nvptx.md