Lines Matching refs:LI
77 bool canWidenScalarExtLoad(LoadInst &LI) const;
78 bool visitLoadInst(LoadInst &LI);
104 bool AMDGPULateCodeGenPrepare::canWidenScalarExtLoad(LoadInst &LI) const { in canWidenScalarExtLoad()
105 unsigned AS = LI.getPointerAddressSpace(); in canWidenScalarExtLoad()
111 if (!LI.isSimple()) in canWidenScalarExtLoad()
113 auto *Ty = LI.getType(); in canWidenScalarExtLoad()
122 if (LI.getAlign() < DL->getABITypeAlign(Ty)) in canWidenScalarExtLoad()
125 return DA->isUniform(&LI); in canWidenScalarExtLoad()
128 bool AMDGPULateCodeGenPrepare::visitLoadInst(LoadInst &LI) { in visitLoadInst() argument
134 if (LI.getAlign() >= 4) in visitLoadInst()
137 if (!canWidenScalarExtLoad(LI)) in visitLoadInst()
142 GetPointerBaseWithConstantOffset(LI.getPointerOperand(), Offset, *DL); in visitLoadInst()
152 LI.setAlignment(Align(4)); in visitLoadInst()
156 IRBuilder<> IRB(&LI); in visitLoadInst()
157 IRB.SetCurrentDebugLocation(LI.getDebugLoc()); in visitLoadInst()
159 unsigned AS = LI.getPointerAddressSpace(); in visitLoadInst()
160 unsigned LdBits = DL->getTypeStoreSize(LI.getType()) * 8; in visitLoadInst()
161 auto IntNTy = Type::getIntNTy(LI.getContext(), LdBits); in visitLoadInst()
163 PointerType *Int32PtrTy = Type::getInt32PtrTy(LI.getContext(), AS); in visitLoadInst()
164 PointerType *Int8PtrTy = Type::getInt8PtrTy(LI.getContext(), AS); in visitLoadInst()
172 NewLd->copyMetadata(LI); in visitLoadInst()
177 IRB.CreateTrunc(IRB.CreateLShr(NewLd, ShAmt), IntNTy), LI.getType()); in visitLoadInst()
178 LI.replaceAllUsesWith(NewVal); in visitLoadInst()
179 RecursivelyDeleteTriviallyDeadInstructions(&LI); in visitLoadInst()