Home
last modified time | relevance | path

Searched refs:Shuf (Results 1 – 25 of 26) sorted by relevance

12

/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineVectorOps.cpp1263 static bool isShuffleEquivalentToSelect(ShuffleVectorInst &Shuf) { in isShuffleEquivalentToSelect() argument
1266 if (isa<ScalableVectorType>(Shuf.getOperand(0)->getType())) in isShuffleEquivalentToSelect()
1269 int MaskSize = Shuf.getShuffleMask().size(); in isShuffleEquivalentToSelect()
1271 cast<FixedVectorType>(Shuf.getOperand(0)->getType())->getNumElements(); in isShuffleEquivalentToSelect()
1280 int Elt = Shuf.getMaskValue(i); in isShuffleEquivalentToSelect()
1367 auto *Shuf = dyn_cast<ShuffleVectorInst>(InsElt.getOperand(0)); in foldInsEltIntoSplat() local
1368 if (!Shuf || !Shuf->isZeroEltSplat()) in foldInsEltIntoSplat()
1373 if (isa<ScalableVectorType>(Shuf->getType())) in foldInsEltIntoSplat()
1383 Value *Op0 = Shuf->getOperand(0); in foldInsEltIntoSplat()
1392 cast<FixedVectorType>(Shuf->getType())->getNumElements(); in foldInsEltIntoSplat()
[all …]
H A DInstCombineCasts.cpp708 auto *Shuf = dyn_cast<ShuffleVectorInst>(Trunc.getOperand(0)); in shrinkSplatShuffle() local
709 if (Shuf && Shuf->hasOneUse() && match(Shuf->getOperand(1), m_Undef()) && in shrinkSplatShuffle()
710 all_equal(Shuf->getShuffleMask()) && in shrinkSplatShuffle()
711 Shuf->getType() == Shuf->getOperand(0)->getType()) { in shrinkSplatShuffle()
714 Value *NarrowOp = Builder.CreateTrunc(Shuf->getOperand(0), Trunc.getType()); in shrinkSplatShuffle()
715 return new ShuffleVectorInst(NarrowOp, Shuf->getShuffleMask()); in shrinkSplatShuffle()
2834 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(Src)) { in visitBitCast() local
2837 Value *ShufOp0 = Shuf->getOperand(0); in visitBitCast()
2838 Value *ShufOp1 = Shuf->getOperand(1); in visitBitCast()
2839 auto ShufElts = cast<VectorType>(Shuf->getType())->getElementCount(); in visitBitCast()
[all …]
H A DInstCombineNegator.cpp363 auto *Shuf = cast<ShuffleVectorInst>(I); in visitImpl() local
370 return Builder.CreateShuffleVector(NegOp0, NegOp1, Shuf->getShuffleMask(), in visitImpl()
H A DInstCombineSimplifyDemanded.cpp1908 auto Shuf = m_Shuffle(m_Specific(ShufOp), m_Value(), m_Mask(Mask)); in SimplifyDemandedVectorElts() local
1910 ? match(U, m_c_BinOp(Opcode, Shuf, m_Specific(OtherOp))) in SimplifyDemandedVectorElts()
1912 ? match(U, m_BinOp(Opcode, Shuf, m_Specific(OtherOp))) in SimplifyDemandedVectorElts()
1913 : match(U, m_BinOp(Opcode, m_Specific(OtherOp), Shuf))) in SimplifyDemandedVectorElts()
H A DInstCombineInternal.h618 Instruction *foldSelectShuffle(ShuffleVectorInst &Shuf);
H A DInstCombineCalls.cpp374 Value *Shuf = in simplifyMaskedGather() local
376 return replaceInstUsesWith(II, cast<Instruction>(Shuf)); in simplifyMaskedGather()
3903 if (Instruction *Shuf = foldShuffledIntrinsicOperands(II)) in visitCallInst() local
3904 return Shuf; in visitCallInst()
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/
H A DMVELaneInterleavingPass.cpp380 Value *Shuf = Builder.CreateShuffleVector(I, TruncMask); in tryInterleave() local
381 I->replaceAllUsesWith(Shuf); in tryInterleave()
382 cast<Instruction>(Shuf)->setOperand(0, I); in tryInterleave()
384 LLVM_DEBUG(dbgs() << " with " << *Shuf << "\n"); in tryInterleave()
H A DARMISelLowering.cpp17430 auto *Shuf = dyn_cast<ShuffleVectorSDNode>(N->getOperand(VecOp)); in PerformReduceShuffleCombine() local
17431 if (!Shuf || !Shuf->getOperand(1).isUndef()) in PerformReduceShuffleCombine()
17435 ArrayRef<int> Mask = Shuf->getMask(); in PerformReduceShuffleCombine()
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DAMDGPULowerKernelArguments.cpp230 Value *Shuf = Builder.CreateShuffleVector(Load, ArrayRef<int>{0, 1, 2}, in lowerKernelArguments() local
232 Arg.replaceAllUsesWith(Shuf); in lowerKernelArguments()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVectorCombine.cpp323 auto *Shuf = cast<ShuffleVectorInst>(&I); in widenSubvectorLoad() local
324 if (!Shuf->isIdentityWithPadding()) in widenSubvectorLoad()
329 cast<FixedVectorType>(Shuf->getOperand(0)->getType())->getNumElements(); in widenSubvectorLoad()
330 unsigned OpIndex = any_of(Shuf->getShuffleMask(), [&NumOpElts](int M) { in widenSubvectorLoad()
334 auto *Load = dyn_cast<LoadInst>(Shuf->getOperand(OpIndex)); in widenSubvectorLoad()
565 Value *Shuf = createShiftShuffle(X, cast<ConstantInt>(C)->getZExtValue(), in translateExtract() local
568 Builder.CreateExtractElement(Shuf, NewIndex)); in translateExtract()
960 Value *Shuf = Builder.CreateShuffleVector(CastV0, CastV1, NewMask); in foldBitcastShuffle() local
961 replaceValue(I, *Shuf); in foldBitcastShuffle()
1349 Value *Shuf = createShiftShuffle(VCmp, ExpensiveIndex, CheapIndex, Builder); in foldExtractedCmps() local
[all …]
H A DVPlan.cpp318 Value *Shuf = Builder.CreateVectorSplat(VF, V, "broadcast"); in get() local
320 return Shuf; in get()
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DValueTracking.cpp119 static bool getShuffleDemandedElts(const ShuffleVectorInst *Shuf, in getShuffleDemandedElts() argument
122 if (isa<ScalableVectorType>(Shuf->getType())) { in getShuffleDemandedElts()
129 cast<FixedVectorType>(Shuf->getOperand(0)->getType())->getNumElements(); in getShuffleDemandedElts()
130 return llvm::getShuffleDemandedElts(NumElts, Shuf->getShuffleMask(), in getShuffleDemandedElts()
2044 auto *Shuf = dyn_cast<ShuffleVectorInst>(I); in computeKnownBitsFromOperator() local
2046 if (!Shuf) { in computeKnownBitsFromOperator()
2053 if (!getShuffleDemandedElts(Shuf, DemandedElts, DemandedLHS, DemandedRHS)) { in computeKnownBitsFromOperator()
2060 const Value *LHS = Shuf->getOperand(0); in computeKnownBitsFromOperator()
2067 const Value *RHS = Shuf->getOperand(1); in computeKnownBitsFromOperator()
3237 auto *Shuf = dyn_cast<ShuffleVectorInst>(I); in isKnownNonZeroFromOperator() local
[all …]
H A DVectorUtils.cpp425 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) { in isSplatValue() local
428 if (!all_equal(Shuf->getShuffleMask())) in isSplatValue()
437 return Shuf->getMaskValue(Index) == Index; in isSplatValue()
H A DInstructionSimplify.cpp4562 auto *Shuf = dyn_cast<ShuffleVectorInst>(FVal); in simplifyCmpSelOfMaxMin() local
4563 if (Shuf && Shuf->isSelect()) { in simplifyCmpSelOfMaxMin()
4564 if (Shuf->getOperand(0) == Y) in simplifyCmpSelOfMaxMin()
4565 FVal = Shuf->getOperand(1); in simplifyCmpSelOfMaxMin()
4566 else if (Shuf->getOperand(1) == Y) in simplifyCmpSelOfMaxMin()
4567 FVal = Shuf->getOperand(0); in simplifyCmpSelOfMaxMin()
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/
H A DGISelValueTracking.cpp1657 GShuffleVector &Shuf = cast<GShuffleVector>(MI); in computeKnownFPClass() local
1663 if (!llvm::getShuffleDemandedElts(DstTy.getNumElements(), Shuf.getMask(), in computeKnownFPClass()
1672 Register LHS = Shuf.getSrc1Reg(); in computeKnownFPClass()
1685 Register RHS = Shuf.getSrc2Reg(); in computeKnownFPClass()
H A DLegalizerHelper.cpp3908 auto Shuf = in bitcastShuffleVector() local
3910 MIRBuilder.buildCast(ShuffleMI->getReg(0), Shuf); in bitcastShuffleVector()
/freebsd/contrib/llvm-project/llvm/lib/IR/
H A DConstants.cpp1729 const auto *Shuf = dyn_cast<ConstantExpr>(this); in getSplatValue() local
1730 if (Shuf && Shuf->getOpcode() == Instruction::ShuffleVector && in getSplatValue()
1731 isa<UndefValue>(Shuf->getOperand(1))) { in getSplatValue()
1733 const auto *IElt = dyn_cast<ConstantExpr>(Shuf->getOperand(0)); in getSplatValue()
1737 ArrayRef<int> Mask = Shuf->getShuffleMask(); in getSplatValue()
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/
H A DDAGCombiner.cpp637 SDValue replaceShuffleOfInsert(ShuffleVectorSDNode *Shuf);
23028 SDValue Shuf = DAG.getVectorShuffle(ShufVT, DL, DestVecBC, PaddedSubV, Mask); in combineInsertEltToShuffle() local
23031 AddToWorklist(Shuf.getNode()); in combineInsertEltToShuffle()
23032 return DAG.getBitcast(VT, Shuf); in combineInsertEltToShuffle()
23193 if (SDValue Shuf = mergeInsertEltWithShuffle(N, Elt)) in visitINSERT_VECTOR_ELT() local
23194 return Shuf; in visitINSERT_VECTOR_ELT()
23196 if (SDValue Shuf = combineInsertEltToShuffle(N, Elt)) in visitINSERT_VECTOR_ELT() local
23197 return Shuf; in visitINSERT_VECTOR_ELT()
23199 if (SDValue Shuf = combineInsertEltToLoad(N, Elt)) in visitINSERT_VECTOR_ELT() local
23200 return Shuf; in visitINSERT_VECTOR_ELT()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DLoopUtils.cpp1162 Value *Shuf = Builder.CreateShuffleVector(TmpVec, ShuffleMask, "rdx.shuf"); in getShuffleReduction() local
1164 TmpVec = Builder.CreateBinOp((Instruction::BinaryOps)Op, TmpVec, Shuf, in getShuffleReduction()
1169 TmpVec = createMinMaxOp(Builder, RdxKind, TmpVec, Shuf); in getShuffleReduction()
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DComplexDeinterleavingPass.cpp2020 } else if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) { in identifySplat() local
2021 VTy = Shuf->getType(); in identifySplat()
2022 Mask = Shuf->getShuffleMask(); in identifySplat()
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86TargetTransformInfo.cpp7206 auto *Shuf = dyn_cast<ShuffleVectorInst>(I->getOperand(ShiftAmountOpNum)); in isProfitableToSinkOperands() local
7207 if (Shuf && getSplatIndex(Shuf->getShuffleMask()) >= 0 && in isProfitableToSinkOperands()
H A DX86ISelLowering.cpp12987 SDValue Shuf = DAG.getVectorShuffle(WideVT, DL, WideVec, DAG.getUNDEF(WideVT), in lowerShuffleOfExtractsAsVperm() local
12990 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, Shuf, in lowerShuffleOfExtractsAsVperm()
20914 if (auto *Shuf = dyn_cast<ShuffleVectorSDNode>(In)) in LowerAVXExtend() local
20915 if (hasIdenticalHalvesShuffleMask(Shuf->getMask())) in LowerAVXExtend()
24431 SDValue Shuf = DAG.getVectorShuffle(MVT::v4i32, dl, Result, Result, Mask); in LowerVSETCC() local
24432 Result = DAG.getNode(ISD::AND, dl, MVT::v4i32, Result, Shuf); in LowerVSETCC()
43317 static SDValue narrowShuffle(ShuffleVectorSDNode *Shuf, SelectionDAG &DAG) { in narrowShuffle() argument
43318 EVT VT = Shuf->getValueType(0); in narrowShuffle()
43319 if (!DAG.getTargetLoweringInfo().isTypeLegal(Shuf->getValueType(0))) in narrowShuffle()
43325 ArrayRef<int> Mask = Shuf->getMask(); in narrowShuffle()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/
H A DAArch64TargetTransformInfo.cpp5967 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) in isSplatShuffle() local
5968 return all_equal(Shuf->getShuffleMask()); in isSplatShuffle()
H A DAArch64ISelLowering.cpp27342 auto *Shuf = dyn_cast<ShuffleVectorSDNode>(N->getOperand(1)); in ReplaceAddWithADDP() local
27343 if (!Shuf) { in ReplaceAddWithADDP()
27344 Shuf = dyn_cast<ShuffleVectorSDNode>(N->getOperand(0)); in ReplaceAddWithADDP()
27346 if (!Shuf) in ReplaceAddWithADDP()
27350 if (Shuf->getOperand(0) != X || !Shuf->getOperand(1)->isUndef()) in ReplaceAddWithADDP()
27354 ArrayRef<int> Mask = Shuf->getMask(); in ReplaceAddWithADDP()
/freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/
H A DSystemZISelLowering.cpp6649 SDValue Shuf = DAG.getVectorShuffle(InVT, DL, PackedOp, ZeroVec, Mask); in lowerZERO_EXTEND_VECTOR_INREG() local
6650 return DAG.getNode(ISD::BITCAST, DL, OutVT, Shuf); in lowerZERO_EXTEND_VECTOR_INREG()

12