aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.c
diff options
context:
space:
mode:
authorKewen Lin <linkw@linux.ibm.com>2022-01-14 07:02:10 -0600
committerKewen Lin <linkw@linux.ibm.com>2022-01-14 07:02:10 -0600
commit6d51a9c6447bace21f860e70aed13c6cd90971bd (patch)
tree252cc39da96aca2c6663a36e3e49977481118a5c /gcc/tree-vect-loop.c
parentde196e5dd8ea4d0ed01a8c265afdd3676e27545b (diff)
downloadgcc-6d51a9c6447bace21f860e70aed13c6cd90971bd.zip
gcc-6d51a9c6447bace21f860e70aed13c6cd90971bd.tar.gz
gcc-6d51a9c6447bace21f860e70aed13c6cd90971bd.tar.bz2
vect: Check partial vector param for supports_partial_vectors [PR104015]
As described in PR104015, the function partial_vectors_supported_p mainly checks optabs for partial vectors support query, but we still have one parameter param_vect_partial_vector_usage to control the capability. Power9 introduces vector with length instructions (for len_load/len_store) but we don't enable partial vector on it by default. It should be considered as not supporting partial vector by default. This fix is to make the flag supports_partial_vectors check param_vect_partial_vector_usage accordingly. gcc/ChangeLog: PR tree-optimization/104015 * tree-vect-loop.c (vect_analyze_loop): Check param_vect_partial_vector_usage for supports_partial_vectors.
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r--gcc/tree-vect-loop.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 8748b1a..1dbdb9e 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -3051,7 +3051,8 @@ vect_analyze_loop (class loop *loop, vec_info_shared *shared)
vector_modes[0] = autodetected_vector_mode;
mode_i = 0;
- bool supports_partial_vectors = partial_vectors_supported_p ();
+ bool supports_partial_vectors =
+ partial_vectors_supported_p () && param_vect_partial_vector_usage != 0;
poly_uint64 first_vinfo_vf = LOOP_VINFO_VECT_FACTOR (first_loop_vinfo);
while (1)