| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | InterleavedAccessPass.cpp | 316 for (auto *SVI : BI->users()) in lowerInterleavedLoad() local 321 auto *SVI = dyn_cast<ShuffleVectorInst>(User); in lowerInterleavedLoad() local 322 if (!SVI || !isa<UndefValue>(SVI->getOperand(1))) in lowerInterleavedLoad() 325 Shuffles.push_back(SVI); in lowerInterleavedLoad() 398 for (auto *SVI : BinOpShuffles) { in replaceBinOpShuffles() local 401 ArrayRef<int> Mask = SVI->getShuffleMask(); in replaceBinOpShuffles() 408 Mask, SVI->getName(), SVI); in replaceBinOpShuffles() 411 SVI->getName(), SVI); in replaceBinOpShuffles() 414 SVI->replaceAllUsesWith(NewBI); in replaceBinOpShuffles() 498 if (!SVI || !SVI->hasOneUse() || isa<ScalableVectorType>(SVI->getType())) in lowerInterleavedStore() [all …]
|
| H A D | InterleavedLoadCombinePass.cpp | 669 ShuffleVectorInst *SVI = nullptr; member 712 if (SVI) in compute() 713 return computeFromSVI(SVI, Result, DL); in compute() 768 Result.SVI = nullptr; in computeFromBCI() 791 if (!compute(SVI->getOperand(0), LHS, DL)) in computeFromSVI() 831 Result.Is.insert(SVI); in computeFromSVI() 832 Result.SVI = SVI; in computeFromSVI() 835 for (int i : SVI->getShuffleMask()) { in computeFromSVI() 1147 SVIs.insert(VI.SVI); in combine() 1236 Builder.SetInsertPoint(VI.SVI); in combine() [all …]
|
| H A D | CodeGenPrepare.cpp | 412 bool optimizeShuffleVectorInst(ShuffleVectorInst *SVI); 6914 bool CodeGenPrepare::optimizeShuffleVectorInst(ShuffleVectorInst *SVI) { in optimizeShuffleVectorInst() argument 6916 if (!match(SVI, m_Shuffle(m_InsertElt(m_Undef(), m_Value(), m_ZeroInt()), in optimizeShuffleVectorInst() 6919 Type *NewType = TLI->shouldConvertSplatType(SVI); in optimizeShuffleVectorInst() 6923 auto *SVIVecType = cast<FixedVectorType>(SVI->getType()); in optimizeShuffleVectorInst() 6931 IRBuilder<> Builder(SVI->getContext()); in optimizeShuffleVectorInst() 6932 Builder.SetInsertPoint(SVI); in optimizeShuffleVectorInst() 6934 cast<Instruction>(SVI->getOperand(0))->getOperand(1), NewType); in optimizeShuffleVectorInst() 6938 SVI->replaceAllUsesWith(BC2); in optimizeShuffleVectorInst() 6940 SVI, TLInfo, nullptr, [&](Value *V) { removeAllAssertingVHReferences(V); }); in optimizeShuffleVectorInst()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineVectorOps.cpp | 528 Src = SVI->getOperand(0); in visitExtractElementInst() 531 Src = SVI->getOperand(1); in visitExtractElementInst() 2545 Value *LHS = SVI.getOperand(0); in visitShuffleVectorInst() 2546 Value *RHS = SVI.getOperand(1); in visitShuffleVectorInst() 2550 return replaceInstUsesWith(SVI, V); in visitShuffleVectorInst() 2618 SVI.commute(); in visitShuffleVectorInst() 2619 return &SVI; in visitShuffleVectorInst() 2643 if (V != &SVI) in visitShuffleVectorInst() 2645 return &SVI; in visitShuffleVectorInst() 2703 for (User *U : SVI.users()) in visitShuffleVectorInst() [all …]
|
| H A D | InstCombineInternal.h | 170 Instruction *visitShuffleVectorInst(ShuffleVectorInst &SVI);
|
| /llvm-project-15.0.7/llvm/lib/Target/X86/ |
| H A D | X86InterleavedAccess.cpp | 180 if (auto *SVI = dyn_cast<ShuffleVectorInst>(VecInst)) { in decompose() local 181 Value *Op0 = SVI->getOperand(0); in decompose() 182 Value *Op1 = SVI->getOperand(1); in decompose() 828 ShuffleVectorInst *SVI, in lowerInterleavedStore() argument 833 assert(cast<FixedVectorType>(SVI->getType())->getNumElements() % Factor == in lowerInterleavedStore() 840 auto Mask = SVI->getShuffleMask(); in lowerInterleavedStore() 844 ArrayRef<ShuffleVectorInst *> Shuffles = makeArrayRef(SVI); in lowerInterleavedStore()
|
| H A D | X86ISelLowering.h | 1482 bool lowerInterleavedStore(StoreInst *SI, ShuffleVectorInst *SVI,
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | Scalarizer.cpp | 223 bool visitShuffleVectorInst(ShuffleVectorInst &SVI); 864 bool ScalarizerVisitor::visitShuffleVectorInst(ShuffleVectorInst &SVI) { in visitShuffleVectorInst() argument 865 VectorType *VT = dyn_cast<VectorType>(SVI.getType()); in visitShuffleVectorInst() 870 Scatterer Op0 = scatter(&SVI, SVI.getOperand(0)); in visitShuffleVectorInst() 871 Scatterer Op1 = scatter(&SVI, SVI.getOperand(1)); in visitShuffleVectorInst() 876 int Selector = SVI.getMaskValue(I); in visitShuffleVectorInst() 884 gather(&SVI, Res); in visitShuffleVectorInst()
|
| H A D | GVNSink.cpp | 359 if (ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(I)) in InstructionUseExpr() local 360 ShuffleMask = SVI->getShuffleMask().copy(A); in InstructionUseExpr()
|
| H A D | GVN.cpp | 345 } else if (auto *SVI = dyn_cast<ShuffleVectorInst>(I)) { in createExpr() local 346 ArrayRef<int> ShuffleMask = SVI->getShuffleMask(); in createExpr()
|
| /llvm-project-15.0.7/llvm/lib/Bitcode/Writer/ |
| H A D | ValueEnumerator.cpp | 157 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in orderModule() local 158 orderValue(SVI->getShuffleMaskForBitcode(), OM); in orderModule() 286 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in predictUseListOrder() local 287 predictValueUseListOrder(SVI->getShuffleMaskForBitcode(), &F, OM, in predictUseListOrder() 433 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in ValueEnumerator() local 434 EnumerateType(SVI->getShuffleMaskForBitcode()->getType()); in ValueEnumerator() 1049 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in incorporateFunction() local 1050 EnumerateValue(SVI->getShuffleMaskForBitcode()); in incorporateFunction()
|
| /llvm-project-15.0.7/llvm/lib/Target/DirectX/DXILWriter/ |
| H A D | DXILValueEnumerator.cpp | 194 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in orderModule() local 195 orderValue(SVI->getShuffleMaskForBitcode(), OM); in orderModule() 326 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in predictUseListOrder() local 327 predictValueUseListOrder(SVI->getShuffleMaskForBitcode(), &F, OM, in predictUseListOrder() 471 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in ValueEnumerator() local 472 EnumerateType(SVI->getShuffleMaskForBitcode()->getType()); in ValueEnumerator() 1054 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in incorporateFunction() local 1055 EnumerateValue(SVI->getShuffleMaskForBitcode()); in incorporateFunction()
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | VectorUtils.cpp | 318 ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(V); in findScalarElement() local 320 if (SVI && isa<FixedVectorType>(SVI->getType())) { in findScalarElement() 322 cast<FixedVectorType>(SVI->getOperand(0)->getType())->getNumElements(); in findScalarElement() 323 int InEl = SVI->getMaskValue(EltNo); in findScalarElement() 327 return findScalarElement(SVI->getOperand(0), InEl); in findScalarElement() 328 return findScalarElement(SVI->getOperand(1), InEl - LHSWidth); in findScalarElement()
|
| H A D | InstructionSimplify.cpp | 6411 auto *SVI = cast<ShuffleVectorInst>(I); in simplifyInstructionWithOperands() local 6413 NewOps[0], NewOps[1], SVI->getShuffleMask(), SVI->getType(), Q); in simplifyInstructionWithOperands()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/ |
| H A D | VectorCombine.cpp | 1247 auto *SVI = dyn_cast<ShuffleVectorInst>(&I); in foldSelectShuffle() local 1249 if (!SVI || !VT) in foldSelectShuffle() 1251 auto *Op0 = dyn_cast<Instruction>(SVI->getOperand(0)); in foldSelectShuffle() 1252 auto *Op1 = dyn_cast<Instruction>(SVI->getOperand(1)); in foldSelectShuffle()
|
| /llvm-project-15.0.7/llvm/lib/IR/ |
| H A D | Instruction.cpp | 492 if (const ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(I1)) in haveSameSpecialState() local 493 return SVI->getShuffleMask() == in haveSameSpecialState()
|
| H A D | AsmWriter.cpp | 4347 } else if (const ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(&I)) { in printInstruction() local 4348 PrintShuffleMask(Out, SVI->getType(), SVI->getShuffleMask()); in printInstruction()
|
| /llvm-project-15.0.7/llvm/lib/Target/ARM/ |
| H A D | ARMISelLowering.h | 458 Type* shouldConvertSplatType(ShuffleVectorInst* SVI) const override; 662 bool lowerInterleavedStore(StoreInst *SI, ShuffleVectorInst *SVI,
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Utils/ |
| H A D | FunctionComparator.cpp | 672 if (const ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(L)) { in cmpOperations() local 673 ArrayRef<int> LMask = SVI->getShuffleMask(); in cmpOperations()
|
| /llvm-project-15.0.7/llvm/unittests/IR/ |
| H A D | InstructionsTest.cpp | 1250 ShuffleVectorInst *SVI = new ShuffleVectorInst(Op, Op, ReplicatedMask); in TEST() local 1251 EXPECT_EQ(SVI->isReplicationMask(GuessedReplicationFactor, GuessedVF), in TEST() 1253 delete SVI; in TEST()
|
| /llvm-project-15.0.7/clang/lib/CodeGen/ |
| H A D | CGExprScalar.cpp | 1807 static int getMaskElt(llvm::ShuffleVectorInst *SVI, unsigned Idx, in getMaskElt() argument 1809 int MV = SVI->getMaskValue(Idx); in getMaskElt() 1912 llvm::ShuffleVectorInst *SVI = cast<llvm::ShuffleVectorInst>(Init); in VisitInitListExpr() local 1913 Value *SVOp = SVI->getOperand(0); in VisitInitListExpr() 1927 Args.push_back(getMaskElt(SVI, j, Offset)); in VisitInitListExpr()
|
| /llvm-project-15.0.7/llvm/lib/Target/AArch64/ |
| H A D | AArch64ISelLowering.h | 613 bool lowerInterleavedStore(StoreInst *SI, ShuffleVectorInst *SVI,
|
| H A D | AArch64ISelLowering.cpp | 13143 ShuffleVectorInst *SVI = Shuffles[i]; in lowerInterleavedLoad() local 13156 SubVec, FixedVectorType::get(SVI->getType()->getElementType(), in lowerInterleavedLoad() 13159 SubVecs[SVI].push_back(SubVec); in lowerInterleavedLoad() 13167 for (ShuffleVectorInst *SVI : Shuffles) { in lowerInterleavedLoad() 13168 auto &SubVec = SubVecs[SVI]; in lowerInterleavedLoad() 13171 SVI->replaceAllUsesWith(WideVec); in lowerInterleavedLoad() 13204 ShuffleVectorInst *SVI, in lowerInterleavedStore() argument 13209 auto *VecTy = cast<FixedVectorType>(SVI->getType()); in lowerInterleavedStore() 13228 Value *Op0 = SVI->getOperand(0); in lowerInterleavedStore() 13229 Value *Op1 = SVI->getOperand(1); in lowerInterleavedStore() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/CodeGen/ |
| H A D | TargetLowering.h | 2588 virtual Type* shouldConvertSplatType(ShuffleVectorInst* SVI) const { in shouldConvertSplatType() argument 2845 virtual bool lowerInterleavedStore(StoreInst *SI, ShuffleVectorInst *SVI, in lowerInterleavedStore() argument
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/GlobalISel/ |
| H A D | IRTranslator.cpp | 2829 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&U)) in translateShuffleVector() local 2830 Mask = SVI->getShuffleMask(); in translateShuffleVector()
|