Hi,

Saturating truncation can be expressed using the RTL expressions
ss_truncate and us_truncate. This patch changes the implementation
of the vqmovn_* Neon intrinsics to use these RTL expressions rather
than a pair of unspecs. The redundant unspecs are removed along with
their code iterator.

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

Ok for master?

Thanks,
Jonathan

---

gcc/ChangeLog:

2021-04-12  Jonathan Wright  <jonathan.wri...@arm.com>

        * config/aarch64/aarch64-simd-builtins.def: Modify comment to
        make consistent with updated RTL pattern.
        * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>):
        Implement using ss_truncate and us_truncate rather than
        unspecs.
        * config/aarch64/iterators.md: Remove redundant unspecs and
        iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.

Attachment: rb14376.patch
Description: rb14376.patch

Reply via email to