On 05/02/2017 08:34 AM, Tamar Christina wrote:
Hi all,
r217118 added an optimization to combine ashiftrt and lshiftrt.
This same optimization can at the very least also apply to lshiftrt + lshiftrt
with the same constraints. i.e. that both operations are done for scalar modes,
that second operation operates on a subreg of the first one and that the shift
amount of the first operation is larger than the mode bitsize of the subreg.
This reduces
umull x1, w0, w1
lsr x1, x1, 32
lsr w1, w1, 5
to
umull x1, w0, w1
lsr x1, x1, 37
Bootstrapped on aarch64-none-linux-gnu and x86_64-linux
and reg-tested on aarch64-none-linux-gnu with no regressions.
OK for trunk?
Thanks,
Tamar
gcc/
2017-04-27 Tamar Christina <tamar.christ...@arm.com>
* simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
gcc/testsuite/
2017-04-27 Tamar Christina <tamar.christ...@arm.com>
* gcc.dg/lsr-div1.c: New testcase.
OK for the trunk.
Thanks,
Jeff