]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
fix 303127 Power test suite fixes for frsqrte, vrefp, and vrsqrtefp instructions
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Fri, 6 Jul 2012 22:52:09 +0000 (22:52 +0000)
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Fri, 6 Jul 2012 22:52:09 +0000 (22:52 +0000)
The frsqrte and vrefp instructions produce an approximate result.
According to the ISA document for the POWER processor, the result will
vary in its precision for different processor implementations.  This patch
fixes the masks to be applied to the results to remove the variability
in the results.  The expected output files are also updated to reflect the
change in the result given the new masking of the result.

patch from Carl Love <cel@us.ibm.com>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12720

NEWS
none/tests/ppc32/jm-fp.stdout.exp
none/tests/ppc32/jm-insns.c
none/tests/ppc32/jm-vmx.stdout.exp
none/tests/ppc32/jm-vmx.stdout.exp_Minus_nan
none/tests/ppc64/jm-fp.stdout.exp
none/tests/ppc64/jm-vmx.stdout.exp
none/tests/ppc64/jm-vmx.stdout.exp_Minus_nan

diff --git a/NEWS b/NEWS
index 37667c50ddf56ded43da7079341e695e4a78589d..df7ec8b847e51f250b106576c63e6c826af5dbe6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -225,6 +225,7 @@ n-i-bz  Fix assert in gdbserver for watchpoints watching the same address
 302709  valgrind for ARM needs extra tls support for android emulator under Linux
 302918  Enable testing of the vmaddfp and vnsubfp instructions in the testsuite
 303116  Add support for the POWER instruction popcntb
+303127  Power test suite fixes for frsqrte, vrefp, and vrsqrtefp instructions.
 
 Release 3.7.0 (5 November 2011)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
index b2394cf3702c7528fabc16ffac7f228886dc7f31..cff9df2ce5665b7a0e9b2ce7380a8536886fd142 100644 (file)
@@ -719,8 +719,8 @@ PPC floating point arith insns with one arg:
      frsqrte 8000000000000000 => fff0000000000000
      frsqrte 7ff0000000000000 => 0000000000000000
      frsqrte fff0000000000000 => 7ff8000000000000
-     frsqrte 7ff7ffffffffffff => 7fff800000000000
-     frsqrte fff7ffffffffffff => ffff800000000000
+     frsqrte 7ff7ffffffffffff => 7fff000000000000
+     frsqrte fff7ffffffffffff => ffff000000000000
      frsqrte 7ff8000000000000 => 7ff8000000000000
      frsqrte fff8000000000000 => fff8000000000000
 
@@ -891,8 +891,8 @@ PPC floating point arith insns
     frsqrte. 8000000000000000 => fff0000000000000
     frsqrte. 7ff0000000000000 => 0000000000000000
     frsqrte. fff0000000000000 => 7ff8000000000000
-    frsqrte. 7ff7ffffffffffff => 7fff800000000000
-    frsqrte. fff7ffffffffffff => ffff800000000000
+    frsqrte. 7ff7ffffffffffff => 7fff000000000000
+    frsqrte. fff7ffffffffffff => ffff000000000000
     frsqrte. 7ff8000000000000 => 7ff8000000000000
     frsqrte. fff8000000000000 => fff8000000000000
 
index 14e2ea841005f445cb685df30703affc5044e213..038fb7377bd0c95e8dc9b315604a10518fc7cb21 100644 (file)
@@ -2042,7 +2042,7 @@ static void test_fres_ (void)
 
 static void test_frsqrte_ (void)
 {
-    __asm__ __volatile__ ("frsqrte.     17, 14");
+     __asm__ __volatile__ ("frsqrte.     17, 14");
 }
 
 static void test_frsp_ (void)
