On Thu, Oct 22, 2020 at 12:36 AM Segher Boessenkool <seg...@kernel.crashing.org> wrote: > > On Wed, Oct 21, 2020 at 04:43:29PM +0100, Richard Sandiford wrote: > > Hongtao Liu <crazy...@gmail.com> writes: > > > + poly_uint64 nunits > > > + = GET_MODE_NUNITS (GET_MODE (SUBREG_REG (trueop0))); > > > + rtx par = trueop1; > > > + for (int i = 0; i != l1; i++) > > > + { > > > + rtx idx = XVECEXP (trueop1, 0, i); > > > + if (!CONST_INT_P (idx) > > > + || maybe_ge (UINTVAL (idx) + subreg_offset, nunits)) > > > + return 0; > > > + } > > > > I think the previous version was better. We shouldn't assume that > > further simplification rules will fail just because the conditions > > for this rule haven't been met. > > Yes. My suggestion was to factor this big piece of code to a separate > function, and do an early return from *that*. > > The patch is okay for trunk without that, with the clumsy booleans. > Thanks Hongtao! > > > Segher
Thank you both for the review, I'll commit the patch with *bool success* keeped. -- BR, Hongtao