[AArch64] Handle AND+ASHIFT form of UBFIZ correctly in costs
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 14 Jun 2016 13:39:03 +0000 (13:39 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Tue, 14 Jun 2016 13:39:03 +0000 (13:39 +0000)
commit8c83f71d3b17a8bf136ca0243397dad75ea698f0
treeb5ebe211d89bb75e06aae3093f0f4a9f6892c9ce
parent124bed29851cb5ece3d1218c6113a0774ffc26a7
[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.

From-SVN: r237440
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.md