OSDN Git Service

Backport from mainline:
authorjanis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Sep 2012 17:25:39 +0000 (17:25 +0000)
committerjanis <janis@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Sep 2012 17:25:39 +0000 (17:25 +0000)
2012-07-24  Janis Johnson  <janisjo@codesourcery.com>
* lib/gcc-dg.exp (process-message): Don't ignore errors.

2012-07-25  Janis Johnson  <janisjo@codesourcery.com>
* g++.dg/cpp0x/nullptr21.c: Remove printfs, make self-checking.

2012-07-26  Janis Johnson  <janisjo@codesourcery.com>
* gcc.dg/pr45259.c: Only -fpic depends on fpic support.

2012-09-18  Janis Johnson  <janisjo@codesourcery.com>
* gcc.dg/vect/pr52298.c: Remove "dg-do run".

2012-09-18  Janis Johnson  <janisjo@codesourcery.com>
* lib/target-supports.exp
(check_effective_target_vect_widen_mult_qi_to_hi,
check_effective_target_vect_widen_mult_hi_to_si,
check_effective_target_vect_widen_mult_qi_to_hi_pattern,
check_effective_target_vect_widen_mult_hi_to_si_pattern,
check_effective_target_vect_pack_trunc,
check_effective_target_vect_unpack,
check_effective_target_vect_multiple_sizes): Check arm_neon_ok
instead of arm_none.

2012-09-18  Janis Johnson  <janisjo@codesourcery.com>
* gcc.dg/vect/no-vfa-vect-101.c: Skip a check for an irrelevant
target instead of xfailing it.
* gcc.dg/vect/no-vfa-vect-102.c: Likewise.
* gcc.dg/vect/no-vfa-vect-102a.c: Likewise.
* gcc.dg/vect/no-vfa-vect-37.c: Likewise.
* gcc.dg/vect/no-vfa-vect-79.c: Likewise.
* gcc.dg/vect/vect-104.c: Likewise.
* gcc.dg/vect/vect-outer-1-big-array.c: Likewise.
* gcc.dg/vect/vect-outer-1.c: Likewise.
* gcc.dg/vect/vect-outer-1a-big-array.c: Likewise.
* gcc.dg/vect/vect-outer-1a.c: Likewise.
* gcc.dg/vect/vect-outer-1b-big-array.c: Likewise.
* gcc.dg/vect/vect-outer-1b.c: Likewise.
* gcc.dg/vect/vect-outer-2b.c: Likewise.
* gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.
* gcc.dg/vect/vect-outer-3a.c: Likewise.
* gcc.dg/vect/vect-outer-3b.c: Likewise.
* gcc.dg/vect/vect-reduc-dot-s8b.c: Likewise.

2012-09-18  Janis Johnson  <janisjo@codesourcery.com>
* gcc.dg/vect/fast-math-pr35982.c: Skip check instead of xfail.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@191674 138bc75d-0d04-0410-961f-82ee72b054a4

24 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/nullptr21.C
gcc/testsuite/gcc.dg/pr45259.c
gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
gcc/testsuite/gcc.dg/vect/no-vfa-vect-102a.c
gcc/testsuite/gcc.dg/vect/no-vfa-vect-37.c
gcc/testsuite/gcc.dg/vect/no-vfa-vect-79.c
gcc/testsuite/gcc.dg/vect/pr52298.c
gcc/testsuite/gcc.dg/vect/vect-104.c
gcc/testsuite/gcc.dg/vect/vect-outer-1-big-array.c
gcc/testsuite/gcc.dg/vect/vect-outer-1.c
gcc/testsuite/gcc.dg/vect/vect-outer-1a-big-array.c
gcc/testsuite/gcc.dg/vect/vect-outer-1a.c
gcc/testsuite/gcc.dg/vect/vect-outer-1b-big-array.c
gcc/testsuite/gcc.dg/vect/vect-outer-1b.c
gcc/testsuite/gcc.dg/vect/vect-outer-2b.c
gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c
gcc/testsuite/gcc.dg/vect/vect-outer-3a.c
gcc/testsuite/gcc.dg/vect/vect-outer-3b.c
gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
gcc/testsuite/lib/gcc-dg.exp
gcc/testsuite/lib/target-supports.exp

