From: Pan Li <pan2...@intel.com>

Some of the previous scalar unsigned SAT_ADD test data are
duplicated in different test files.  This patch would like to
move them into a shared header file, to avoid the test data
duplication.

The below test suites are passed for this patch series.
* The rv64gcv fully regression test.

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/sat/sat_arith.h: Add more helper macros.
        * gcc.target/riscv/sat/sat_arith_data.h: Add the test data
        for scalar unsigned SAT_ADD.
        * gcc.target/riscv/sat/sat_u_add-run-1-u16.c: Leverage the test
        data from the shared header file.
        * gcc.target/riscv/sat/sat_u_add-run-1-u32.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-1-u64.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-1-u8.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-2-u16.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-2-u32.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-2-u64.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-2-u8.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-3-u16.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-3-u32.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-3-u64.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-3-u8.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-4-u16.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-4-u32.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-4-u64.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-4-u8.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-5-u16.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-5-u32.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-5-u64.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-5-u8.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-6-u16.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-6-u32.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-6-u64.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-6-u8.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u32.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u64.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-7-u32-from-u64.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u16.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u32.c: Ditto
        * gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u64.c: Ditto

Signed-off-by: Pan Li <pan2...@intel.com>
---
 .../gcc.target/riscv/sat/sat_arith.h          | 12 ++++
 .../gcc.target/riscv/sat/sat_arith_data.h     | 61 +++++++++++++++++++
 .../riscv/sat/sat_u_add-run-1-u16.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-1-u32.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-1-u64.c           | 24 +++-----
 .../gcc.target/riscv/sat/sat_u_add-run-1-u8.c | 24 +++-----
 .../riscv/sat/sat_u_add-run-2-u16.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-2-u32.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-2-u64.c           | 24 +++-----
 .../gcc.target/riscv/sat/sat_u_add-run-2-u8.c | 24 +++-----
 .../riscv/sat/sat_u_add-run-3-u16.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-3-u32.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-3-u64.c           | 24 +++-----
 .../gcc.target/riscv/sat/sat_u_add-run-3-u8.c | 24 +++-----
 .../riscv/sat/sat_u_add-run-4-u16.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-4-u32.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-4-u64.c           | 24 +++-----
 .../gcc.target/riscv/sat/sat_u_add-run-4-u8.c | 24 +++-----
 .../riscv/sat/sat_u_add-run-5-u16.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-5-u32.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-5-u64.c           | 24 +++-----
 .../gcc.target/riscv/sat/sat_u_add-run-5-u8.c | 24 +++-----
 .../riscv/sat/sat_u_add-run-6-u16.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-6-u32.c           | 24 +++-----
 .../riscv/sat/sat_u_add-run-6-u64.c           | 24 +++-----
 .../gcc.target/riscv/sat/sat_u_add-run-6-u8.c | 24 +++-----
 .../riscv/sat/sat_u_add-run-7-u16-from-u32.c  | 26 +++-----
 .../riscv/sat/sat_u_add-run-7-u16-from-u64.c  | 26 +++-----
 .../riscv/sat/sat_u_add-run-7-u32-from-u64.c  | 26 +++-----
 .../riscv/sat/sat_u_add-run-7-u8-from-u16.c   | 26 +++-----
 .../riscv/sat/sat_u_add-run-7-u8-from-u32.c   | 26 +++-----
 .../riscv/sat/sat_u_add-run-7-u8-from-u64.c   | 26 +++-----
 32 files changed, 289 insertions(+), 516 deletions(-)

diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_arith.h 
b/gcc/testsuite/gcc.target/riscv/sat/sat_arith.h
index 2225d30d77e..6e97cae96e6 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_arith.h
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_arith.h
@@ -13,6 +13,7 @@ sat_u_add_##T##_fmt_1 (T x, T y)           \
 {                                          \
   return (x + y) | (-(T)((T)(x + y) < x)); \
 }
+#define DEF_SAT_U_ADD_FMT_1_WRAP(T) DEF_SAT_U_ADD_FMT_1(T)
 
 #define DEF_SAT_U_ADD_FMT_2(T)           \
 T __attribute__((noinline))              \
