This reduces the complexity of createEmptyBlock() and will open the door to further refactoring.
The test change is simply because we're now constant folding a trivial test.
It's now very obvious that one test (emitMinimumIterationCountCheck) dominates another (emitVectorLoopEnteredCheck). I haven't removed the latter in this commit as I wanted to keep it as NFC as possible.
You could probably use CmpInst::Create as in the original code here, to make this path purely NFC, and then change CmpInst::Create to Builder.CreateICmpULT in a separate patch. But it's up to you - I'm ok with both options.
And again, I recommend to verify that no unwanted changed sneaked in by comparing IR of some tests (I believe Adam did something like this when he worked on LAA).