Hi Richi, > But why do we need to reject VLA vectorization for versioning when > the target only requires element alignment? I could for example > think that arm could have gone with requiring NEON vector size > alignment for SVE accesses. > > I do agree that keeping the old check is "safe", but I wonder why > this needs to reject a poly-int VF?
Tamar can correct me if I'm wrong. For VLA vectorization, element alignment is definitely not sufficient if speculative loads are present. I don't think existing versioning logic has taken VLA modes into account. For example, the mask (= size - 1) to test the rightmost bits of addresses should be a poly for VLA modes. I'm currently working on a patch to extend peeling with masking from VLS modes to VLA modes. So this is what I will address soon. -- Thanks, Pengfei