Re: [PATCH] Optimize bfi by remove redundant zero_extend

2015-02-25 Thread Renlin Li
On 13/02/15 17:04, Richard Henderson wrote: On 02/13/2015 08:26 AM, Renlin Li wrote: + /* Complete overlap. We can remove the source ZERO_EXTEND. */ + if (width == inner_size + && (regno < FIRST_PSEUDO_REGISTER) + && HARD_REGNO_MODE_OK (regno, mode)) + { +

Re: [PATCH] Optimize bfi by remove redundant zero_extend

2015-02-13 Thread Richard Henderson
On 02/13/2015 08:26 AM, Renlin Li wrote: > + /* Complete overlap. We can remove the source ZERO_EXTEND. */ > + if (width == inner_size > + && (regno < FIRST_PSEUDO_REGISTER) > + && HARD_REGNO_MODE_OK (regno, mode)) > + { > + rtx reg = gen_rtx_REG (mode, regno); > +

[PATCH] Optimize bfi by remove redundant zero_extend

2015-02-13 Thread Renlin Li
Hi all, The following rtx pattern will be transformed into the second one, which makes the compiler unable to remove the redundant zero_extend operation. (set (zero_extract:SI (reg/i:SI 0 x0) (const_int 8 [0x8]) (const_int 0 [0])) (and:SI (reg:SI 1