aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/IntrinsicInst.cpp
diff options
context:
space:
mode:
authorLorenzo Albano <loralb@posteo.net>2022-03-10 16:39:12 +0100
committerSimon Moll <simon.moll@emea.nec.com>2022-03-10 18:46:54 +0100
commit28cfa764c2e391f3ee0cd9395a04bf444dc9b840 (patch)
tree2de9fca42a2718c823ad79b3e139e9a5b9d5eae3 /llvm/lib/IR/IntrinsicInst.cpp
parent7a6a1655d83b3ff79d120e399d8b9cc7ad2b143c (diff)
downloadllvm-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.cpp8
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()});