http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57600
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- The main difficulty is deciding when this transformation is a good idea. A priori a<b&&a<c can be faster than a<min(b,c). Good cases: - if there is a min insn (like minsd for double on x86_64, but that might require finite-math-only); - if we are in a loop and b and c are invariants (not sure ifcombine is the right place for that). Or do we want to do the transformation always, and maybe have something later (in RTL?) to undo it if it didn't help? Note that in some experiments with more meat in the loop, having i<min(n1,n2) made the compiler not see a dominating i<n1 anymore and it lost some optimizations.