diff options
| author | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2014-12-25 07:49:20 +0000 |
|---|---|---|
| committer | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2014-12-25 07:49:20 +0000 |
| commit | fb81b93e175f355d3ee96a85c86ac27d75d8c7a9 (patch) | |
| tree | a8c32f8c2bfd1066e161e6b842ca41b1095c0501 /llvm/lib/Transforms | |
| parent | 2913eca4e2929a54bbe1ebe2faf421ba7651e601 (diff) | |
| download | bcm5719-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.cpp | 20 |
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); |

