> Compilers like XLC will actually even assume unsigned loop induction variables will not ovefrlow at O3
That's not exactly fair. The C standard guarantees that unsigned variables will overflow by wrapping, so if the compiler assumes such a loop won't terminate, it is not conformant.
Fun fact btw: GCC and LLVM are the only compilers I know of to assume loops can overflow at all when optimizations are on.
Compilers like XLC will actually even assume unsigned loop induction variables will not ovefrlow at O3, unless you give them special flags.
:)