The select pattern recognition in ValueTracking (as used by InstCombine
and SelectionDAGBuilder) only knew about integer patterns. This teaches
it about minimum and maximum operations.
The semantics of the patterns it matches match the C99 minnum/maxnum
operations; namely that when presented with two operands one of which
being a QNaN, the non-QNaN operand is returned.
Use auto *, we know the type from the LHS.