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 } */
5 
6 #define NO_WARN_X86_INTRINSICS 1
7 #include <x86intrin.h>
8 #include "bmi-check.h"
9 
calc_blsr_u32(int src1,int src2)10 int calc_blsr_u32 (int src1, int src2)
11 {
12   return (src1-1) & (src2);
13 }
14 
15 static void
bmi_test()16 bmi_test ()
17 {
18   unsigned i;
19   int src = 0xfacec0ff;
20   int res, res_ref;
21 
22   for (i=0; i<5; ++i) {
23     src = (i + src) << i;
24 
25     res_ref = calc_blsr_u32 (src, src);
26     res = __blsr_u32 (src);
27 
28     if (res != res_ref)
29       abort();
30   }
31 }
32