On Fri, Aug 1, 2025 at 10:32 PM Uros Bizjak <ubiz...@gmail.com> wrote:
>
> On Sat, Aug 2, 2025 at 3:22 AM H.J. Lu <hjl.to...@gmail.com> wrote:
> >
> > After
> >
> > commit 965564eafb721f8000013a3112f1bba8d8fae32b
> > Author: Richard Sandiford <richard.sandif...@arm.com>
> > Date:   Tue Jul 29 15:58:34 2025 +0100
> >
> >     simplify-rtx: Simplify subregs of logic ops
> >
> > combine generates
> >
> > (set (zero_extract:SI (reg/v:SI 101 [ a ])
> >         (const_int 8 [0x8])
> >         (const_int 8 [0x8]))
> >     (not:SI (sign_extract:SI (reg:SI 107 [ b ])
> >             (const_int 8 [0x8])
> >             (const_int 8 [0x8]))))
> >
> > instead of
> >
> > (set (zero_extract:SI (reg/v:SI 101 [ a ])
> >         (const_int 8 [0x8])
> >         (const_int 8 [0x8]))
> >     (subreg:SI (not:QI (subreg:QI (sign_extract:SI (reg:SI 107 [ b ])
> >                     (const_int 8 [0x8])
> >                     (const_int 8 [0x8])) 0)) 0))
> >
> > Add *one_cmplqi_ext<mode>_2 to support the new pattern.
> >
> >         PR target/121306
> >         * config/i386/i386.md (*one_cmplqi_ext<mode>_2): New.
>
> Why not just change the old pattern? I'd expect that the old form is
> now obsolete.
>

*one_cmplqi_ext<mode>_1 is still needed.  Otherwise combine will
fail to match this instruction:

(set (zero_extract:SI (reg/v:SI 102 [ a ])
        (const_int 8 [0x8])
        (const_int 8 [0x8]))
    (subreg:SI (not:QI (subreg:QI (reg:SI 105 [ _2 ]) 0)) 0))


-- 
H.J.

Reply via email to