On Sat, Aug 2, 2025 at 8:56 PM H.J. Lu <hjl.to...@gmail.com> wrote: > > 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))
Do you perhaps have a testcase that still shows this combination? Perhaps the author of the simplification (CC'd) would be interested in this missing case. I was under the impression that the new simplification should always trigger, there is no point in having it if the backend still has to provide simplified and non-simplified patterns. There are also other similar logic patterns in i386.md that would have to be amended. Uros.