diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2023-05-15 09:49:48 +0100 |
---|---|---|
committer | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2023-05-15 09:49:48 +0100 |
commit | 676d33f95eede2dfa629c9b0174c15cc55c4a45a (patch) | |
tree | 6b5c42c3615639dcdf74dadbf1dbf9be7bf0cd73 /gcc | |
parent | e9ea407c474b52722cb135f3f6b265ef01aede04 (diff) | |
download | gcc-676d33f95eede2dfa629c9b0174c15cc55c4a45a.zip gcc-676d33f95eede2dfa629c9b0174c15cc55c4a45a.tar.gz gcc-676d33f95eede2dfa629c9b0174c15cc55c4a45a.tar.bz2 |
aarch64: PR target/99195 annotate qabs,qneg patterns for vec-concat-zero
Straightforward like previous patches in this series.
Bootstrapped and tested on aarch64-none-linux-gnu and aarch64_be-none-elf.
gcc/ChangeLog:
PR target/99195
* config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>): Rename to...
(aarch64_s<optab><mode><vczle><vczbe>): ... This.
gcc/testsuite/ChangeLog:
PR target/99195
* gcc.target/aarch64/simd/pr99195_4.c: Add testing for qabs, qneg.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/aarch64/aarch64-simd.md | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/simd/pr99195_4.c | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index bfc98a8..26320f2 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -5377,7 +5377,7 @@ ;; <su>q<absneg> -(define_insn "aarch64_s<optab><mode>" +(define_insn "aarch64_s<optab><mode><vczle><vczbe>" [(set (match_operand:VSDQ_I 0 "register_operand" "=w") (UNQOPS:VSDQ_I (match_operand:VSDQ_I 1 "register_operand" "w")))] diff --git a/gcc/testsuite/gcc.target/aarch64/simd/pr99195_4.c b/gcc/testsuite/gcc.target/aarch64/simd/pr99195_4.c index 8faf569..698da86 100644 --- a/gcc/testsuite/gcc.target/aarch64/simd/pr99195_4.c +++ b/gcc/testsuite/gcc.target/aarch64/simd/pr99195_4.c @@ -52,6 +52,16 @@ FUNC (qmovn) #undef FUNC #define FUNC(OP) \ +MYOP (int8x16_t, int8x8_t, int8x8_t, OP, s8, s8) \ +MYOP (int16x8_t, int16x4_t, int16x4_t, OP, s16, s16) \ +MYOP (int32x4_t, int32x2_t, int32x2_t, OP, s32, s32) \ +MYOP (int64x2_t, int64x1_t, int64x1_t, OP, s64, s64) \ + +FUNC (qabs) +FUNC (qneg) + +#undef FUNC +#define FUNC(OP) \ MYOP (uint8x16_t, int16x8_t, uint8x8_t, OP, s16, u8) \ MYOP (uint16x8_t, int32x4_t, uint16x4_t, OP, s32, u16) \ MYOP (uint32x4_t, int64x2_t, uint32x2_t, OP, s64, u32) \ |