@@ -20,6 +21,7 @@ sat_u_add_##T##_fmt_2 (T x, T y)         \
 {                                        \
   return (T)(x + y) >= x ? (x + y) : -1; \
 }
+#define DEF_SAT_U_ADD_FMT_2_WRAP(T) DEF_SAT_U_ADD_FMT_2(T)
 
 #define DEF_SAT_U_ADD_FMT_3(T)                      \
 T __attribute__((noinline))                         \
@@ -29,6 +31,7 @@ sat_u_add_##T##_fmt_3 (T x, T y)                    \
   T overflow = __builtin_add_overflow (x, y, &ret); \
   return (T)(-overflow) | ret;                      \
 }
+#define DEF_SAT_U_ADD_FMT_3_WRAP(T) DEF_SAT_U_ADD_FMT_3(T)
 
 #define DEF_SAT_U_ADD_FMT_4(T)                           \
 T __attribute__((noinline))                              \
@@ -37,6 +40,7 @@ sat_u_add_##T##_fmt_4 (T x, T y)                         \
   T ret;                                                 \
   return __builtin_add_overflow (x, y, &ret) ? -1 : ret; \
 }
+#define DEF_SAT_U_ADD_FMT_4_WRAP(T) DEF_SAT_U_ADD_FMT_4(T)
 
 #define DEF_SAT_U_ADD_FMT_5(T)                                \
 T __attribute__((noinline))                                   \
@@ -45,6 +49,7 @@ sat_u_add_##T##_fmt_5 (T x, T y)                              
\
   T ret;                                                      \
   return __builtin_add_overflow (x, y, &ret) == 0 ? ret : -1; \
 }
+#define DEF_SAT_U_ADD_FMT_5_WRAP(T) DEF_SAT_U_ADD_FMT_5(T)
 
 #define DEF_SAT_U_ADD_FMT_6(T)          \
 T __attribute__((noinline))             \
@@ -52,6 +57,7 @@ sat_u_add_##T##_fmt_6 (T x, T y)        \
 {                                       \
   return (T)(x + y) < x ? -1 : (x + y); \
 }
+#define DEF_SAT_U_ADD_FMT_6_WRAP(T) DEF_SAT_U_ADD_FMT_6(T)
 
 #define DEF_SAT_U_ADD_FMT_7(WT, T)     \
 T __attribute__((noinline))            \
@@ -64,11 +70,17 @@ sat_u_add_##WT##_##T##_fmt_7(T x, T y) \
 #define DEF_SAT_U_ADD_FMT_7_WRAP(WT, T) DEF_SAT_U_ADD_FMT_7(WT, T)
 
 #define RUN_SAT_U_ADD_FMT_1(T, x, y) sat_u_add_##T##_fmt_1(x, y)
+#define RUN_SAT_U_ADD_FMT_1_WRAP(T, x, y) RUN_SAT_U_ADD_FMT_1(T, x, y)
 #define RUN_SAT_U_ADD_FMT_2(T, x, y) sat_u_add_##T##_fmt_2(x, y)
+#define RUN_SAT_U_ADD_FMT_2_WRAP(T, x, y) RUN_SAT_U_ADD_FMT_2(T, x, y)
 #define RUN_SAT_U_ADD_FMT_3(T, x, y) sat_u_add_##T##_fmt_3(x, y)
+#define RUN_SAT_U_ADD_FMT_3_WRAP(T, x, y) RUN_SAT_U_ADD_FMT_3(T, x, y)
 #define RUN_SAT_U_ADD_FMT_4(T, x, y) sat_u_add_##T##_fmt_4(x, y)
+#define RUN_SAT_U_ADD_FMT_4_WRAP(T, x, y) RUN_SAT_U_ADD_FMT_4(T, x, y)
 #define RUN_SAT_U_ADD_FMT_5(T, x, y) sat_u_add_##T##_fmt_5(x, y)
+#define RUN_SAT_U_ADD_FMT_5_WRAP(T, x, y) RUN_SAT_U_ADD_FMT_5(T, x, y)
 #define RUN_SAT_U_ADD_FMT_6(T, x, y) sat_u_add_##T##_fmt_6(x, y)
