target-supports.exp (check_effective_target_vect_strided): Replace with...
authorRichard Sandiford <richard.sandiford@linaro.org>
Tue, 3 May 2011 07:49:46 +0000 (07:49 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 3 May 2011 07:49:46 +0000 (07:49 +0000)
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_vect_strided):
Replace with...
(check_effective_target_vect_strided2)
(check_effective_target_vect_strided3)
(check_effective_target_vect_strided4)
(check_effective_target_vect_strided8): ...these new functions.

* gcc.dg/vect/O3-pr39675-2.c: Update accordingly.
* gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c: Likewise.
* gcc.dg/vect/fast-math-slp-27.c: Likewise.
* gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c: Likewise.
* gcc.dg/vect/pr37539.c: Likewise.
* gcc.dg/vect/slp-11a.c: Likewise.
* gcc.dg/vect/slp-11b.c: Likewise.
* gcc.dg/vect/slp-11c.c: Likewise.
* gcc.dg/vect/slp-12a.c: Likewise.
* gcc.dg/vect/slp-12b.c: Likewise.
* gcc.dg/vect/slp-18.c: Likewise.
* gcc.dg/vect/slp-19a.c: Likewise.
* gcc.dg/vect/slp-19b.c: Likewise.
* gcc.dg/vect/slp-21.c: Likewise.
* gcc.dg/vect/slp-23.c: Likewise.
* gcc.dg/vect/vect-cselim-1.c: Likewise.

* gcc.dg/vect/fast-math-vect-complex-3.c: Use vect_stridedN
instead of vect_interleave && vect_extract_even_odd.
* gcc.dg/vect/no-scevccp-outer-10a.c: Likewise.
* gcc.dg/vect/no-scevccp-outer-10b.c: Likewise.
* gcc.dg/vect/no-scevccp-outer-20.c: Likewise.
* gcc.dg/vect/vect-1.c: Likewise.
* gcc.dg/vect/vect-10.c: Likewise.
* gcc.dg/vect/vect-98.c: Likewise.
* gcc.dg/vect/vect-107.c: Likewise.
* gcc.dg/vect/vect-strided-a-mult.c: Likewise.
* gcc.dg/vect/vect-strided-a-u16-i2.c: Likewise.
* gcc.dg/vect/vect-strided-a-u16-i4.c: Likewise.
* gcc.dg/vect/vect-strided-a-u16-mult.c: Likewise.
* gcc.dg/vect/vect-strided-a-u32-mult.c: Likewise.
* gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Likewise.
* gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Likewise.
* gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Likewise.
* gcc.dg/vect/vect-strided-float.c: Likewise.
* gcc.dg/vect/vect-strided-mult-char-ls.c: Likewise.
* gcc.dg/vect/vect-strided-mult.c: Likewise.
* gcc.dg/vect/vect-strided-same-dr.c: Likewise.
* gcc.dg/vect/vect-strided-u16-i2.c: Likewise.
* gcc.dg/vect/vect-strided-u16-i4.c: Likewise.
* gcc.dg/vect/vect-strided-u32-i4.c: Likewise.
* gcc.dg/vect/vect-strided-u32-i8.c: Likewise.
* gcc.dg/vect/vect-strided-u32-mult.c: Likewise.
* gcc.dg/vect/vect-strided-u8-i2-gap.c: Likewise.
* gcc.dg/vect/vect-strided-u8-i2.c: Likewise.
* gcc.dg/vect/vect-strided-u8-i8-gap2.c: Likewise.
* gcc.dg/vect/vect-strided-u8-i8-gap4.c: Likewise.
* gcc.dg/vect/vect-strided-u8-i8-gap7.c: Likewise.
* gcc.dg/vect/vect-strided-u8-i8.c: Likewise.
* gcc.dg/vect/vect-vfa-03.c: Likewise.

* gcc.dg/vect/no-scevccp-outer-18.c: Add vect_stridedN to the
target condition.
* gcc.dg/vect/pr30843.c: Likewise.
* gcc.dg/vect/pr33866.c: Likewise.
* gcc.dg/vect/slp-reduc-6.c: Likewise.
* gcc.dg/vect/vect-strided-store-a-u8-i2.c: Likewise.
* gcc.dg/vect/vect-strided-store-u16-i4.c: Likewise.
* gcc.dg/vect/vect-strided-store-u32-i2.c: Likewise.

From-SVN: r173295

