https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118514
--- Comment #5 from Alexandre Oliva <aoliva at gcc dot gnu.org> --- Interesting. Without ifcombine, we optimize the loop body to the same, but the load from b doesn't get pulled out to the loop header. I suppose ifcombine may need to propagate some annotation that the load may trap to the bitfield load.