Home | History | Annotate | Download | only in InstCombine

Lines Matching full:getoperand

23   assert(I.getOperand(1)->getType() == I.getOperand(0)->getType());
24 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
92 if (MaskedValueIsZero(I->getOperand(0),
95 return CanEvaluateTruncated(I->getOperand(0), Ty);
112 return CanEvaluateShifted(I->getOperand(0), NumBits, isLeftShift, IC) &&
113 CanEvaluateShifted(I->getOperand(1), NumBits, isLeftShift, IC);
117 CI = dyn_cast<ConstantInt>(I->getOperand(1));
132 if (MaskedValueIsZero(I->getOperand(0),
141 CI = dyn_cast<ConstantInt>(I->getOperand(1));
156 if (MaskedValueIsZero(I->getOperand(0),
207 I->setOperand(0, GetShiftedValue(I->getOperand(0), NumBits,isLeftShift,IC));
208 I->setOperand(1, GetShiftedValue(I->getOperand(1), NumBits,isLeftShift,IC));
216 ConstantInt *CI = cast<ConstantInt>(BO->getOperand(1));
235 V = IC.Builder->CreateAnd(BO->getOperand(0),
257 ConstantInt *CI = cast<ConstantInt>(BO->getOperand(1));
275 V = IC.Builder->CreateAnd(I->getOperand(0),
294 I->setOperand(1, GetShiftedValue(I->getOperand(1), NumBits,isLeftShift,IC));
295 I->setOperand(2, GetShiftedValue(I->getOperand(2), NumBits,isLeftShift,IC));
347 if (Constant *BOOp = dyn_cast<Constant>(BO->getOperand(1)))
348 return BinaryOperator::CreateMul(BO->getOperand(0),
361 Instruction *TrOp = dyn_cast<Instruction>(TI->getOperand(0));
368 isa<ConstantInt>(TrOp->getOperand(1))) {
416 if (isLeftShift && Op0BO->getOperand(1)->hasOneUse() &&
417 match(Op0BO->getOperand(1), m_Shr(m_Value(V1),
420 Builder->CreateShl(Op0BO->getOperand(0), Op1, Op0BO->getName());
423 Op0BO->getOperand(1)->getName());
430 Value *Op0BOOp1 = Op0BO->getOperand(1);
435 cast<BinaryOperator>(Op0BOOp1)->getOperand(0)->hasOneUse()) {
437 Builder->CreateShl(Op0BO->getOperand(0), Op1,
449 if (isLeftShift && Op0BO->getOperand(0)->hasOneUse() &&
450 match(Op0BO->getOperand(0), m_Shr(m_Value(V1),
453 Builder->CreateShl(Op0BO->getOperand(1), Op1, Op0BO->getName());
456 Op0BO->getOperand(0)->getName());
463 if (isLeftShift && Op0BO->getOperand(0)->hasOneUse() &&
464 match(Op0BO->getOperand(0),
467 cast<BinaryOperator>(Op0BO->getOperand(0))
468 ->getOperand(0)->hasOneUse()) {
470 Builder->CreateShl(Op0BO->getOperand(1), Op1, Op0BO->getName());
485 if (ConstantInt *Op0C = dyn_cast<ConstantInt>(Op0BO->getOperand(1))) {
516 Builder->CreateBinOp(I.getOpcode(), Op0BO->getOperand(0), Op1);
531 if (ShiftOp && isa<ConstantInt>(ShiftOp->getOperand(1))) {
532 ConstantInt *ShiftAmt1C = cast<ConstantInt>(ShiftOp->getOperand(1));
537 Value *X = ShiftOp->getOperand(0);
685 if (Value *V = SimplifyShlInst(I.getOperand(0), I.getOperand(1),
693 if (ConstantInt *Op1C = dyn_cast<ConstantInt>(I.getOperand(1))) {
698 MaskedValueIsZero(I.getOperand(0),
706 ComputeNumSignBits(I.getOperand(0)) > ShAmt) {
715 if (match(I.getOperand(0), m_OneUse(m_Shl(m_Constant(C1), m_Value(A)))) &&
716 match(I.getOperand(1), m_Constant(C2)))
723 if (Value *V = SimplifyLShrInst(I.getOperand(0), I.getOperand(1),
730 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
763 if (Value *V = SimplifyAShrInst(I.getOperand(0), I.getOperand(1),
770 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
790 uint32_t SrcBits = ZI->getOperand(0)->getType()->getScalarSizeInBits();
793 return new SExtInst(ZI->getOperand