target-supports.exp: New effective targets for architectures capable of performing byte swap.
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
This commit is contained in:
parent
ebfedee6d7
commit
eaa33a6a65
5 changed files with 98 additions and 5 deletions
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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-*-* } } */
|
||||
|
|
|
@ -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 { } {
|
||||
|
|
Loading…
Add table
Reference in a new issue