From: Pan Li <[email protected]>
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 <[email protected]>
---
.../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