57 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/O3-pr39675-2.c
gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c
gcc/testsuite/gcc.dg/vect/fast-math-slp-27.c
gcc/testsuite/gcc.dg/vect/fast-math-vect-complex-3.c
gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c
gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c
gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c
gcc/testsuite/gcc.dg/vect/no-scevccp-outer-20.c
gcc/testsuite/gcc.dg/vect/pr30843.c
gcc/testsuite/gcc.dg/vect/pr33866.c
gcc/testsuite/gcc.dg/vect/pr37539.c
gcc/testsuite/gcc.dg/vect/slp-11a.c
gcc/testsuite/gcc.dg/vect/slp-11b.c
gcc/testsuite/gcc.dg/vect/slp-11c.c
gcc/testsuite/gcc.dg/vect/slp-12a.c
gcc/testsuite/gcc.dg/vect/slp-12b.c
gcc/testsuite/gcc.dg/vect/slp-18.c
gcc/testsuite/gcc.dg/vect/slp-19a.c
gcc/testsuite/gcc.dg/vect/slp-19b.c
gcc/testsuite/gcc.dg/vect/slp-21.c
gcc/testsuite/gcc.dg/vect/slp-23.c
gcc/testsuite/gcc.dg/vect/slp-reduc-6.c
gcc/testsuite/gcc.dg/vect/vect-1.c
gcc/testsuite/gcc.dg/vect/vect-10.c
gcc/testsuite/gcc.dg/vect/vect-107.c
gcc/testsuite/gcc.dg/vect/vect-98.c
gcc/testsuite/gcc.dg/vect/vect-cselim-1.c
gcc/testsuite/gcc.dg/vect/vect-strided-a-mult.c
gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-i2.c
gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-i4.c
gcc/testsuite/gcc.dg/vect/vect-strided-a-u16-mult.c
gcc/testsuite/gcc.dg/vect/vect-strided-a-u32-mult.c
gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i2-gap.c
gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i8-gap2.c
gcc/testsuite/gcc.dg/vect/vect-strided-a-u8-i8-gap7.c
gcc/testsuite/gcc.dg/vect/vect-strided-float.c
gcc/testsuite/gcc.dg/vect/vect-strided-mult-char-ls.c
gcc/testsuite/gcc.dg/vect/vect-strided-mult.c
gcc/testsuite/gcc.dg/vect/vect-strided-same-dr.c
gcc/testsuite/gcc.dg/vect/vect-strided-store-a-u8-i2.c
gcc/testsuite/gcc.dg/vect/vect-strided-store-u16-i4.c
gcc/testsuite/gcc.dg/vect/vect-strided-store-u32-i2.c
gcc/testsuite/gcc.dg/vect/vect-strided-u16-i2.c
gcc/testsuite/gcc.dg/vect/vect-strided-u16-i4.c
gcc/testsuite/gcc.dg/vect/vect-strided-u32-i4.c
gcc/testsuite/gcc.dg/vect/vect-strided-u32-i8.c
gcc/testsuite/gcc.dg/vect/vect-strided-u32-mult.c
gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2-gap.c
gcc/testsuite/gcc.dg/vect/vect-strided-u8-i2.c
gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap2.c
gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap4.c
gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8-gap7.c
gcc/testsuite/gcc.dg/vect/vect-strided-u8-i8.c
gcc/testsuite/gcc.dg/vect/vect-vfa-03.c
gcc/testsuite/lib/target-supports.exp

