diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/pr67995-2.c')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr67995-2.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/pr67995-2.c b/gcc/testsuite/gcc.target/i386/pr67995-2.c new file mode 100644 index 00000000000..632bb63244b --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr67995-2.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=core2" } */ + +unsigned int +__attribute__ ((target("arch=haswell"))) +__x86_rdrand(void) +{ + unsigned int retries = 100; + unsigned int val; + + while (__builtin_ia32_rdrand32_step(&val) == 0) + if (--retries == 0) + return 0; + + return val; +} |