X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=benchmarks%2Fmm%2Fmm_main.c;h=133b5a2d73a17434e8aefef7d8e4ebf4ba8d402e;hb=6a64f119fbda35f415d0c8238909aba70acc1654;hp=1f4e28b30b200adcef80862514af2426bcba1d9a;hpb=211e4fcdc93654fc810cff0b6864fdc7097919dc;p=riscv-tests.git diff --git a/benchmarks/mm/mm_main.c b/benchmarks/mm/mm_main.c index 1f4e28b..133b5a2 100644 --- a/benchmarks/mm/mm_main.c +++ b/benchmarks/mm/mm_main.c @@ -6,21 +6,17 @@ #include #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");