[Patch] PR rtl-optimization/87763 - generate more bfi instructions on aarch64
Steve Ellcey
sellcey@marvell.com
Fri Jan 25 22:16:00 GMT 2019
On Fri, 2019-01-25 at 10:32 +0000, Richard Earnshaw (lists) wrote:
>
> Do we need another variant pattern to handle the case where the
> insertion is into the top of the destination? In that case the
> immediate mask on the shifted operand is technically redundant as the
> bottom bits are known zero and there are no top bits.
I am not sure about this. Do you have an example where this might be
needed?
I updated my patch to address your other comments and have bootstrapped
and tested this on aarch64. Does this version look good for checkin?
I had to modify the two tests because with my new instructions we
sometimes generate bfi instructions where we used to generate bfxil
instructions. The only regression this is fixing is combine_bfi_1.c,
combine_bfxil.c was passing before but still needed to be changed in
order to keep passing.
Steve Ellcey
sellcey@marvell.com
2018-01-25 Steve Ellcey <sellcey@marvell.com>
PR rtl-optimization/87763
* config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
New prototype.
* config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
New function.
* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_shift):
New instruction.
(*aarch64_bfi<GPI:mode>4_noshift): Ditto.
2018-01-25 Steve Ellcey <sellcey@marvell.com>
PR rtl-optimization/87763
* gcc.target/aarch64/combine_bfi_1.c: Change some bfxil checks
to bfi.
* gcc.target/aarch64/combine_bfxil.c: Ditto.
More information about the Gcc-patches
mailing list