[all-commits] [llvm/llvm-project] f9f4ab: [InstCombine] Add tests for non-zero/knownbits of ...

goldsteinn via All-commits all-commits at lists.llvm.org
Wed Apr 10 08:41:21 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f9f4aba547f50e6dcb2d9345b51fe4883bb64d8d
      https://github.com/llvm/llvm-project/commit/f9f4aba547f50e6dcb2d9345b51fe4883bb64d8d
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/InstCombine/vector-reduce-min-max-known.ll

  Log Message:
  -----------
  [InstCombine] Add tests for non-zero/knownbits of `vector_reduce_{s,u}{min,max}`; NFC


  Commit: 77d668451ad2e6370eb595c171779429e9becdf2
      https://github.com/llvm/llvm-project/commit/77d668451ad2e6370eb595c171779429e9becdf2
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/vector-reduce-min-max-known.ll

  Log Message:
  -----------
  [ValueTracking] Add support for `vector_reduce_{s,u}{min,max}` in `isKnownNonZero`

Previously missing, proofs for all implementations:
https://alive2.llvm.org/ce/z/G8wpmG


  Commit: 41c52217b003ce9435ae534251b0d0d035495262
      https://github.com/llvm/llvm-project/commit/41c52217b003ce9435ae534251b0d0d035495262
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/vector-reduce-min-max-known.ll

  Log Message:
  -----------
  [ValueTracking] Add support for `vector_reduce_{s,u}{min,max}` in `computeKnownBits`

Previously missing. We compute by just applying the reduce function on
the knownbits of each element.

Closes #88169


  Commit: a02b3c01820090d4208146b51372587251fdce61
      https://github.com/llvm/llvm-project/commit/a02b3c01820090d4208146b51372587251fdce61
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for overflow detection functions is `isKnownNonZero`; NFC


  Commit: f0a487d7e2085e21f3691393070f54110d889fb6
      https://github.com/llvm/llvm-project/commit/f0a487d7e2085e21f3691393070f54110d889fb6
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp

  Log Message:
  -----------
  [ValueTracking] Split `isNonZero(mul)` logic to a helper; NFC


  Commit: 37ca6fa1e26e86c85c544023b18695be420e80dd
      https://github.com/llvm/llvm-project/commit/37ca6fa1e26e86c85c544023b18695be420e80dd
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Add support for overflow detection functions is `isKnownNonZero`

Adds support for: `{s,u}{add,sub,mul}.with.overflow`

The logic is identical to the the non-overflow binops, we where just
missing the cases.

Closes #87701


  Commit: 2ff82c2c6490a1478e4311f60f1ce80af0957403
      https://github.com/llvm/llvm-project/commit/2ff82c2c6490a1478e4311f60f1ce80af0957403
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstSimplify/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for improving `isKnownNonZero` of `smax`; NFC


  Commit: f1ee458ddb45c9887b3df583ce9a4ba12aae8b3b
      https://github.com/llvm/llvm-project/commit/f1ee458ddb45c9887b3df583ce9a4ba12aae8b3b
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstSimplify/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] improve `isKnownNonZero` precision for `smax`

Instead of relying on known-bits for strictly positive, use the
`isKnownPositive` API. This will use `isKnownNonZero` which is more
accurate.

Closes #88170


Compare: https://github.com/llvm/llvm-project/compare/7f1b9adfc8d8...f1ee458ddb45

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