/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombineVectorOps.cpp | 1185 static bool isShuffleEquivalentToSelect(ShuffleVectorInst &Shuf) { in isShuffleEquivalentToSelect() argument 1188 if (isa<ScalableVectorType>(Shuf.getOperand(0)->getType())) in isShuffleEquivalentToSelect() 1191 int MaskSize = Shuf.getShuffleMask().size(); in isShuffleEquivalentToSelect() 1193 cast<FixedVectorType>(Shuf.getOperand(0)->getType())->getNumElements(); in isShuffleEquivalentToSelect() 1202 int Elt = Shuf.getMaskValue(i); in isShuffleEquivalentToSelect() 1289 auto *Shuf = dyn_cast<ShuffleVectorInst>(InsElt.getOperand(0)); in foldInsEltIntoSplat() local 1290 if (!Shuf || !Shuf->isZeroEltSplat()) in foldInsEltIntoSplat() 1295 if (isa<ScalableVectorType>(Shuf->getType())) in foldInsEltIntoSplat() 1305 Value *Op0 = Shuf->getOperand(0); in foldInsEltIntoSplat() 1314 cast<FixedVectorType>(Shuf->getType())->getNumElements(); in foldInsEltIntoSplat() [all …]
|
H A D | InstCombineCasts.cpp | 632 auto *Shuf = dyn_cast<ShuffleVectorInst>(Trunc.getOperand(0)); in shrinkSplatShuffle() local 633 if (Shuf && Shuf->hasOneUse() && match(Shuf->getOperand(1), m_Undef()) && in shrinkSplatShuffle() 634 all_equal(Shuf->getShuffleMask()) && in shrinkSplatShuffle() 635 Shuf->getType() == Shuf->getOperand(0)->getType()) { in shrinkSplatShuffle() 638 Value *NarrowOp = Builder.CreateTrunc(Shuf->getOperand(0), Trunc.getType()); in shrinkSplatShuffle() 639 return new ShuffleVectorInst(NarrowOp, Shuf->getShuffleMask()); in shrinkSplatShuffle() 2753 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(Src)) { in visitBitCast() local 2756 Value *ShufOp0 = Shuf->getOperand(0); in visitBitCast() 2757 Value *ShufOp1 = Shuf->getOperand(1); in visitBitCast() 2758 auto ShufElts = cast<VectorType>(Shuf->getType())->getElementCount(); in visitBitCast() [all …]
|
H A D | InstCombineNegator.cpp | 364 auto *Shuf = cast<ShuffleVectorInst>(I); in visitImpl() local 371 return Builder.CreateShuffleVector(NegOp0, NegOp1, Shuf->getShuffleMask(), in visitImpl()
|
H A D | InstCombineSimplifyDemanded.cpp | 1904 auto Shuf = m_Shuffle(m_Specific(ShufOp), m_Value(), m_Mask(Mask)); in SimplifyDemandedVectorElts() local 1906 ? match(U, m_c_BinOp(Opcode, Shuf, m_Specific(OtherOp))) in SimplifyDemandedVectorElts() 1908 ? match(U, m_BinOp(Opcode, Shuf, m_Specific(OtherOp))) in SimplifyDemandedVectorElts() 1909 : match(U, m_BinOp(Opcode, m_Specific(OtherOp), Shuf))) in SimplifyDemandedVectorElts()
|
H A D | InstCombineInternal.h | 593 Instruction *foldSelectShuffle(ShuffleVectorInst &Shuf);
|
H A D | InstCombineCalls.cpp | 376 Value *Shuf = in simplifyMaskedGather() local 378 return replaceInstUsesWith(II, cast<Instruction>(Shuf)); in simplifyMaskedGather() 3621 if (Instruction *Shuf = foldShuffledIntrinsicOperands(II, Builder)) in visitCallInst() local 3622 return Shuf; in visitCallInst()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/ |
H A D | MVELaneInterleavingPass.cpp | 386 Value *Shuf = Builder.CreateShuffleVector(I, TruncMask); in tryInterleave() local 387 I->replaceAllUsesWith(Shuf); in tryInterleave() 388 cast<Instruction>(Shuf)->setOperand(0, I); in tryInterleave() 390 LLVM_DEBUG(dbgs() << " with " << *Shuf << "\n"); in tryInterleave()
|
H A D | ARMISelLowering.cpp | 17357 auto *Shuf = dyn_cast<ShuffleVectorSDNode>(N->getOperand(VecOp)); in PerformReduceShuffleCombine() local 17358 if (!Shuf || !Shuf->getOperand(1).isUndef()) in PerformReduceShuffleCombine() 17362 ArrayRef<int> Mask = Shuf->getMask(); in PerformReduceShuffleCombine()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
H A D | VectorCombine.cpp | 294 auto *Shuf = cast<ShuffleVectorInst>(&I); in widenSubvectorLoad() local 295 if (!Shuf->isIdentityWithPadding()) in widenSubvectorLoad() 300 cast<FixedVectorType>(Shuf->getOperand(0)->getType())->getNumElements(); in widenSubvectorLoad() 301 unsigned OpIndex = any_of(Shuf->getShuffleMask(), [&NumOpElts](int M) { in widenSubvectorLoad() 305 auto *Load = dyn_cast<LoadInst>(Shuf->getOperand(OpIndex)); in widenSubvectorLoad() 524 Value *Shuf = createShiftShuffle(X, cast<ConstantInt>(C)->getZExtValue(), in translateExtract() local 526 return cast<ExtractElementInst>(Builder.CreateExtractElement(Shuf, NewIndex)); in translateExtract() 689 Value *Shuf = Builder.CreateShuffleVector(DestVec, VecFNeg, Mask); in foldInsExtFNeg() local 690 replaceValue(I, *Shuf); in foldInsExtFNeg() 779 Value *Shuf = Builder.CreateShuffleVector(CastV0, CastV1, NewMask); in foldBitcastShuffle() local [all …]
|
H A D | VPlan.cpp | 284 Value *Shuf = Builder.CreateVectorSplat(VF, V, "broadcast"); in get() local 286 return Shuf; in get()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | AMDGPULowerKernelArguments.cpp | 272 Value *Shuf = Builder.CreateShuffleVector(Load, ArrayRef<int>{0, 1, 2}, in lowerKernelArguments() local 274 Arg.replaceAllUsesWith(Shuf); in lowerKernelArguments()
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | ValueTracking.cpp | 135 static bool getShuffleDemandedElts(const ShuffleVectorInst *Shuf, in getShuffleDemandedElts() argument 138 if (isa<ScalableVectorType>(Shuf->getType())) { in getShuffleDemandedElts() 145 cast<FixedVectorType>(Shuf->getOperand(0)->getType())->getNumElements(); in getShuffleDemandedElts() 146 return llvm::getShuffleDemandedElts(NumElts, Shuf->getShuffleMask(), in getShuffleDemandedElts() 1871 auto *Shuf = dyn_cast<ShuffleVectorInst>(I); in computeKnownBitsFromOperator() local 1873 if (!Shuf) { in computeKnownBitsFromOperator() 1880 if (!getShuffleDemandedElts(Shuf, DemandedElts, DemandedLHS, DemandedRHS)) { in computeKnownBitsFromOperator() 1887 const Value *LHS = Shuf->getOperand(0); in computeKnownBitsFromOperator() 1894 const Value *RHS = Shuf->getOperand(1); in computeKnownBitsFromOperator() 3010 auto *Shuf = dyn_cast<ShuffleVectorInst>(I); in isKnownNonZeroFromOperator() local [all …]
|
H A D | VectorUtils.cpp | 278 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) { in isSplatValue() local 281 if (!all_equal(Shuf->getShuffleMask())) in isSplatValue() 290 return Shuf->getMaskValue(Index) == Index; in isSplatValue()
|
H A D | InstructionSimplify.cpp | 4552 auto *Shuf = dyn_cast<ShuffleVectorInst>(FVal); in simplifyCmpSelOfMaxMin() local 4553 if (Shuf && Shuf->isSelect()) { in simplifyCmpSelOfMaxMin() 4554 if (Shuf->getOperand(0) == Y) in simplifyCmpSelOfMaxMin() 4555 FVal = Shuf->getOperand(1); in simplifyCmpSelOfMaxMin() 4556 else if (Shuf->getOperand(1) == Y) in simplifyCmpSelOfMaxMin() 4557 FVal = Shuf->getOperand(0); in simplifyCmpSelOfMaxMin()
|
/freebsd/contrib/llvm-project/llvm/lib/IR/ |
H A D | Constants.cpp | 1697 const auto *Shuf = dyn_cast<ConstantExpr>(this); in getSplatValue() local 1698 if (Shuf && Shuf->getOpcode() == Instruction::ShuffleVector && in getSplatValue() 1699 isa<UndefValue>(Shuf->getOperand(1))) { in getSplatValue() 1701 const auto *IElt = dyn_cast<ConstantExpr>(Shuf->getOperand(0)); in getSplatValue() 1705 ArrayRef<int> Mask = Shuf->getShuffleMask(); in getSplatValue()
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ |
H A D | DAGCombiner.cpp | 21971 SDValue Shuf = DAG.getVectorShuffle(ShufVT, DL, DestVecBC, PaddedSubV, Mask); in combineInsertEltToShuffle() local 21974 AddToWorklist(Shuf.getNode()); in combineInsertEltToShuffle() 21975 return DAG.getBitcast(VT, Shuf); in combineInsertEltToShuffle() 22136 if (SDValue Shuf = mergeInsertEltWithShuffle(N, Elt)) in visitINSERT_VECTOR_ELT() local 22137 return Shuf; in visitINSERT_VECTOR_ELT() 22139 if (SDValue Shuf = combineInsertEltToShuffle(N, Elt)) in visitINSERT_VECTOR_ELT() local 22140 return Shuf; in visitINSERT_VECTOR_ELT() 22142 if (SDValue Shuf = combineInsertEltToLoad(N, Elt)) in visitINSERT_VECTOR_ELT() local 22143 return Shuf; in visitINSERT_VECTOR_ELT() 22688 auto *Shuf = cast<ShuffleVectorSDNode>(VecOp); in visitEXTRACT_VECTOR_ELT() local [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | ComplexDeinterleavingPass.cpp | 1795 } else if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) { in identifySplat() local 1796 VTy = Shuf->getType(); in identifySplat() 1797 Mask = Shuf->getShuffleMask(); in identifySplat()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | LoopUtils.cpp | 1137 Value *Shuf = Builder.CreateShuffleVector(TmpVec, ShuffleMask, "rdx.shuf"); in getShuffleReduction() local 1139 TmpVec = Builder.CreateBinOp((Instruction::BinaryOps)Op, TmpVec, Shuf, in getShuffleReduction() 1144 TmpVec = createMinMaxOp(Builder, RdxKind, TmpVec, Shuf); in getShuffleReduction()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/ |
H A D | X86ISelLowering.cpp | 12473 SDValue Shuf = DAG.getVectorShuffle(WideVT, DL, WideVec, DAG.getUNDEF(WideVT), in lowerShuffleOfExtractsAsVperm() local 12476 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, Shuf, in lowerShuffleOfExtractsAsVperm() 20198 if (auto *Shuf = dyn_cast<ShuffleVectorSDNode>(In)) in LowerAVXExtend() local 20199 if (hasIdenticalHalvesShuffleMask(Shuf->getMask())) in LowerAVXExtend() 23667 SDValue Shuf = DAG.getVectorShuffle(MVT::v4i32, dl, Result, Result, Mask); in LowerVSETCC() local 23668 Result = DAG.getNode(ISD::AND, dl, MVT::v4i32, Result, Shuf); in LowerVSETCC() 34310 auto *Shuf = dyn_cast<ShuffleVectorInst>(I->getOperand(ShiftAmountOpNum)); in shouldSinkOperands() local 34311 if (Shuf && getSplatIndex(Shuf->getShuffleMask()) >= 0 && in shouldSinkOperands() 41722 static SDValue narrowShuffle(ShuffleVectorSDNode *Shuf, SelectionDAG &DAG) { in narrowShuffle() argument 41723 EVT VT = Shuf->getValueType(0); in narrowShuffle() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/ |
H A D | AArch64ISelLowering.cpp | 15875 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) in isSplatShuffle() local 15876 return all_equal(Shuf->getShuffleMask()); in isSplatShuffle() 25863 auto *Shuf = dyn_cast<ShuffleVectorSDNode>(N->getOperand(1)); in ReplaceAddWithADDP() local 25864 if (!Shuf) { in ReplaceAddWithADDP() 25865 Shuf = dyn_cast<ShuffleVectorSDNode>(N->getOperand(0)); in ReplaceAddWithADDP() 25867 if (!Shuf) in ReplaceAddWithADDP() 25871 if (Shuf->getOperand(0) != X || !Shuf->getOperand(1)->isUndef()) in ReplaceAddWithADDP() 25875 ArrayRef<int> Mask = Shuf->getMask(); in ReplaceAddWithADDP()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/ |
H A D | SystemZISelLowering.cpp | 6001 SDValue Shuf = DAG.getVectorShuffle(InVT, DL, PackedOp, ZeroVec, Mask); in lowerZERO_EXTEND_VECTOR_INREG() local 6002 return DAG.getNode(ISD::BITCAST, DL, OutVT, Shuf); in lowerZERO_EXTEND_VECTOR_INREG()
|