Lines Matching refs:LI

57     if (LoadInst *LI = dyn_cast<LoadInst>(U)) {
59 if (!LI->isSimple()) return false;
283 static Instruction *InstCombineLoadCast(InstCombiner &IC, LoadInst &LI,
285 User *CI = cast<User>(LI.getOperand(0));
322 LI.getType()->isPtrOrPtrVectorTy()) &&
330 IC.Builder->CreateLoad(CastOp, LI.isVolatile(), CI->getName());
331 NewLoad->setAlignment(LI.getAlignment());
332 NewLoad->setAtomic(LI.getOrdering(), LI.getSynchScope());
334 return new BitCastInst(NewLoad, LI.getType());
341 Instruction *InstCombiner::visitLoadInst(LoadInst &LI) {
342 Value *Op = LI.getOperand(0);
347 getOrEnforceKnownAlignment(Op, TD->getPrefTypeAlignment(LI.getType()),TD);
348 unsigned LoadAlign = LI.getAlignment();
350 TD->getABITypeAlignment(LI.getType());
353 LI.setAlignment(KnownAlign);
355 LI.setAlignment(EffectiveLoadAlign);
360 if (Instruction *Res = InstCombineLoadCast(*this, LI, TD))
365 if (!LI.isSimple()) return 0;
370 BasicBlock::iterator BBI = &LI;
371 if (Value *AvailableVal = FindAvailableLoadedValue(Op, LI.getParent(), BBI,6))
372 return ReplaceInstUsesWith(LI, AvailableVal);
383 new StoreInst(UndefValue::get(LI.getType()),
384 Constant::getNullValue(Op->getType()), &LI);
385 return ReplaceInstUsesWith(LI, UndefValue::get(LI.getType()));
392 (isa<ConstantPointerNull>(Op) && LI.getPointerAddressSpace() == 0)) {
396 new StoreInst(UndefValue::get(LI.getType()),
397 Constant::getNullValue(Op->getType()), &LI);
398 return ReplaceInstUsesWith(LI, UndefValue::get(LI.getType()));
404 if (Instruction *Res = InstCombineLoadCast(*this, LI, TD))
420 unsigned Align = LI.getAlignment();
435 LI.setOperand(0, SI->getOperand(2));
436 return &LI;
442 LI.setOperand(0, SI->getOperand(1));
443 return &LI;
632 if (LoadInst *LI = dyn_cast<LoadInst>(BBI)) {
633 if (LI == Val && equivalentAddressValues(LI->getOperand(0), Ptr) &&
634 LI->isSimple())