On Fri, Dec 4, 2020 at 7:09 PM Jakub Jelinek <ja...@redhat.com> wrote: > > On Fri, Dec 04, 2020 at 07:06:45PM +0100, Uros Bizjak wrote: > > No, I didn't want to burden you with the additional task - the patch > > is OK as it is. I was just thinking out loud, as I remembered that > > changing bt patterns to combine splitter regressed one testcase. IIRC > > combination of two insns blocked better combination of three insns, or > > something like that. > > Here is the patch to simplify the newly added combine splitters, > when we split into 2 insns anyway, no reason to split into the masking > define_insn_and_split we'd be splitting shortly after. > > Passes the new testcase, ok if it passes bootstrap/regtest on x86_64-linux > and i686-linux? > > 2020-12-04 Jakub Jelinek <ja...@redhat.com> > > PR target/96226 > * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask, > splitter after *<rotate_insn><mode>3_mask_1): Drop the masking from > the patterns to split into.
OK. Thanks, Uros. > --- gcc/config/i386/i386.md.jj 2020-12-04 18:44:23.494052861 +0100 > +++ gcc/config/i386/i386.md 2020-12-04 19:00:22.192626807 +0100 > @@ -11988,8 +11988,7 @@ (define_split > [(set (match_dup 4) (match_dup 1)) > (set (match_dup 0) > (any_rotate:SWI48 (match_dup 4) > - (subreg:QI > - (and:SI (match_dup 2) (match_dup 3)) 0)))] > + (subreg:QI (match_dup 2) 0)))] > "operands[4] = gen_reg_rtx (<MODE>mode);") > > (define_insn_and_split "*<rotate_insn><mode>3_mask_1" > @@ -12023,8 +12022,7 @@ (define_split > == GET_MODE_BITSIZE (<MODE>mode) - 1" > [(set (match_dup 4) (match_dup 1)) > (set (match_dup 0) > - (any_rotate:SWI48 (match_dup 4) > - (and:QI (match_dup 2) (match_dup 3))))] > + (any_rotate:SWI48 (match_dup 4) (match_dup 2)))] > "operands[4] = gen_reg_rtx (<MODE>mode);") > > ;; Implement rotation using two double-precision > > > Jakub >