1 typedef unsigned __attribute__((__vector_size__(8))) V2SI_u; 2 typedef int __attribute__((__vector_size__(8))) V2SI_d; 3 4 typedef unsigned long __attribute__((__vector_size__(16))) V2DI_u; 5 typedef long __attribute__((__vector_size__(16))) V2DI_d; 6 id_V2SI(V2SI_d * v)7void id_V2SI(V2SI_d *v) 8 { 9 *v = __builtin_shuffle(*v, (V2SI_d)(V2SI_u) { 0, 1 }); 10 } 11 id_V2DI(V2DI_d * v)12void id_V2DI(V2DI_d *v) 13 { 14 *v = __builtin_shuffle(*v, (V2DI_d)(V2DI_u) { 0, 1 }); 15 } 16 17 extern void abort(void); 18 main(void)19int main(void) 20 { 21 V2SI_d si = { 35, 42 }; 22 id_V2SI(&si); 23 24 if (si[0] != 35 || si[1] != 42) 25 abort(); 26 27 V2DI_d di = { 63, 38 }; 28 id_V2DI(&di); 29 30 if (di[0] != 63 || di[1] != 38) 31 abort(); 32 } 33