commit high-performance mm (scalar and vector versions)
[riscv-tests.git] / benchmarks / common / util.h
index 1f0c73cd44a0c29f24b6f03a241456d57430ba72..6c4f963f01dc79c961f6d43f1d058450c5c19d02 100644 (file)
 // Set SET_STATS to 1 if you want to carve out the piece that actually
 // does the computation.
 
-#ifndef SET_STATS
-#define SET_STATS 0
-#endif
-
 #if HOST_DEBUG
 #include <stdio.h>
 static void setStats(int enable) {}
@@ -35,6 +31,10 @@ static void setStats(int enable) {}
 extern void setStats(int enable);
 #endif
 
+extern int have_vec;
+
+#define static_assert(cond) switch(0) { case 0: case !!(long)(cond): ; }
+
 static void printArray(const char name[], int n, const int arr[])
 {
 #if HOST_DEBUG
@@ -57,7 +57,7 @@ static void printDoubleArray(const char name[], int n, const double arr[])
 #endif
 }
 
-static int verify(int n, const int test[], const int verify[])
+static int verify(int n, const volatile int* test, const int* verify)
 {
   int i;
   // Unrolled for faster verification
@@ -73,7 +73,7 @@ static int verify(int n, const int test[], const int verify[])
   return 0;
 }
 
-static int verifyDouble(int n, const double test[], const double verify[])
+static int verifyDouble(int n, const volatile double* test, const double* verify)
 {
   int i;
   // Unrolled for faster verification
@@ -89,11 +89,7 @@ static int verifyDouble(int n, const double test[], const double verify[])
   return 0;
 }
 
-#ifndef ncores
-#define ncores 1
-#endif
-
-static void __attribute__((noinline)) barrier()
+static void __attribute__((noinline)) barrier(int ncores)
 {
   static volatile int sense;
   static volatile int count;