| /freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineVectorOps.cpp | 1263 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 D | InstCombineCasts.cpp | 708 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 D | InstCombineNegator.cpp | 363 auto *Shuf = cast<ShuffleVectorInst>(I); in visitImpl() local 370 return Builder.CreateShuffleVector(NegOp0, NegOp1, Shuf->getShuffleMask(), in visitImpl()
|
| H A D | InstCombineSimplifyDemanded.cpp | 1908 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 D | InstCombineInternal.h | 618 Instruction *foldSelectShuffle(ShuffleVectorInst &Shuf);
|
| H A D | InstCombineCalls.cpp | 374 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 D | MVELaneInterleavingPass.cpp | 380 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 D | ARMISelLowering.cpp | 17430 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 D | AMDGPULowerKernelArguments.cpp | 230 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 D | VectorCombine.cpp | 323 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 D | VPlan.cpp | 318 Value *Shuf = Builder.CreateVectorSplat(VF, V, "broadcast"); in get() local 320 return Shuf; in get()
|
| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | ValueTracking.cpp | 119 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 D | VectorUtils.cpp | 425 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 D | InstructionSimplify.cpp | 4562 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 D | GISelValueTracking.cpp | 1657 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 D | LegalizerHelper.cpp | 3908 auto Shuf = in bitcastShuffleVector() local 3910 MIRBuilder.buildCast(ShuffleMI->getReg(0), Shuf); in bitcastShuffleVector()
|
| /freebsd/contrib/llvm-project/llvm/lib/IR/ |
| H A D | Constants.cpp | 1729 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 D | DAGCombiner.cpp | 637 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 D | LoopUtils.cpp | 1162 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 D | ComplexDeinterleavingPass.cpp | 2020 } 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 D | X86TargetTransformInfo.cpp | 7206 auto *Shuf = dyn_cast<ShuffleVectorInst>(I->getOperand(ShiftAmountOpNum)); in isProfitableToSinkOperands() local 7207 if (Shuf && getSplatIndex(Shuf->getShuffleMask()) >= 0 && in isProfitableToSinkOperands()
|
| H A D | X86ISelLowering.cpp | 12987 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 D | AArch64TargetTransformInfo.cpp | 5967 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) in isSplatShuffle() local 5968 return all_equal(Shuf->getShuffleMask()); in isSplatShuffle()
|
| H A D | AArch64ISelLowering.cpp | 27342 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 D | SystemZISelLowering.cpp | 6649 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()
|