diff options
author | Nate Begeman <natebegeman@mac.com> | 2005-08-30 02:44:00 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2005-08-30 02:44:00 +0000 |
commit | 56eb86806d5d178d42108f17d11098b3e640b996 (patch) | |
tree | ce499a104202367c0aa0162fc12305d36a9c0215 /lib/Bytecode/Archive/Archive.cpp | |
parent | f7f3d321916c1ef3a82b2a175a368a148b1ede46 (diff) |
Add support for AssertSext and AssertZext, folding other extensions with
them. This allows for elminination of redundant extends in the entry
blocks of functions on PowerPC.
Add support for i32 x i32 -> i64 multiplies, by recognizing when the inputs
to ISD::MUL in ExpandOp are actually just extended i32 values and not real
i64 values. this allows us to codegen
int mulhs(int a, int b) { return ((long long)a * b) >> 32; }
as:
_mulhs:
mulhw r3, r4, r3
blr
instead of:
_mulhs:
mulhwu r2, r4, r3
srawi r5, r3, 31
mullw r5, r4, r5
add r2, r2, r5
srawi r4, r4, 31
mullw r3, r4, r3
add r3, r2, r3
blr
with a similar improvement on x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23147 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Bytecode/Archive/Archive.cpp')
0 files changed, 0 insertions, 0 deletions