From 5eba099972a96630e5aa3f50a3a7ae36b22b1534 Mon Sep 17 00:00:00 2001 From: Alan Lawrence <alan.lawrence@arm.com> Date: Thu, 12 Jun 2014 10:28:49 +0000 Subject: [PATCH] [AArch64] Remove from arm_neon.h functions not in the spec * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64, vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64, vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64, vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64, vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64, vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8, vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they are not in the spec. From-SVN: r211503 --- gcc/ChangeLog | 11 ++ gcc/config/aarch64/arm_neon.h | 315 ---------------------------------- 2 files changed, 11 insertions(+), 315 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 10af9a56c8cc..a42b94d3a1e6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2014-06-12 Alan Lawrence <alan.lawrence@arm.com> + + * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64, + vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64, + vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64, + vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64, + vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64, + vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8, + vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they are + not in the spec. + 2014-06-10 Alan Lawrence <alan.lawrence@arm.com> PR target/59843 diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index e1c27f76a601..b1b78f9d4b98 100644 --- a/gcc/config/aarch64/arm_neon.h +++ b/gcc/config/aarch64/arm_neon.h @@ -7164,18 +7164,6 @@ vmlaq_n_f32 (float32x4_t a, float32x4_t b, float32_t c) return result; } -__extension__ static __inline float64x2_t __attribute__ ((__always_inline__)) -vmlaq_n_f64 (float64x2_t a, float64x2_t b, float64_t c) -{ - float64x2_t result; - float64x2_t t1; - __asm__ ("fmul %1.2d, %3.2d, %4.d[0]; fadd %0.2d, %0.2d, %1.2d" - : "=w"(result), "=w"(t1) - : "0"(a), "w"(b), "w"(c) - : /* No clobbers */); - return result; -} - __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) vmlaq_n_s16 (int16x8_t a, int16x8_t b, int16_t c) { @@ -7864,18 +7852,6 @@ vmlsq_n_f32 (float32x4_t a, float32x4_t b, float32_t c) return result; } -__extension__ static __inline float64x2_t __attribute__ ((__always_inline__)) -vmlsq_n_f64 (float64x2_t a, float64x2_t b, float64_t c) -{ - float64x2_t result; - float64x2_t t1; - __asm__ ("fmul %1.2d, %3.2d, %4.d[0]; fsub %0.2d, %0.2d, %1.2d" - : "=w"(result), "=w"(t1) - : "0"(a), "w"(b), "x"(c) - : /* No clobbers */); - return result; -} - __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) vmlsq_n_s16 (int16x8_t a, int16x8_t b, int16_t c) { @@ -10854,17 +10830,6 @@ vrsqrtss_f32 (float32_t a, float32_t b) return result; } -__extension__ static __inline float64x2_t __attribute__ ((__always_inline__)) -vrsrtsq_f64 (float64x2_t a, float64x2_t b) -{ - float64x2_t result; - __asm__ ("frsqrts %0.2d,%1.2d,%2.2d" - : "=w"(result) - : "w"(a), "w"(b) - : /* No clobbers */); - return result; -} - __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) vrsubhn_high_s16 (int8x8_t a, int16x8_t b, int16x8_t c) { @@ -14314,13 +14279,6 @@ vcge_f64 (float64x1_t __a, float64x1_t __b) return __a >= __b ? -1ll : 0ll; } -__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) -vcge_p8 (poly8x8_t __a, poly8x8_t __b) -{ - return (uint8x8_t) __builtin_aarch64_cmgev8qi ((int8x8_t) __a, - (int8x8_t) __b); -} - __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) vcge_s8 (int8x8_t __a, int8x8_t __b) { @@ -14384,13 +14342,6 @@ vcgeq_f64 (float64x2_t __a, float64x2_t __b) return (uint64x2_t) __builtin_aarch64_cmgev2df (__a, __b); } -__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) -vcgeq_p8 (poly8x16_t __a, poly8x16_t __b) -{ - return (uint8x16_t) __builtin_aarch64_cmgev16qi ((int8x16_t) __a, - (int8x16_t) __b); -} - __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) vcgeq_s8 (int8x16_t __a, int8x16_t __b) { @@ -14484,14 +14435,6 @@ vcgez_f64 (float64x1_t __a) return __a >= 0.0 ? -1ll : 0ll; } -__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) -vcgez_p8 (poly8x8_t __a) -{ - poly8x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x8_t) __builtin_aarch64_cmgev8qi ((int8x8_t) __a, - (int8x8_t) __b); -} - __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) vcgez_s8 (int8x8_t __a) { @@ -14519,36 +14462,6 @@ vcgez_s64 (int64x1_t __a) return __a >= 0ll ? -1ll : 0ll; } -__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) -vcgez_u8 (uint8x8_t __a) -{ - uint8x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x8_t) __builtin_aarch64_cmgeuv8qi ((int8x8_t) __a, - (int8x8_t) __b); -} - -__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) -vcgez_u16 (uint16x4_t __a) -{ - uint16x4_t __b = {0, 0, 0, 0}; - return (uint16x4_t) __builtin_aarch64_cmgeuv4hi ((int16x4_t) __a, - (int16x4_t) __b); -} - -__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) -vcgez_u32 (uint32x2_t __a) -{ - uint32x2_t __b = {0, 0}; - return (uint32x2_t) __builtin_aarch64_cmgeuv2si ((int32x2_t) __a, - (int32x2_t) __b); -} - -__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) -vcgez_u64 (uint64x1_t __a) -{ - return __a >= 0ll ? -1ll : 0ll; -} - __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) vcgezq_f32 (float32x4_t __a) { @@ -14563,15 +14476,6 @@ vcgezq_f64 (float64x2_t __a) return (uint64x2_t) __builtin_aarch64_cmgev2df (__a, __b); } -__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) -vcgezq_p8 (poly8x16_t __a) -{ - poly8x16_t __b = {0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x16_t) __builtin_aarch64_cmgev16qi ((int8x16_t) __a, - (int8x16_t) __b); -} - __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) vcgezq_s8 (int8x16_t __a) { @@ -14601,39 +14505,6 @@ vcgezq_s64 (int64x2_t __a) return (uint64x2_t) __builtin_aarch64_cmgev2di (__a, __b); } -__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) -vcgezq_u8 (uint8x16_t __a) -{ - uint8x16_t __b = {0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x16_t) __builtin_aarch64_cmgeuv16qi ((int8x16_t) __a, - (int8x16_t) __b); -} - -__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) -vcgezq_u16 (uint16x8_t __a) -{ - uint16x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0}; - return (uint16x8_t) __builtin_aarch64_cmgeuv8hi ((int16x8_t) __a, - (int16x8_t) __b); -} - -__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) -vcgezq_u32 (uint32x4_t __a) -{ - uint32x4_t __b = {0, 0, 0, 0}; - return (uint32x4_t) __builtin_aarch64_cmgeuv4si ((int32x4_t) __a, - (int32x4_t) __b); -} - -__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) -vcgezq_u64 (uint64x2_t __a) -{ - uint64x2_t __b = {0, 0}; - return (uint64x2_t) __builtin_aarch64_cmgeuv2di ((int64x2_t) __a, - (int64x2_t) __b); -} - /* vcgez - scalar. */ __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) @@ -14648,12 +14519,6 @@ vcgezd_s64 (int64x1_t __a) return __a >= 0 ? -1ll : 0ll; } -__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) -vcgezd_u64 (int64x1_t __a) -{ - return __a >= 0 ? -1ll : 0ll; -} - __extension__ static __inline uint64_t __attribute__ ((__always_inline__)) vcgezd_f64 (float64_t __a) { @@ -14674,13 +14539,6 @@ vcgt_f64 (float64x1_t __a, float64x1_t __b) return __a > __b ? -1ll : 0ll; } -__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) -vcgt_p8 (poly8x8_t __a, poly8x8_t __b) -{ - return (uint8x8_t) __builtin_aarch64_cmgtv8qi ((int8x8_t) __a, - (int8x8_t) __b); -} - __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) vcgt_s8 (int8x8_t __a, int8x8_t __b) { @@ -14744,13 +14602,6 @@ vcgtq_f64 (float64x2_t __a, float64x2_t __b) return (uint64x2_t) __builtin_aarch64_cmgtv2df (__a, __b); } -__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) -vcgtq_p8 (poly8x16_t __a, poly8x16_t __b) -{ - return (uint8x16_t) __builtin_aarch64_cmgtv16qi ((int8x16_t) __a, - (int8x16_t) __b); -} - __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) vcgtq_s8 (int8x16_t __a, int8x16_t __b) { @@ -14844,14 +14695,6 @@ vcgtz_f64 (float64x1_t __a) return __a > 0.0 ? -1ll : 0ll; } -__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) -vcgtz_p8 (poly8x8_t __a) -{ - poly8x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x8_t) __builtin_aarch64_cmgtv8qi ((int8x8_t) __a, - (int8x8_t) __b); -} - __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) vcgtz_s8 (int8x8_t __a) { @@ -14879,36 +14722,6 @@ vcgtz_s64 (int64x1_t __a) return __a > 0ll ? -1ll : 0ll; } -__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) -vcgtz_u8 (uint8x8_t __a) -{ - uint8x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x8_t) __builtin_aarch64_cmgtuv8qi ((int8x8_t) __a, - (int8x8_t) __b); -} - -__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) -vcgtz_u16 (uint16x4_t __a) -{ - uint16x4_t __b = {0, 0, 0, 0}; - return (uint16x4_t) __builtin_aarch64_cmgtuv4hi ((int16x4_t) __a, - (int16x4_t) __b); -} - -__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) -vcgtz_u32 (uint32x2_t __a) -{ - uint32x2_t __b = {0, 0}; - return (uint32x2_t) __builtin_aarch64_cmgtuv2si ((int32x2_t) __a, - (int32x2_t) __b); -} - -__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) -vcgtz_u64 (uint64x1_t __a) -{ - return __a > 0ll ? -1ll : 0ll; -} - __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) vcgtzq_f32 (float32x4_t __a) { @@ -14923,15 +14736,6 @@ vcgtzq_f64 (float64x2_t __a) return (uint64x2_t) __builtin_aarch64_cmgtv2df (__a, __b); } -__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) -vcgtzq_p8 (poly8x16_t __a) -{ - poly8x16_t __b = {0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x16_t) __builtin_aarch64_cmgtv16qi ((int8x16_t) __a, - (int8x16_t) __b); -} - __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) vcgtzq_s8 (int8x16_t __a) { @@ -14961,39 +14765,6 @@ vcgtzq_s64 (int64x2_t __a) return (uint64x2_t) __builtin_aarch64_cmgtv2di (__a, __b); } -__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) -vcgtzq_u8 (uint8x16_t __a) -{ - uint8x16_t __b = {0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x16_t) __builtin_aarch64_cmgtuv16qi ((int8x16_t) __a, - (int8x16_t) __b); -} - -__extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) -vcgtzq_u16 (uint16x8_t __a) -{ - uint16x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0}; - return (uint16x8_t) __builtin_aarch64_cmgtuv8hi ((int16x8_t) __a, - (int16x8_t) __b); -} - -__extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) -vcgtzq_u32 (uint32x4_t __a) -{ - uint32x4_t __b = {0, 0, 0, 0}; - return (uint32x4_t) __builtin_aarch64_cmgtuv4si ((int32x4_t) __a, - (int32x4_t) __b); -} - -__extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) -vcgtzq_u64 (uint64x2_t __a) -{ - uint64x2_t __b = {0, 0}; - return (uint64x2_t) __builtin_aarch64_cmgtuv2di ((int64x2_t) __a, - (int64x2_t) __b); -} - /* vcgtz - scalar. */ __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) @@ -15008,12 +14779,6 @@ vcgtzd_s64 (int64x1_t __a) return __a > 0 ? -1ll : 0ll; } -__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) -vcgtzd_u64 (int64x1_t __a) -{ - return __a > 0 ? -1ll : 0ll; -} - __extension__ static __inline uint64_t __attribute__ ((__always_inline__)) vcgtzd_f64 (float64_t __a) { @@ -15034,13 +14799,6 @@ vcle_f64 (float64x1_t __a, float64x1_t __b) return __a <= __b ? -1ll : 0ll; } -__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) -vcle_p8 (poly8x8_t __a, poly8x8_t __b) -{ - return (uint8x8_t) __builtin_aarch64_cmgev8qi ((int8x8_t) __b, - (int8x8_t) __a); -} - __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) vcle_s8 (int8x8_t __a, int8x8_t __b) { @@ -15104,13 +14862,6 @@ vcleq_f64 (float64x2_t __a, float64x2_t __b) return (uint64x2_t) __builtin_aarch64_cmgev2df (__b, __a); } -__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) -vcleq_p8 (poly8x16_t __a, poly8x16_t __b) -{ - return (uint8x16_t) __builtin_aarch64_cmgev16qi ((int8x16_t) __b, - (int8x16_t) __a); -} - __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) vcleq_s8 (int8x16_t __a, int8x16_t __b) { @@ -15204,14 +14955,6 @@ vclez_f64 (float64x1_t __a) return __a <= 0.0 ? -1ll : 0ll; } -__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) -vclez_p8 (poly8x8_t __a) -{ - poly8x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x8_t) __builtin_aarch64_cmlev8qi ((int8x8_t) __a, - (int8x8_t) __b); -} - __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) vclez_s8 (int8x8_t __a) { @@ -15239,12 +14982,6 @@ vclez_s64 (int64x1_t __a) return __a <= 0ll ? -1ll : 0ll; } -__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) -vclez_u64 (uint64x1_t __a) -{ - return __a <= 0ll ? -1ll : 0ll; -} - __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) vclezq_f32 (float32x4_t __a) { @@ -15259,15 +14996,6 @@ vclezq_f64 (float64x2_t __a) return (uint64x2_t) __builtin_aarch64_cmlev2df (__a, __b); } -__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) -vclezq_p8 (poly8x16_t __a) -{ - poly8x16_t __b = {0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x16_t) __builtin_aarch64_cmlev16qi ((int8x16_t) __a, - (int8x16_t) __b); -} - __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) vclezq_s8 (int8x16_t __a) { @@ -15311,12 +15039,6 @@ vclezd_s64 (int64x1_t __a) return __a <= 0 ? -1ll : 0ll; } -__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) -vclezd_u64 (int64x1_t __a) -{ - return __a <= 0 ? -1ll : 0ll; -} - __extension__ static __inline uint64_t __attribute__ ((__always_inline__)) vclezd_f64 (float64_t __a) { @@ -15337,13 +15059,6 @@ vclt_f64 (float64x1_t __a, float64x1_t __b) return __a < __b ? -1ll : 0ll; } -__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) -vclt_p8 (poly8x8_t __a, poly8x8_t __b) -{ - return (uint8x8_t) __builtin_aarch64_cmgtv8qi ((int8x8_t) __b, - (int8x8_t) __a); -} - __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) vclt_s8 (int8x8_t __a, int8x8_t __b) { @@ -15407,13 +15122,6 @@ vcltq_f64 (float64x2_t __a, float64x2_t __b) return (uint64x2_t) __builtin_aarch64_cmgtv2df (__b, __a); } -__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) -vcltq_p8 (poly8x16_t __a, poly8x16_t __b) -{ - return (uint8x16_t) __builtin_aarch64_cmgtv16qi ((int8x16_t) __b, - (int8x16_t) __a); -} - __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) vcltq_s8 (int8x16_t __a, int8x16_t __b) { @@ -15507,14 +15215,6 @@ vcltz_f64 (float64x1_t __a) return __a < 0.0 ? -1ll : 0ll; } -__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) -vcltz_p8 (poly8x8_t __a) -{ - poly8x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x8_t) __builtin_aarch64_cmltv8qi ((int8x8_t) __a, - (int8x8_t) __b); -} - __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) vcltz_s8 (int8x8_t __a) { @@ -15556,15 +15256,6 @@ vcltzq_f64 (float64x2_t __a) return (uint64x2_t) __builtin_aarch64_cmltv2df (__a, __b); } -__extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) -vcltzq_p8 (poly8x16_t __a) -{ - poly8x16_t __b = {0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0}; - return (uint8x16_t) __builtin_aarch64_cmltv16qi ((int8x16_t) __a, - (int8x16_t) __b); -} - __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) vcltzq_s8 (int8x16_t __a) { @@ -15608,12 +15299,6 @@ vcltzd_s64 (int64x1_t __a) return __a < 0 ? -1ll : 0ll; } -__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) -vcltzd_u64 (int64x1_t __a) -{ - return __a < 0 ? -1ll : 0ll; -} - __extension__ static __inline uint64_t __attribute__ ((__always_inline__)) vcltzd_f64 (float64_t __a) { -- GitLab