[all-commits] [llvm/llvm-project] b8801b: [AArch64] Common patterns between UMULL and int_aa...

David Green via All-commits all-commits at lists.llvm.org
Sat Feb 19 06:39:11 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b8801ba0503936bd42e6d16e291bf66209323723
      https://github.com/llvm/llvm-project/commit/b8801ba0503936bd42e6d16e291bf66209323723
  Author: David Green <david.green at arm.com>
  Date:   2022-02-19 (Sat, 19 Feb 2022)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/test/CodeGen/AArch64/aarch64-wide-mul.ll

  Log Message:
  -----------
  [AArch64] Common patterns between UMULL and int_aarch64_neon_umull

We have some duplicate patterns between the AArch64ISD::UMULL (/SMULL)
and the int_aarch64_neon_umull (/smull) intrinsics. They did not
replicate all the patterns though, leaving some gaps on instructions
like umlal2 from codegen. This commons all the patterns by converting
all int_aarch64_neon_umull intrinsics to UMULL nodes and removing the
duplicate for umull/smull intrinsics, so that all instructions go
through the same tablegen pattern.

This improves some of the longer-than-legal mla patterns, helping them
replace ext with umlal2.

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




More information about the All-commits mailing list