[all-commits] [llvm/llvm-project] 03c65c: [AArch64] Convert vector add(ext, ext) into ext(ad...

David Green via All-commits all-commits at lists.llvm.org
Fri Jun 24 02:04:43 PDT 2022


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

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/insert-extend.ll
    M llvm/test/CodeGen/AArch64/neon-extadd.ll
    M llvm/test/CodeGen/AArch64/reduce-shuffle.ll

  Log Message:
  -----------
  [AArch64] Convert vector add(ext, ext) into ext(add(ext, ext))

Given a vector add or sub from extends that needs more that one 'step'
(i.e i8 to i32 or i16 to i64), we can transform the sequence to
sext(add(ext, ext)), to allow the add(ext, ext) to become a single uaddl
and a larger extend, producing less instructions in total.
https://alive2.llvm.org/ce/z/S2T4k-

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




More information about the All-commits mailing list