[all-commits] [llvm/llvm-project] 85bbc0: [AArch64][SVE][InstCombine] Move last{a, b} before ...

Usman Nadeem via All-commits all-commits at lists.llvm.org
Mon Aug 9 14:51:55 PDT 2021


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

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

  Log Message:
  -----------
  [AArch64][SVE][InstCombine] Move last{a,b} before binop if one operand is a splat value

Move the last{a,b} operation to the vector operand of the binary instruction if
the binop's operand is a splat value. This essentially converts the binop
to a scalar operation.

Example:
    // If x and/or y is a splat value:
    lastX (binop (x, y)) --> binop(lastX(x), lastX(y))

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

Change-Id: I93ff5302f9a7972405ee0d3854cf115f072e99c0




More information about the All-commits mailing list