ABS bug fix...
authorRamin Zaghi <ramin@arm.com>
Fri, 11 May 2012 13:13:14 +0000 (13:13 +0000)
committerRamin Zaghi <ramin@arm.com>
Fri, 11 May 2012 13:13:14 +0000 (13:13 +0000)
headers/unit_test_common.h
source/NE10_abs.neon.s

index e1cd6b8..f9e0f4c 100644 (file)
@@ -153,13 +153,13 @@ inline int EQUALS_FLOAT( float fa, float fb , unsigned int err )
   if ( (cut1 & EXPONENT_MASK) == cut1 ) { cut1 = 0; } // zero out subnormal float values
   if ( (cut2 & EXPONENT_MASK) == cut2 ) { cut2 = 0; } // zero out subnormal float values
 
+  memcpy( &ui1,  &fa, sizeof(arm_float_t) );
+  memcpy( &ui2,  &fb, sizeof(arm_float_t) );
+
   if ( abs( cut1 - cut2 ) > err ) // this is the log() of the actual error
   {  // then we have an unacceptable error
 
      // report an unacceptable error
-     memcpy( &ui1,  &fa, sizeof(arm_float_t) );
-     memcpy( &ui2,  &fb, sizeof(arm_float_t) );
-
      fprintf( stderr, "HINT: %e (0x%04X) != %e (0x%04X) ", fa, ui1, fb, ui2 );
 
      return 0;
index 8a654c9..15c96f9 100644 (file)
@@ -401,9 +401,9 @@ abs_vec4f_neon:
 
         @ absolute values
         vabs.f32          d0, d0
-        vabs.f32          d1, d1
         vabs.f32          d2, d2
-        vabs.f32          d3, d3
+        vabs.f32          d4, d4
+        vabs.f32          d6, d6
 
         vst4.32          {d0[0], d2[0], d4[0], d6[0]}, [r0]!     @ The values are loaded like so: