Apparently Intel's rcpps etc approximations are more approximate than
AMD's.  Kludge everything accordingly.  Sigh.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5900 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/memcheck/tests/amd64/sse_memory.c b/memcheck/tests/amd64/sse_memory.c
index a6bf172..8c24db5 100644
--- a/memcheck/tests/amd64/sse_memory.c
+++ b/memcheck/tests/amd64/sse_memory.c
@@ -164,11 +164,11 @@
                          0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF };
 
 /* Mark for insns which produce approximated vector short results. */
-static V128 ApproxPS = { 0x00,0x0F,0xFF,0xFF, 0x00,0x0F,0xFF,0xFF, 
-                         0x00,0x0F,0xFF,0xFF, 0x00,0x0F,0xFF,0xFF };
+static V128 ApproxPS = { 0x00,0x00,0xFF,0xFF, 0x00,0x00,0xFF,0xFF, 
+                         0x00,0x00,0xFF,0xFF, 0x00,0x00,0xFF,0xFF };
 
 /* Mark for insns which produce approximated scalar short results. */
-static V128 ApproxSS = { 0x00,0x0F,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,
+static V128 ApproxSS = { 0x00,0x00,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,
                          0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF };
 
 #define PD 16
diff --git a/memcheck/tests/x86/sse1_memory.stdout.exp b/memcheck/tests/x86/sse1_memory.stdout.exp
index 3fd7a27..fe4b375 100644
--- a/memcheck/tests/x86/sse1_memory.stdout.exp
+++ b/memcheck/tests/x86/sse1_memory.stdout.exp
@@ -328,41 +328,41 @@
 m       orps cea66f3d5d6ef21117e72db0c1c38bee 3196b53c2c46eeeec9d6ef88f3b54f03 ffb6ff3d7d6efeffdff7efb8f3f7cfef
 m       orps e511039c4a5fb91955c4068961dfde91 9455bfce472b42c6727128d858465293 f555bfde4f7ffbdf77f52ed979dfde93
 m       orps 02f905dba7ebe701a158637046ac5a7f 4a5ccbb0ee04e2fe17ac1bc8bf020410 4afdcffbefefe7ffb7fc7bf8ffae5e7f
-r      rcpps 70cb8a09879c06a6e47b08cf9b822cd7 9bbe02cb3a35043218daf0a563587b53 00006c750008f3d80000f0af0000bda7
-r      rcpps 81a60dded49e45ab66ae9042c142f328 571ab44585ddcc21fc82ba0183a5c0e7 0000e7a00008a5d30008623c00000656
-r      rcpps 5bd0c517fc949add89fab258669ce221 e5d081d9ccbc65eb3b3e3428f3bf1a42 00002567000853a1000837260000105d
-r      rcpps 3a0a827a81e85cea99f1d1281ecae0c0 a14259efb2dd4ae1413fdfd067819204 00007c040008949400001c56000811be
-r      rcpps bbf774ad4ae6435f4404aba8dde738e5 49b38bcd3d2a522edb999c90f5a58faa 000085d10000a71f00083fd60008b199
-m      rcpps ab89ef473287f9399d2bcf3bf317bc35 d91a2b379ab769ad968762aff9ed904d 000008370000034500001e4300082e49
-m      rcpps 10a840d4987b21d62e49da7f72a4458a f2d69a7f16674621faac77f325b7f297 0008aaaa0000caa80009da7f0008a5f4
-m      rcpps dfd803f412dff346b233ee065936bb9f c26c0fcac2dfb2ea3f85c90b76ffc542 0008f88a000006380000097800082fdf
-m      rcpps 747d280e43bce8d9951b8c865da92712 65ff3c4003eae6168f05996d6161d4ac 0000c27000000ca5000869f80000c36c
-m      rcpps 8dd8016731ffd8bda414939591b6f162 589230e79d337a9479ff876fba564513 0000fc17000817c100085ee90000071c
+r      rcpps 70cb8a09879c06a6e47b08cf9b822cd7 9bbe02cb3a35043218daf0a563587b53 00006c750000f3d80000f0af0000bda7
+r      rcpps 81a60dded49e45ab66ae9042c142f328 571ab44585ddcc21fc82ba0183a5c0e7 0000e7a00000a5d30000623c00000656
+r      rcpps 5bd0c517fc949add89fab258669ce221 e5d081d9ccbc65eb3b3e3428f3bf1a42 00002567000053a1000037260000105d
+r      rcpps 3a0a827a81e85cea99f1d1281ecae0c0 a14259efb2dd4ae1413fdfd067819204 00007c040000949400001c56000011be
+r      rcpps bbf774ad4ae6435f4404aba8dde738e5 49b38bcd3d2a522edb999c90f5a58faa 000085d10000a71f00003fd60000b199
+m      rcpps ab89ef473287f9399d2bcf3bf317bc35 d91a2b379ab769ad968762aff9ed904d 000008370000034500001e4300002e49
+m      rcpps 10a840d4987b21d62e49da7f72a4458a f2d69a7f16674621faac77f325b7f297 0000aaaa0000caa80000da7f0000a5f4
+m      rcpps dfd803f412dff346b233ee065936bb9f c26c0fcac2dfb2ea3f85c90b76ffc542 0000f88a000006380000097800002fdf
+m      rcpps 747d280e43bce8d9951b8c865da92712 65ff3c4003eae6168f05996d6161d4ac 0000c27000000ca5000069f80000c36c
+m      rcpps 8dd8016731ffd8bda414939591b6f162 589230e79d337a9479ff876fba564513 0000fc17000017c100005ee90000071c
 r      rcpss 78085da5b5436632e7259549b638a297 f60a0811333102b79043d82c129b9c39 000094d9333102b79043d82c129b9c39
 r      rcpss 01229341d087049f28092310e843d234 2838059c3add2f09128f1e880d563275 00005e3d3add2f09128f1e880d563275
-r      rcpss 8f830262d1480c69e61ef1bc479120cb a9f860a3898ac3a70b47fa2f46c71209 0008fb1c898ac3a70b47fa2f46c71209
+r      rcpss 8f830262d1480c69e61ef1bc479120cb a9f860a3898ac3a70b47fa2f46c71209 0000fb1c898ac3a70b47fa2f46c71209
 r      rcpss 1fae3b8efeb096ff2fb71f22251c321a 966ecb4d8502f6a1a95ead9930890454 0000aef08502f6a1a95ead9930890454
-r      rcpss 0e062e2bfaca1bb070062efa38bf12bf 6a9c559ff3ef63e478a6d51ba0173195 0008bc53f3ef63e478a6d51ba0173195
-m      rcpss 59c79b69 17cc2d7fcb8173a9741d00d994342838 00085215cb8173a9741d00d994342838
+r      rcpss 0e062e2bfaca1bb070062efa38bf12bf 6a9c559ff3ef63e478a6d51ba0173195 0000bc53f3ef63e478a6d51ba0173195
+m      rcpss 59c79b69 17cc2d7fcb8173a9741d00d994342838 00005215cb8173a9741d00d994342838
 m      rcpss 13352663 725ab01f908ec3e791b87e435823e7b3 0000c51b908ec3e791b87e435823e7b3
 m      rcpss d94f4968 b975ed2344ddbf5225e7a6b88482adce 0000a21644ddbf5225e7a6b88482adce
 m      rcpss 7bfd34ee 59e07802d4adfaee30428dda2401fdb6 0000b590d4adfaee30428dda2401fdb6
 m      rcpss 8c2b9058 d36f2eaf049b843ab3ee62a5cbec63b0 00006326049b843ab3ee62a5cbec63b0
-r    rsqrtps 2d489d0949c4b683e4a08a9b2509fd24 d36d1ea843617f049874e6ec6ddc6a45 0008665a0000c0ff0000c0ff0000b64c
-r    rsqrtps ee5a61937cdb9904eb46f436e17f0ad3 2d91666636185f7bb5924a96e88d0f16 0000c0ff0008e95c0000b9430000c0ff
+r    rsqrtps 2d489d0949c4b683e4a08a9b2509fd24 d36d1ea843617f049874e6ec6ddc6a45 0000665a0000c0ff0000c0ff0000b64c
+r    rsqrtps ee5a61937cdb9904eb46f436e17f0ad3 2d91666636185f7bb5924a96e88d0f16 0000c0ff0000e95c0000b9430000c0ff
 r    rsqrtps 5ca42e2c658e4c4dc549f9dc0252e440 573075e5966725e17643366b3287c73d 00001a4900008f380000c0ff0000bf3e
 r    rsqrtps fd915d8450702d7406e6828ee7e57dd2 f455c272d37f50eb905fb40ac8cda3c1 0000c0ff00001b250000c0ff0000c0ff
-r    rsqrtps b56ba52ae8f2ff6fa335d8284a7b24d0 09eb263bb674c03217a12cf186411388 0000e149000835270008c44a0000c0ff
+r    rsqrtps b56ba52ae8f2ff6fa335d8284a7b24d0 09eb263bb674c03217a12cf186411388 0000e149000035270000c44a0000c0ff
 m    rsqrtps 90a0e1f8dda2fa748d3394379201dc5e c75c1f8b3c68e214ef31a26a49368b61 0000c0ff0000b62400006d430000c32f
-m    rsqrtps c5d049253d90dd92c952fc62fe1da72a da7044f7b604561ba0b5ebf25f19c28b 0008904c0000c0ff0008b62d0008e049
-m    rsqrtps e2b44f09a3cdfc18c13bc4b0d139ddc5 f190ec9b25d93b19ca7c193e6a073934 00008e5a0008b6520000c0ff0000c0ff
+m    rsqrtps c5d049253d90dd92c952fc62fe1da72a da7044f7b604561ba0b5ebf25f19c28b 0000904c0000c0ff0000b62d0000e049
+m    rsqrtps e2b44f09a3cdfc18c13bc4b0d139ddc5 f190ec9b25d93b19ca7c193e6a073934 00008e5a0000b6520000c0ff0000c0ff
 m    rsqrtps 8a566cf37c8cd9ba2ac8f6c188598f34 71875187b3d8d386e220f5aea6c1c123 0000c0ff0000c0ff0000c0ff0000f144
-m    rsqrtps c3a0791295e0541018b3fb1200602d5f 1e0009a8efd5bdb7bc1aa97fb0ea8bff 0008015600080c570000b65500009b2f
+m    rsqrtps c3a0791295e0541018b3fb1200602d5f 1e0009a8efd5bdb7bc1aa97fb0ea8bff 0000015600000c570000b65500009b2f
 r    rsqrtss 1d850ecec382fae48dc7bcd08305264d a537045ecb9674ebed619c3fcb8fbc68 0000c0ffcb9674ebed619c3fcb8fbc68
 r    rsqrtss f381b9a77d71eb22e860189f7d748475 03073a672318dac92e96d878438d09be 0000c0ff2318dac92e96d878438d09be
 r    rsqrtss 833ec1c1ca165068c30003cc5a7af5bd 7d1ccaa1068b0a17ff45d26e474def0a 0000c0ff068b0a17ff45d26e474def0a
 r    rsqrtss 13e63f8bb5c24a8d73a228143739294b 7840ee1ba2e1434bd609537f14923d15 0000c0ffa2e1434bd609537f14923d15
-r    rsqrtss 4684ad53aba85947aa1f8f178fb43126 b91e3fc282ed28bc875d83ea47fd2584 00085b3582ed28bc875d83ea47fd2584
+r    rsqrtss 4684ad53aba85947aa1f8f178fb43126 b91e3fc282ed28bc875d83ea47fd2584 00005b3582ed28bc875d83ea47fd2584
 m    rsqrtss 29c0008f 2204e14879da5d2d7f339f5240cd7e35 0000c0ff79da5d2d7f339f5240cd7e35
 m    rsqrtss 23cf520e 60517dff51fe6b311436236d0a2e1678 00000d5851fe6b311436236d0a2e1678
 m    rsqrtss 326740cb a9fc72262f35628a52cdc5b6153a5535 0000c0ff2f35628a52cdc5b6153a5535