1 /* { dg-do compile { target powerpc*-*-* } } */ 2 /* { dg-require-effective-target powerpc_p8vector_ok } */ 3 /* { dg-options "-mpower8-vector -mvsx" } */ 4 5 #include <altivec.h> 6 7 vector bool int *vecubi; 8 vector bool long long *vecublli; 9 vector signed int *vecsi; 10 vector signed long long int *vecslli; 11 main()12int main () 13 { 14 15 /* use of ‘long long’ in AltiVec types requires -mvsx */ 16 /* __builtin_altivec_vupkhsw and __builtin_altivec_vupklsw 17 requires the -mpower8-vector option */ 18 *vecublli++ = vec_unpackh(vecubi[0]); 19 *vecublli++ = vec_unpackl(vecubi[0]); 20 *vecslli++ = vec_unpackh(vecsi[0]); 21 *vecslli++ = vec_unpackl(vecsi[0]); 22 23 return 0; 24 } 25 26 /* Expected results: 27 vec_unpackh vupklsw 28 vec_unpackl vupkhsw 29 */ 30 31 /* { dg-final { scan-assembler-times "vupklsw" 2 } } */ 32 /* { dg-final { scan-assembler-times "vupkhsw" 2 } } */ 33