[gcc r13-4120] Fix typo in gimple_fold_partial_load_store_mem_ref

Kewen Lin linkw@gcc.gnu.org
Thu Nov 17 05:09:52 GMT 2022


https://gcc.gnu.org/g:928bc5b863f126189753e45ef45a40265ae028c5

commit r13-4120-g928bc5b863f126189753e45ef45a40265ae028c5
Author: Kewen Lin <linkw@linux.ibm.com>
Date:   Wed Nov 16 23:08:23 2022 -0600

    Fix typo in gimple_fold_partial_load_store_mem_ref
    
    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.
    
    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.

Diff:
---
 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


More information about the Gcc-cvs mailing list