index e29ca62..3a4f48e 100644 (file)
@@ -1,3 +1,53 @@
+2012-09-24  Janis Johnson  <janisjo@codesourcery.com>
+
+       Backport from mainline:
+
+       2012-07-24  Janis Johnson  <janisjo@codesourcery.com>
+       * lib/gcc-dg.exp (process-message): Don't ignore errors.
+
+       2012-07-25  Janis Johnson  <janisjo@codesourcery.com>
+       * g++.dg/cpp0x/nullptr21.c: Remove printfs, make self-checking.
+
+       2012-07-26  Janis Johnson  <janisjo@codesourcery.com>
+       * gcc.dg/pr45259.c: Only -fpic depends on fpic support.
+
+       2012-09-18  Janis Johnson  <janisjo@codesourcery.com>
+       * gcc.dg/vect/pr52298.c: Remove "dg-do run".
+
+       2012-09-18  Janis Johnson  <janisjo@codesourcery.com>
+       * lib/target-supports.exp
+       (check_effective_target_vect_widen_mult_qi_to_hi,
+       check_effective_target_vect_widen_mult_hi_to_si,
+       check_effective_target_vect_widen_mult_qi_to_hi_pattern,
+       check_effective_target_vect_widen_mult_hi_to_si_pattern,
+       check_effective_target_vect_pack_trunc,
+       check_effective_target_vect_unpack,
+       check_effective_target_vect_multiple_sizes): Check arm_neon_ok
+       instead of arm_none.
+
+       2012-09-18  Janis Johnson  <janisjo@codesourcery.com>
+       * gcc.dg/vect/no-vfa-vect-101.c: Skip a check for an irrelevant
+       target instead of xfailing it.
+       * gcc.dg/vect/no-vfa-vect-102.c: Likewise.
+       * gcc.dg/vect/no-vfa-vect-102a.c: Likewise.
+       * gcc.dg/vect/no-vfa-vect-37.c: Likewise.
+       * gcc.dg/vect/no-vfa-vect-79.c: Likewise.
+       * gcc.dg/vect/vect-104.c: Likewise.
+       * gcc.dg/vect/vect-outer-1-big-array.c: Likewise.
+       * gcc.dg/vect/vect-outer-1.c: Likewise.
+       * gcc.dg/vect/vect-outer-1a-big-array.c: Likewise.
+       * gcc.dg/vect/vect-outer-1a.c: Likewise.
+       * gcc.dg/vect/vect-outer-1b-big-array.c: Likewise.
+       * gcc.dg/vect/vect-outer-1b.c: Likewise.
+       * gcc.dg/vect/vect-outer-2b.c: Likewise.
+       * gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.
+       * gcc.dg/vect/vect-outer-3a.c: Likewise.
+       * gcc.dg/vect/vect-outer-3b.c: Likewise.
+       * gcc.dg/vect/vect-reduc-dot-s8b.c: Likewise.
+
+       2012-09-18  Janis Johnson  <janisjo@codesourcery.com>
+       * gcc.dg/vect/fast-math-pr35982.c: Skip check instead of xfail.
+
 2012-09-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        Backport from mainline:
index c30cb3c..8362bd2 100644 (file)
@@ -3,42 +3,53 @@
 
 // Test throw and catch
 
-#include <cstdio>
+extern "C" void abort (void);
 
 typedef decltype(nullptr) nullptr_t;
 
