Skip to content

Commit e9ccbcd

Browse files
author
Simon Moll
committed
VBBuilder::createSelect
1 parent 7dee855 commit e9ccbcd

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

llvm/include/llvm/IR/VPBuilder.h

+2
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ class VPBuilder {
6969
Value& CreateContiguousLoad(Type *ReturnTy, Value & Pointer, MaybeAlign Alignment);
7070
Value& CreateScatter(Value & Val, Value & PointerVec, MaybeAlign Alignment);
7171
Value& CreateGather(Type *ReturnTy, Value & PointerVec, MaybeAlign Alignment);
72+
Value &createSelect(Value &OnTrue, Value &OnFalse, Value &Mask, Value &Pivot,
73+
Twine Name = "");
7274
};
7375

7476
} // namespace llvm

llvm/lib/IR/VPBuilder.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -209,4 +209,13 @@ Value *VPBuilder::CreateVectorShift(Value *SrcVal, Value *Amount, Twine Name) {
209209
Name);
210210
}
211211

212+
Value &VPBuilder::createSelect(Value &OnTrue, Value &OnFalse, Value &Mask,
213+
Value &Pivot, Twine Name) {
214+
auto D = VPIntrinsic::getDeclarationForParams(
215+
&getModule(), Intrinsic::vp_select, OnTrue.getType(),
216+
{&OnTrue, &OnFalse, &Mask, &Pivot});
217+
return *Builder.CreateCall(
218+
D, {&OnTrue, &OnFalse, &Mask, &Pivot, &RequestEVL()}, Name);
219+
}
220+
212221
} // namespace llvm

0 commit comments

Comments
 (0)