[AArch64] Handle AND+ASHIFT form of UBFIZ correctly in costs
commitb9c739977c1ab3b39ad04ece2b0e7c9102febfbd
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Jun 2016 13:39:03 +0000 (14 13:39 +0000)
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Jun 2016 13:39:03 +0000 (14 13:39 +0000)
treeb5ebe211d89bb75e06aae3093f0f4a9f6892c9ce
parent3d1e88c747e2dedd4f880e98ea7d00695cb5c849
[AArch64] Handle AND+ASHIFT form of UBFIZ correctly in costs

* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
New function.
(aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
mask+shift version.
* config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
New prototype.
* config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
matching condition with aarch64_mask_and_shift_for_ubfiz_p.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237440 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.md