From b61b26e45fa2c1db9be9190dafa903921fd9bfd9 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 1 Jul 2008 23:15:47 +0100 Subject: [PATCH] target-supports.exp (check_effective_target_vect_int, [...]): Check for ARM. * lib/target-supports.exp (check_effective_target_vect_int, check_effective_target_vect_shift, check_effective_target_vect_long, check_effective_target_vect_float, check_effective_target_vect_no_align, check_effective_target_vect_int_mult): Check for ARM. (check_effective_target_arm_neon): New. (check_effective_target_vect_cmdline_needed): Use it. From-SVN: r137328 --- gcc/testsuite/ChangeLog | 11 +++++++++ gcc/testsuite/lib/target-supports.exp | 35 ++++++++++++++++++++++----- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d52e4737b78..5f06629f5c7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2008-07-01 Joseph Myers + + * lib/target-supports.exp (check_effective_target_vect_int, + check_effective_target_vect_shift, + check_effective_target_vect_long, + check_effective_target_vect_float, + check_effective_target_vect_no_align, + check_effective_target_vect_int_mult): Check for ARM. + (check_effective_target_arm_neon): New. + (check_effective_target_vect_cmdline_needed): Use it. + 2008-07-01 Daniel Jacobowitz * g++.dg/other/opaque-1.C, g++.dg/other/opaque-2.C, diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index ecca42118b2..9c12dddaeed 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -1131,7 +1131,8 @@ proc check_effective_target_vect_cmdline_needed { } { || ([istarget powerpc*-*-*] && ([check_effective_target_powerpc_spe] || [check_effective_target_powerpc_altivec])) - || [istarget spu-*-*] } { + || [istarget spu-*-*] + || ([istarget arm*-*-*] && [check_effective_target_arm_neon]) } { set et_vect_cmdline_needed_saved 0 } } @@ -1158,7 +1159,8 @@ proc check_effective_target_vect_int { } { || [istarget x86_64-*-*] || [istarget sparc*-*-*] || [istarget alpha*-*-*] - || [istarget ia64-*-*] } { + || [istarget ia64-*-*] + || [check_effective_target_arm32] } { set et_vect_int_saved 1 } } @@ -1264,6 +1266,22 @@ proc check_effective_target_arm_neon_hw { } { } "-mfpu=neon -mfloat-abi=softfp"] } +# Return 1 if this is a ARM target with NEON enabled. + +proc check_effective_target_arm_neon { } { + if { [check_effective_target_arm32] } { + return [check_no_compiler_messages arm_neon object { + #ifndef __ARM_NEON__ + #error not NEON + #else + int dummy; + #endif + }] + } else { + return 0 + } +} + # Return 1 if this a Loongson-2E or -2F target using an ABI that supports # the Loongson vector modes. @@ -1395,7 +1413,8 @@ proc check_effective_target_vect_shift { } { && ![istarget powerpc-*-linux*paired*]) || [istarget ia64-*-*] || [istarget i?86-*-*] - || [istarget x86_64-*-*] } { + || [istarget x86_64-*-*] + || [check_effective_target_arm32] } { set et_vect_shift_saved 1 } } @@ -1414,6 +1433,7 @@ proc check_effective_target_vect_long { } { && ![istarget powerpc-*-linux*paired*]) && [check_effective_target_ilp32]) || [istarget x86_64-*-*] + || [check_effective_target_arm32] || ([istarget sparc*-*-*] && [check_effective_target_ilp32]) } { set answer 1 } else { @@ -1440,7 +1460,8 @@ proc check_effective_target_vect_float { } { || [istarget spu-*-*] || [istarget mipsisa64*-*-*] || [istarget x86_64-*-*] - || [istarget ia64-*-*] } { + || [istarget ia64-*-*] + || [check_effective_target_arm32] } { set et_vect_float_saved 1 } } @@ -1819,7 +1840,8 @@ proc check_effective_target_vect_no_align { } { set et_vect_no_align_saved 0 if { [istarget mipsisa64*-*-*] || [istarget sparc*-*-*] - || [istarget ia64-*-*] } { + || [istarget ia64-*-*] + || [check_effective_target_arm32] } { set et_vect_no_align_saved 1 } } @@ -2008,7 +2030,8 @@ proc check_effective_target_vect_int_mult { } { if { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) || [istarget spu-*-*] || [istarget i?86-*-*] - || [istarget x86_64-*-*] } { + || [istarget x86_64-*-*] + || [check_effective_target_arm32] } { set et_vect_int_mult_saved 1 } } -- 2.30.2