For systems programming the correct way is to have explicit annotations so you can tell the compiler things like:
void foo(void *a, void *b, int n) {
assume_aligned(a, 16);
assume_stride(a, 16);
assume_distinct(a, b);
... go and vectorize!
}