]> gcc.gnu.org Git - gcc.git/commitdiff
target-supports.exp: New effective targets for architectures capable of performing...
authorThomas Preud'homme <thomas.preudhomme@arm.com>
Fri, 23 May 2014 02:47:45 +0000 (02:47 +0000)
committerThomas Preud'homme <thopre01@gcc.gnu.org>
Fri, 23 May 2014 02:47:45 +0000 (02:47 +0000)
2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>

* lib/target-supports.exp: New effective targets for architectures
  capable of performing byte swap.
* gcc.dg/optimize-bswapdi-1.c: Convert to new bswap target.
* gcc.dg/optimize-bswapdi-2.c: Likewise.
* gcc.dg/optimize-bswapsi-1.c: Likewise.

From-SVN: r210842

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/optimize-bswapdi-1.c
gcc/testsuite/gcc.dg/optimize-bswapdi-2.c
gcc/testsuite/gcc.dg/optimize-bswapsi-1.c
gcc/testsuite/lib/target-supports.exp

index a799992e502aa7210d4a0a18757d1af78bc331c2..139e750eccf19200fab7a3edf58443ac49d0cef2 100644 (file)
@@ -1,3 +1,11 @@
+2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * lib/target-supports.exp: New effective targets for architectures
+       capable of performing byte swap.
+       * gcc.dg/optimize-bswapdi-1.c: Convert to new bswap target.
+       * gcc.dg/optimize-bswapdi-2.c: Likewise.
+       * gcc.dg/optimize-bswapsi-1.c: Likewise.
+
 2014-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/61088
index 7d557f369c37f19a6c6a1954c2aeebb43659a4fe..6142e55c51d9b8b995b8532ae248c34825365d3e 100644 (file)
@@ -1,6 +1,6 @@
-/* { dg-do compile { target arm*-*-* alpha*-*-* ia64*-*-* x86_64-*-* s390x-*-* powerpc*-*-* rs6000-*-* } } */
+/* { dg-do compile } */
+/* { dg-require-effective-target bswap64 } */
 /* { dg-require-effective-target stdint_types } */
-/* { dg-require-effective-target lp64 } */
 /* { dg-options "-O2 -fdump-tree-bswap" } */
 
 #include <stdint.h>
index 6e2821db9904ee03b5db2a6154adb0b3957efcaa..b8ad2c13c40dfbf202f6081ddd81f6569bad2315 100644 (file)
@@ -1,6 +1,6 @@
-/* { dg-do compile { target arm*-*-* alpha*-*-* ia64*-*-* x86_64-*-* s390x-*-* powerpc*-*-* rs6000-*-* } } */
+/* { dg-do compile } */
+/* { dg-require-effective-target bswap64 } */
 /* { dg-require-effective-target stdint_types } */
-/* { dg-require-effective-target lp64 } */
 /* { dg-options "-O2 -fdump-tree-bswap" } */
 
 #include <stdint.h>
index 78238e309558368d8563816526cc7dfe7822602b..33d0bb0fa77d29f3da0d50eb3f91d25393ef3f29 100644 (file)
@@ -1,4 +1,5 @@
-/* { dg-do compile { target arm*-*-* alpha*-*-* i?86-*-* powerpc*-*-* rs6000-*-* x86_64-*-* s390*-*-* } } */
+/* { dg-do compile } */
+/* { dg-require-effective-target bswap32 } */
 /* { dg-require-effective-target stdint_types } */
 /* { dg-options "-O2 -fdump-tree-bswap" } */
 /* { dg-options "-O2 -fdump-tree-bswap -march=z900" { target s390-*-* } } */
index 7304f5275ee5bf92050e698bcaadb890e1bb5c6a..07f045aa477c8b6a38ecbfe6db631fa1258c1ca5 100644 (file)
@@ -4804,6 +4804,90 @@ proc check_effective_target_sync_long_long_runtime { } {
     }
 }
 
+# Return 1 if the target supports byte swap instructions.
+
+proc check_effective_target_bswap { } {
+    global et_bswap_saved
+
+    if [info exists et_bswap_saved] {
+        verbose "check_effective_target_bswap: using cached result" 2
+    } else {
+       set et_bswap_saved 0
+       if { [istarget aarch64-*-*]
+            || [istarget alpha*-*-*]
+            || [istarget arm*-*-*]
+            || [istarget i?86-*-*]
+            || [istarget m68k-*-*]
+            || [istarget powerpc*-*-*]
+            || [istarget rs6000-*-*]
+            || [istarget s390*-*-*]
+            || [istarget x86_64-*-*] } {
+           set et_bswap_saved 1
+       }
+    }
+
+    verbose "check_effective_target_bswap: returning $et_bswap_saved" 2
+    return $et_bswap_saved
+}
+
+# Return 1 if the target supports 16-bit byte swap instructions.
+
+proc check_effective_target_bswap16 { } {
+    global et_bswap16_saved
+
+    if [info exists et_bswap16_saved] {
+       verbose "check_effective_target_bswap16: using cached result" 2
+    } else {
+       set et_bswap16_saved 0
+       if { [is-effective-target bswap]
+            && ![istarget alpha*-*-*]
+            && ![istarget i?86-*-*]
+            && ![istarget x86_64-*-*] } {
+          set et_bswap16_saved 1
+       }
+    }
+
+    verbose "check_effective_target_bswap16: returning $et_bswap16_saved" 2
+    return $et_bswap16_saved
+}
+
+# Return 1 if the target supports 32-bit byte swap instructions.
+
+proc check_effective_target_bswap32 { } {
+    global et_bswap32_saved
+
+    if [info exists et_bswap32_saved] {
+       verbose "check_effective_target_bswap32: using cached result" 2
+    } else {
+       set et_bswap32_saved 0
+       if { [is-effective-target bswap] } {
+          set et_bswap32_saved 1
+       }
+    }
+
+    verbose "check_effective_target_bswap32: returning $et_bswap32_saved" 2
+    return $et_bswap32_saved
+}
+
+# Return 1 if the target supports 64-bit byte swap instructions.
+
+proc check_effective_target_bswap64 { } {
+    global et_bswap64_saved
+
+    if [info exists et_bswap64_saved] {
+        verbose "check_effective_target_bswap64: using cached result" 2
+    } else {
+       set et_bswap64_saved 0
+       if { [is-effective-target bswap]
+            && [is-effective-target lp64] } {
+          set et_bswap64_saved 1
+       }
+    }
+
+    verbose "check_effective_target_bswap64: returning $et_bswap64_saved" 2
+    return $et_bswap64_saved
+}
+
 # Return 1 if the target supports atomic operations on "int" and "long".
 
 proc check_effective_target_sync_int_long { } {
This page took 0.087688 seconds and 5 git commands to generate.