1 /* Verify that we generate movua to load unaligned 32-bit values on SH4A. */
2 /* { dg-do run { target { sh4a } } } */
3 /* { dg-options "-O1 -save-temps -fno-inline" } */
4 /* { dg-final { scan-assembler-times "movua.l" 6 } } */
7 struct s0
{ long long d
: 32; } x0
;
13 struct s1
{ long long c
: 8; long long d
: 32; } x1
;
19 struct s2
{ long long c
: 16; long long d
: 32; } x2
;
25 struct s3
{ long long c
: 24; long long d
: 32; } x3
;
31 struct s4
{ long long c
: 32; long long d
: 32; } x4
;
37 struct u0
{ unsigned long long d
: 32; } y_0
;
38 unsigned long long g0() {
43 struct u1
{ long long c
: 8; unsigned long long d
: 32; } y_1
;
44 unsigned long long g1() {
49 struct u2
{ long long c
: 16; unsigned long long d
: 32; } y2
;
50 unsigned long long g2() {
55 struct u3
{ long long c
: 24; unsigned long long d
: 32; } y3
;
56 unsigned long long g3() {
61 struct u4
{ long long c
: 32; unsigned long long d
: 32; } y4
;
62 unsigned long long g4() {
72 assert (f1 () == 0x12345678);
75 assert (f2 () == 0x12345678);
78 assert (f3 () == 0x12345678);
81 assert (g1 () == 0x12345678);
84 assert (g2 () == 0x12345678);
87 assert (g3 () == 0x12345678);