summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86ISelLowering.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2020-01-11 18:10:11 -0800
committerCraig Topper <craig.topper@gmail.com>2020-01-11 20:43:00 -0800
commitd692f0f6c8c12316d559b9a638a2cb9fbd0c263d (patch)
treef0001875b82b664c80b855e619eafa582a28dfc7 /llvm/lib/Target/X86/X86ISelLowering.cpp
parent569ccfc384a5434c35c09adba8c44c46014297e6 (diff)
downloadbcm5719-llvm-d692f0f6c8c12316d559b9a638a2cb9fbd0c263d.tar.gz
bcm5719-llvm-d692f0f6c8c12316d559b9a638a2cb9fbd0c263d.zip
[X86] Don't call LowerSETCC from LowerSELECT for STRICT_FSETCC/STRICT_FSETCCS nodes.
This causes the STRICT_FSETCC/STRICT_FSETCCS nodes to lowered early while lowering SELECT, but the output chain doesn't get connected. Then we visit the node again when it is its turn because we haven't replaced the use of the chain result. In the case of the fp128 libcall lowering, after D72341 this will cause the libcall to be emitted twice.
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelLowering.cpp')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 54cef318340..073b78b6ae6 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -22133,9 +22133,7 @@ SDValue X86TargetLowering::LowerSELECT(SDValue Op, SelectionDAG &DAG) const {
}
}
- if (Cond.getOpcode() == ISD::SETCC ||
- Cond.getOpcode() == ISD::STRICT_FSETCC ||
- Cond.getOpcode() == ISD::STRICT_FSETCCS) {
+ if (Cond.getOpcode() == ISD::SETCC) {
if (SDValue NewCond = LowerSETCC(Cond, DAG)) {
Cond = NewCond;
// If the condition was updated, it's possible that the operands of the
OpenPOWER on IntegriCloud