--- Comment #39 from dje at gcc dot gnu dot org 2006-09-11 17:05 ---
Subject: Bug 27287
Author: dje
Date: Mon Sep 11 17:05:15 2006
New Revision: 116850
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=116850
Log:
2006-09-11 Guenter Roeck [EMAIL PROTECTED]
David
--- Comment #38 from guenter at roeck-us dot net 2006-09-02 13:23 ---
(In reply to comment #36)
Subject: Re: [4.1/4.2 Regression] returning constant double
What is confusing to me is that the r-r case is using evmergehi
and evmergelo. This is placing the value in both
--- Comment #36 from dje at watson dot ibm dot com 2006-09-01 19:56 ---
Subject: Re: [4.1/4.2 Regression] returning constant double
What is confusing to me is that the r-r case is using evmergehi
and evmergelo. This is placing the value in both halves of the SIMD
register.
--- Comment #37 from mmitchel at gcc dot gnu dot org 2006-09-01 21:25
---
I'm marking this P2 since it's E500-specific (as far as I can tell). However,
it's clearly a significant issue.
--
mmitchel at gcc dot gnu dot org changed:
What|Removed
--- Comment #34 from dje at watson dot ibm dot com 2006-08-31 13:50 ---
Subject: Re: [4.1/4.2 Regression] returning constant double
guenter at roeck-us dot net writes:
guenter Hmm ... what would be the point ? evlwwsplat copies 32 bit memory
content into
guenter the upper and lower
--- Comment #35 from dje at watson dot ibm dot com 2006-08-31 14:23 ---
Subject: Re: [4.1/4.2 Regression] returning constant double
guenter at roeck-us dot net writes:
guenter Hmm ... what would be the point ? evlwwsplat copies 32 bit memory
content into
guenter the upper and lower
--- Comment #27 from guenter at roeck-us dot net 2006-08-30 15:16 ---
Created an attachment (id=12154)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12154action=view)
possible patch
This might be a possible patch. It reverts to the original insn declaration,
except for replacing
--- Comment #28 from guenter at roeck-us dot net 2006-08-30 18:00 ---
Created an attachment (id=12158)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12158action=view)
Another possible patch
Another possible patch. This one retains m-r handling, and thus produces
somewhat more
--- Comment #29 from dje at watson dot ibm dot com 2006-08-30 18:08 ---
Subject: Re: [4.1/4.2 Regression] returning constant double
Yes, I was testing out the same change as your second patch. That
looks reasonable if it works.
By the way, the use of %H in the frob
--- Comment #30 from dje at watson dot ibm dot com 2006-08-30 18:42 ---
Subject: Re: [4.1/4.2 Regression] returning constant double
In other words, should the lwz actually be evlwwsplat?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27287
--- Comment #31 from guenter at roeck-us dot net 2006-08-30 20:40 ---
By the way, the use of %H in the frob patterns is completely
wrong and should be removed. %H does not mean high register.
I did wonder about that, since it does not seem to be used elsewhere,
but I did
--- Comment #32 from dje at gcc dot gnu dot org 2006-08-31 02:36 ---
I do not mean one evlwwsplat. I mean two in place of the two lwz, to
correspond to the evmergelo/evmergehi pair.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27287
--- Comment #33 from guenter at roeck-us dot net 2006-08-31 05:15 ---
(In reply to comment #32)
I do not mean one evlwwsplat. I mean two in place of the two lwz, to
correspond to the evmergelo/evmergehi pair.
Hmm ... what would be the point ? evlwwsplat copies 32 bit memory
--- Comment #25 from pinskia at gcc dot gnu dot org 2006-08-29 20:51
---
(In reply to comment #23)
Here is a test case:
Thanks for the small testcase.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #26 from dje at gcc dot gnu dot org 2006-08-29 21:09 ---
The RTL looks like:
(code_label 34 33 35 2 [0 uses])
(note 35 34 0 NOTE_INSN_BASIC_BLOCK)
;; return val
(insn 36 35 37 (set (subreg:DF (reg:DI 136) 0)
(reg:DF 122 [ val ])) -1 (nil)
(nil))
(insn 37 36
--- Comment #16 from edmar at freescale dot com 2006-07-14 17:19 ---
With the *correct* patch applied my regression tests are back to normal, and
no sign of new issues.
Sorry for the previous confusion...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27287
--- Comment #17 from dje at gcc dot gnu dot org 2006-07-14 17:44 ---
Subject: Bug 27287
Author: dje
Date: Fri Jul 14 17:44:27 2006
New Revision: 115451
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=115451
Log:
2006-07-14 Eliot Dresselhaus [EMAIL PROTECTED]
PR
--- Comment #9 from edmar at freescale dot com 2006-07-13 16:08 ---
I tried the patch on comment 7 on gcc main line from yesterday. It did not work
for me:
foo.c: In function 'foo':
foo.c:1: error: unrecognizable insn:
(insn 11 10 12 3 (set (subreg:DF (reg:DI 121) 0)
--- Comment #10 from dje at watson dot ibm dot com 2006-07-13 16:31 ---
Subject: Re: [4.1/4.2 Regression] returning constant double
edmar at freescale dot com writes:
edmar I tried the patch on comment 7 on gcc main line from yesterday. It did
not work
edmar for me:
Tried
--- Comment #11 from edmar at freescale dot com 2006-07-13 18:01 ---
I tested with both examples. Both fails with the same ICE.
I am sure I am using the right compiler, because I invoked it explictitly with:
./install_area/gcc-trunk-20060712-e500v2/bin/powerpc-unknown-linux-gnuspe-gcc
--- Comment #12 from dje at watson dot ibm dot com 2006-07-13 19:58 ---
Subject: Re: [4.1/4.2 Regression] returning constant double
edmar at freescale dot com writes:
edmar And to kill the last shread of doubt, here I am using the xgcc present
on the
edmar very same build
--- Comment #13 from edmar at freescale dot com 2006-07-13 20:09 ---
What about now:
/local/gnu_toolchain/build_area/obj_gcc-trunk_e500v2/gcc/xgcc
-B/local/gnu_toolchain/build_area/obj_gcc-trunk_e500v2/gcc/ -O2 -c foo.c
foo.c: In function 'f':
foo.c:1: error: unrecognizable insn:
(insn
--- Comment #14 from dje at watson dot ibm dot com 2006-07-13 20:36 ---
Subject: Re: [4.1/4.2 Regression] returning constant double
What, exactly, is your testcase foo.c? The example at the top of
PR 28287?
$ cat foo.c
double f (void) { return 0; }
$ ./xgcc -B./ -O2 -S
--- Comment #15 from edmar at freescale dot com 2006-07-13 20:48 ---
Ahhha, I found the problem. My patch is wrong:
This line
+ (match_operand:DF 1 register_operand r,m))]
should read
+ (match_operand:DF 1 input_operand r,m))]
I don't know how I made this mess, I will try
--- Comment #4 from pinskia at gcc dot gnu dot org 2006-07-08 02:28 ---
Confirmed.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #5 from pinskia at gcc dot gnu dot org 2006-07-08 02:29 ---
*** Bug 27875 has been marked as a duplicate of this bug. ***
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #6 from pinskia at gcc dot gnu dot org 2006-07-08 02:34 ---
Just for future reference this was orginally reported at:
http://gcc.gnu.org/ml/gcc/2006-04/msg00463.html
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27287
--- Comment #7 from pinskia at gcc dot gnu dot org 2006-07-08 02:36 ---
Also reported here:
http://gcc.gnu.org/ml/gcc-patches/2006-04/msg00823.html
Which was CC'd to Aldy and there was no answer at that point :(.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27287
--- Comment #8 from dje at gcc dot gnu dot org 2006-07-08 03:13 ---
The patch looks consistent with the rest of the e500 design, although I am not
familiar enough with the e500 ISA to determine if the code will be correct
under all circumstances. I'm willing to approve the patch if
29 matches
Mail list logo