[PATCH] D81373: [WIP] Basic bfloat support on Arm

Alexandros Lamprineas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 8 04:19:48 PDT 2020


labrinea created this revision.
labrinea added reviewers: SjoerdMeijer, dmgreen, momchil.velikov, dnsampaio, pratlucas.
Herald added subscribers: danielkiss, hiraditya, kristof.beyls.
Herald added a project: LLVM.
labrinea added a comment.

I believe the codegen patterns for vmov and load/store half are incorrect on the bf16 type. Can someone suggest what is the right approach?


This patch is part of a series that adds support for 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 <https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a>
Specifically:

- it adds the bfloat scalar and vector types in the necessary register classes and adjusts the fp16-specific codegen patterns,
- it adjusts the calling convention to cope with bfloat argument passing and return,
- it adds bf16-specific codegen patterns

It's tested mostly by the intrinsic patches that depend on it (load/store, convert/copy).

The bfloat type, and its properties are specified in the Arm Architecture Reference Manual:
https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a <https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile>
The following people contributed to this patch:

- Alexandros Lamprineas
- Ties Stuij


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D81373

Files:
  llvm/lib/Target/ARM/ARMCallingConv.cpp
  llvm/lib/Target/ARM/ARMCallingConv.td
  llvm/lib/Target/ARM/ARMISelLowering.cpp
  llvm/lib/Target/ARM/ARMInstrFormats.td
  llvm/lib/Target/ARM/ARMInstrMVE.td
  llvm/lib/Target/ARM/ARMInstrNEON.td
  llvm/lib/Target/ARM/ARMInstrVFP.td
  llvm/lib/Target/ARM/ARMRegisterInfo.td
  llvm/lib/Target/ARM/ARMSubtarget.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D81373.269153.patch
Type: text/x-patch
Size: 54873 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200608/b64866f5/attachment.bin>


More information about the llvm-commits mailing list