11#include "llvm/IR/IntrinsicsSPIRV.h"
18 case Intrinsic::spv_generic_cast_to_ptr_explicit:
29 auto IntrID =
II->getIntrinsicID();
31 case Intrinsic::spv_generic_cast_to_ptr_explicit: {
33 unsigned DstAS =
II->getType()->getPointerAddressSpace();
34 return NewAS == DstAS ? NewV
44 return ST->canUseExtension(SPIRV::Extension::SPV_INTEL_masked_gather_scatter);
48 return ST->canUseExtension(SPIRV::Extension::SPV_INTEL_masked_gather_scatter);
uint64_t IntrinsicInst * II
static LLVM_ABI ConstantPointerNull * get(PointerType *T)
Static factory methods - Return objects of the specified value.
A wrapper class for inspecting calls to intrinsic functions.
static LLVM_ABI PointerType * get(Type *ElementType, unsigned AddressSpace)
This constructs a pointer to an object of the specified type in a numbered address space.
Value * rewriteIntrinsicWithAddressSpace(IntrinsicInst *II, Value *OldV, Value *NewV) const override
bool isLegalMaskedScatter(Type *DataType, Align Alignment) const override
bool collectFlatAddressOperands(SmallVectorImpl< int > &OpIndexes, Intrinsic::ID IID) const override
bool isLegalMaskedGather(Type *DataType, Align Alignment) const override
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
void push_back(const T &Elt)
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM_ABI unsigned getPointerAddressSpace() const
Get the address space of this pointer or pointer vector type.
LLVM Value Representation.
Type * getType() const
All values are typed, get the type of this value.
LLVMContext & getContext() const
All values hold a context through their type.
This is an optimization pass for GlobalISel generic memory operations.
This struct is a compact representation of a valid (non-zero power of two) alignment.