projects
/
oota-llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
da91bdc
)
Only to vector shuffle for {x,x,y,y} cases when SCALAR_TO_VECTOR is free.
author
Evan Cheng
<evan.cheng@apple.com>
Fri, 24 Mar 2006 18:45:20 +0000
(18:45 +0000)
committer
Evan Cheng
<evan.cheng@apple.com>
Fri, 24 Mar 2006 18:45:20 +0000
(18:45 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27071
91177308
-0d34-0410-b5e6-
96231b3b80d8
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
patch
|
blob
|
history
diff --git
a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index dfafb70585f218a67fe554d02f21332ab42707ec..6acadc1349d83a5a85c1c0c2fc5316ffd53cd111 100644
(file)
--- a/
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@
-3209,7
+3209,8
@@
SDOperand SelectionDAGLegalize::ExpandBUILD_VECTOR(SDNode *Node) {
SDOperand ShuffleMask = DAG.getNode(ISD::BUILD_VECTOR, MaskVT, MaskVec);
// If the target supports VECTOR_SHUFFLE and this shuffle mask, use it.
- if (TLI.isShuffleLegal(Node->getValueType(0), ShuffleMask)) {
+ if (TLI.isShuffleLegal(Node->getValueType(0), ShuffleMask) &&
+ TLI.isOperationLegal(ISD::SCALAR_TO_VECTOR, Node->getValueType(0))) {
std::vector<SDOperand> Ops;
for(std::map<SDOperand,std::vector<unsigned> >::iterator I=Values.begin(),
E = Values.end(); I != E; ++I) {