Home | History | Annotate | Download | only in InstCombine

Lines Matching refs: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),
206 I->setOperand(0, GetShiftedValue(I->getOperand(0), NumBits,isLeftShift,IC));
207 I->setOperand(1, GetShiftedValue(I->getOperand(1), NumBits,isLeftShift,IC));
215 ConstantInt *CI = cast<ConstantInt>(BO->getOperand(1));
234 V = IC.Builder->CreateAnd(BO->getOperand(0),
256 ConstantInt *CI = cast<ConstantInt>(BO->getOperand(1));
274 V = IC.Builder->CreateAnd(I->getOperand(0),
293 I->setOperand(1, GetShiftedValue(I->getOperand(1), NumBits,isLeftShift,IC));
294 I->setOperand(2, GetShiftedValue(I->getOperand(2), NumBits,isLeftShift,IC));
346 if (Constant *BOOp = dyn_cast<Constant>(BO->getOperand(1)))
347 return BinaryOperator::CreateMul(BO->getOperand(0),
360 Instruction *TrOp = dyn_cast<Instruction>(TI->getOperand(0));
367 isa<ConstantInt>(TrOp->getOperand(1))) {
415 if (isLeftShift && Op0BO->getOperand(1)->hasOneUse() &&
416 match(Op0BO->getOperand(1), m_Shr(m_Value(V1),
419 Builder->CreateShl(Op0BO->getOperand(0), Op1, Op0BO->getName());
422 Op0BO->getOperand(1)->getName());
429 Value *Op0BOOp1 = Op0BO->getOperand(1);
434 cast<BinaryOperator>(Op0BOOp1)->getOperand(0)->hasOneUse()) {
436 Builder->CreateShl(Op0BO->getOperand(0), Op1,
448 if (isLeftShift && Op0BO->getOperand(0)->hasOneUse() &&
449 match(Op0BO->getOperand(0), m_Shr(m_Value(V1),
452 Builder->CreateShl(Op0BO->getOperand(1), Op1, Op0BO->getName());
455 Op0BO->getOperand(0)->getName());
462 if (isLeftShift && Op0BO->getOperand(0)->hasOneUse() &&
463 match(Op0BO->getOperand(0),
466 cast<BinaryOperator>(Op0BO->getOperand(0))
467 ->getOperand(0)->hasOneUse()) {
469 Builder->CreateShl(Op0BO->getOperand(1), Op1, Op0BO->getName());
484 if (ConstantInt *Op0C = dyn_cast<ConstantInt>(Op0BO->getOperand(1))) {
515 Builder->CreateBinOp(I.getOpcode(), Op0BO->getOperand(0), Op1);
530 if (ShiftOp && isa<ConstantInt>(ShiftOp->getOperand(1))) {
531 ConstantInt *ShiftAmt1C = cast<ConstantInt>(ShiftOp->getOperand(1));
536 Value *X = ShiftOp->getOperand(0);
630 if (Value *V = SimplifyShlInst(I.getOperand(0), I.getOperand(1),
638 if (ConstantInt *Op1C = dyn_cast<ConstantInt>(I.getOperand(1))) {
643 MaskedValueIsZero(I.getOperand(0),
651 ComputeNumSignBits(I.getOperand(0)) > ShAmt) {
660 if (match(I.getOperand(0), m_OneUse(m_Shl(m_Constant(C1), m_Value(A)))) &&
661 match(I.getOperand(1), m_Constant(C2)))
668 if (Value *V = SimplifyLShrInst(I.getOperand(0), I.getOperand(1),
675 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
708 if (Value *V = SimplifyAShrInst(I.getOperand(0), I.getOperand(1),
715 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
735 uint32_t SrcBits = ZI->getOperand(0)->getType()->getScalarSizeInBits();
738 return new SExtInst(ZI->getOperand(0), ZI->getType());