| /* SPDX-License-Identifier: GPL-2.0-or-later | |
| * | |
| * Test basic matrix multiply assist (MMA) functionality if available. | |
| * | |
| * Copyright 2020, Alistair Popple, IBM Corp. | |
| */ | |
| .global test_mma | |
| test_mma: | |
| /* Load accumulator via VSX registers from image passed in r3 */ | |
| lxvh8x 4,0,3 | |
| lxvh8x 5,0,4 | |
| /* Clear and prime the accumulator (xxsetaccz) */ | |
| .long 0x7c030162 | |
| /* Prime the accumulator with MMA VSX move to accumulator | |
| * X-form (xxmtacc) (not needed due to above zeroing) */ | |
| //.long 0x7c010162 | |
| /* xvi16ger2s */ | |
| .long 0xec042958 | |
| /* Deprime the accumulator - xxmfacc 0 */ | |
| .long 0x7c000162 | |
| /* Store result in image passed in r5 */ | |
| stxvw4x 0,0,5 | |
| addi 5,5,16 | |
| stxvw4x 1,0,5 | |
| addi 5,5,16 | |
| stxvw4x 2,0,5 | |
| addi 5,5,16 | |
| stxvw4x 3,0,5 | |
| addi 5,5,16 | |
| blr |