+int result[2];
+
+void __attribute__((noinline))
+foo (int i, int j)
+{
+  result[i] = j;
+}
+
 int main()
 {
   try {
     throw nullptr;
   } catch (void*) {
-    printf("Test 1 Fail");
+    foo (0, 1);
   } catch (bool) {
-    printf("Test 1 Fail");
+    foo (0, 2);
   } catch (int) {
-    printf("Test 1 Fail");
+    foo (0, 3);
   } catch (long int) {
-    printf("Test 1 Fail");
+    foo (0, 4);
   } catch (nullptr_t) {
-    printf("Test 1 OK");
+    foo (0, 5);
   } catch (...) {
-    printf("Test 1 Fail");
-  }  // { dg-output "Test 1 OK" }
+    foo (0, 6);
+  }
 
   nullptr_t mynull = 0;
   try {
     throw mynull;
   } catch (void*) {
-    printf("Test 2 Fail");
+    foo (1, 1);
   } catch (bool) {
-    printf("Test 2 Fail");
+    foo (1, 2);
   } catch (int) {
-    printf("Test 2 Fail");
+    foo (1, 3);
   } catch (long int) {
-    printf("Test 2 Fail");
+    foo (1, 4);
   } catch (nullptr_t) {
-    printf("Test 2 OK");
+    foo (1, 5);
   } catch (...) {
-    printf("Test 2 Fail");
-  }  // { dg-output "Test 2 OK" }
+    foo (1, 6);
+  }
+
+  if (result[0] != 5 || result[1] != 5)
+    abort ();
 }
index b8dc365..3b8d6bd 100644 (file)
@@ -1,6 +1,7 @@
 /* PR debug/45259 */
 /* { dg-do compile } */
-/* { dg-options "-g -O2 -fpic -w" { target fpic } } */
+/* { dg-options "-g -O2 -w -fpic" { target fpic } } */
+/* { dg-options "-g -O2 -w" { target { ! fpic } } } */
 
 struct S { void (*bar) (long); };
 struct T { struct S *t; };
index 1da8e7b..5b83456 100644 (file)
@@ -21,5 +21,5 @@ float method2_int16 (struct mem *mem)
 }
 
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_extract_even_odd || vect_strided2 } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { xfail { vect_extract_even_odd || vect_strided2 } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { vect_extract_even_odd || vect_strided2 } } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 3a54a75..6372aab 100644 (file)
@@ -45,7 +45,7 @@ int main (void)
 }
 
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index a8d3b04..2221049 100644 (file)
@@ -53,7 +53,7 @@ int main (void)
 }
 
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index 41bbbc1..d7b68e5 100644 (file)
@@ -53,7 +53,7 @@ int main (void)
 }
 
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index c8cf2ca..dff14ff 100644 (file)
@@ -58,6 +58,6 @@ int main (void)
    If/when the aliasing problems are resolved, unalignment may
    prevent vectorization on some targets.  */
 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "can't determine dependence" 4 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 3c5ce4b..1653f3d 100644 (file)
@@ -46,6 +46,6 @@ int main (void)
   If/when the aliasing problems are resolved, unalignment may
   prevent vectorization on some targets.  */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "can't determine dependence" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index c240160..453d7c8 100644 (file)
@@ -1,4 +1,3 @@
-/* { dg-do run } */
 /* { dg-options "-O1 -ftree-vectorize -fno-tree-pre -fno-tree-loop-im" } */
 
 extern void abort (void);
index 2b56ddf..107f5a7 100644 (file)
@@ -64,7 +64,7 @@ int main (void)
 }
 
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index 804c386..e277ab2 100644 (file)
@@ -22,6 +22,6 @@ foo (){
 }
 
 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 2ce8f8e..cc22fa4 100644 (file)
@@ -22,6 +22,6 @@ foo (){
 }
 
 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 9b418fa..c4150ee 100644 (file)
@@ -20,6 +20,6 @@ foo (){
 }
 
 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index a9b786e..fdf8e1a 100644 (file)
@@ -20,6 +20,6 @@ foo (){
 }
 
 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 48b7180..82579b7 100644 (file)
@@ -22,6 +22,6 @@ foo (){
 }
 
 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 815758c..7efc4fa 100644 (file)
@@ -22,6 +22,6 @@ foo (){
 }
 
 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index cb62881..12f44ba 100644 (file)
@@ -37,6 +37,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 9768a1e..c6486db 100644 (file)
@@ -49,6 +49,6 @@ int main (void)
 }
 
 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail vect_no_align } } } */
