diff options
author | Chris Lattner <sabre@nondot.org> | 2005-09-18 04:24:45 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-09-18 04:24:45 +0000 |
commit | c8e775679143dcdd7ba860d92f0a3bb2f4c4ae89 (patch) | |
tree | a3464970f5cd88ceffb823871028f267755d082c /lib/Transforms/ExprTypeConvert.cpp | |
parent | dc0ffccb1931e700601caed1b2f9e6308c716c4d (diff) |
Implement add.ll:test29. Codegening:
struct S { unsigned int i : 6, j : 11, k : 15; } b;
void plus1 (unsigned int x) {
b.i += x;
}
as:
_plus1:
lis r2, ha16(L_b$non_lazy_ptr)
lwz r2, lo16(L_b$non_lazy_ptr)(r2)
lwz r4, 0(r2)
add r3, r4, r3
rlwimi r3, r4, 0, 0, 25
stw r3, 0(r2)
blr
instead of:
_plus1:
lis r2, ha16(L_b$non_lazy_ptr)
lwz r2, lo16(L_b$non_lazy_ptr)(r2)
lwz r4, 0(r2)
rlwinm r5, r4, 0, 26, 31
add r3, r5, r3
rlwimi r3, r4, 0, 0, 25
stw r3, 0(r2)
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23379 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/ExprTypeConvert.cpp')
0 files changed, 0 insertions, 0 deletions