aboutsummaryrefslogtreecommitdiff
path: root/benchmarks/vec-memcpy/vec-memcpy_main.c
diff options
context:
space:
mode:
authorJerry Zhao <jerryz123@berkeley.edu>2023-02-10 10:54:32 -0800
committerJerry Zhao <jerryz123@berkeley.edu>2023-05-22 14:54:40 -0700
commitcdd1b95d87fafeb5f237ddcbefeae693e05a1b2e (patch)
tree880dec721c82aba1ec335ae2e9281b9bec5c8efd /benchmarks/vec-memcpy/vec-memcpy_main.c
parente9fa54f4e771f4471d3af36397ae56beb215cfb8 (diff)
downloadriscv-tests-cdd1b95d87fafeb5f237ddcbefeae693e05a1b2e.zip
riscv-tests-cdd1b95d87fafeb5f237ddcbefeae693e05a1b2e.tar.gz
riscv-tests-cdd1b95d87fafeb5f237ddcbefeae693e05a1b2e.tar.bz2
Add vec-memcpy benchmark
Diffstat (limited to 'benchmarks/vec-memcpy/vec-memcpy_main.c')
-rw-r--r--benchmarks/vec-memcpy/vec-memcpy_main.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/benchmarks/vec-memcpy/vec-memcpy_main.c b/benchmarks/vec-memcpy/vec-memcpy_main.c
new file mode 100644
index 0000000..fd1b796
--- /dev/null
+++ b/benchmarks/vec-memcpy/vec-memcpy_main.c
@@ -0,0 +1,41 @@
+// See LICENSE for license details.
+
+//**************************************************************************
+// Memcpy benchmark
+//--------------------------------------------------------------------------
+//
+// This benchmark tests the memcpy implementation in syscalls.c.
+// The input data (and reference data) should be generated using
+// the memcpy_gendata.pl perl script and dumped to a file named
+// dataset1.h.
+
+#include <string.h>
+#include "util.h"
+
+//--------------------------------------------------------------------------
+// Input/Reference Data
+
+#include "dataset1.h"
+
+//--------------------------------------------------------------------------
+// Main
+
+void *vec_memcpy(void*, const void*, size_t);
+
+int main( int argc, char* argv[] )
+{
+ int results_data[DATA_SIZE];
+
+#if PREALLOCATE
+ // If needed we preallocate everything in the caches
+ vec_memcpy(results_data, input_data, sizeof(int) * DATA_SIZE);
+#endif
+
+ // Do the riscv-linux memcpy
+ setStats(1);
+ vec_memcpy(results_data, input_data, sizeof(int) * DATA_SIZE); //, DATA_SIZE * sizeof(int));
+ setStats(0);
+
+ // Check the results
+ return verify( DATA_SIZE, results_data, input_data );
+}