https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116817
--- Comment #4 from Tamar Christina <tnfchris at gcc dot gnu.org> --- I see, I haven't checked that the value being compared is actually loop invariant. In this case it's a reduction value and it can't be lifted out of the loop. Basically in GCC 14 and earlier this was a non-vectorizable loop as we don't support this reduction. So the mask handling code didn't matter there. but yeah, in the invariant handling code I need to check that that the value is actually an external/const before adding it to the invariant seq, otherwise add it to the normal pattern seq. Testing a fix