The AArch32 SIMD unit doesn't have vector floating point divide. Handled
thusly. I've chosen to inherit vector floating point divide support from
target_vect_float. If this doesn't work for all targets, they can choose
to override it here otherwise.
Tested cross with the testcase on arm-none-linux-gnueabihf noting that
the test is now UNSUPPORTED.
Ok to apply ?
regards
Ramana
<DATE> Ramana Radhakrishnan <ramana.radhakrish...@arm.com>
* lib/target-supports.exp
(check_effective_target_vect_float_divide): New.
* gfortran.dg/vect/pr48329.f90: Use this.
<DATE> Ramana Radhakrishnan <ramana.radhakrish...@arm.com>
* doc/sourcebuild.texi (vect_float_divide): Document.
commit a62464b026474aeb2cb1c67b0e7e03287a1fcc4f
Author: Ramana Radhakrishnan <ramana.radhakrish...@arm.com>
Date: Tue May 13 07:13:16 2014 +0100
Unsupport test for ARM neon with vector floating point divide.
diff --git a/gcc/testsuite/gfortran.dg/vect/pr48329.f90
b/gcc/testsuite/gfortran.dg/vect/pr48329.f90
index 6ad03d4..b621a21 100644
--- a/gcc/testsuite/gfortran.dg/vect/pr48329.f90
+++ b/gcc/testsuite/gfortran.dg/vect/pr48329.f90
@@ -1,6 +1,7 @@
! { dg-do compile }
! { dg-require-effective-target vect_float }
! { dg-require-effective-target vect_intfloat_cvt }
+! { dg-require-effective-target vect_float_divide }
! { dg-additional-options "-ffast-math" }
program calcpi
diff --git a/gcc/testsuite/lib/target-supports.exp
b/gcc/testsuite/lib/target-supports.exp
index 6ab414a..fbd7474 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2059,6 +2059,25 @@ proc check_effective_target_vect_int { } {
return $et_vect_int_saved
}
+proc check_effective_target_vect_float_divide { } {
+
+ global et_vect_float_divide_saved
+
+ if [info exists et_vect_float_divide_saved] {
+ verbose "check_effective_target_vect_divide_saved: using cached
result" 2
+ } else {
+ set et_vect_float_divide_saved [check_effective_target_vect_float]
+ if { ([istarget arm*-*-*]
+ && [check_effective_target_arm_neon_ok])} {
+ set et_vect_float_divide_saved 0
+ }
+ }
+
+ verbose "check_effective_target_vect_float_divide: returning
$et_vect_float_divide_saved" 2
+ return $et_vect_float_divide_saved
+
+}
+
# Return 1 if the target supports signed int->float conversion
#