diff mbox

[ARM/testsuite] Mark pr48329.f90 as unsupported on AArch32

Message ID 5371B945.4040400@arm.com
State New
Headers show

Commit Message

Ramana Radhakrishnan May 13, 2014, 6:18 a.m. UTC
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.radhakrishnan@arm.com>

         * lib/target-supports.exp 
(check_effective_target_vect_float_divide): New.
         * gfortran.dg/vect/pr48329.f90: Use this.

<DATE>  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

         * doc/sourcebuild.texi (vect_float_divide): Document.
commit a62464b026474aeb2cb1c67b0e7e03287a1fcc4f
Author: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
Date:   Tue May 13 07:13:16 2014 +0100

    Unsupport test for ARM neon with vector floating point divide.
diff mbox

Patch

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 
 #