[all-commits] [llvm/llvm-project] 4a9104: InstCombine: Use SimplifyDemandedFPClass on fmul

Matt Arsenault via All-commits all-commits at lists.llvm.org
Thu Feb 5 08:32:26 PST 2026


  Branch: refs/heads/users/arsenm/instcombine/start-using-simplify-demanded-fpclass-instructions
  Home:   https://github.com/llvm/llvm-project
  Commit: 4a9104fca48c6fcfebf0ccce52803728cebfb9c6
      https://github.com/llvm/llvm-project/commit/4a9104fca48c6fcfebf0ccce52803728cebfb9c6
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-02-05 (Thu, 05 Feb 2026)

  Changed paths:
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c
    M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    M llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pown.ll
    M llvm/test/Transforms/InstCombine/AMDGPU/fmul_legacy.ll
    M llvm/test/Transforms/InstCombine/binop-itofp.ll
    M llvm/test/Transforms/InstCombine/binop-select.ll
    M llvm/test/Transforms/InstCombine/fast-math.ll
    M llvm/test/Transforms/InstCombine/fmul-sqrt.ll
    M llvm/test/Transforms/InstCombine/fmul.ll
    M llvm/test/Transforms/InstCombine/fsqrtdiv-transform.ll
    M llvm/test/Transforms/InstCombine/pow-to-ldexp.ll
    M llvm/test/Transforms/InstCombine/pow_fp_int.ll
    M llvm/test/Transforms/InstCombine/pow_fp_int16.ll
    M llvm/test/Transforms/InstCombine/powi.ll
    M llvm/test/Transforms/InstCombine/select_arithmetic.ll
    M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fmul.ll
    M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
    M llvm/test/Transforms/InstCombine/vec_demanded_elts.ll
    M llvm/test/Transforms/LoopVectorize/scalable-inductions.ll

  Log Message:
  -----------
  InstCombine: Use SimplifyDemandedFPClass on fmul

Start trying to use SimplifyDemandedFPClass on instructions, starting
with fmul. This subsumes the old transform on multiply of 0. The
main change is the introduction of nnan/ninf. I do not think anywhere
was systematically trying to introduce fast math flags before, though
a few odd transforms would set them.

Previously we only called SimplifyDemandedFPClass on function returns
with nofpclass annotations. Start following the pattern of
SimplifyDemandedBits, where this will be called from relevant root
instructions.

I was wondering if this should go into InstCombineAggressive, but that
apparently does not make use of InstCombineInternal's worklist.


  Commit: bbd99cc63e046e311d1e11cae557a9e099354696
      https://github.com/llvm/llvm-project/commit/bbd99cc63e046e311d1e11cae557a9e099354696
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-02-05 (Thu, 05 Feb 2026)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
    M llvm/test/Transforms/InstCombine/fmul.ll
    M llvm/test/Transforms/InstCombine/select_arithmetic.ll

  Log Message:
  -----------
  Move later


Compare: https://github.com/llvm/llvm-project/compare/cc0b33184e28...bbd99cc63e04

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list