[all-commits] [llvm/llvm-project] b6c790: [MachineCombiner][RISCV] Add fmadd/fmsub/fnmsub in...

Anton Sidorenko via All-commits all-commits at lists.llvm.org
Thu Nov 17 02:28:44 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b6c790736e77f79e819fa761fb13f2311296714a
      https://github.com/llvm/llvm-project/commit/b6c790736e77f79e819fa761fb13f2311296714a
  Author: Anton Sidorenko <anton.sidorenko at syntacore.com>
  Date:   2022-11-17 (Thu, 17 Nov 2022)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineCombinerPattern.h
    M llvm/lib/CodeGen/MachineCombiner.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/test/CodeGen/RISCV/machine-combiner-mir.ll
    M llvm/test/CodeGen/RISCV/machine-combiner.ll

  Log Message:
  -----------
  [MachineCombiner][RISCV] Add fmadd/fmsub/fnmsub instructions patterns

This patch adds tranformation of fmul+fadd/fsub chains to fused multiply
instructions:
  * fmul+fadd->fmadd
  * fmul+fsub->fmsub/fnmsub

We also will try to combine these instructions if the fmul has more than one use
and cannot be deleted. However, removing the dependence between fmul and fadd can
still be profitable, and we rely on machine combiner approximations of scheduling.

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




More information about the All-commits mailing list