[all-commits] [llvm/llvm-project] e6f948: [SelectionDAG] Flags are dropped when creating a n...

Sirish Pande via All-commits all-commits at lists.llvm.org
Thu Sep 21 08:26:49 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e6f9483f77dbbdfdc010f8db2bbb0e236820eddb
  Author: Sirish Pande <sirpande at amd.com>
  Date:   2023-09-21 (Thu, 21 Sep 2023)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/AMDGPU/fma.ll

  Log Message:
  [SelectionDAG] Flags are dropped when creating a new FMUL (#66701)

While simplifying some vector operators in DAG combine, we may need to
create new instructions for simplified vectors. At that time, we need to
make sure that all the flags of the new instruction are copied/modified
from the old instruction.

If "contract" is dropped from an instruction like FMUL, it may not
generate FMA instruction which would impact performance.

Here's an example where "contract" flag is dropped when FMUL is created.

Replacing.2 t42: v2f32 = fmul contract t41, t38
With: t48: v2f32 = fmul t38, t38

Co-authored-by: Sirish Pande <sirish.pande at amd.com>

More information about the All-commits mailing list