Re: [patch 79279] combine/simplify_set issue

2017-02-02 Thread Segher Boessenkool
On Thu, Feb 02, 2017 at 11:27:12AM +0100, Aurelien Buhrig wrote: > > Hrm, maybe you can show the RTL before and after this transform? > RTL before combine: > (set (reg:SI 31 (lshiftt:SI (reg:SI 29) (const_int 16 > (set (reg:HI 1 "r1") (reg:HI 25)) > (set (reg:HI 0 "r0") (subreg:HI (reg:SI 31) 0

Re: [patch 79279] combine/simplify_set issue

2017-02-02 Thread Aurelien Buhrig
Hi Segher, This patch fixes a combiner bug in simplify_set which calls CANNOT_CHANGE_MODE_CLASS with wrong mode params. It occurs when trying to simplify paradoxical subregs of hw regs (whose natural mode is lower than a word). In fact, changing from (set x:m1 (subreg:

Re: [patch 79279] combine/simplify_set issue

2017-02-01 Thread Segher Boessenkool
Hi Aurelien, On Wed, Feb 01, 2017 at 10:02:56AM +0100, Aurelien Buhrig wrote: > >> This patch fixes a combiner bug in simplify_set which calls > >> CANNOT_CHANGE_MODE_CLASS with wrong mode params. > >> It occurs when trying to simplify paradoxical subregs of hw regs (whose > >> natural mode is low

Re: [patch 79279] combine/simplify_set issue

2017-02-01 Thread Aurelien Buhrig
On 31/01/2017 22:15, Segher Boessenkool wrote: > Hello, > > On Mon, Jan 30, 2017 at 10:43:23AM +0100, Aurelien Buhrig wrote: >> This patch fixes a combiner bug in simplify_set which calls >> CANNOT_CHANGE_MODE_CLASS with wrong mode params. >> It occurs when trying to simplify paradoxical subregs of

Re: [patch 79279] combine/simplify_set issue

2017-01-31 Thread Segher Boessenkool
Hello, On Mon, Jan 30, 2017 at 10:43:23AM +0100, Aurelien Buhrig wrote: > This patch fixes a combiner bug in simplify_set which calls > CANNOT_CHANGE_MODE_CLASS with wrong mode params. > It occurs when trying to simplify paradoxical subregs of hw regs (whose > natural mode is lower than a word). >

[patch 79279] combine/simplify_set issue

2017-01-30 Thread Aurelien Buhrig
Hi, This patch fixes a combiner bug in simplify_set which calls CANNOT_CHANGE_MODE_CLASS with wrong mode params. It occurs when trying to simplify paradoxical subregs of hw regs (whose natural mode is lower than a word). In fact, changing from (set x:m1 (subreg:m1 (op:m2))) to (set (subreg:m2 x)