aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/IntrinsicInst.cpp
diff options
context:
space:
mode:
authorSimon Moll <simon.moll@emea.nec.com>2021-09-02 09:53:53 +0200
committerSimon Moll <simon.moll@emea.nec.com>2021-09-02 11:17:14 +0200
commitea2cdbf5e655ce157c2224f7d427229be55551cc (patch)
tree2dc2301e77f5ea118fbe75ad579f3bc7a9e487ec /llvm/lib/IR/IntrinsicInst.cpp
parente387c8c413e2127bc93950fb6d786290237b4a9f (diff)
downloadllvm-ea2cdbf5e655ce157c2224f7d427229be55551cc.zip
llvm-ea2cdbf5e655ce157c2224f7d427229be55551cc.tar.gz
llvm-ea2cdbf5e655ce157c2224f7d427229be55551cc.tar.bz2
[VP] Declaration and docs for vp.select intrinsic
llvm.vp.select extends the regular select instruction with an explicit vector length (%evl). All lanes with indexes at and above %evl are undefined. Lanes below %evl are taken from the first input where the mask is true and from the second input otherwise. Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D105351
Diffstat (limited to 'llvm/lib/IR/IntrinsicInst.cpp')
-rw-r--r--llvm/lib/IR/IntrinsicInst.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/IR/IntrinsicInst.cpp b/llvm/lib/IR/IntrinsicInst.cpp
index 7a7ff91..56dfedc 100644
--- a/llvm/lib/IR/IntrinsicInst.cpp
+++ b/llvm/lib/IR/IntrinsicInst.cpp
@@ -482,6 +482,9 @@ Function *VPIntrinsic::getDeclarationForParams(Module *M, Intrinsic::ID VPID,
VPFunc = Intrinsic::getDeclaration(M, VPID, OverloadTy);
break;
}
+ case Intrinsic::vp_select:
+ VPFunc = Intrinsic::getDeclaration(M, VPID, {Params[1]->getType()});
+ break;
case Intrinsic::vp_load:
VPFunc = Intrinsic::getDeclaration(
M, VPID,