aarch64: Add support for sve2p3 and sme2p3 conversion intrinsics

This patch adds support for new intrinsics which make use of
the conversion instructions introduced in SVE2p3/SME2p3.

gcc/ChangeLog:

	* config/aarch64/aarch64-acle-builtins.h
	(TYPES_cvtzn): New function types.
	(TYPES_cvttb): Likewise.
	(cvtzn): Likewise.
	(cvttb): Likewise.
	* config/aarch64/aarch64-sve-builtins-sve2.cc
	(class svcvtt_impl): New function impl.
	(class svcvtb_impl): Likewise.
	(FUNCTION): Likewise.
	* config/aarch64/aarch64-sve-builtins-sve2.def
	(svcvtn): New function.
	(svcvtt): Likewise.
	(svcvtb): Likewise.
	* config/aarch64/aarch64-sve-builtins-sve2.h: Likewise.
	* config/aarch64/aarch64-sve2.md
	(@aarch64_sve2_scvtfb<mode>): New pattern.
	(@aarch64_sve2_scvtflt<mode>): Likewise.
	(@aarch64_sve2_ucvtfb<mode>): Likewise.
	(@aarch64_sve2_ucvtflt<mode>): Likewise.
	(@aarch64_sve2_fcvtzsn<mode>): Likewise.
	(@aarch64_sve2_fcvtzun<mode>): Likewise.
	* config/aarch64/iterators.md
	(b): Ventype changes.
	(VNx16HF): Likewise.
	(VNx16QI): Likewise.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/sme2/acle-asm/cvtb_f16_s8.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtb_f16_u8.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtb_f32_s16.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtb_f32_u16.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtb_f64_s32.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtb_f64_u32.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtn_s16_f32_x2.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtn_s32_f64_x2.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtn_s8_f16_x2.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtn_u16_f32_x2.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtn_u32_f64_x2.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtn_u8_f16_x2.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtt_f16_s8.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtt_f16_u8.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtt_f32_s16.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtt_f32_u16.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtt_f64_s32.c: New test.
	* gcc.target/aarch64/sme2/acle-asm/cvtt_f64_u32.c: New test.
24 files changed