HomePhabricator

[AArch64][BFloat] basic AArch64 bfloat support

Authored by stuij on May 27 2020, 6:59 AM.

Description

[AArch64][BFloat] basic AArch64 bfloat support

Summary:
This patch adds the bfloat type to the AArch64 backend:

  • adds it as part of the FPR16 register class
  • adds bfloat calling conventions
  • as f16 is now not the only FPR16 type anymore, we need to constrain a number of instruction patterns using FPR16Op to help out the TableGen type inferrer

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

Reviewers: t.p.northover, c-rhodes, fpetrogalli, sdesmalen, ostannard, LukeGeeson, ab

Reviewed By: fpetrogalli

Subscribers: pbarrio, LukeGeeson, kristof.beyls, hiraditya, danielkiss, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79709

Details

Committed
stuijMay 27 2020, 7:26 AM
Reviewer
fpetrogalli
Differential Revision
D79709: [AArch64][BFloat] basic AArch64 bfloat support
Parents
rGcadb7ccf2ceb: [mlir] SCF: provide function_ref builders for IfOp
Branches
Unknown
Tags
Unknown