diff --git a/kernel/arm/gemv_n_vfp.S b/kernel/arm/gemv_n_vfp.S index 505033c18..385370b7f 100644 --- a/kernel/arm/gemv_n_vfp.S +++ b/kernel/arm/gemv_n_vfp.S @@ -59,6 +59,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define I r12 +#define FP_ZERO [fp, #-228] +#define FP_ZERO_0 [fp, #-228] +#define FP_ZERO_1 [fp, #-224] + #define M [fp, #-252 ] #define A [fp, #-256 ] @@ -79,7 +83,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. pld [ YO , #Y_PRE ] pld [ YO , #Y_PRE+32 ] - vsub.f64 d8 , d8 , d8 + fldd d8 , FP_ZERO vmov.f64 d9 , d8 vmov.f64 d10 , d8 vmov.f64 d11 , d8 @@ -158,7 +162,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_F1 - vsub.f64 d12 , d12 , d12 + fldd d12 , FP_ZERO .endm @@ -185,7 +189,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S4 - vsub.f64 d12 , d12 , d12 + fldd d12 , FP_ZERO vmov.f64 d13 , d12 vmov.f64 d14 , d12 vmov.f64 d15 , d12 @@ -245,7 +249,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S1 - vsub.f64 d12 , d12 , d12 + fldd d12 , FP_ZERO .endm @@ -279,7 +283,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. pld [ YO , #Y_PRE ] - vsub.f32 s8 , s8 , s8 + flds s8 , FP_ZERO vmov.f32 s9 , s8 vmov.f32 s10 , s8 vmov.f32 s11 , s8 @@ -357,7 +361,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_F1 - vsub.f32 s12 , s12 , s12 + flds s12 , FP_ZERO .endm @@ -384,7 +388,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S4 - vsub.f32 s12 , s12 , s12 + flds s12 , FP_ZERO vmov.f32 s13 , s12 vmov.f32 s14 , s12 vmov.f32 s15 , s12 @@ -445,7 +449,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S1 - vsub.f32 s12 , s12 , s12 + flds s12 , FP_ZERO .endm @@ -494,6 +498,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. vstm r12, { s8 - s15 } // store floating point registers #endif + movs r12, #0 + str r12, FP_ZERO + str r12, FP_ZERO_1 + cmp OLD_M, #0 ble gemvn_kernel_L999 diff --git a/kernel/arm/gemv_t_vfp.S b/kernel/arm/gemv_t_vfp.S index 6a56ae9d1..c3b4e0525 100644 --- a/kernel/arm/gemv_t_vfp.S +++ b/kernel/arm/gemv_t_vfp.S @@ -59,6 +59,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define I r12 +#define FP_ZERO [fp, #-228] +#define FP_ZERO_0 [fp, #-228] +#define FP_ZERO_1 [fp, #-224] + #define N [fp, #-252 ] #define A [fp, #-256 ] @@ -75,8 +79,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_F2 - vsub.f64 d2 , d2 , d2 - vsub.f64 d3 , d3 , d3 + fldd d2, FP_ZERO + vmov.f64 d3 , d2 .endm @@ -123,7 +127,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_F1 - vsub.f64 d2 , d2 , d2 + fldd d2, FP_ZERO + vmov.f64 d3 , d2 .endm @@ -160,8 +165,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S2 - vsub.f64 d2 , d2 , d2 - vsub.f64 d3 , d3 , d3 + fldd d2, FP_ZERO + vmov.f64 d3 , d2 .endm @@ -224,7 +229,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S1 - vsub.f64 d2 , d2 , d2 + fldd d2, FP_ZERO + vmov.f64 d3 , d2 .endm @@ -276,8 +282,9 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_F2 - vsub.f32 s2 , s2 , s2 - vsub.f32 s3 , s3 , s3 + flds s2 , FP_ZERO + vmov.f32 s3 , s2 + .endm @@ -321,7 +328,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_F1 - vsub.f32 s2 , s2 , s2 + flds s2 , FP_ZERO .endm @@ -356,8 +363,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S2 - vsub.f32 s2 , s2 , s2 - vsub.f32 s3 , s3 , s3 + flds s2 , FP_ZERO + vmov.f32 s3 , s2 .endm @@ -418,7 +425,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .macro INIT_S1 - vsub.f32 s2 , s2 , s2 + flds s2 , FP_ZERO .endm @@ -488,6 +495,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. vstm r12, { s8 - s15 } // store floating point registers #endif + movs r12, #0 + str r12, FP_ZERO + str r12, FP_ZERO_1 + cmp M, #0 ble gemvt_kernel_L999 diff --git a/lapack-netlib/TESTING/nep.in b/lapack-netlib/TESTING/nep.in index c4a414910..ed6869b80 100644 --- a/lapack-netlib/TESTING/nep.in +++ b/lapack-netlib/TESTING/nep.in @@ -10,7 +10,7 @@ NEP: Data file for testing Nonsymmetric Eigenvalue Problem routines 0 5 7 3 200 Values of INIBL (nibble crossover point) 1 2 4 2 1 Values of ISHFTS (number of simultaneous shifts) 0 1 2 0 1 Values of IACC22 (select structured matrix multiply: 0, 1 or 2) -20.0 Threshold value +30.0 Threshold value T Put T to test the error exits 1 Code to interpret the seed NEP 21