https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71408
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> --- (Separately from the wrong code) some of the reads of c.f1 are represented as BIT_FIELD_REF <c, 32, 0> & 262143, which prevents us from optimizing it to a constant (others that are represented as c.f1 work just fine) :-( c.f1 = 7; c.f3 = 0; _1 = BIT_FIELD_REF <c, 32, 0>; _2 = _1 & 262143; if (_2 != 0)