[all-commits] [llvm/llvm-project] ec93b2: [AArch64] Lower 3 and 4 sources buildvectors to TBL

David Green via All-commits all-commits at lists.llvm.org
Thu Mar 24 03:02:45 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ec93b28909749619dbe58b092a13da9d1ff1eb1e
      https://github.com/llvm/llvm-project/commit/ec93b28909749619dbe58b092a13da9d1ff1eb1e
  Author: David Green <david.green at arm.com>
  Date:   2022-03-24 (Thu, 24 Mar 2022)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll
    M llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll
    M llvm/test/CodeGen/AArch64/neon-extracttruncate.ll
    M llvm/test/CodeGen/AArch64/shuffle-tbl34.ll
    M llvm/test/CodeGen/AArch64/tbl-loops.ll

  Log Message:
  -----------
  [AArch64] Lower 3 and 4 sources buildvectors to TBL

The default expansion for buildvectors is to extract each element and
insert them into a new vector. That involves a lot of copying to/from
the GPR registers. TLB3 and TLB4 can be relatively slow instructions
with the mask needing to be loaded from a constant pool, but they should
always be better than all the moves to/from GPRs.

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




More information about the All-commits mailing list