Mark RV32 tests as such
[riscv-tests.git] / benchmarks / mm / mm_main.c
index 1f4e28b30b200adcef80862514af2426bcba1d9a..133b5a2d73a17434e8aefef7d8e4ebf4ba8d402e 100644 (file)
@@ -6,21 +6,17 @@
 #include <stdio.h>
 #include "util.h"
 
+#pragma GCC optimize ("unroll-loops")
+
 void thread_entry(int cid, int nc)
 {
   const int R = 8;
   int m, n, p;
   uint64_t s = 0xdeadbeefU;
   
-  if (have_vec) {
-    m = HCBM;
-    n = HCBN;
-    p = HCBK;
-  } else {
-    m = CBM;
-    n = CBN;
-    p = CBK;
-  }
+  m = CBM;
+  n = CBN;
+  p = CBK;
 
   t a[m*p];
   t b[p*n];
@@ -35,24 +31,13 @@ void thread_entry(int cid, int nc)
   memset(c, 0, m*n*sizeof(c[0]));
 
   size_t instret, cycles;
-  if (have_vec) {
-    for (int i = 0; i < R; i++)
-    {
-      instret = -rdinstret();
-      cycles = -rdcycle();
-      mm_rb_hwacha(m, n, p, a, p, b, n, c, n);
-      instret += rdinstret();
-      cycles += rdcycle();
-    }
-  } else {
-    for (int i = 0; i < R; i++)
-    {
-      instret = -rdinstret();
-      cycles = -rdcycle();
-      mm(m, n, p, a, p, b, n, c, n);
-      instret += rdinstret();
-      cycles += rdcycle();
-    }
+  for (int i = 0; i < R; i++)
+  {
+    instret = -read_csr(minstret);
+    cycles = -read_csr(mcycle);
+    mm(m, n, p, a, p, b, n, c, n);
+    instret += read_csr(minstret);
+    cycles += read_csr(mcycle);
   }
 
   asm volatile("fence");