summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2014-12-25 07:49:20 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2014-12-25 07:49:20 +0000
commitfb81b93e175f355d3ee96a85c86ac27d75d8c7a9 (patch)
treea8c32f8c2bfd1066e161e6b842ca41b1095c0501 /llvm/lib/Transforms
parent2913eca4e2929a54bbe1ebe2faf421ba7651e601 (diff)
downloadbcm5719-llvm-fb81b93e175f355d3ee96a85c86ac27d75d8c7a9.tar.gz
bcm5719-llvm-fb81b93e175f355d3ee96a85c86ac27d75d8c7a9.zip
Masked Load/Store - Changed the order of parameters in intrinsics.
No functional changes. The documentation is coming. llvm-svn: 224829
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Vectorize/LoopVectorize.cpp20
1 files changed, 5 insertions, 15 deletions
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
index d0860c44c0e..d0457287099 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -1880,15 +1880,10 @@ void InnerLoopVectorizer::vectorizeMemoryInstruction(Instruction *Instr) {
Instruction *NewSI;
if (Legal->isMaskRequired(SI)) {
- Type *I8PtrTy =
- Builder.getInt8PtrTy(PartPtr->getType()->getPointerAddressSpace());
-
- Value *I8Ptr = Builder.CreateBitCast(PartPtr, I8PtrTy);
-
VectorParts Cond = createBlockInMask(SI->getParent());
SmallVector <Value *, 8> Ops;
- Ops.push_back(I8Ptr);
Ops.push_back(StoredVal[Part]);
+ Ops.push_back(VecPtr);
Ops.push_back(Builder.getInt32(Alignment));
Ops.push_back(Cond[Part]);
NewSI = Builder.CreateMaskedStore(Ops);
@@ -1915,23 +1910,18 @@ void InnerLoopVectorizer::vectorizeMemoryInstruction(Instruction *Instr) {
}
Instruction* NewLI;
+ Value *VecPtr = Builder.CreateBitCast(PartPtr,
+ DataTy->getPointerTo(AddressSpace));
if (Legal->isMaskRequired(LI)) {
- Type *I8PtrTy =
- Builder.getInt8PtrTy(PartPtr->getType()->getPointerAddressSpace());
-
- Value *I8Ptr = Builder.CreateBitCast(PartPtr, I8PtrTy);
-
VectorParts SrcMask = createBlockInMask(LI->getParent());
SmallVector <Value *, 8> Ops;
- Ops.push_back(I8Ptr);
- Ops.push_back(UndefValue::get(DataTy));
+ Ops.push_back(VecPtr);
Ops.push_back(Builder.getInt32(Alignment));
Ops.push_back(SrcMask[Part]);
+ Ops.push_back(UndefValue::get(DataTy));
NewLI = Builder.CreateMaskedLoad(Ops);
}
else {
- Value *VecPtr = Builder.CreateBitCast(PartPtr,
- DataTy->getPointerTo(AddressSpace));
NewLI = Builder.CreateAlignedLoad(VecPtr, Alignment, "wide.load");
}
propagateMetadata(NewLI, LI);
OpenPOWER on IntegriCloud