If the block which would be a preheader for a loop has other successors, don't hoist instructions into it. Instead create a dedicated preheader.
When LICM generates a preheader, it needs to add encodings to the instructions it generates, since it runs after legalization.