[all-commits] [llvm/llvm-project] 71f56e: [ConstraintElim] Decompose shl nsw for signed pred...

Nikita Popov via All-commits all-commits at lists.llvm.org
Fri Jan 5 00:53:18 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 71f56e49ceca75dbf82cbb9537c2545c2d2e51c9
      https://github.com/llvm/llvm-project/commit/71f56e49ceca75dbf82cbb9537c2545c2d2e51c9
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-05 (Fri, 05 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
    M llvm/test/Transforms/ConstraintElimination/shl.ll

  Log Message:
  -----------
  [ConstraintElim] Decompose shl nsw for signed predicates (#76961)

shl nsw x, shift can be interpreted as mul nsw x, (1<<shift), except
when shift is bw-1 (https://alive2.llvm.org/ce/z/vDh2xT). Use this when
decomposing shl. The equivalent decomposition for the unsigned case
already exists.




More information about the All-commits mailing list