diff options
author | Simon Moll <simon.moll@emea.nec.com> | 2021-09-02 09:53:53 +0200 |
---|---|---|
committer | Simon Moll <simon.moll@emea.nec.com> | 2021-09-02 11:17:14 +0200 |
commit | ea2cdbf5e655ce157c2224f7d427229be55551cc (patch) | |
tree | 2dc2301e77f5ea118fbe75ad579f3bc7a9e487ec /llvm/lib/IR/IntrinsicInst.cpp | |
parent | e387c8c413e2127bc93950fb6d786290237b4a9f (diff) | |
download | llvm-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.cpp | 3 |
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, |