Home
last modified time | relevance | path

Searched refs:ShuffleVectorInst (Results 1 – 25 of 83) sorted by relevance

1234

/src/contrib/llvm-project/llvm/lib/CodeGen/
H A DInterleavedAccessPass.cpp125 ArrayRef<ShuffleVectorInst *> Shuffles);
132 bool replaceBinOpShuffles(ArrayRef<ShuffleVectorInst *> BinOpShuffles,
133 SmallVectorImpl<ShuffleVectorInst *> &Shuffles,
219 if (ShuffleVectorInst::isDeInterleaveMaskOfFactor(Mask, Factor, Index)) in isDeInterleaveMask()
237 static bool isReInterleaveMask(ShuffleVectorInst *SVI, unsigned &Factor, in isReInterleaveMask()
262 SmallVector<ShuffleVectorInst *, 4> Shuffles; in lowerInterleavedLoad()
266 SmallSetVector<ShuffleVectorInst *, 4> BinOpShuffles; in lowerInterleavedLoad()
276 auto *SVI = dyn_cast<ShuffleVectorInst>(U); in lowerInterleavedLoad()
280 BinOpShuffles.insert(cast<ShuffleVectorInst>(SVI)); in lowerInterleavedLoad()
284 auto *SVI = dyn_cast<ShuffleVectorInst>(User); in lowerInterleavedLoad()
[all …]
H A DInterleavedLoadCombinePass.cpp670 ShuffleVectorInst *SVI = nullptr;
714 ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(V); in compute()
787 static bool computeFromSVI(ShuffleVectorInst *SVI, VectorInfo &Result, in computeFromSVI()
1267 if (auto SVI = dyn_cast<ShuffleVectorInst>(&I)) { in run()
H A DComplexDeinterleavingPass.cpp1653 auto *SVI = dyn_cast<ShuffleVectorInst>(RootI); in identifyRoot()
1687 auto *RealShuffle = dyn_cast<ShuffleVectorInst>(Real); in identifyDeinterleave()
1688 auto *ImagShuffle = dyn_cast<ShuffleVectorInst>(Imag); in identifyDeinterleave()
1728 auto CheckType = [&](ShuffleVectorInst *Shuffle) { in identifyDeinterleave()
1741 auto CheckDeinterleavingShuffle = [&](ShuffleVectorInst *Shuffle) -> bool { in identifyDeinterleave()
1795 } else if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) { in identifySplat()
/src/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineVectorOps.cpp340 ShuffleVectorInst *Shuffle = cast<ShuffleVectorInst>(UserInstr); in findDemandedEltsBySingleUser()
544 } else if (auto *SVI = dyn_cast<ShuffleVectorInst>(I)) { in visitExtractElementInst()
743 auto *WideVec = new ShuffleVectorInst(ExtVecOp, ExtendMask); in replaceExtractElements()
1185 static bool isShuffleEquivalentToSelect(ShuffleVectorInst &Shuf) { in isShuffleEquivalentToSelect()
1282 return new ShuffleVectorInst(FirstIE, Mask); in foldInsSequenceIntoSplat()
1289 auto *Shuf = dyn_cast<ShuffleVectorInst>(InsElt.getOperand(0)); in foldInsEltIntoSplat()
1319 return new ShuffleVectorInst(Op0, NewMask); in foldInsEltIntoSplat()
1326 auto *Shuf = dyn_cast<ShuffleVectorInst>(InsElt.getOperand(0)); in foldInsEltIntoIdentityShuffle()
1371 return new ShuffleVectorInst(X, Shuf->getOperand(1), NewMask); in foldInsEltIntoIdentityShuffle()
1412 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(InsElt.getOperand(0))) { in foldConstantInsEltIntoShuffle()
[all …]
H A DInstCombineInternal.h176 Instruction *simplifyBinOpSplats(ShuffleVectorInst &SVI);
177 Instruction *visitShuffleVectorInst(ShuffleVectorInst &SVI);
593 Instruction *foldSelectShuffle(ShuffleVectorInst &Shuf);
H A DInstCombineCasts.cpp112 Res = new ShuffleVectorInst(Op0, Op1, in EvaluateInDifferentType()
113 cast<ShuffleVectorInst>(I)->getShuffleMask()); in EvaluateInDifferentType()
222 return new ShuffleVectorInst(CastX, Mask); in commonCastTransforms()
632 auto *Shuf = dyn_cast<ShuffleVectorInst>(Trunc.getOperand(0)); in shrinkSplatShuffle()
639 return new ShuffleVectorInst(NarrowOp, Shuf->getShuffleMask()); in shrinkSplatShuffle()
2179 return new ShuffleVectorInst(InVal, V2, ShuffleMask); in optimizeVectorResizeWithIntegerBitCasts()
2753 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(Src)) { in visitBitCast()
2775 return new ShuffleVectorInst(LHS, RHS, Shuf->getShuffleMask()); in visitBitCast()
/src/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86InterleavedAccess.cpp55 ArrayRef<ShuffleVectorInst *> Shuffles;
110 ArrayRef<ShuffleVectorInst *> Shuffs, in X86InterleavedAccessGroup()
170 assert((isa<LoadInst>(VecInst) || isa<ShuffleVectorInst>(VecInst)) && in decompose()
180 if (auto *SVI = dyn_cast<ShuffleVectorInst>(VecInst)) { in decompose()
187 cast<ShuffleVectorInst>(Builder.CreateShuffleVector( in decompose()
807 LoadInst *LI, ArrayRef<ShuffleVectorInst *> Shuffles, in lowerInterleavedLoad()
824 ShuffleVectorInst *SVI, in lowerInterleavedStore()
840 ArrayRef<ShuffleVectorInst *> Shuffles = ArrayRef(SVI); in lowerInterleavedStore()
H A DX86PartialReduction.cpp390 auto *Shuffle = dyn_cast<ShuffleVectorInst>(LHS); in matchAddReduction()
394 Shuffle = dyn_cast<ShuffleVectorInst>(RHS); in matchAddReduction()
/src/contrib/llvm-project/llvm/lib/IR/
H A DInstructions.cpp1661 ShuffleVectorInst::ShuffleVectorInst(Value *V1, Value *Mask, const Twine &Name, in ShuffleVectorInst() function in ShuffleVectorInst
1663 : ShuffleVectorInst(V1, createPlaceholderForShuffleVector(V1), Mask, Name, in ShuffleVectorInst()
1666 ShuffleVectorInst::ShuffleVectorInst(Value *V1, ArrayRef<int> Mask, in ShuffleVectorInst() function in ShuffleVectorInst
1669 : ShuffleVectorInst(V1, createPlaceholderForShuffleVector(V1), Mask, Name, in ShuffleVectorInst()
1672 ShuffleVectorInst::ShuffleVectorInst(Value *V1, Value *V2, Value *Mask, in ShuffleVectorInst() function in ShuffleVectorInst
1678 ShuffleVector, OperandTraits<ShuffleVectorInst>::op_begin(this), in ShuffleVectorInst()
1679 OperandTraits<ShuffleVectorInst>::operands(this), InsertBefore) { in ShuffleVectorInst()
1691 ShuffleVectorInst::ShuffleVectorInst(Value *V1, Value *V2, ArrayRef<int> Mask, in ShuffleVectorInst() function in ShuffleVectorInst
1697 ShuffleVector, OperandTraits<ShuffleVectorInst>::op_begin(this), in ShuffleVectorInst()
1698 OperandTraits<ShuffleVectorInst>::operands(this), InsertBefore) { in ShuffleVectorInst()
[all …]
H A DInstruction.cpp845 if (const ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(I1)) in hasSameSpecialState()
847 cast<ShuffleVectorInst>(I2)->getShuffleMask(); in hasSameSpecialState()
H A DConstantsContext.h159 assert(ShuffleVectorInst::isValidOperands(C1, C2, Mask) && in ShuffleVectorConstantExpr()
165 ShuffleVectorInst::convertShuffleMaskForBitcode(Mask, getType()); in ShuffleVectorConstantExpr()
/src/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVectorCombine.cpp294 auto *Shuf = cast<ShuffleVectorInst>(&I); in widenSubvectorLoad()
1640 if (ShuffleVectorInst::isIdentityMask(NewMask, NumSrcElts)) { in foldShuffleOfShuffles()
1680 while (auto *SV = dyn_cast<ShuffleVectorInst>(U->get())) { in lookThroughShuffles()
2025 ShuffleVectorInst *Shuffle = nullptr; in foldShuffleFromReductions()
2046 } else if (auto *SV = dyn_cast<ShuffleVectorInst>(CI)) { in foldShuffleFromReductions()
2189 auto *SVI = cast<ShuffleVectorInst>(&I); in foldSelectShuffle()
2207 !(isa<ShuffleVectorInst>(U) && in foldSelectShuffle()
2219 SmallVector<ShuffleVectorInst *> Shuffles; in foldSelectShuffle()
2222 auto *SV = dyn_cast<ShuffleVectorInst>(U); in foldSelectShuffle()
2243 for (ShuffleVectorInst *SV : Shuffles) { in foldSelectShuffle()
[all …]
/src/contrib/llvm-project/llvm/lib/Bitcode/Writer/
H A DValueEnumerator.cpp165 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in orderModule()
299 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in predictUseListOrder()
470 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in ValueEnumerator()
1085 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in incorporateFunction()
/src/contrib/llvm-project/llvm/lib/Target/DirectX/DXILWriter/
H A DDXILValueEnumerator.cpp194 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in orderModule()
326 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in predictUseListOrder()
471 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in ValueEnumerator()
1054 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in incorporateFunction()
/src/contrib/llvm-project/llvm/lib/FuzzMutate/
H A DOperations.cpp332 return ShuffleVectorInst::isValidOperands(Cur[0], Cur[1], V); in validShuffleVectorIndex()
347 return new ShuffleVectorInst(Srcs[0], Srcs[1], Srcs[2], "S", Inst); in shuffleVectorDescriptor()
/src/contrib/llvm-project/llvm/lib/Target/ARM/
H A DARMISelLowering.h465 Type* shouldConvertSplatType(ShuffleVectorInst* SVI) const override;
664 ArrayRef<ShuffleVectorInst *> Shuffles,
667 bool lowerInterleavedStore(StoreInst *SI, ShuffleVectorInst *SVI,
H A DMVELaneInterleavingPass.cpp263 if (cast<ShuffleVectorInst>(I)->isZeroEltSplat()) in tryInterleave()
/src/contrib/llvm-project/llvm/lib/ExecutionEngine/Interpreter/
H A DInterpreter.h165 void visitShuffleVectorInst(ShuffleVectorInst &I);
/src/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DRewriteStatepointsForGC.cpp393 if (isa<ShuffleVectorInst>(I)) { in findBaseDefiningValueOfVector()
661 !isa<ShuffleVectorInst>(V); in isOriginalBaseResult()
839 isa<ShuffleVectorInst>(BDV); in findBasePointer()
870 } else if (auto *SV = dyn_cast<ShuffleVectorInst>(BDV)) { in findBasePointer()
994 if (isa<ShuffleVectorInst>(I)) in findBasePointer()
1231 auto *BaseSV = cast<ShuffleVectorInst>(State.getBaseValue()); in findBasePointer()
1232 auto *BdvSV = cast<ShuffleVectorInst>(BDV); in findBasePointer()
H A DGVNSink.cpp387 if (ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(I)) in InstructionUseExpr()
/src/contrib/llvm-project/llvm/include/llvm/CodeGen/
H A DBasicTTIImpl.h984 if (ShuffleVectorInst::isReverseMask(Mask, NumSrcElts)) in improveShuffleKindFromMask()
986 if (ShuffleVectorInst::isZeroEltSplatMask(Mask, NumSrcElts)) in improveShuffleKindFromMask()
988 if (ShuffleVectorInst::isExtractSubvectorMask(Mask, NumSrcElts, Index) && in improveShuffleKindFromMask()
996 if (Mask.size() > 2 && ShuffleVectorInst::isInsertSubvectorMask( in improveShuffleKindFromMask()
1003 if (ShuffleVectorInst::isSelectMask(Mask, NumSrcElts)) in improveShuffleKindFromMask()
1005 if (ShuffleVectorInst::isTransposeMask(Mask, NumSrcElts)) in improveShuffleKindFromMask()
1007 if (ShuffleVectorInst::isSpliceMask(Mask, NumSrcElts, Index)) in improveShuffleKindFromMask()
/src/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DFunctionComparator.cpp772 if (const ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(L)) { in cmpOperations()
774 ArrayRef<int> RMask = cast<ShuffleVectorInst>(R)->getShuffleMask(); in cmpOperations()
/src/contrib/llvm-project/llvm/lib/Target/SPIRV/
H A DSPIRVRegularizer.cpp241 Value *NewVec = new ShuffleVectorInst(Inst, PVal, ConstVec, "", CI); in visitCallScalToVec()
/src/contrib/llvm-project/llvm/include/llvm/IR/
H A DInstructions.h1808 class ShuffleVectorInst : public Instruction {
1816 ShuffleVectorInst *cloneImpl() const;
1819 ShuffleVectorInst(Value *V1, Value *Mask, const Twine &NameStr = "",
1821 ShuffleVectorInst(Value *V1, ArrayRef<int> Mask, const Twine &NameStr = "",
1823 ShuffleVectorInst(Value *V1, Value *V2, Value *Mask,
1826 ShuffleVectorInst(Value *V1, Value *V2, ArrayRef<int> Mask,
2290 struct OperandTraits<ShuffleVectorInst>
2291 : public FixedNumOperandTraits<ShuffleVectorInst, 2> {};
2293 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(ShuffleVectorInst, Value)
/src/contrib/llvm-project/llvm/lib/Analysis/
H A DVectorUtils.cpp198 ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(V); in findScalarElement()
278 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) { in isSplatValue()

1234