This is the mail archive of the
mailing list for the GCC project.
r242442 - in /trunk/gcc: ChangeLog combine.c
- From: rsandifo at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Tue, 15 Nov 2016 17:57:53 -0000
- Subject: r242442 - in /trunk/gcc: ChangeLog combine.c
Date: Tue Nov 15 17:57:53 2016
New Revision: 242442
Fix simplify_shift_const_1 handling of vector shifts
simplify_shift_const_1 handles both shifts of scalars by scalars
and shifts of vectors by scalars. For vectors this means that
each element is shifted by the same amount.
(a) the two cases weren't always distinguished, so we'd try
things for vectors that only made sense for scalars.
(b) a lot of the range and bitcount checks were based on the
bitsize or precision of the full shifted operand, rather
than the mode of each element.
Fixing (b) accidentally exposed more optimisation opportunities,
although that wasn't the point of the patch.
2016-11-15 Richard Sandiford <firstname.lastname@example.org>
Alan Hayward <email@example.com>
David Sherwood <firstname.lastname@example.org>
* combine.c (simplify_shift_const_1): Use the number of bits
in the inner mode to determine the range of the shift.
When handling shifts of vectors, skip any rules that apply
only to scalars.