[all-commits] [llvm/llvm-project] 65f257: [AArch64][GlobalISel] Implement custom legalizatio...

Jessica Paquette via All-commits all-commits at lists.llvm.org
Mon Apr 19 10:56:38 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 65f257a2152ce855f4e25faed9b43ac21933c14a
      https://github.com/llvm/llvm-project/commit/65f257a2152ce855f4e25faed9b43ac21933c14a
  Author: Jessica Paquette <jpaquette at apple.com>
  Date:   2021-04-19 (Mon, 19 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.h
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-ctpop-no-implicit-float.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-ctpop.mir

  Log Message:
  -----------
  [AArch64][GlobalISel] Implement custom legalization for s32 and s64 G_CTPOP

This is a partial port of AArch64TargetLowering::LowerCTPOP.

This custom lowering tries to uses NEON instructions to give a more efficient
CTPOP lowering when possible.

In the non-NEON/noimplicitfloat case, this should use the generic lowering
(see: https://godbolt.org/z/GcaPvWe4x). I think that's worth implementing after
implementing the widening code for s16/s8 though.

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




More information about the All-commits mailing list