arm_neon.h contains a bunch of functions (for example, the wonderful vcgez_u*
intrinsics - that's an unsigned comparison of greater-than-or-equal-to zero)
that are not present in the current ARM Neon Intrinsics spec:
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0073a/index.html
This patch just deletes those intrinsics.
OK for trunk?
Cheers, Alan
gcc/ChangeLog:
2014-05-27 Alan Lawrence <alan.lawre...@arm.com>
* config/aarch64/arm_neon.h (vfmaq_n_f64, vmlaq_n_f64, vmlsq_n_f64,
vrsrtsq_f64, vtst_p16, vtstq_p16, 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.
diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h
index 747a292..6f20337 100644
--- a/gcc/config/aarch64/arm_neon.h
+++ b/gcc/config/aarch64/arm_neon.h
@@ -5781,17 +5781,6 @@ vfmaq_n_f32 (float32x4_t a, float32x4_t b, float32_t c)
return result;
}
-__extension__ static __inline float64x2_t __attribute__ ((__always_inline__))
-vfmaq_n_f64 (float64x2_t a, float64x2_t b, float64_t c)
-{
- float64x2_t result;
- __asm__ ("fmla %0.2d, %2.2d, %3.d[0]"
- : "=w"(result)
- : "0"(a), "w"(b), "w"(c)
- : /* No clobbers */);
- return result;
-}
-
__extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
vfms_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
{
@@ -7243,18 +7232,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)
{
@@ -7943,18 +7920,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)
{
@@ -11329,17 +11294,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)
{
@@ -16082,13 +16036,6 @@ vcge_f64 (float64x1_t __a, float64x1_t __b)
}
__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)
{
return (uint8x8_t) __builtin_aarch64_cmgev8qi (__a, __b);
@@ -16152,13 +16099,6 @@ vcgeq_f64 (float64x2_t __a, float64x2_t __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)
{
return (uint8x16_t) __builtin_aarch64_cmgev16qi (__a, __b);
@@ -16252,14 +16192,6 @@ vcgez_f64 (float64x1_t __a)
}
__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)
{
int8x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0};
@@ -16286,36 +16218,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)
{
@@ -16331,15 +16233,6 @@ vcgezq_f64 (float64x2_t __a)
}
__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)
{
int8x16_t __b = {0, 0, 0, 0, 0, 0, 0, 0,
@@ -16368,39 +16261,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__))
@@ -16415,12 +16275,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)
{
@@ -16442,13 +16296,6 @@ vcgt_f64 (float64x1_t __a, float64x1_t __b)
}
__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)
{
return (uint8x8_t) __builtin_aarch64_cmgtv8qi (__a, __b);
@@ -16512,13 +16359,6 @@ vcgtq_f64 (float64x2_t __a, float64x2_t __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)
{
return (uint8x16_t) __builtin_aarch64_cmgtv16qi (__a, __b);
@@ -16612,14 +16452,6 @@ vcgtz_f64 (float64x1_t __a)
}
__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)
{
int8x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0};
@@ -16646,36 +16478,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)
{
@@ -16691,15 +16493,6 @@ vcgtzq_f64 (float64x2_t __a)
}
__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)
{
int8x16_t __b = {0, 0, 0, 0, 0, 0, 0, 0,
@@ -16728,39 +16521,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__))
@@ -16775,12 +16535,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)
{
@@ -16802,13 +16556,6 @@ vcle_f64 (float64x1_t __a, float64x1_t __b)
}
__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)
{
return (uint8x8_t) __builtin_aarch64_cmgev8qi (__b, __a);
@@ -16872,13 +16619,6 @@ vcleq_f64 (float64x2_t __a, float64x2_t __b)
}
__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)
{
return (uint8x16_t) __builtin_aarch64_cmgev16qi (__b, __a);
@@ -16972,14 +16712,6 @@ vclez_f64 (float64x1_t __a)
}
__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)
{
int8x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0};
@@ -17006,12 +16738,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)
{
@@ -17027,15 +16753,6 @@ vclezq_f64 (float64x2_t __a)
}
__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)
{
int8x16_t __b = {0, 0, 0, 0, 0, 0, 0, 0,
@@ -17078,12 +16795,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)
{
@@ -17105,13 +16816,6 @@ vclt_f64 (float64x1_t __a, float64x1_t __b)
}
__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)
{
return (uint8x8_t) __builtin_aarch64_cmgtv8qi (__b, __a);
@@ -17175,13 +16879,6 @@ vcltq_f64 (float64x2_t __a, float64x2_t __b)
}
__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)
{
return (uint8x16_t) __builtin_aarch64_cmgtv16qi (__b, __a);
@@ -17275,14 +16972,6 @@ vcltz_f64 (float64x1_t __a)
}
__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)
{
int8x8_t __b = {0, 0, 0, 0, 0, 0, 0, 0};
@@ -17324,15 +17013,6 @@ vcltzq_f64 (float64x2_t __a)
}
__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)
{
int8x16_t __b = {0, 0, 0, 0, 0, 0, 0, 0,
@@ -17375,12 +17055,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)
{