111
|
1 /* { dg-do run } */
|
|
2 /* { dg-options "-fgimple -O2 -ftree-slp-vectorize" } */
|
|
3 /* { dg-require-effective-target ptr32plus } */
|
|
4
|
|
5 struct A
|
|
6 {
|
|
7 void * a;
|
|
8 void * b;
|
|
9 };
|
|
10
|
|
11 struct __attribute__((aligned(16))) B
|
|
12 {
|
|
13 void * pad;
|
|
14 void * misaligned;
|
|
15 void * pad2;
|
|
16
|
|
17 struct A a;
|
|
18 };
|
|
19
|
|
20 __attribute__((noclone, noinline))
|
|
21 void __GIMPLE (startwith("slp"))
|
|
22 NullB (void * misalignedPtr)
|
|
23 {
|
|
24 struct B * b;
|
|
25
|
|
26 bb_2:
|
|
27 #if __SIZEOF_LONG__ == 8
|
|
28 b_2 = misalignedPtr_1(D) + 18446744073709551608ul;
|
|
29 #else
|
|
30 b_2 = misalignedPtr_1(D) + 4294967292ul;
|
|
31 #endif
|
|
32 __MEM <struct B> (b_2).a.a = _Literal (void *) 0;
|
|
33 __MEM <struct B> (b_2).a.b = _Literal (void *) 0;
|
|
34 return;
|
|
35
|
|
36 }
|
|
37
|
|
38 int main()
|
|
39 {
|
|
40 struct B b;
|
|
41 NullB (&b.misaligned);
|
|
42 return 0;
|
|
43 }
|