This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r242757 - in /trunk/gcc: ChangeLog combine.c
- From: segher at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Wed, 23 Nov 2016 14:33:14 -0000
- Subject: r242757 - in /trunk/gcc: ChangeLog combine.c
Author: segher
Date: Wed Nov 23 14:33:13 2016
New Revision: 242757
URL: https://gcc.gnu.org/viewcvs?rev=242757&root=gcc&view=rev
Log:
combine: Convert subreg-of-lshiftrt to zero_extract properly (PR78390)
r242414, for PR77881, introduces some bugs (PR78390, PR78438, PR78477).
It all has the same root cause: that patch makes combine convert every
lowpart subreg of a logical shift right to a zero_extract. This cannot
work at all if it is not a constant shift, and it has to be a bit more
careful exactly which bits it extracts.
PR target/77881
PR bootstrap/78390
PR target/78438
PR bootstrap/78477
* combine.c (make_compound_operation_int): Do not convert a subreg of
a non-constant logical shift right to a zero_extract. Handle the case
where some zero bits have been shifted into the range covered by that
subreg.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/combine.c