mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
535fe28ef4
INTEL ADVANCED MATRIX EXTENSIONS (AMX). AMX is a new programming paradigm, it has a set of 2-dimensional registers (TILES) representing sub-arrays from a larger 2-dimensional memory image and operate on TILES. These intrinsics use direct TMM register number as its params. Spec can be found in Chapter 3 here https://software.intel.com/content/www/us/en/develop/download/intel-architecture-instruction-set-extensions-programming-reference.html Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D83111
25 lines
901 B
LLVM
25 lines
901 B
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+amx-int8 -verify-machineinstrs | FileCheck %s
|
|
|
|
define void @test_amx() {
|
|
; CHECK-LABEL: test_amx:
|
|
; CHECK: # %bb.0:
|
|
call void @llvm.x86.tdpbssd(i8 3, i8 4, i8 7)
|
|
; CHECK-NEXT: tdpbssd %tmm7, %tmm4, %tmm3
|
|
|
|
call void @llvm.x86.tdpbsud(i8 3, i8 4, i8 7)
|
|
; CHECK-NEXT: tdpbsud %tmm7, %tmm4, %tmm3
|
|
|
|
call void @llvm.x86.tdpbusd(i8 3, i8 0, i8 7)
|
|
; CHECK-NEXT: tdpbusd %tmm7, %tmm0, %tmm3
|
|
|
|
call void @llvm.x86.tdpbuud(i8 3, i8 4, i8 1)
|
|
; CHECK-NEXT: tdpbuud %tmm1, %tmm4, %tmm3
|
|
ret void
|
|
}
|
|
|
|
declare void @llvm.x86.tdpbssd(i8 %tile0, i8 %tile1, i8 %tile2)
|
|
declare void @llvm.x86.tdpbsud(i8 %tile0, i8 %tile1, i8 %tile2)
|
|
declare void @llvm.x86.tdpbusd(i8 %tile0, i8 %tile1, i8 %tile2)
|
|
declare void @llvm.x86.tdpbuud(i8 %tile0, i8 %tile1, i8 %tile2)
|