https://gcc.gnu.org/bugzilla/show_bug.cgi?id=18446
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The gimple (tree) Level should be all well defined as we use abstract machine to define it and there are no zero or sign extend dealing with upper bits that are not part of the original program. For the RTL level, it is slightly different but we don't do as much loop optimizations there except for pull things out of the loop and some unrolling.