1#include <stdio.h> 2#include <altivec.h> 3 4union si_overlay 5{ 6 vector signed int v; 7 int ints[4]; 8}; 9 10vector signed int 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 23void 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