Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:LHSI

993                                                           Instruction *LHSI,
997 switch (LHSI->getOpcode()) {
999 if (ICI.isEquality() && LHSI->hasOneUse()) {
1002 unsigned DstBits = LHSI->getType()->getPrimitiveSizeInBits(),
1003 SrcBits = LHSI->getOperand(0)->getType()->getPrimitiveSizeInBits();
1006 ComputeMaskedBits(LHSI->getOperand(0), Mask, KnownZero, KnownOne);
1013 return new ICmpInst(ICI.getPredicate(), LHSI->getOperand(0),
1020 if (ConstantInt *XorCST = dyn_cast<ConstantInt>(LHSI->getOperand(1))) {
1025 Value *CompareVal = LHSI->getOperand(0);
1031 Worklist.Add(LHSI);
1049 if (LHSI->hasOneUse()) {
1056 return new ICmpInst(Pred, LHSI->getOperand(0),
1068 return new ICmpInst(Pred, LHSI->getOperand(0),
1076 if (LHSI->hasOneUse() && isa<ConstantInt>(LHSI->getOperand(1)) &&
1077 LHSI->getOperand(0)->hasOneUse()) {
1078 ConstantInt *AndCST = cast<ConstantInt>(LHSI->getOperand(1));
1083 if (TruncInst *Cast = dyn_cast<TruncInst>(LHSI->getOperand(0))) {
1093 NewAnd->takeName(LHSI);
1101 if (ZExtInst *Cast = dyn_cast<ZExtInst>(LHSI->getOperand(0))) {
1109 NewAnd->takeName(LHSI);
1119 BinaryOperator *Shift = dyn_cast<BinaryOperator>(LHSI->getOperand(0));
1172 LHSI->setOperand(1, NewAndCST);
1173 LHSI->setOperand(0, Shift->getOperand(0));
1197 Builder->CreateAnd(Shift->getOperand(0), NS, LHSI->getName());
1205 if (LoadInst *LI = dyn_cast<LoadInst>(LHSI->getOperand(0))) {
1210 !LI->isVolatile() && isa<ConstantInt>(LHSI->getOperand(1))) {
1211 ConstantInt *C = cast<ConstantInt>(LHSI->getOperand(1));
1219 if (!ICI.isEquality() || !RHS->isNullValue() || !LHSI->hasOneUse())
1222 if (match(LHSI, m_Or(m_PtrToInt(m_Value(P)), m_PtrToInt(m_Value(Q))))) {
1240 ConstantInt *ShAmt = dyn_cast<ConstantInt>(LHSI->getOperand(1));
1266 if (cast<BinaryOperator>(LHSI)->hasNoUnsignedWrap())
1267 return new ICmpInst(ICI.getPredicate(), LHSI->getOperand(0),
1270 if (LHSI->hasOneUse()) {
1278 Builder->CreateAnd(LHSI->getOperand(0),Mask, LHSI->getName()+".mask");
1286 if (LHSI->hasOneUse() &&
1289 Constant *Mask = ConstantInt::get(LHSI->getOperand(0)->getType(),
1293 Builder->CreateAnd(LHSI->getOperand(0), Mask, LHSI->getName()+".mask");
1303 BinaryOperator *BO = cast<BinaryOperator>(LHSI);
1304 if (ConstantInt *ShAmt = dyn_cast<ConstantInt>(LHSI->getOperand(1))) {
1325 if (ConstantInt *DivRHS = dyn_cast<ConstantInt>(LHSI->getOperand(1)))
1326 if (Instruction *R = FoldICmpDivCst(ICI, cast<BinaryOperator>(LHSI),
1334 ConstantInt *LHSC = dyn_cast<ConstantInt>(LHSI->getOperand(1));
1343 return new ICmpInst(ICmpInst::ICMP_SLT, LHSI->getOperand(0),
1346 return new ICmpInst(ICmpInst::ICMP_SGE, LHSI->getOperand(0),
1351 return new ICmpInst(ICmpInst::ICMP_ULT, LHSI->getOperand(0),
1354 return new ICmpInst(ICmpInst::ICMP_UGE, LHSI->getOperand(0),
1368 if (BinaryOperator *BO = dyn_cast<BinaryOperator>(LHSI)) {
1453 ICmpInst::ICMP_NE, LHSI,
1480 } else if (IntrinsicInst *II = dyn_cast<IntrinsicInst>(LHSI)) {
2144 if (Instruction *LHSI = dyn_cast<Instruction>(Op0))
2145 if (Instruction *Res = visitICmpInstWithInstAndIntCst(I, LHSI, CI))
2151 if (Instruction *LHSI = dyn_cast<Instruction>(Op0))
2152 switch (LHSI->getOpcode()) {
2156 cast<GetElementPtrInst>(LHSI)->hasAllZeroIndices())
2157 return new ICmpInst(I.getPredicate(), LHSI->getOperand(0),
2158 Constant::getNullValue(LHSI->getOperand(0)->getType()));
2164 if (LHSI->getParent() == I.getParent())
2173 if (Constant *C = dyn_cast<Constant>(LHSI->getOperand(1)))
2175 if (Constant *C = dyn_cast<Constant>(LHSI->getOperand(2)))
2184 if ((Op1 && Op2) || (LHSI->hasOneUse() && (Op1 || Op2))) {
2186 Op1 = Builder->CreateICmp(I.getPredicate(), LHSI->getOperand(1),
2189 Op2 = Builder->CreateICmp(I.getPredicate(), LHSI->getOperand(2),
2191 return SelectInst::Create(LHSI->getOperand(0), Op1, Op2);
2199 LHSI->getOperand(0)->getType())
2200 return new ICmpInst(I.getPredicate(), LHSI->getOperand(0),
2201 Constant::getNullValue(LHSI->getOperand(0)->getType()));
2207 dyn_cast<GetElementPtrInst>(LHSI->getOperand(0))) {
2210 !cast<LoadInst>(LHSI)->isVolatile())
2579 Instruction *LHSI,
2586 int MantissaWidth = LHSI->getType()->getFPMantissaWidth();
2592 unsigned InputSize = LHSI->getOperand(0)->getType()->getScalarSizeInBits();
2595 bool LHSUnsigned = isa<UIToFPInst>(LHSI);
2641 IntegerType *IntTy = cast<IntegerType>(LHSI->getOperand(0)->getType());
2765 return new ICmpInst(Pred, LHSI->getOperand(0), RHSInt);
2810 if (Instruction *LHSI = dyn_cast<Instruction>(Op0))
2811 switch (LHSI->getOpcode()) {
2814 FPExtInst *LHSExt = cast<FPExtInst>(LHSI);
2856 if (LHSI->getParent() == I.getParent())
2862 if (Instruction *NV = FoldFCmp_IntToFP_Cst(I, LHSI, RHSC))
2870 if (LHSI->hasOneUse()) {
2871 if (Constant *C = dyn_cast<Constant>(LHSI->getOperand(1))) {
2876 LHSI->getOperand(2), RHSC, I.getName());
2877 } else if (Constant *C = dyn_cast<Constant>(LHSI->getOperand(2))) {
2881 Op1 = Builder->CreateFCmp(I.getPredicate(), LHSI->getOperand(1),
2887 return SelectInst::Create(LHSI->getOperand(0), Op1, Op2);
2893 if (match(LHSI, m_FNeg(m_Value(Op))))
2900 dyn_cast<GetElementPtrInst>(LHSI->getOperand(0))) {
2903 !cast<LoadInst>(LHSI)->isVolatile())