#include <stdio.h> #include <altivec.h> union si_overlay { vector signed int v; int ints[4]; }; vector signed int vec_init () { vector signed int v; static int count = 1; ((union si_overlay *) &v)->ints[0] = count++; ((union si_overlay *) &v)->ints[1] = count++; ((union si_overlay *) &v)->ints[2] = count++; ((union si_overlay *) &v)->ints[3] = count++; return v; } void vec_print (vector signed int v) { printf ("%08x %08x %08x %08x", ((union si_overlay *) &v)->ints[0], ((union si_overlay *) &v)->ints[1], ((union si_overlay *) &v)->ints[2], ((union si_overlay *) &v)->ints[3]); }