/* APPLE LOCAL file AltiVec */ /* { dg-do run { target powerpc*-*-* } } */ /* { dg-options "-faltivec" } */ extern void abort(); #include int main() { char str[128]; vector unsigned char vuchar = (vector unsigned char)((vector unsigned int)(0x001f001d, 0x001f001d, 0x001f001d, 0x001f001d)); vector unsigned short vushort = (vector unsigned short)((vector unsigned int)(0x001f001d, 0x001f001d, 0x001f001d, 0x001f001d)); vector unsigned char vushort_to_char = (vector unsigned char) ((vector unsigned short)(0x001f,0x001d, 0x001f,0x001d, 0x001f,0x001d, 0x001f,0x001d)); vector signed char vschar = (vector signed char)((vector signed int)(0x001f001d, 0x001f001d, 0x001f001d, 0x001f001d)); vector signed short vsshort = (vector signed short)((vector signed int)(0x001f001d, 0x001f001d, 0x001f001d, 0x001f001d)); vector signed char vsshort_to_char = (vector signed char) ((vector signed short)(0x001f,0x001d, 0x001f,0x001d, 0x001f,0x001d, 0x001f,0x001d)); vector unsigned int vui = (vector unsigned int)((vector unsigned short)(0x011f,0x021d, 0x031f,0x041d, 0x051f,0x061d, 0x071f,0x081d)); vector unsigned int vui1 = (vector unsigned int) ((vector unsigned char)(0x01,0x1f,0x02,0x1d, 0x03,0x1f,0x04,0x1d, 0x05,0x1f,0x06,0x1d, 0x07,0x1f,0x08,0x1d)); vector unsigned short vus = (vector unsigned short) ((vector unsigned char)(0x01,0x1f,0x02,0x1d, 0x03,0x1f,0x04,0x1d, 0x05,0x1f,0x06,0x1d, 0x07,0x1f,0x08,0x1d)); vector float vf = (vector float) ((vector unsigned int)(0x001f001d, 0x001f001d, 0x001f001d, 0x001f001d)); sprintf(str, "%vhu", vuchar); if (strcmp (str, "31 29 31 29 31 29 31 29")) abort(); sprintf(str, "%vhu", vushort); if (strcmp (str, "31 29 31 29 31 29 31 29")) abort(); sprintf(str, "%vhu", vushort_to_char); if (strcmp (str, "31 29 31 29 31 29 31 29")) abort(); sprintf(str, "%vhu", vschar); if (strcmp (str, "31 29 31 29 31 29 31 29")) abort(); sprintf(str, "%vhu", vsshort); if (strcmp (str, "31 29 31 29 31 29 31 29")) abort(); sprintf(str, "%vhu", vsshort_to_char); if (strcmp (str, "31 29 31 29 31 29 31 29")) abort(); sprintf(str, "%vd", vui); if (strcmp (str, "1 31 2 29 3 31 4 29 5 31 6 29 7 31 8 29")) abort(); sprintf(str, "%vd", vui1); if (strcmp (str, "1 31 2 29 3 31 4 29 5 31 6 29 7 31 8 29")) abort(); sprintf(str, "%vd", vus); if (strcmp (str, "1 31 2 29 3 31 4 29 5 31 6 29 7 31 8 29")) abort(); sprintf(str, "%vhu", vf); if (strcmp (str, "31 29 31 29 31 29 31 29")) abort(); return 0; }