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