summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp')
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp33
1 files changed, 0 insertions, 33 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
index 0d327795acf..d760101281a 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
@@ -255,39 +255,6 @@ Instruction *InstCombiner::visitExtractElementInst(ExtractElementInst &EI) {
Worklist.AddValue(EE);
return CastInst::Create(CI->getOpcode(), EE, EI.getType());
}
- } else if (SelectInst *SI = dyn_cast<SelectInst>(I)) {
- if (SI->hasOneUse()) {
- // TODO: For a select on vectors, it might be useful to do this if it
- // has multiple extractelement uses. For vector select, that seems to
- // fight the vectorizer.
-
- // If we are extracting an element from a vector select or a select on
- // vectors, create a select on the scalars extracted from the vector
- // arguments.
- Value *TrueVal = SI->getTrueValue();
- Value *FalseVal = SI->getFalseValue();
-
- Value *Cond = SI->getCondition();
- if (Cond->getType()->isVectorTy()) {
- Cond = Builder.CreateExtractElement(Cond,
- EI.getIndexOperand(),
- Cond->getName() + ".elt");
- }
-
- Value *V1Elem
- = Builder.CreateExtractElement(TrueVal,
- EI.getIndexOperand(),
- TrueVal->getName() + ".elt");
-
- Value *V2Elem
- = Builder.CreateExtractElement(FalseVal,
- EI.getIndexOperand(),
- FalseVal->getName() + ".elt");
- return SelectInst::Create(Cond,
- V1Elem,
- V2Elem,
- SI->getName() + ".elt");
- }
}
}
return nullptr;
OpenPOWER on IntegriCloud