Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:getOperand

40       isa<ConstantInt>(I->getOperand(2)))
46 (CheapToScalarize(BO->getOperand(0), isConstant) ||
47 CheapToScalarize(BO->getOperand(1), isConstant)))
51 (CheapToScalarize(CI->getOperand(0), isConstant) ||
52 CheapToScalarize(CI->getOperand(1), isConstant)))
73 if (!isa<ConstantInt>(III->getOperand(2)))
75 unsigned IIElt = cast<ConstantInt>(III->getOperand(2))->getZExtValue();
80 return III->getOperand(1);
84 return FindScalarElement(III->getOperand(0), EltNo);
88 unsigned LHSWidth = SVI->getOperand(0)->getType()->getVectorNumElements();
93 return FindScalarElement(SVI->getOperand(0), InEl);
94 return FindScalarElement(SVI->getOperand(1), InEl - LHSWidth);
111 if (Constant *C = dyn_cast<Constant>(EI.getOperand(0)))
117 if (ConstantInt *IdxC = dyn_cast<ConstantInt>(EI.getOperand(1))) {
129 if (EI.getOperand(0)->hasOneUse() && VectorWidth != 1) {
133 if (Value *V = SimplifyDemandedVectorElts(EI.getOperand(0),
140 if (Value *Elt = FindScalarElement(EI.getOperand(0), IndexVal))
146 if (BitCastInst *BCI = dyn_cast<BitCastInst>(EI.getOperand(0))) {
147 if (VectorType *VT = dyn_cast<VectorType>(BCI->getOperand(0)->getType()))
149 if (Value *Elt = FindScalarElement(BCI->getOperand(0), IndexVal))
154 if (Instruction *I = dyn_cast<Instruction>(EI.getOperand(0))) {
159 CheapToScalarize(BO, isa<ConstantInt>(EI.getOperand(1)))) {
161 Builder->CreateExtractElement(BO->getOperand(0), EI.getOperand(1),
164 Builder->CreateExtractElement(BO->getOperand(1), EI.getOperand(1),
170 if (IE->getOperand(2) == EI.getOperand(1))
171 return ReplaceInstUsesWith(EI, IE->getOperand(1));
174 if (isa<Constant>(IE->getOperand(2)) && isa<Constant>(EI.getOperand(1))) {
175 Worklist.AddValue(EI.getOperand(0));
176 EI.setOperand(0, IE->getOperand(0));
182 if (ConstantInt *Elt = dyn_cast<ConstantInt>(EI.getOperand(1))) {
186 SVI->getOperand(0)->getType()->getVectorNumElements();
191 Src = SVI->getOperand(0);
194 Src = SVI->getOperand(1);
206 Value *EE = Builder->CreateExtractElement(CI->getOperand(0),
244 Value *VecOp = IEI->getOperand(0);
245 Value *ScalarOp = IEI->getOperand(1);
246 Value *IdxOp = IEI->getOperand(2);
261 if (isa<ConstantInt>(EI->getOperand(1)) &&
262 EI->getOperand(0)->getType() == V->getType()) {
264 cast<ConstantInt>(EI->getOperand(1))->getZExtValue();
267 if (EI->getOperand(0) == LHS || EI->getOperand(0) == RHS) {
272 if (EI->getOperand(0) == LHS) {
277 assert(EI->getOperand(0) == RHS);
315 Value *VecOp = IEI->getOperand(0);
316 Value *ScalarOp = IEI->getOperand(1);
317 Value *IdxOp = IEI->getOperand(2);
320 if (isa<ConstantInt>(EI->getOperand(1)) && isa<ConstantInt>(IdxOp) &&
321 EI->getOperand(0)->getType() == V->getType()) {
323 cast<ConstantInt>(EI->getOperand(1))->getZExtValue();
328 if (EI->getOperand(0) == RHS || RHS == 0) {
329 RHS = EI->getOperand(0);
338 Value *V = CollectShuffleElements(EI->getOperand(0), Mask, RHS);
350 if (CollectSingleShuffleElements(IEI, EI->getOperand(0), RHS, Mask))
351 return EI->getOperand(0);
364 Value *VecOp = IE.getOperand(0);
365 Value *ScalarOp = IE.getOperand(1);
366 Value *IdxOp = IE.getOperand(2);
375 if (isa<ConstantInt>(EI->getOperand(1)) && isa<ConstantInt>(IdxOp) &&
376 EI->getOperand(0)->getType() == IE.getType()) {
379 cast<ConstantInt>(EI->getOperand(1))->getZExtValue();
390 getOperand(0) == VecOp && ExtractedIdx == InsertedIdx)
420 Value *LHS = SVI.getOperand(0);
421 Value *RHS = SVI.getOperand(1);
427 if (isa<UndefValue>(SVI.getOperand(2)))
437 LHS = SVI.getOperand(0);
438 RHS = SVI.getOperand(1);
472 SVI.setOperand(0, SVI.getOperand(1));
475 LHS = SVI.getOperand(0);
476 RHS = SVI.getOperand(1);
544 if (!isa<UndefValue>(LHSShuffle->getOperand(1)) && !isa<UndefValue>(RHS))
547 if (!isa<UndefValue>(RHSShuffle->getOperand(1)))
558 LHSOp0 = LHSShuffle->getOperand(0);
559 LHSOp1 = LHSShuffle->getOperand(1);
563 RHSOp0 = RHSShuffle->getOperand(0);
637 assert(isa<UndefValue>(RHSShuffle->getOperand(1))