1 // PR c++/55573 2 // { dg-do compile { target c++11 } } 3 // { dg-options "" } 4 // Ignore warning on some powerpc-ibm-aix configurations. 5 // { dg-prune-output "non-standard ABI extension" } 6 7 template <typename T, int N> 8 struct ExtVecTraits { 9 typedef T __attribute__((vector_size (N * sizeof (T)))) type; 10 }; 11 12 template <typename T> 13 using Vec4 = typename ExtVecTraits<T,4>::type; 14 15 template <typename T> 16 struct Rot3 17 { 18 typedef Vec4<T> Vec; 19 Vec axis[3]; Rot3Rot320 constexpr Rot3 (Vec4<T> ix, Vec4<T> iy, Vec4<T> iz) : axis {ix, iy, iz} {} 21 }; 22 23 typedef Vec4<float> Vec; 24 Rot3<float> r2 ((Vec) {0, 1, 0, 0}, (Vec){0, 0, 1, 0}, (Vec){1, 0, 0, 0}); 25