Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-12-01 Thread Jiufu Guo via Gcc-patches
Hi Segher, 在 11/28/22 10:18 PM, Segher Boessenkool 写道: > On Mon, Nov 28, 2022 at 11:37:34AM +0800, Jiufu Guo wrote: >> Segher Boessenkool writes: >>> On Fri, Nov 25, 2022 at 04:11:49PM +0800, Kewen.Lin wrote: on 2022/10/26 19:40, Jiufu Guo wrote: for "li/lis + oris/xoris", I interpreted

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-30 Thread Jiufu Guo via Gcc-patches
Date: Thu, 01 Dec 2022 09:51:32 +0800 In-Reply-To: <20221125144309.gg25...@gate.crashing.org> (Segher Boessenkool's message of "Fri, 25 Nov 2022 08:43:09 -0600") Message-ID: <7ewn7bx55n@pike.rch.stglabs.ibm.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) Segher Boessenko

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-30 Thread Jiufu Guo via Gcc-patches
Date: Thu, 01 Dec 2022 09:48:06 +0800 In-Reply-To: <20221128171950.gn25...@gate.crashing.org> (Segher Boessenkool's message of "Mon, 28 Nov 2022 11:19:50 -0600") Message-ID: <7e4jufyjvt@pike.rch.stglabs.ibm.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) Segher Boessenko

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-29 Thread Jiufu Guo via Gcc-patches
Thanks for your comment! Date: Wed, 30 Nov 2022 12:30:02 +0800 Message-ID: <7ebkopxdx1@pike.rch.stglabs.ibm.com> Segher Boessenkool writes: >> > + else if ((ud4 == 0x && ud3 == 0x) >> > + && ((ud1 & 0x8000) || (ud1 == 0 && !(ud2 & 0x8000 >> > +{ >> > + temp = !can_c

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-29 Thread Jiufu Guo via Gcc-patches
Hi Segher, Thanks for your comment! Segher Boessenkool writes: > On Mon, Nov 28, 2022 at 03:51:59PM +0800, Jiufu Guo wrote: >> Jiufu Guo via Gcc-patches writes: >> > Segher Boessenkool writes: >> >>> > + else >> >>> > + { >> >>> > +emit_move_insn (temp, >> >>> > +

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-29 Thread Jiufu Guo via Gcc-patches
Hi Segher, Thanks for your review! Segher Boessenkool writes: > On Mon, Nov 28, 2022 at 11:37:34AM +0800, Jiufu Guo wrote: >> Segher Boessenkool writes: >> > On Fri, Nov 25, 2022 at 04:11:49PM +0800, Kewen.Lin wrote: >> >> on 2022/10/26 19:40, Jiufu Guo wrote: >> >> for "li/lis + oris/xoris",

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-28 Thread Segher Boessenkool
On Mon, Nov 28, 2022 at 03:51:59PM +0800, Jiufu Guo wrote: > Jiufu Guo via Gcc-patches writes: > > Segher Boessenkool writes: > >>> > + else > >>> > + { > >>> > + emit_move_insn (temp, > >>> > + GEN_INT (((ud2 << 16) ^ 0x8000) - > >>> > 0x8000))

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-28 Thread Segher Boessenkool
On Mon, Nov 28, 2022 at 11:37:34AM +0800, Jiufu Guo wrote: > Segher Boessenkool writes: > > On Fri, Nov 25, 2022 at 04:11:49PM +0800, Kewen.Lin wrote: > >> on 2022/10/26 19:40, Jiufu Guo wrote: > >> for "li/lis + oris/xoris", I interpreted it into four combinations: > >> > >>li + oris, lis +

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-27 Thread Jiufu Guo via Gcc-patches
Jiufu Guo via Gcc-patches writes: > Hi Segher! > > Thanks a lot for your comments! > > Segher Boessenkool writes: > >> Hi guys, >> >> On Fri, Nov 25, 2022 at 04:11:49PM +0800, Kewen.Lin wrote: >>> on 2022/10/26 19:40, Jiufu Guo wrote: >>> for "li/lis + oris/xoris", I interpreted it into four com

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-27 Thread Jiufu Guo via Gcc-patches
Hi Segher! Thanks a lot for your comments! Segher Boessenkool writes: > Hi guys, > > On Fri, Nov 25, 2022 at 04:11:49PM +0800, Kewen.Lin wrote: >> on 2022/10/26 19:40, Jiufu Guo wrote: >> for "li/lis + oris/xoris", I interpreted it into four combinations: >> >>li + oris, lis + oris, li + x

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-25 Thread Segher Boessenkool
Hi guys, On Fri, Nov 25, 2022 at 04:11:49PM +0800, Kewen.Lin wrote: > on 2022/10/26 19:40, Jiufu Guo wrote: > for "li/lis + oris/xoris", I interpreted it into four combinations: > >li + oris, lis + oris, li + xoris, lis + xoris. > > not sure just me interpreting like that, but the actual com

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-25 Thread Jiufu Guo via Gcc-patches
Hi Kewen, Thanks a lot for your insight comments! "Kewen.Lin" writes: > Hi Jeff, > > Sorry for the late reply. > > on 2022/10/26 19:40, Jiufu Guo wrote: >> Hi, >> >> PR106708 constaint some constants which can be support by li/lis + >> oris/xoris. > typo? Oh, typo! > > f

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-25 Thread Kewen.Lin via Gcc-patches
Hi Jeff, Sorry for the late reply. on 2022/10/26 19:40, Jiufu Guo wrote: > Hi, > > PR106708 constaint some constants which can be support by li/lis + oris/xoris. typo? for "li/lis + oris/xoris", I interpreted it into four combinations: li + oris, lis + oris, li + xoris,

Ping: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-11-08 Thread Jiufu Guo via Gcc-patches
Hi, Gentle ping: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604415.html BR, Jeff(Jiufu) Jiufu Guo writes: > Hi, > > PR106708 constaint some constants which can be support by li/lis + oris/xoris. > > For constant C: > if '(c & 0x80008000ULL) == 0x8000ULL' or say: > 32(0

Re: [PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-10-26 Thread Jiufu Guo via Gcc-patches
Jiufu Guo writes: > index 000..ebd9ea88993 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/powerpc/pr106708.c > @@ -0,0 +1,12 @@ > +/* PR target/106708 */ > +/* { dg-do compile } } */ Typo, should be: +/* { dg-do compile } */> BR, Jeff(Jiufu)

[PATCH V2] rs6000: Support to build constants by li/lis+oris/xoris

2022-10-26 Thread Jiufu Guo via Gcc-patches
Hi, PR106708 constaint some constants which can be support by li/lis + oris/xoris. For constant C: if '(c & 0x80008000ULL) == 0x8000ULL' or say: 32(0) || 1(1) || 15(x) || 1(0) || 15(x), we could use li+oris to build constant 'C'. Here N(M) means N continuous bit M, x for M means it is