This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] combine: Allow combining two insns to two insns
- From: Christophe Lyon <christophe dot lyon at linaro dot org>
- To: Segher Boessenkool <segher at kernel dot crashing dot org>
- Cc: gcc Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 1 Aug 2018 12:52:40 +0200
- Subject: Re: [PATCH] combine: Allow combining two insns to two insns
- References: <firstname.lastname@example.org> <20180730160918.GY16221@gate.crashing.org> <CAKdteOZQyg8oOhp=w9h+6mMvhpd8nJpmyTVhQ=65F69wMHsgkQ@mail.gmail.com> <20180731135733.GC16221@gate.crashing.org> <CAKdteOZYc_Rb2SO3uARvDeknVESfntb1x2zJp9ZDJOZcO2tXaA@mail.gmail.com> <20180801093952.GH16221@gate.crashing.org>
On Wed, 1 Aug 2018 at 11:40, Segher Boessenkool
> On Wed, Aug 01, 2018 at 10:27:31AM +0200, Christophe Lyon wrote:
> > On Tue, 31 Jul 2018 at 15:57, Segher Boessenkool
> > <email@example.com> wrote:
> > > On Tue, Jul 31, 2018 at 02:34:06PM +0200, Christophe Lyon wrote:
> > > > Since this was committed, I've noticed regressions
> > > > on aarch64:
> > > > FAIL: gcc.dg/zero_bits_compound-1.c scan-assembler-not \\(and:
> > >
> > > This went from
> > > and w0, w0, 255
> > > lsl w1, w0, 8
> > > orr w0, w1, w0, lsl 20
> > > ret
> > > to
> > > and w1, w0, 255
> > > ubfiz w0, w0, 8, 8
> > > orr w0, w0, w1, lsl 20
> > > ret
> > > so it's neither an improvement nor a regression, just different code.
> > > The testcase wants no ANDs in the RTL.
> > I didn't try to manually regenerate the code before and after the patch,
> > but if there was "and w0, w0, 255" before the patch, why did the test pass?
> It wasn't an AND in RTL (it was a ZERO_EXTEND).
Indeed, I missed the -dP in the options.
> > > > on arm-none-linux-gnueabi
> > > > FAIL: gfortran.dg/actual_array_constructor_1.f90 -O1 execution test
> > >
> > > That sounds bad. Open a PR, maybe?
> > >
> > I've just filed PR86771