diff options
| author | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2016-02-17 19:23:04 +0000 | 
|---|---|---|
| committer | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2016-02-17 19:23:04 +0000 | 
| commit | 88e76cad162cc79bd1e76deb0c17a75eb0cee767 (patch) | |
| tree | ef05a619c13219586b9f13db57bf7064e40eace3 /llvm/include | |
| parent | 61a7d629ecc118fb72c1e12b7319ee72c93f1c95 (diff) | |
| download | bcm5719-llvm-88e76cad162cc79bd1e76deb0c17a75eb0cee767.tar.gz bcm5719-llvm-88e76cad162cc79bd1e76deb0c17a75eb0cee767.zip  | |
Create masked gather and scatter intrinsics in Loop Vectorizer.
Loop vectorizer now knows to vectorize GEP and create masked gather and scatter intrinsics for random memory access.
The feature is enabled on AVX-512 target.
Differential Revision: http://reviews.llvm.org/D15690
llvm-svn: 261140
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/IR/IRBuilder.h | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/include/llvm/IR/IRBuilder.h b/llvm/include/llvm/IR/IRBuilder.h index 1b75c60631b..4d8622fede9 100644 --- a/llvm/include/llvm/IR/IRBuilder.h +++ b/llvm/include/llvm/IR/IRBuilder.h @@ -436,6 +436,14 @@ public:    CallInst *CreateMaskedStore(Value *Val, Value *Ptr, unsigned Align,                                Value *Mask); +  /// \brief Create a call to Masked Gather intrinsic +  CallInst *CreateMaskedGather(Value *Ptrs, unsigned Align, Value *Mask = 0, +                               Value *PassThru = 0, const Twine& Name = ""); + +  /// \brief Create a call to Masked Scatter intrinsic +  CallInst *CreateMaskedScatter(Value *Val, Value *Ptrs, unsigned Align, +                                Value *Mask = 0); +    /// \brief Create an assume intrinsic call that allows the optimizer to    /// assume that the provided condition will be true.    CallInst *CreateAssumption(Value *Cond);  | 

