[PATCH] aarch64: Use type-qualified builtins for LD1/ST1 Neon intrinsics

Jonathan Wright Jonathan.Wright@arm.com
Thu Nov 11 10:34:17 GMT 2021


Hi,

This patch declares unsigned and polynomial type-qualified builtins and
uses them to implement the LD1/ST1 Neon intrinsics. This removes the
need for many casts in arm_neon.h.

The new type-qualified builtins are also lowered to gimple - as the
unqualified builtins are already.

Regression tested and bootstrapped on aarch64-none-linux-gnu - no
issues.

Ok for master?

Thanks,
Jonathan

---

gcc/ChangeLog:

2021-11-10  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-builtins.c (TYPES_LOAD1_U): Define.
	(TYPES_LOAD1_P): Define.
	(TYPES_STORE1_U): Define.
	(TYPES_STORE1P): Rename to...
	(TYPES_STORE1_P): This.
	(get_mem_type_for_load_store): Add unsigned and poly types.
	(aarch64_general_gimple_fold_builtin): Add unsigned and poly
	type-qualified builtin declarations.
	* config/aarch64/aarch64-simd-builtins.def: Declare type-
	qualified builtins for LD1/ST1.
	* config/aarch64/arm_neon.h (vld1_p8): Use type-qualified
	builtin and remove cast.
	(vld1_p16): Likewise.
	(vld1_u8): Likewise.
	(vld1_u16): Likewise.
	(vld1_u32): Likewise.
	(vld1q_p8): Likewise.
	(vld1q_p16): Likewise.
	(vld1q_p64): Likewise.
	(vld1q_u8): Likewise.
	(vld1q_u16): Likewise.
	(vld1q_u32): Likewise.
	(vld1q_u64): Likewise.
	(vst1_p8): Likewise.
	(vst1_p16): Likewise.
	(vst1_u8): Likewise.
	(vst1_u16): Likewise.
	(vst1_u32): Likewise.
	(vst1q_p8): Likewise.
	(vst1q_p16): Likewise.
	(vst1q_p64): Likewise.
	(vst1q_u8): Likewise.
	(vst1q_u16): Likewise.
	(vst1q_u32): Likewise.
	(vst1q_u64): Likewise.
	* config/aarch64/iterators.md (VALLP_NO_DI): New iterator.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rb15058.patch
Type: application/octet-stream
Size: 16525 bytes
Desc: rb15058.patch
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20211111/c8579989/attachment-0001.obj>


More information about the Gcc-patches mailing list