summaryrefslogtreecommitdiff
path: root/lib/CodeGen/SelectionDAG/TargetLowering.cpp
diff options
context:
space:
mode:
authorMicah Villmow <villmow@gmail.com>2012-07-31 16:48:03 +0000
committerMicah Villmow <villmow@gmail.com>2012-07-31 16:48:03 +0000
commit683826765c45d7acd19e915a73b8c1b46c40a4eb (patch)
tree077234c58fc6f7e6d6e57d293ad4e2e384add00a /lib/CodeGen/SelectionDAG/TargetLowering.cpp
parent06bd8ca8c276d9bc20b192188224e1e5215666a0 (diff)
downloadllvm-683826765c45d7acd19e915a73b8c1b46c40a4eb.tar.gz
llvm-683826765c45d7acd19e915a73b8c1b46c40a4eb.tar.bz2
llvm-683826765c45d7acd19e915a73b8c1b46c40a4eb.tar.xz
Don't generate ordered or unordered comparison operations if it is not legal to do so.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161053 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/TargetLowering.cpp')
-rw-r--r--lib/CodeGen/SelectionDAG/TargetLowering.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index dff9b2c36a..172819369d 100644
--- a/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -2464,7 +2464,8 @@ TargetLowering::SimplifySetCC(EVT VT, SDValue N0, SDValue N1,
// Otherwise, we can't fold it. However, we can simplify it to SETUO/SETO
// if it is not already.
ISD::CondCode NewCond = UOF == 0 ? ISD::SETO : ISD::SETUO;
- if (NewCond != Cond)
+ if (NewCond != Cond && (DCI.isBeforeLegalizeOps()
+ || getCondCodeAction(NewCond, N0.getValueType()) == Legal))
return DAG.getSetCC(dl, VT, N0, N1, NewCond);
}