[all-commits] [llvm/llvm-project] 3a4feb: [ARM][BFloat] Implement bf16 get/set_lane without ...

Mikhail Maltsev via All-commits all-commits at lists.llvm.org
Mon Jun 22 10:36:13 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3a4feb1d53df68bed7748a0625b593ba4b5dae32
      https://github.com/llvm/llvm-project/commit/3a4feb1d53df68bed7748a0625b593ba4b5dae32
  Author: Mikhail Maltsev <mikhail.maltsev at arm.com>
  Date:   2020-06-22 (Mon, 22 Jun 2020)

  Changed paths:
    M clang/include/clang/Basic/arm_neon.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/arm-bf16-getset-intrinsics.c

  Log Message:
  -----------
  [ARM][BFloat] Implement bf16 get/set_lane without casts to i16 vectors

Currently, in order to extract an element from a bf16 vector, we cast
the vector to an i16 vector, perform the extraction, and cast the result to
bfloat. This behavior was copied from the old fp16 implementation.

The goal of this patch is to achieve optimal code generation for lane
copying intrinsics in a subsequent patch (LLVM fails to fold certain
combinations of bitcast, insertelement, extractelement and
shufflevector instructions leading to the generation of suboptimal code).

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




More information about the All-commits mailing list