On Fri, Aug 12, 2022 at 11:24 PM Roger Sayle <ro...@nextmovesoftware.com> wrote: > > > Hi Uros, > As requested, here's an updated version of my patch that introduces a new > const_0_to_255_not_mul_8_operand as you've requested. I think in this > instance, having mutually exclusive patterns that can appear in any order, > without imposing implicit ordering constraints, is slightly preferable, > especially as (thanks to STV) some related patterns may appear in > sse.md and others appear in i386.md (making ordering tricky). > > This patch has been retested on x86_64-pc-linux-gnu with make bootstrap > and make -k check, both with and without --target_board=unix{-m32}, > with no new failures. Ok for mainline? > > > 2022-08-12 Roger Sayle <ro...@nextmovesoftware.com> > Uroš Bizjak <ubiz...@gmail.com> > > gcc/ChangeLog > * config/i386/predicates.md (const_0_to_255_not_mul_8_operand): > New predicate for values between 0/1 and 255, not multiples of 8. > * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left > shifts by constant bit counts. > (*ashlvti3_internal): New define_insn_and_split that lowers > logical left shifts by constant bit counts, that aren't multiples > of 8, before reload. > (lshrv1ti3): Delay lowering of logical right shifts by constant. > (*lshrv1ti3_internal): New define_insn_and_split that lowers > logical right shifts by constant bit counts, that aren't multiples > of 8, before reload. > (ashrv1ti3):: Delay lowering of arithmetic right shifts by > constant bit counts. > (*ashrv1ti3_internal): New define_insn_and_split that lowers > arithmetic right shifts by constant bit counts before reload. > (rotlv1ti3): Delay lowering of rotate left by constant. > (*rotlv1ti3_internal): New define_insn_and_split that lowers > rotate left by constant bits counts before reload. > (rotrv1ti3): Delay lowering of rotate right by constant. > (*rotrv1ti3_internal): New define_insn_and_split that lowers > rotate right by constant bits counts before reload.
OK with a small nit: + "TARGET_SSE2 + && TARGET_64BIT Please put these target options to one line, as in many examples throuhout i386.md Thanks, Uros.