According to LangRef:
If the loaded or returned value is not in the specified range, the behavior is undefined. ... The range should not represent the full or empty set. That is, a!=b.
These statements together mean that the result of load which contains !range metadata
is immediate of UB if undef is loaded, because undef may take the value missing in the
range. It automatically implies it's not poison either.