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];
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");