Re: Question about make_extraction() in combine.c

2019-08-29 Thread Michael Eager
On 8/28/19 12:33 PM, Segher Boessenkool wrote: Hi! On Tue, Aug 27, 2019 at 09:37:59AM -0700, Michael Eager wrote: Combine is complex, but I don't think that target descriptions should conform to its behaviors; But they have to, in some ways. If combine writes something that can be written in

Re: Question about make_extraction() in combine.c

2019-08-28 Thread Segher Boessenkool
Hi! On Tue, Aug 27, 2019 at 09:37:59AM -0700, Michael Eager wrote: > Combine is complex, but I don't think that target descriptions should > conform to its behaviors; But they have to, in some ways. If combine writes something that can be written in multiple ways in some way X, then your machin

Re: Question about make_extraction() in combine.c

2019-08-27 Thread Michael Eager
On 8/20/19 4:07 PM, Jeff Law wrote: On 11/20/18 4:39 PM, Michael Eager wrote: On 11/20/2018 03:10 PM, Jeff Law wrote: On 11/20/18 11:07 AM, Michael Eager wrote: On 11/18/2018 08:14 AM, Jeff Law wrote: On 11/18/18 8:44 AM, Michael Eager wrote: On 11/16/18 14:50, Segher Boessenkool wrote: H

Re: Question about make_extraction() in combine.c

2018-11-29 Thread Jeff Law
On 11/21/18 9:33 AM, Segher Boessenkool wrote: > On Tue, Nov 20, 2018 at 10:07:35AM -0800, Michael Eager wrote: >> The internal RTL should not be dictating what the target arch can or >> cannot implement. Reload should insert any needed conversions, >> especially ones which narrow the size. > >

Re: Question about make_extraction() in combine.c

2018-11-21 Thread Michael Eager
On 11/21/18 11:47, Segher Boessenkool wrote: On Wed, Nov 21, 2018 at 08:52:21AM -0800, Michael Eager wrote: On 11/21/2018 08:33 AM, Segher Boessenkool wrote: On Tue, Nov 20, 2018 at 10:07:35AM -0800, Michael Eager wrote: The internal RTL should not be dictating what the target arch can or cann

Re: Question about make_extraction() in combine.c

2018-11-21 Thread Segher Boessenkool
On Wed, Nov 21, 2018 at 08:52:21AM -0800, Michael Eager wrote: > On 11/21/2018 08:33 AM, Segher Boessenkool wrote: > >On Tue, Nov 20, 2018 at 10:07:35AM -0800, Michael Eager wrote: > >>The internal RTL should not be dictating what the target arch can or > >>cannot implement. Reload should insert a

Re: Question about make_extraction() in combine.c

2018-11-21 Thread Michael Eager
On 11/21/2018 08:33 AM, Segher Boessenkool wrote: On Tue, Nov 20, 2018 at 10:07:35AM -0800, Michael Eager wrote: The internal RTL should not be dictating what the target arch can or cannot implement. Reload should insert any needed conversions, especially ones which narrow the size. Well, tha

Re: Question about make_extraction() in combine.c

2018-11-21 Thread Segher Boessenkool
On Tue, Nov 20, 2018 at 10:07:35AM -0800, Michael Eager wrote: > The internal RTL should not be dictating what the target arch can or > cannot implement. Reload should insert any needed conversions, > especially ones which narrow the size. Well, that depends. A zero_extract of mem is only defi

Re: Question about make_extraction() in combine.c

2018-11-20 Thread Jeff Law
On 11/20/18 11:07 AM, Michael Eager wrote: > On 11/18/2018 08:14 AM, Jeff Law wrote: >> On 11/18/18 8:44 AM, Michael Eager wrote: >>> On 11/16/18 14:50, Segher Boessenkool wrote: Hi! On Wed, Nov 14, 2018 at 11:22:58AM -0800, Michael Eager wrote: > The (mem:SI) is converted to (me

Re: Question about make_extraction() in combine.c

2018-11-20 Thread Michael Eager
On 11/18/2018 08:14 AM, Jeff Law wrote: On 11/18/18 8:44 AM, Michael Eager wrote: On 11/16/18 14:50, Segher Boessenkool wrote: Hi! On Wed, Nov 14, 2018 at 11:22:58AM -0800, Michael Eager wrote: The (mem:SI) is converted to (mem:QI). The return from make_extract() is     (zero_extract:SI (me

Question about make_extraction() in combine.c

2018-11-15 Thread Michael Eager
In combine, simplify_comparison() is being called with the following arguments: code = EQ op0 = (and:SI (mem:SI (reg/v/f:SI 50 [ gp ]) (const_int 4 [0x4])) op1 = (const_int 0 [0]) € After churning down through make_compound_operation() and make_compound_operation_int(), processing gets to