[all-commits] [llvm/llvm-project] cd89f5: [SVE][CodeGen] Legalisation of truncate for scalab...

kmclaughlin-arm via All-commits all-commits at lists.llvm.org
Thu Sep 10 03:39:00 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: cd89f5c91b4bad90278a59865fc06a75211589a1
      https://github.com/llvm/llvm-project/commit/cd89f5c91b4bad90278a59865fc06a75211589a1
  Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
  Date:   2020-09-10 (Thu, 10 Sep 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/sve-split-trunc.ll

  Log Message:
  -----------
  [SVE][CodeGen] Legalisation of truncate for scalable vectors

Truncating from an illegal SVE type to a legal type, e.g.
`trunc <vscale x 4 x i64> %in to <vscale x 4 x i32>`
fails after PromoteIntOp_CONCAT_VECTORS attempts to
create a BUILD_VECTOR.

This patch changes the promote function to create a sequence of
INSERT_SUBVECTORs if the return type is scalable, and replaces
these with UNPK+UZP1 for AArch64.

Reviewed By: paulwalker-arm

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




More information about the All-commits mailing list