https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113537
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- One gimple level thing I noticed is we produce: ``` _1 = VEC_PERM_EXPR <a_2(D), a_2(D), { 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 13, 14, 15 }>; _3 = BIT_FIELD_REF <_1, 64, 0>; ``` But Maybe that should just be: ``` _3 = VEC_PERM_EXPR <a_2(D), a_2(D), { 1, 2, 3, 4, 5, 6, 7, 8} >; ``` Which is what the vector might produce but maybe it is because aarch64_vectorize_vec_perm_const does not know how to handle that ...