diff options
author | Craig Topper <craig.topper@sifive.com> | 2025-09-11 07:09:13 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-11 07:09:13 -0700 |
commit | 4ce74bfb4d218392719ad610c9dfc467042a6b58 (patch) | |
tree | 8adaf33d50e8c1a1068e081ff3b143caa1d3a485 /llvm/unittests/Support/MathExtrasTest.cpp | |
parent | 3e18b5af257463718edfdca791215f09f97d2209 (diff) | |
download | llvm-4ce74bfb4d218392719ad610c9dfc467042a6b58.zip llvm-4ce74bfb4d218392719ad610c9dfc467042a6b58.tar.gz llvm-4ce74bfb4d218392719ad610c9dfc467042a6b58.tar.bz2 |
[RISCV] Use default promotion for i32 CTLZ on RV64 with XTHeadBb. (#157994)
The existing isel pattern felt like it was emitting more instructions
than an isel pattern probably should. We were also missing opportunities
to fold the innermost instructions with surrounding instructions.
I tried to move the expansion to lowering, but we got a little too
aggressive folding the (not (slli (not))) with other operations in some
tests and created code with constants that are hard to materialize and
missed using TH_FF0. We could probably have fixed that with a
RISCVISD::TH_FF0 node.
While investigating, I tried using the default promotion. The results
aren't obviously worse than the previous codegen. And in some case they
are obviously better.
Diffstat (limited to 'llvm/unittests/Support/MathExtrasTest.cpp')
0 files changed, 0 insertions, 0 deletions