[all-commits] [llvm/llvm-project] c1d3f3: [ValueTracking] Add tests for `shufflevector` in `...

goldsteinn via All-commits all-commits at lists.llvm.org
Wed Apr 10 11:14:16 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c1d3f39ae98535777c957aab3611d2abc97b2815
      https://github.com/llvm/llvm-project/commit/c1d3f39ae98535777c957aab3611d2abc97b2815
  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 `shufflevector` in `isKnownNonZero`


  Commit: 87528bfefbb50ed6560b9b8482fc7c9f86ca34cd
      https://github.com/llvm/llvm-project/commit/87528bfefbb50ed6560b9b8482fc7c9f86ca34cd
  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] Add support for `shufflevector` in `isKnownNonZero`

Shuffles don't modify the data, so if all elements that end up in the
destination are non-zero the result is non-zero.

Closes #87702


  Commit: 8a28b9b8ec1686426a4b43c8431570eaa1da77d9
      https://github.com/llvm/llvm-project/commit/8a28b9b8ec1686426a4b43c8431570eaa1da77d9
  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 `insertelement` in `isKnownNonZero`; NFC


  Commit: 9c545a14c09051b011358854655c1f466d656e79
      https://github.com/llvm/llvm-project/commit/9c545a14c09051b011358854655c1f466d656e79
  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] Add support for `insertelement` in `isKnownNonZero`

Inserts don't modify the data, so if all elements that end up in the
destination are non-zero the result is non-zero.

Closes #87703


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

  Changed paths:
    M llvm/test/Transforms/InstSimplify/icmp.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for `xor`/`disjoint or` in `getInvertibleOperands`; NFC


  Commit: 0c57a2e4b4e5a6e5dda78a313fc8d8e3c91797f5
      https://github.com/llvm/llvm-project/commit/0c57a2e4b4e5a6e5dda78a313fc8d8e3c91797f5
  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/icmp.ll

  Log Message:
  -----------
  [ValueTracking] Add support for `xor`/`disjoint or` in `getInvertibleOperands`

This strengthens our `isKnownNonEqual` logic with some fairly
trivial cases.

Proofs: https://alive2.llvm.org/ce/z/4pxRTj

Closes #87705


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

  Changed paths:
    M llvm/test/Transforms/InstSimplify/icmp.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for `xor`/`disjoint or` in `isKnownNonZero`; NFC


  Commit: 81cdd35c0c8db22bfdd1f06cb2118d17fd99fc07
      https://github.com/llvm/llvm-project/commit/81cdd35c0c8db22bfdd1f06cb2118d17fd99fc07
  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/icmp.ll

  Log Message:
  -----------
  [ValueTracking] Add support for `xor`/`disjoint or` in `isKnownNonZero`

Handles cases like `X ^ Y == X` / `X disjoint| Y == X`.

Both of these cases have identical logic to the existing `add` case,
so just converting the `add` code to a more general helper.

Proofs: https://alive2.llvm.org/ce/z/Htm7pe

Closes #87706


Compare: https://github.com/llvm/llvm-project/compare/b9a3551c9055...81cdd35c0c8d

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