Skip to content
Snippets Groups Projects
Commit 39cc2ed3 authored by Christophe Lyon's avatar Christophe Lyon
Browse files

arm: [MVE intrinsics] rework vstr scatter_base

Implement vstr?q_scatter_base using the new MVE builtins framework.

We need to introduce a new iterator (MVE_4) to support the set needed
by vstr?q_scatter_base (V4SI V4SF V2DI).

gcc/ChangeLog:

	* config/arm/arm-builtins.cc (arm_strsbs_qualifiers)
	(arm_strsbu_qualifiers, arm_strsbs_p_qualifiers)
	(arm_strsbu_p_qualifiers): Delete.
	* config/arm/arm-mve-builtins-base.cc (class
	vstrq_scatter_base_impl): New.
	(vstrwq_scatter_base, vstrdq_scatter_base): New.
	* config/arm/arm-mve-builtins-base.def (vstrwq_scatter_base)
	(vstrdq_scatter_base): New.
	* config/arm/arm-mve-builtins-base.h (vstrwq_scatter_base)
	(vstrdq_scatter_base): New.
	* config/arm/arm_mve.h (vstrwq_scatter_base): Delete.
	(vstrwq_scatter_base_p): Delete.
	(vstrdq_scatter_base_p): Delete.
	(vstrdq_scatter_base): Delete.
	(vstrwq_scatter_base_s32): Delete.
	(vstrwq_scatter_base_u32): Delete.
	(vstrwq_scatter_base_p_s32): Delete.
	(vstrwq_scatter_base_p_u32): Delete.
	(vstrdq_scatter_base_p_s64): Delete.
	(vstrdq_scatter_base_p_u64): Delete.
	(vstrdq_scatter_base_s64): Delete.
	(vstrdq_scatter_base_u64): Delete.
	(vstrwq_scatter_base_f32): Delete.
	(vstrwq_scatter_base_p_f32): Delete.
	(__arm_vstrwq_scatter_base_s32): Delete.
	(__arm_vstrwq_scatter_base_u32): Delete.
	(__arm_vstrwq_scatter_base_p_s32): Delete.
	(__arm_vstrwq_scatter_base_p_u32): Delete.
	(__arm_vstrdq_scatter_base_p_s64): Delete.
	(__arm_vstrdq_scatter_base_p_u64): Delete.
	(__arm_vstrdq_scatter_base_s64): Delete.
	(__arm_vstrdq_scatter_base_u64): Delete.
	(__arm_vstrwq_scatter_base_f32): Delete.
	(__arm_vstrwq_scatter_base_p_f32): Delete.
	(__arm_vstrwq_scatter_base): Delete.
	(__arm_vstrwq_scatter_base_p): Delete.
	(__arm_vstrdq_scatter_base_p): Delete.
	(__arm_vstrdq_scatter_base): Delete.
	* config/arm/arm_mve_builtins.def (vstrwq_scatter_base_s)
	(vstrwq_scatter_base_u, vstrwq_scatter_base_p_s)
	(vstrwq_scatter_base_p_u, vstrdq_scatter_base_s)
	(vstrwq_scatter_base_f, vstrdq_scatter_base_p_s)
	(vstrwq_scatter_base_p_f, vstrdq_scatter_base_u)
	(vstrdq_scatter_base_p_u): Delete.
	* config/arm/iterators.md (MVE_4): New.
	(supf): Remove VSTRWQSB_S, VSTRWQSB_U.
	(VSTRWSBQ): Delete.
	* config/arm/mve.md (mve_vstrwq_scatter_base_<supf>v4si): Delete.
	(mve_vstrwq_scatter_base_p_<supf>v4si): Delete.
	(mve_vstrdq_scatter_base_p_<supf>v2di): Delete.
	(mve_vstrdq_scatter_base_<supf>v2di): Delete.
	(mve_vstrwq_scatter_base_fv4sf): Delete.
	(mve_vstrwq_scatter_base_p_fv4sf): Delete.
	(@mve_vstrq_scatter_base_<mode>): New.
	(@mve_vstrq_scatter_base_p_<mode>): New.
	* config/arm/unspecs.md (VSTRWQSB_S, VSTRWQSB_U, VSTRWQSB_F):
	Delete.
	(VSTRSBQ, VSTRSBQ_P): New.
parent 1f2ab5b3
No related branches found
No related tags found
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