Skip to content
Snippets Groups Projects
Commit 935aafac authored by Richard Biener's avatar Richard Biener Committed by Richard Biener
Browse files

tree-optimization/117558 - peeling for gaps and VL vectors

The following ensures that peeling a single iteration for gaps is
sufficient by enforcing niter masking (partial vector use) given
we cannot (always) statically decide when the vector size isn't known.
The condition guarding this and thus statically giving a pass in
some cases for VL vectors is questionable, the patch doesn't address
this.

This fixes a set of known failout from enabling
--param vect-force-slp=1 by default.

	PR tree-optimization/117558
	* tree-vectorizer.h (_loop_vec_info::must_use_partial_vectors_p): New.
	(LOOP_VINFO_MUST_USE_PARTIAL_VECTORS_P): Likewise.
	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize
	must_use_partial_vectors_p.
	(vect_determine_partial_vectors_and_peeling): Enforce it.
	(vect_analyze_loop_2): Reset before restarting.
	* tree-vect-stmts.cc (get_group_load_store_type): When peeling
	a single gap iteration cannot be determined safe statically
	enforce the use of partial vectors.
parent cee7d080
No related branches found
Tags v0.712
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment