[all-commits] [llvm/llvm-project] d4563b: [NFC][InstCombine] Add some tests for open-coded r...

Roman Lebedev via All-commits all-commits at lists.llvm.org
Wed Apr 27 07:28:49 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d4563bfeb940256384efce7dbb58502a83726170
      https://github.com/llvm/llvm-project/commit/d4563bfeb940256384efce7dbb58502a83726170
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2022-04-27 (Wed, 27 Apr 2022)

  Changed paths:
    A llvm/test/Transforms/InstCombine/integer-round-up-pow2-alignment.ll

  Log Message:
  -----------
  [NFC][InstCombine] Add some tests for open-coded round-up of an integer w/ power-of-2 target alignment


  Commit: aac0afd1dd99f6c7cc286a019e3f16a7a62aa615
      https://github.com/llvm/llvm-project/commit/aac0afd1dd99f6c7cc286a019e3f16a7a62aa615
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2022-04-27 (Wed, 27 Apr 2022)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/integer-round-up-pow2-alignment.ll

  Log Message:
  -----------
  [InstCombine] Fold 'round up integer' pattern (when alignment is a power of two)

But don't deal with non-splats.

The test coverage is sufficiently exhaustive,
and alive is happy about the changes there.

Example with constants: https://alive2.llvm.org/ce/z/EUaJ5- / https://alive2.llvm.org/ce/z/Bkng2X
General proof: https://alive2.llvm.org/ce/z/3RjJ5A


  Commit: ffafa71f642528a9303d40e4a7e12f208c0aee41
      https://github.com/llvm/llvm-project/commit/ffafa71f642528a9303d40e4a7e12f208c0aee41
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2022-04-27 (Wed, 27 Apr 2022)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/integer-round-up-pow2-alignment.ll

  Log Message:
  -----------
  [InstCombine] 'round up integer': if bias is just right, just reuse instructions

This is only useful if we can't create new instruction
because %x.aligned has other uses and already sticks around.


Compare: https://github.com/llvm/llvm-project/compare/38e802a09de6...ffafa71f6425


More information about the All-commits mailing list