+#define RUN_SAT_U_ADD_FMT_6_WRAP(T, x, y) RUN_SAT_U_ADD_FMT_6(T, x, y)
 #define RUN_SAT_U_ADD_FMT_7_FROM_U16(T, x, y) \
   sat_u_add_uint16_t_##T##_fmt_7(x, y)
 #define RUN_SAT_U_ADD_FMT_7_FROM_U16_WRAP(T, x, y) \
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_arith_data.h 
b/gcc/testsuite/gcc.target/riscv/sat/sat_arith_data.h
index 9f9f7d0bcd1..f1006889d21 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_arith_data.h
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_arith_data.h
@@ -32,6 +32,11 @@ TEST_UNARY_STRUCT (uint16_t, uint32_t)
 TEST_UNARY_STRUCT (uint16_t, uint64_t)
 TEST_UNARY_STRUCT (uint32_t, uint64_t)
 
+TEST_BINARY_STRUCT (uint8_t, usadd)
+TEST_BINARY_STRUCT (uint16_t, usadd)
+TEST_BINARY_STRUCT (uint32_t, usadd)
+TEST_BINARY_STRUCT (uint64_t, usadd)
+
 TEST_BINARY_STRUCT (int8_t,  ssadd)
 TEST_BINARY_STRUCT (int16_t, ssadd)
 TEST_BINARY_STRUCT (int32_t, ssadd)
@@ -236,6 +241,62 @@ TEST_UNARY_STRUCT_DECL(int32_t, int64_t) \
   {-2147483648, -9223372036854775808ull},
 };
 
