arm: Replace calls to __builtin_vcge* by <=,>= in arm_neon.h [PR66791]
gcc/ 2021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> PR target/66791 * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by <=, >= operators in vcle and vcge intrinsics respectively. * config/arm/arm_neon_builtins.def: Remove entry for vcge and vcgeu.
This commit is contained in:
parent
194a9d67be
commit
a802a2ef5f
@ -2471,196 +2471,196 @@ __extension__ extern __inline uint8x8_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcge_s8 (int8x8_t __a, int8x8_t __b)
|
||||
{
|
||||
return (uint8x8_t)__builtin_neon_vcgev8qi (__a, __b);
|
||||
return (uint8x8_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint16x4_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcge_s16 (int16x4_t __a, int16x4_t __b)
|
||||
{
|
||||
return (uint16x4_t)__builtin_neon_vcgev4hi (__a, __b);
|
||||
return (uint16x4_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x2_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcge_s32 (int32x2_t __a, int32x2_t __b)
|
||||
{
|
||||
return (uint32x2_t)__builtin_neon_vcgev2si (__a, __b);
|
||||
return (uint32x2_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x2_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcge_f32 (float32x2_t __a, float32x2_t __b)
|
||||
{
|
||||
return (uint32x2_t)__builtin_neon_vcgev2sf (__a, __b);
|
||||
return (uint32x2_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint8x8_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcge_u8 (uint8x8_t __a, uint8x8_t __b)
|
||||
{
|
||||
return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __a, (int8x8_t) __b);
|
||||
return (uint8x8_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint16x4_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcge_u16 (uint16x4_t __a, uint16x4_t __b)
|
||||
{
|
||||
return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __a, (int16x4_t) __b);
|
||||
return (uint16x4_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x2_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcge_u32 (uint32x2_t __a, uint32x2_t __b)
|
||||
{
|
||||
return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __a, (int32x2_t) __b);
|
||||
return (uint32x2_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint8x16_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcgeq_s8 (int8x16_t __a, int8x16_t __b)
|
||||
{
|
||||
return (uint8x16_t)__builtin_neon_vcgev16qi (__a, __b);
|
||||
return (uint8x16_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint16x8_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcgeq_s16 (int16x8_t __a, int16x8_t __b)
|
||||
{
|
||||
return (uint16x8_t)__builtin_neon_vcgev8hi (__a, __b);
|
||||
return (uint16x8_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x4_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcgeq_s32 (int32x4_t __a, int32x4_t __b)
|
||||
{
|
||||
return (uint32x4_t)__builtin_neon_vcgev4si (__a, __b);
|
||||
return (uint32x4_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x4_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcgeq_f32 (float32x4_t __a, float32x4_t __b)
|
||||
{
|
||||
return (uint32x4_t)__builtin_neon_vcgev4sf (__a, __b);
|
||||
return (uint32x4_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint8x16_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
|
||||
{
|
||||
return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __a, (int8x16_t) __b);
|
||||
return (uint8x16_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint16x8_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
|
||||
{
|
||||
return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __a, (int16x8_t) __b);
|
||||
return (uint16x8_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x4_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
|
||||
{
|
||||
return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __a, (int32x4_t) __b);
|
||||
return (uint32x4_t) (__a >= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint8x8_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcle_s8 (int8x8_t __a, int8x8_t __b)
|
||||
{
|
||||
return (uint8x8_t)__builtin_neon_vcgev8qi (__b, __a);
|
||||
return (uint8x8_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint16x4_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcle_s16 (int16x4_t __a, int16x4_t __b)
|
||||
{
|
||||
return (uint16x4_t)__builtin_neon_vcgev4hi (__b, __a);
|
||||
return (uint16x4_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x2_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcle_s32 (int32x2_t __a, int32x2_t __b)
|
||||
{
|
||||
return (uint32x2_t)__builtin_neon_vcgev2si (__b, __a);
|
||||
return (uint32x2_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x2_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcle_f32 (float32x2_t __a, float32x2_t __b)
|
||||
{
|
||||
return (uint32x2_t)__builtin_neon_vcgev2sf (__b, __a);
|
||||
return (uint32x2_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint8x8_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcle_u8 (uint8x8_t __a, uint8x8_t __b)
|
||||
{
|
||||
return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __b, (int8x8_t) __a);
|
||||
return (uint8x8_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint16x4_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcle_u16 (uint16x4_t __a, uint16x4_t __b)
|
||||
{
|
||||
return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __b, (int16x4_t) __a);
|
||||
return (uint16x4_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x2_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcle_u32 (uint32x2_t __a, uint32x2_t __b)
|
||||
{
|
||||
return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __b, (int32x2_t) __a);
|
||||
return (uint32x2_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint8x16_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcleq_s8 (int8x16_t __a, int8x16_t __b)
|
||||
{
|
||||
return (uint8x16_t)__builtin_neon_vcgev16qi (__b, __a);
|
||||
return (uint8x16_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint16x8_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcleq_s16 (int16x8_t __a, int16x8_t __b)
|
||||
{
|
||||
return (uint16x8_t)__builtin_neon_vcgev8hi (__b, __a);
|
||||
return (uint16x8_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x4_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcleq_s32 (int32x4_t __a, int32x4_t __b)
|
||||
{
|
||||
return (uint32x4_t)__builtin_neon_vcgev4si (__b, __a);
|
||||
return (uint32x4_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x4_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcleq_f32 (float32x4_t __a, float32x4_t __b)
|
||||
{
|
||||
return (uint32x4_t)__builtin_neon_vcgev4sf (__b, __a);
|
||||
return (uint32x4_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint8x16_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
|
||||
{
|
||||
return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __b, (int8x16_t) __a);
|
||||
return (uint8x16_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint16x8_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
|
||||
{
|
||||
return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __b, (int16x8_t) __a);
|
||||
return (uint16x8_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint32x4_t
|
||||
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
|
||||
vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
|
||||
{
|
||||
return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __b, (int32x4_t) __a);
|
||||
return (uint32x4_t) (__a <= __b);
|
||||
}
|
||||
|
||||
__extension__ extern __inline uint8x8_t
|
||||
|
@ -126,8 +126,6 @@ VAR6 (BINOP, vhsubu, v8qi, v4hi, v2si, v16qi, v8hi, v4si)
|
||||
VAR3 (BINOP, vsubhn, v8hi, v4si, v2di)
|
||||
VAR3 (BINOP, vrsubhn, v8hi, v4si, v2di)
|
||||
VAR8 (BINOP, vceq, v8qi, v4hi, v2si, v2sf, v16qi, v8hi, v4si, v4sf)
|
||||
VAR8 (BINOP, vcge, v8qi, v4hi, v2si, v2sf, v16qi, v8hi, v4si, v4sf)
|
||||
VAR6 (BINOP, vcgeu, v8qi, v4hi, v2si, v16qi, v8hi, v4si)
|
||||
VAR2 (BINOP, vcage, v2sf, v4sf)
|
||||
VAR2 (BINOP, vcagt, v2sf, v4sf)
|
||||
VAR2 (BINOP, vcage, v4hf, v8hf)
|
||||
|
Loading…
Reference in New Issue
Block a user