Lauro Ramos Venancio | 3b8c22d | 2008-01-22 20:17:04 +0000 | [diff] [blame] | 1 | // RUN: clang %s -emit-llvm > %t1 |
| 2 | // RUN: grep "shl i32 %tmp, 19" %t1 && |
| 3 | // RUN: grep "ashr i32 %tmp1, 19" %t1 && |
| 4 | // RUN: grep "shl i16 %tmp4, 1" %t1 && |
| 5 | // RUN: grep "lshr i16 %tmp5, 9" %t1 |
Lauro Ramos Venancio | a0c5d0e | 2008-01-22 22:36:45 +0000 | [diff] [blame^] | 6 | // RUN: grep "and i32 %tmp, -8192" %t1 |
| 7 | // RUN: grep "and i16 %tmp5, -32513" %t1 |
Lauro Ramos Venancio | 3b8c22d | 2008-01-22 20:17:04 +0000 | [diff] [blame] | 8 | // Test bitfield access |
| 9 | |
| 10 | |
| 11 | struct STestB1 { int a:13; char b; unsigned short c:7;} stb1; |
| 12 | |
| 13 | int f() { |
| 14 | return stb1.a + stb1.b + stb1.c; |
| 15 | } |
Lauro Ramos Venancio | a0c5d0e | 2008-01-22 22:36:45 +0000 | [diff] [blame^] | 16 | |
| 17 | void g() { |
| 18 | stb1.a = -40; |
| 19 | stb1.b = 10; |
| 20 | stb1.c = 15; |
| 21 | } |