index ef932387e5f7cdf611d5250ef603e2aaa90aab6c..0a29bb2113cf1963c5dfb257c453c9d458cc7fdc 100644 (file)
@@ -1,3 +1,72 @@
+2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * lib/target-supports.exp (check_effective_target_vect_strided):
+       Replace with...
+       (check_effective_target_vect_strided2)
+       (check_effective_target_vect_strided3)
+       (check_effective_target_vect_strided4)
+       (check_effective_target_vect_strided8): ...these new functions.
+
+       * gcc.dg/vect/O3-pr39675-2.c: Update accordingly.
+       * gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c: Likewise.
+       * gcc.dg/vect/fast-math-slp-27.c: Likewise.
+       * gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c: Likewise.
+       * gcc.dg/vect/pr37539.c: Likewise.
+       * gcc.dg/vect/slp-11a.c: Likewise.
+       * gcc.dg/vect/slp-11b.c: Likewise.
+       * gcc.dg/vect/slp-11c.c: Likewise.
+       * gcc.dg/vect/slp-12a.c: Likewise.
+       * gcc.dg/vect/slp-12b.c: Likewise.
+       * gcc.dg/vect/slp-18.c: Likewise.
+       * gcc.dg/vect/slp-19a.c: Likewise.
+       * gcc.dg/vect/slp-19b.c: Likewise.
+       * gcc.dg/vect/slp-21.c: Likewise.
+       * gcc.dg/vect/slp-23.c: Likewise.
+       * gcc.dg/vect/vect-cselim-1.c: Likewise.
+
+       * gcc.dg/vect/fast-math-vect-complex-3.c: Use vect_stridedN
+       instead of vect_interleave && vect_extract_even_odd.
+       * gcc.dg/vect/no-scevccp-outer-10a.c: Likewise.
+       * gcc.dg/vect/no-scevccp-outer-10b.c: Likewise.
+       * gcc.dg/vect/no-scevccp-outer-20.c: Likewise.
+       * gcc.dg/vect/vect-1.c: Likewise.
+       * gcc.dg/vect/vect-10.c: Likewise.
+       * gcc.dg/vect/vect-98.c: Likewise.
+       * gcc.dg/vect/vect-107.c: Likewise.
+       * gcc.dg/vect/vect-strided-a-mult.c: Likewise.
+       * gcc.dg/vect/vect-strided-a-u16-i2.c: Likewise.
+       * gcc.dg/vect/vect-strided-a-u16-i4.c: Likewise.
+       * gcc.dg/vect/vect-strided-a-u16-mult.c: Likewise.
+       * gcc.dg/vect/vect-strided-a-u32-mult.c: Likewise.
+       * gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Likewise.
+       * gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Likewise.
+       * gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Likewise.
+       * gcc.dg/vect/vect-strided-float.c: Likewise.
+       * gcc.dg/vect/vect-strided-mult-char-ls.c: Likewise.
+       * gcc.dg/vect/vect-strided-mult.c: Likewise.
+       * gcc.dg/vect/vect-strided-same-dr.c: Likewise.
+       * gcc.dg/vect/vect-strided-u16-i2.c: Likewise.
+       * gcc.dg/vect/vect-strided-u16-i4.c: Likewise.
+       * gcc.dg/vect/vect-strided-u32-i4.c: Likewise.
+       * gcc.dg/vect/vect-strided-u32-i8.c: Likewise.
+       * gcc.dg/vect/vect-strided-u32-mult.c: Likewise.
+       * gcc.dg/vect/vect-strided-u8-i2-gap.c: Likewise.
+       * gcc.dg/vect/vect-strided-u8-i2.c: Likewise.
+       * gcc.dg/vect/vect-strided-u8-i8-gap2.c: Likewise.
+       * gcc.dg/vect/vect-strided-u8-i8-gap4.c: Likewise.
+       * gcc.dg/vect/vect-strided-u8-i8-gap7.c: Likewise.
+       * gcc.dg/vect/vect-strided-u8-i8.c: Likewise.
+       * gcc.dg/vect/vect-vfa-03.c: Likewise.
+
+       * gcc.dg/vect/no-scevccp-outer-18.c: Add vect_stridedN to the
+       target condition.
+       * gcc.dg/vect/pr30843.c: Likewise.
+       * gcc.dg/vect/pr33866.c: Likewise.
+       * gcc.dg/vect/slp-reduc-6.c: Likewise.
+       * gcc.dg/vect/vect-strided-store-a-u8-i2.c: Likewise.
+       * gcc.dg/vect/vect-strided-store-u16-i4.c: Likewise.
+       * gcc.dg/vect/vect-strided-store-u32-i2.c: Likewise.
+
 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
 
        * gcc.dg/vect/slp-11.c: Split into...
index 0537375898025119f7dd68d153caf0a34b498ce0..400ff29164e4b3cd79b49322244757fdce40d6d9 100644 (file)
@@ -26,7 +26,7 @@ foo ()
     }
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target vect_strided } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided4 } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target vect_strided4 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 4d75d565b982f16cc9c2175f42c4f41fa69561c6..d9adf6f333ce70a33167187e7a8a2b19c0274dbc 100644 (file)
@@ -113,7 +113,7 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect"  {target { vect_strided && vect_int_mult } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" {target { vect_strided && vect_int_mult } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect"  {target { vect_strided8 && vect_int_mult } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" {target { vect_strided8 && vect_int_mult } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 81240023777ac383d66bdcdc3458f36f7c19137c..4c2c5c510f44669b743b0a46878f576df03386df 100644 (file)
@@ -13,5 +13,5 @@ void foo(void)
    }
 }
 
