This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/35518] [4.4 Regression] FAIL: gcc.c-torture/execute/20040709-1.c execution at -O2 and above
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 31 Mar 2008 06:30:07 -0000
- Subject: [Bug tree-optimization/35518] [4.4 Regression] FAIL: gcc.c-torture/execute/20040709-1.c execution at -O2 and above
- References: <bug-35518-276@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from pinskia at gcc dot gnu dot org 2008-03-31 06:30 -------
retmeN is being miscompiled by SRA, at least for powerpc-darwin with a changed
MOVE_RATIO.
retmeN (x)
{
<unnamed-unsigned:29> x$i;
<unnamed-unsigned:23> x$j;
long long unsigned int SR.21;
<bb 2>:
x$j = x.j;
x$i = x.i;
x.j = x$j;
x.i = x$i;
SR.21 = VIEW_CONVERT_EXPR<long long unsigned int>(x);
<retval>.i = x$i;
<retval>.j = x$j;
<retval> = VIEW_CONVERT_EXPR<struct N>((long long unsigned int)
((<unnamed-unsigned:12>) (SR.21 >> 52) >> 4) << 52 | VIEW_CONVERT_EXPR<long
long unsigned int>(<retval>) & 4503599627370495);
return <retval>;
}
This also produces way crappy code rather just doing a non bit-field copy. I
don't know what SRA is trying to prove here. The Move ratio value I changed
rs6000 to is 5 and this is definitely more than 5 words.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Component|middle-end |tree-optimization
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2008-03-31 06:30:07
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35518