[ARM] BFloat MatMul Intrinsics&CodeGen
authorMikhail Maltsev <mikhail.maltsev@arm.com>
Tue, 23 Jun 2020 11:28:48 +0000 (11:28 +0000)
committerMikhail Maltsev <mikhail.maltsev@arm.com>
Tue, 23 Jun 2020 12:06:37 +0000 (12:06 +0000)
commit9c579540ff6945d126a680d01db38548db9a972d
tree02fe193375cc99a85cdd85d55e64359d161c7270
parent5832950adbfcd7a5b16922a87a2cde257b7fac43
[ARM] BFloat MatMul Intrinsics&CodeGen

Summary:
This patch adds support for BFloat Matrix Multiplication Intrinsics
and Code Generation from __bf16 to AArch32. This includes IR intrinsics. Tests are
provided as needed.

This patch is part of a series implementing the Bfloat16 extension of
the
Armv8.6-a architecture, as detailed here:

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a

The bfloat type and its properties are specified in the Arm
Architecture
Reference Manual:

https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile

The following people contributed to this patch:

 - Luke Geeson
 - Momchil Velikov
 - Mikhail Maltsev
 - Luke Cheeseman
 - Simon Tatham

Reviewers: stuij, t.p.northover, SjoerdMeijer, sdesmalen, fpetrogalli, LukeGeeson, simon_tatham, dmgreen, MarkMurrayARM

Reviewed By: MarkMurrayARM

Subscribers: MarkMurrayARM, danielkiss, kristof.beyls, hiraditya, cfe-commits, llvm-commits, chill, miyuki

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D81740
clang/lib/CodeGen/CGBuiltin.cpp
clang/test/CodeGen/arm-bf16-dotprod-intrinsics.c [new file with mode: 0644]
llvm/include/llvm/IR/IntrinsicsARM.td
llvm/lib/Target/ARM/ARMInstrNEON.td
llvm/test/CodeGen/ARM/arm-bf16-dotprod-intrinsics.ll [new file with mode: 0644]