aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKewen Lin <linkw@linux.ibm.com>2022-11-16 23:08:23 -0600
committerKewen Lin <linkw@linux.ibm.com>2022-11-16 23:08:23 -0600
commit928bc5b863f126189753e45ef45a40265ae028c5 (patch)
treedc5bed6a33ea4e1d24f2870fe41257ea608b369b /gcc
parenta62d957342e3e9ee9bda812f737279f1166e03ba (diff)
downloadgcc-928bc5b863f126189753e45ef45a40265ae028c5.zip
gcc-928bc5b863f126189753e45ef45a40265ae028c5.tar.gz
gcc-928bc5b863f126189753e45ef45a40265ae028c5.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gimple-fold.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/gimple-fold.cc b/gcc/gimple-fold.cc
index 0a212e6..f8a1875 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