Use conditional internal functions in if-conversion
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / bmi-tzcnt-1.c
blob25ba3dc238e6cd360001496503604b16a81a5d4f
1 /* { dg-do run } */
2 /* { dg-options "-O3 -fno-inline" } */
3 /* { dg-require-effective-target lp64 } */
4 /* { dg-require-effective-target ppc_cpu_supports_hw } */
6 #define NO_WARN_X86_INTRINSICS 1
7 #include <x86intrin.h>
8 #include "bmi-check.h"
10 long long calc_tzcnt_u64 (long long src)
12 int i;
13 int res = 0;
15 while ( (res<64) && ((src&1) == 0)) {
16 ++res;
17 src >>= 1;
20 return res;
23 static void
24 bmi_test ()
26 unsigned i;
27 long long src = 0xfacec0ffeefacec0;
28 long long res, res_ref;
30 for (i=0; i<5; ++i) {
31 src = (i + src) << i;
33 res_ref = calc_tzcnt_u64 (src);
34 res = __tzcnt_u64 (src);
36 if (res != res_ref)
37 abort();