mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-15 23:18:48 +00:00
Add benchmarks from riscv-tests
This commit is contained in:
48
bench/vvadd.c
Normal file
48
bench/vvadd.c
Normal file
@@ -0,0 +1,48 @@
|
||||
//**************************************************************************
|
||||
// Vector-vector add benchmark
|
||||
//--------------------------------------------------------------------------
|
||||
//
|
||||
// This benchmark uses adds to vectors and writes the results to a
|
||||
// third vector.
|
||||
|
||||
int input1_vvadd[1000];
|
||||
int input2_vvadd[1000];
|
||||
int results_vvadd[1000];
|
||||
|
||||
void vvadd_init(int nonce) {
|
||||
int i;
|
||||
int x = nonce;
|
||||
int y = nonce;
|
||||
|
||||
for (i = 0; i < 1000; i++) {
|
||||
x = (x * 97 + 17) % 1009;
|
||||
y = (x * 17 + 23) % 1007;
|
||||
input1_vvadd[i] = x;
|
||||
input2_vvadd[i] = y;
|
||||
}
|
||||
}
|
||||
|
||||
void vvadd(int n, int a[1000], int b[1000], int c[1000]) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
c[i] = a[i] + b[i];
|
||||
}
|
||||
|
||||
int verify_vvadd(int n, int* test) {
|
||||
int i;
|
||||
int result = 0;
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
int v = test[i];
|
||||
result += v;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
int run_vvadd(int dummy_0, int nonce) {
|
||||
vvadd_init(nonce);
|
||||
vvadd(1000, input1_vvadd, input2_vvadd, results_vvadd);
|
||||
return verify_vvadd(1000, results_vvadd);
|
||||
}
|
||||
Reference in New Issue
Block a user