blob: 5d7c0301318f91ed13846075a6f2aa890a1cbfc4 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -march=v10" } */
/* { dg-final { scan-assembler-not {\tnop} } } */
/* { dg-final { scan-assembler-times {\tcmp|\ttest|\tmove.d \$r10,\$r} 1 } } */
/* We either have a move from "a" to some other register or a compare. */
extern void foo(void);
unsigned int x (unsigned int a, unsigned int b, unsigned int *c, unsigned int *d)
{
unsigned int z = __builtin_clz(b);
if (a != 0)
*c = a;
*d = a;
return z;
}