Use conditional internal functions in if-conversion
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / p8vector-vbpermq.c
blobb53ccc51c03d276025d8e3e683b8ac44a81e6257
1 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
2 /* { dg-skip-if "" { powerpc*-*-darwin* } } */
3 /* { dg-require-effective-target powerpc_p8vector_ok } */
4 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
5 /* { dg-options "-O3 -mcpu=power8" } */
6 /* { dg-final { scan-assembler "vbpermq" } } */
7 /* { dg-final { scan-assembler "mfvsrd" } } */
8 /* { dg-final { scan-assembler-not "stfd" } } */
9 /* { dg-final { scan-assembler-not "stxvd2x" } } */
11 #include <altivec.h>
13 #if __LITTLE_ENDIAN__
14 #define OFFSET 1
15 #else
16 #define OFFSET 0
17 #endif
19 long foos (vector signed char a, vector signed char b)
21 return vec_extract (vec_vbpermq (a, b), OFFSET);
24 long foou (vector unsigned char a, vector unsigned char b)
26 return vec_extract (vec_vbpermq (a, b), OFFSET);