diff options
author | Philip Reames <preames@rivosinc.com> | 2024-05-08 10:13:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-08 10:13:01 -0700 |
commit | 4298fc5eb5c483fb72db6fce062352087dfd0acf (patch) | |
tree | 0475d45beb86475e74a90755ad7c6cd71ed781d6 /llvm/unittests/ADT/StringRefTest.cpp | |
parent | b59461ac63aa1770a617f96bab31010442bd2090 (diff) | |
download | llvm-4298fc5eb5c483fb72db6fce062352087dfd0acf.zip llvm-4298fc5eb5c483fb72db6fce062352087dfd0acf.tar.gz llvm-4298fc5eb5c483fb72db6fce062352087dfd0acf.tar.bz2 |
[RISCV] Move strength reduction of mul X, 3/5/9*2^N to combine (#89966)
This moves our last major category tablegen driven multiply strength
reduction into the post legalize combine framework. The one slightly
tricky bit is making sure that we use a leading shl if we can form a
slli.uw, and trailing shl otherwise. Having the trailing shl is critical
for shNadd matching, and folding any following sext.w.
As can be seen in the TD deltas, this allows us to kill off both the
actual multiply patterns and the explicit add (mul X, C) Y patterns. The
later are now handled by the generic shNadd matching code, with the
exception of the THead only C=200 case because we don't (yet) have a
multiply expansion with two shNadd + a shift.
---------
Co-authored-by: Yingwei Zheng <dtcxzyw@qq.com>
Diffstat (limited to 'llvm/unittests/ADT/StringRefTest.cpp')
0 files changed, 0 insertions, 0 deletions