https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103146
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2021-11-09 Ever confirmed|0 |1 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Arseny Solokha from comment #0) > Is the corresponding check really sufficient for PowerISA before 3.0? Hmm: #ifdef USE_DARN unsigned int __attribute__((target("cpu=power9"))) __ppc_darn(void*) { const uint64_t failed = -1; unsigned int retries = 10; uint64_t val = __builtin_darn(); while (val == failed) [[__unlikely__]] { if (--retries == 0) std::__throw_runtime_error(__N("random_device: darn failed")); val = __builtin_darn(); } return (uint32_t)val; } #endif BU_P9_MISC_0 (DARN_32, "darn_32", MISC, darn_32) BU_P9_64BIT_MISC_0 (DARN_RAW, "darn_raw", MISC, darn_raw) BU_P9_64BIT_MISC_0 (DARN, "darn", MISC, darn) Confirmed. __builtin_darn is only enabled for 64bit while __builtin_darn_32 is enabled for both.