summaryrefslogtreecommitdiff
path: root/libraries/base/tests
diff options
context:
space:
mode:
authorCarter Schonwald <carter.schonwald@gmail.com>2019-04-10 20:28:41 -0400
committerCarter Schonwald <carter.schonwald@gmail.com>2019-04-10 20:28:41 -0400
commit42504f4a575395a35eec5c3fd7c9ef6e2b54e68e (patch)
treedc68a9ce346a6dd88203b2e70a0eb727082045a3 /libraries/base/tests
parentbe0dde8e3c27ca56477d1d1801bb77621f3618e1 (diff)
downloadhaskell-42504f4a575395a35eec5c3fd7c9ef6e2b54e68e.tar.gz
removing x87 register support from native code gen
* simplifies registers to have GPR, Float and Double, by removing the SSE2 and X87 Constructors * makes -msse2 assumed/default for x86 platforms, fixing a long standing nondeterminism in rounding behavior in 32bit haskell code * removes the 80bit floating point representation from the supported float sizes * theres still 1 tiny bit of x87 support needed, for handling float and double return values in FFI calls wrt the C ABI on x86_32, but this one piece does not leak into the rest of NCG. * Lots of code thats not been touched in a long time got deleted as a consequence of all of this all in all, this change paves the way towards a lot of future further improvements in how GHC handles floating point computations, along with making the native code gen more accessible to a larger pool of contributors.
Diffstat (limited to 'libraries/base/tests')
-rw-r--r--libraries/base/tests/Numeric/all.T17
-rw-r--r--libraries/base/tests/Numeric/num009.hs4
2 files changed, 4 insertions, 17 deletions
diff --git a/libraries/base/tests/Numeric/all.T b/libraries/base/tests/Numeric/all.T
index c4c9bb4646..9969a5552a 100644
--- a/libraries/base/tests/Numeric/all.T
+++ b/libraries/base/tests/Numeric/all.T
@@ -7,21 +7,10 @@ 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(wordsize(32), expect_broken(15062))
- , when(platform('i386-apple-darwin'), expect_broken(2370))
- , when(platform('powerpc64le-unknown-linux'), expect_broken(13634))
- , when(opsys('mingw32'), omit_ways(['ghci'])) ],
- # We get different results at 1e20 on x86/Windows, so there is
- # a special output file for that. I (SDM) don't think these are
- # 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.
+ # , when(wordsize(32), expect_broken(15062))
+ , when(platform('powerpc64le-unknown-linux'), expect_broken(13634))],
compile_and_run, [opts])
test('num010',
when(platform('i386-apple-darwin'), expect_broken_for(7043, 'ghci')),
diff --git a/libraries/base/tests/Numeric/num009.hs b/libraries/base/tests/Numeric/num009.hs
index e405ddf050..5133d43920 100644
--- a/libraries/base/tests/Numeric/num009.hs
+++ b/libraries/base/tests/Numeric/num009.hs
@@ -1,8 +1,6 @@
-- trac #2059
--
--- Note that this test fails miserably when compiled to use X87 floating point.
--- For instance, in the case of (sin 1e20) the X86 FSIN instruction doesn't even
--- get the sign right on my machine.
+
module Main(main) where