Alex Coplan <alex.cop...@arm.com> writes: > Hello, > > Following on from the earlier patch to fix up the syntax for > add/sub/adds/subs and friends with a sign/zero-extended operand [0], > this patch removes the "mult" variants of these patterns which are > all redundant. > > This patch removes the following patterns from the AArch64 backend: > > *adds_mul_imm_<mode> > *subs_mul_imm_<mode> > *adds_<optab><mode>_multp2 > *subs_<optab><mode>_multp2 > *add_mul_imm_<mode> > *add_<optab><ALLX:mode>_mult_<GPI:mode> > *add_<optab><SHORT:mode>_mult_si_uxtw > *add_<optab><mode>_multp2 > *add_<optab>si_multp2_uxtw > *add_uxt<mode>_multp2 > *add_uxtsi_multp2_uxtw > *sub_mul_imm_<mode> > *sub_mul_imm_si_uxtw > *sub_<optab><mode>_multp2 > *sub_<optab>si_multp2_uxtw > *sub_uxt<mode>_multp2 > *sub_uxtsi_multp2_uxtw > *neg_mul_imm_<mode>2 > *neg_mul_imm_si2_uxtw > > Together with the following predicates which were used only by these > patterns: > > - aarch64_pwr_imm3 > - aarch64_pwr_2_si > - aarch64_pwr_2_di > > These patterns are all redundant since multiplications by powers of two > should be represented as shfits outside a (mem). > > Testing: > * Bootstrapped and regtested on aarch64-none-linux-gnu (on top of [0]), > no regressions. > > OK for master (when applied after [0])?
That's a nice collection of minuses. OK for trunk, thanks. Since this depends on the RA patch, and since RA patches have a habit of exposing problems on other targets, it might be better to wait for a week or so before committing this one. Just a suggestion though -- go ahead and commit whenever you're comfortable committing. The patch might expose code quality regressions. If so, that's probably a sign that some other pass needs a similar fix to the RA, even though the symptom is “just” a missed optimisation rather than an ICE. Thanks, Richard