/freebsd/contrib/llvm-project/llvm/lib/Transforms/InstCombine/ |
H A D | InstCombineVectorOps.cpp | 1282 if (!Shuf || !Shuf->isZeroEltSplat()) in foldInsEltIntoSplat() 1319 if (!Shuf || !match(Shuf->getOperand(1), m_Undef()) || in foldInsEltIntoIdentityShuffle() 1728 return Shuf; in visitInsertElementInst() 2093 Value *Op0 = Shuf.getOperand(0), *Op1 = Shuf.getOperand(1); in foldSelectShuffleOfSelectShuffle() 2142 Value *Op0 = Shuf.getOperand(0), *Op1 = Shuf.getOperand(1); in foldSelectShuffleWith1Binop() 2195 Value *Op0 = Shuf.getOperand(0), *Op1 = Shuf.getOperand(1); in canonicalizeInsertSplat() 2236 Shuf.commute(); in foldSelectShuffle() 2237 return &Shuf; in foldSelectShuffle() 2381 assert(Shuf.changesLength() && !Shuf.increasesLength() && in foldTruncShuffle() 2534 Value *Op0 = Shuf.getOperand(0), *Op1 = Shuf.getOperand(1); in foldIdentityExtractShuffle() [all …]
|
H A D | InstCombineCasts.cpp | 624 auto *Shuf = dyn_cast<ShuffleVectorInst>(Trunc.getOperand(0)); in shrinkSplatShuffle() local 625 if (Shuf && Shuf->hasOneUse() && match(Shuf->getOperand(1), m_Undef()) && in shrinkSplatShuffle() 626 all_equal(Shuf->getShuffleMask()) && in shrinkSplatShuffle() 627 Shuf->getType() == Shuf->getOperand(0)->getType()) { in shrinkSplatShuffle() 631 return new ShuffleVectorInst(NarrowOp, Shuf->getShuffleMask()); in shrinkSplatShuffle() 2663 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(Src)) { in visitBitCast() local 2666 Value *ShufOp0 = Shuf->getOperand(0); in visitBitCast() 2667 Value *ShufOp1 = Shuf->getOperand(1); in visitBitCast() 2670 if (Shuf->hasOneUse() && DestTy->isVectorTy() && in visitBitCast() 2685 return new ShuffleVectorInst(LHS, RHS, Shuf->getShuffleMask()); in visitBitCast() [all …]
|
H A D | InstCombineNegator.cpp | 347 auto *Shuf = cast<ShuffleVectorInst>(I); in visitImpl() local 354 return Builder.CreateShuffleVector(NegOp0, NegOp1, Shuf->getShuffleMask(), in visitImpl()
|
H A D | InstCombineSimplifyDemanded.cpp | 1847 auto Shuf = m_Shuffle(m_Specific(ShufOp), m_Value(), m_ZeroMask()); in SimplifyDemandedVectorElts() local 1849 ? match(U, m_c_BinOp(Opcode, Shuf, m_Specific(OtherOp))) in SimplifyDemandedVectorElts() 1851 ? match(U, m_BinOp(Opcode, Shuf, m_Specific(OtherOp))) in SimplifyDemandedVectorElts() 1852 : match(U, m_BinOp(Opcode, m_Specific(OtherOp), Shuf))) in SimplifyDemandedVectorElts()
|
H A D | InstCombineInternal.h | 571 Instruction *foldSelectShuffle(ShuffleVectorInst &Shuf);
|
H A D | InstCombineCalls.cpp | 389 Value *Shuf = in simplifyMaskedGather() local 391 return replaceInstUsesWith(II, cast<Instruction>(Shuf)); in simplifyMaskedGather() 3392 if (Instruction *Shuf = foldShuffledIntrinsicOperands(II, Builder)) in visitCallInst() local 3393 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 | 17334 auto *Shuf = dyn_cast<ShuffleVectorSDNode>(N->getOperand(VecOp)); in PerformReduceShuffleCombine() local 17335 if (!Shuf || !Shuf->getOperand(1).isUndef()) in PerformReduceShuffleCombine() 17339 ArrayRef<int> Mask = Shuf->getMask(); in PerformReduceShuffleCombine()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
H A D | VectorCombine.cpp | 280 auto *Shuf = cast<ShuffleVectorInst>(&I); in widenSubvectorLoad() local 281 if (!Shuf->isIdentityWithPadding()) in widenSubvectorLoad() 286 cast<FixedVectorType>(Shuf->getOperand(0)->getType())->getNumElements(); in widenSubvectorLoad() 287 unsigned OpIndex = any_of(Shuf->getShuffleMask(), [&NumOpElts](int M) { in widenSubvectorLoad() 291 auto *Load = dyn_cast<LoadInst>(Shuf->getOperand(OpIndex)); in widenSubvectorLoad() 511 Value *Shuf = createShiftShuffle(X, cast<ConstantInt>(C)->getZExtValue(), in translateExtract() local 676 Value *Shuf = Builder.CreateShuffleVector(DestVec, VecFNeg, Mask); in foldInsExtFNeg() local 677 replaceValue(I, *Shuf); in foldInsExtFNeg() 739 Value *Shuf = Builder.CreateShuffleVector(CastV, NewMask); in foldBitcastShuffle() local 740 replaceValue(I, *Shuf); in foldBitcastShuffle() [all …]
|
H A D | VPlan.cpp | 257 Value *Shuf = Builder.CreateVectorSplat(VF, V, "broadcast"); in get() local 259 return Shuf; in get()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | AMDGPULowerKernelArguments.cpp | 274 Value *Shuf = Builder.CreateShuffleVector(Load, ArrayRef<int>{0, 1, 2}, in lowerKernelArguments() local 276 Arg.replaceAllUsesWith(Shuf); in lowerKernelArguments()
|
/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | VectorUtils.cpp | 276 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) { in isSplatValue() local 279 if (!all_equal(Shuf->getShuffleMask())) in isSplatValue() 288 return Shuf->getMaskValue(Index) == Index; in isSplatValue()
|
H A D | ValueTracking.cpp | 137 if (isa<ScalableVectorType>(Shuf->getType())) { in getShuffleDemandedElts() 1584 auto *Shuf = dyn_cast<ShuffleVectorInst>(I); in computeKnownBitsFromOperator() local 1586 if (!Shuf) { in computeKnownBitsFromOperator() 1600 const Value *LHS = Shuf->getOperand(0); in computeKnownBitsFromOperator() 1607 const Value *RHS = Shuf->getOperand(1); in computeKnownBitsFromOperator() 3533 if (!Shuf) { in ComputeNumSignBitsImpl() 3544 const Value *LHS = Shuf->getOperand(0); in ComputeNumSignBitsImpl() 3552 const Value *RHS = Shuf->getOperand(1); in ComputeNumSignBitsImpl() 5192 if (!Shuf || !getShuffleDemandedElts(Shuf, DemandedElts, DemandedLHS, DemandedRHS)) in computeKnownFPClass() 5196 const Value *LHS = Shuf->getOperand(0); in computeKnownFPClass() [all …]
|
H A D | InstructionSimplify.cpp | 4526 auto *Shuf = dyn_cast<ShuffleVectorInst>(FVal); in simplifyCmpSelOfMaxMin() local 4527 if (Shuf && Shuf->isSelect()) { in simplifyCmpSelOfMaxMin() 4528 if (Shuf->getOperand(0) == Y) in simplifyCmpSelOfMaxMin() 4529 FVal = Shuf->getOperand(1); in simplifyCmpSelOfMaxMin() 4530 else if (Shuf->getOperand(1) == Y) in simplifyCmpSelOfMaxMin() 4531 FVal = Shuf->getOperand(0); in simplifyCmpSelOfMaxMin()
|
/freebsd/contrib/llvm-project/llvm/lib/IR/ |
H A D | Constants.cpp | 1626 const auto *Shuf = dyn_cast<ConstantExpr>(this); in getSplatValue() local 1627 if (Shuf && Shuf->getOpcode() == Instruction::ShuffleVector && in getSplatValue() 1628 isa<UndefValue>(Shuf->getOperand(1))) { in getSplatValue() 1630 const auto *IElt = dyn_cast<ConstantExpr>(Shuf->getOperand(0)); in getSplatValue() 1634 ArrayRef<int> Mask = Shuf->getShuffleMask(); in getSplatValue()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | LoopUtils.cpp | 1041 Value *Shuf = Builder.CreateShuffleVector(TmpVec, ShuffleMask, "rdx.shuf"); in getShuffleReduction() local 1044 TmpVec = Builder.CreateBinOp((Instruction::BinaryOps)Op, TmpVec, Shuf, in getShuffleReduction() 1049 TmpVec = createMinMaxOp(Builder, RdxKind, TmpVec, Shuf); in getShuffleReduction()
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ |
H A D | DAGCombiner.cpp | 21769 return Shuf; in visitINSERT_VECTOR_ELT() 21772 return Shuf; in visitINSERT_VECTOR_ELT() 21775 return Shuf; in visitINSERT_VECTOR_ELT() 22936 if (!Shuf) in reduceBuildVecToShuffleWithZero() 24602 SDValue N0 = Shuf->getOperand(0), N1 = Shuf->getOperand(1); in foldShuffleOfConcatUndefs() 24640 SDLoc DL(Shuf); in foldShuffleOfConcatUndefs() 25082 if (!Shuf->isSplat()) { in combineShuffleOfSplatVal() 25114 return DAG.getVectorShuffle(VT, SDLoc(Shuf), Shuf->getOperand(0), in combineShuffleOfSplatVal() 25123 return Shuf->getOperand(0); in combineShuffleOfSplatVal() 25158 return Shuf->getOperand(0); in combineShuffleOfSplatVal() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/ |
H A D | ComplexDeinterleavingPass.cpp | 1796 } else if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) { in identifySplat() local 1797 VTy = Shuf->getType(); in identifySplat() 1798 Mask = Shuf->getShuffleMask(); in identifySplat()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/ |
H A D | X86ISelLowering.cpp | 12343 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, Shuf, in lowerShuffleOfExtractsAsVperm() 20010 if (auto *Shuf = dyn_cast<ShuffleVectorSDNode>(In)) in LowerAVXExtend() local 20011 if (hasIdenticalHalvesShuffleMask(Shuf->getMask())) in LowerAVXExtend() 33780 if (Shuf && getSplatIndex(Shuf->getShuffleMask()) >= 0 && in shouldSinkOperands() 40813 EVT VT = Shuf->getValueType(0); in narrowShuffle() 40820 ArrayRef<int> Mask = Shuf->getMask(); in narrowShuffle() 40837 return getShuffleHalfVectors(SDLoc(Shuf), Shuf->getOperand(0), in narrowShuffle() 40845 if (auto *Shuf = dyn_cast<ShuffleVectorSDNode>(N)) in combineShuffle() local 40846 if (SDValue V = narrowShuffle(Shuf, DAG)) in combineShuffle() 53702 {N->getOperand(0), Shuf}); in combineSIntToFP() [all …]
|
/freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/ |
H A D | AArch64ISelLowering.cpp | 14844 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(V)) in isSplatShuffle() local 14845 return all_equal(Shuf->getShuffleMask()); in isSplatShuffle() 24437 auto *Shuf = dyn_cast<ShuffleVectorSDNode>(N->getOperand(1)); in ReplaceAddWithADDP() local 24438 if (!Shuf) { in ReplaceAddWithADDP() 24439 Shuf = dyn_cast<ShuffleVectorSDNode>(N->getOperand(0)); in ReplaceAddWithADDP() 24441 if (!Shuf) in ReplaceAddWithADDP() 24445 if (Shuf->getOperand(0) != X || !Shuf->getOperand(1)->isUndef()) in ReplaceAddWithADDP() 24449 ArrayRef<int> Mask = Shuf->getMask(); in ReplaceAddWithADDP()
|
/freebsd/contrib/llvm-project/llvm/lib/Target/SystemZ/ |
H A D | SystemZISelLowering.cpp | 5997 SDValue Shuf = DAG.getVectorShuffle(InVT, DL, PackedOp, ZeroVec, Mask); in lowerZERO_EXTEND_VECTOR_INREG() local 5998 return DAG.getNode(ISD::BITCAST, DL, OutVT, Shuf); in lowerZERO_EXTEND_VECTOR_INREG()
|