Lines Matching defs:HexagonVectorCombine
1 //===-- HexagonVectorCombine.cpp ------------------------------------------===//
8 // HexagonVectorCombine is a utility class implementing a variety of functions
72 class HexagonVectorCombine {
74 HexagonVectorCombine(Function &F_, AliasAnalysis &AA_, AssumptionCache &AC_,
199 AlignVectors(const HexagonVectorCombine &HVC_) : HVC(HVC_) {}
209 AddrInfo(const HexagonVectorCombine &HVC, Instruction *I, Value *A, Type *T,
363 const HexagonVectorCombine &HVC;
421 HvxIdioms(const HexagonVectorCombine &HVC_) : HVC(HVC_) {
479 const HexagonVectorCombine &HVC;
2156 auto HexagonVectorCombine::run() -> bool {
2158 dbgs() << "Module before HexagonVectorCombine\n" << *F.getParent();
2170 << " after HexagonVectorCombine\n"
2176 auto HexagonVectorCombine::getIntTy(unsigned Width) const -> IntegerType * {
2180 auto HexagonVectorCombine::getByteTy(int ElemCount) const -> Type * {
2188 auto HexagonVectorCombine::getBoolTy(int ElemCount) const -> Type * {
2196 auto HexagonVectorCombine::getConstInt(int Val, unsigned Width) const
2201 auto HexagonVectorCombine::isZero(const Value *Val) const -> bool {
2207 auto HexagonVectorCombine::getIntValue(const Value *Val) const
2214 auto HexagonVectorCombine::isUndef(const Value *Val) const -> bool {
2218 auto HexagonVectorCombine::isTrue(const Value *Val) const -> bool {
2222 auto HexagonVectorCombine::isFalse(const Value *Val) const -> bool {
2226 auto HexagonVectorCombine::getHvxTy(Type *ElemTy, bool Pair) const
2239 auto HexagonVectorCombine::getSizeOf(const Value *Val, SizeKind Kind) const
2244 auto HexagonVectorCombine::getSizeOf(const Type *Ty, SizeKind Kind) const
2256 auto HexagonVectorCombine::getTypeAlignment(Type *Ty) const -> int {
2264 auto HexagonVectorCombine::length(Value *Val) const -> size_t {
2268 auto HexagonVectorCombine::length(Type *Ty) const -> size_t {
2274 auto HexagonVectorCombine::getNullValue(Type *Ty) const -> Constant * {
2282 auto HexagonVectorCombine::getFullValue(Type *Ty) const -> Constant * {
2290 auto HexagonVectorCombine::getConstSplat(Type *Ty, int Val) const
2301 auto HexagonVectorCombine::simplify(Value *V) const -> Value * {
2310 auto HexagonVectorCombine::insertb(IRBuilderBase &Builder, Value *Dst,
2336 auto HexagonVectorCombine::vlalignb(IRBuilderBase &Builder, Value *Lo,
2368 auto HexagonVectorCombine::vralignb(IRBuilderBase &Builder, Value *Lo,
2404 auto HexagonVectorCombine::concat(IRBuilderBase &Builder,
2437 auto HexagonVectorCombine::vresize(IRBuilderBase &Builder, Value *Val,
2457 auto HexagonVectorCombine::rescale(IRBuilderBase &Builder, Value *Mask,
2492 auto HexagonVectorCombine::vlsb(IRBuilderBase &Builder, Value *Val) const
2507 auto HexagonVectorCombine::vbytes(IRBuilderBase &Builder, Value *Val) const
2521 auto HexagonVectorCombine::subvector(IRBuilderBase &Builder, Value *Val,
2528 auto HexagonVectorCombine::sublo(IRBuilderBase &Builder, Value *Val) const
2535 auto HexagonVectorCombine::subhi(IRBuilderBase &Builder, Value *Val) const
2542 auto HexagonVectorCombine::vdeal(IRBuilderBase &Builder, Value *Val0,
2555 auto HexagonVectorCombine::vshuff(IRBuilderBase &Builder, Value *Val0,
2568 auto HexagonVectorCombine::createHvxIntrinsic(IRBuilderBase &Builder,
2625 auto HexagonVectorCombine::splitVectorElements(IRBuilderBase &Builder,
2681 auto HexagonVectorCombine::joinVectorElements(IRBuilderBase &Builder,
2726 auto HexagonVectorCombine::calculatePointerDifference(Value *Ptr0,
2828 auto HexagonVectorCombine::getNumSignificantBits(const Value *V,
2834 auto HexagonVectorCombine::getKnownBits(const Value *V,
2840 auto HexagonVectorCombine::isSafeToClone(const Instruction &In) const -> bool {
2851 auto HexagonVectorCombine::isSafeToMoveBeforeInBB(const Instruction &In,
2917 auto HexagonVectorCombine::isByteVecTy(Type *Ty) const -> bool {
2923 auto HexagonVectorCombine::getElementRange(IRBuilderBase &Builder, Value *Lo,
2970 HexagonVectorCombine HVC(F, AA, AC, DT, SE, TLI, TM);