Embrace -XTypeInType, add -XStarIsType
[ghc.git] / testsuite / tests / simplCore / should_run / simplrun003.hs
1 {-# LANGUAGE UnboxedTuples #-}
2
3 -- O2 to get CSE
4
5 module Main where
6
7 f :: Int -> (# Int, Int #)
8 f 0 = (# 1,2 #)
9 f n = f (n-1)
10
11 {-# NOINLINE g #-}
12 g x = case f x of
13 (# a,b #) -> if a>0
14 then f x -- CSE opportunity
15 else (# b,a #)
16
17 -- GHC 6.2 wrongly optimised g to:
18 -- case f x of t
19 -- (# a,b #) -> if a>0 then
20 -- t -- WRONG
21 -- else (# b,a #)
22
23 main = case g 2 of (# a,b #) -> print a