[AArch64] PR rtl-optimization/68796 Add compare-of-zero_extract pattern
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Dec 2015 09:58:07 +0000 (09:58 +0000)
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Dec 2015 09:58:07 +0000 (09:58 +0000)
commit050a2b4030ef96a9005f917ed5b5b89a26f15fef
tree1e1e4a54f101c13a2881b2f56cec68b4866f8073
parenta991c8aa4dcc63ef2b5ff5d9fd6ad43d07d6cdc2
[AArch64] PR rtl-optimization/68796 Add compare-of-zero_extract pattern

PR rtl-optimization/68796
* config/aarch64/aarch64.md (*and<mode>3nr_compare0_zextract):
New pattern.
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle
ZERO_EXTRACT comparison with zero.
(aarch64_mask_from_zextract_ops): New function.
* config/aarch64/aarch64-protos.h (aarch64_mask_from_zextract_ops):
New prototype.

* gcc.target/aarch64/tst_3.c: New test.
* gcc.target/aarch64/tst_4.c: Likewise.

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