------- Additional Comments From pinskia at gcc dot gnu dot org 2005-02-22
00:55 -------
Does this testcase fail for you if so can you run a regression hunter on it for
the real patch:
/* This function gets the wrong answer (63 instead of 31) when compiled
with "-m64 -O1" on powerpc64-linux. */
extern void abort (void);
/* From 176.gcc in SPEC CPU2000. */
int
exact_log2_wide (x)
register unsigned int x;
{
unsigned int x4;
register int log;
if (x == 0) goto L6; else goto L0;
L0:;
if (x != (x & -x)) goto L6; else goto L8;
L17:;
log = 0;
L3:;
log = log + 1;
x4 = x4 >> 1;
if (x4 != 0) goto L3; else goto L18;
L6:;
log = -1;
L18:;
return log;
L8:;
x4 = x >> 1;
if (x4 != 0) goto L17; else goto L19;
L19:;
log = 0;
goto L18;
}
int
main ()
{
if (exact_log2_wide ((int) -2147483648) != 31)
abort ();
return 0;
}
Please use -O1 -fno-tree-dominator-opts as we know this is the most optimial
code anyways.
--
What |Removed |Added
----------------------------------------------------------------------------
Component|tree-optimization |rtl-optimization
Target Milestone|--- |4.0.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20134