diff options
author | Craig Topper <craig.topper@gmail.com> | 2020-01-11 18:10:11 -0800 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2020-01-11 20:43:00 -0800 |
commit | d692f0f6c8c12316d559b9a638a2cb9fbd0c263d (patch) | |
tree | f0001875b82b664c80b855e619eafa582a28dfc7 /llvm/lib | |
parent | 569ccfc384a5434c35c09adba8c44c46014297e6 (diff) | |
download | bcm5719-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')
-rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 4 |
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 |