[all-commits] [llvm/llvm-project] ae1396: [ARM][BFloat16] Change types of some Arm and AArch...

Mikhail Maltsev via All-commits all-commits at lists.llvm.org
Thu Aug 27 10:44:20 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: ae1396c7d4d83366695137f69f046719fd199408
      https://github.com/llvm/llvm-project/commit/ae1396c7d4d83366695137f69f046719fd199408
  Author: Mikhail Maltsev <mikhail.maltsev at arm.com>
  Date:   2020-08-27 (Thu, 27 Aug 2020)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/aarch64-bf16-dotprod-intrinsics.c
    M clang/test/CodeGen/arm-bf16-dotprod-intrinsics.c
    M llvm/include/llvm/IR/IntrinsicsAArch64.td
    M llvm/include/llvm/IR/IntrinsicsARM.td
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/ARM/ARMInstrNEON.td
    A llvm/test/Bitcode/aarch64-bf16-upgrade.ll
    A llvm/test/Bitcode/aarch64-bf16-upgrade.ll.bc
    A llvm/test/Bitcode/arm-bf16-upgrade.ll
    A llvm/test/Bitcode/arm-bf16-upgrade.ll.bc
    M llvm/test/CodeGen/AArch64/aarch64-bf16-dotprod-intrinsics.ll
    M llvm/test/CodeGen/ARM/arm-bf16-dotprod-intrinsics.ll

  Log Message:
  -----------
  [ARM][BFloat16] Change types of some Arm and AArch64 bf16 intrinsics

This patch adjusts the following ARM/AArch64 LLVM IR intrinsics:
- neon_bfmmla
- neon_bfmlalb
- neon_bfmlalt
so that they take and return bf16 and float types. Previously these
intrinsics used <8 x i8> and <4 x i8> vectors (a rudiment from
implementation lacking bf16 IR type).

The neon_vbfdot[q] intrinsics are adjusted similarly. This change
required some additional selection patterns for vbfdot itself and
also for vector shuffles (in a previous patch) because of SelectionDAG
transformations kicking in and mangling the original code.

This patch makes the generated IR cleaner (less useless bitcasts are
produced), but it does not affect the final assembly.

Reviewed By: dmgreen

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




More information about the All-commits mailing list