Fixes #160250 We previously assumed the select to unfold is defined in the incoming block of phi user, as `isValidSelectInst` filters other cases at the initial stage. However, the selects not defined in the incoming block may occur after unfolding the arms of the unfolded select. This patch sinks the select into the incoming block of the phi user and unfolds it at the incoming block.