https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89224
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Refence in the f function is not needed: typedef __attribute__((vector_size(16))) unsigned char __Int8x8_t; template <class T> void g(T &x) { x = 1; } void f(const __Int8x8_t x) { g(x[0]); }