summaryrefslogtreecommitdiff
path: root/testsuite/tests/lib
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2012-01-13 18:54:32 +0000
committerIan Lynagh <igloo@earth.li>2012-01-13 18:54:32 +0000
commit63afeeb4cf57ed8f91508cb70d34805f1b3bb30d (patch)
tree9e7702531a6bec7f360afd653bae1a9d61f6ad71 /testsuite/tests/lib
parentcacd98255bf9961a2c2f62d8c9fa2bdda7cdc0de (diff)
downloadhaskell-63afeeb4cf57ed8f91508cb70d34805f1b3bb30d.tar.gz
Add {double,float}FromInteger to the integerConstantFolding test
Diffstat (limited to 'testsuite/tests/lib')
-rw-r--r--testsuite/tests/lib/integer/Makefile2
-rw-r--r--testsuite/tests/lib/integer/integerConstantFolding.hs12
-rw-r--r--testsuite/tests/lib/integer/integerConstantFolding.stdout2
3 files changed, 16 insertions, 0 deletions
diff --git a/testsuite/tests/lib/integer/Makefile b/testsuite/tests/lib/integer/Makefile
index 612f3f09d4..297f9f0f11 100644
--- a/testsuite/tests/lib/integer/Makefile
+++ b/testsuite/tests/lib/integer/Makefile
@@ -30,5 +30,7 @@ integerConstantFolding:
$(call CHECK,\<6253\>,shiftRInteger)
$(call CHECK,\<641\>,quotInteger)
$(call CHECK,\<68\>,remInteger)
+ $(call CHECK,\<200131.0\>,doubleFromInteger)
+ $(call CHECK,\<200135.0\>,floatFromInteger)
./integerConstantFolding
diff --git a/testsuite/tests/lib/integer/integerConstantFolding.hs b/testsuite/tests/lib/integer/integerConstantFolding.hs
index bea5149779..1fdd0998b4 100644
--- a/testsuite/tests/lib/integer/integerConstantFolding.hs
+++ b/testsuite/tests/lib/integer/integerConstantFolding.hs
@@ -46,6 +46,8 @@ main = do p "plusInteger" plusInteger
p "shiftRInteger" shiftRInteger
p "quotInteger" quotInteger
p "remInteger" remInteger
+ p "doubleFromInteger" doubleFromInteger
+ p "floatFromInteger" floatFromInteger
where p :: Show a => String -> a -> IO ()
p str x = putStrLn (str ++ ": " ++ show x)
@@ -159,3 +161,13 @@ quotInteger = 100063 `quot` 156
remInteger :: Integer
remInteger = 100064 `rem` 156
+-- For the conversion functions, we can't just check that e.g. 100065
+-- is in the resulting core, because it will be regardless of whether
+-- the rules fire or not. So we add 100066, and thus rely on the
+-- Double addition rule also firing.
+doubleFromInteger :: Double
+doubleFromInteger = fromInteger 100065 + 100066
+
+floatFromInteger :: Float
+floatFromInteger = fromInteger 100067 + 100068
+
diff --git a/testsuite/tests/lib/integer/integerConstantFolding.stdout b/testsuite/tests/lib/integer/integerConstantFolding.stdout
index 471eb755cf..7c32328941 100644
--- a/testsuite/tests/lib/integer/integerConstantFolding.stdout
+++ b/testsuite/tests/lib/integer/integerConstantFolding.stdout
@@ -40,3 +40,5 @@ shiftLInteger: 1600976
shiftRInteger: 6253
quotInteger: 641
remInteger: 68
+doubleFromInteger: 200131.0
+floatFromInteger: 200135.0