Chris Lattner
0b7c0bf249
Generalize this transform, using MaskedValueIsZero, allowing us to compile:
struct S { unsigned int i : 6, j : 11, k : 15; } b;
void plus3 (unsigned int x) { b.k += x; }
To:
plus3:
mov %EAX, DWORD PTR [%ESP + 4]
shl %EAX, 17
add DWORD PTR [b], %EAX
ret
instead of:
plus3:
mov %EAX, DWORD PTR [%ESP + 4]
shl %EAX, 17
mov %ECX, DWORD PTR [b]
add %EAX, %ECX
and %EAX, -131072
and %ECX, 131071
or %ECX, %EAX
mov DWORD PTR [b], %ECX
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23384 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-18 06:02:59 +00:00
..
2005-05-14 12:25:32 +00:00
2005-04-21 23:48:37 +00:00
2005-08-04 23:24:19 +00:00
2005-04-21 23:48:37 +00:00
2005-04-21 23:48:37 +00:00
2005-05-08 18:45:26 +00:00
2005-04-21 23:48:37 +00:00
2005-04-21 23:48:37 +00:00
2005-08-10 01:12:06 +00:00
2005-09-18 06:02:59 +00:00
2005-06-20 13:36:33 +00:00
2005-09-13 02:09:55 +00:00
2005-04-23 21:38:35 +00:00
2005-04-21 23:48:37 +00:00
2005-04-21 23:48:37 +00:00
2005-04-21 23:48:37 +00:00
2005-04-21 23:48:37 +00:00
2005-04-21 23:48:37 +00:00
2005-09-02 07:07:58 +00:00
2005-04-21 23:48:37 +00:00
2005-04-23 21:38:35 +00:00
2005-04-21 23:48:37 +00:00
2005-04-21 23:48:37 +00:00
2005-08-08 19:11:57 +00:00