Skip to content

Commit dbcc139

Browse files
committed
[X86] Remove isel patterns that include a vselect/X86selects and a strict FP node.
A vselect+strictfp node is not equivalent to a masked operation. The exceptions of the strictfp node are not masked by a vselect after it so we can't match it to a masked operation. We already had a hack in IsLegalToFold to prevent these patterns from matching. This patch removes that hack and removes the patterns.
1 parent 85e2fa4 commit dbcc139

File tree

2 files changed

+393
-270
lines changed

2 files changed

+393
-270
lines changed

llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -581,12 +581,6 @@ X86DAGToDAGISel::IsProfitableToFold(SDValue N, SDNode *U, SDNode *Root) const {
581581
if (!N.hasOneUse())
582582
return false;
583583

584-
// FIXME: Temporary hack to prevent strict floating point nodes from
585-
// folding into masked operations illegally.
586-
if (U == Root && Root->getOpcode() == ISD::VSELECT &&
587-
N.getOpcode() != ISD::LOAD && N.getOpcode() != X86ISD::VBROADCAST_LOAD)
588-
return false;
589-
590584
if (N.getOpcode() != ISD::LOAD)
591585
return true;
592586

0 commit comments

Comments
 (0)