[all-commits] [llvm/llvm-project] 2abaa0: [AArch64] Teach the costmodel about widening muls

David Green via All-commits all-commits at lists.llvm.org
Mon Apr 4 04:45:16 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2abaa027d9dc247cbc8baa3aca1455fa9768c1c4
      https://github.com/llvm/llvm-project/commit/2abaa027d9dc247cbc8baa3aca1455fa9768c1c4
  Author: David Green <david.green at arm.com>
  Date:   2022-04-04 (Mon, 04 Apr 2022)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/AArch64/arith-widening.ll

  Log Message:
  -----------
  [AArch64] Teach the costmodel about widening muls

A vector mul(sext, sext) or mul(zext, zext) will be code generated as a
single smull or umull instruction. This most notably effects v2i64
multiplies, which are otherwise not legal and need to be expanded.

The oneuse check has also been slightly changed, as it is already
checked from the use of isWideningInstruction in getCastInstrCost.

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




More information about the All-commits mailing list