OK if Pan say OK
On Wed, Jul 9, 2025 at 4:36 PM Ciyan Pan <panci...@eswincomputing.com> wrote: > > From: panciyan <panci...@eswincomputing.com> > > This patch adjust test data for unsigned vector SAT_SUB to vec_sat_data.h > > Passed the rv64gcv regression test. > > Signed-off-by: Ciyan Pan <panci...@eswincomputing.com> > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/rvv/autovec/sat/vec_sat_arith.h: Add > vec_sat_u_sub_fmt wrap define. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_data.h: Add vec_sat_u_sub > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u16.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u32.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u64.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u8.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u16.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u32.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u64.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u8.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u16.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u32.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u64.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u8.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u16.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u32.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u64.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u8.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u16.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u32.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u64.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u8.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u16.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u32.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u64.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u8.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u16.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u32.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u64.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u8.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u16.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u32.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u64.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u8.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u16.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u32.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u64.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u8.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u16.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u32.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u64.c: Remove > test data. > * gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u8.c: Remove > test data. > > --- > .../riscv/rvv/autovec/sat/vec_sat_arith.h | 40 +++ > .../riscv/rvv/autovec/sat/vec_sat_data.h | 252 ++++++++++++++++++ > .../rvv/autovec/sat/vec_sat_u_sub-run-1-u16.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-1-u32.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-1-u64.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-1-u8.c | 71 +---- > .../autovec/sat/vec_sat_u_sub-run-10-u16.c | 70 +---- > .../autovec/sat/vec_sat_u_sub-run-10-u32.c | 70 +---- > .../autovec/sat/vec_sat_u_sub-run-10-u64.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-10-u8.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-2-u16.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-2-u32.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-2-u64.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-2-u8.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-3-u16.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-3-u32.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-3-u64.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-3-u8.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-4-u16.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-4-u32.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-4-u64.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-4-u8.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-5-u16.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-5-u32.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-5-u64.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-5-u8.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-6-u16.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-6-u32.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-6-u64.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-6-u8.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-7-u16.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-7-u32.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-7-u64.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-7-u8.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-8-u16.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-8-u32.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-8-u64.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-8-u8.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-9-u16.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-9-u32.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-9-u64.c | 70 +---- > .../rvv/autovec/sat/vec_sat_u_sub-run-9-u8.c | 70 +---- > 42 files changed, 493 insertions(+), 2600 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 f78bdc047ca..9e4b4f4ac5b 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 > @@ -385,6 +385,8 @@ vec_sat_u_sub_##T##_fmt_1 (T *out, T *op_1, T *op_2, > unsigned limit) \ > out[i] = (x - y) & (-(T)(x >= y)); \ > } \ > } > +#define DEF_VEC_SAT_U_SUB_FMT_1_WRAP(T) \ > + DEF_VEC_SAT_U_SUB_FMT_1(T) > > #define DEF_VEC_SAT_U_SUB_FMT_2(T) \ > void __attribute__((noinline)) \ > @@ -398,6 +400,8 @@ vec_sat_u_sub_##T##_fmt_2 (T *out, T *op_1, T *op_2, > unsigned limit) \ > out[i] = (x - y) & (-(T)(x > y)); \ > } \ > } > +#define DEF_VEC_SAT_U_SUB_FMT_2_WRAP(T) \ > + DEF_VEC_SAT_U_SUB_FMT_2(T) > > #define DEF_VEC_SAT_U_SUB_FMT_3(T) \ > void __attribute__((noinline)) \ > @@ -411,6 +415,8 @@ vec_sat_u_sub_##T##_fmt_3 (T *out, T *op_1, T *op_2, > unsigned limit) \ > out[i] = x > y ? x - y : 0; \ > } \ > } > +#define DEF_VEC_SAT_U_SUB_FMT_3_WRAP(T) \ > + DEF_VEC_SAT_U_SUB_FMT_3(T) > > #define DEF_VEC_SAT_U_SUB_FMT_4(T) \ > void __attribute__((noinline)) \ > @@ -424,6 +430,8 @@ vec_sat_u_sub_##T##_fmt_4 (T *out, T *op_1, T *op_2, > unsigned limit) \ > out[i] = x >= y ? x - y : 0; \ > } \ > } > +#define DEF_VEC_SAT_U_SUB_FMT_4_WRAP(T) \ > + DEF_VEC_SAT_U_SUB_FMT_4(T) > > #define DEF_VEC_SAT_U_SUB_FMT_5(T) \ > void __attribute__((noinline)) \ > @@ -437,6 +445,8 @@ vec_sat_u_sub_##T##_fmt_5 (T *out, T *op_1, T *op_2, > unsigned limit) \ > out[i] = x < y ? 0 : x - y; \ > } \ > } > +#define DEF_VEC_SAT_U_SUB_FMT_5_WRAP(T) \ > + DEF_VEC_SAT_U_SUB_FMT_5(T) > > #define DEF_VEC_SAT_U_SUB_FMT_6(T) \ > void __attribute__((noinline)) \ > @@ -450,6 +460,8 @@ vec_sat_u_sub_##T##_fmt_6 (T *out, T *op_1, T *op_2, > unsigned limit) \ > out[i] = x <= y ? 0 : x - y; \ > } \ > } > +#define DEF_VEC_SAT_U_SUB_FMT_6_WRAP(T) \ > + DEF_VEC_SAT_U_SUB_FMT_6(T) > > #define DEF_VEC_SAT_U_SUB_FMT_7(T) \ > void __attribute__((noinline)) \ > @@ -465,6 +477,8 @@ vec_sat_u_sub_##T##_fmt_7 (T *out, T *op_1, T *op_2, > unsigned limit) \ > out[i] = ret & (T)(overflow - 1); \ > } \ > } > +#define DEF_VEC_SAT_U_SUB_FMT_7_WRAP(T) \ > + DEF_VEC_SAT_U_SUB_FMT_7(T) > > #define DEF_VEC_SAT_U_SUB_FMT_8(T) \ > void __attribute__((noinline)) \ > @@ -480,6 +494,8 @@ vec_sat_u_sub_##T##_fmt_8 (T *out, T *op_1, T *op_2, > unsigned limit) \ > out[i] = ret & (T)-(!overflow); \ > } \ > } > +#define DEF_VEC_SAT_U_SUB_FMT_8_WRAP(T) \ > + DEF_VEC_SAT_U_SUB_FMT_8(T) > > #define DEF_VEC_SAT_U_SUB_FMT_9(T) \ > void __attribute__((noinline)) \ > @@ -495,6 +511,8 @@ vec_sat_u_sub_##T##_fmt_9 (T *out, T *op_1, T *op_2, > unsigned limit) \ > out[i] = overflow ? 0 : ret; \ > } \ > } > +#define DEF_VEC_SAT_U_SUB_FMT_9_WRAP(T) \ > + DEF_VEC_SAT_U_SUB_FMT_9(T) > > #define DEF_VEC_SAT_U_SUB_FMT_10(T) \ > void __attribute__((noinline)) \ > @@ -510,6 +528,8 @@ vec_sat_u_sub_##T##_fmt_10 (T *out, T *op_1, T *op_2, > unsigned limit) \ > out[i] = !overflow ? ret : 0; \ > } \ > } > +#define DEF_VEC_SAT_U_SUB_FMT_10_WRAP(T) \ > + DEF_VEC_SAT_U_SUB_FMT_10(T) > > #define DEF_VEC_SAT_U_SUB_ZIP(T1, T2) \ > void __attribute__((noinline)) \ > @@ -669,33 +689,53 @@ vec_sat_s_sub_##T##_fmt_4 (T *out, T *op_1, T *op_2, > unsigned limit) \ > > #define RUN_VEC_SAT_U_SUB_FMT_1(T, out, op_1, op_2, N) \ > vec_sat_u_sub_##T##_fmt_1(out, op_1, op_2, N) > +#define RUN_VEC_SAT_U_SUB_FMT_1_WRAP(T, out, op_1, op_2, N) \ > + RUN_VEC_SAT_U_SUB_FMT_1(T, out, op_1, op_2, N) > > #define RUN_VEC_SAT_U_SUB_FMT_2(T, out, op_1, op_2, N) \ > vec_sat_u_sub_##T##_fmt_2(out, op_1, op_2, N) > +#define RUN_VEC_SAT_U_SUB_FMT_2_WRAP(T, out, op_1, op_2, N) \ > + RUN_VEC_SAT_U_SUB_FMT_2(T, out, op_1, op_2, N) > > #define RUN_VEC_SAT_U_SUB_FMT_3(T, out, op_1, op_2, N) \ > vec_sat_u_sub_##T##_fmt_3(out, op_1, op_2, N) > +#define RUN_VEC_SAT_U_SUB_FMT_3_WRAP(T, out, op_1, op_2, N) \ > + RUN_VEC_SAT_U_SUB_FMT_3(T, out, op_1, op_2, N) > > #define RUN_VEC_SAT_U_SUB_FMT_4(T, out, op_1, op_2, N) \ > vec_sat_u_sub_##T##_fmt_4(out, op_1, op_2, N) > +#define RUN_VEC_SAT_U_SUB_FMT_4_WRAP(T, out, op_1, op_2, N) \ > + RUN_VEC_SAT_U_SUB_FMT_4(T, out, op_1, op_2, N) > > #define RUN_VEC_SAT_U_SUB_FMT_5(T, out, op_1, op_2, N) \ > vec_sat_u_sub_##T##_fmt_5(out, op_1, op_2, N) > +#define RUN_VEC_SAT_U_SUB_FMT_5_WRAP(T, out, op_1, op_2, N) \ > + RUN_VEC_SAT_U_SUB_FMT_5(T, out, op_1, op_2, N) > > #define RUN_VEC_SAT_U_SUB_FMT_6(T, out, op_1, op_2, N) \ > vec_sat_u_sub_##T##_fmt_6(out, op_1, op_2, N) > +#define RUN_VEC_SAT_U_SUB_FMT_6_WRAP(T, out, op_1, op_2, N) \ > + RUN_VEC_SAT_U_SUB_FMT_6(T, out, op_1, op_2, N) > > #define RUN_VEC_SAT_U_SUB_FMT_7(T, out, op_1, op_2, N) \ > vec_sat_u_sub_##T##_fmt_7(out, op_1, op_2, N) > +#define RUN_VEC_SAT_U_SUB_FMT_7_WRAP(T, out, op_1, op_2, N) \ > + RUN_VEC_SAT_U_SUB_FMT_7(T, out, op_1, op_2, N) > > #define RUN_VEC_SAT_U_SUB_FMT_8(T, out, op_1, op_2, N) \ > vec_sat_u_sub_##T##_fmt_8(out, op_1, op_2, N) > +#define RUN_VEC_SAT_U_SUB_FMT_8_WRAP(T, out, op_1, op_2, N) \ > + RUN_VEC_SAT_U_SUB_FMT_8(T, out, op_1, op_2, N) > > #define RUN_VEC_SAT_U_SUB_FMT_9(T, out, op_1, op_2, N) \ > vec_sat_u_sub_##T##_fmt_9(out, op_1, op_2, N) > +#define RUN_VEC_SAT_U_SUB_FMT_9_WRAP(T, out, op_1, op_2, N) \ > + RUN_VEC_SAT_U_SUB_FMT_9(T, out, op_1, op_2, N) > > #define RUN_VEC_SAT_U_SUB_FMT_10(T, out, op_1, op_2, N) \ > vec_sat_u_sub_##T##_fmt_10(out, op_1, op_2, N) > +#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_ZIP(T1, T2, x, b, N) \ > vec_sat_u_sub_##T1##_##T2##_fmt_zip(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 9f05c0c9291..4469f0e184b 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,6 +744,258 @@ uint64_t TEST_UNARY_DATA(uint64_t, > sat_u_sub_imm)[][2][N] = > }, > }; > > +uint8_t TEST_UNARY_DATA(uint8_t, usub)[][3][N] = { > + { > + { > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + }, /* arg_0 */ > + { > + 0, 1, 2, 3, > + 0, 1, 2, 3, > + 0, 1, 2, 3, > + 0, 1, 2, 3, > + }, /* arg_1 */ > + { > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + }, /* expect */ > + }, > + { > + { > + 0, 255, 255, 255, > + 0, 255, 255, 255, > + 0, 255, 255, 255, > + 0, 255, 255, 255, > + }, > + { > + 1, 255, 254, 251, > + 1, 255, 254, 251, > + 1, 255, 254, 251, > + 1, 255, 254, 251, > + }, > + { > + 0, 0, 1, 4, > + 0, 0, 1, 4, > + 0, 0, 1, 4, > + 0, 0, 1, 4, > + }, > + }, > + { > + { > + 0, 0, 1, 0, > + 1, 2, 3, 0, > + 1, 2, 3, 255, > + 5, 254, 255, 9, > + }, > + { > + 0, 1, 0, 254, > + 254, 254, 254, 255, > + 255, 255, 0, 252, > + 255, 255, 255, 1, > + }, > + { > + 0, 0, 1, 0, > + 0, 0, 0, 0, > + 0, 0, 3, 3, > + 0, 0, 0, 8, > + }, > + }, > +}; > + > +uint16_t TEST_UNARY_DATA(uint16_t, usub)[][3][N] = { > + { > + { > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + }, /* arg_0 */ > + { > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + }, /* arg_1 */ > + { > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + 0, 0, 0, 0, > + }, /* expect */ > + }, > + { > + { > + 65535, 65535, 65535, 65535, > + 65535, 65535, 65535, 65535, > + 65535, 65535, 65535, 65535, > + 65535, 65535, 65535, 65535, > + }, > + { > + 55535, 45535, 35535, 25535, > + 55535, 45535, 35535, 25535, > + 55535, 45535, 35535, 25535, > + 55535, 45535, 35535, 25535, > + }, > + { > + 10000, 20000, 30000, 40000, > + 10000, 20000, 30000, 40000, > + 10000, 20000, 30000, 40000, > + 10000, 20000, 30000, 40000, > + }, > + }, > + { > + { > + 0, 0, 1, 0, > + 1, 2, 3, 0, > + 1, 65535, 3, 65535, > + 5, 65534, 65535, 9, > + }, > + { > + 0, 1, 1, 65534, > + 65534, 65534, 1, 65535, > + 0, 65535, 65535, 0, > + 65535, 65535, 1, 2, > + }, > + { > + 0, 0, 0, 0, > + 0, 0, 2, 0, > + 1, 0, 0, 65535, > + 0, 0, 65534, 7, > + }, > + }, > +}; > + > +uint32_t TEST_UNARY_DATA(uint32_t, usub)[][3][N] = { > + { > + { > + 0, 0, 4, 0, > + 0, 0, 4, 0, > + 0, 0, 4, 0, > + 0, 0, 4, 0, > + }, /* arg_0 */ > + { > + 0, 1, 2, 3, > + 0, 1, 2, 3, > + 0, 1, 2, 3, > + 0, 1, 2, 3, > + }, /* arg_1 */ > + { > + 0, 0, 2, 0, > + 0, 0, 2, 0, > + 0, 0, 2, 0, > + 0, 0, 2, 0, > + }, /* expect */ > + }, > + { > + { > + 4294967295, 4294967295, 4294967295, 4294967295, > + 4294967295, 4294967295, 4294967295, 4294967295, > + 4294967295, 4294967295, 4294967295, 4294967295, > + 4294967295, 4294967295, 4294967295, 4294967295, > + }, > + { > + 1294967295, 2294967295, 3294967295, 4294967295, > + 1294967295, 2294967295, 3294967295, 4294967295, > + 1294967295, 2294967295, 3294967295, 4294967295, > + 1294967295, 2294967295, 3294967295, 4294967295, > + }, > + { > + 3000000000, 2000000000, 1000000000, 0, > + 3000000000, 2000000000, 1000000000, 0, > + 3000000000, 2000000000, 1000000000, 0, > + 3000000000, 2000000000, 1000000000, 0, > + }, > + }, > + { > + { > + 0, 0, 9, 0, > + 1, 4294967295, 3, 0, > + 1, 2, 3, 4, > + 5, 4294967294, 4294967295, 4294967295, > + }, > + { > + 0, 1, 1, 4294967294, > + 1, 2, 4294967294, 4294967295, > + 1, 4294967295, 4294967295, 1, > + 1, 4294967295, 4294967290, 9, > + }, > + { > + 0, 0, 8, 0, > + 0, 4294967293, 0, 0, > + 0, 0, 0, 3, > + 4, 0, 5, 4294967286, > + }, > + }, > +}; > + > +uint64_t TEST_UNARY_DATA(uint64_t, usub)[][3][N] = { > + { > + { > + 0, 9, 0, 0, > + 0, 9, 0, 0, > + 0, 9, 0, 0, > + 0, 9, 0, 0, > + }, /* arg_0 */ > + { > + 0, 2, 3, 1, > + 0, 2, 3, 1, > + 0, 2, 3, 1, > + 0, 2, 3, 1, > + }, /* arg_1 */ > + { > + 0, 7, 0, 0, > + 0, 7, 0, 0, > + 0, 7, 0, 0, > + 0, 7, 0, 0, > + }, /* expect */ > + }, > + { > + { > + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > + }, > + { > + 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > + 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > + 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > + 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > + }, > + { > + 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > + 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > + 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > + 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > + }, > + }, > + { > + { > + 0, 18446744073709551615u, 1, > 0, > + 1, 18446744073709551615u, 3, > 0, > + 1, 18446744073709551614u, 3, > 4, > + 5, 18446744073709551614u, 18446744073709551615u, > 9, > + }, > + { > + 0, 1, 1, > 18446744073709551614u, > + 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, > 18446744073709551615u, > + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > + 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 1, > + }, > + { > + 0, 18446744073709551614u, 0, > 0, > + 0, 1, 0, > 0, > + 0, 0, 0, > 0, > + 0, 0, 0, > 8, > + }, > + }, > +}; > + > int8_t TEST_UNARY_DATA(int8_t, sat_s_add_imm)[][2][N] = > { > { /* For add imm -128 */ > 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 97e50406e60..5fc747bc990 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint16_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_1 > > -DEF_VEC_SAT_U_SUB_FMT_1(T) > +DEF_VEC_SAT_U_SUB_FMT_1_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - }, > - { > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - }, > - { > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 65535, 3, 65535, > - 5, 65534, 65535, 9, > - }, > - { > - 0, 1, 1, 65534, > - 65534, 65534, 1, 65535, > - 0, 65535, 65535, 0, > - 65535, 65535, 1, 2, > - }, > - { > - 0, 0, 0, 0, > - 0, 0, 2, 0, > - 1, 0, 0, 65535, > - 0, 0, 65534, 7, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 a5428c43010..c9976d0d1de 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint32_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_1 > > -DEF_VEC_SAT_U_SUB_FMT_1(T) > +DEF_VEC_SAT_U_SUB_FMT_1_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - }, /* expect */ > - }, > - { > - { > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - }, > - { > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - }, > - { > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - }, > - }, > - { > - { > - 0, 0, 9, 0, > - 1, 4294967295, 3, 0, > - 1, 2, 3, 4, > - 5, 4294967294, 4294967295, 4294967295, > - }, > - { > - 0, 1, 1, 4294967294, > - 1, 2, 4294967294, 4294967295, > - 1, 4294967295, 4294967295, 1, > - 1, 4294967295, 4294967290, 9, > - }, > - { > - 0, 0, 8, 0, > - 0, 4294967293, 0, 0, > - 0, 0, 0, 3, > - 4, 0, 5, 4294967286, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 bdb65d91c1f..10a0b0c29cf 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint64_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_1 > > -DEF_VEC_SAT_U_SUB_FMT_1(T) > +DEF_VEC_SAT_U_SUB_FMT_1_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - }, /* arg_0 */ > - { > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - }, /* arg_1 */ > - { > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - }, > - { > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - }, > - { > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - }, > - }, > - { > - { > - 0, 18446744073709551615u, 1, > 0, > - 1, 18446744073709551615u, 3, > 0, > - 1, 18446744073709551614u, 3, > 4, > - 5, 18446744073709551614u, 18446744073709551615u, > 9, > - }, > - { > - 0, 1, 1, > 18446744073709551614u, > - 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 1, > - }, > - { > - 0, 18446744073709551614u, 0, > 0, > - 0, 1, 0, > 0, > - 0, 0, 0, > 0, > - 0, 0, 0, > 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 3fe5fe33bef..7b22863b4fb 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 > @@ -2,74 +2,15 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint8_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_1 > > -DEF_VEC_SAT_U_SUB_FMT_1(T) > +DEF_VEC_SAT_U_SUB_FMT_1_WRAP(T) > + > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - }, > - { > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - }, > - { > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 2, 3, 255, > - 5, 254, 255, 9, > - }, > - { > - 0, 1, 0, 254, > - 254, 254, 254, 255, > - 255, 255, 0, 252, > - 255, 255, 255, 1, > - }, > - { > - 0, 0, 1, 0, > - 0, 0, 0, 0, > - 0, 0, 3, 3, > - 0, 0, 0, 8, > - }, > - }, > -}; > > #include "vec_sat_binary_vvv_run.h" > 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 0f4129ca665..a6b2dc43deb 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint16_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_10 > > -DEF_VEC_SAT_U_SUB_FMT_10(T) > +DEF_VEC_SAT_U_SUB_FMT_10_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - }, > - { > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - }, > - { > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 65535, 3, 65535, > - 5, 65534, 65535, 9, > - }, > - { > - 0, 1, 1, 65534, > - 65534, 65534, 1, 65535, > - 0, 65535, 65535, 0, > - 65535, 65535, 1, 2, > - }, > - { > - 0, 0, 0, 0, > - 0, 0, 2, 0, > - 1, 0, 0, 65535, > - 0, 0, 65534, 7, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 8b995eb3a16..91e749e6890 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint32_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_10 > > -DEF_VEC_SAT_U_SUB_FMT_10(T) > +DEF_VEC_SAT_U_SUB_FMT_10_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - }, /* expect */ > - }, > - { > - { > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - }, > - { > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - }, > - { > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - }, > - }, > - { > - { > - 0, 0, 9, 0, > - 1, 4294967295, 3, 0, > - 1, 2, 3, 4, > - 5, 4294967294, 4294967295, 4294967295, > - }, > - { > - 0, 1, 1, 4294967294, > - 1, 2, 4294967294, 4294967295, > - 1, 4294967295, 4294967295, 1, > - 1, 4294967295, 4294967290, 9, > - }, > - { > - 0, 0, 8, 0, > - 0, 4294967293, 0, 0, > - 0, 0, 0, 3, > - 4, 0, 5, 4294967286, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 d12d9815e83..b7a631484d2 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint64_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_10 > > -DEF_VEC_SAT_U_SUB_FMT_10(T) > +DEF_VEC_SAT_U_SUB_FMT_10_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - }, /* arg_0 */ > - { > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - }, /* arg_1 */ > - { > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - }, > - { > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - }, > - { > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - }, > - }, > - { > - { > - 0, 18446744073709551615u, 1, > 0, > - 1, 18446744073709551615u, 3, > 0, > - 1, 18446744073709551614u, 3, > 4, > - 5, 18446744073709551614u, 18446744073709551615u, > 9, > - }, > - { > - 0, 1, 1, > 18446744073709551614u, > - 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 1, > - }, > - { > - 0, 18446744073709551614u, 0, > 0, > - 0, 1, 0, > 0, > - 0, 0, 0, > 0, > - 0, 0, 0, > 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 384ef3e9809..1d5579878b1 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint8_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_10 > > -DEF_VEC_SAT_U_SUB_FMT_10(T) > +DEF_VEC_SAT_U_SUB_FMT_10_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - }, > - { > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - }, > - { > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 2, 3, 255, > - 5, 254, 255, 9, > - }, > - { > - 0, 1, 0, 254, > - 254, 254, 254, 255, > - 255, 255, 0, 252, > - 255, 255, 255, 1, > - }, > - { > - 0, 0, 1, 0, > - 0, 0, 0, 0, > - 0, 0, 3, 3, > - 0, 0, 0, 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #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 5cf08ac3ed6..dcd6d1768d1 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint16_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_2 > > -DEF_VEC_SAT_U_SUB_FMT_2(T) > +DEF_VEC_SAT_U_SUB_FMT_2_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - }, > - { > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - }, > - { > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 65535, 3, 65535, > - 5, 65534, 65535, 9, > - }, > - { > - 0, 1, 1, 65534, > - 65534, 65534, 1, 65535, > - 0, 65535, 65535, 0, > - 65535, 65535, 1, 2, > - }, > - { > - 0, 0, 0, 0, > - 0, 0, 2, 0, > - 1, 0, 0, 65535, > - 0, 0, 65534, 7, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 85c84542e64..98a1fffad38 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint32_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_2 > > -DEF_VEC_SAT_U_SUB_FMT_2(T) > +DEF_VEC_SAT_U_SUB_FMT_2_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - }, /* expect */ > - }, > - { > - { > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - }, > - { > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - }, > - { > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - }, > - }, > - { > - { > - 0, 0, 9, 0, > - 1, 4294967295, 3, 0, > - 1, 2, 3, 4, > - 5, 4294967294, 4294967295, 4294967295, > - }, > - { > - 0, 1, 1, 4294967294, > - 1, 2, 4294967294, 4294967295, > - 1, 4294967295, 4294967295, 1, > - 1, 4294967295, 4294967290, 9, > - }, > - { > - 0, 0, 8, 0, > - 0, 4294967293, 0, 0, > - 0, 0, 0, 3, > - 4, 0, 5, 4294967286, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 67d5ac5d899..5445b01422a 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint64_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_2 > > -DEF_VEC_SAT_U_SUB_FMT_2(T) > +DEF_VEC_SAT_U_SUB_FMT_2_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - }, /* arg_0 */ > - { > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - }, /* arg_1 */ > - { > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - }, > - { > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - }, > - { > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - }, > - }, > - { > - { > - 0, 18446744073709551615u, 1, > 0, > - 1, 18446744073709551615u, 3, > 0, > - 1, 18446744073709551614u, 3, > 4, > - 5, 18446744073709551614u, 18446744073709551615u, > 9, > - }, > - { > - 0, 1, 1, > 18446744073709551614u, > - 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 1, > - }, > - { > - 0, 18446744073709551614u, 0, > 0, > - 0, 1, 0, > 0, > - 0, 0, 0, > 0, > - 0, 0, 0, > 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 809f07fc6fc..3aaec4d748d 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint8_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_2 > > -DEF_VEC_SAT_U_SUB_FMT_2(T) > +DEF_VEC_SAT_U_SUB_FMT_2_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - }, > - { > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - }, > - { > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 2, 3, 255, > - 5, 254, 255, 9, > - }, > - { > - 0, 1, 0, 254, > - 254, 254, 254, 255, > - 255, 255, 0, 252, > - 255, 255, 255, 1, > - }, > - { > - 0, 0, 1, 0, > - 0, 0, 0, 0, > - 0, 0, 3, 3, > - 0, 0, 0, 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 57839a9cd98..99e58cd2927 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint16_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_3 > > -DEF_VEC_SAT_U_SUB_FMT_3(T) > +DEF_VEC_SAT_U_SUB_FMT_3_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - }, > - { > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - }, > - { > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 65535, 3, 65535, > - 5, 65534, 65535, 9, > - }, > - { > - 0, 1, 1, 65534, > - 65534, 65534, 1, 65535, > - 0, 65535, 65535, 0, > - 65535, 65535, 1, 2, > - }, > - { > - 0, 0, 0, 0, > - 0, 0, 2, 0, > - 1, 0, 0, 65535, > - 0, 0, 65534, 7, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 ffb0dcc4d18..bd7bcd00439 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint32_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_3 > > -DEF_VEC_SAT_U_SUB_FMT_3(T) > +DEF_VEC_SAT_U_SUB_FMT_3_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - }, /* expect */ > - }, > - { > - { > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - }, > - { > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - }, > - { > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - }, > - }, > - { > - { > - 0, 0, 9, 0, > - 1, 4294967295, 3, 0, > - 1, 2, 3, 4, > - 5, 4294967294, 4294967295, 4294967295, > - }, > - { > - 0, 1, 1, 4294967294, > - 1, 2, 4294967294, 4294967295, > - 1, 4294967295, 4294967295, 1, > - 1, 4294967295, 4294967290, 9, > - }, > - { > - 0, 0, 8, 0, > - 0, 4294967293, 0, 0, > - 0, 0, 0, 3, > - 4, 0, 5, 4294967286, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 396667790b5..96ee0c89634 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint64_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_3 > > -DEF_VEC_SAT_U_SUB_FMT_3(T) > +DEF_VEC_SAT_U_SUB_FMT_3_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - }, /* arg_0 */ > - { > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - }, /* arg_1 */ > - { > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - }, > - { > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - }, > - { > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - }, > - }, > - { > - { > - 0, 18446744073709551615u, 1, > 0, > - 1, 18446744073709551615u, 3, > 0, > - 1, 18446744073709551614u, 3, > 4, > - 5, 18446744073709551614u, 18446744073709551615u, > 9, > - }, > - { > - 0, 1, 1, > 18446744073709551614u, > - 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 1, > - }, > - { > - 0, 18446744073709551614u, 0, > 0, > - 0, 1, 0, > 0, > - 0, 0, 0, > 0, > - 0, 0, 0, > 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 e795f62bfe2..b9fa957de33 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint8_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_3 > > -DEF_VEC_SAT_U_SUB_FMT_3(T) > +DEF_VEC_SAT_U_SUB_FMT_3_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - }, > - { > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - }, > - { > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 2, 3, 255, > - 5, 254, 255, 9, > - }, > - { > - 0, 1, 0, 254, > - 254, 254, 254, 255, > - 255, 255, 0, 252, > - 255, 255, 255, 1, > - }, > - { > - 0, 0, 1, 0, > - 0, 0, 0, 0, > - 0, 0, 3, 3, > - 0, 0, 0, 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 0eecf829686..6d4f3775e86 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint16_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_4 > > -DEF_VEC_SAT_U_SUB_FMT_4(T) > +DEF_VEC_SAT_U_SUB_FMT_4_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - }, > - { > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - }, > - { > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 65535, 3, 65535, > - 5, 65534, 65535, 9, > - }, > - { > - 0, 1, 1, 65534, > - 65534, 65534, 1, 65535, > - 0, 65535, 65535, 0, > - 65535, 65535, 1, 2, > - }, > - { > - 0, 0, 0, 0, > - 0, 0, 2, 0, > - 1, 0, 0, 65535, > - 0, 0, 65534, 7, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 1d0d16b7408..14250178b46 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint32_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_4 > > -DEF_VEC_SAT_U_SUB_FMT_4(T) > +DEF_VEC_SAT_U_SUB_FMT_4_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - }, /* expect */ > - }, > - { > - { > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - }, > - { > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - }, > - { > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - }, > - }, > - { > - { > - 0, 0, 9, 0, > - 1, 4294967295, 3, 0, > - 1, 2, 3, 4, > - 5, 4294967294, 4294967295, 4294967295, > - }, > - { > - 0, 1, 1, 4294967294, > - 1, 2, 4294967294, 4294967295, > - 1, 4294967295, 4294967295, 1, > - 1, 4294967295, 4294967290, 9, > - }, > - { > - 0, 0, 8, 0, > - 0, 4294967293, 0, 0, > - 0, 0, 0, 3, > - 4, 0, 5, 4294967286, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 98fdfa24b31..149d48171e3 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint64_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_4 > > -DEF_VEC_SAT_U_SUB_FMT_4(T) > +DEF_VEC_SAT_U_SUB_FMT_4_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - }, /* arg_0 */ > - { > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - }, /* arg_1 */ > - { > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - }, > - { > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - }, > - { > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - }, > - }, > - { > - { > - 0, 18446744073709551615u, 1, > 0, > - 1, 18446744073709551615u, 3, > 0, > - 1, 18446744073709551614u, 3, > 4, > - 5, 18446744073709551614u, 18446744073709551615u, > 9, > - }, > - { > - 0, 1, 1, > 18446744073709551614u, > - 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 1, > - }, > - { > - 0, 18446744073709551614u, 0, > 0, > - 0, 1, 0, > 0, > - 0, 0, 0, > 0, > - 0, 0, 0, > 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 18a887dd345..12195cd50bd 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint8_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_4 > > -DEF_VEC_SAT_U_SUB_FMT_4(T) > +DEF_VEC_SAT_U_SUB_FMT_4_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - }, > - { > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - }, > - { > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 2, 3, 255, > - 5, 254, 255, 9, > - }, > - { > - 0, 1, 0, 254, > - 254, 254, 254, 255, > - 255, 255, 0, 252, > - 255, 255, 255, 1, > - }, > - { > - 0, 0, 1, 0, > - 0, 0, 0, 0, > - 0, 0, 3, 3, > - 0, 0, 0, 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 ce44c049c57..9cd25773f6b 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint16_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_5 > > -DEF_VEC_SAT_U_SUB_FMT_5(T) > +DEF_VEC_SAT_U_SUB_FMT_5_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - }, > - { > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - }, > - { > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 65535, 3, 65535, > - 5, 65534, 65535, 9, > - }, > - { > - 0, 1, 1, 65534, > - 65534, 65534, 1, 65535, > - 0, 65535, 65535, 0, > - 65535, 65535, 1, 2, > - }, > - { > - 0, 0, 0, 0, > - 0, 0, 2, 0, > - 1, 0, 0, 65535, > - 0, 0, 65534, 7, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 36ae7b322c7..638e054d4e1 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint32_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_5 > > -DEF_VEC_SAT_U_SUB_FMT_5(T) > +DEF_VEC_SAT_U_SUB_FMT_5_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - }, /* expect */ > - }, > - { > - { > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - }, > - { > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - }, > - { > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - }, > - }, > - { > - { > - 0, 0, 9, 0, > - 1, 4294967295, 3, 0, > - 1, 2, 3, 4, > - 5, 4294967294, 4294967295, 4294967295, > - }, > - { > - 0, 1, 1, 4294967294, > - 1, 2, 4294967294, 4294967295, > - 1, 4294967295, 4294967295, 1, > - 1, 4294967295, 4294967290, 9, > - }, > - { > - 0, 0, 8, 0, > - 0, 4294967293, 0, 0, > - 0, 0, 0, 3, > - 4, 0, 5, 4294967286, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 7b40ffdbed3..db86baf2823 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint64_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_5 > > -DEF_VEC_SAT_U_SUB_FMT_5(T) > +DEF_VEC_SAT_U_SUB_FMT_5_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - }, /* arg_0 */ > - { > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - }, /* arg_1 */ > - { > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - }, > - { > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - }, > - { > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - }, > - }, > - { > - { > - 0, 18446744073709551615u, 1, > 0, > - 1, 18446744073709551615u, 3, > 0, > - 1, 18446744073709551614u, 3, > 4, > - 5, 18446744073709551614u, 18446744073709551615u, > 9, > - }, > - { > - 0, 1, 1, > 18446744073709551614u, > - 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 1, > - }, > - { > - 0, 18446744073709551614u, 0, > 0, > - 0, 1, 0, > 0, > - 0, 0, 0, > 0, > - 0, 0, 0, > 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 3b0807febea..b277e1c73e6 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint8_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_5 > > -DEF_VEC_SAT_U_SUB_FMT_5(T) > +DEF_VEC_SAT_U_SUB_FMT_5_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - }, > - { > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - }, > - { > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 2, 3, 255, > - 5, 254, 255, 9, > - }, > - { > - 0, 1, 0, 254, > - 254, 254, 254, 255, > - 255, 255, 0, 252, > - 255, 255, 255, 1, > - }, > - { > - 0, 0, 1, 0, > - 0, 0, 0, 0, > - 0, 0, 3, 3, > - 0, 0, 0, 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 e972078eca5..e79e2fc9de8 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint16_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_6 > > -DEF_VEC_SAT_U_SUB_FMT_6(T) > +DEF_VEC_SAT_U_SUB_FMT_6_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - }, > - { > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - }, > - { > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 65535, 3, 65535, > - 5, 65534, 65535, 9, > - }, > - { > - 0, 1, 1, 65534, > - 65534, 65534, 1, 65535, > - 0, 65535, 65535, 0, > - 65535, 65535, 1, 2, > - }, > - { > - 0, 0, 0, 0, > - 0, 0, 2, 0, > - 1, 0, 0, 65535, > - 0, 0, 65534, 7, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 54e28487cac..cd9cbfc3455 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint32_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_6 > > -DEF_VEC_SAT_U_SUB_FMT_6(T) > +DEF_VEC_SAT_U_SUB_FMT_6_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - }, /* expect */ > - }, > - { > - { > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - }, > - { > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - }, > - { > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - }, > - }, > - { > - { > - 0, 0, 9, 0, > - 1, 4294967295, 3, 0, > - 1, 2, 3, 4, > - 5, 4294967294, 4294967295, 4294967295, > - }, > - { > - 0, 1, 1, 4294967294, > - 1, 2, 4294967294, 4294967295, > - 1, 4294967295, 4294967295, 1, > - 1, 4294967295, 4294967290, 9, > - }, > - { > - 0, 0, 8, 0, > - 0, 4294967293, 0, 0, > - 0, 0, 0, 3, > - 4, 0, 5, 4294967286, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 33f3be04deb..7c0f753e96b 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint64_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_6 > > -DEF_VEC_SAT_U_SUB_FMT_6(T) > +DEF_VEC_SAT_U_SUB_FMT_6_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - }, /* arg_0 */ > - { > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - }, /* arg_1 */ > - { > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - }, > - { > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - }, > - { > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - }, > - }, > - { > - { > - 0, 18446744073709551615u, 1, > 0, > - 1, 18446744073709551615u, 3, > 0, > - 1, 18446744073709551614u, 3, > 4, > - 5, 18446744073709551614u, 18446744073709551615u, > 9, > - }, > - { > - 0, 1, 1, > 18446744073709551614u, > - 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 1, > - }, > - { > - 0, 18446744073709551614u, 0, > 0, > - 0, 1, 0, > 0, > - 0, 0, 0, > 0, > - 0, 0, 0, > 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 13760387814..d97a834344f 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint8_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_6 > > -DEF_VEC_SAT_U_SUB_FMT_6(T) > +DEF_VEC_SAT_U_SUB_FMT_6_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - }, > - { > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - }, > - { > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 2, 3, 255, > - 5, 254, 255, 9, > - }, > - { > - 0, 1, 0, 254, > - 254, 254, 254, 255, > - 255, 255, 0, 252, > - 255, 255, 255, 1, > - }, > - { > - 0, 0, 1, 0, > - 0, 0, 0, 0, > - 0, 0, 3, 3, > - 0, 0, 0, 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 83241ef6f99..3b8c87012d0 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint16_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_7 > > -DEF_VEC_SAT_U_SUB_FMT_7(T) > +DEF_VEC_SAT_U_SUB_FMT_7_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - }, > - { > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - }, > - { > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 65535, 3, 65535, > - 5, 65534, 65535, 9, > - }, > - { > - 0, 1, 1, 65534, > - 65534, 65534, 1, 65535, > - 0, 65535, 65535, 0, > - 65535, 65535, 1, 2, > - }, > - { > - 0, 0, 0, 0, > - 0, 0, 2, 0, > - 1, 0, 0, 65535, > - 0, 0, 65534, 7, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 f20bb21e3b1..065d898c037 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint32_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_7 > > -DEF_VEC_SAT_U_SUB_FMT_7(T) > +DEF_VEC_SAT_U_SUB_FMT_7_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - }, /* expect */ > - }, > - { > - { > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - }, > - { > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - }, > - { > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - }, > - }, > - { > - { > - 0, 0, 9, 0, > - 1, 4294967295, 3, 0, > - 1, 2, 3, 4, > - 5, 4294967294, 4294967295, 4294967295, > - }, > - { > - 0, 1, 1, 4294967294, > - 1, 2, 4294967294, 4294967295, > - 1, 4294967295, 4294967295, 1, > - 1, 4294967295, 4294967290, 9, > - }, > - { > - 0, 0, 8, 0, > - 0, 4294967293, 0, 0, > - 0, 0, 0, 3, > - 4, 0, 5, 4294967286, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 4ad0afd3a6f..f6783a8c8e2 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint64_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_7 > > -DEF_VEC_SAT_U_SUB_FMT_7(T) > +DEF_VEC_SAT_U_SUB_FMT_7_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - }, /* arg_0 */ > - { > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - }, /* arg_1 */ > - { > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - }, > - { > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - }, > - { > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - }, > - }, > - { > - { > - 0, 18446744073709551615u, 1, > 0, > - 1, 18446744073709551615u, 3, > 0, > - 1, 18446744073709551614u, 3, > 4, > - 5, 18446744073709551614u, 18446744073709551615u, > 9, > - }, > - { > - 0, 1, 1, > 18446744073709551614u, > - 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 1, > - }, > - { > - 0, 18446744073709551614u, 0, > 0, > - 0, 1, 0, > 0, > - 0, 0, 0, > 0, > - 0, 0, 0, > 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 3b33b136d41..6b9ae2d56a9 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint8_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_7 > > -DEF_VEC_SAT_U_SUB_FMT_7(T) > +DEF_VEC_SAT_U_SUB_FMT_7_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - }, > - { > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - }, > - { > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 2, 3, 255, > - 5, 254, 255, 9, > - }, > - { > - 0, 1, 0, 254, > - 254, 254, 254, 255, > - 255, 255, 0, 252, > - 255, 255, 255, 1, > - }, > - { > - 0, 0, 1, 0, > - 0, 0, 0, 0, > - 0, 0, 3, 3, > - 0, 0, 0, 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 b212550fed3..27c4563abb5 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint16_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_8 > > -DEF_VEC_SAT_U_SUB_FMT_8(T) > +DEF_VEC_SAT_U_SUB_FMT_8_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - }, > - { > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - }, > - { > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 65535, 3, 65535, > - 5, 65534, 65535, 9, > - }, > - { > - 0, 1, 1, 65534, > - 65534, 65534, 1, 65535, > - 0, 65535, 65535, 0, > - 65535, 65535, 1, 2, > - }, > - { > - 0, 0, 0, 0, > - 0, 0, 2, 0, > - 1, 0, 0, 65535, > - 0, 0, 65534, 7, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 1fb707c3e80..2dba8752cbd 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint32_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_8 > > -DEF_VEC_SAT_U_SUB_FMT_8(T) > +DEF_VEC_SAT_U_SUB_FMT_8_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - }, /* expect */ > - }, > - { > - { > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - }, > - { > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - }, > - { > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - }, > - }, > - { > - { > - 0, 0, 9, 0, > - 1, 4294967295, 3, 0, > - 1, 2, 3, 4, > - 5, 4294967294, 4294967295, 4294967295, > - }, > - { > - 0, 1, 1, 4294967294, > - 1, 2, 4294967294, 4294967295, > - 1, 4294967295, 4294967295, 1, > - 1, 4294967295, 4294967290, 9, > - }, > - { > - 0, 0, 8, 0, > - 0, 4294967293, 0, 0, > - 0, 0, 0, 3, > - 4, 0, 5, 4294967286, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 da8c09c1eaa..149a5227338 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint64_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_8 > > -DEF_VEC_SAT_U_SUB_FMT_8(T) > +DEF_VEC_SAT_U_SUB_FMT_8_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - }, /* arg_0 */ > - { > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - }, /* arg_1 */ > - { > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - }, > - { > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - }, > - { > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - }, > - }, > - { > - { > - 0, 18446744073709551615u, 1, > 0, > - 1, 18446744073709551615u, 3, > 0, > - 1, 18446744073709551614u, 3, > 4, > - 5, 18446744073709551614u, 18446744073709551615u, > 9, > - }, > - { > - 0, 1, 1, > 18446744073709551614u, > - 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 1, > - }, > - { > - 0, 18446744073709551614u, 0, > 0, > - 0, 1, 0, > 0, > - 0, 0, 0, > 0, > - 0, 0, 0, > 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 647607f29cf..739850ed163 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint8_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_8 > > -DEF_VEC_SAT_U_SUB_FMT_8(T) > +DEF_VEC_SAT_U_SUB_FMT_8_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - }, > - { > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - }, > - { > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 2, 3, 255, > - 5, 254, 255, 9, > - }, > - { > - 0, 1, 0, 254, > - 254, 254, 254, 255, > - 255, 255, 0, 252, > - 255, 255, 255, 1, > - }, > - { > - 0, 0, 1, 0, > - 0, 0, 0, 0, > - 0, 0, 3, 3, > - 0, 0, 0, 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 9bb0664aa87..3eb91efe93f 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint16_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_9 > > -DEF_VEC_SAT_U_SUB_FMT_9(T) > +DEF_VEC_SAT_U_SUB_FMT_9_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - 65535, 65535, 65535, 65535, > - }, > - { > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - 55535, 45535, 35535, 25535, > - }, > - { > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - 10000, 20000, 30000, 40000, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 65535, 3, 65535, > - 5, 65534, 65535, 9, > - }, > - { > - 0, 1, 1, 65534, > - 65534, 65534, 1, 65535, > - 0, 65535, 65535, 0, > - 65535, 65535, 1, 2, > - }, > - { > - 0, 0, 0, 0, > - 0, 0, 2, 0, > - 1, 0, 0, 65535, > - 0, 0, 65534, 7, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 f142b8b37fb..3e8d6fb2a42 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint32_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_9 > > -DEF_VEC_SAT_U_SUB_FMT_9(T) > +DEF_VEC_SAT_U_SUB_FMT_9_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - 0, 0, 4, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - 0, 0, 2, 0, > - }, /* expect */ > - }, > - { > - { > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - 4294967295, 4294967295, 4294967295, 4294967295, > - }, > - { > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - 1294967295, 2294967295, 3294967295, 4294967295, > - }, > - { > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - 3000000000, 2000000000, 1000000000, 0, > - }, > - }, > - { > - { > - 0, 0, 9, 0, > - 1, 4294967295, 3, 0, > - 1, 2, 3, 4, > - 5, 4294967294, 4294967295, 4294967295, > - }, > - { > - 0, 1, 1, 4294967294, > - 1, 2, 4294967294, 4294967295, > - 1, 4294967295, 4294967295, 1, > - 1, 4294967295, 4294967290, 9, > - }, > - { > - 0, 0, 8, 0, > - 0, 4294967293, 0, 0, > - 0, 0, 0, 3, > - 4, 0, 5, 4294967286, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 574b91a12f8..bb09035504f 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint64_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_9 > > -DEF_VEC_SAT_U_SUB_FMT_9(T) > +DEF_VEC_SAT_U_SUB_FMT_9_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - 0, 9, 0, 0, > - }, /* arg_0 */ > - { > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - 0, 2, 3, 1, > - }, /* arg_1 */ > - { > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - 0, 7, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - }, > - { > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - 10446744073709551615u, 11446744073709551615u, 12446744073709551615u, > 18446744073709551615u, > - }, > - { > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - 8000000000000000000u, 7000000000000000000u, 6000000000000000000u, > 0u, > - }, > - }, > - { > - { > - 0, 18446744073709551615u, 1, > 0, > - 1, 18446744073709551615u, 3, > 0, > - 1, 18446744073709551614u, 3, > 4, > - 5, 18446744073709551614u, 18446744073709551615u, > 9, > - }, > - { > - 0, 1, 1, > 18446744073709551614u, > - 18446744073709551614u, 18446744073709551614u, 18446744073709551614u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 18446744073709551615u, > - 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, > 1, > - }, > - { > - 0, 18446744073709551614u, 0, > 0, > - 0, 1, 0, > 0, > - 0, 0, 0, > 0, > - 0, 0, 0, > 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > 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 2c8ee4232d7..1dc31914b07 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 > @@ -2,74 +2,14 @@ > /* { dg-additional-options "-std=c99" } */ > > #include "vec_sat_arith.h" > +#include "vec_sat_data.h" > > #define T uint8_t > -#define N 16 > -#define RUN_VEC_SAT_BINARY RUN_VEC_SAT_U_SUB_FMT_9 > > -DEF_VEC_SAT_U_SUB_FMT_9(T) > +DEF_VEC_SAT_U_SUB_FMT_9_WRAP(T) > > -T test_data[][3][N] = { > - { > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* arg_0 */ > - { > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - 0, 1, 2, 3, > - }, /* arg_1 */ > - { > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - 0, 0, 0, 0, > - }, /* expect */ > - }, > - { > - { > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - 0, 255, 255, 255, > - }, > - { > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - 1, 255, 254, 251, > - }, > - { > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - 0, 0, 1, 4, > - }, > - }, > - { > - { > - 0, 0, 1, 0, > - 1, 2, 3, 0, > - 1, 2, 3, 255, > - 5, 254, 255, 9, > - }, > - { > - 0, 1, 0, 254, > - 254, 254, 254, 255, > - 255, 255, 0, 252, > - 255, 255, 255, 1, > - }, > - { > - 0, 0, 1, 0, > - 0, 0, 0, 0, > - 0, 0, 3, 3, > - 0, 0, 0, 8, > - }, > - }, > -}; > +#define test_data TEST_UNARY_DATA_WRAP(T, usub) > +#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) > > #include "vec_sat_binary_vvv_run.h" > -- > 2.17.1 >