Skip to content

checkasm: fix RISC-V vector clobbering

Bogdan Gligorijević requested to merge BogdanW3/dav1d:checkasm_rvv into master

The code previously only destroyed the values in the first 8 registers.

I also changed which value is written because when working with vectors, a mostly-zero value can probe for more errors sometimes and show missing loads more clearly as most of the vector will be zeroed out and the bottom few elements wrong.

In relation to that, I want to mention a real-life example which showcases the strange claim that a mostly-zero value can probe for more errors: I had accidentally sometimes skipped loading value for a cdef_filter's fill(), which is meant to fill a matrix with INT16_MIN, and the function still passed checkasm and only failed on testdata tests with the old value, even though my code had used precisely v0 which does get clobbered.

Edited by Bogdan Gligorijević

Merge request reports