[all-commits] [llvm/llvm-project] e9d298: InstCombine: Perform simpler test of APFloat first

Matt Arsenault via All-commits all-commits at lists.llvm.org
Tue Dec 13 07:51:54 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e9d298d7c6a8cef6e1de06414a000e395b379a18
      https://github.com/llvm/llvm-project/commit/e9d298d7c6a8cef6e1de06414a000e395b379a18
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2022-12-13 (Tue, 13 Dec 2022)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  Log Message:
  -----------
  InstCombine: Perform simpler test of APFloat first


  Commit: 8fc25caae5305b9e4113b9dd5332e7375a5657a6
      https://github.com/llvm/llvm-project/commit/8fc25caae5305b9e4113b9dd5332e7375a5657a6
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2022-12-13 (Tue, 13 Dec 2022)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
    M llvm/test/Transforms/InstCombine/is_fpclass.ll

  Log Message:
  -----------
  InstCombine: Fold logic of fp_classes together

Move logical operators on pairs of llvm.is.fpclass on the same value
into the test mask of a single is_fpclass.

or (class x, mask0), (class x, mask1) -> class x, (mask0 | mask1)
and (class x, mask0), (class x, mask1) -> class x, (mask0 & mask1)
xor (class x, mask0), (class x, mask1) -> class x, (mask0 ^ mask1)

The and/or cases should appear frequently in the builtin math
libraries; haven't seen the xor case but handle it for completeness.


Compare: https://github.com/llvm/llvm-project/compare/834c17f618ce...8fc25caae530


More information about the All-commits mailing list