------- Comment #1 from pinskia at gcc dot gnu dot org 2005-12-24 04:38 ------- Better testcase which shows it also on the 3.4 branch: unsigned int __gmpfr_flags; int f (unsigned long int n) { int prephitmp3; int i; long unsigned int m; if (n == 0) prephitmp3 = -2; else { m = n; i = 0;
do { i = i + 1; m = m >> 1; } while (m != 0); prephitmp3 = i - 2; } __gmpfr_flags = __gmpfr_flags & 30; if (((int) (n >> prephitmp3) & 1) != 0) return 0; } This also shows up on the mainline with "-O2 -ftracer -fno-tree-dominator-opts". Confirmed, 3.3.6 actually worked fully with -O2 -ftracer so this is a regression from that version. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |ice-on-valid-code Known to fail|4.0.3 |4.0.3 3.4.5 4.1.0 4.2.0 Known to work|3.4.5 4.1.0 4.2.0 |3.3.6 Last reconfirmed|0000-00-00 00:00:00 |2005-12-24 04:38:07 date| | Summary|[4.0 Regression] |[3.4/4.0/4.1/4.2 Regression] |unrecognizable insn on |unrecognizable insn on |x86_64 with -O2 -ftracer |x86_64 with -O2 -ftracer ( - | |fno-tree-dominator-opts on | |the mainline) Target Milestone|--- |4.0.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25554