The motivation is to allow GatherAllAliases / FindBetterChain
to not give up on dependent loads of a pointer from constant memory.
This is important for AMDGPU, because most loads are pointers
derived from a load of a kernel argument from constant memory.
Not sure about this, but is writeMem correct here? At least most places, we use a conservative notion for writes. i.e. it *may* write, not it *must* write. If we had an instruction which may write, but actually just reads in this context, the aliasing could be wrong.
!mayLoad might be a possibility.