Commit 4b205bf8 by Richard Sandiford Committed by Richard Sandiford

Don't vectorise single-iteration epilogues

With a later patch I saw a case in which we peeled a single iteration
for gaps but didn't need to peel further iterations to make up a full
vector.  We then tried to vectorise the single-iteration epilogue.

2019-11-06  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* tree-vect-loop.c (vect_analyze_loop): Only try to vectorize
	the epilogue if there are peeled iterations for it to handle.

From-SVN: r277886
parent 4653da0b
2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
* tree-vect-loop.c (vect_analyze_loop): Only try to vectorize
the epilogue if there are peeled iterations for it to handle.
2019-11-06 Claudiu Zissulescu <claziss@synopsys.com> 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.c (arc_split_ior): Add asserts. * config/arc/arc.c (arc_split_ior): Add asserts.
...@@ -2459,6 +2459,7 @@ vect_analyze_loop (class loop *loop, vec_info_shared *shared) ...@@ -2459,6 +2459,7 @@ vect_analyze_loop (class loop *loop, vec_info_shared *shared)
vect_epilogues = (!loop->simdlen vect_epilogues = (!loop->simdlen
&& loop->inner == NULL && loop->inner == NULL
&& PARAM_VALUE (PARAM_VECT_EPILOGUES_NOMASK) && PARAM_VALUE (PARAM_VECT_EPILOGUES_NOMASK)
&& LOOP_VINFO_PEELING_FOR_NITER (first_loop_vinfo)
/* For now only allow one epilogue loop. */ /* For now only allow one epilogue loop. */
&& first_loop_vinfo->epilogue_vinfos.is_empty ()); && first_loop_vinfo->epilogue_vinfos.is_empty ());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment