Why isn't minmax branchless?

That would be a breaking change.

@ChenNingCong’s suggestion could still be implemented in a more soft sense by updating the docs to recommend only using ifelse for that certain subset of types. We could also have a little section on ifelse in the performance section of the manual.

Why do you say that? If you made ifelse generic, couldn’t you add methods to deal with more complex types and lower them to a series of select statements more intelligently?

And to ask a potentially dumb question: why can’t we make Julia’s frontend compiler aware of ifelse? What does making the compiler ‘aware’ mean?