Pushed as eda5a15909c315f0a4a7e76ad083f5f16cf1aef9
Thanks, On Fri, Jun 27, 2025 at 11:24 AM Jeff Law <jeffreya...@gmail.com> wrote: > > > > On 6/27/25 7:59 AM, Oleg Endo wrote: > > > > On Fri, 2025-06-27 at 10:51 -0300, Raphael Moreira Zinsly wrote: > >> A right shift of 31 will become 0 or 1, this can be checked for > >> treg_set_expr_not_const01 to avoid matching addc_t_r as this > >> can expand to a 3 insn sequence instead. > >> This improves tests 023 to 026 from gcc.target/sh/pr54236-2.c, e.g.: > >> test_023: > >> shll r5 > >> mov #0,r1 > >> mov r4,r0 > >> rts > >> addc r1,r0 > >> > >> With this change: > >> test_023: > >> shll r5 > >> movt r0 > >> rts > >> add r4,r0 > >> > >> We noticed this while evaluating a patch to improve how we handle > >> selecting between two constants based on the output of a LT/GE 0 > >> test. > >> > >> gcc/ChangeLog: > >> * config/sh/predicates.md > >> (treg_set_expr_not_const01): call sh_recog_treg_set_expr_not_01 > >> * config/sh/sh-protos.h > >> (sh_recog_treg_set_expr_not_01): New function > >> config/sh/sh.cc (sh_recog_treg_set_expr_not_01): Likewise > >> > >> gcc/testsuite/ChangeLog: > >> * gcc.target/sh/pr54236-2.c: Fix comments and expected output > > > > Assuming that this passes the usual regression tests, it looks OK to me. > > Please apply. > I ran it in my tester for Raphael. So sh3/sh3eb linux crosses. The > sh4/sh4eb bootstraps won't fire off until Sun/Mon if I remember the > scheduling correctly. > > jeff > -- Raphael Moreira Zinsly