The attributes describes how corresponding vector variant function should be constructed. The problematic case would be
declare void @foo(ptr) #0 #0 = { "vector-function-abi-variant" = "_ZGV_LLVM_N4l_foo" }
where its single parameter is required to be unit-strided. However, ensuring that would require us to know the pointee type which isn't available with opaque pointers.