1 // { dg-do compile { target i?86-*-* x86_64-*-* } } 2 // { dg-require-effective-target c++11 } 3 // { dg-options "-O3 -msse2" } 4 // { dg-require-effective-target sse2 } 5 6 // You can make NON-template typedefs with a large alignment. 7 typedef double AlignedDoubleType [[gnu::aligned(16)]]; 8 9 template <typename RealType> f(const RealType * p)10RealType f(const RealType* p) 11 { 12 // But if you use a template parameter it complains. 13 typedef RealType AlignedRealType [[gnu::aligned(16)]]; 14 15 return p[0]; 16 } 17 f2(const double * p)18double f2(const double* p) 19 { 20 return f<double>(p); 21 } 22