[gcc(refs/vendors/riscv/heads/gcc-15-with-riscv-opts)] RISC-V: Add testcases for unsigned vector SAT_SUB form 11 and form 12
Jeff Law
law@gcc.gnu.org
Sat Sep 6 14:52:33 GMT 2025
https://gcc.gnu.org/g:454ad6ab46ea4017f5a15cdb5b00fed4a4864ed2
commit 454ad6ab46ea4017f5a15cdb5b00fed4a4864ed2
Author: panciyan <panciyan@eswincomputing.com>
Date: Thu Jul 10 06:54:26 2025 +0000
RISC-V: Add testcases for unsigned vector SAT_SUB form 11 and form 12
This patch adds testcase for form11 and form12, as shown below:
void __attribute__((noinline)) \
vec_sat_u_sub_##T##_fmt_11 (T *out, T *op_1, T *op_2, unsigned limit) \
{ \
unsigned i; \
for (i = 0; i < limit; i++) \
{ \
T x = op_1[i]; \
T y = op_2[i]; \
T ret; \
T overflow = __builtin_sub_overflow (x, y, &ret); \
out[i] = overflow ? 0 : ret; \
} \
}
void __attribute__((noinline)) \
vec_sat_u_sub_##T##_fmt_12 (T *out, T *op_1, T *op_2, unsigned limit) \
{ \
unsigned i; \
for (i = 0; i < limit; i++) \
{ \
T x = op_1[i]; \
T y = op_2[i]; \
T ret; \
T overflow = __builtin_sub_overflow (x, y, &ret); \
out[i] = !overflow ? ret : 0; \
} \
}
Passed the rv64gcv regression test.
Signed-off-by: Ciyan Pan <panciyan@eswincomputing.com>
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/autovec/sat/vec_sat_arith.h: Unsigned vector SAT_SUB form11 form12.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_data.h: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u16.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u32.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u64.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u8.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u16.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u32.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u64.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u8.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u16.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u32.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u64.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u8.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u16.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u32.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u64.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u8.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u16.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u32.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u64.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u8.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u16.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u32.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u64.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u8.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u16.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u32.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u64.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u8.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u16.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u32.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u64.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u8.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u16.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u32.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u64.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u8.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u16.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u32.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u64.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u8.c: Use ussub instead of usub.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u16.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u32.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u64.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u8.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u16.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u32.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u64.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u8.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u16.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u32.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u64.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u8.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u16.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u32.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u64.c: New test.
* gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u8.c: New test.
(cherry picked from commit db3afff48fc7ed896b3dd17eb93f0cfe3cc41da8)
Diff:
---
.../riscv/rvv/autovec/sat/vec_sat_arith.h | 44 ++++++++++++++++++++++
.../riscv/rvv/autovec/sat/vec_sat_data.h | 8 ++--
.../riscv/rvv/autovec/sat/vec_sat_u_sub-11-u16.c | 9 +++++
.../riscv/rvv/autovec/sat/vec_sat_u_sub-11-u32.c | 9 +++++
.../riscv/rvv/autovec/sat/vec_sat_u_sub-11-u64.c | 9 +++++
.../riscv/rvv/autovec/sat/vec_sat_u_sub-11-u8.c | 9 +++++
.../riscv/rvv/autovec/sat/vec_sat_u_sub-12-u16.c | 9 +++++
.../riscv/rvv/autovec/sat/vec_sat_u_sub-12-u32.c | 9 +++++
.../riscv/rvv/autovec/sat/vec_sat_u_sub-12-u64.c | 9 +++++
.../riscv/rvv/autovec/sat/vec_sat_u_sub-12-u8.c | 9 +++++
.../rvv/autovec/sat/vec_sat_u_sub-run-1-u16.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-1-u32.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-1-u64.c | 2 +-
.../riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u8.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-10-u16.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-10-u32.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-10-u64.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-10-u8.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-11-u16.c | 15 ++++++++
.../rvv/autovec/sat/vec_sat_u_sub-run-11-u32.c | 15 ++++++++
.../rvv/autovec/sat/vec_sat_u_sub-run-11-u64.c | 15 ++++++++
.../rvv/autovec/sat/vec_sat_u_sub-run-11-u8.c | 15 ++++++++
.../rvv/autovec/sat/vec_sat_u_sub-run-12-u16.c | 15 ++++++++
.../rvv/autovec/sat/vec_sat_u_sub-run-12-u32.c | 15 ++++++++
.../rvv/autovec/sat/vec_sat_u_sub-run-12-u64.c | 15 ++++++++
.../rvv/autovec/sat/vec_sat_u_sub-run-12-u8.c | 15 ++++++++
.../rvv/autovec/sat/vec_sat_u_sub-run-2-u16.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-2-u32.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-2-u64.c | 2 +-
.../riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u8.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-3-u16.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-3-u32.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-3-u64.c | 2 +-
.../riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u8.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-4-u16.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-4-u32.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-4-u64.c | 2 +-
.../riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u8.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-5-u16.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-5-u32.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-5-u64.c | 2 +-
.../riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u8.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-6-u16.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-6-u32.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-6-u64.c | 2 +-
.../riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u8.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-7-u16.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-7-u32.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-7-u64.c | 2 +-
.../riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u8.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-8-u16.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-8-u32.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-8-u64.c | 2 +-
.../riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u8.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-9-u16.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-9-u32.c | 2 +-
.../rvv/autovec/sat/vec_sat_u_sub-run-9-u64.c | 2 +-
.../riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u8.c | 2 +-
58 files changed, 280 insertions(+), 44 deletions(-)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_arith.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_arith.h
index 9e4b4f4ac5be..93c29f091bed 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_arith.h
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_arith.h
@@ -531,6 +531,40 @@ vec_sat_u_sub_##T##_fmt_10 (T *out, T *op_1, T *op_2, unsigned limit) \
#define DEF_VEC_SAT_U_SUB_FMT_10_WRAP(T) \
DEF_VEC_SAT_U_SUB_FMT_10(T)
+#define DEF_VEC_SAT_U_SUB_FMT_11(T) \
+void __attribute__((noinline)) \
+vec_sat_u_sub_##T##_fmt_11 (T *out, T *op_1, T *op_2, unsigned limit) \
+{ \
+ unsigned i; \
+ for (i = 0; i < limit; i++) \
+ { \
+ T x = op_1[i]; \
+ T y = op_2[i]; \
+ T ret; \
+ T overflow = __builtin_sub_overflow (x, y, &ret); \
+ out[i] = overflow ? 0 : ret; \
+ } \
+}
+#define DEF_VEC_SAT_U_SUB_FMT_11_WRAP(T) \
+ DEF_VEC_SAT_U_SUB_FMT_11(T)
+
+#define DEF_VEC_SAT_U_SUB_FMT_12(T) \
+void __attribute__((noinline)) \
+vec_sat_u_sub_##T##_fmt_12 (T *out, T *op_1, T *op_2, unsigned limit) \
+{ \
+ unsigned i; \
+ for (i = 0; i < limit; i++) \
+ { \
+ T x = op_1[i]; \
+ T y = op_2[i]; \
+ T ret; \
+ T overflow = __builtin_sub_overflow (x, y, &ret); \
+ out[i] = !overflow ? ret : 0; \
+ } \
+}
+#define DEF_VEC_SAT_U_SUB_FMT_12_WRAP(T) \
+ DEF_VEC_SAT_U_SUB_FMT_12(T)
+
#define DEF_VEC_SAT_U_SUB_ZIP(T1, T2) \
void __attribute__((noinline)) \
vec_sat_u_sub_##T1##_##T2##_fmt_zip (T1 *x, T2 b, unsigned limit) \
@@ -737,6 +771,16 @@ vec_sat_s_sub_##T##_fmt_4 (T *out, T *op_1, T *op_2, unsigned limit) \
#define RUN_VEC_SAT_U_SUB_FMT_10_WRAP(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_10(T, out, op_1, op_2, N)
+#define RUN_VEC_SAT_U_SUB_FMT_11(T, out, op_1, op_2, N) \
+ vec_sat_u_sub_##T##_fmt_11(out, op_1, op_2, N)
+#define RUN_VEC_SAT_U_SUB_FMT_11_WRAP(T, out, op_1, op_2, N) \
+ RUN_VEC_SAT_U_SUB_FMT_11(T, out, op_1, op_2, N)
+
+#define RUN_VEC_SAT_U_SUB_FMT_12(T, out, op_1, op_2, N) \
+ vec_sat_u_sub_##T##_fmt_12(out, op_1, op_2, N)
+#define RUN_VEC_SAT_U_SUB_FMT_12_WRAP(T, out, op_1, op_2, N) \
+ RUN_VEC_SAT_U_SUB_FMT_12(T, out, op_1, op_2, N)
+
#define RUN_VEC_SAT_U_SUB_FMT_ZIP(T1, T2, x, b, N) \
vec_sat_u_sub_##T1##_##T2##_fmt_zip(x, b, N)
#define RUN_VEC_SAT_U_SUB_FMT_ZIP_WRAP(T1, T2, x, b, N) \
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_data.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_data.h
index 4469f0e184b6..76474393fe3b 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_data.h
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_data.h
@@ -744,7 +744,7 @@ uint64_t TEST_UNARY_DATA(uint64_t, sat_u_sub_imm)[][2][N] =
},
};
-uint8_t TEST_UNARY_DATA(uint8_t, usub)[][3][N] = {
+uint8_t TEST_UNARY_DATA(uint8_t, ussub)[][3][N] = {
{
{
0, 0, 0, 0,
@@ -807,7 +807,7 @@ uint8_t TEST_UNARY_DATA(uint8_t, usub)[][3][N] = {
},
};
-uint16_t TEST_UNARY_DATA(uint16_t, usub)[][3][N] = {
+uint16_t TEST_UNARY_DATA(uint16_t, ussub)[][3][N] = {
{
{
0, 0, 0, 0,
@@ -870,7 +870,7 @@ uint16_t TEST_UNARY_DATA(uint16_t, usub)[][3][N] = {
},
};
-uint32_t TEST_UNARY_DATA(uint32_t, usub)[][3][N] = {
+uint32_t TEST_UNARY_DATA(uint32_t, ussub)[][3][N] = {
{
{
0, 0, 4, 0,
@@ -933,7 +933,7 @@ uint32_t TEST_UNARY_DATA(uint32_t, usub)[][3][N] = {
},
};
-uint64_t TEST_UNARY_DATA(uint64_t, usub)[][3][N] = {
+uint64_t TEST_UNARY_DATA(uint64_t, ussub)[][3][N] = {
{
{
0, 9, 0, 0,
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u16.c
new file mode 100644
index 000000000000..57da9e8a4213
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u16.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -ftree-vectorize -fdump-tree-optimized" } */
+
+#include "vec_sat_arith.h"
+
+DEF_VEC_SAT_U_SUB_FMT_11(uint16_t)
+
+/* { dg-final { scan-tree-dump-times ".SAT_SUB " 2 "optimized" } } */
+/* { dg-final { scan-assembler-times {vssubu\.vv} 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u32.c
new file mode 100644
index 000000000000..b5264a323c8a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u32.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -ftree-vectorize -fdump-tree-optimized" } */
+
+#include "vec_sat_arith.h"
+
+DEF_VEC_SAT_U_SUB_FMT_11(uint32_t)
+
+/* { dg-final { scan-tree-dump-times ".SAT_SUB " 2 "optimized" } } */
+/* { dg-final { scan-assembler-times {vssubu\.vv} 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u64.c
new file mode 100644
index 000000000000..1a68b5c04265
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u64.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -ftree-vectorize -fdump-tree-optimized" } */
+
+#include "vec_sat_arith.h"
+
+DEF_VEC_SAT_U_SUB_FMT_11(uint64_t)
+
+/* { dg-final { scan-tree-dump-times ".SAT_SUB " 2 "optimized" } } */
+/* { dg-final { scan-assembler-times {vssubu\.vv} 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u8.c
new file mode 100644
index 000000000000..a1c5c19aea1f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u8.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -ftree-vectorize -fdump-tree-optimized" } */
+
+#include "vec_sat_arith.h"
+
+DEF_VEC_SAT_U_SUB_FMT_11(uint8_t)
+
+/* { dg-final { scan-tree-dump-times ".SAT_SUB " 2 "optimized" } } */
+/* { dg-final { scan-assembler-times {vssubu\.vv} 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u16.c
new file mode 100644
index 000000000000..fd987e9d5880
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u16.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -ftree-vectorize -fdump-tree-optimized" } */
+
+#include "vec_sat_arith.h"
+
+DEF_VEC_SAT_U_SUB_FMT_12(uint16_t)
+
+/* { dg-final { scan-tree-dump-times ".SAT_SUB " 2 "optimized" } } */
+/* { dg-final { scan-assembler-times {vssubu\.vv} 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u32.c
new file mode 100644
index 000000000000..bc380feb3d8b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u32.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -ftree-vectorize -fdump-tree-optimized" } */
+
+#include "vec_sat_arith.h"
+
+DEF_VEC_SAT_U_SUB_FMT_12(uint32_t)
+
+/* { dg-final { scan-tree-dump-times ".SAT_SUB " 2 "optimized" } } */
+/* { dg-final { scan-assembler-times {vssubu\.vv} 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u64.c
new file mode 100644
index 000000000000..c03163f9a1ba
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u64.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -ftree-vectorize -fdump-tree-optimized" } */
+
+#include "vec_sat_arith.h"
+
+DEF_VEC_SAT_U_SUB_FMT_12(uint64_t)
+
+/* { dg-final { scan-tree-dump-times ".SAT_SUB " 2 "optimized" } } */
+/* { dg-final { scan-assembler-times {vssubu\.vv} 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u8.c
new file mode 100644
index 000000000000..91e190969e88
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u8.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -ftree-vectorize -fdump-tree-optimized" } */
+
+#include "vec_sat_arith.h"
+
+DEF_VEC_SAT_U_SUB_FMT_12(uint8_t)
+
+/* { dg-final { scan-tree-dump-times ".SAT_SUB " 2 "optimized" } } */
+/* { dg-final { scan-assembler-times {vssubu\.vv} 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u16.c
index 5fc747bc9902..5878c5b69100 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u16.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_1_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_1_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u32.c
index c9976d0d1def..f74979f9e1e0 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u32.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_1_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_1_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u64.c
index 10a0b0c29cf5..1250e5b36b2d 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u64.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_1_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_1_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u8.c
index 7b22863b4fbf..a2a77dd88e0c 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u8.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_1_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_1_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u16.c
index a6b2dc43deb2..19c8fa056bf4 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u16.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_10_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_10_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u32.c
index 91e749e6890d..ada136f4b945 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u32.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_10_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_10_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u64.c
index b7a631484d2e..488c1588fe66 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u64.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_10_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_10_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u8.c
index 1d5579878b16..127c27ab1e6d 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u8.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_10_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_10_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u16.c
new file mode 100644
index 000000000000..4b494672915f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u16.c
@@ -0,0 +1,15 @@
+/* { dg-do run { target { riscv_v } } } */
+/* { dg-additional-options "-std=c99" } */
+
+#include "vec_sat_arith.h"
+#include "vec_sat_data.h"
+
+#define T uint16_t
+
+DEF_VEC_SAT_U_SUB_FMT_11_WRAP(T)
+
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
+#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
+ RUN_VEC_SAT_U_SUB_FMT_11_WRAP(T, out, op_1, op_2, N)
+
+#include "vec_sat_binary_vvv_run.h"
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u32.c
new file mode 100644
index 000000000000..80b55eab5381
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u32.c
@@ -0,0 +1,15 @@
+/* { dg-do run { target { riscv_v } } } */
+/* { dg-additional-options "-std=c99" } */
+
+#include "vec_sat_arith.h"
+#include "vec_sat_data.h"
+
+#define T uint32_t
+
+DEF_VEC_SAT_U_SUB_FMT_11_WRAP(T)
+
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
+#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
+ RUN_VEC_SAT_U_SUB_FMT_11_WRAP(T, out, op_1, op_2, N)
+
+#include "vec_sat_binary_vvv_run.h"
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u64.c
new file mode 100644
index 000000000000..6a89d0f2c9d2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u64.c
@@ -0,0 +1,15 @@
+/* { dg-do run { target { riscv_v } } } */
+/* { dg-additional-options "-std=c99" } */
+
+#include "vec_sat_arith.h"
+#include "vec_sat_data.h"
+
+#define T uint64_t
+
+DEF_VEC_SAT_U_SUB_FMT_11_WRAP(T)
+
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
+#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
+ RUN_VEC_SAT_U_SUB_FMT_11_WRAP(T, out, op_1, op_2, N)
+
+#include "vec_sat_binary_vvv_run.h"
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u8.c
new file mode 100644
index 000000000000..974493eb3029
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u8.c
@@ -0,0 +1,15 @@
+/* { dg-do run { target { riscv_v } } } */
+/* { dg-additional-options "-std=c99" } */
+
+#include "vec_sat_arith.h"
+#include "vec_sat_data.h"
+
+#define T uint8_t
+
+DEF_VEC_SAT_U_SUB_FMT_11_WRAP(T)
+
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
+#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
+ RUN_VEC_SAT_U_SUB_FMT_11_WRAP(T, out, op_1, op_2, N)
+
+#include "vec_sat_binary_vvv_run.h"
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u16.c
new file mode 100644
index 000000000000..28778b9b3f4a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u16.c
@@ -0,0 +1,15 @@
+/* { dg-do run { target { riscv_v } } } */
+/* { dg-additional-options "-std=c99" } */
+
+#include "vec_sat_arith.h"
+#include "vec_sat_data.h"
+
+#define T uint16_t
+
+DEF_VEC_SAT_U_SUB_FMT_12_WRAP(T)
+
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
+#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
+ RUN_VEC_SAT_U_SUB_FMT_12_WRAP(T, out, op_1, op_2, N)
+
+#include "vec_sat_binary_vvv_run.h"
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u32.c
new file mode 100644
index 000000000000..936a39a390d1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u32.c
@@ -0,0 +1,15 @@
+/* { dg-do run { target { riscv_v } } } */
+/* { dg-additional-options "-std=c99" } */
+
+#include "vec_sat_arith.h"
+#include "vec_sat_data.h"
+
+#define T uint32_t
+
+DEF_VEC_SAT_U_SUB_FMT_12_WRAP(T)
+
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
+#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
+ RUN_VEC_SAT_U_SUB_FMT_12_WRAP(T, out, op_1, op_2, N)
+
+#include "vec_sat_binary_vvv_run.h"
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u64.c
new file mode 100644
index 000000000000..b8fa65b8abdf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u64.c
@@ -0,0 +1,15 @@
+/* { dg-do run { target { riscv_v } } } */
+/* { dg-additional-options "-std=c99" } */
+
+#include "vec_sat_arith.h"
+#include "vec_sat_data.h"
+
+#define T uint64_t
+
+DEF_VEC_SAT_U_SUB_FMT_12_WRAP(T)
+
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
+#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
+ RUN_VEC_SAT_U_SUB_FMT_12_WRAP(T, out, op_1, op_2, N)
+
+#include "vec_sat_binary_vvv_run.h"
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u8.c
new file mode 100644
index 000000000000..6bff1e11557f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u8.c
@@ -0,0 +1,15 @@
+/* { dg-do run { target { riscv_v } } } */
+/* { dg-additional-options "-std=c99" } */
+
+#include "vec_sat_arith.h"
+#include "vec_sat_data.h"
+
+#define T uint8_t
+
+DEF_VEC_SAT_U_SUB_FMT_12_WRAP(T)
+
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
+#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
+ RUN_VEC_SAT_U_SUB_FMT_12_WRAP(T, out, op_1, op_2, N)
+
+#include "vec_sat_binary_vvv_run.h"
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u16.c
index dcd6d1768d11..45bef8857cb5 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u16.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_2_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_2_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u32.c
index 98a1fffad381..6d8a6533273f 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u32.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_2_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_2_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u64.c
index 5445b01422a6..0132d467499a 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u64.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_2_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_2_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u8.c
index 3aaec4d748d8..425f86f4fb75 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u8.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_2_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_2_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u16.c
index 99e58cd29274..97a8e083063c 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u16.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_3_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_3_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u32.c
index bd7bcd004390..912489984b59 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u32.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_3_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_3_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u64.c
index 96ee0c89634a..1e54ede3a8a5 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u64.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_3_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_3_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u8.c
index b9fa957de33a..d8d53b7777ed 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u8.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_3_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_3_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u16.c
index 6d4f3775e86e..b29382316e65 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u16.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_4_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_4_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u32.c
index 14250178b469..f0f1c4ff0064 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u32.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_4_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_4_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u64.c
index 149d48171e35..27c28e26753c 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u64.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_4_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_4_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u8.c
index 12195cd50bd0..791182513b40 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u8.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_4_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_4_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u16.c
index 9cd25773f6b9..6ae7b36e3160 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u16.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_5_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_5_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u32.c
index 638e054d4e1d..4e6b9e60070c 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u32.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_5_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_5_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u64.c
index db86baf28233..6b269135f6e2 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u64.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_5_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_5_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u8.c
index b277e1c73e6d..2bd28cd68329 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u8.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_5_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_5_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u16.c
index e79e2fc9de80..69b0be984327 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u16.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_6_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_6_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u32.c
index cd9cbfc3455b..2450586b07dc 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u32.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_6_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_6_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u64.c
index 7c0f753e96ba..0b979100534c 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u64.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_6_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_6_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u8.c
index d97a834344f6..afb23f6362f9 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u8.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_6_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_6_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u16.c
index 3b8c87012d0b..0466d4cd1543 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u16.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_7_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_7_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u32.c
index 065d898c0374..14b8701e86f2 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u32.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_7_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_7_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u64.c
index f6783a8c8e20..7e0afd81ecb9 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u64.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_7_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_7_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u8.c
index 6b9ae2d56a9d..40b1a6a2d652 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u8.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_7_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_7_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u16.c
index 27c4563abb59..bd33048203e2 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u16.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_8_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_8_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u32.c
index 2dba8752cbd0..36f78f51c4bf 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u32.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_8_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_8_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u64.c
index 149a52273380..3bc5d5df3f26 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u64.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_8_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_8_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u8.c
index 739850ed1633..3964d1b21d7e 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u8.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_8_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_8_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u16.c
index 3eb91efe93f7..4c0809ac988d 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u16.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_9_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_9_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u32.c
index 3e8d6fb2a420..3e700bd1060e 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u32.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_9_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_9_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u64.c
index bb09035504f2..81b8dc86ebb3 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u64.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_9_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_9_WRAP(T, out, op_1, op_2, N)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u8.c
index 1dc31914b072..8bc52ae83364 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u8.c
@@ -8,7 +8,7 @@
DEF_VEC_SAT_U_SUB_FMT_9_WRAP(T)
-#define test_data TEST_UNARY_DATA_WRAP(T, usub)
+#define test_data TEST_UNARY_DATA_WRAP(T, ussub)
#define RUN_VEC_SAT_BINARY(T, out, op_1, op_2, N) \
RUN_VEC_SAT_U_SUB_FMT_9_WRAP(T, out, op_1, op_2, N)
More information about the Gcc-cvs
mailing list