This is the mail archive of the
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
Date: Wed Nov 23 14:33:13 2016
New Revision: 242757
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.
* 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