On Fri, Aug 1, 2025 at 10:32 PM Uros Bizjak <[email protected]> wrote:
>
> On Sat, Aug 2, 2025 at 3:22 AM H.J. Lu <[email protected]> wrote:
> >
> > After
> >
> > commit 965564eafb721f8000013a3112f1bba8d8fae32b
> > Author: Richard Sandiford <[email protected]>
> > 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.