/* { dg-do compile { target c++11 } } */ template struct enable_if {}; template <> struct enable_if {typedef void type;}; template void f (T& v) { v = __builtin_shuffle (v, v); } template void g (T const&) {} template auto g (T const& x) -> typename enable_if::type {} typedef int v4i __attribute__((vector_size(4*sizeof(int)))); typedef float v4f __attribute__((vector_size(4*sizeof(float)))); int main(){ v4i a = {1,2,3,0}; f(a); v4f b = {1,2,3,0}; g(b); }