@@ -5763,6 +5763,14 @@ static void test_float_one_arg (const char* name, test_func_t func,
        res = f17;
        ur = *(uint64_t *)(&res);
 
+       if (strstr(name, " frsqrte") !=  NULL)
+          /* The 32-bit frsqrte instruction is the Floatig Reciprical Square
+           * Root Estimate instruction.  The precision of the estimate will
+           * vary from Proceesor implementation.  The approximation varies in
+           * bottom two bytes of the 32-bit result.
+           */
+           ur &= 0xFFFF000000000000ULL;
+
       if (zap_hi_32bits)
          ur &= 0x00000000FFFFFFFFULL;
       if (zap_lo_44bits)
@@ -6888,12 +6896,12 @@ static void test_av_float_one_arg (const char* name, test_func_t func,
 #endif
 
    /* if we're doing an estimation operation, arrange to zap the
-      bottom byte of the result as it's basically garbage, and differs
+      bottom 10-bits of the result as it's basically garbage, and differs
       between cpus */
    unsigned int mask
       = (strstr(name,"vrsqrtefp") != NULL ||
          strstr(name,    "vrefp") != NULL)
-           ? 0xFFFFFF00 : 0xFFFFFFFF;
+           ? 0xFFFFC000 : 0xFFFFFFFF;
 
    for (i=0; i<nb_vfargs; i++) {
       vec_in  = (vector float)vfargs[i];
index 0f95bd73f1e86e007fab17ada90615c41cafbeaa..3e19e636d75757aab72a6e4c4816985ae2b6a6b2 100644 (file)
@@ -1517,7 +1517,6 @@ Altivec store insns with three register args:
        stvxl   7, f1f2f3f4 f5f6f7f8 f9fafbfc fefdfeff => f1f2f3f4 f5f6f7f8 f9fafbfc fefdfeff (00000000)
        stvxl  14, f1f2f3f4 f5f6f7f8 f9fafbfc fefdfeff => f1f2f3f4 f5f6f7f8 f9fafbfc fefdfeff (00000000)
 
-Altivec floating point arith insns with three args:
 Altivec floating point arith insns with two args:
       vaddfp: 02bfffff02bfffff02bfffff02bfffff, 02bfffff02bfffff02bfffff02bfffff
       vaddfp:  => 033fffff 033fffff 033fffff 033fffff (00000000)
@@ -2588,13 +2587,13 @@ Altivec floating point arith insns with one arg:
        vrfim:  => ffffffff ffffffff ffffffff ffffffff (00000000)
 
        vrefp: 02bfffff 02bfffff 02bfffff 02bfffff
-       vrefp:  => 7c2aa900 7c2aa900 7c2aa900 7c2aa900 (00000000)
+       vrefp:  => 7c2a8000 7c2a8000 7c2a8000 7c2a8000 (00000000)
        vrefp: 513fffff 513fffff 513fffff 513fffff
-       vrefp:  => 2daaa900 2daaa900 2daaa900 2daaa900 (00000000)
+       vrefp:  => 2daa8000 2daa8000 2daa8000 2daa8000 (00000000)
        vrefp: 82bfffff 82bfffff 82bfffff 82bfffff
-       vrefp:  => fc2aa900 fc2aa900 fc2aa900 fc2aa900 (00000000)
+       vrefp:  => fc2a8000 fc2a8000 fc2a8000 fc2a8000 (00000000)
        vrefp: d13fffff d13fffff d13fffff d13fffff
-       vrefp:  => adaaa900 adaaa900 adaaa900 adaaa900 (00000000)
+       vrefp:  => adaa8000 adaa8000 adaa8000 adaa8000 (00000000)
        vrefp: 00000000 00000000 00000000 00000000
        vrefp:  => 7f800000 7f800000 7f800000 7f800000 (00000000)
        vrefp: 80000000 80000000 80000000 80000000
@@ -2604,18 +2603,18 @@ Altivec floating point arith insns with one arg:
        vrefp: ff800000 ff800000 ff800000 ff800000
        vrefp:  => 80000000 80000000 80000000 80000000 (00000000)
        vrefp: 7fffffff 7fffffff 7fffffff 7fffffff
-       vrefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+       vrefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
        vrefp: ffffffff ffffffff ffffffff ffffffff
-       vrefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+       vrefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
        vrefp: 7fbfffff 7fbfffff 7fbfffff 7fbfffff
-       vrefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+       vrefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
        vrefp: ffbfffff ffbfffff ffbfffff ffbfffff
-       vrefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+       vrefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
 
    vrsqrtefp: 02bfffff 02bfffff 02bfffff 02bfffff
-   vrsqrtefp:  => 5dd10300 5dd10300 5dd10300 5dd10300 (00000000)
+   vrsqrtefp:  => 5dd10000 5dd10000 5dd10000 5dd10000 (00000000)
    vrsqrtefp: 513fffff 513fffff 513fffff 513fffff
-   vrsqrtefp:  => 3693ca00 3693ca00 3693ca00 3693ca00 (00000000)
+   vrsqrtefp:  => 3693c000 3693c000 3693c000 3693c000 (00000000)
    vrsqrtefp: 82bfffff 82bfffff 82bfffff 82bfffff
    vrsqrtefp:  => 7fc00000 7fc00000 7fc00000 7fc00000 (00000000)
    vrsqrtefp: d13fffff d13fffff d13fffff d13fffff
@@ -2629,13 +2628,13 @@ Altivec floating point arith insns with one arg:
    vrsqrtefp: ff800000 ff800000 ff800000 ff800000
    vrsqrtefp:  => 7fc00000 7fc00000 7fc00000 7fc00000 (00000000)
    vrsqrtefp: 7fffffff 7fffffff 7fffffff 7fffffff
-   vrsqrtefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+   vrsqrtefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
    vrsqrtefp: ffffffff ffffffff ffffffff ffffffff
-   vrsqrtefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+   vrsqrtefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
    vrsqrtefp: 7fbfffff 7fbfffff 7fbfffff 7fbfffff
-   vrsqrtefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+   vrsqrtefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
    vrsqrtefp: ffbfffff ffbfffff ffbfffff ffbfffff
-   vrsqrtefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+   vrsqrtefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
 
 Altivec floating point compare insns:
     vcmpgtfp: 02bfffff02bfffff02bfffff02bfffff, 02bfffff02bfffff02bfffff02bfffff
index daf92614614b6fd1f3320031938a58cd8147282f..c3360e3179be769de06f124d2f66f48ff4694bcb 100644 (file)
@@ -2587,13 +2587,13 @@ Altivec floating point arith insns with one arg:
        vrfim:  => ffffffff ffffffff ffffffff ffffffff (00000000)
 
        vrefp: 02bfffff 02bfffff 02bfffff 02bfffff
-       vrefp:  => 7c2aa900 7c2aa900 7c2aa900 7c2aa900 (00000000)
+       vrefp:  => 7c2a8000 7c2a8000 7c2a8000 7c2a8000 (00000000)
        vrefp: 513fffff 513fffff 513fffff 513fffff
-       vrefp:  => 2daaa900 2daaa900 2daaa900 2daaa900 (00000000)
+       vrefp:  => 2daa8000 2daa8000 2daa8000 2daa8000 (00000000)
        vrefp: 82bfffff 82bfffff 82bfffff 82bfffff
-       vrefp:  => fc2aa900 fc2aa900 fc2aa900 fc2aa900 (00000000)
+       vrefp:  => fc2a8000 fc2a8000 fc2a8000 fc2a8000 (00000000)
        vrefp: d13fffff d13fffff d13fffff d13fffff
-       vrefp:  => adaaa900 adaaa900 adaaa900 adaaa900 (00000000)
+       vrefp:  => adaa8000 adaa8000 adaa8000 adaa8000 (00000000)
        vrefp: 00000000 00000000 00000000 00000000
        vrefp:  => 7f800000 7f800000 7f800000 7f800000 (00000000)
        vrefp: 80000000 80000000 80000000 80000000
@@ -2603,18 +2603,18 @@ Altivec floating point arith insns with one arg:
        vrefp: ff800000 ff800000 ff800000 ff800000
        vrefp:  => 80000000 80000000 80000000 80000000 (00000000)
        vrefp: 7fffffff 7fffffff 7fffffff 7fffffff
-       vrefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+       vrefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
        vrefp: ffffffff ffffffff ffffffff ffffffff
-       vrefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+       vrefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
        vrefp: 7fbfffff 7fbfffff 7fbfffff 7fbfffff
-       vrefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+       vrefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
        vrefp: ffbfffff ffbfffff ffbfffff ffbfffff
-       vrefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+       vrefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
 
    vrsqrtefp: 02bfffff 02bfffff 02bfffff 02bfffff
-   vrsqrtefp:  => 5dd10300 5dd10300 5dd10300 5dd10300 (00000000)
+   vrsqrtefp:  => 5dd10000 5dd10000 5dd10000 5dd10000 (00000000)
    vrsqrtefp: 513fffff 513fffff 513fffff 513fffff
-   vrsqrtefp:  => 3693ca00 3693ca00 3693ca00 3693ca00 (00000000)
+   vrsqrtefp:  => 3693c000 3693c000 3693c000 3693c000 (00000000)
    vrsqrtefp: 82bfffff 82bfffff 82bfffff 82bfffff
    vrsqrtefp:  => 7fc00000 7fc00000 7fc00000 7fc00000 (00000000)
    vrsqrtefp: d13fffff d13fffff d13fffff d13fffff
@@ -2628,13 +2628,13 @@ Altivec floating point arith insns with one arg:
    vrsqrtefp: ff800000 ff800000 ff800000 ff800000
    vrsqrtefp:  => 7fc00000 7fc00000 7fc00000 7fc00000 (00000000)
    vrsqrtefp: 7fffffff 7fffffff 7fffffff 7fffffff
-   vrsqrtefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+   vrsqrtefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
    vrsqrtefp: ffffffff ffffffff ffffffff ffffffff
-   vrsqrtefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+   vrsqrtefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
    vrsqrtefp: 7fbfffff 7fbfffff 7fbfffff 7fbfffff
-   vrsqrtefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+   vrsqrtefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
    vrsqrtefp: ffbfffff ffbfffff ffbfffff ffbfffff
-   vrsqrtefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+   vrsqrtefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
 
 Altivec floating point compare insns:
     vcmpgtfp: 02bfffff02bfffff02bfffff02bfffff, 02bfffff02bfffff02bfffff02bfffff
index adbdabf377516b47f7fe0c3bf7a9674cf19a2614..00bd7277715dc86e33560543908210f38293d6b2 100644 (file)
@@ -719,8 +719,8 @@ PPC floating point arith insns with one arg:
      frsqrte 8000000000000000 => fff0000000000000
      frsqrte 7ff0000000000000 => 0000000000000000
      frsqrte fff0000000000000 => 7ff8000000000000
-     frsqrte 7ff7ffffffffffff => 7fff800000000000
-     frsqrte fff7ffffffffffff => ffff800000000000
+     frsqrte 7ff7ffffffffffff => 7fff000000000000
+     frsqrte fff7ffffffffffff => ffff000000000000
      frsqrte 7ff8000000000000 => 7ff8000000000000
      frsqrte fff8000000000000 => fff8000000000000
 
@@ -942,8 +942,8 @@ PPC floating point arith insns
     frsqrte. 8000000000000000 => fff0000000000000
     frsqrte. 7ff0000000000000 => 0000000000000000
     frsqrte. fff0000000000000 => 7ff8000000000000
-    frsqrte. 7ff7ffffffffffff => 7fff800000000000
-    frsqrte. fff7ffffffffffff => ffff800000000000
+    frsqrte. 7ff7ffffffffffff => 7fff000000000000
+    frsqrte. fff7ffffffffffff => ffff000000000000
     frsqrte. 7ff8000000000000 => 7ff8000000000000
     frsqrte. fff8000000000000 => fff8000000000000
 
index 0f95bd73f1e86e007fab17ada90615c41cafbeaa..3e19e636d75757aab72a6e4c4816985ae2b6a6b2 100644 (file)
@@ -1517,7 +1517,6 @@ Altivec store insns with three register args:
        stvxl   7, f1f2f3f4 f5f6f7f8 f9fafbfc fefdfeff => f1f2f3f4 f5f6f7f8 f9fafbfc fefdfeff (00000000)
        stvxl  14, f1f2f3f4 f5f6f7f8 f9fafbfc fefdfeff => f1f2f3f4 f5f6f7f8 f9fafbfc fefdfeff (00000000)
 
-Altivec floating point arith insns with three args:
 Altivec floating point arith insns with two args:
       vaddfp: 02bfffff02bfffff02bfffff02bfffff, 02bfffff02bfffff02bfffff02bfffff
       vaddfp:  => 033fffff 033fffff 033fffff 033fffff (00000000)
@@ -2588,13 +2587,13 @@ Altivec floating point arith insns with one arg:
        vrfim:  => ffffffff ffffffff ffffffff ffffffff (00000000)
 
        vrefp: 02bfffff 02bfffff 02bfffff 02bfffff
-       vrefp:  => 7c2aa900 7c2aa900 7c2aa900 7c2aa900 (00000000)
+       vrefp:  => 7c2a8000 7c2a8000 7c2a8000 7c2a8000 (00000000)
        vrefp: 513fffff 513fffff 513fffff 513fffff
-       vrefp:  => 2daaa900 2daaa900 2daaa900 2daaa900 (00000000)
+       vrefp:  => 2daa8000 2daa8000 2daa8000 2daa8000 (00000000)
        vrefp: 82bfffff 82bfffff 82bfffff 82bfffff
-       vrefp:  => fc2aa900 fc2aa900 fc2aa900 fc2aa900 (00000000)
+       vrefp:  => fc2a8000 fc2a8000 fc2a8000 fc2a8000 (00000000)
        vrefp: d13fffff d13fffff d13fffff d13fffff
-       vrefp:  => adaaa900 adaaa900 adaaa900 adaaa900 (00000000)
+       vrefp:  => adaa8000 adaa8000 adaa8000 adaa8000 (00000000)
        vrefp: 00000000 00000000 00000000 00000000
        vrefp:  => 7f800000 7f800000 7f800000 7f800000 (00000000)
        vrefp: 80000000 80000000 80000000 80000000
@@ -2604,18 +2603,18 @@ Altivec floating point arith insns with one arg:
        vrefp: ff800000 ff800000 ff800000 ff800000
        vrefp:  => 80000000 80000000 80000000 80000000 (00000000)
        vrefp: 7fffffff 7fffffff 7fffffff 7fffffff
-       vrefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+       vrefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
        vrefp: ffffffff ffffffff ffffffff ffffffff
-       vrefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+       vrefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
        vrefp: 7fbfffff 7fbfffff 7fbfffff 7fbfffff
-       vrefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+       vrefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
        vrefp: ffbfffff ffbfffff ffbfffff ffbfffff
-       vrefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+       vrefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
 
    vrsqrtefp: 02bfffff 02bfffff 02bfffff 02bfffff
-   vrsqrtefp:  => 5dd10300 5dd10300 5dd10300 5dd10300 (00000000)
+   vrsqrtefp:  => 5dd10000 5dd10000 5dd10000 5dd10000 (00000000)
    vrsqrtefp: 513fffff 513fffff 513fffff 513fffff
-   vrsqrtefp:  => 3693ca00 3693ca00 3693ca00 3693ca00 (00000000)
+   vrsqrtefp:  => 3693c000 3693c000 3693c000 3693c000 (00000000)
    vrsqrtefp: 82bfffff 82bfffff 82bfffff 82bfffff
    vrsqrtefp:  => 7fc00000 7fc00000 7fc00000 7fc00000 (00000000)
    vrsqrtefp: d13fffff d13fffff d13fffff d13fffff
@@ -2629,13 +2628,13 @@ Altivec floating point arith insns with one arg:
    vrsqrtefp: ff800000 ff800000 ff800000 ff800000
    vrsqrtefp:  => 7fc00000 7fc00000 7fc00000 7fc00000 (00000000)
    vrsqrtefp: 7fffffff 7fffffff 7fffffff 7fffffff
-   vrsqrtefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+   vrsqrtefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
    vrsqrtefp: ffffffff ffffffff ffffffff ffffffff
-   vrsqrtefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+   vrsqrtefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
    vrsqrtefp: 7fbfffff 7fbfffff 7fbfffff 7fbfffff
-   vrsqrtefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+   vrsqrtefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
    vrsqrtefp: ffbfffff ffbfffff ffbfffff ffbfffff
-   vrsqrtefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+   vrsqrtefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
 
 Altivec floating point compare insns:
     vcmpgtfp: 02bfffff02bfffff02bfffff02bfffff, 02bfffff02bfffff02bfffff02bfffff
index daf92614614b6fd1f3320031938a58cd8147282f..c3360e3179be769de06f124d2f66f48ff4694bcb 100644 (file)
@@ -2587,13 +2587,13 @@ Altivec floating point arith insns with one arg:
        vrfim:  => ffffffff ffffffff ffffffff ffffffff (00000000)
 
        vrefp: 02bfffff 02bfffff 02bfffff 02bfffff
-       vrefp:  => 7c2aa900 7c2aa900 7c2aa900 7c2aa900 (00000000)
+       vrefp:  => 7c2a8000 7c2a8000 7c2a8000 7c2a8000 (00000000)
        vrefp: 513fffff 513fffff 513fffff 513fffff
-       vrefp:  => 2daaa900 2daaa900 2daaa900 2daaa900 (00000000)
+       vrefp:  => 2daa8000 2daa8000 2daa8000 2daa8000 (00000000)
        vrefp: 82bfffff 82bfffff 82bfffff 82bfffff
-       vrefp:  => fc2aa900 fc2aa900 fc2aa900 fc2aa900 (00000000)
+       vrefp:  => fc2a8000 fc2a8000 fc2a8000 fc2a8000 (00000000)
        vrefp: d13fffff d13fffff d13fffff d13fffff
-       vrefp:  => adaaa900 adaaa900 adaaa900 adaaa900 (00000000)
+       vrefp:  => adaa8000 adaa8000 adaa8000 adaa8000 (00000000)
        vrefp: 00000000 00000000 00000000 00000000
        vrefp:  => 7f800000 7f800000 7f800000 7f800000 (00000000)
        vrefp: 80000000 80000000 80000000 80000000
@@ -2603,18 +2603,18 @@ Altivec floating point arith insns with one arg:
        vrefp: ff800000 ff800000 ff800000 ff800000
        vrefp:  => 80000000 80000000 80000000 80000000 (00000000)
        vrefp: 7fffffff 7fffffff 7fffffff 7fffffff
-       vrefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+       vrefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
        vrefp: ffffffff ffffffff ffffffff ffffffff
-       vrefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+       vrefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
        vrefp: 7fbfffff 7fbfffff 7fbfffff 7fbfffff
-       vrefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+       vrefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
        vrefp: ffbfffff ffbfffff ffbfffff ffbfffff
-       vrefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+       vrefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
 
    vrsqrtefp: 02bfffff 02bfffff 02bfffff 02bfffff
-   vrsqrtefp:  => 5dd10300 5dd10300 5dd10300 5dd10300 (00000000)
+   vrsqrtefp:  => 5dd10000 5dd10000 5dd10000 5dd10000 (00000000)
    vrsqrtefp: 513fffff 513fffff 513fffff 513fffff
-   vrsqrtefp:  => 3693ca00 3693ca00 3693ca00 3693ca00 (00000000)
+   vrsqrtefp:  => 3693c000 3693c000 3693c000 3693c000 (00000000)
    vrsqrtefp: 82bfffff 82bfffff 82bfffff 82bfffff
    vrsqrtefp:  => 7fc00000 7fc00000 7fc00000 7fc00000 (00000000)
    vrsqrtefp: d13fffff d13fffff d13fffff d13fffff
@@ -2628,13 +2628,13 @@ Altivec floating point arith insns with one arg:
    vrsqrtefp: ff800000 ff800000 ff800000 ff800000
    vrsqrtefp:  => 7fc00000 7fc00000 7fc00000 7fc00000 (00000000)
    vrsqrtefp: 7fffffff 7fffffff 7fffffff 7fffffff
-   vrsqrtefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+   vrsqrtefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
    vrsqrtefp: ffffffff ffffffff ffffffff ffffffff
-   vrsqrtefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+   vrsqrtefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
    vrsqrtefp: 7fbfffff 7fbfffff 7fbfffff 7fbfffff
-   vrsqrtefp:  => 7fffff00 7fffff00 7fffff00 7fffff00 (00000000)
+   vrsqrtefp:  => 7fffc000 7fffc000 7fffc000 7fffc000 (00000000)
    vrsqrtefp: ffbfffff ffbfffff ffbfffff ffbfffff
-   vrsqrtefp:  => ffffff00 ffffff00 ffffff00 ffffff00 (00000000)
+   vrsqrtefp:  => ffffc000 ffffc000 ffffc000 ffffc000 (00000000)
 
 Altivec floating point compare insns:
     vcmpgtfp: 02bfffff02bfffff02bfffff02bfffff, 02bfffff02bfffff02bfffff02bfffff