-/* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" { target vect_strided } } } */
+/* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 16da4fedb0e4da0a3984e1ca5e8d9fd973b4827f..db55b30098d606b3298b147e42d435e5899f22e5 100644 (file)
@@ -56,5 +56,5 @@ main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave  && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index dc01e44508b3a7aa02ed26a5e4a1d644a9cd93db..38906a94af2b7d3da834d727f329075ed49659a3 100644 (file)
@@ -65,5 +65,5 @@ main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { xfail { vect_no_align || {! vect_strided } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { xfail { vect_no_align || { ! vect_strided2 } } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 9a71b498da75097d83a1429e1bae6596b47cecb3..95906baedd6d8400efe56266bcf01d3f2352c715 100644 (file)
@@ -54,5 +54,5 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index b28111c22c8836a24686ecb1e5d21489de6f38d9..544b89ae8c632d11291e29e30047486ad875cf6a 100644 (file)
@@ -53,5 +53,5 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 7a6788a0da216541f9648e2f67b52150c5f97fe4..60cb00de48571273607e8325c5e2f4539c9bf991 100644 (file)
@@ -47,5 +47,5 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { target vect_interleave } } } */
+/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { target { vect_interleave || vect_strided2 } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 18e50874a5c129b8ff66cff0a6ee6f4948a2a560..22b4aa96f60f4bc6cfc93046b02e0d02c2e0e5cd 100644 (file)
@@ -50,5 +50,5 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 616b618f4d837ec54fe20196b9cc4fe56a2b243a..2e0855f6cb814ded78c5948c1b0b9777d7207949 100644 (file)
@@ -20,6 +20,6 @@ void dacP98FillRGBMap (unsigned char *pBuffer)
     }
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave || vect_strided4 } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index 9beaeff5b4b64bb8f93ee8cd0c35ec3bcc0b6396..8adb2e7edc120e1e4213692fe34d083cc11b32a9 100644 (file)
@@ -27,6 +27,6 @@ void test_select_fill_hyper_simple (long *offset)
 }
 
 /* Needs interleaving support.  */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave || vect_strided2 } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index e4d3cb87ec99f71c1368fab86a6fd0b0ddcd36d0..560c484636c9195e1a7241d0930823491dcb05c1 100644 (file)
@@ -40,7 +40,7 @@ int main ()
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target vect_strided } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target { vect_strided4 && vect_strided2 } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
 
index 560146bc919ab520f1c70986855b0b262d53cc2d..520bb74df2b09899c1844ec4c708d85bf6f4238d 100644 (file)
@@ -69,7 +69,7 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_strided && vect_int_mult } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { vect_strided && vect_int_mult } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_strided8 && vect_int_mult } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { vect_strided8 && vect_int_mult } } } } } */
 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index f35fd5cbe4fb14a6105f717573e83e5308aad386..6942c578b6f0007a57bfc823202d953f36ffd808 100644 (file)
@@ -43,7 +43,7 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_strided && vect_int_mult } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { vect_strided && vect_int_mult } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_strided4 && vect_int_mult } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { vect_strided4 && vect_int_mult } } } } } */
 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index bf1118ee8073d109e316a59475f686e22b298c11..42b358aa697a335c13147f97c680eecabbfe85ae 100644 (file)
@@ -40,7 +40,7 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { { vect_uintfloat_cvt && vect_strided } && vect_int_mult } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { { vect_uintfloat_cvt && vect_strided } && vect_int_mult } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { { vect_uintfloat_cvt && vect_strided2 } && vect_int_mult } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { { vect_uintfloat_cvt && vect_strided2 } && vect_int_mult } } } } } */
 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0  "vect"  } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index b591570ce39c2ca891c10a3f7712801dca3d18db..5c1c5a7a50cca257562b0c04f7137dbf9009938a 100644 (file)
