Lines Matching defs:IndexC

227   // extelt (bitcast VecX), IndexC --> bitcast X[IndexC]
390 static ConstantInt *getPreferredVectorIndex(ConstantInt *IndexC) {
391 const unsigned IndexBW = IndexC->getBitWidth();
392 if (IndexBW == 64 || IndexC->getValue().getActiveBits() > 64)
394 return ConstantInt::get(IndexC->getContext(),
395 IndexC->getValue().zextOrTrunc(64));
421 auto *IndexC = dyn_cast<ConstantInt>(Index);
423 if (IndexC) {
425 if (auto *NewIdx = getPreferredVectorIndex(IndexC))
430 HasKnownValidIndex = IndexC->getValue().ult(NumElts);
436 if (IID == Intrinsic::stepvector && IndexC->getValue().ult(NumElts)) {
442 if (IndexC->getValue().getActiveBits() <= BitWidth)
443 Idx = ConstantInt::get(Ty, IndexC->getValue().zextOrTrunc(BitWidth));
452 if (!EC.isScalable() && IndexC->getValue().uge(NumElts))
505 if (isa<Constant>(IE->getOperand(2)) && IndexC)
510 uint64_t IdxVal = IndexC ? IndexC->getZExtValue() : 0;
511 if (IndexC && IdxVal < EC.getKnownMinValue() && GEP->hasOneUse()) {
527 NewPtr = Builder.CreateExtractElement(NewPtr, IndexC);
533 NewOps.push_back(Builder.CreateExtractElement(Op, IndexC));
581 if (IndexC) {
593 DemandedElts.setBit(IndexC->getZExtValue());
1682 if (auto *IndexC = dyn_cast<ConstantInt>(IdxOp)) {
1683 if (auto *NewIdx = getPreferredVectorIndex(IndexC))
1691 !isa<Constant>(OtherScalar) && OtherIndexVal > IndexC->getZExtValue()) {
2286 uint64_t IndexC;
2290 m_ConstantInt(IndexC)))) ||
2291 !match(Op1, m_Poison()) || match(Mask, m_ZeroMask()) || IndexC == 0)
2708 // shuffle (insert ?, Scalar, IndexC), V1, Mask --> insert V1, Scalar, IndexC'
2709 auto isShufflingScalarIntoOp1 = [&](Value *&Scalar, ConstantInt *&IndexC) {
2712 m_ConstantInt(IndexC))))
2728 if (NewInsIndex != -1 || Mask[i] != IndexC->getSExtValue())
2738 IndexC = ConstantInt::get(IndexC->getIntegerType(), NewInsIndex);
2746 ConstantInt *IndexC;
2747 if (isShufflingScalarIntoOp1(Scalar, IndexC))
2748 return InsertElementInst::Create(V1, Scalar, IndexC);
2755 if (isShufflingScalarIntoOp1(Scalar, IndexC))
2756 return InsertElementInst::Create(V1, Scalar, IndexC);