1 /* { dg-do compile } */
2 /* { dg-options "-O2 -march=core2" } */
3 
4 unsigned int
5 __attribute__ ((target("rdrnd")))
__x86_rdrand(void)6 __x86_rdrand(void)
7 {
8   unsigned int retries = 100;
9   unsigned int val;
10 
11   while (__builtin_ia32_rdrand32_step(&val) == 0)
12     if (--retries == 0)
13       return 0;
14 
15   return val;
16 }
17