Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:LI

57     if (LoadInst *LI = dyn_cast<LoadInst>(U)) {
59 if (!LI->isSimple()) return false;
282 static Instruction *InstCombineLoadCast(InstCombiner &IC, LoadInst &LI,
284 User *CI = cast<User>(LI.getOperand(0));
306 Idxs[0] = Constant::getNullValue(Type::getInt32Ty(LI.getContext()));
318 (SrcPTy->isPointerTy() == LI.getType()->isPointerTy()) &&
326 IC.Builder->CreateLoad(CastOp, LI.isVolatile(), CI->getName());
327 NewLoad->setAlignment(LI.getAlignment());
328 NewLoad->setAtomic(LI.getOrdering(), LI.getSynchScope());
330 return new BitCastInst(NewLoad, LI.getType());
337 Instruction *InstCombiner::visitLoadInst(LoadInst &LI) {
338 Value *Op = LI.getOperand(0);
343 getOrEnforceKnownAlignment(Op, TD->getPrefTypeAlignment(LI.getType()),TD);
344 unsigned LoadAlign = LI.getAlignment();
346 TD->getABITypeAlignment(LI.getType());
349 LI.setAlignment(KnownAlign);
351 LI.setAlignment(EffectiveLoadAlign);
356 if (Instruction *Res = InstCombineLoadCast(*this, LI, TD))
361 if (!LI.isSimple()) return 0;
366 BasicBlock::iterator BBI = &LI;
367 if (Value *AvailableVal = FindAvailableLoadedValue(Op, LI.getParent(), BBI,6))
368 return ReplaceInstUsesWith(LI, AvailableVal);
379 new StoreInst(UndefValue::get(LI.getType()),
380 Constant::getNullValue(Op->getType()), &LI);
381 return ReplaceInstUsesWith(LI, UndefValue::get(LI.getType()));
388 (isa<ConstantPointerNull>(Op) && LI.getPointerAddressSpace() == 0)) {
392 new StoreInst(UndefValue::get(LI.getType()),
393 Constant::getNullValue(Op->getType()), &LI);
394 return ReplaceInstUsesWith(LI, UndefValue::get(LI.getType()));
400 if (Instruction *Res = InstCombineLoadCast(*this, LI, TD))
416 unsigned Align = LI.getAlignment();
431 LI.setOperand(0, SI->getOperand(2));
432 return &LI;
438 LI.setOperand(0, SI->getOperand(1));
439 return &LI;
628 if (LoadInst *LI = dyn_cast<LoadInst>(BBI)) {
629 if (LI == Val && equivalentAddressValues(LI->getOperand(0), Ptr) &&
630 LI->isSimple())