[all-commits] [llvm/llvm-project] 02b49d: [ValueTracking] Add tests for computing known bits...

goldsteinn via All-commits all-commits at lists.llvm.org
Thu Apr 4 10:43:28 PDT 2024


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

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

  Log Message:
  -----------
  [ValueTracking] Add tests for computing known bits from `(icmp eq (and/or x,y), C)`; NFC


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

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

  Log Message:
  -----------
  [ValueTracking] Infer known bits fromfrom `(icmp eq (and/or x,y), C)`

In `(icmp eq (and x,y), C)` all 1s in `C` must also be set in both
`x`/`y`.

In `(icmp eq (or x,y), C)` all 0s in `C` must also be set in both
`x`/`y`.

Closes #87143


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

  Changed paths:
    A llvm/test/Transforms/InstCombine/implies.ll
    M llvm/test/Transforms/InstSimplify/implies.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for deducing more conditions in `isTruePredicate`; NFC


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

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/implies.ll
    M llvm/test/Transforms/InstSimplify/implies.ll

  Log Message:
  -----------
  [ValueTracking] Add more conditions in to `isTruePredicate`

There is one notable "regression". This patch replaces the bespoke `or
disjoint` logic we a direct match. This means we fail some
simplification during `instsimplify`.
All the cases we fail in `instsimplify` we do handle in `instcombine`
as we add `disjoint` flags.

Other than that, just some basic cases.

See proofs: https://alive2.llvm.org/ce/z/_-g7C8

Closes #86083


Compare: https://github.com/llvm/llvm-project/compare/220cdf940e95...678f32ab6650

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