https://gcc.gnu.org/g:83477c3f6650429a7cdcb1b6da950c421aa2f77d

commit r16-707-g83477c3f6650429a7cdcb1b6da950c421aa2f77d
Author: Pan Li <pan2...@intel.com>
Date:   Fri May 16 15:34:51 2025 +0800

    RISC-V: Avoid scalar unsigned SAT_ADD test data duplication
    
    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>

Diff:
---
 gcc/testsuite/gcc.target/riscv/sat/sat_arith.h     | 12 +++++
 .../gcc.target/riscv/sat/sat_arith_data.h          | 61 ++++++++++++++++++++++
 .../gcc.target/riscv/sat/sat_u_add-run-1-u16.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-1-u32.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-1-u64.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-1-u8.c      | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-2-u16.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-2-u32.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-2-u64.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-2-u8.c      | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-3-u16.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-3-u32.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-3-u64.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-3-u8.c      | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-4-u16.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-4-u32.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-4-u64.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-4-u8.c      | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-5-u16.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-5-u32.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-5-u64.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-5-u8.c      | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-6-u16.c     | 24 +++------
 .../gcc.target/riscv/sat/sat_u_add-run-6-u32.c     | 24 +++------
 .../gcc.target/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 2225d30d77e2..6e97cae96e6e 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 9f9f7d0bcd19..f1006889d212 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 cb3879d0cded..fe015cc9d1ca 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 c9a6080ca3b6..8ee650197383 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 c19b7e22387d..d2c6af0d432d 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 f19724900069..154edde17943 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 99b5c3a39f04..1fc08bd1eb96 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 13f595489352..a52a230f629b 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 cdbea7b1b2ca..d05ed332d841 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 508531c09d73..fd393353b569 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 bd935dcfd610..7084272442c6 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 deccf9a75250..82de67db75a1 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 4f9936706a88..d73f3056e760 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 670932fa9101..f572c440c0e5 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 33a595dad51b..65c431f8b893 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 8a5b7c106008..8a73fcde64e5 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 fa20aae1d0be..0903e107955b 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 083d6e59a06f..ffdd390efd6b 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 a1d5d70b4ab5..72ccd2f776a7 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 7608e71dd80b..34d1a4ef5491 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 496ab58150b8..d502a58a6809 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 936028cbe8bb..f6113763b889 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 d304288d8b61..5ef250d19663 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 1a1ea5981335..ba95dbf0545e 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 dc977d5b3a50..d0e9dfda28b9 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 8bc204ec74e4..b3d00df16d73 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 25dc1d1bab36..26c27783ae04 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 565b108b5a36..1f3e2f3ff957 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 6ff34fd2235b..558f6ce155d1 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 9e6e70aa6b36..ec5ac70bd84a 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 a1134edfd284..aa94eef6c329 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 ef9f7aa25b0c..6ac38bae0b2b 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"

Reply via email to