Jeff and Segher, thanks for the clarifications and hints!
Bohan, I assume you will have a look at this (there is also PR119587
to keep track of it).
BR
Christoph
On Mon, Jun 9, 2025 at 6:28 PM Segher Boessenkool
wrote:
>
> On Mon, Jun 09, 2025 at 08:26:10AM -0600, Jeff Law wrote:
> > On 4/1/25
On Mon, Jun 09, 2025 at 08:26:10AM -0600, Jeff Law wrote:
> On 4/1/25 9:35 PM, Jeff Law wrote:
> So returning to this
>
> So the combine pass doesn't reject combination into an ASM_INPUT, just
> combination from most ASM_INPUTs.
Yeah, exactly.
> It does rely on predicates to determine valid
Hi!
On Tue, Apr 01, 2025 at 09:35:53PM -0600, Jeff Law wrote:
> Segher -- there's a combine question near the end...
> So this is a nasty little problem and touches on a deeper issue.
>
> The core problem is that combine doesn't know anything about
> constraints. It works with predicates and c
On 4/1/25 9:35 PM, Jeff Law wrote:
Segher -- there's a combine question near the end...
On 3/23/25 8:43 PM, Bohan Lei wrote:
The combine pass can generate an index like (and:DI (mult:DI (reg:DI)
(const_int scale)) (const_int mask)) when XTheadMemIdx is available.
LRA may pull it out, and t
On Wed, Apr 2, 2025 at 5:35 AM Jeff Law wrote:
>
>
> Segher -- there's a combine question near the end...
I've created PR119587 to keep track of this issue.
BR
Christoph
>
>
> On 3/23/25 8:43 PM, Bohan Lei wrote:
> > The combine pass can generate an index like (and:DI (mult:DI (reg:DI)
> > (con
Segher -- there's a combine question near the end...
On 3/23/25 8:43 PM, Bohan Lei wrote:
The combine pass can generate an index like (and:DI (mult:DI (reg:DI)
(const_int scale)) (const_int mask)) when XTheadMemIdx is available.
LRA may pull it out, and thus a splitter is needed when Zba is n
On 3/30/25 8:54 PM, Bohan Lei wrote:
The RTL pattern has an "and" operation, which clears out the upper bits after
the shift operation. Since we have (INTVAL (operands[3]) >> INTVAL
(operands[2])) == 0x as a constraint, the RTL template and the split
code should be semantically identi
The RTL pattern has an "and" operation, which clears out the upper bits after
the shift operation. Since we have (INTVAL (operands[3]) >> INTVAL
(operands[2])) == 0x as a constraint, the RTL template and the split
code should be semantically identical. Also, the RTL template here is
tec
On 3/23/25 8:43 PM, Bohan Lei wrote:
The combine pass can generate an index like (and:DI (mult:DI (reg:DI)
(const_int scale)) (const_int mask)) when XTheadMemIdx is available.
LRA may pull it out, and thus a splitter is needed when Zba is not
available.
A similar splitter were introduced when
On Mon, Mar 24, 2025 at 3:44 AM Bohan Lei wrote:
>
> The combine pass can generate an index like (and:DI (mult:DI (reg:DI)
> (const_int scale)) (const_int mask)) when XTheadMemIdx is available.
> LRA may pull it out, and thus a splitter is needed when Zba is not
> available.
>
> A similar splitter
10 matches
Mail list logo