https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108370
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Created attachment 55914 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55914&action=edit Patch Combined with the patch for PR 109960. We are able to optimize this correctly: _5 = bio_4(D)->bi_flags; _8 = _5 & 3; if (_8 != 0) goto <bb 3>; [66.50%] else goto <bb 4>; [33.50%] <bb 3> [local count: 714038312]: _1 = (int) mark_dirty_6(D); __bio_release_pages (bio_4(D), _1); [tail call]