[all-commits] [llvm/llvm-project] 60682a: [InstCombine] add tests for icmp with sdiv operand...

Sanjay Patel via All-commits all-commits at lists.llvm.org
Thu May 26 13:19:38 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 60682a0b85d5bdd74dd7e4a46bc88c901d884c75
      https://github.com/llvm/llvm-project/commit/60682a0b85d5bdd74dd7e4a46bc88c901d884c75
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2022-05-26 (Thu, 26 May 2022)

  Changed paths:
    M llvm/test/Transforms/InstCombine/icmp-div-constant.ll

  Log Message:
  -----------
  [InstCombine] add tests for icmp with sdiv operand; NFC

Adapted from unsigned division tests from:
ea6171c108c47c1ee4863


  Commit: ed5be1523fe1650a0e52e526eb430011fac60434
      https://github.com/llvm/llvm-project/commit/ed5be1523fe1650a0e52e526eb430011fac60434
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2022-05-26 (Thu, 26 May 2022)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  Log Message:
  -----------
  [InstCombine] reduce code duplication in icmp+div folds; NFC


  Commit: 49f8b0513763c2621d8d872ec19a33cc7a00d4c8
      https://github.com/llvm/llvm-project/commit/49f8b0513763c2621d8d872ec19a33cc7a00d4c8
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2022-05-26 (Thu, 26 May 2022)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/test/Transforms/InstCombine/icmp-div-constant.ll

  Log Message:
  -----------
  [InstCombine] fold icmp equality with sdiv and SMIN

This extends the fold from D126410 / 3952c905ef08
to allow for the only case where it works with signed
division:
https://alive2.llvm.org/ce/z/k7_ypu

(X s/ Y) == SMIN --> (X == SMIN) && (Y == 1)
(X s/ Y) != SMIN --> (X != SMIN) || (Y != 1)

This is another improvement based on #55695.


  Commit: 899af021f48fa6f8c7acb51343faf7c75b1041c5
      https://github.com/llvm/llvm-project/commit/899af021f48fa6f8c7acb51343faf7c75b1041c5
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2022-05-26 (Thu, 26 May 2022)

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

  Log Message:
  -----------
  [InstCombine] add tests for mul with sign-splat operand; NFC


  Commit: c4c750058f3e3b85c24a9e3ad356b76290e7c259
      https://github.com/llvm/llvm-project/commit/c4c750058f3e3b85c24a9e3ad356b76290e7c259
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2022-05-26 (Thu, 26 May 2022)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  Log Message:
  -----------
  [InstCombine] fold mul of signbit directly to X < 0 ? Y : 0

This is effectively NFC (intentionally no test diffs)
because we already have the related fold that converts
the 'and' pattern to select. So this is just an efficiency
improvement.


Compare: https://github.com/llvm/llvm-project/compare/460781feef56...c4c750058f3e


More information about the All-commits mailing list