A load with !dereferenceable or !dereferenceable_or_null metadata must return a well-defined (non-undef/poison) value. Effectively they imply !noundef. This is the same as we do for the dereferenceable(N) attribute.
This should fix https://github.com/llvm/llvm-project/issues/55672, or at least the specific case discussed there.