Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/powerpc: Fix matrix multiply assist test

The ISA states: "when ACC[i] contains defined data, the contents of VSRs
4×i to 4×i+3 are undefined until either a VSX Move From ACC instruction
is used to copy the contents of ACC[i] to VSRs 4×i to 4×i+3 or some other
instruction directly writes to one of these VSRs." We aren't doing this.

This test only works on Power10 because the hardware implementation
happens to map ACC0 to VSRs 0-3, but will fail on any other implementation
that doesn't do this. So add xxmfacc between writing to the accumulator
and accessing the VSRs.

Fixes: 3527e1ab9a79 ("selftests/powerpc: Add matrix multiply assist (MMA) test")
Signed-off-by: Rashmica Gupta <rashmica@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220617043935.428083-1-rashmica@linux.ibm.com

authored by

Rashmica Gupta and committed by
Michael Ellerman
cd1e6493 e4787e71

+3
+3
tools/testing/selftests/powerpc/math/mma.S
··· 20 20 /* xvi16ger2s */ 21 21 .long 0xec042958 22 22 23 + /* Deprime the accumulator - xxmfacc 0 */ 24 + .long 0x7c000162 25 + 23 26 /* Store result in image passed in r5 */ 24 27 stxvw4x 0,0,5 25 28 addi 5,5,16