Presently inbounds information is lost between callee and its callers when Argument is promoted.
This change respects the inbounds of GEP emitted by front-end for callee and emits GEP with preserved
inbounds information in callers instead taking conservative approach of emitting GEP without inbounds
by default.
Note that Argument is only promoted when its *only* loaded (i.e. no store) in Argument Promotion Pass.
Motivation for this change is that the AMDGPUPromoteKernelArgumentsPass (https://reviews.llvm.org/D111464)
can infer the address-spaces and promote FLAT memory operation to GLOBAL based on this change.
UI isn't expected to be null here, dyn_cast should be enough.