diff options
author | zhongyunde 00443407 <zhongyunde@huawei.com> | 2024-04-21 01:22:13 -0400 |
---|---|---|
committer | vfdff <zhongyunde@huawei.com> | 2024-04-25 08:50:32 +0800 |
commit | a6bdd6df23613c3ee5b3d7c31b1cf1fb78403a15 (patch) | |
tree | 6aa331bbc899f2683dfb6a545cc18e66e6ebd57d /clang/lib/Frontend/ASTUnit.cpp | |
parent | a35d7d7d124172632a9a108f76deba647f4da863 (diff) | |
download | llvm-a6bdd6df23613c3ee5b3d7c31b1cf1fb78403a15.zip llvm-a6bdd6df23613c3ee5b3d7c31b1cf1fb78403a15.tar.gz llvm-a6bdd6df23613c3ee5b3d7c31b1cf1fb78403a15.tar.bz2 |
[AArch64][SelectionDAG] Lower multiplication by a constant to shl+add+shl+add
Change the costmodel to lower a = b * C where C = (1 + 2^m) * 2^n + 1 to
add w8, w0, w0, lsl #m
add w0, w0, w8, lsl #n
Note: The latency of add can vary depending on the shirt amount
They are cheap as a move when the shift amounts is 4 or less.
Fix part of https://github.com/llvm/llvm-project/issues/89430
Diffstat (limited to 'clang/lib/Frontend/ASTUnit.cpp')
0 files changed, 0 insertions, 0 deletions