37 lines
		
	
	
		
			761 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			761 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
/* 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
 |