[all-commits] [llvm/llvm-project] 5420fc: [AArch64][SVE][InstCombine] Unpack of a splat vect...

Usman Nadeem via All-commits all-commits at lists.llvm.org
Mon Aug 9 15:00:23 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5420fc4a279bdd07cada4b607846ef0e9d184a13
      https://github.com/llvm/llvm-project/commit/5420fc4a279bdd07cada4b607846ef0e9d184a13
  Author: Usman Nadeem <mnadeem at quicinc.com>
  Date:   2021-08-09 (Mon, 09 Aug 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    A llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-opts-unpkhi-unpklo.ll

  Log Message:
  -----------
  [AArch64][SVE][InstCombine] Unpack of a splat vector -> Scalar extend

Replace vector unpack operation with a scalar extend operation.
  unpack(splat(X)) --> splat(extend(X))

If we have both, unpkhi and unpklo, for the same vector then we may
save a register in some cases, e.g:
  Hi = unpkhi (splat(X))
  Lo = unpklo(splat(X))
   --> Hi = Lo = splat(extend(X))

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

Change-Id: I77c5c201131e3a50de1cdccbdcf84420f5b2244b




More information about the All-commits mailing list