1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -march=core2" } */
       3  
       4  unsigned int
       5  __attribute__ ((target("rdrnd")))
       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  }