[PATCH 1/2][AArch64] Simplify patterns for sshr_n_[us]64 intrinsic

2014-09-08 Thread Alan Lawrence
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 s

Ping: [PATCH 1/2][AArch64] Simplify patterns for sshr_n_[us]64 intrinsic

2014-12-17 Thread Alan Lawrence
This seems to have slipped under the radar for awhile. Ping. --Alan 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 iden

Re: [PATCH 1/2][AArch64] Simplify patterns for sshr_n_[us]64 intrinsic

2014-09-08 Thread Alan Lawrence
Patch attached. 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. T

Re: Ping: [PATCH 1/2][AArch64] Simplify patterns for sshr_n_[us]64 intrinsic

2014-12-17 Thread Marcus Shawcroft
On 17 December 2014 at 16:19, Alan Lawrence wrote: > This seems to have slipped under the radar for awhile. Ping. > > --Alan > >> 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. Howeve

Re: Ping: [PATCH 1/2][AArch64] Simplify patterns for sshr_n_[us]64 intrinsic

2014-12-17 Thread Marcus Shawcroft
>> gcc/ChangeLog: >> >> * 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. OK /Marcus