On Wed, Nov 16, 2022 at 8:29 AM Kewen.Lin <li...@linux.ibm.com> wrote: > > Hi, > > As Robin spotted, my recent commit r13-3716 caused an ICE > on s390 if vector access with length is enabled there (his > patch for the enablement hasn't been committed yet). The > failure is caused by one stupid typo, the bias on s390 is > -1, so the assertion should use tree_fits_shwi_p rather > than tree_fits_uhwi_p. Thanks for Robin's catching. > > I just reproduced the ICE and verified the fix worked fine > with a cross build, the optimized dump against the test case > gcc.target/powerpc/pr107412.c looked expected. > > Is it ok for trunk?
OK. > BR, > Kewen > ----- > gcc/ChangeLog: > > * gimple-fold.cc (gimple_fold_partial_load_store_mem_ref): Use > tree_fits_shwi_p rather than tree_fits_uhwi_p as bias is signed. > --- > gcc/gimple-fold.cc | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/gcc/gimple-fold.cc b/gcc/gimple-fold.cc > index 0a212e6d0d4..f8a1875ea3e 100644 > --- a/gcc/gimple-fold.cc > +++ b/gcc/gimple-fold.cc > @@ -5392,7 +5392,7 @@ gimple_fold_partial_load_store_mem_ref (gcall *call, > tree vectype, bool mask_p) > return NULL_TREE; > unsigned int nargs = gimple_call_num_args (call); > tree bias = gimple_call_arg (call, nargs - 1); > - gcc_assert (tree_fits_uhwi_p (bias)); > + gcc_assert (tree_fits_shwi_p (bias)); > tree biased_len = int_const_binop (MINUS_EXPR, basic_len, bias); > unsigned int len = tree_to_uhwi (biased_len); > unsigned int vect_len > -- > 2.25.1