diff options
author | Sanjay Patel <spatel@rotateright.com> | 2022-10-29 10:53:23 -0400 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2022-10-29 12:50:19 -0400 |
commit | 6064e92b0a84b6d52b25ab1e6da90e74c76c6eb0 (patch) | |
tree | b4560028c37b42dd82f3ce570105369b596c4742 /llvm/lib/Support/CommandLine.cpp | |
parent | 50000ec2cb16a2f7c157164858ae10074064c1ee (diff) | |
download | llvm-6064e92b0a84b6d52b25ab1e6da90e74c76c6eb0.zip llvm-6064e92b0a84b6d52b25ab1e6da90e74c76c6eb0.tar.gz llvm-6064e92b0a84b6d52b25ab1e6da90e74c76c6eb0.tar.bz2 |
[InstCombine] fold mul with incremented "shl 1" factor
X * ((1 << Z) + 1) --> (X << Z) + X
https://alive2.llvm.org/ce/z/P-7WK9
It's possible that we could do better with propagating
no-wrap, but this carries over the existing logic and
appears to be correct.
The naming differences on the existing folds are a result
of using getName() to set the final value via Builder.
That makes it easier to transfer no-wrap rather than the
gymnastics required from the raw create instruction APIs.
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
0 files changed, 0 insertions, 0 deletions