1 #include <stdio.h> 2 #include <altivec.h> 3 4 union si_overlay 5 { 6 vector signed int v; 7 int ints[4]; 8 }; 9 10 vector signed int vec_init()11vec_init () 12 { 13 vector signed int v; 14 static int count = 1; 15 16 ((union si_overlay *) &v)->ints[0] = count++; 17 ((union si_overlay *) &v)->ints[1] = count++; 18 ((union si_overlay *) &v)->ints[2] = count++; 19 ((union si_overlay *) &v)->ints[3] = count++; 20 return v; 21 } 22 23 void vec_print(vector signed int v)24vec_print (vector signed int v) 25 { 26 printf ("%08x %08x %08x %08x", 27 ((union si_overlay *) &v)->ints[0], 28 ((union si_overlay *) &v)->ints[1], 29 ((union si_overlay *) &v)->ints[2], 30 ((union si_overlay *) &v)->ints[3]); 31 } 32 33