gnu/gcc/7695a61179f48ff9e5cfb953bbf31309c5500a1a 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