[AArch64][2/3] Recognise rev16 operations on SImode and DImode data
commitd049924de943f809fbec2111ab3e611693dcef89
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Apr 2014 15:26:28 +0000 (23 15:26 +0000)
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Apr 2014 15:26:28 +0000 (23 15:26 +0000)
tree2510b3a45cf0d83f6649c31498711958ba864a74
parent3ee551163e8eecd02539f39a4f7a14701eca35e1
[AArch64][2/3] Recognise rev16 operations on SImode and DImode data

       * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
       (rev16<mode>2_alt): Likewise.
       * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
       * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
       (aarch_rev16_shleft_mask_imm_p): Likewise.
       (aarch_rev16_p_1): Likewise.
       (aarch_rev16_p): Likewise.
       * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
       (aarch_rev16_shright_mask_imm_p): Likewise.
       (aarch_rev16_shleft_mask_imm_p): Likewise.

       * gcc.target/aarch64/rev16_1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209704 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.md
gcc/config/arm/aarch-common-protos.h
gcc/config/arm/aarch-common.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/rev16_1.c [new file with mode: 0644]