diff options
author | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | 2020-12-08 23:22:11 +0530 |
---|---|---|
committer | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | 2020-12-08 23:22:50 +0530 |
commit | c0ed52d3e0044630b57a2145be78de199539d995 (patch) | |
tree | bbaf6cfe1244a7cce078f3dbeaab8f97bb67f098 /gcc | |
parent | d04f3df82b737317c2759c314e28ee6243779252 (diff) | |
download | gcc-c0ed52d3e0044630b57a2145be78de199539d995.zip gcc-c0ed52d3e0044630b57a2145be78de199539d995.tar.gz gcc-c0ed52d3e0044630b57a2145be78de199539d995.tar.bz2 |
arm: Replace calls to __builtin_vmvn* by ~ in vmvn intrinsics in arm_neon.h [PR66791]
gcc/
2020-12-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR target/66791
* config/arm/arm_neon.h: Replace calls to __builtin_vmvn* by ~
in vmvn intrinsics.
* config/arm/arm_neon_builtins.def: Remove entry for vmvn.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/arm/arm_neon.h | 28 | ||||
-rw-r--r-- | gcc/config/arm/arm_neon_builtins.def | 1 |
2 files changed, 14 insertions, 15 deletions
diff --git a/gcc/config/arm/arm_neon.h b/gcc/config/arm/arm_neon.h index 9569e1a..6c600b3 100644 --- a/gcc/config/arm/arm_neon.h +++ b/gcc/config/arm/arm_neon.h @@ -5812,98 +5812,98 @@ __extension__ extern __inline int8x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvn_s8 (int8x8_t __a) { - return (int8x8_t)__builtin_neon_vmvnv8qi (__a); + return ~__a; } __extension__ extern __inline int16x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvn_s16 (int16x4_t __a) { - return (int16x4_t)__builtin_neon_vmvnv4hi (__a); + return ~__a; } __extension__ extern __inline int32x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvn_s32 (int32x2_t __a) { - return (int32x2_t)__builtin_neon_vmvnv2si (__a); + return ~__a; } __extension__ extern __inline uint8x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvn_u8 (uint8x8_t __a) { - return (uint8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a); + return ~__a; } __extension__ extern __inline uint16x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvn_u16 (uint16x4_t __a) { - return (uint16x4_t)__builtin_neon_vmvnv4hi ((int16x4_t) __a); + return ~__a; } __extension__ extern __inline uint32x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvn_u32 (uint32x2_t __a) { - return (uint32x2_t)__builtin_neon_vmvnv2si ((int32x2_t) __a); + return ~__a; } __extension__ extern __inline poly8x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvn_p8 (poly8x8_t __a) { - return (poly8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a); + return (poly8x8_t) ~((int8x8_t) __a); } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvnq_s8 (int8x16_t __a) { - return (int8x16_t)__builtin_neon_vmvnv16qi (__a); + return ~__a; } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvnq_s16 (int16x8_t __a) { - return (int16x8_t)__builtin_neon_vmvnv8hi (__a); + return ~__a; } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvnq_s32 (int32x4_t __a) { - return (int32x4_t)__builtin_neon_vmvnv4si (__a); + return ~__a; } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvnq_u8 (uint8x16_t __a) { - return (uint8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a); + return ~__a; } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvnq_u16 (uint16x8_t __a) { - return (uint16x8_t)__builtin_neon_vmvnv8hi ((int16x8_t) __a); + return ~__a; } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvnq_u32 (uint32x4_t __a) { - return (uint32x4_t)__builtin_neon_vmvnv4si ((int32x4_t) __a); + return ~__a; } __extension__ extern __inline poly8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmvnq_p8 (poly8x16_t __a) { - return (poly8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a); + return (poly8x16_t) ~((int8x16_t) __a); } __extension__ extern __inline int8x8_t diff --git a/gcc/config/arm/arm_neon_builtins.def b/gcc/config/arm/arm_neon_builtins.def index 0ff0494..1a1a851 100644 --- a/gcc/config/arm/arm_neon_builtins.def +++ b/gcc/config/arm/arm_neon_builtins.def @@ -205,7 +205,6 @@ VAR4 (UNOP, vrecpe, v2si, v2sf, v4si, v4sf) VAR2 (UNOP, vrecpe, v8hf, v4hf) VAR4 (UNOP, vrsqrte, v2si, v2sf, v4si, v4sf) VAR2 (UNOP, vrsqrte, v4hf, v8hf) -VAR6 (UNOP, vmvn, v8qi, v4hi, v2si, v16qi, v8hi, v4si) VAR2 (UNOP, vrnd, v8hf, v4hf) VAR2 (UNOP, vrnda, v8hf, v4hf) VAR2 (UNOP, vrndm, v8hf, v4hf) |