diff options
author | Lorenzo Albano <loralb@posteo.net> | 2022-03-10 16:39:12 +0100 |
---|---|---|
committer | Simon Moll <simon.moll@emea.nec.com> | 2022-03-10 18:46:54 +0100 |
commit | 28cfa764c2e391f3ee0cd9395a04bf444dc9b840 (patch) | |
tree | 2de9fca42a2718c823ad79b3e139e9a5b9d5eae3 /llvm/lib/IR/IntrinsicInst.cpp | |
parent | 7a6a1655d83b3ff79d120e399d8b9cc7ad2b143c (diff) | |
download | llvm-28cfa764c2e391f3ee0cd9395a04bf444dc9b840.zip llvm-28cfa764c2e391f3ee0cd9395a04bf444dc9b840.tar.gz llvm-28cfa764c2e391f3ee0cd9395a04bf444dc9b840.tar.bz2 |
[VP] Strided loads/stores
This patch introduces two new experimental IR intrinsics and SDAG nodes
to represent vector strided loads and stores.
Reviewed By: simoll
Differential Revision: https://reviews.llvm.org/D114884
Diffstat (limited to 'llvm/lib/IR/IntrinsicInst.cpp')
-rw-r--r-- | llvm/lib/IR/IntrinsicInst.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/IR/IntrinsicInst.cpp b/llvm/lib/IR/IntrinsicInst.cpp index bfcc732..4850e30 100644 --- a/llvm/lib/IR/IntrinsicInst.cpp +++ b/llvm/lib/IR/IntrinsicInst.cpp @@ -505,6 +505,10 @@ Function *VPIntrinsic::getDeclarationForParams(Module *M, Intrinsic::ID VPID, VPFunc = Intrinsic::getDeclaration( M, VPID, {ReturnType, Params[0]->getType()}); break; + case Intrinsic::experimental_vp_strided_load: + VPFunc = + Intrinsic::getDeclaration(M, VPID, {ReturnType, Params[1]->getType()}); + break; case Intrinsic::vp_gather: VPFunc = Intrinsic::getDeclaration( M, VPID, {ReturnType, Params[0]->getType()}); @@ -513,6 +517,10 @@ Function *VPIntrinsic::getDeclarationForParams(Module *M, Intrinsic::ID VPID, VPFunc = Intrinsic::getDeclaration( M, VPID, {Params[0]->getType(), Params[1]->getType()}); break; + case Intrinsic::experimental_vp_strided_store: + VPFunc = Intrinsic::getDeclaration( + M, VPID, {Params[0]->getType(), Params[2]->getType()}); + break; case Intrinsic::vp_scatter: VPFunc = Intrinsic::getDeclaration( M, VPID, {Params[0]->getType(), Params[1]->getType()}); |