https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100444
--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> --- We could use a different function for AMD, rather than __x86_rdrand. If it reads a -1 value it could try again a few more times, and if it gets -1 every time assume it's broken (and throw?), maybe after being suspended. If it doesn't get -1 every time, it was a real -1 value, return that -1 (not the next values that were read, because otherwise we would never be able to return -1).