https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67344
--- Comment #3 from Segher Boessenkool <segher at gcc dot gnu.org> --- Author: segher Date: Tue Aug 25 19:32:28 2015 New Revision: 227182 URL: https://gcc.gnu.org/viewcvs?rev=227182&root=gcc&view=rev Log: rs6000: Fix PR67344 The "*and<mode>3_imm_dot_shifted" pattern is a define_insn_and_split, like most "dot" patterns: if its output is not assigned cr0 but some other cr reg, it splits to a non-dot insn and a compare. Unfortunately that non-dot insn will clobber cr0 as well. We could add another clobber (with "=X,x"), but then that second alternative is never useful; instead, just remove that second alternative. 2015-08-25 Segher Boessenkool <seg...@kernel.crashing.org> PR target/67344 * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to a define_insn, remove second alternative. Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000.md