base: Run num009 with -msse2 on i386
authorBen Gamari <ben@smart-cactus.org>
Thu, 6 Apr 2017 21:14:47 +0000 (17:14 -0400)
committerBen Gamari <ben@smart-cactus.org>
Thu, 6 Apr 2017 21:43:51 +0000 (17:43 -0400)
x87's transcendental instructions are terribly imprecise and fail this test.
Moreover, we really ouch to enable -mse2 on i386 by default as it is nearly
universally supported at this point. See #13540.

libraries/base/tests/Numeric/all.T

index 36b2d6f..a0a9d68 100644 (file)
@@ -6,6 +6,12 @@ test('num005', normal, compile_and_run, [''])
 test('num006', normal, compile_and_run, [''])
 test('num007', normal, compile_and_run, [''])
 test('num008', normal, compile_and_run, [''])
+
+# On i386, we need -msse2 to get reliable floating point results
+if config.arch == 'i386':
+    opts = '-msse2'
+else:
+    opts = ''
 test('num009', [ when(fast(), skip)
                , when(platform('i386-apple-darwin'), expect_broken(2370))
                , when(opsys('mingw32'), omit_ways(['ghci'])) ],
@@ -14,7 +20,7 @@ test('num009', [ when(fast(), skip)
                # serious, since the results for lower numbers are all fine.
                # We also get another set of results for 1e02 with GHCi, so
                # I'm skipping that way altogether.
-             compile_and_run, [''])
+             compile_and_run, [opts])
 test('num010',
      when(platform('i386-apple-darwin'), expect_broken_for(7043, 'ghci')),
      compile_and_run,