[RISC-V] Possible performance improvement in matrix multiply function in Coremark
Open
backend:RISC-V
loopoptim
missed-optimization
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
In function in Coremark:
```
#define bit_extract(x,from,to) (((x)>>(from)) & (~(0xffffffff << (to))))
void matrix_mul_matrix_bitextract(ee_u32 N, MATRES *C, MATDAT *A, MATDAT *B) {
ee_u32 i,j,k;
for (i=0; i
Contributor guide
Research direction
Start with the Coremark matrix_mul_matrix_bitextract function and reproduce its LLVM output with -O3 -march=rv32imbc -mabi=ilp32. Compare the generated inner loop with GCC's assembly, investigate the loop-termination and bit-extraction differences, and verify any improvement against Coremark correctness and performance.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- compilers, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100