[PATCH] aarch64: Model zero-high-half semantics of XTN instruction in RTL
Jonathan Wright
Jonathan.Wright@arm.com
Tue Jun 15 09:45:05 GMT 2021
Hi,
Modeling the zero-high-half semantics of the XTN narrowing
instruction in RTL indicates to the compiler that this is a totally
destructive operation. This enables more RTL simplifications and also
prevents some register allocation issues.
Regression tested and bootstrapped on aarch64-none-linux-gnu - no
issues.
Ok for master?
Thanks,
Jonathan
---
gcc/ChangeLog:
2021-06-11 Jonathan Wright <jonathan.wright@arm.com>
* config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le):
Define - modeling zero-high-half semantics.
(aarch64_xtn<mode>): Change to an expander that emits the
appropriate instruction depending on endianness.
(aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half
semantics.
(aarch64_xtn2<mode>_le): Rename to...
(aarch64_xtn2<mode>_insn_le): This.
(aarch64_xtn2<mode>_be): Rename to...
(aarch64_xtn2<mode>_insn_be): This.
(vec_pack_trunc_<mode>): Emit truncation instruction instead
of aarch64_xtn.
* config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
attribute iterator.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rb14563.patch
Type: application/octet-stream
Size: 5773 bytes
Desc: rb14563.patch
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20210615/8a39f99a/attachment.obj>
More information about the Gcc-patches
mailing list