summaryrefslogtreecommitdiffstats
path: root/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106815.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106815.patch')
-rw-r--r--toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106815.patch528
1 files changed, 0 insertions, 528 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106815.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106815.patch
deleted file mode 100644
index 16779bbf1..000000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106815.patch
+++ /dev/null
@@ -1,528 +0,0 @@
12011-09-25 Ira Rosen <ira.rosen@linaro.org>
2
3 gcc/testsuite/
4 * lib/target-supports.exp (check_effective_target_vect_multiple_sizes):
5 Replace check_effective_target_arm_neon with
6 check_effective_target_arm_neon_ok.
7
8 Backport from mainline:
9
10 2011-09-06 Ira Rosen <ira.rosen@linaro.org>
11
12 gcc/
13 * config/arm/arm.c (arm_preferred_simd_mode): Check
14 TARGET_NEON_VECTORIZE_DOUBLE instead of
15 TARGET_NEON_VECTORIZE_QUAD.
16 (arm_autovectorize_vector_sizes): Likewise.
17 * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
18 mask of mvectorize-with-neon-double. Add RejectNegative.
19 (mvectorize-with-neon-double): New.
20
21 gcc/testsuite/
22 * lib/target-supports.exp (check_effective_target_vect_multiple_sizes):
23 New procedure.
24 (add_options_for_quad_vectors): Replace with ...
25 (add_options_for_double_vectors): ... this.
26 * gfortran.dg/vect/pr19049.f90: Expect more printings on targets that
27 support multiple vector sizes since the vectorizer attempts to
28 vectorize with both vector sizes.
29 * gcc.dg/vect/no-vfa-vect-79.c,
30 gcc.dg/vect/no-vfa-vect-102a.c, gcc.dg/vect/vect-outer-1a.c,
31 gcc.dg/vect/vect-outer-1b.c, gcc.dg/vect/vect-outer-2b.c,
32 gcc.dg/vect/vect-outer-3a.c, gcc.dg/vect/no-vfa-vect-37.c,
33 gcc.dg/vect/vect-outer-3b.c, gcc.dg/vect/no-vfa-vect-101.c,
34 gcc.dg/vect/no-vfa-vect-102.c, gcc.dg/vect/vect-reduc-dot-s8b.c,
35 gcc.dg/vect/vect-outer-1.c, gcc.dg/vect/vect-104.c: Likewise.
36 * gcc.dg/vect/vect-42.c: Run with 64 bit vectors if applicable.
37 * gcc.dg/vect/vect-multitypes-6.c, gcc.dg/vect/vect-52.c,
38 gcc.dg/vect/vect-54.c, gcc.dg/vect/vect-46.c, gcc.dg/vect/vect-48.c,
39 gcc.dg/vect/vect-96.c, gcc.dg/vect/vect-multitypes-3.c,
40 gcc.dg/vect/vect-40.c: Likewise.
41 * gcc.dg/vect/vect-outer-5.c: Remove quad-vectors option as
42 redundant.
43 * gcc.dg/vect/vect-109.c, gcc.dg/vect/vect-peel-1.c,
44 gcc.dg/vect/vect-peel-2.c, gcc.dg/vect/slp-25.c,
45 gcc.dg/vect/vect-multitypes-1.c, gcc.dg/vect/slp-3.c,
46 gcc.dg/vect/no-vfa-pr29145.c, gcc.dg/vect/vect-multitypes-4.c:
47 Likewise.
48 * gcc.dg/vect/vect-peel-4.c: Make ia global.
49
50=== modified file 'gcc/config/arm/arm.c'
51--- old/gcc/config/arm/arm.c 2011-09-15 09:45:31 +0000
52+++ new/gcc/config/arm/arm.c 2011-09-19 07:44:24 +0000
53@@ -22974,7 +22974,7 @@
54 return false;
55 }
56
57-/* Use the option -mvectorize-with-neon-quad to override the use of doubleword
58+/* Use the option -mvectorize-with-neon-double to override the use of quardword
59 registers when autovectorizing for Neon, at least until multiple vector
60 widths are supported properly by the middle-end. */
61
62@@ -22985,15 +22985,15 @@
63 switch (mode)
64 {
65 case SFmode:
66- return TARGET_NEON_VECTORIZE_QUAD ? V4SFmode : V2SFmode;
67+ return TARGET_NEON_VECTORIZE_DOUBLE ? V2SFmode : V4SFmode;
68 case SImode:
69- return TARGET_NEON_VECTORIZE_QUAD ? V4SImode : V2SImode;
70+ return TARGET_NEON_VECTORIZE_DOUBLE ? V2SImode : V4SImode;
71 case HImode:
72- return TARGET_NEON_VECTORIZE_QUAD ? V8HImode : V4HImode;
73+ return TARGET_NEON_VECTORIZE_DOUBLE ? V4HImode : V8HImode;
74 case QImode:
75- return TARGET_NEON_VECTORIZE_QUAD ? V16QImode : V8QImode;
76+ return TARGET_NEON_VECTORIZE_DOUBLE ? V8QImode : V16QImode;
77 case DImode:
78- if (TARGET_NEON_VECTORIZE_QUAD)
79+ if (!TARGET_NEON_VECTORIZE_DOUBLE)
80 return V2DImode;
81 break;
82
83@@ -24226,7 +24226,7 @@
84 static unsigned int
85 arm_autovectorize_vector_sizes (void)
86 {
87- return TARGET_NEON_VECTORIZE_QUAD ? 16 | 8 : 0;
88+ return TARGET_NEON_VECTORIZE_DOUBLE ? 0 : (16 | 8);
89 }
90
91 static bool
92
93=== modified file 'gcc/config/arm/arm.opt'
94--- old/gcc/config/arm/arm.opt 2009-06-18 11:24:10 +0000
95+++ new/gcc/config/arm/arm.opt 2011-09-19 07:44:24 +0000
96@@ -158,9 +158,13 @@
97 Assume big endian bytes, little endian words
98
99 mvectorize-with-neon-quad
100-Target Report Mask(NEON_VECTORIZE_QUAD)
101+Target Report RejectNegative InverseMask(NEON_VECTORIZE_DOUBLE)
102 Use Neon quad-word (rather than double-word) registers for vectorization
103
104+mvectorize-with-neon-double
105+Target Report RejectNegative Mask(NEON_VECTORIZE_DOUBLE)
106+Use Neon double-word (rather than quad-word) registers for vectorization
107+
108 mword-relocations
109 Target Report Var(target_word_relocations) Init(TARGET_DEFAULT_WORD_RELOCATIONS)
110 Only generate absolute relocations on word sized values.
111
112=== modified file 'gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c'
113--- old/gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c 2011-04-28 11:46:58 +0000
114+++ new/gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c 2011-09-19 07:44:24 +0000
115@@ -1,5 +1,4 @@
116 /* { dg-require-effective-target vect_int } */
117-/* { dg-add-options quad_vectors } */
118
119 #include <stdarg.h>
120 #include "tree-vect.h"
121
122=== modified file 'gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c'
123--- old/gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c 2007-09-04 12:05:19 +0000
124+++ new/gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c 2011-09-19 07:44:24 +0000
125@@ -45,6 +45,7 @@
126 }
127
128 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
129-/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" } } */
130+/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { xfail vect_multiple_sizes } } } */
131+/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target vect_multiple_sizes } } } */
132 /* { dg-final { cleanup-tree-dump "vect" } } */
133
134
135=== modified file 'gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c'
136--- old/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c 2007-09-12 07:48:44 +0000
137+++ new/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c 2011-09-19 07:44:24 +0000
138@@ -53,6 +53,7 @@
139 }
140
141 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
142-/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" } } */
143+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */
144+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */
145 /* { dg-final { cleanup-tree-dump "vect" } } */
146
147
148=== modified file 'gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c'
149--- old/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c 2007-09-12 07:48:44 +0000
150+++ new/gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c 2011-09-19 07:44:24 +0000
151@@ -53,6 +53,7 @@
152 }
153
154 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
155-/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" } } */
156+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */
157+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */
158 /* { dg-final { cleanup-tree-dump "vect" } } */
159
160
161=== modified file 'gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c'
162--- old/gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c 2009-05-08 12:39:01 +0000
163+++ new/gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c 2011-09-19 07:44:24 +0000
164@@ -58,5 +58,6 @@
165 If/when the aliasing problems are resolved, unalignment may
166 prevent vectorization on some targets. */
167 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail *-*-* } } } */
168-/* { dg-final { scan-tree-dump-times "can't determine dependence between" 2 "vect" } } */
169+/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { xfail vect_multiple_sizes } } } */
170+/* { dg-final { scan-tree-dump-times "can't determine dependence" 4 "vect" { target vect_multiple_sizes } } } */
171 /* { dg-final { cleanup-tree-dump "vect" } } */
172
173=== modified file 'gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c'
174--- old/gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c 2009-05-08 12:39:01 +0000
175+++ new/gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c 2011-09-19 07:44:24 +0000
176@@ -46,5 +46,6 @@
177 If/when the aliasing problems are resolved, unalignment may
178 prevent vectorization on some targets. */
179 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
180-/* { dg-final { scan-tree-dump-times "can't determine dependence between" 1 "vect" } } */
181+/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { xfail vect_multiple_sizes } } } */
182+/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target vect_multiple_sizes } } } */
183 /* { dg-final { cleanup-tree-dump "vect" } } */
184
185=== modified file 'gcc/testsuite/gcc.dg/vect/slp-25.c'
186--- old/gcc/testsuite/gcc.dg/vect/slp-25.c 2010-10-04 14:59:30 +0000
187+++ new/gcc/testsuite/gcc.dg/vect/slp-25.c 2011-09-19 07:44:24 +0000
188@@ -1,5 +1,4 @@
189 /* { dg-require-effective-target vect_int } */
190-/* { dg-add-options quad_vectors } */
191
192 #include <stdarg.h>
193 #include "tree-vect.h"
194
195=== modified file 'gcc/testsuite/gcc.dg/vect/slp-3.c'
196--- old/gcc/testsuite/gcc.dg/vect/slp-3.c 2011-04-28 11:46:58 +0000
197+++ new/gcc/testsuite/gcc.dg/vect/slp-3.c 2011-09-19 07:44:24 +0000
198@@ -1,5 +1,4 @@
199 /* { dg-require-effective-target vect_int } */
200-/* { dg-add-options quad_vectors } */
201
202 #include <stdarg.h>
203 #include "tree-vect.h"
204
205=== modified file 'gcc/testsuite/gcc.dg/vect/vect-104.c'
206--- old/gcc/testsuite/gcc.dg/vect/vect-104.c 2007-09-12 07:48:44 +0000
207+++ new/gcc/testsuite/gcc.dg/vect/vect-104.c 2011-09-19 07:44:24 +0000
208@@ -64,6 +64,7 @@
209 }
210
211 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
212-/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" } } */
213+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */
214+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */
215 /* { dg-final { cleanup-tree-dump "vect" } } */
216
217
218=== modified file 'gcc/testsuite/gcc.dg/vect/vect-109.c'
219--- old/gcc/testsuite/gcc.dg/vect/vect-109.c 2010-10-04 14:59:30 +0000
220+++ new/gcc/testsuite/gcc.dg/vect/vect-109.c 2011-09-19 07:44:24 +0000
221@@ -1,5 +1,4 @@
222 /* { dg-require-effective-target vect_int } */
223-/* { dg-add-options quad_vectors } */
224
225 #include <stdarg.h>
226 #include "tree-vect.h"
227
228=== modified file 'gcc/testsuite/gcc.dg/vect/vect-40.c'
229--- old/gcc/testsuite/gcc.dg/vect/vect-40.c 2009-05-25 14:18:21 +0000
230+++ new/gcc/testsuite/gcc.dg/vect/vect-40.c 2011-09-19 07:44:24 +0000
231@@ -1,4 +1,5 @@
232 /* { dg-require-effective-target vect_float } */
233+/* { dg-add-options double_vectors } */
234
235 #include <stdarg.h>
236 #include "tree-vect.h"
237
238=== modified file 'gcc/testsuite/gcc.dg/vect/vect-42.c'
239--- old/gcc/testsuite/gcc.dg/vect/vect-42.c 2010-10-04 14:59:30 +0000
240+++ new/gcc/testsuite/gcc.dg/vect/vect-42.c 2011-09-19 07:44:24 +0000
241@@ -1,4 +1,5 @@
242 /* { dg-require-effective-target vect_float } */
243+/* { dg-add-options double_vectors } */
244
245 #include <stdarg.h>
246 #include "tree-vect.h"
247
248=== modified file 'gcc/testsuite/gcc.dg/vect/vect-46.c'
249--- old/gcc/testsuite/gcc.dg/vect/vect-46.c 2009-05-25 14:18:21 +0000
250+++ new/gcc/testsuite/gcc.dg/vect/vect-46.c 2011-09-19 07:44:24 +0000
251@@ -1,4 +1,5 @@
252 /* { dg-require-effective-target vect_float } */
253+/* { dg-add-options double_vectors } */
254
255 #include <stdarg.h>
256 #include "tree-vect.h"
257
258=== modified file 'gcc/testsuite/gcc.dg/vect/vect-48.c'
259--- old/gcc/testsuite/gcc.dg/vect/vect-48.c 2009-11-04 10:22:22 +0000
260+++ new/gcc/testsuite/gcc.dg/vect/vect-48.c 2011-09-19 07:44:24 +0000
261@@ -1,4 +1,5 @@
262 /* { dg-require-effective-target vect_float } */
263+/* { dg-add-options double_vectors } */
264
265 #include <stdarg.h>
266 #include "tree-vect.h"
267
268=== modified file 'gcc/testsuite/gcc.dg/vect/vect-52.c'
269--- old/gcc/testsuite/gcc.dg/vect/vect-52.c 2009-11-04 10:22:22 +0000
270+++ new/gcc/testsuite/gcc.dg/vect/vect-52.c 2011-09-19 07:44:24 +0000
271@@ -1,4 +1,5 @@
272 /* { dg-require-effective-target vect_float } */
273+/* { dg-add-options double_vectors } */
274
275 #include <stdarg.h>
276 #include "tree-vect.h"
277
278=== modified file 'gcc/testsuite/gcc.dg/vect/vect-54.c'
279--- old/gcc/testsuite/gcc.dg/vect/vect-54.c 2009-10-27 11:46:07 +0000
280+++ new/gcc/testsuite/gcc.dg/vect/vect-54.c 2011-09-19 07:44:24 +0000
281@@ -1,4 +1,5 @@
282 /* { dg-require-effective-target vect_float } */
283+/* { dg-add-options double_vectors } */
284
285 #include <stdarg.h>
286 #include "tree-vect.h"
287
288=== modified file 'gcc/testsuite/gcc.dg/vect/vect-96.c'
289--- old/gcc/testsuite/gcc.dg/vect/vect-96.c 2010-10-04 14:59:30 +0000
290+++ new/gcc/testsuite/gcc.dg/vect/vect-96.c 2011-09-19 07:44:24 +0000
291@@ -1,4 +1,5 @@
292 /* { dg-require-effective-target vect_int } */
293+/* { dg-add-options double_vectors } */
294
295 #include <stdarg.h>
296 #include "tree-vect.h"
297
298=== modified file 'gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c'
299--- old/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c 2010-10-04 14:59:30 +0000
300+++ new/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c 2011-09-19 07:44:24 +0000
301@@ -1,5 +1,4 @@
302 /* { dg-require-effective-target vect_int } */
303-/* { dg-add-options quad_vectors } */
304
305 #include <stdarg.h>
306 #include "tree-vect.h"
307
308=== modified file 'gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c'
309--- old/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c 2009-11-04 10:22:22 +0000
310+++ new/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c 2011-09-19 07:44:24 +0000
311@@ -1,4 +1,5 @@
312 /* { dg-require-effective-target vect_int } */
313+/* { dg-add-options double_vectors } */
314
315 #include <stdarg.h>
316 #include "tree-vect.h"
317
318=== modified file 'gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c'
319--- old/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c 2010-10-04 14:59:30 +0000
320+++ new/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c 2011-09-19 07:44:24 +0000
321@@ -1,5 +1,4 @@
322 /* { dg-require-effective-target vect_int } */
323-/* { dg-add-options quad_vectors } */
324
325 #include <stdarg.h>
326 #include "tree-vect.h"
327
328=== modified file 'gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c'
329--- old/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c 2009-11-10 18:01:22 +0000
330+++ new/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c 2011-09-19 07:44:24 +0000
331@@ -1,4 +1,5 @@
332 /* { dg-require-effective-target vect_int } */
333+/* { dg-add-options double_vectors } */
334
335 #include <stdarg.h>
336 #include "tree-vect.h"
337
338=== modified file 'gcc/testsuite/gcc.dg/vect/vect-outer-1.c'
339--- old/gcc/testsuite/gcc.dg/vect/vect-outer-1.c 2009-05-08 12:39:01 +0000
340+++ new/gcc/testsuite/gcc.dg/vect/vect-outer-1.c 2011-09-19 07:44:24 +0000
341@@ -22,5 +22,6 @@
342 }
343
344 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
345-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" } } */
346+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
347+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
348 /* { dg-final { cleanup-tree-dump "vect" } } */
349
350=== modified file 'gcc/testsuite/gcc.dg/vect/vect-outer-1a.c'
351--- old/gcc/testsuite/gcc.dg/vect/vect-outer-1a.c 2009-06-16 06:21:12 +0000
352+++ new/gcc/testsuite/gcc.dg/vect/vect-outer-1a.c 2011-09-19 07:44:24 +0000
353@@ -20,5 +20,6 @@
354 }
355
356 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
357-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" } } */
358+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
359+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
360 /* { dg-final { cleanup-tree-dump "vect" } } */
361
362=== modified file 'gcc/testsuite/gcc.dg/vect/vect-outer-1b.c'
363--- old/gcc/testsuite/gcc.dg/vect/vect-outer-1b.c 2007-08-19 11:02:48 +0000
364+++ new/gcc/testsuite/gcc.dg/vect/vect-outer-1b.c 2011-09-19 07:44:24 +0000
365@@ -22,5 +22,6 @@
366 }
367
368 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
369-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" } } */
370+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
371+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
372 /* { dg-final { cleanup-tree-dump "vect" } } */
373
374=== modified file 'gcc/testsuite/gcc.dg/vect/vect-outer-2b.c'
375--- old/gcc/testsuite/gcc.dg/vect/vect-outer-2b.c 2009-05-08 12:39:01 +0000
376+++ new/gcc/testsuite/gcc.dg/vect/vect-outer-2b.c 2011-09-19 07:44:24 +0000
377@@ -37,5 +37,6 @@
378 return 0;
379 }
380
381-/* { dg-final { scan-tree-dump-times "strided access in outer loop." 1 "vect" } } */
382+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
383+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
384 /* { dg-final { cleanup-tree-dump "vect" } } */
385
386=== modified file 'gcc/testsuite/gcc.dg/vect/vect-outer-3a.c'
387--- old/gcc/testsuite/gcc.dg/vect/vect-outer-3a.c 2009-05-08 12:39:01 +0000
388+++ new/gcc/testsuite/gcc.dg/vect/vect-outer-3a.c 2011-09-19 07:44:24 +0000
389@@ -49,5 +49,6 @@
390 }
391
392 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail vect_no_align } } } */
393-/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" } } */
394+/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { xfail vect_multiple_sizes } } } */
395+/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 3 "vect" { target vect_multiple_sizes } } } */
396 /* { dg-final { cleanup-tree-dump "vect" } } */
397
398=== modified file 'gcc/testsuite/gcc.dg/vect/vect-outer-3b.c'
399--- old/gcc/testsuite/gcc.dg/vect/vect-outer-3b.c 2009-05-08 12:39:01 +0000
400+++ new/gcc/testsuite/gcc.dg/vect/vect-outer-3b.c 2011-09-19 07:44:24 +0000
401@@ -49,5 +49,6 @@
402 }
403
404 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
405-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" } } */
406+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { xfail vect_multiple_sizes } } } */
407+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 4 "vect" { target vect_multiple_sizes } } } */
408 /* { dg-final { cleanup-tree-dump "vect" } } */
409
410=== modified file 'gcc/testsuite/gcc.dg/vect/vect-outer-5.c'
411--- old/gcc/testsuite/gcc.dg/vect/vect-outer-5.c 2011-04-28 11:46:58 +0000
412+++ new/gcc/testsuite/gcc.dg/vect/vect-outer-5.c 2011-09-19 07:44:24 +0000
413@@ -1,5 +1,4 @@
414 /* { dg-require-effective-target vect_float } */
415-/* { dg-add-options quad_vectors } */
416
417 #include <stdarg.h>
418 #include <signal.h>
419
420=== modified file 'gcc/testsuite/gcc.dg/vect/vect-peel-1.c'
421--- old/gcc/testsuite/gcc.dg/vect/vect-peel-1.c 2011-01-10 12:41:40 +0000
422+++ new/gcc/testsuite/gcc.dg/vect/vect-peel-1.c 2011-09-19 07:44:24 +0000
423@@ -1,5 +1,4 @@
424 /* { dg-require-effective-target vect_int } */
425-/* { dg-add-options quad_vectors } */
426
427 #include <stdarg.h>
428 #include "tree-vect.h"
429
430=== modified file 'gcc/testsuite/gcc.dg/vect/vect-peel-2.c'
431--- old/gcc/testsuite/gcc.dg/vect/vect-peel-2.c 2011-01-10 12:41:40 +0000
432+++ new/gcc/testsuite/gcc.dg/vect/vect-peel-2.c 2011-09-19 07:44:24 +0000
433@@ -1,5 +1,4 @@
434 /* { dg-require-effective-target vect_int } */
435-/* { dg-add-options quad_vectors } */
436
437 #include <stdarg.h>
438 #include "tree-vect.h"
439
440=== modified file 'gcc/testsuite/gcc.dg/vect/vect-peel-4.c'
441--- old/gcc/testsuite/gcc.dg/vect/vect-peel-4.c 2011-01-10 12:41:40 +0000
442+++ new/gcc/testsuite/gcc.dg/vect/vect-peel-4.c 2011-09-19 07:44:24 +0000
443@@ -6,12 +6,12 @@
444 #define N 128
445
446 int ib[N+7];
447+int ia[N+1];
448
449 __attribute__ ((noinline))
450 int main1 ()
451 {
452 int i;
453- int ia[N+1];
454
455 /* Don't peel keeping one load and the store aligned. */
456 for (i = 0; i <= N; i++)
457
458=== modified file 'gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c'
459--- old/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c 2010-05-27 12:23:45 +0000
460+++ new/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c 2011-09-19 07:44:24 +0000
461@@ -58,7 +58,8 @@
462 }
463
464 /* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" { xfail *-*-* } } } */
465-/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" } } */
466+/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" { xfail vect_multiple_sizes } } } */
467+/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 2 "vect" { target vect_multiple_sizes } } } */
468
469 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
470
471
472=== modified file 'gcc/testsuite/gfortran.dg/vect/pr19049.f90'
473--- old/gcc/testsuite/gfortran.dg/vect/pr19049.f90 2005-07-25 11:05:07 +0000
474+++ new/gcc/testsuite/gfortran.dg/vect/pr19049.f90 2011-09-19 07:44:24 +0000
475@@ -19,6 +19,7 @@
476 end
477
478 ! { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } }
479-! { dg-final { scan-tree-dump-times "complicated access pattern" 1 "vect" } }
480+! { dg-final { scan-tree-dump-times "complicated access pattern" 1 "vect" { xfail vect_multiple_sizes } } }
481+! { dg-final { scan-tree-dump-times "complicated access pattern" 2 "vect" { target vect_multiple_sizes } } }
482 ! { dg-final { cleanup-tree-dump "vect" } }
483
484
485=== modified file 'gcc/testsuite/lib/target-supports.exp'
486--- old/gcc/testsuite/lib/target-supports.exp 2011-08-13 08:32:32 +0000
487+++ new/gcc/testsuite/lib/target-supports.exp 2011-09-20 07:54:28 +0000
488@@ -3265,6 +3265,24 @@
489 }]
490 }
491
492+# Return 1 if the target supports multiple vector sizes
493+
494+proc check_effective_target_vect_multiple_sizes { } {
495+ global et_vect_multiple_sizes
496+
497+ if [info exists et_vect_multiple_sizes_saved] {
498+ verbose "check_effective_target_vect_multiple_sizes: using cached result" 2
499+ } else {
500+ set et_vect_multiple_sizes_saved 0
501+ if { ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } {
502+ set et_vect_multiple_sizes_saved 1
503+ }
504+ }
505+
506+ verbose "check_effective_target_vect_multiple_sizes: returning $et_vect_multiple_sizes_saved" 2
507+ return $et_vect_multiple_sizes_saved
508+}
509+
510 # Return 1 if the target supports section-anchors
511
512 proc check_effective_target_section_anchors { } {
513@@ -3648,11 +3666,11 @@
514 return $flags
515 }
516
517-# Add to FLAGS the flags needed to enable 128-bit vectors.
518+# Add to FLAGS the flags needed to enable 64-bit vectors.
519
520-proc add_options_for_quad_vectors { flags } {
521+proc add_options_for_double_vectors { flags } {
522 if [is-effective-target arm_neon_ok] {
523- return "$flags -mvectorize-with-neon-quad"
524+ return "$flags -mvectorize-with-neon-double"
525 }
526
527 return $flags
528