d: Fix gdc -O2 -mavx generates misaligned vmovdqa instruction [PR114171]
[official-gcc.git] / gcc / testsuite / gdc.dg / torture / gdc210.d
blob7c7dad8ce8368c0c75800e77d136118d75ae691c
1 // https://bugzilla.gdcproject.org/show_bug.cgi?id=210
2 // { dg-do run }
3 // { dg-skip-if "needs gcc/config.d" { ! d_runtime } }
5 struct S210
7 ubyte a;
8 uint b;
11 union U210
13 S210 a;
14 uint b;
17 S210 test210a()
19 S210 s = S210(1, 2);
20 return s;
23 S210[2] test210b()
25 S210[2] s = [S210(1, 2), S210(3, 4)];
26 return s;
29 U210 test210c()
31 U210 s = U210(S210(1, 2));
32 return s;
35 U210[2] test210d()
37 U210[2] s = [U210(S210(1, 2)), U210(S210(3, 4))];
38 return s;
41 void main()
43 S210 a = S210(1, 2);
44 assert(a == S210(1, 2));
45 assert(a == test210a());
46 assert(a != S210(2, 1));
48 S210[2] b = [S210(1, 2), S210(3, 4)];
49 assert(b == [S210(1, 2), S210(3, 4)]);
50 assert(b == test210b());
51 assert(b != [S210(2, 1), S210(3, 4)]);
53 U210 c = U210(S210(1, 2));
54 assert(c == U210(S210(1, 2)));
55 assert(c == test210c());
56 assert(c != U210(S210(2, 1)));
58 U210[2] d = [U210(S210(1, 2)), U210(S210(3, 4))];
59 assert(d == [U210(S210(1, 2)), U210(S210(3, 4))]);
60 assert(d == test210d());
61 assert(d != [U210(S210(2, 1)), U210(S210(3, 4))]);