On Thu, 2023-09-07 at 10:15 +0800, chenglulu wrote: > > 在 2023/9/6 下午6:58, Xi Ruoyao 写道: > > Forgot to mention: I've bootstrapped and regtested this patch on > > loongarch64-linux-gnu (with PR110939 patch applied to unbreak the > > bootstrapping). Ok for trunk? > > LGTM! > > Thanks!
Pushed r14-3773. > > > > On Wed, 2023-09-06 at 18:46 +0800, Xi Ruoyao wrote: > > > > > If mask is a constant with value ((1 << N) - 1) << M we can > > > perform this > > > optimization. > > > > > > gcc/ChangeLog: > > > > > > PR target/111252 > > > * config/loongarch/loongarch-protos.h > > > (loongarch_pre_reload_split): Declare new function. > > > (loongarch_use_bstrins_for_ior_with_mask): Likewise. > > > * config/loongarch/loongarch.cc > > > (loongarch_pre_reload_split): Implement. > > > (loongarch_use_bstrins_for_ior_with_mask): Likewise. > > > * config/loongarch/predicates.md > > > (ins_zero_bitmask_operand): > > > New predicate. > > > * config/loongarch/loongarch.md > > > (bstrins_<mode>_for_mask): > > > New define_insn_and_split. > > > (bstrins_<mode>_for_ior_mask): Likewise. > > > (define_peephole2): Further optimize code sequence > > > produced by > > > bstrins_<mode>_for_ior_mask if possible. > > > > > > gcc/testsuite/ChangeLog: > > > > > > * g++.target/loongarch/bstrins-compile.C: New test. > > > * g++.target/loongarch/bstrins-run.C: New test. > > /* snip */ > > > -- Xi Ruoyao <xry...@xry111.site> School of Aerospace Science and Technology, Xidian University