Simplify demanded vector elements of a target-specific intrinsic.
Declared in <llvm/Transforms/InstCombine/InstCombiner.h>
std::optional<Value*>
targetSimplifyDemandedVectorEltsIntrinsic(
IntrinsicInst& II,
APInt DemandedElts,
APInt& UndefElts,
APInt& UndefElts2,
APInt& UndefElts3,
std::function<void(Instruction*, unsigned int, APInt, APInt&)> SimplifyAndSetOp);
An optional simplified value, or nullopt if unchanged.
| Name | Description |
|---|---|
| II | Intrinsic whose result elements are being demanded. |
| DemandedElts | Elements of the result that are demanded. |
| UndefElts | Output mask of elements known undef/poison. |
| UndefElts2 | Additional undef/poison element mask for operand 2. |
| UndefElts3 | Additional undef/poison element mask for operand 3. |
| SimplifyAndSetOp | Callback to simplify and rewrite an operand. |