When creating select-reductions, we are introducing multiple new uses of
the reduction start value. If the start value may be undef or poison,
then differnet uses (e.g in the final select or vector compares) can
evaluate to different values, leading to incorrect results.
To avoid this, freeze the start value in the preheader by introducing a
new Freeze VPInstruction.
Depends on D153696.
Fixes #62565.