[all-commits] [llvm/llvm-project] 003b58: IR: Add llvm.frexp intrinsic

Matt Arsenault via All-commits all-commits at lists.llvm.org
Wed Jun 28 11:50:31 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 003b58f65bdd5d9c7d0c1b355566c9ef430c0e7d
      https://github.com/llvm/llvm-project/commit/003b58f65bdd5d9c7d0c1b355566c9ef430c0e7d
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2023-06-28 (Wed, 28 Jun 2023)

  Changed paths:
    M llvm/docs/AMDGPUUsage.rst
    M llvm/docs/LangRef.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
    M llvm/include/llvm/CodeGen/ISDOpcodes.h
    M llvm/include/llvm/CodeGen/RuntimeLibcalls.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/RuntimeLibcalls.def
    M llvm/include/llvm/Support/TargetOpcodes.def
    M llvm/include/llvm/Target/GenericOpcodes.td
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.h
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
    A llvm/test/CodeGen/AMDGPU/llvm.frexp.ll
    A llvm/test/CodeGen/PowerPC/llvm.frexp.ll
    A llvm/test/CodeGen/X86/llvm.frexp.f80.ll
    A llvm/test/CodeGen/X86/llvm.frexp.ll

  Log Message:
  -----------
  IR: Add llvm.frexp intrinsic

Add an intrinsic which returns the two pieces as multiple return
values. Alternatively could introduce a pair of intrinsics to
separately return the fractional and exponent parts.

AMDGPU has native instructions to return the two halves, but could use
some generic legalization and optimization handling. For example, we
should be able to handle legalization of f16 on older targets, and for
bf16. Additionally antique targets need a hardware workaround which
would be better handled in the backend rather than in library code
where it is now.


  Commit: 85bdea023f5116f789095b606554739403042a21
      https://github.com/llvm/llvm-project/commit/85bdea023f5116f789095b606554739403042a21
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2023-06-28 (Wed, 28 Jun 2023)

  Changed paths:
    M clang/include/clang/Basic/Builtins.def
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/aix-builtin-mapping.c
    M clang/test/CodeGen/builtin-attributes.c
    M clang/test/CodeGen/math-builtins-long.c
    M clang/test/CodeGen/math-builtins.c
    M clang/test/CodeGenOpenCL/builtins-generic-amdgcn.cl

  Log Message:
  -----------
  clang: Use new frexp intrinsic for builtins and add f16 version


Compare: https://github.com/llvm/llvm-project/compare/ee476996bec7...85bdea023f51


More information about the All-commits mailing list