https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91481
--- Comment #6 from Segher Boessenkool <segher at gcc dot gnu.org> --- Author: segher Date: Thu Aug 22 19:36:21 2019 New Revision: 274835 URL: https://gcc.gnu.org/viewcvs?rev=274835&root=gcc&view=rev Log: rs6000: Use unspec_volatile for darn (PR91481) Every call to darn should deliver a *new* random number; such calls should not be CSEd together. So they should be unspec_volatile, not plain unspec. PR target/91481 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, and UNSPEC_DARN_RAW. (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and UNSPECV_DARN_RAW. (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32. (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW. (darn): Use an unspec_volatile, and UNSPECV_DARN. Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000.md