https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85301
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed| |2018-04-09 Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Hmm, this looks like a missed jump threading to me - possibly DOM being confused about the BIT_FIELD_REF and the & 3 that appears with the bitfield test due to my much beloved optimize_bit_field_compare: if ((BIT_FIELD_REF <tick_nohz_idle_exit_ts, 8, 0> & 3) != 0) { now = ktime_get (); } if ((BIT_FIELD_REF <tick_nohz_idle_exit_ts, 8, 0> & 1) != 0) { __tick_nohz_idle_restart_tick (now); } vs. if (tick_nohz_idle_exit_ts.idle_active != 0 || tick_nohz_idle_exit_ts.tick_stopped != 0) { now = ktime_get (); } if (tick_nohz_idle_exit_ts.tick_stopped != 0) { __tick_nohz_idle_restart_tick (now); }