This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Fix powerpc -mtune=cell -m64 and insn patterns (PR target/39226)
- From: David Edelsohn <dje dot gcc at gmail dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Ben Elliston <bje at au1 dot ibm dot com>, gcc-patches at gcc dot gnu dot org, Andrew Pinski <pinskia at gmail dot com>
- Date: Wed, 1 Apr 2009 11:03:18 -0400
- Subject: Re: [PATCH] Fix powerpc -mtune=cell -m64 and insn patterns (PR target/39226)
- References: <20090303135947.GF4561@tyan-ft48-01.lab.bos.redhat.com> <firstname.lastname@example.org> <1238387177.6336.7.camel@helios> <email@example.com>
We all are in agreement. Your patch is fine for mainline and 4.4 branch.
* config/rs6000/rs6000.md (andsi3_internal5_nomc,
anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
(booldi3_internal3): Use boolean_or_operator instead of
* gcc.dg/pr39226.c: New test.
On Tue, Mar 31, 2009 at 7:59 PM, Andrew Pinski <firstname.lastname@example.org> wrote:
> On Sun, Mar 29, 2009 at 9:26 PM, Ben Elliston <email@example.com> wrote:
>> On Tue, 2009-03-03 at 09:24 -0500, David Edelsohn wrote:
>>> I would like to hear Andrew and Ben's feedback about this change.
>> Sorry for the delay in responding .. this thread drifted to the bottom
>> of my inbox. :-( ?Jakub's argument seems reasonable to me. ?Andrew?
> I had also removed anddi3_internal2_nomc and anddi3_internal3_nomc to
> fix a bug on the PS3 toolchain too. ?So this is the same patch which I
> would have submitted.
> The short testcase which was found to cause a bug in the PS3 toolchain was:
> int g(void);
> int h(void);
> unsigned long long f(unsigned long long a, unsigned long long b)
> ?unsigned int c = -2;
> ?if (a & c)
> ?return g();
> ?else return h();
> It would ICE during reload as it would try to rematerize the constant
> and we had constants disable in the TOC (as an option). ?GCC could
> generate 0x00000000FFFFFFE in two instructions but that is a different
> issue and would avoid the ICE I had found.
> I agree this is the correct fix and the way forward.
> Andrew Pinski