[all-commits] [llvm/llvm-project] 614fb0: [SVE] Disable some BUILD_VECTOR related code gener...

paulwalker-arm via All-commits all-commits at lists.llvm.org
Thu Jul 9 03:49:19 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 614fb09645c8710f106dedb5f244f75ef97a1acb
      https://github.com/llvm/llvm-project/commit/614fb09645c8710f106dedb5f244f75ef97a1acb
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2020-07-09 (Thu, 09 Jul 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/test/CodeGen/AArch64/sve-fixed-length-shuffles.ll

  Log Message:
  -----------
  [SVE] Disable some BUILD_VECTOR related code generator features.

Fixed length vector code generation for SVE does not yet custom
lower BUILD_VECTOR and instead relies on expansion.  At the same
time custom lowering for VECTOR_SHUFFLE is also not available so
this patch updates isShuffleMaskLegal to reject vector types that
require SVE.

Related to this it also prevents the merging of stores after
legalisation because this only works when BUILD_VECTOR is either
legal or can be elminated.  When this is not the case the code
generator enters an infinite legalisation loop.

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


  Commit: 6b403319f86f55f1d6e16bde58d792d696e9fa8f
      https://github.com/llvm/llvm-project/commit/6b403319f86f55f1d6e16bde58d792d696e9fa8f
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2020-07-09 (Thu, 09 Jul 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    A llvm/test/Transforms/ScalarizeMaskedMemIntrin/AArch64/expand-masked-load.ll
    A llvm/test/Transforms/ScalarizeMaskedMemIntrin/AArch64/expand-masked-store.ll

  Log Message:
  -----------
  [SVE] Scalarize fixed length masked loads and stores.

When adding support for scalable vector masked loads and stores we
accidently opened up likewise for fixed length vectors. This patch
restricts support to scalable vectors only, thus ensuring fixed
length vectors are treated the same regardless of SVE support.

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


Compare: https://github.com/llvm/llvm-project/compare/54bdde1dc0cd...6b403319f86f


More information about the All-commits mailing list