Message ID | f1d78b22-e5e9-5104-a3aa-750d8bb6cba2@linux.ibm.com |
---|---|
State | New |
Headers | show |
Series | Fix typo in gimple_fold_partial_load_store_mem_ref | expand |
On Wed, Nov 16, 2022 at 8:29 AM Kewen.Lin <linkw@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
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