[PATCH 1/2][AArch64] Simplify patterns for sshr_n_[us]64 intrinsic
Mon Sep 8 16:20:00 GMT 2014
Alan Lawrence wrote:
> The sshr_n_64 intrinsics allow performing a signed shift right by 64 places. The
> standard ashrdi3 pattern masks the sign amount with 63, so cannot be used.
> However, such a shift fills the result by the sign bit, which is identical to
> shifting right by 63. This patch just simplifies the code to shift by 63
> instead, which allows to remove an UNSPEC and insn previously dedicated to this
> Cross-tested on aarch64-none-elf and aarch64_be-none-elf, with test coverage
> provided by gcc.target/aarch64/sshr64_1.c .
> * config/aarch64/aarch64.md (enum "unspec"): Remove UNSPEC_SSHR64.
> * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): Change shift
> amount to 63 if was 64.
> (aarch64_sshr_simddi): Remove.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1768 bytes
Desc: not available
More information about the Gcc-patches