예제 #1
0
static void
bmi_test()
{
  unsigned i;
  int src = 0xfacec0ff;
  int res, res_ref;

  for (i=0; i<5; ++i) {
    src = i + src << i;

    res_ref = calc_blsi_u32 (src, src);
    res = __blsi_u32 (src);

    if (res != res_ref)
      abort();
  }
}
예제 #2
0
unsigned int test__blsi_u32(unsigned int __X) {
  // CHECK-LABEL: test__blsi_u32
  // CHECK: sub i32 0, %{{.*}}
  // CHECK: and i32 %{{.*}}, %{{.*}}
  return __blsi_u32(__X);
}
예제 #3
0
unsigned int test__blsi_u32(unsigned int __X) {
  // CHECK: [[DEST:%.*]] = sub i32 0, [[SRC:%.*]]
  // CHECK-NEXT: %{{.*}} = and i32 [[SRC]], [[DEST]]
  return __blsi_u32(__X);
}