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

James Greenhalgh james.greenhalgh@arm.com
Fri Oct 2 10:28:00 GMT 2015


On Fri, Oct 02, 2015 at 10:17:11AM +0100, Renlin Li wrote:
> 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?

OK.

Thanks,
James

> 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.
> 



More information about the Gcc-patches mailing list