Skip to content
Snippets Groups Projects
Commit 79a27f32 authored by Claudiu Zissulescu's avatar Claudiu Zissulescu
Browse files

arc: Improve vector support for ARCv2.


Add vector negate, reduc_plus_scal, vec_duplicate, vector
min/max/mult/div patterns.  Besides vector negate and reduction
patterns, all the others are emulated using scalar instructions. The
reason is taking advantage of the double load/store instructions as
well as enabling the autovectorizer to further analize a loop.

gcc/
2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
	* config/arc/simdext.md (VCT): Add predicates for iterator
	elements.
	(EMUVEC): Define.
	(voptab): Likewise.
	(vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
	(<voptab>v2si3): New patterns.
	(neg): Likewise.
	(reduc_plus_scal_v4hi): Likewise.
	(reduc_plus_scal_v2si): Likewise.
	(vec_duplicatev2si): Likewise.
	(vec_duplicatev4hi): Likewise.

Signed-off-by: default avatarClaudiu Zissulescu <claziss@synopsys.com>
parent 09ae0f6c
Loading
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