diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2012-12-06 10:07:41 +0000 |
---|---|---|
committer | Kyrylo Tkachov <ktkachov@gcc.gnu.org> | 2012-12-06 10:07:41 +0000 |
commit | 71aa66e4fd514cbb6dea13f17374ed2f0bba88a4 (patch) | |
tree | 7b9d7f077615fb2e7d590b2045d4d999ce3c1eb4 | |
parent | 7973996540f699588bb2db60c795e3179869620a (diff) | |
download | gcc-71aa66e4fd514cbb6dea13f17374ed2f0bba88a4.zip gcc-71aa66e4fd514cbb6dea13f17374ed2f0bba88a4.tar.gz gcc-71aa66e4fd514cbb6dea13f17374ed2f0bba88a4.tar.bz2 |
sourcebuild.texi: Document arm_v8_neon_ok.
2012-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
gcc/
* doc/sourcebuild.texi: Document arm_v8_neon_ok.
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_arm_v8_neon_ok):
New procedure.
(add_options_for_arm_v8_neon): Likewise.
From-SVN: r194245
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/doc/sourcebuild.texi | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 23 |
4 files changed, 37 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f5ca6e4..9d87b55 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2012-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * doc/sourcebuild.texi: Document arm_v8_neon_ok. + +2012-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * config/arm/arm.c (neon_itype): Define NEON_RINT enum element. (neon_builtin_data): Register vrintn, vrinta, vrintp, vrintm, vrintz, vrintx neon builtins. diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index 0f29326..ae05681 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -1560,6 +1560,10 @@ Some multilibs may be incompatible with these options. ARM target supports @code{-mfpu=fp-armv8 -mfloat-abi=softfp}. Some multilibs may be incompatible with these options. +@item arm_v8_neon_ok +ARM target supports @code{-mfpu=neon-fp-armv8 -mfloat-abi=softfp}. +Some multilibs may be incompatible with these options. + @item arm_prefer_ldrd_strd ARM target prefers @code{LDRD} and @code{STRD} instructions over @code{LDM} and @code{STM} instructions. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 30df45e..f89fe3c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2012-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * lib/target-supports.exp (check_effective_target_arm_v8_neon_ok): + New procedure. + (add_options_for_arm_v8_neon): Likewise. + 2012-12-05 Steven Bosscher <steven@gcc.gnu.org> * g++.dg/pr55604.C: New test. diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 5e830b1..ef93ad1 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2107,6 +2107,22 @@ proc check_effective_target_arm_v8_vfp_ok {} { } } +# Return 1 if this is an ARM target supporting -mfpu=neon-fp-armv8 +# -mfloat-abi=softfp +proc check_effective_target_arm_v8_neon_ok {} { + if { [check_effective_target_arm32] } { + return [check_no_compiler_messages arm_v8_neon_ok object { + int foo (void) + { + __asm__ volatile ("vrintn.f32 q0, q0"); + return 0; + } + } "-mfpu=neon-fp-armv8 -mfloat-abi=softfp"] + } else { + return 0 + } +} + # Return 1 if this is an ARM target supporting -mfpu=vfp # -mfloat-abi=hard. Some multilibs may be incompatible with these # options. @@ -2166,6 +2182,13 @@ proc add_options_for_arm_v8_vfp { flags } { return "$flags -mfpu=fp-armv8 -mfloat-abi=softfp" } +proc add_options_for_arm_v8_neon { flags } { + if { ! [check_effective_target_arm_v8_neon_ok] } { + return "$flags" + } + return "$flags -mfpu=neon-fp-armv8 -mfloat-abi=softfp" +} + # Add the options needed for NEON. We need either -mfloat-abi=softfp # or -mfloat-abi=hard, but if one is already specified by the # multilib, use it. Similarly, if a -mfpu option already enables |