-/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 3 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 1759ee3..3d6e107 100644 (file)
@@ -49,6 +49,6 @@ int main (void)
 }
 
 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail vect_no_align } } } */
-/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 2 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "step doesn't divide the vector-size" 3 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index fda8727..1c20f20 100644 (file)
@@ -49,6 +49,6 @@ int main (void)
 }
 
 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "strided access in outer loop" 2 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "strided access in outer loop" 4 "vect" { target vect_multiple_sizes } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index dc9eb61..2ecb225 100644 (file)
@@ -58,7 +58,7 @@ int main (void)
 }
 
 /* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" { xfail vect_multiple_sizes } } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" { target { ! vect_multiple_sizes } } } } */
 /* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 2 "vect" { target vect_multiple_sizes } } } */
 
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
index 3bff8b4..b6a73fe 100644 (file)
@@ -745,7 +745,7 @@ proc process-message { msgproc msgprefix dgargs } {
     # Process the dg- directive, including adding the regular expression
     # to the new message entry in dg-messages.
     set msgcnt [llength ${dg-messages}]
-    catch { eval $msgproc $dgargs }
+    eval $msgproc $dgargs
 
     # If the target expression wasn't satisfied there is no new message.
     if { [llength ${dg-messages}] == $msgcnt } {
index 63dc0be..4a8eee1 100644 (file)
@@ -2993,7 +2993,7 @@ proc check_effective_target_vect_widen_mult_qi_to_hi { } {
            set et_vect_widen_mult_qi_to_hi_saved 0
        }
         if { [istarget powerpc*-*-*]
-              || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } {
+              || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } {
             set et_vect_widen_mult_qi_to_hi_saved 1
         }
     }
@@ -3027,7 +3027,7 @@ proc check_effective_target_vect_widen_mult_hi_to_si { } {
              || [istarget ia64-*-*]
              || [istarget i?86-*-*]
              || [istarget x86_64-*-*]
-              || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } {
+              || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } {
             set et_vect_widen_mult_hi_to_si_saved 1
         }
     }
@@ -3048,7 +3048,7 @@ proc check_effective_target_vect_widen_mult_qi_to_hi_pattern { } {
     } else {
         set et_vect_widen_mult_qi_to_hi_pattern_saved 0
         if { [istarget powerpc*-*-*]
-              || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } {
+              || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } {
             set et_vect_widen_mult_qi_to_hi_pattern_saved 1
         }
     }
@@ -3073,7 +3073,7 @@ proc check_effective_target_vect_widen_mult_hi_to_si_pattern { } {
               || [istarget ia64-*-*]
               || [istarget i?86-*-*]
               || [istarget x86_64-*-*]
-              || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } {
+              || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } {
             set et_vect_widen_mult_hi_to_si_pattern_saved 1
         }
     }
@@ -3203,7 +3203,7 @@ proc check_effective_target_vect_pack_trunc { } {
              || [istarget i?86-*-*]
              || [istarget x86_64-*-*]
              || [istarget spu-*-*]
-             || ([istarget arm*-*-*] && [check_effective_target_arm_neon]
+             || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]
                 && [check_effective_target_arm_little_endian]) } {
             set et_vect_pack_trunc_saved 1
         }
@@ -3229,7 +3229,7 @@ proc check_effective_target_vect_unpack { } {
              || [istarget x86_64-*-*] 
              || [istarget spu-*-*]
              || [istarget ia64-*-*]
-             || ([istarget arm*-*-*] && [check_effective_target_arm_neon]
+             || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]
                 && [check_effective_target_arm_little_endian]) } {
             set et_vect_unpack_saved 1
         }
@@ -3646,7 +3646,7 @@ proc check_effective_target_vect_multiple_sizes { } {
     global et_vect_multiple_sizes_saved
 
     set et_vect_multiple_sizes_saved 0
-    if { ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } {
+    if { ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]) } {
        set et_vect_multiple_sizes_saved 1
     }
     if { ([istarget x86_64-*-*] || [istarget i?86-*-*]) } {