On Thu, 2025-01-16 at 20:52 +0800, Xi Ruoyao wrote: > On Thu, 2025-01-16 at 20:30 +0800, Lulu Cheng wrote: > > > > 在 2025/1/15 下午6:10, Xi Ruoyao 写道: > > > diff --git a/gcc/config/loongarch/loongarch.cc > > > b/gcc/config/loongarch/loongarch.cc > > > index 9d97f0216f0..3a8e1297bd3 100644 > > > --- a/gcc/config/loongarch/loongarch.cc > > > +++ b/gcc/config/loongarch/loongarch.cc > > > @@ -3929,14 +3929,31 @@ loongarch_rtx_costs (rtx x, machine_mode mode, > > > int outer_code, > > > > > > /* If it's an add + mult (which is equivalent to shift left) and > > > it's immediate operand satisfies const_immalsl_operand > > > predicate. */ > > > - if ((mode == SImode || (TARGET_64BIT && mode == DImode)) > > > - && GET_CODE (XEXP (x, 0)) == MULT) > > > + if (code == PLUS > > > > Hi, > > > > This section of code is already within the "case PLUS" block, so I think > > the condition "code == PLUS" is unnecessary. > > The reason is "case MINUS:" falls through into "case PLUS:" and we don't > have a "slsl" instruction, so we need the check to reject things like a > - b * 4 here.
Pressed "sent" too early: I think I need to mention this in the changelog indeed. -- Xi Ruoyao <xry...@xry111.site> School of Aerospace Science and Technology, Xidian University