[all-commits] [llvm/llvm-project] 579110: DAG: Assert fcmp uno runtime calls are boolean values

Matt Arsenault via All-commits all-commits at lists.llvm.org
Wed Jun 4 21:56:13 PDT 2025


  Branch: refs/heads/users/arsenm/dag/assert-boolean-return-unordered-runtime-call
  Home:   https://github.com/llvm/llvm-project
  Commit: 579110e4fca699403df42416ab907d659d654917
      https://github.com/llvm/llvm-project/commit/579110e4fca699403df42416ab907d659d654917
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2025-06-05 (Thu, 05 Jun 2025)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/test/CodeGen/ARM/fpcmp_ueq.ll
    M llvm/test/CodeGen/RISCV/double-fcmp-strict.ll
    M llvm/test/CodeGen/RISCV/double-fcmp.ll
    M llvm/test/CodeGen/RISCV/float-fcmp-strict.ll
    M llvm/test/CodeGen/RISCV/float-fcmp.ll
    M llvm/test/CodeGen/Thumb2/float-cmp.ll

  Log Message:
  -----------
  DAG: Assert fcmp uno runtime calls are boolean values

This saves 2 instructions in the ARM soft float case for fcmp ueq.

This code is written in an confusingly overly general way. The point
of getCmpLibcallCC is to express that the compiler-rt implementations
of the FP compares are different aliases around functions which may
return -1 in some cases. This does not apply to the call for unordered,
which returns a normal boolean.

Also stop overriding the default value for the unordered compare for ARM.
This was setting it to the same value as the default, which is now assumed.



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