summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2017-09-19 17:19:45 +0000
committerCraig Topper <craig.topper@intel.com>2017-09-19 17:19:45 +0000
commit75370b9b49399a5487c94421e48a9f8720d844f3 (patch)
treeaada6920aadc3e37a1016e5be4362897a4120f62 /llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
parent50105d294241f2cd45b38c4304dda4f7df11abee (diff)
downloadbcm5719-llvm-75370b9b49399a5487c94421e48a9f8720d844f3.tar.gz
bcm5719-llvm-75370b9b49399a5487c94421e48a9f8720d844f3.zip
[X86] Convert X86ISD::SELECT to ISD::VSELECT just before instruction selection to avoid duplicate patterns
Similar to what we do for X86ISD::SHRUNKBLEND just turn X86ISD::SELECT into ISD::VSELECT. This allows us to remove the duplicated TRUNC patterns. Differential Revision: https://reviews.llvm.org/D38022 llvm-svn: 313644
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelDAGToDAG.cpp')
-rw-r--r--llvm/lib/Target/X86/X86ISelDAGToDAG.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
index aa09be2b24e..bec812bedfa 100644
--- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
+++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
@@ -2414,8 +2414,9 @@ void X86DAGToDAGISel::Select(SDNode *Node) {
ReplaceNode(Node, getGlobalBaseReg());
return;
+ case X86ISD::SELECT:
case X86ISD::SHRUNKBLEND: {
- // SHRUNKBLEND selects like a regular VSELECT.
+ // SHRUNKBLEND selects like a regular VSELECT. Same with X86ISD::SELECT.
SDValue VSelect = CurDAG->getNode(
ISD::VSELECT, SDLoc(Node), Node->getValueType(0), Node->getOperand(0),
Node->getOperand(1), Node->getOperand(2));
OpenPOWER on IntegriCloud