blob: 1d8ff240200c13b996db9d27f0891f77f2a4c5db (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
int ufoo(unsigned int a)
{
struct u {
unsigned int :2;
unsigned int a:3;
} bf;
bf.a = a;
return bf.a;
}
int sfoo(int a)
{
struct s {
signed int :2;
signed int a:3;
} bf;
bf.a = a;
return bf.a;
}
/*
* check-name: optim store/load bitfields
* check-command: test-linearize -Wno-decl $file
*
* check-output-start
ufoo:
.L0:
<entry-point>
and.32 %r4 <- %arg1, $7
shl.32 %r5 <- %r4, $2
lsr.32 %r9 <- %r5, $2
and.32 %r11 <- %r9, $7
ret.32 %r11
sfoo:
.L2:
<entry-point>
and.32 %r16 <- %arg1, $7
shl.32 %r17 <- %r16, $2
lsr.32 %r21 <- %r17, $2
trunc.3 %r22 <- (32) %r21
sext.32 %r23 <- (3) %r22
ret.32 %r23
* check-output-end
*/
|