1 /* PR rtl-optimization/65401 */
2 /* { dg-skip-if "requires default endianness" { *-*-* } "-fsso-struct=*" "" } */
4 struct S
{ unsigned short s
[64]; };
6 __attribute__((noinline
, noclone
)) void
12 s
= (unsigned char *) x
->s
;
13 for (i
= 0; i
< 64; i
++)
14 x
->s
[i
] = s
[i
* 2] | (s
[i
* 2 + 1] << 8);
17 __attribute__((noinline
, noclone
)) void
23 s
= (unsigned char *) x
->s
;
24 for (i
= 0; i
< 64; i
++)
25 x
->s
[i
] = (s
[i
* 2] << 8) | s
[i
* 2 + 1];
33 if (sizeof (unsigned short) != 2)
35 for (i
= 0; i
< 64; i
++)
36 s
.s
[i
] = i
+ ((64 - i
) << 8);
38 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
39 for (i
= 0; i
< 64; i
++)
40 if (s
.s
[i
] != (64 - i
) + (i
<< 8))
42 #elif __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
43 for (i
= 0; i
< 64; i
++)
44 if (s
.s
[i
] != i
+ ((64 - i
) << 8))
47 for (i
= 0; i
< 64; i
++)
48 s
.s
[i
] = i
+ ((64 - i
) << 8);
50 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
51 for (i
= 0; i
< 64; i
++)
52 if (s
.s
[i
] != (64 - i
) + (i
<< 8))
54 #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
55 for (i
= 0; i
< 64; i
++)
56 if (s
.s
[i
] != i
+ ((64 - i
) << 8))