aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/aarch64/iterators.md8
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sve2/pr116934.c13
2 files changed, 17 insertions, 4 deletions
diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md
index 0836dee..fcad236 100644
--- a/gcc/config/aarch64/iterators.md
+++ b/gcc/config/aarch64/iterators.md
@@ -3125,9 +3125,7 @@
(define_int_iterator SVE_COND_FP_BINARY_REG
[UNSPEC_COND_FDIV
- UNSPEC_COND_FMULX
- UNSPEC_COND_SMAX
- UNSPEC_COND_SMIN])
+ UNSPEC_COND_FMULX])
(define_int_iterator SVE_COND_FCADD [UNSPEC_COND_FCADD90
UNSPEC_COND_FCADD270])
@@ -3135,7 +3133,9 @@
(define_int_iterator SVE_COND_FP_MAXMIN [UNSPEC_COND_FMAX
UNSPEC_COND_FMAXNM
UNSPEC_COND_FMIN
- UNSPEC_COND_FMINNM])
+ UNSPEC_COND_FMINNM
+ UNSPEC_COND_SMAX
+ UNSPEC_COND_SMIN])
(define_int_iterator SVE_COND_FP_TERNARY [UNSPEC_COND_FMLA
UNSPEC_COND_FMLS
diff --git a/gcc/testsuite/gcc.target/aarch64/sve2/pr116934.c b/gcc/testsuite/gcc.target/aarch64/sve2/pr116934.c
new file mode 100644
index 0000000..94fb96f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve2/pr116934.c
@@ -0,0 +1,13 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-Ofast -mcpu=neoverse-v2" } */
+
+int a;
+float *b;
+
+void foo() {
+ for (; a; a--, b += 4) {
+ b[0] = b[1] = b[2] = b[2] > 0 ?: 0;
+ if (b[3] < 0)
+ b[3] = 0;
+ }
+}