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

To avoid generating the vmadd.vx code.

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/rvv/autovec/vx_vf/vx_ternary.h: Adjust the
        vmacc.vx to avoid generating vmadd.

Signed-off-by: Pan Li <pan2...@intel.com>
---
 .../gcc.target/riscv/rvv/autovec/vx_vf/vx_ternary.h       | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_ternary.h 
b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_ternary.h
index 2325c7b8632..a03bd6196bd 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_ternary.h
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_ternary.h
@@ -12,12 +12,16 @@ typedef signed __int128 int128_t;
 #endif
 
 #define DEF_VX_TERNARY_CASE_0(T, OP_1, OP_2, NAME)                        \
-void                                                                      \
+T                                                                         \
 test_vx_ternary_##NAME##_##T##_case_0 (T * restrict vd, T * restrict vs2, \
                                        T rs1, unsigned n)                 \
 {                                                                         \
-  for (unsigned i = 0; i < n; i++)                                        \
+  unsigned i;                                                             \
+                                                                          \
+  for (i = 0; i < n; i++)                                                 \
     vd[i] = vd[i] OP_2 vs2[i] OP_1 rs1;                                   \
+                                                                          \
+  return vs2[i - 1];                                                      \
 }
 #define DEF_VX_TERNARY_CASE_0_WRAP(T, OP_1, OP_2, NAME) \
   DEF_VX_TERNARY_CASE_0(T, OP_1, OP_2, NAME)
-- 
2.43.0

Reply via email to