R600/SI: Don't promote f32 select to i32

This is nice for the instruction patterns, but it complicates
min / max matching. The select doesn't have the correct type and would
require looking through the bitcasts for the real float operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224092 91177308-0d34-0410-b5e6-96231b3b80d8
R600/SI: fmin/fmax_legacy are not associative

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224093 91177308-0d34-0410-b5e6-96231b3b80d8
R600: Fix min/max matching problems with unordered compares

The returned operand needs to be permuted for the unordered
compares. Also fix incorrectly producing fmin_legacy / fmax_legacy
for f64, which don't exist.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224094 91177308-0d34-0410-b5e6-96231b3b80d8