Use template for vadd. Change-Id: If079345dc0732f0a474b1112a81cfa445f963a2c
diff --git a/softrvv/tests/CMakeLists.txt b/softrvv/tests/CMakeLists.txt index 565b508..b102a7d 100644 --- a/softrvv/tests/CMakeLists.txt +++ b/softrvv/tests/CMakeLists.txt
@@ -12,17 +12,6 @@ vec_cc_test( NAME - softrvv_vadd - SRCS - softrvv_vadd_test.cpp - DEPS - softrvv - LINKOPTS - -Xlinker --defsym=__itcm_length__=128K -) - -vec_cc_test( - NAME softrvv_vsub SRCS softrvv_vsub_test.cpp @@ -111,6 +100,15 @@ softrvv_vec_cc_generated_test( NAME + vadd + TEMPLATE + softrvv_vadd_test.tpl.cpp + LINKOPTS + -Xlinker --defsym=__itcm_length__=128K +) + +softrvv_vec_cc_generated_test( + NAME vmul TEMPLATE softrvv_vmul_test.tpl.cpp
diff --git a/softrvv/tests/softrvv_vadd_test.cpp b/softrvv/tests/softrvv_vadd_test.cpp deleted file mode 100644 index 8a0c09e..0000000 --- a/softrvv/tests/softrvv_vadd_test.cpp +++ /dev/null
@@ -1,45 +0,0 @@ -#include <riscv_vector.h> -#include <springbok.h> -#include <stdio.h> -#include <stdlib.h> - -#include "pw_unit_test/framework.h" -#include "softrvv.h" - -namespace softrvv_vadd_test { -namespace { - -uint32_t src1[] = {1, 2, 3, 4, 5}; -uint32_t src2[] = {1, 2, 3, 4, 5}; -uint32_t rs1 = 3; -uint32_t imm = 2; -const uint32_t AVL_CONST = sizeof(src1)/sizeof(src1[0]); -uint32_t dest[AVL_CONST]; - - -uint32_t ref_vv[] = {2, 4, 6, 8, 10}; -uint32_t ref_vx[] = {4, 5, 6, 7, 8}; -uint32_t ref_vi[] = {3, 4, 5, 6, 7}; - -class SoftRvvVaddTest : public ::testing::Test { - protected: - void SetUp() override { memset(dest, 0, sizeof(dest)); } -}; - -TEST_F(SoftRvvVaddTest, VV) { - softrvv::vadd_vv<uint32_t>(dest, src1, src2, AVL_CONST); - ASSERT_EQ(memcmp(dest, ref_vv, sizeof(dest)), 0); -} - -TEST_F(SoftRvvVaddTest, VX) { - softrvv::vadd_vx<uint32_t>(dest, src1, &rs1, AVL_CONST); - ASSERT_EQ(memcmp(dest, ref_vx, sizeof(dest)), 0); -} - -TEST_F(SoftRvvVaddTest, VI) { - softrvv::vadd_vi<uint32_t>(dest, src1, imm, AVL_CONST); - ASSERT_EQ(memcmp(dest, ref_vi, sizeof(dest)), 0); -} - -} // namespace -} // namespace softrvv_vadd_test
diff --git a/softrvv/tests/templates/softrvv_vadd_test.tpl.cpp b/softrvv/tests/templates/softrvv_vadd_test.tpl.cpp new file mode 100644 index 0000000..a5a6910 --- /dev/null +++ b/softrvv/tests/templates/softrvv_vadd_test.tpl.cpp
@@ -0,0 +1,9 @@ +<%inherit file="base.tpl.cpp"/>\ +<%namespace name="tests" file="opivv_opivx_test.tpl.cpp"/> +<% +import numpy as np +src1, src2, rs1 = parent.module.get_test_inputs(np.int32, N=5) +ref_vv = src1 + src2 +ref_vx = src1 + rs1 +%>\ +${tests.test_opivv_opivx("int32_t", op, src1, src2, rs1, ref_vv, ref_vx)}