This patch contains the testcase in PR120378 after the change made to
support the vnclipu variant of the SAT_TRUNC pattern.

        PR target/120378

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/rvv/autovec/pr120378.c: New test.

Signed-off-by: Edwin Lu <e...@rivosinc.com>
---
 .../gcc.target/riscv/rvv/autovec/pr120378.c   | 21 +++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120378.c

diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120378.c 
b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120378.c
new file mode 100644
index 00000000000..500028e7a15
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120378.c
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */
+
+#include <stdint.h>
+
+inline uint8_t
+clip_uint8 (int x)
+{
+  return x & (~255) ? (-x) >> 31 : x;
+}
+
+void __attribute__ ((noipa))
+clip_loop (uint8_t *res, int *x, int w)
+{
+  for (int i = 0; i < w; i++)
+    res[i] = clip_uint8 (x[i]);
+}
+
+/* { dg-final { scan-tree-dump-times ".SAT_TRUNC " 1 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "MAX_EXPR " 1 "optimized" } } */
+/* { dg-final { scan-assembler-times {vnclipu\.wi} 2 } } */
-- 
2.43.0

Reply via email to