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