blob: ed7a08110a55ce819fd0bf41756df4b950894d61 [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O2 -mlzcnt" } */
/* { dg-require-effective-target lzcnt } */
#include "lzcnt-check.h"
static int
foo (unsigned int v)
{
return v ? __builtin_clz (v) : 32;
}
/* returns -1 if x == 0 */
int
__attribute__ ((noinline, noclone))
bar (unsigned int x)
{
return 31 - foo (x);
}
static void
lzcnt_test ()
{
int r = bar (0);
if (r != -1)
abort ();
}