>> The biggest problem with this technique, from an optimization perspective, is that it creates an irreducible control-flow graph.
The technique is considered obsolete with todays compilers specifically because they can do loop optimizations like this without writing strange C code.
OTOH you never know what those wacky compiler guys are going to do. For example, it seems GCC hasn't been doing any vectorization on x86-64 with standard -O2 even though the ISA has supported SSE2 as a minimum from day one. This is being fixed (to some extent) in the next release.
The technique is considered obsolete with todays compilers specifically because they can do loop optimizations like this without writing strange C code.
OTOH you never know what those wacky compiler guys are going to do. For example, it seems GCC hasn't been doing any vectorization on x86-64 with standard -O2 even though the ISA has supported SSE2 as a minimum from day one. This is being fixed (to some extent) in the next release.