aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2023-05-15 09:49:48 +0100
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>2023-05-15 09:49:48 +0100
commit676d33f95eede2dfa629c9b0174c15cc55c4a45a (patch)
tree6b5c42c3615639dcdf74dadbf1dbf9be7bf0cd73 /gcc
parente9ea407c474b52722cb135f3f6b265ef01aede04 (diff)
downloadgcc-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.md2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/simd/pr99195_4.c10
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) \