https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118316
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #1) > It comes down to optimizing: > ``` > unsigned f(unsigned len) > { > if (len > 1) > len &= 1; > return len; > } > ``` Interesting clang is able to optimize the above but not the loop.