[PR66776][PATCH][AARCH64] Add cmovdi_insn_uxtw pattern.

Renlin Li renlin.li@arm.com
Fri Oct 2 09:17:00 GMT 2015


Hi all,

This is a simple patch to add a new cmovdi_insn_uxtw rtx pattern to 
aarch64 backend.

For the following simple test case:

unsigned long long
foo (unsigned int a, unsigned int b, unsigned int c)
{
   return a ? b : c;
}

With this new pattern, the new code-generation will be:

     cmp    w0, wzr
     csel    w0, w1, w2, ne
     ret

Without the path, the old code-generation is like this:
         uxtw    x2, w2
         uxtw    x1, w1
         cmp     w0, wzr
         csel    x0, x2, x1, eq
         ret


aarch64-none-elf regression test Okay. Okay to commit?

Regards,
Renlin Li

gcc/ChangeLog:

2015-10-02  Renlin Li  <renlin.li@arm.com>

         PR target/66776
         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.

gcc/testsuite/ChangeLog:

2015-10-02  Renlin Li  <renlin.li@arm.com>

         PR target/66776
         * gcc.target/aarch64/pr66776.c: New.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: csel_uxtw.diff
Type: text/x-patch
Size: 1206 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20151002/a12e0701/attachment.bin>


More information about the Gcc-patches mailing list