@@ -73,8 +73,8 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_strided && vect_int_mult } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { vect_strided && vect_int_mult } } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target { vect_strided && vect_int_mult } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" { target { ! { vect_strided && vect_int_mult } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_strided8 && vect_int_mult } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! { vect_strided8 && vect_int_mult } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target { vect_strided8 && vect_int_mult } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" { target { ! { vect_strided8 && vect_int_mult } } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 248662612685a14b258830b78eb6832a045d353a..69e9f315ff4201f4deabcd6c4a65ff462e3bb173 100644 (file)
@@ -43,9 +43,9 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  {target { vect_strided && vect_int_mult } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect"  {target { { ! { vect_int_mult }} || { ! {vect_strided}}} } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect"  {target { vect_strided && vect_int_mult } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect"  {target { { ! { vect_int_mult }} || { ! {vect_strided}}} } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_strided2 && vect_int_mult } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect"  { target { ! { vect_strided2 && vect_int_mult } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect"  { target { vect_strided2 && vect_int_mult } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect"  { target { ! { vect_strided2 && vect_int_mult } } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 8cdb0ddb9ee97dbf5b7fa51a8b04a77ea3424ba0..6cc6fbae346094a857393ae187eea2f8e5afce5f 100644 (file)
@@ -91,7 +91,7 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_strided } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { target { vect_strided } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { target vect_strided8 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 0a0e76d70696b3543f24970bb0c65394df0356bb..02a4cd008b68efc5af3c2496aeedde68a1767b74 100644 (file)
@@ -54,8 +54,8 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! vect_strided } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target vect_strided } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" { target { ! vect_strided } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! vect_strided8 } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target vect_strided8 } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" { target { ! vect_strided8} } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index a25152377f1f0e20aae5cc3d4c71102973c881e0..1f29a0d2e4dedd8d0448b03cd3367c31a01b6210 100644 (file)
@@ -51,8 +51,8 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! vect_strided } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target vect_strided } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" { target { ! vect_strided } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided4 } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! vect_strided4 } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target vect_strided4 } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" { target { ! vect_strided4 } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index b4f4e24e0f46377a544a62c999b6ac5b246ab995..39146b8fd11f69660491f74ddabccb46e2318a6b 100644 (file)
@@ -199,9 +199,9 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect"  { target { vect_strided || vect_extract_even_odd } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target  { ! { vect_strided || vect_extract_even_odd } } } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { target vect_strided }  } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect"  { target { ! { vect_strided } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect"  { target { vect_strided4 || vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target  { ! { vect_strided4 || vect_extract_even_odd } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { target vect_strided4 }  } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect"  { target { ! { vect_strided4 } } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index dfc6de04de0b33127292eebc88ef675f9fa4b583..5a04c900e0261105eadda75e0b7493ba7143b41c 100644 (file)
@@ -106,8 +106,8 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { target { vect_strided } && {! { vect_no_align} } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! { vect_strided || vect_no_align} } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { target { vect_strided8 && { ! { vect_no_align} } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! { vect_strided8 || vect_no_align } } } } } */
 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index ccfb888fc5a9422c509539be4169408133e9b5d9..d43f329a9cbdf26e7d47136af9f46e8217a6c387 100644 (file)
@@ -42,7 +42,7 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail { vect_no_int_add || { ! vect_unpack } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail { vect_no_int_add || { ! { vect_unpack || vect_strided2 } } } } } } */
 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" } } */
 /* { dg-final { scan-tree-dump-times "different interleaving chains in one node" 1 "vect" { target { ! vect_no_int_add } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index cb12e596a72041c6630b975a4f1513ab6d0a36f9..04392ea78dab22007fa617ee4a6728e889a2e43b 100644 (file)
@@ -85,6 +85,6 @@ foo (int n)
   fbar (a);
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 6 loops" 1 "vect" { target vect_extract_even_odd } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 5 loops" 1 "vect" { xfail vect_extract_even_odd } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 6 loops" 1 "vect" { target vect_strided2 } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 5 loops" 1 "vect" { xfail vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 6447b75a4f87fa2c81cdac7cf7728c8831fe8b16..faa500d2a18b2ede615a92d765cf9e839e815228 100644 (file)
@@ -22,5 +22,5 @@ int foo ()
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { ! vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { ! vect_strided2 } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index e5d223f5dd40bd924e478c2f899c524270bbd5d0..0053b3321a4c4d08a42aff6a8a2fca20835edb15 100644 (file)
@@ -40,6 +40,6 @@ int main (void)
   return main1 ();
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_extract_even_odd } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { xfail vect_extract_even_odd } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided2 } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { xfail vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 0987ec885dc7b2354700fb5df8ea852c83c7a1f9..01c9153878f7a2edc7bdd346f9b8b9517547eae5 100644 (file)
@@ -38,6 +38,6 @@ int main (void)
 }
 
 /* Needs interleaving support.  */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { xfail  { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided4 } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { xfail  vect_strided4 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index fd15c0b71114c89bb87446eab1158f0f9c393b0e..3c21918efb7ae4dfebb1bef4923c2b4d0032117a 100644 (file)
@@ -82,5 +82,5 @@ main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { xfail { vect_no_align || {! vect_strided } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { xfail { vect_no_align || { ! vect_strided2 } } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index c88814297ec5f652ac1832748afde0030f5d50e6..779913a4f2ba7cb54640a931cce9f431cb7e9364 100644 (file)
@@ -71,6 +71,6 @@ int main (void)
   return 0;
 }   
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index 702d911ad4c8785fc0beb4a4cdbcc5b0165464f6..25cabb693c5d505fab867a6f9603aec0ec1e0bbe 100644 (file)
@@ -55,6 +55,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 93c1b582ca8786f57bb1543aaa8601902fc55ced..8f04b730f5795f9e17d344464ad882e84d19798f 100644 (file)
@@ -68,6 +68,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided4 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index afb2f4697bc3637ea13776c0e97d279585eb3ceb..cd941a827f1643991aff83363fd930b0118548c4 100644 (file)
@@ -62,6 +62,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index bac1caa1ce920047d8e8d8ba12e86ba06c9eeeda..4e742b2018069c672ff5c050fc6730899aa3704f 100644 (file)
@@ -61,6 +61,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index cda57393538c69c1cf904f61ae3943b7b201d372..9b0142b1d8d639fdad0488cc21a779b57e7fa9a6 100644 (file)
@@ -69,6 +69,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 426069ffe466653421e92ddfb662872e1214ac85..4fb5494a4d35e773621cd035a5bfbaf741d7b4fd 100644 (file)
@@ -76,6 +76,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 8dfb21be915c4dae81317c1155bedffb05fb9ea4..cc09fa608dcb67388bcf176fbcf9b076708a1c3c 100644 (file)
@@ -81,6 +81,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 95372b55ce2106b47a94a043b30040d223863574..302be5f578b60b3890fada1ebce4e3605f849e32 100644 (file)
@@ -39,7 +39,7 @@ int main (void)
 }
 
 /* Needs interleaving support.  */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { xfail { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided2 } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { xfail vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 3890a796888af6098ebba8428a0ba5b4dabbb47d..3c8062cea123367b217ea6e6b5c3d0c971613cf3 100644 (file)
@@ -71,6 +71,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 6ddf0932411a90551639510722e2ca075b646aed..49399c4e78c68a5de4a411aa3b9a1931db1a2fcd 100644 (file)
@@ -71,6 +71,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index 5f18baab4e3522c97039ddb67fa2a269f62d7b1e..f16aa1a94d739d82c3382eb37614be113d0af964 100644 (file)
@@ -72,5 +72,5 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 8548d267ede7bf5ba0012c272a579beb41b0239f..26311a8bc805add50fc08a8d78b59a3a8cdf3e8b 100644 (file)
@@ -55,6 +55,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave || vect_strided2 } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index 5c02c0da2142eed84874ac82d78cc14ad68bb5a3..19af351e6cff5837a1b15ecc51816fadf64919e0 100644 (file)
@@ -65,8 +65,8 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect"  { target { vect_interleave && vect_pack_trunc  } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { { ! { vect_interleave } } && { vect_pack_trunc } } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect"  { target { { vect_interleave || vect_strided4 } && vect_pack_trunc } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { { ! { vect_interleave || vect_strided4 } } && { vect_pack_trunc } } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
 
index c30c98d7e0d7af26c0d465b23145e2854f34a76d..3be94f10c8ae3dcf0dcc2ff8ae28e110a4bdf806 100644 (file)
@@ -39,7 +39,7 @@ int main (void)
 }
 
 /* Needs interleaving support.  */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { xfail { vect_interleave } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave || vect_strided2 } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { xfail { vect_interleave || vect_strided2 } } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index eb6ecc69bd463adfa16fb41f3a0418c074d4c1cd..6694897316ecf9533a35319c8124ee09d7f184f4 100644 (file)
@@ -55,6 +55,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index da5a72855d9e8dfda557d3d97f34292368c9c3ac..82a6c6056747bb1ef43235e80f84f69f45848c9e 100644 (file)
@@ -68,6 +68,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided4 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 96ee2544242fec26646edf1138d625d1711f4b45..d743fac1d62958802360131192e47dd945476e6d 100644 (file)
@@ -63,6 +63,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided4 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 5f5a66e631868e5ed8115dacbecf7b24b030e9af..663f3763249b74549c47cecf5cbd7442e8f7f54a 100644 (file)
@@ -77,6 +77,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index f900b71f10d2b09fdbfd0f289e7bab9b0117b6b5..d825898a469faebc0fea20b1c35b9f18c80c2fd2 100644 (file)
@@ -60,6 +60,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
 
index b18b6605851173ce6d22a697d25093dea30b30a7..8055c9b5f8fc050c5a27c031db430cc5a33324d9 100644 (file)
@@ -71,6 +71,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 2f44b8e4a3ded89cae92af51c5380c579c3b166b..be06437550ef07ecca17c2b11968c812c14ef282 100644 (file)
@@ -54,6 +54,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { target vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
    
index f5285361a3b41cfad39e038e5d4070fcefc8acd2..349e869392609be6894ac0634d06ac6f2644a29f 100644 (file)
@@ -78,6 +78,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 1bd932b8af78a16fea991dc640db50455710ae8a..537bcc87dfb573731e4e662adf4251a04dd0afce 100644 (file)
@@ -98,6 +98,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index be8ef671a362b8644e334cfb0bfec394ae0dc7c0..76cb66d0861c09c16752462742cc614f8d15e143 100644 (file)
@@ -83,6 +83,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index ff5171d92e653c141da4ceb49bb4f19236dc41f2..ff80c0418e9a54ad097f677db63c8424deb69270 100644 (file)
@@ -85,6 +85,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
   
index 7d684aa1ff06d9361fcbd7eaee50f5b92c78cf78..2c06ce6b0aedcdb629380e5bc3533fa940291172 100644 (file)
@@ -53,6 +53,6 @@ main (void)
 } 
 
 /* Needs interleaving support.  */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_interleave && vect_extract_even_odd } } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { xfail  { vect_interleave && vect_extract_even_odd } } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided2 } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { xfail  vect_strided2 } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
index 543f086035d39ce7ffa2fc5241b784d6209f8261..d3d7f75a5545117716164f65e7556c73dfec53d7 100644 (file)
@@ -3163,22 +3163,30 @@ proc check_effective_target_vect_interleave { } {
     return $et_vect_interleave_saved
 }
 
-# Return 1 if the target supports vector interleaving and extract even/odd, 0 otherwise.
-proc check_effective_target_vect_strided { } {
-    global et_vect_strided_saved
-
-    if [info exists et_vect_strided_saved] {
-        verbose "check_effective_target_vect_strided: using cached result" 2
-    } else {
-        set et_vect_strided_saved 0
-        if { [check_effective_target_vect_interleave]
-             && [check_effective_target_vect_extract_even_odd] } {
-           set et_vect_strided_saved 1
-        }
-    }
+foreach N {2 3 4 8} {
+    eval [string map [list N $N] {
+       # Return 1 if the target supports 2-vector interleaving
+       proc check_effective_target_vect_stridedN { } {
+           global et_vect_stridedN_saved
+
+           if [info exists et_vect_stridedN_saved] {
+               verbose "check_effective_target_vect_stridedN: using cached result" 2
+           } else {
+               set et_vect_stridedN_saved 0
+               if { (N & -N) == N
+                    && [check_effective_target_vect_interleave]
+                    && [check_effective_target_vect_extract_even_odd] } {
+                   set et_vect_stridedN_saved 1
+               }
+               if { [istarget arm*-*-*] && N >= 2 && N <= 4 } {
+                   set et_vect_stridedN_saved 1
+               }
+           }
 
-    verbose "check_effective_target_vect_strided: returning $et_vect_strided_saved" 2
-    return $et_vect_strided_saved
+           verbose "check_effective_target_vect_stridedN: returning $et_vect_stridedN_saved" 2
+           return $et_vect_stridedN_saved
+       }
+    }]
 }
 
 # Return 1 if the target supports section-anchors