When forming SSE min and max nodes for UGE and ULE comparisons, it's
authorDan Gohman <gohman@apple.com>
Wed, 24 Feb 2010 06:52:40 +0000 (06:52 +0000)
committerDan Gohman <gohman@apple.com>
Wed, 24 Feb 2010 06:52:40 +0000 (06:52 +0000)
commite832693acbfc713bcaf44720efa8149e93a38027
treee44715f6b93875ca5ab04613a97111de6329d7e3
parent39516a632385cb8103c94fceb6cfed13897a24b4
When forming SSE min and max nodes for UGE and ULE comparisons, it's
necessary to swap the operands to handle NaN and negative zero properly.

Also, reintroduce logic for checking for NaN conditions when forming
SSE min and max instructions, fixed to take into consideration NaNs and
negative zeros. This allows forming min and max instructions in more
cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97025 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/SelectionDAG.h
include/llvm/CodeGen/SelectionDAGNodes.h
include/llvm/Constants.h
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/sse-minmax.ll