summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
diff options
context:
space:
mode:
authorAnat Shemer <anat.shemer@intel.com>2013-04-22 20:51:10 +0000
committerAnat Shemer <anat.shemer@intel.com>2013-04-22 20:51:10 +0000
commit10260a75e3b06ae938689c174ff99fa7c3a27ce0 (patch)
treec1c2c3dabd3673e57abad0c80087dbe2a327cf43 /llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
parenteeb003491811f3bf08e1a8a625cb6adc5f6fdfc7 (diff)
downloadbcm5719-llvm-10260a75e3b06ae938689c174ff99fa7c3a27ce0.tar.gz
bcm5719-llvm-10260a75e3b06ae938689c174ff99fa7c3a27ce0.zip
Changed back (relative to commit 179786) the operations executed when extract(cast) is transformed to cast(extract). It uses the Builder class as before. In addition the result node is added to the Worklist, so all the previous extract users will become the new scalar cast users.
llvm-svn: 180045
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp')
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
index 79e16f13ad0..de8a3acdbd8 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
@@ -279,9 +279,9 @@ Instruction *InstCombiner::visitExtractElementInst(ExtractElementInst &EI) {
// Canonicalize extractelement(cast) -> cast(extractelement)
// bitcasts can change the number of vector elements and they cost nothing
if (CI->hasOneUse() && (CI->getOpcode() != Instruction::BitCast)) {
- Value *EE = InsertNewInstWith(
- ExtractElementInst::Create(CI->getOperand(0), EI.getIndexOperand()),
- *CI);
+ Value *EE = Builder->CreateExtractElement(CI->getOperand(0),
+ EI.getIndexOperand());
+ Worklist.AddValue(EE);
return CastInst::Create(CI->getOpcode(), EE, EI.getType());
}
}
OpenPOWER on IntegriCloud