On Thu, Mar 28, 2013 at 04:49:47PM +0100, Uros Bizjak wrote: > 2013-03-27 Wei Mi <w...@google.com> > > * config/i386/i386.md: Do shift truncation in define_insn > instead of define_insn_and_split. > > Please write ChangeLog as: > > * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn. > Truncate operand 2 using %b asm operand modifier. > (*<shift_insn><mode>3_mask): Ditto. > (*<rotate_insn><mode>3_mask): Ditto. > > OK for mainline and all release branches with these changes.
This broke bootstrap on x86_64-linux as well as i686-linux on the 4.6 branch. Fixed thusly, committed as obvious after bootstrapping/regtesting on those targets. 2013-04-03 Jakub Jelinek <ja...@redhat.com> * config/i386/i386.md (*<shiftrt_insn><mode>3_mask): Use <shiftrt> instead of <shift>. --- gcc/config/i386/i386.md.jj 2013-04-03 16:11:07.000000000 +0200 +++ gcc/config/i386/i386.md 2013-04-03 17:42:15.034672014 +0200 @@ -9827,7 +9827,7 @@ (define_insn "*<shiftrt_insn><mode>3_mas && (INTVAL (operands[3]) & (GET_MODE_BITSIZE (<MODE>mode)-1)) == GET_MODE_BITSIZE (<MODE>mode)-1" { - return "<shift>{<imodesuffix>}\t{%b2, %0|%0, %b2}"; + return "<shiftrt>{<imodesuffix>}\t{%b2, %0|%0, %b2}"; } [(set_attr "type" "ishift") (set_attr "mode" "<MODE>")]) Jakub