This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/81423] [6/7/8 Regression] Wrong code at -O2
- From: "segher at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 19 Jul 2017 19:31:58 +0000
- Subject: [Bug rtl-optimization/81423] [6/7/8 Regression] Wrong code at -O2
- Auto-submitted: auto-generated
- References: <bug-81423-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81423
--- Comment #8 from Segher Boessenkool <segher at gcc dot gnu.org> ---
Author: segher
Date: Wed Jul 19 19:31:26 2017
New Revision: 250365
URL: https://gcc.gnu.org/viewcvs?rev=250365&root=gcc&view=rev
Log:
combine: Fix for PR81423
We here have an AND of a SUBREG of an LSHIFTRT. If that SUBREG is
paradoxical, the extraction we form is the length of the size of the
inner mode, which includes some bits that should not be in the result.
Just give up in that case.
PR rtl-optimization/81423
* combine.c (make_compound_operation_int): Don't try to optimize
the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/combine.c