https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68879
--- Comment #2 from Segher Boessenkool <segher at gcc dot gnu.org> --- Author: segher Date: Mon Dec 14 16:13:33 2015 New Revision: 231621 URL: https://gcc.gnu.org/viewcvs?rev=231621&root=gcc&view=rev Log: rs6000: Fix a mistake in cstore_si_as_di (PR68865, PR68879) convert_move does not know how to zero-extend a constant integer to the target mode -- simply because it does not know the source mode. As a result, 32-bit SImode with the high bit set would be effectively sign- extended instead of zero-extended. This patch fixes it. PR target/68865 PR target/68879 * config/rs6000/rs6000.md (cstore_si_as_di): Force all operands into registers. Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000.md