https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70012
--- Comment #3 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- It looks to me like vect_alignment_reachable is the wrong test to be using here. This is equivalent to vect_aligned_arrays || natural_alignment_32. vect_aligned_array is always 0 for powerpc*-*-*. natural_alignment_32 is always 1 for powerpc*-*-*, except for 64-bit Darwin. I think the intent may be that peeling will occur for 64-bit Darwin, but otherwise versioning for alignment will occur. So I think that vect_alignment_reachable should be replaced by ! natural_alignment_32, and ! vect_alignment_reachable should be replaced by natural_alignment_32. I.e., for whatever reason these tests appear to be backward. This change should make the testcase succeed on ppc64 BE and LE, but the success is misleading for P8 and P9, as we are no longer truly testing for versioning on those. So we probably still need to exclude models with efficient support for unaligned vectors.