Home
last modified time | relevance | path

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

/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/
H A DInstCombineVectorOps.cpp1185 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 DInstCombineCasts.cpp632 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 DInstCombineNegator.cpp364 auto *Shuf = cast<ShuffleVectorInst>(I); in visitImpl() local
371 return Builder.CreateShuffleVector(NegOp0, NegOp1, Shuf->getShuffleMask(), in visitImpl()
H A DInstCombineSimplifyDemanded.cpp1904 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 DInstCombineInternal.h593 Instruction *foldSelectShuffle(ShuffleVectorInst &Shuf);
H A DInstCombineCalls.cpp376 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 DMVELaneInterleavingPass.cpp386 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 DARMISelLowering.cpp17357 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 DVectorCombine.cpp294 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 DVPlan.cpp284 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 DAMDGPULowerKernelArguments.cpp272 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 DValueTracking.cpp135 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 DVectorUtils.cpp278 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 DInstructionSimplify.cpp4552 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 DConstants.cpp1697 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 DDAGCombiner.cpp21971 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 DComplexDeinterleavingPass.cpp1795 } 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 DLoopUtils.cpp1137 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 DX86ISelLowering.cpp12473 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 DAArch64ISelLowering.cpp15875 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 DSystemZISelLowering.cpp6001 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()