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.