> > +  DEF_VX_BINARY_CASE_2_WRAP(T, SAT_U_SUB_FUNC(T), sat_add) \

> Shouldn't that be sat_sub here?

Oh, Yes, should be sat_sub, but happen to work for test, let me update it in 
v2. 

Pan

-----Original Message-----
From: Robin Dapp <rdapp....@gmail.com> 
Sent: Friday, June 27, 2025 2:37 PM
To: Li, Pan2 <pan2...@intel.com>; gcc-patches@gcc.gnu.org
Cc: juzhe.zh...@rivai.ai; kito.ch...@gmail.com; jeffreya...@gmail.com; 
rdapp....@gmail.com; Chen, Ken <ken.c...@intel.com>; Liu, Hongtao 
<hongtao....@intel.com>; Robin Dapp <rdapp....@gmail.com>
Subject: Re: [PATCH v1 2/4] RISC-V: Add test for vec_duplicate + vssubu.vv 
combine case 0 with GR2VR cost 0, 2 and 15

Hi Pan,

> diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary.h 
> b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary.h
> index 2932e189186..0af8b969f47 100644
> --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary.h
> +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary.h
> @@ -282,9 +282,24 @@ DEF_SAT_U_ADD(uint16_t)
>  DEF_SAT_U_ADD(uint32_t)
>  DEF_SAT_U_ADD(uint64_t)
>  
> +#define DEF_SAT_U_SUB(T)           \
> +T                                  \
> +test_##T##_sat_sub (T a, T b)      \
> +{                                  \
> +  return (a - b) & (-(T)(a >= b)); \
> +}
> +
> +DEF_SAT_U_SUB(uint8_t)
> +DEF_SAT_U_SUB(uint16_t)
> +DEF_SAT_U_SUB(uint32_t)
> +DEF_SAT_U_SUB(uint64_t)
> +
>  #define SAT_U_ADD_FUNC(T) test_##T##_sat_add
>  #define SAT_U_ADD_FUNC_WRAP(T) SAT_U_ADD_FUNC(T)
>  
> +#define SAT_U_SUB_FUNC(T) test_##T##_sat_sub
> +#define SAT_U_SUB_FUNC_WRAP(T) SAT_U_SUB_FUNC(T)
> +
>  #define TEST_BINARY_VX_SIGNED_0(T)                      \
>    DEF_VX_BINARY_CASE_0_WRAP(T, +, add)                  \
>    DEF_VX_BINARY_CASE_0_WRAP(T, -, sub)                  \
> @@ -313,6 +328,7 @@ DEF_SAT_U_ADD(uint64_t)
>    DEF_VX_BINARY_CASE_2_WRAP(T, MAX_FUNC_1_WARP(T), max)    \
>    DEF_VX_BINARY_CASE_2_WRAP(T, MIN_FUNC_0_WARP(T), min)    \
>    DEF_VX_BINARY_CASE_2_WRAP(T, MIN_FUNC_1_WARP(T), min)    \
> -  DEF_VX_BINARY_CASE_2_WRAP(T, SAT_U_ADD_FUNC(T), sat_add)
> +  DEF_VX_BINARY_CASE_2_WRAP(T, SAT_U_ADD_FUNC(T), sat_add) \
> +  DEF_VX_BINARY_CASE_2_WRAP(T, SAT_U_SUB_FUNC(T), sat_add) \

Shouldn't that be sat_sub here?

-- 
Regards
 Robin

Reply via email to