[all-commits] [llvm/llvm-project] c03d3a: [InstCombine] Add tests for canonicalizing `(gep <...

goldsteinn via All-commits all-commits at lists.llvm.org
Mon Jul 1 07:23:07 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c03d3a8560d0275bd585744d4fc14725148517a3
      https://github.com/llvm/llvm-project/commit/c03d3a8560d0275bd585744d4fc14725148517a3
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/getelementptr.ll

  Log Message:
  -----------
  [InstCombine] Add tests for canonicalizing `(gep <not i8> p, (exact_ins X, C))`; NFC


  Commit: 263268000699b0f0890753674262961229e2a77d
      https://github.com/llvm/llvm-project/commit/263268000699b0f0890753674262961229e2a77d
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/getelementptr.ll
    M llvm/test/Transforms/LoopVectorize/induction.ll

  Log Message:
  -----------
  [InstCombine] Canonicalize `(gep <not i8> p, (div exact X, C))`

If C % sizeof(gep_element_type) is zero, we can canonicalize to `i8` via:
    `(gep i8 p, (div exact X, C / (sizeof(gep_element_type))))`

Closes #96898


  Commit: 5880526b87e56802adf1533a5fe7bd4b9b402a07
      https://github.com/llvm/llvm-project/commit/5880526b87e56802adf1533a5fe7bd4b9b402a07
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

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

  Log Message:
  -----------
  [InstSimplify] Add test for simplifying `({u,s}rem (mul {nuw,nsw} X, C1), C0)`; NFC


  Commit: aef44e49a7b79cfaf4d7c09133ba7c30ddfdfdc7
      https://github.com/llvm/llvm-project/commit/aef44e49a7b79cfaf4d7c09133ba7c30ddfdfdc7
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/test/Transforms/InstSimplify/rem.ll

  Log Message:
  -----------
  [InstSimplify] Add simplification for `({u,s}rem (mul {nuw,nsw} X, C1), C0)`

We can simplify these to `0` if `C1 % C0 == 0`

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

Closes #97037


  Commit: c8579163ac21877f6223de168663714ff53f43c4
      https://github.com/llvm/llvm-project/commit/c8579163ac21877f6223de168663714ff53f43c4
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/Reassociate/reassoc-mul-nuw.ll

  Log Message:
  -----------
  [Reassociate] Add tests for preserving `nuw` and `nsw` on `mul` chains; NFC


  Commit: 6e379de3b144363c2f5a6f9335eef6f42e28ef37
      https://github.com/llvm/llvm-project/commit/6e379de3b144363c2f5a6f9335eef6f42e28ef37
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Scalar/Reassociate.h
    M llvm/lib/Transforms/Scalar/Reassociate.cpp
    M llvm/test/Transforms/Reassociate/reassoc-mul-nuw.ll

  Log Message:
  -----------
  [Reassociate] Preserve `nuw` and `nsw` on `mul` chains

Basically the same rules as `add` but we also need to ensure all
operands a non-zero.

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

Closes #97040


Compare: https://github.com/llvm/llvm-project/compare/80ffec78848d...6e379de3b144

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