c++: normalizing ttp constraints [PR115656]
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / ctz-4.c
blob0a254be6d5f5ef8e260a9cdfe734b5059aefdd3f
1 /* { dg-do compile { target { powerpc*-*-* } } } */
2 /* { dg-skip-if "" { powerpc*-*-darwin* } } */
3 /* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2" } */
4 /* { dg-require-effective-target powerpc_vsx } */
6 #include <altivec.h>
8 vector signed char
9 count_trailing_zeros_v16qi_1s (vector signed char a)
11 return vec_vctz (a);
14 vector signed char
15 count_trailing_zeros_v16qi_2s (vector signed char a)
17 return vec_vctzb (a);
20 vector unsigned char
21 count_trailing_zeros_v16qi_1u (vector unsigned char a)
23 return vec_vctz (a);
26 vector unsigned char
27 count_trailing_zeros_v16qi_2u (vector unsigned char a)
29 return vec_vctzb (a);
32 vector short
33 count_trailing_zeros_v8hi_1s (vector short a)
35 return vec_vctz (a);
38 vector short
39 count_trailing_zeros_v8hi_2s (vector short a)
41 return vec_vctzh (a);
44 vector unsigned short
45 count_trailing_zeros_v8hi_1u (vector unsigned short a)
47 return vec_vctz (a);
50 vector unsigned short
51 count_trailing_zeros_v8hi_2u (vector unsigned short a)
53 return vec_vctzh (a);
56 vector int
57 count_trailing_zeros_v4si_1s (vector int a)
59 return vec_vctz (a);
62 vector int
63 count_trailing_zeros_v4si_2s (vector int a)
65 return vec_vctzw (a);
68 vector unsigned int
69 count_trailing_zeros_v4si_1u (vector unsigned int a)
71 return vec_vctz (a);
74 vector unsigned int
75 count_trailing_zeros_v4si_2u (vector unsigned int a)
77 return vec_vctzw (a);
80 vector long long
81 count_trailing_zeros_v2di_1s (vector long long a)
83 return vec_vctz (a);
86 vector long long
87 count_trailing_zeros_v2di_2s (vector long long a)
89 return vec_vctzd (a);
92 vector unsigned long long
93 count_trailing_zeros_v2di_1u (vector unsigned long long a)
95 return vec_vctz (a);
98 vector unsigned long long
99 count_trailing_zeros_v2di_2u (vector unsigned long long a)
101 return vec_vctzd (a);
104 /* { dg-final { scan-assembler "vctzb" } } */
105 /* { dg-final { scan-assembler "vctzd" } } */
106 /* { dg-final { scan-assembler "vctzh" } } */
107 /* { dg-final { scan-assembler "vctzw" } } */
108 /* { dg-final { scan-assembler-not "cnttzd" } } */
109 /* { dg-final { scan-assembler-not "cnttzw" } } */