Fix another thinko in peeling for gap compute of get_group_load_store_type
There's inconsistent handling of the cpart_size == cnunits which currently avoids reporting peeling for gaps being insufficient, but the following condition which is enough to trigger it, cremain + group_size < cpart_size with cpart_size == cnunits is equal to the condition that brings us here in the first place, maybe_lt (remain + group_size, nunits). The following fixes this by not checking cpart_size against special values. * tree-vect-stmts.cc (get_group_load_store_type): Do not exempt cpart_size == cnunits from failing.
This commit is contained in:
parent
faf594ce21
commit
119c1b76e2
1 changed files with 1 additions and 1 deletions
|
@ -2196,7 +2196,7 @@ get_group_load_store_type (vec_info *vinfo, stmt_vec_info stmt_info,
|
|||
if (!nunits.is_constant (&cnunits)
|
||||
|| !LOOP_VINFO_VECT_FACTOR (loop_vinfo).is_constant (&cvf)
|
||||
|| (((cremain = (group_size * cvf - gap) % cnunits), true)
|
||||
&& ((cpart_size = (1 << ceil_log2 (cremain))) != cnunits)
|
||||
&& ((cpart_size = (1 << ceil_log2 (cremain))), true)
|
||||
&& (cremain + group_size < cpart_size
|
||||
|| vector_vector_composition_type
|
||||
(vectype, cnunits / cpart_size,
|
||||
|
|
Loading…
Add table
Reference in a new issue