Patchwork extend fwprop optimization

login
register
mail settings
Submitter Jakub Jelinek
Date April 3, 2013, 6:08 p.m.
Message ID <20130403180823.GH4201@tucnak.redhat.com>
Download mbox | patch
Permalink /patch/233562/
State New
Headers show

Comments

Jakub Jelinek - April 3, 2013, 6:08 p.m.
On Thu, Mar 28, 2013 at 04:49:47PM +0100, Uros Bizjak wrote:
> 2013-03-27  Wei Mi  <wmi@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  <jakub@redhat.com>

	* config/i386/i386.md (*<shiftrt_insn><mode>3_mask): Use
	<shiftrt> instead of <shift>.



	Jakub
Wei Mi - April 3, 2013, 8:44 p.m.
Thanks for helping fixing it. I will take care to verify regression
and bootstrap before checkin to release branches next time.

Regards,
Wei.

On Wed, Apr 3, 2013 at 11:08 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Thu, Mar 28, 2013 at 04:49:47PM +0100, Uros Bizjak wrote:
>> 2013-03-27  Wei Mi  <wmi@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  <jakub@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

Patch

--- 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>")])