Since D141386, violating !range would return poison. But folding select
to and/or i1 isn't poison safe in general. If we can prove that the
!range can never be violated, adding a !noundef can assume it is
guaranteed not to be posion value.
Even though violating !noundef would cause immediate undefine behavior,
in other words this instruction would not be speculatable, but metadatas
that may raise IUB is not considered in isSafeToSpeculativelyExecute
since these metadatas can be dropped.
Therefore, adding !noundef can improve folding of select and there is no
foreseeable side-effect at the same time.