https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98801
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|c++ |middle-end Severity|normal |enhancement Last reconfirmed| |2021-01-25 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Slight complication arises because people will want to have cmoves with a memory destination. So possibly void __builtin_cmov (T *dest, bool, T, T, void *); preferably usable in a type-generic way. The void * is at least internally required to carry type-based alias info of the destination. That won't solve the eventual request to have cmov _from_ memory ... (if we leave all of the memory combining to RTL people will again complain that it's subject to compilers discretion).