+TEST_BINARY_STRUCT_DECL(uint8_t, usadd) TEST_BINARY_DATA(uint8_t, usadd)[] =
+{
+  {      0,     0,      0, },
+  {      0,     1,      1, },
+  {      1,     1,      2, },
+  {      0,   254,    254, },
+  {      1,   254,    255, },
+  {      2,   254,    255, },
+  {      0,   255,    255, },
+  {      1,   255,    255, },
+  {      2,   255,    255, },
+  {    255,   255,    255, },
+};
+
+TEST_BINARY_STRUCT_DECL(uint16_t, usadd) TEST_BINARY_DATA(uint16_t, usadd)[] =
+{
+  {      0,     0,      0, },
+  {      0,     1,      1, },
+  {      1,     1,      2, },
+  {      0, 65534,  65534, },
+  {      1, 65534,  65535, },
+  {      2, 65534,  65535, },
+  {      0, 65535,  65535, },
+  {      1, 65535,  65535, },
+  {      2, 65535,  65535, },
+  {  65535, 65535,  65535, },
+};
+
+TEST_BINARY_STRUCT_DECL(uint32_t, usadd) TEST_BINARY_DATA(uint32_t, usadd)[] =
+{
+  {          0,          0,           0, },
+  {          0,          1,           1, },
+  {          1,          1,           2, },
+  {          0, 4294967294,  4294967294, },
+  {          1, 4294967294,  4294967295, },
+  {          2, 4294967294,  4294967295, },
+  {          0, 4294967295,  4294967295, },
+  {          1, 4294967295,  4294967295, },
+  {          2, 4294967295,  4294967295, },
+  { 4294967295, 4294967295,  4294967295, },
+};
+
+TEST_BINARY_STRUCT_DECL(uint64_t, usadd) TEST_BINARY_DATA(uint64_t, usadd)[] =
+{
+  {                     0,                     0,                      0, },
+  {                     0,                     1,                      1, },
+  {                     1,                     1,                      2, },
+  {                     0, 18446744073709551614u,  18446744073709551614u, },
+  {                     1, 18446744073709551614u,  18446744073709551615u, },
+  {                     2, 18446744073709551614u,  18446744073709551615u, },
+  {                     0, 18446744073709551615u,  18446744073709551615u, },
+  {                     1, 18446744073709551615u,  18446744073709551615u, },
+  {                     2, 18446744073709551615u,  18446744073709551615u, },
+  { 18446744073709551615u, 18446744073709551615u,  18446744073709551615u, },
+};
+
 TEST_BINARY_STRUCT_DECL(int8_t, ssadd) TEST_BINARY_DATA(int8_t, ssadd)[] =
 {
   {   0,    0,    0},
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c
index cb3879d0cde..fe015cc9d1c 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint16_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1
+#define T1               uint16_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_1(T)
+DEF_SAT_U_ADD_FMT_1_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0, 65534,  65534, },
-  {      1, 65534,  65535, },
-  {      2, 65534,  65535, },
-  {      0, 65535,  65535, },
-  {      1, 65535,  65535, },
-  {      2, 65535,  65535, },
-  {  65535, 65535,  65535, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_1_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c
index c9a6080ca3b..8ee65019738 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint32_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1
+#define T1               uint32_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_1(T)
+DEF_SAT_U_ADD_FMT_1_WRAP(T1)
 
-T test_data[][3] = {
-  /*     arg_0,      arg_1,      expect */
-  {          0,          0,           0, },
-  {          0,          1,           1, },
-  {          1,          1,           2, },
-  {          0, 4294967294,  4294967294, },
-  {          1, 4294967294,  4294967295, },
-  {          2, 4294967294,  4294967295, },
-  {          0, 4294967295,  4294967295, },
-  {          1, 4294967295,  4294967295, },
-  {          2, 4294967295,  4294967295, },
-  { 4294967295, 4294967295,  4294967295, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_1_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c
index c19b7e22387..d2c6af0d432 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint64_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1
+#define T1               uint64_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_1(T)
+DEF_SAT_U_ADD_FMT_1_WRAP(T1)
 
-T test_data[][3] = {
-  /*                arg_0,                 arg_1,                 expect */
-  {                     0,                     0,                      0, },
-  {                     0,                     1,                      1, },
-  {                     1,                     1,                      2, },
-  {                     0, 18446744073709551614u,  18446744073709551614u, },
-  {                     1, 18446744073709551614u,  18446744073709551615u, },
-  {                     2, 18446744073709551614u,  18446744073709551615u, },
-  {                     0, 18446744073709551615u,  18446744073709551615u, },
-  {                     1, 18446744073709551615u,  18446744073709551615u, },
-  {                     2, 18446744073709551615u,  18446744073709551615u, },
-  { 18446744073709551615u, 18446744073709551615u,  18446744073709551615u, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_1_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c
index f1972490006..154edde1794 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint8_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1
+#define T1               uint8_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_1(T)
+DEF_SAT_U_ADD_FMT_1_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0,   254,    254, },
-  {      1,   254,    255, },
-  {      2,   254,    255, },
-  {      0,   255,    255, },
-  {      1,   255,    255, },
-  {      2,   255,    255, },
-  {    255,   255,    255, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_1_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c
index 99b5c3a39f0..1fc08bd1eb9 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint16_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2
+#define T1               uint16_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_2(T)
+DEF_SAT_U_ADD_FMT_2_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0, 65534,  65534, },
-  {      1, 65534,  65535, },
-  {      2, 65534,  65535, },
-  {      0, 65535,  65535, },
-  {      1, 65535,  65535, },
-  {      2, 65535,  65535, },
-  {  65535, 65535,  65535, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_2_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c
index 13f59548935..a52a230f629 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint32_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2
+#define T1               uint32_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_2(T)
+DEF_SAT_U_ADD_FMT_2_WRAP(T1)
 
-T test_data[][3] = {
-  /*     arg_0,      arg_1,      expect */
-  {          0,          0,           0, },
-  {          0,          1,           1, },
-  {          1,          1,           2, },
-  {          0, 4294967294,  4294967294, },
-  {          1, 4294967294,  4294967295, },
-  {          2, 4294967294,  4294967295, },
-  {          0, 4294967295,  4294967295, },
-  {          1, 4294967295,  4294967295, },
-  {          2, 4294967295,  4294967295, },
-  { 4294967295, 4294967295,  4294967295, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_2_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c
index cdbea7b1b2c..d05ed332d84 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint64_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2
+#define T1               uint64_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_2(T)
+DEF_SAT_U_ADD_FMT_2_WRAP(T1)
 
-T test_data[][3] = {
-  /*                arg_0,                 arg_1,                 expect */
-  {                     0,                     0,                      0, },
-  {                     0,                     1,                      1, },
-  {                     1,                     1,                      2, },
-  {                     0, 18446744073709551614u,  18446744073709551614u, },
-  {                     1, 18446744073709551614u,  18446744073709551615u, },
-  {                     2, 18446744073709551614u,  18446744073709551615u, },
-  {                     0, 18446744073709551615u,  18446744073709551615u, },
-  {                     1, 18446744073709551615u,  18446744073709551615u, },
-  {                     2, 18446744073709551615u,  18446744073709551615u, },
-  { 18446744073709551615u, 18446744073709551615u,  18446744073709551615u, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_2_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c
index 508531c09d7..fd393353b56 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint8_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2
+#define T1               uint8_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_2(T)
+DEF_SAT_U_ADD_FMT_2_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0,   254,    254, },
-  {      1,   254,    255, },
-  {      2,   254,    255, },
-  {      0,   255,    255, },
-  {      1,   255,    255, },
-  {      2,   255,    255, },
-  {    255,   255,    255, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_2_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c
index bd935dcfd61..7084272442c 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint16_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3
+#define T1               uint16_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_3(T)
+DEF_SAT_U_ADD_FMT_3_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0, 65534,  65534, },
-  {      1, 65534,  65535, },
-  {      2, 65534,  65535, },
-  {      0, 65535,  65535, },
-  {      1, 65535,  65535, },
-  {      2, 65535,  65535, },
-  {  65535, 65535,  65535, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_3_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c
index deccf9a7525..82de67db75a 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint32_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3
+#define T1               uint32_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_3(T)
+DEF_SAT_U_ADD_FMT_3_WRAP(T1)
 
-T test_data[][3] = {
-  /*     arg_0,      arg_1,      expect */
-  {          0,          0,           0, },
-  {          0,          1,           1, },
-  {          1,          1,           2, },
-  {          0, 4294967294,  4294967294, },
-  {          1, 4294967294,  4294967295, },
-  {          2, 4294967294,  4294967295, },
-  {          0, 4294967295,  4294967295, },
-  {          1, 4294967295,  4294967295, },
-  {          2, 4294967295,  4294967295, },
-  { 4294967295, 4294967295,  4294967295, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_3_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c
index 4f9936706a8..d73f3056e76 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint64_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3
+#define T1               uint64_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_3(T)
+DEF_SAT_U_ADD_FMT_3_WRAP(T1)
 
-T test_data[][3] = {
-  /*                arg_0,                 arg_1,                 expect */
-  {                     0,                     0,                      0, },
-  {                     0,                     1,                      1, },
-  {                     1,                     1,                      2, },
-  {                     0, 18446744073709551614u,  18446744073709551614u, },
-  {                     1, 18446744073709551614u,  18446744073709551615u, },
-  {                     2, 18446744073709551614u,  18446744073709551615u, },
-  {                     0, 18446744073709551615u,  18446744073709551615u, },
-  {                     1, 18446744073709551615u,  18446744073709551615u, },
-  {                     2, 18446744073709551615u,  18446744073709551615u, },
-  { 18446744073709551615u, 18446744073709551615u,  18446744073709551615u, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_3_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c
index 670932fa910..f572c440c0e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint8_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3
+#define T1               uint8_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_3(T)
+DEF_SAT_U_ADD_FMT_3_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0,   254,    254, },
-  {      1,   254,    255, },
-  {      2,   254,    255, },
-  {      0,   255,    255, },
-  {      1,   255,    255, },
-  {      2,   255,    255, },
-  {    255,   255,    255, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_3_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c
index 33a595dad51..65c431f8b89 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint16_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4
+#define T1               uint16_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_4(T)
+DEF_SAT_U_ADD_FMT_4_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0, 65534,  65534, },
-  {      1, 65534,  65535, },
-  {      2, 65534,  65535, },
-  {      0, 65535,  65535, },
-  {      1, 65535,  65535, },
-  {      2, 65535,  65535, },
-  {  65535, 65535,  65535, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_4_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c
index 8a5b7c10600..8a73fcde64e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint32_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4
+#define T1               uint32_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_4(T)
+DEF_SAT_U_ADD_FMT_4_WRAP(T1)
 
-T test_data[][3] = {
-  /*     arg_0,      arg_1,      expect */
-  {          0,          0,           0, },
-  {          0,          1,           1, },
-  {          1,          1,           2, },
-  {          0, 4294967294,  4294967294, },
-  {          1, 4294967294,  4294967295, },
-  {          2, 4294967294,  4294967295, },
-  {          0, 4294967295,  4294967295, },
-  {          1, 4294967295,  4294967295, },
-  {          2, 4294967295,  4294967295, },
-  { 4294967295, 4294967295,  4294967295, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_4_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c
index fa20aae1d0b..0903e107955 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint64_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4
+#define T1               uint64_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_4(T)
+DEF_SAT_U_ADD_FMT_4_WRAP(T1)
 
-T test_data[][3] = {
-  /*                arg_0,                 arg_1,                 expect */
-  {                     0,                     0,                      0, },
-  {                     0,                     1,                      1, },
-  {                     1,                     1,                      2, },
-  {                     0, 18446744073709551614u,  18446744073709551614u, },
-  {                     1, 18446744073709551614u,  18446744073709551615u, },
-  {                     2, 18446744073709551614u,  18446744073709551615u, },
-  {                     0, 18446744073709551615u,  18446744073709551615u, },
-  {                     1, 18446744073709551615u,  18446744073709551615u, },
-  {                     2, 18446744073709551615u,  18446744073709551615u, },
-  { 18446744073709551615u, 18446744073709551615u,  18446744073709551615u, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_4_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c
index 083d6e59a06..ffdd390efd6 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint8_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4
+#define T1               uint8_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_4(T)
+DEF_SAT_U_ADD_FMT_4_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0,   254,    254, },
-  {      1,   254,    255, },
-  {      2,   254,    255, },
-  {      0,   255,    255, },
-  {      1,   255,    255, },
-  {      2,   255,    255, },
-  {    255,   255,    255, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_4_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c
index a1d5d70b4ab..72ccd2f776a 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint16_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5
+#define T1               uint16_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_5(T)
+DEF_SAT_U_ADD_FMT_5_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0, 65534,  65534, },
-  {      1, 65534,  65535, },
-  {      2, 65534,  65535, },
-  {      0, 65535,  65535, },
-  {      1, 65535,  65535, },
-  {      2, 65535,  65535, },
-  {  65535, 65535,  65535, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_5_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c
index 7608e71dd80..34d1a4ef549 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint32_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5
+#define T1               uint32_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_5(T)
+DEF_SAT_U_ADD_FMT_5_WRAP(T1)
 
-T test_data[][3] = {
-  /*     arg_0,      arg_1,      expect */
-  {          0,          0,           0, },
-  {          0,          1,           1, },
-  {          1,          1,           2, },
-  {          0, 4294967294,  4294967294, },
-  {          1, 4294967294,  4294967295, },
-  {          2, 4294967294,  4294967295, },
-  {          0, 4294967295,  4294967295, },
-  {          1, 4294967295,  4294967295, },
-  {          2, 4294967295,  4294967295, },
-  { 4294967295, 4294967295,  4294967295, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_5_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c
index 496ab58150b..d502a58a680 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint64_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5
+#define T1               uint64_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_5(T)
+DEF_SAT_U_ADD_FMT_5_WRAP(T1)
 
-T test_data[][3] = {
-  /*                arg_0,                 arg_1,                 expect */
-  {                     0,                     0,                      0, },
-  {                     0,                     1,                      1, },
-  {                     1,                     1,                      2, },
-  {                     0, 18446744073709551614u,  18446744073709551614u, },
-  {                     1, 18446744073709551614u,  18446744073709551615u, },
-  {                     2, 18446744073709551614u,  18446744073709551615u, },
-  {                     0, 18446744073709551615u,  18446744073709551615u, },
-  {                     1, 18446744073709551615u,  18446744073709551615u, },
-  {                     2, 18446744073709551615u,  18446744073709551615u, },
-  { 18446744073709551615u, 18446744073709551615u,  18446744073709551615u, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_5_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c
index 936028cbe8b..f6113763b88 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint8_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5
+#define T1               uint8_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_5(T)
+DEF_SAT_U_ADD_FMT_5_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0,   254,    254, },
-  {      1,   254,    255, },
-  {      2,   254,    255, },
-  {      0,   255,    255, },
-  {      1,   255,    255, },
-  {      2,   255,    255, },
-  {    255,   255,    255, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_5_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c
index d304288d8b6..5ef250d1966 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint16_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6
+#define T1               uint16_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_6(T)
+DEF_SAT_U_ADD_FMT_6_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0, 65534,  65534, },
-  {      1, 65534,  65535, },
-  {      2, 65534,  65535, },
-  {      0, 65535,  65535, },
-  {      1, 65535,  65535, },
-  {      2, 65535,  65535, },
-  {  65535, 65535,  65535, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_6_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c
index 1a1ea598133..ba95dbf0545 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint32_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6
+#define T1               uint32_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_6(T)
+DEF_SAT_U_ADD_FMT_6_WRAP(T1)
 
-T test_data[][3] = {
-  /*     arg_0,      arg_1,      expect */
-  {          0,          0,           0, },
-  {          0,          1,           1, },
-  {          1,          1,           2, },
-  {          0, 4294967294,  4294967294, },
-  {          1, 4294967294,  4294967295, },
-  {          2, 4294967294,  4294967295, },
-  {          0, 4294967295,  4294967295, },
-  {          1, 4294967295,  4294967295, },
-  {          2, 4294967295,  4294967295, },
-  { 4294967295, 4294967295,  4294967295, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_6_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c
index dc977d5b3a5..d0e9dfda28b 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint64_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6
+#define T1               uint64_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_6(T)
+DEF_SAT_U_ADD_FMT_6_WRAP(T1)
 
-T test_data[][3] = {
-  /*                arg_0,                 arg_1,                 expect */
-  {                     0,                     0,                      0, },
-  {                     0,                     1,                      1, },
-  {                     1,                     1,                      2, },
-  {                     0, 18446744073709551614u,  18446744073709551614u, },
-  {                     1, 18446744073709551614u,  18446744073709551615u, },
-  {                     2, 18446744073709551614u,  18446744073709551615u, },
-  {                     0, 18446744073709551615u,  18446744073709551615u, },
-  {                     1, 18446744073709551615u,  18446744073709551615u, },
-  {                     2, 18446744073709551615u,  18446744073709551615u, },
-  { 18446744073709551615u, 18446744073709551615u,  18446744073709551615u, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_6_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c
index 8bc204ec74e..b3d00df16d7 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c
@@ -2,24 +2,14 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint8_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6
+#define T1               uint8_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_6(T)
+DEF_SAT_U_ADD_FMT_6_WRAP(T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0,   254,    254, },
-  {      1,   254,    255, },
-  {      2,   254,    255, },
-  {      0,   255,    255, },
-  {      1,   255,    255, },
-  {      2,   255,    255, },
-  {    255,   255,    255, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_6_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u32.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u32.c
index 25dc1d1bab3..26c27783ae0 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u32.c
@@ -2,25 +2,15 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint16_t
-#define WT             uint32_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_7_FROM_U32_WRAP
+#define T1               uint16_t
+#define T2               uint32_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_7_WRAP(WT, T)
+DEF_SAT_U_ADD_FMT_7_WRAP(T2, T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0, 65534,  65534, },
-  {      1, 65534,  65535, },
-  {      2, 65534,  65535, },
-  {      0, 65535,  65535, },
-  {      1, 65535,  65535, },
-  {      2, 65535,  65535, },
-  {  65535, 65535,  65535, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_7_FROM_U32_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u64.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u64.c
index 565b108b5a3..1f3e2f3ff95 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u64.c
@@ -2,25 +2,15 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint16_t
-#define WT             uint64_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_7_FROM_U64_WRAP
+#define T1               uint16_t
+#define T2               uint64_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_7_WRAP(WT, T)
+DEF_SAT_U_ADD_FMT_7_WRAP(T2, T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0, 65534,  65534, },
-  {      1, 65534,  65535, },
-  {      2, 65534,  65535, },
-  {      0, 65535,  65535, },
-  {      1, 65535,  65535, },
-  {      2, 65535,  65535, },
-  {  65535, 65535,  65535, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_7_FROM_U64_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u32-from-u64.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u32-from-u64.c
index 6ff34fd2235..558f6ce155d 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u32-from-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u32-from-u64.c
@@ -2,25 +2,15 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint32_t
-#define WT             uint64_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_7_FROM_U64_WRAP
+#define T1               uint32_t
+#define T2               uint64_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_7_WRAP(WT, T)
+DEF_SAT_U_ADD_FMT_7_WRAP(T2, T1)
 
-T test_data[][3] = {
-  /*     arg_0,      arg_1,      expect */
-  {          0,          0,           0, },
-  {          0,          1,           1, },
-  {          1,          1,           2, },
-  {          0, 4294967294,  4294967294, },
-  {          1, 4294967294,  4294967295, },
-  {          2, 4294967294,  4294967295, },
-  {          0, 4294967295,  4294967295, },
-  {          1, 4294967295,  4294967295, },
-  {          2, 4294967295,  4294967295, },
-  { 4294967295, 4294967295,  4294967295, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_7_FROM_U64_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u16.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u16.c
index 9e6e70aa6b3..ec5ac70bd84 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u16.c
@@ -2,25 +2,15 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint8_t
-#define WT             uint16_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_7_FROM_U16_WRAP
+#define T1               uint8_t
+#define T2               uint16_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_7_WRAP(WT, T)
+DEF_SAT_U_ADD_FMT_7_WRAP(T2, T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0,   254,    254, },
-  {      1,   254,    255, },
-  {      2,   254,    255, },
-  {      0,   255,    255, },
-  {      1,   255,    255, },
-  {      2,   255,    255, },
-  {    255,   255,    255, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_7_FROM_U16_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u32.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u32.c
index a1134edfd28..aa94eef6c32 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u32.c
@@ -2,25 +2,15 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint8_t
-#define WT             uint32_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_7_FROM_U32_WRAP
+#define T1               uint8_t
+#define T2               uint32_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_7_WRAP(WT, T)
+DEF_SAT_U_ADD_FMT_7_WRAP(T2, T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0,   254,    254, },
-  {      1,   254,    255, },
-  {      2,   254,    255, },
-  {      0,   255,    255, },
-  {      1,   255,    255, },
-  {      2,   255,    255, },
-  {    255,   255,    255, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_7_FROM_U32_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u64.c 
b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u64.c
index ef9f7aa25b0..6ac38bae0b2 100644
--- a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u64.c
@@ -2,25 +2,15 @@
 /* { dg-additional-options "-std=c99" } */
 
 #include "sat_arith.h"
+#include "sat_arith_data.h"
 
-#define T              uint8_t
-#define WT             uint64_t
-#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_7_FROM_U64_WRAP
+#define T1               uint8_t
+#define T2               uint64_t
+#define DATA             TEST_BINARY_DATA_WRAP(T1, usadd)
+#define T                TEST_BINARY_STRUCT_DECL(T1, usadd)
 
-DEF_SAT_U_ADD_FMT_7_WRAP(WT, T)
+DEF_SAT_U_ADD_FMT_7_WRAP(T2, T1)
 
-T test_data[][3] = {
-  /* arg_0, arg_1, expect */
-  {      0,     0,      0, },
-  {      0,     1,      1, },
-  {      1,     1,      2, },
-  {      0,   254,    254, },
-  {      1,   254,    255, },
-  {      2,   254,    255, },
-  {      0,   255,    255, },
-  {      1,   255,    255, },
-  {      2,   255,    255, },
-  {    255,   255,    255, },
-};
+#define RUN_BINARY(x, y) RUN_SAT_U_ADD_FMT_7_FROM_U64_WRAP(T1, x, y)
 
-#include "scalar_sat_binary.h"
+#include "scalar_sat_binary_run_xxx.h"
-- 
2.43.0

Reply via email to