darwin-altivec-vsplt-1.c [plain text]
typedef unsigned char UInt8;
typedef signed char SInt8;
typedef unsigned short UInt16;
typedef signed short SInt16;
typedef signed long SInt32;
typedef unsigned long UInt32;
typedef __attribute__((altivec(vector__))) signed char VSInt8;
typedef __attribute__((altivec(vector__))) unsigned char VUInt8;
typedef __attribute__((altivec(vector__))) signed short VSInt16;
typedef __attribute__((altivec(vector__))) signed int VSInt32;
extern unsigned char *dPtr;
extern VSInt8 xyz;
unsigned long ix;
void foo ()
{
VSInt16 Y;
const VSInt32 vC1 = (VSInt32) (128, 128, 0, 0);
const VUInt8 vC2 = vec_splat((const VUInt8) vC1,3);
xyz = vec_sub(xyz, vC2);
Y = vec_unpackl (xyz);
vec_st ((VUInt8) Y, ix, dPtr);
}