2014-01-30 Alangi Derick <alangiderick@gmail.com>
[official-gcc.git] / gcc / testsuite / g++.dg / vect / slp-pr50413.cc
blob6e69f11b382673d1e0aeb8779246e7a688181ccd
1 /* { dg-do compile } */
2 /* { dg-require-effective-target vect_int } */
4 typedef unsigned long long UInt64;
6 typedef struct struct128
8 UInt64 uint64_lower;
9 UInt64 uint64_upper;
11 STRUCT_128;
13 typedef union uint128_bitmap
15 STRUCT_128 uint128;
17 struct
19 UInt64 b00 : 1;
20 UInt64 b01 : 1;
21 UInt64 b02 : 1;
22 UInt64 b03 : 1;
23 UInt64 b04 : 1;
24 UInt64 b05 : 1;
25 UInt64 b06 : 1;
26 UInt64 b07 : 1;
27 UInt64 b08 : 1;
28 UInt64 b09 : 1;
29 UInt64 b10 : 1;
30 UInt64 b11 : 1;
31 UInt64 b12 : 1;
32 UInt64 b13 : 1;
33 UInt64 b14 : 1;
34 UInt64 b15 : 1;
35 UInt64 b16 : 1;
36 UInt64 b17 : 1;
37 UInt64 b18 : 1;
38 UInt64 b19 : 1;
39 UInt64 b20 : 1;
40 UInt64 b21 : 1;
41 UInt64 b22 : 1;
42 UInt64 b23 : 1;
43 UInt64 b24 : 1;
44 UInt64 b25 : 1;
45 UInt64 b26 : 1;
46 UInt64 b27 : 1;
47 UInt64 b28 : 1;
48 UInt64 b29 : 1;
49 UInt64 b30 : 1;
50 UInt64 b31 : 1;
51 UInt64 b32 : 1;
52 UInt64 b33 : 1;
53 UInt64 b34 : 1;
54 UInt64 b35 : 1;
55 UInt64 b36 : 1;
56 UInt64 b37 : 1;
57 UInt64 b38 : 1;
58 UInt64 b39 : 1;
59 UInt64 b40 : 1;
60 UInt64 b41 : 1;
61 UInt64 b42 : 1;
62 UInt64 b43 : 1;
63 UInt64 b44 : 1;
64 UInt64 b45 : 1;
65 UInt64 b46 : 1;
66 UInt64 b47 : 1;
67 UInt64 b48 : 1;
68 UInt64 b49 : 1;
69 UInt64 b50 : 1;
70 UInt64 b51 : 1;
71 UInt64 b52 : 1;
72 UInt64 b53 : 1;
73 UInt64 b54 : 1;
74 UInt64 b55 : 1;
75 UInt64 b56 : 1;
76 UInt64 b57 : 1;
77 UInt64 b58 : 1;
78 UInt64 b59 : 1;
79 UInt64 b60 : 1;
80 UInt64 b61 : 1;
81 UInt64 b62 : 1;
82 UInt64 b63 : 1;
83 UInt64 b64 : 1;
84 UInt64 b65 : 1;
85 UInt64 b66 : 1;
86 UInt64 b67 : 1;
87 UInt64 b68 : 1;
88 UInt64 b69 : 1;
89 UInt64 b70 : 1;
90 UInt64 b71 : 1;
91 UInt64 b72 : 1;
92 UInt64 b73 : 1;
93 UInt64 b74 : 1;
94 UInt64 b75 : 1;
95 UInt64 b76 : 1;
96 UInt64 b77 : 1;
97 UInt64 b78 : 1;
98 UInt64 b79 : 1;
99 UInt64 b80 : 1;
100 UInt64 b81 : 1;
101 UInt64 b82 : 1;
102 UInt64 b83 : 1;
103 UInt64 b84 : 1;
104 UInt64 b85 : 1;
105 UInt64 b86 : 1;
106 UInt64 b87 : 1;
107 UInt64 b88 : 1;
108 UInt64 b89 : 1;
109 UInt64 b90 : 1;
110 UInt64 b91 : 1;
111 UInt64 b92 : 1;
112 UInt64 b93 : 1;
113 UInt64 b94 : 1;
114 UInt64 b95 : 1;
115 UInt64 b96 : 1;
116 UInt64 b97 : 1;
117 UInt64 b98 : 1;
118 UInt64 b99 : 1;
119 UInt64 b100 : 1;
120 UInt64 b101 : 1;
121 UInt64 b102 : 1;
122 UInt64 b103 : 1;
123 UInt64 b104 : 1;
124 UInt64 b105 : 1;
125 UInt64 b106 : 1;
126 UInt64 b107 : 1;
127 UInt64 b108 : 1;
128 UInt64 b109 : 1;
129 UInt64 b110 : 1;
130 UInt64 b111 : 1;
131 UInt64 b112 : 1;
132 UInt64 b113 : 1;
133 UInt64 b114 : 1;
134 UInt64 b115 : 1;
135 UInt64 b116 : 1;
136 UInt64 b117 : 1;
137 UInt64 b118 : 1;
138 UInt64 b119 : 1;
139 UInt64 b120 : 1;
140 UInt64 b121 : 1;
141 UInt64 b122 : 1;
142 UInt64 b123 : 1;
143 UInt64 b124 : 1;
144 UInt64 b125 : 1;
145 UInt64 b126 : 1;
146 UInt64 b127 : 1;
148 bitmap;
150 UInt128_BITMAP;
152 UInt128_BITMAP V;
154 void shift(unsigned char t)
156 V.uint128.uint64_lower = (V.uint128.uint64_lower >> 1);
157 V.bitmap.b63 = V.bitmap.b64;
158 V.uint128.uint64_upper = (V.uint128.uint64_upper >> 1);
160 V.bitmap.b96 = t;
163 /* { dg-final { scan-tree-dump-times "basic block vectorized" 0 "slp" } } */
164 /* { dg-final { cleanup-tree-dump "slp" } } */