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)10int calc_blsr_u32 (int src1, int src2) 11 { 12 return (src1-1) & (src2); 13 } 14 15 static void bmi_test()16bmi_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