There was a silly mistake in the expandBounds function that was using the wrong type when calling expandCodeFor and always assuming the stride is 64 bits. I've added the following test to defend this fix: Transforms/LoopVectorize/ARM/mve-hoist-runtime-checks.ll