/external/llvm-project/llvm/lib/CodeGen/ |
D | InterleavedAccessPass.cpp | 314 if (auto *SVI = dyn_cast<ShuffleVectorInst>(*BI->user_begin())) { in lowerInterleavedLoad() local 315 BinOpShuffles.insert(SVI); in lowerInterleavedLoad() 319 auto *SVI = dyn_cast<ShuffleVectorInst>(User); in lowerInterleavedLoad() local 320 if (!SVI || !isa<UndefValue>(SVI->getOperand(1))) in lowerInterleavedLoad() 323 Shuffles.push_back(SVI); in lowerInterleavedLoad() 381 for (auto SVI : Shuffles) in lowerInterleavedLoad() local 382 DeadInsts.push_back(SVI); in lowerInterleavedLoad() 391 for (auto *SVI : BinOpShuffles) { in tryReplaceBinOpShuffles() local 392 BinaryOperator *BI = cast<BinaryOperator>(SVI->getOperand(0)); in tryReplaceBinOpShuffles() 393 ArrayRef<int> Mask = SVI->getShuffleMask(); in tryReplaceBinOpShuffles() [all …]
|
D | InterleavedLoadCombinePass.cpp | 670 ShuffleVectorInst *SVI; member 679 : BB(nullptr), PV(nullptr), LIs(), Is(), SVI(nullptr), VTy(VTy) { in VectorInfo() 713 ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(V); in compute() local 714 if (SVI) in compute() 715 return computeFromSVI(SVI, Result, DL); in compute() 770 Result.SVI = nullptr; in computeFromBCI() 786 static bool computeFromSVI(ShuffleVectorInst *SVI, VectorInfo &Result, in computeFromSVI() 789 cast<FixedVectorType>(SVI->getOperand(0)->getType()); in computeFromSVI() 793 if (!compute(SVI->getOperand(0), LHS, DL)) in computeFromSVI() 798 if (!compute(SVI->getOperand(1), RHS, DL)) in computeFromSVI() [all …]
|
D | CodeGenPrepare.cpp | 401 bool optimizeShuffleVectorInst(ShuffleVectorInst *SVI); 6700 bool CodeGenPrepare::optimizeShuffleVectorInst(ShuffleVectorInst *SVI) { in optimizeShuffleVectorInst() argument 6701 if (!match(SVI, m_Shuffle(m_InsertElt(m_Undef(), m_Value(), m_ZeroInt()), in optimizeShuffleVectorInst() 6704 Type *NewType = TLI->shouldConvertSplatType(SVI); in optimizeShuffleVectorInst() 6708 auto *SVIVecType = cast<FixedVectorType>(SVI->getType()); in optimizeShuffleVectorInst() 6716 IRBuilder<> Builder(SVI->getContext()); in optimizeShuffleVectorInst() 6717 Builder.SetInsertPoint(SVI); in optimizeShuffleVectorInst() 6719 cast<Instruction>(SVI->getOperand(0))->getOperand(1), NewType); in optimizeShuffleVectorInst() 6723 Insert, UndefValue::get(NewVecType), SVI->getShuffleMask()); in optimizeShuffleVectorInst() 6726 SVI->replaceAllUsesWith(BC2); in optimizeShuffleVectorInst() [all …]
|
/external/llvm/lib/CodeGen/ |
D | InterleavedAccessPass.cpp | 214 ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(*UI); in lowerInterleavedLoad() local 215 if (!SVI || !isa<UndefValue>(SVI->getOperand(1))) in lowerInterleavedLoad() 218 Shuffles.push_back(SVI); in lowerInterleavedLoad() 260 for (auto SVI : Shuffles) in lowerInterleavedLoad() local 261 DeadInsts.push_back(SVI); in lowerInterleavedLoad() 339 ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(SI->getValueOperand()); in lowerInterleavedStore() local 340 if (!SVI || !SVI->hasOneUse()) in lowerInterleavedStore() 345 if (!isReInterleaveMask(SVI->getShuffleMask(), Factor)) in lowerInterleavedStore() 351 if (!TLI->lowerInterleavedStore(SI, SVI, Factor)) in lowerInterleavedStore() 356 DeadInsts.push_back(SVI); in lowerInterleavedStore()
|
D | CodeGenPrepare.cpp | 4705 static bool isBroadcastShuffle(ShuffleVectorInst *SVI) { in isBroadcastShuffle() argument 4706 SmallVector<int, 16> Mask(SVI->getShuffleMask()); in isBroadcastShuffle() 4721 bool CodeGenPrepare::optimizeShuffleVectorInst(ShuffleVectorInst *SVI) { in optimizeShuffleVectorInst() argument 4722 BasicBlock *DefBB = SVI->getParent(); in optimizeShuffleVectorInst() 4725 if (!TLI || !TLI->isVectorShiftByScalarCheap(SVI->getType())) in optimizeShuffleVectorInst() 4730 if (!isBroadcastShuffle(SVI)) in optimizeShuffleVectorInst() 4737 for (User *U : SVI->users()) { in optimizeShuffleVectorInst() 4755 new ShuffleVectorInst(SVI->getOperand(0), SVI->getOperand(1), in optimizeShuffleVectorInst() 4756 SVI->getOperand(2), "", &*InsertPt); in optimizeShuffleVectorInst() 4759 UI->replaceUsesOfWith(SVI, InsertedShuffle); in optimizeShuffleVectorInst() [all …]
|
/external/swiftshader/third_party/llvm-10.0/llvm/lib/CodeGen/ |
D | InterleavedAccessPass.cpp | 299 ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(*UI); in lowerInterleavedLoad() local 300 if (!SVI || !isa<UndefValue>(SVI->getOperand(1))) in lowerInterleavedLoad() 303 Shuffles.push_back(SVI); in lowerInterleavedLoad() 347 for (auto SVI : Shuffles) in lowerInterleavedLoad() local 348 DeadInsts.push_back(SVI); in lowerInterleavedLoad() 423 ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(SI->getValueOperand()); in lowerInterleavedStore() local 424 if (!SVI || !SVI->hasOneUse()) in lowerInterleavedStore() 429 unsigned OpNumElts = SVI->getOperand(0)->getType()->getVectorNumElements(); in lowerInterleavedStore() 430 if (!isReInterleaveMask(SVI->getShuffleMask(), Factor, MaxFactor, OpNumElts)) in lowerInterleavedStore() 436 if (!TLI->lowerInterleavedStore(SI, SVI, Factor)) in lowerInterleavedStore() [all …]
|
D | InterleavedLoadCombinePass.cpp | 670 ShuffleVectorInst *SVI; member 679 : BB(nullptr), PV(nullptr), LIs(), Is(), SVI(nullptr), VTy(VTy) { in VectorInfo() 713 ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(V); in compute() local 714 if (SVI) in compute() 715 return computeFromSVI(SVI, Result, DL); in compute() 770 Result.SVI = nullptr; in computeFromBCI() 786 static bool computeFromSVI(ShuffleVectorInst *SVI, VectorInfo &Result, in computeFromSVI() 788 VectorType *ArgTy = dyn_cast<VectorType>(SVI->getOperand(0)->getType()); in computeFromSVI() 793 if (!compute(SVI->getOperand(0), LHS, DL)) in computeFromSVI() 798 if (!compute(SVI->getOperand(1), RHS, DL)) in computeFromSVI() [all …]
|
D | CodeGenPrepare.cpp | 378 bool optimizeShuffleVectorInst(ShuffleVectorInst *SVI); 6219 static bool isBroadcastShuffle(ShuffleVectorInst *SVI) { in isBroadcastShuffle() argument 6220 SmallVector<int, 16> Mask(SVI->getShuffleMask()); in isBroadcastShuffle() 6235 bool CodeGenPrepare::optimizeShuffleVectorInst(ShuffleVectorInst *SVI) { in optimizeShuffleVectorInst() argument 6236 BasicBlock *DefBB = SVI->getParent(); in optimizeShuffleVectorInst() 6239 if (!TLI || !TLI->isVectorShiftByScalarCheap(SVI->getType())) in optimizeShuffleVectorInst() 6244 if (!isBroadcastShuffle(SVI)) in optimizeShuffleVectorInst() 6251 for (User *U : SVI->users()) { in optimizeShuffleVectorInst() 6269 new ShuffleVectorInst(SVI->getOperand(0), SVI->getOperand(1), in optimizeShuffleVectorInst() 6270 SVI->getOperand(2), "", &*InsertPt); in optimizeShuffleVectorInst() [all …]
|
/external/llvm/lib/Transforms/InstCombine/ |
D | InstCombineVectorOps.cpp | 225 } else if (ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(I)) { in visitExtractElementInst() local 229 int SrcIdx = SVI->getMaskValue(Elt->getZExtValue()); in visitExtractElementInst() 232 SVI->getOperand(0)->getType()->getVectorNumElements(); in visitExtractElementInst() 237 Src = SVI->getOperand(0); in visitExtractElementInst() 240 Src = SVI->getOperand(1); in visitExtractElementInst() 904 static bool isShuffleExtractingFromLHS(ShuffleVectorInst &SVI, in isShuffleExtractingFromLHS() argument 907 cast<VectorType>(SVI.getOperand(0)->getType())->getNumElements(); in isShuffleExtractingFromLHS() 919 Instruction *InstCombiner::visitShuffleVectorInst(ShuffleVectorInst &SVI) { in visitShuffleVectorInst() argument 920 Value *LHS = SVI.getOperand(0); in visitShuffleVectorInst() 921 Value *RHS = SVI.getOperand(1); in visitShuffleVectorInst() [all …]
|
D | InstCombineCasts.cpp | 1891 if (ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(Src)) { in visitBitCast() local 1894 if (SVI->hasOneUse() && DestTy->isVectorTy() && in visitBitCast() 1895 DestTy->getVectorNumElements() == SVI->getType()->getNumElements() && in visitBitCast() 1896 SVI->getType()->getNumElements() == in visitBitCast() 1897 SVI->getOperand(0)->getType()->getVectorNumElements()) { in visitBitCast() 1902 if (((Tmp = dyn_cast<BitCastInst>(SVI->getOperand(0))) && in visitBitCast() 1904 ((Tmp = dyn_cast<BitCastInst>(SVI->getOperand(1))) && in visitBitCast() 1906 Value *LHS = Builder->CreateBitCast(SVI->getOperand(0), DestTy); in visitBitCast() 1907 Value *RHS = Builder->CreateBitCast(SVI->getOperand(1), DestTy); in visitBitCast() 1910 return new ShuffleVectorInst(LHS, RHS, SVI->getOperand(2)); in visitBitCast()
|
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/InstCombine/ |
D | InstCombineVectorOps.cpp | 407 } else if (auto *SVI = dyn_cast<ShuffleVectorInst>(I)) { in visitExtractElementInst() local 411 int SrcIdx = SVI->getMaskValue(Elt->getZExtValue()); in visitExtractElementInst() 414 SVI->getOperand(0)->getType()->getVectorNumElements(); in visitExtractElementInst() 419 Src = SVI->getOperand(0); in visitExtractElementInst() 422 Src = SVI->getOperand(1); in visitExtractElementInst() 1399 static bool isShuffleExtractingFromLHS(ShuffleVectorInst &SVI, in isShuffleExtractingFromLHS() argument 1401 unsigned LHSElems = SVI.getOperand(0)->getType()->getVectorNumElements(); in isShuffleExtractingFromLHS() 1901 Instruction *InstCombiner::visitShuffleVectorInst(ShuffleVectorInst &SVI) { in visitShuffleVectorInst() argument 1902 Value *LHS = SVI.getOperand(0); in visitShuffleVectorInst() 1903 Value *RHS = SVI.getOperand(1); in visitShuffleVectorInst() [all …]
|
/external/llvm-project/llvm/lib/Transforms/InstCombine/ |
D | InstCombineVectorOps.cpp | 433 } else if (auto *SVI = dyn_cast<ShuffleVectorInst>(I)) { in visitExtractElementInst() local 437 if (isa<FixedVectorType>(SVI->getType()) && isa<ConstantInt>(Index)) { in visitExtractElementInst() 439 SVI->getMaskValue(cast<ConstantInt>(Index)->getZExtValue()); in visitExtractElementInst() 441 unsigned LHSWidth = cast<FixedVectorType>(SVI->getOperand(0)->getType()) in visitExtractElementInst() 447 Src = SVI->getOperand(0); in visitExtractElementInst() 450 Src = SVI->getOperand(1); in visitExtractElementInst() 1734 static bool isShuffleExtractingFromLHS(ShuffleVectorInst &SVI, in isShuffleExtractingFromLHS() argument 1737 cast<FixedVectorType>(SVI.getOperand(0)->getType())->getNumElements(); in isShuffleExtractingFromLHS() 2278 Instruction *InstCombinerImpl::visitShuffleVectorInst(ShuffleVectorInst &SVI) { in visitShuffleVectorInst() argument 2279 Value *LHS = SVI.getOperand(0); in visitShuffleVectorInst() [all …]
|
/external/llvm/lib/Transforms/Scalar/ |
D | Scalarizer.cpp | 545 bool Scalarizer::visitShuffleVectorInst(ShuffleVectorInst &SVI) { in visitShuffleVectorInst() argument 546 VectorType *VT = dyn_cast<VectorType>(SVI.getType()); in visitShuffleVectorInst() 551 Scatterer Op0 = scatter(&SVI, SVI.getOperand(0)); in visitShuffleVectorInst() 552 Scatterer Op1 = scatter(&SVI, SVI.getOperand(1)); in visitShuffleVectorInst() 557 int Selector = SVI.getMaskValue(I); in visitShuffleVectorInst() 565 gather(&SVI, Res); in visitShuffleVectorInst()
|
/external/llvm/lib/Analysis/ |
D | VectorUtils.cpp | 260 if (ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(V)) { in findScalarElement() local 261 unsigned LHSWidth = SVI->getOperand(0)->getType()->getVectorNumElements(); in findScalarElement() 262 int InEl = SVI->getMaskValue(EltNo); in findScalarElement() 266 return findScalarElement(SVI->getOperand(0), InEl); in findScalarElement() 267 return findScalarElement(SVI->getOperand(1), InEl - LHSWidth); in findScalarElement()
|
/external/llvm-project/llvm/lib/Target/X86/ |
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() 830 ShuffleVectorInst *SVI, in lowerInterleavedStore() argument 835 assert(cast<FixedVectorType>(SVI->getType())->getNumElements() % Factor == in lowerInterleavedStore() 842 auto Mask = SVI->getShuffleMask(); in lowerInterleavedStore() 846 ArrayRef<ShuffleVectorInst *> Shuffles = makeArrayRef(SVI); in lowerInterleavedStore()
|
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Target/X86/ |
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() 824 ShuffleVectorInst *SVI, in lowerInterleavedStore() argument 829 assert(SVI->getType()->getVectorNumElements() % Factor == 0 && in lowerInterleavedStore() 835 auto Mask = SVI->getShuffleMask(); in lowerInterleavedStore() 839 ArrayRef<ShuffleVectorInst *> Shuffles = makeArrayRef(SVI); in lowerInterleavedStore()
|
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Scalar/ |
D | Scalarizer.cpp | 195 bool visitShuffleVectorInst(ShuffleVectorInst &SVI); 737 bool ScalarizerVisitor::visitShuffleVectorInst(ShuffleVectorInst &SVI) { in visitShuffleVectorInst() argument 738 VectorType *VT = dyn_cast<VectorType>(SVI.getType()); in visitShuffleVectorInst() 743 Scatterer Op0 = scatter(&SVI, SVI.getOperand(0)); in visitShuffleVectorInst() 744 Scatterer Op1 = scatter(&SVI, SVI.getOperand(1)); in visitShuffleVectorInst() 749 int Selector = SVI.getMaskValue(I); in visitShuffleVectorInst() 757 gather(&SVI, Res); in visitShuffleVectorInst()
|
/external/llvm-project/llvm/lib/Transforms/Scalar/ |
D | Scalarizer.cpp | 203 bool visitShuffleVectorInst(ShuffleVectorInst &SVI); 816 bool ScalarizerVisitor::visitShuffleVectorInst(ShuffleVectorInst &SVI) { in visitShuffleVectorInst() argument 817 VectorType *VT = dyn_cast<VectorType>(SVI.getType()); in visitShuffleVectorInst() 822 Scatterer Op0 = scatter(&SVI, SVI.getOperand(0)); in visitShuffleVectorInst() 823 Scatterer Op1 = scatter(&SVI, SVI.getOperand(1)); in visitShuffleVectorInst() 828 int Selector = SVI.getMaskValue(I); in visitShuffleVectorInst() 836 gather(&SVI, Res); in visitShuffleVectorInst()
|
D | GVNSink.cpp | 361 if (ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(I)) in InstructionUseExpr() local 362 ShuffleMask = SVI->getShuffleMask().copy(A); in InstructionUseExpr()
|
/external/llvm-project/llvm/lib/Bitcode/Writer/ |
D | ValueEnumerator.cpp | 191 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in orderModule() local 192 orderValue(SVI->getShuffleMaskForBitcode(), OM); in orderModule() 323 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in predictUseListOrder() local 324 predictValueUseListOrder(SVI->getShuffleMaskForBitcode(), &F, OM, in predictUseListOrder() 457 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in ValueEnumerator() local 458 EnumerateType(SVI->getShuffleMaskForBitcode()->getType()); in ValueEnumerator() 1017 if (auto *SVI = dyn_cast<ShuffleVectorInst>(&I)) in incorporateFunction() local 1018 EnumerateValue(SVI->getShuffleMaskForBitcode()); in incorporateFunction()
|
/external/llvm-project/llvm/lib/Analysis/ |
D | VectorUtils.cpp | 302 ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(V); in findScalarElement() local 304 if (SVI && isa<FixedVectorType>(SVI->getType())) { in findScalarElement() 306 cast<FixedVectorType>(SVI->getOperand(0)->getType())->getNumElements(); in findScalarElement() 307 int InEl = SVI->getMaskValue(EltNo); in findScalarElement() 311 return findScalarElement(SVI->getOperand(0), InEl); in findScalarElement() 312 return findScalarElement(SVI->getOperand(1), InEl - LHSWidth); in findScalarElement()
|
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Analysis/ |
D | VectorUtils.cpp | 288 if (ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(V)) { in findScalarElement() local 289 unsigned LHSWidth = SVI->getOperand(0)->getType()->getVectorNumElements(); in findScalarElement() 290 int InEl = SVI->getMaskValue(EltNo); in findScalarElement() 294 return findScalarElement(SVI->getOperand(0), InEl); in findScalarElement() 295 return findScalarElement(SVI->getOperand(1), InEl - LHSWidth); in findScalarElement()
|
/external/llvm-project/llvm/lib/IR/ |
D | Instruction.cpp | 461 if (const ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(I1)) in haveSameSpecialState() local 462 return SVI->getShuffleMask() == in haveSameSpecialState()
|
/external/llvm-project/llvm/lib/Target/ARM/ |
D | ARMISelLowering.h | 411 Type* shouldConvertSplatType(ShuffleVectorInst* SVI) const override; 612 bool lowerInterleavedStore(StoreInst *SI, ShuffleVectorInst *SVI,
|
/external/llvm-project/llvm/lib/Transforms/Utils/ |
D | FunctionComparator.cpp | 666 if (const ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(L)) { in cmpOperations() local 667 ArrayRef<int> LMask = SVI->getShuffleMask(); in cmpOperations()
|