We restrained from replacing uses of IV with IV.next if IV.next is potentially poison.
This patch loosens this restricton for one important particular case: memory instruction
is dominated by loop exit by condition icmp iV.next, X. In this case we can safely assume
that, whenever IV.next is poison, we exit the loop at this point. So only non-poisoned
values may reach the memory instruction.
Note that this transform reduces overlap of live ranges of IV and IV.next, so potentially it
can lead to better opt decisions overall.