------- 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