sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
authorBin Cheng <bin.cheng@arm.com>
Wed, 25 Mar 2015 05:58:19 +0000 (05:58 +0000)
committerBin Cheng <amker@gcc.gnu.org>
Wed, 25 Mar 2015 05:58:19 +0000 (05:58 +0000)
* doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.

gcc/testsuite/ChangeLog
* lib/target-supports.exp (arm_tune_string_ops_prefer_neon): New.
* gcc.target/arm/memset-inline-4.c: Skip for
arm_tune_string_ops_prefer_neon.
* gcc.target/arm/memset-inline-5.c: Ditto.
* gcc.target/arm/memset-inline-6.c: Ditto.
* gcc.target/arm/memset-inline-8.c: Ditto.
* gcc.target/arm/memset-inline-9.c: Ditto.

From-SVN: r221651

gcc/ChangeLog
gcc/doc/sourcebuild.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/memset-inline-4.c
gcc/testsuite/gcc.target/arm/memset-inline-5.c
gcc/testsuite/gcc.target/arm/memset-inline-6.c
gcc/testsuite/gcc.target/arm/memset-inline-8.c
gcc/testsuite/gcc.target/arm/memset-inline-9.c
gcc/testsuite/lib/target-supports.exp

index 0f69aa2def8f62969fb585d62e45944a9d4e4a61..e04cf2fb3f095782a7022217ded4ef0790a87968 100644 (file)
@@ -1,3 +1,7 @@
+2015-03-25  Bin Cheng  <bin.cheng@arm.com>
+
+       * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
+
 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
 
        * config/arm/arm.opt (print_tune_info): New option.
index 58759178c2b224adb11d71aafdde1e50c1ba5fd0..c6ef40e5db78f57d5b91341b8d2e0af68cac3a28 100644 (file)
@@ -1527,6 +1527,9 @@ Some multilibs may be incompatible with this option.
 @item arm_neon
 ARM target supports generating NEON instructions.
 
+@item arm_tune_string_ops_prefer_neon
+Test CPU tune supports inlining string operations with NEON instructions.
+
 @item arm_neon_hw
 Test system supports executing NEON instructions.
 
index 4ec4386a80800e706753896baf5e5c3faee5cf30..a93a880bc91dca423a3be6ecc6fb6f65b9117cfb 100644 (file)
@@ -1,3 +1,13 @@
+2015-03-25  Bin Cheng  <bin.cheng@arm.com>
+
+       * lib/target-supports.exp (arm_tune_string_ops_prefer_neon): New.
+       * gcc.target/arm/memset-inline-4.c: Skip for
+       arm_tune_string_ops_prefer_neon.
+       * gcc.target/arm/memset-inline-5.c: Ditto.
+       * gcc.target/arm/memset-inline-6.c: Ditto.
+       * gcc.target/arm/memset-inline-8.c: Ditto.
+       * gcc.target/arm/memset-inline-9.c: Ditto.
+
 2015-03-24  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/58923
index 381a2c2099bc0a4af41d0e0e1c33db78436a0437..c1db2ee9123d8f891e5c4526512b04ae2354f340 100644 (file)
@@ -1,6 +1,5 @@
 /* { dg-do run } */
-/* { dg-skip-if "Don't inline memset using neon instructions on cortex-a9" { *-*-* } { "-mcpu=cortex-a9" } { "" } } */
-/* { dg-skip-if "Don't inline memset using neon instructions on cortex-a9" { *-*-* } { "-mtune=cortex-a9" } { "" } } */
+/* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
 /* { dg-options "-save-temps -O2 -fno-inline" } */
 /* { dg-add-options "arm_neon" } */
 
index 9107d811a94ffe9b5ec738d803bef8c2e5a4aadf..b9391f59edfb6567d62b991462de00897059f9a7 100644 (file)
@@ -1,6 +1,5 @@
 /* { dg-do run } */
-/* { dg-skip-if "Don't inline memset using neon instructions on cortex-a9" { *-*-* } { "-mcpu=cortex-a9" } { "" } } */
-/* { dg-skip-if "Don't inline memset using neon instructions on cortex-a9" { *-*-* } { "-mtune=cortex-a9" } { "" } } */
+/* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
 /* { dg-options "-save-temps -O2 -fno-inline" } */
 /* { dg-add-options "arm_neon" } */
 
index fcb2e26a95da4119882a74543b73c56068e6f8c0..0050af1b13bfc816817df5ccbe1b9a56e95c2bf9 100644 (file)
@@ -1,6 +1,5 @@
 /* { dg-do run } */
-/* { dg-skip-if "Don't inline memset using neon instructions on cortex-a9" { *-*-* } { "-mcpu=cortex-a9" } { "" } } */
-/* { dg-skip-if "Don't inline memset using neon instructions on cortex-a9" { *-*-* } { "-mtune=cortex-a9" } { "" } } */
+/* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
 /* { dg-options "-save-temps -O2 -fno-inline" } */
 /* { dg-add-options "arm_neon" } */
 
index b6e04773ffc5e42a2d8c3c903c9f6f7172928127..780e449aa3a6a795ccec3055cc4e23fd4c33509c 100644 (file)
@@ -1,6 +1,5 @@
 /* { dg-do run } */
-/* { dg-skip-if "Don't inline memset using neon instructions on cortex-a9" { *-*-* } { "-mcpu=cortex-a9" } { "" } } */
-/* { dg-skip-if "Don't inline memset using neon instructions on cortex-a9" { *-*-* } { "-mtune=cortex-a9" } { "" } } */
+/* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
 /* { dg-options "-save-temps -O2 -fno-inline"  } */
 /* { dg-add-options "arm_neon" } */
 
index be9323aae51c694e6357e3c2cc717ee1154def4c..66e18b31c2e9d14279d5b9acb2544442695b9282 100644 (file)
@@ -1,6 +1,5 @@
 /* { dg-do run } */
-/* { dg-skip-if "Don't inline memset using neon instructions on cortex-a9" { *-*-* } { "-mcpu=cortex-a9" } { "" } } */
-/* { dg-skip-if "Don't inline memset using neon instructions on cortex-a9" { *-*-* } { "-mtune=cortex-a9" } { "" } } */
+/* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
 /* { dg-options "-save-temps -Os -fno-inline" } */
 /* { dg-add-options "arm_neon" } */
 
index 6b957dea4d4d5c6f0726faa9614b9f8a7be6e1c8..b57f545fce55a6d825388e761fe46b174e28170a 100644 (file)
@@ -2954,6 +2954,14 @@ proc check_effective_target_arm_cortex_m { } {
     } "-mthumb"]
 }
 
+# Return 1 if this compilation turns on string_ops_prefer_neon on.
+
+proc check_effective_target_arm_tune_string_ops_prefer_neon { } {
+    return [check_no_messages_and_pattern arm_tune_string_ops_prefer_neon "@string_ops_prefer_neon:\t1" assembly {
+       int foo (void) { return 0; }
+    } "-O2 -mprint-tune-info" ]
+}
+
 # Return 1 if the target supports executing NEON instructions, 0
 # otherwise.  Cache the result.