Address #11471 by putting RuntimeRep in kinds.
[ghc.git] / testsuite / tests / simplCore / should_compile / spec-inline.stderr
1
2 ==================== Tidy Core ====================
3 Result size of Tidy Core = {terms: 172, types: 65, coercions: 0}
4
5 -- RHS size: {terms: 2, types: 0, coercions: 0}
6 Roman.$trModule2 :: GHC.Types.TrName
7 [GblId,
8  Caf=NoCafRefs,
9  Str=DmdType m1,
10  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
11          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 20}]
12 Roman.$trModule2 = GHC.Types.TrNameS "main"#
13
14 -- RHS size: {terms: 2, types: 0, coercions: 0}
15 Roman.$trModule1 :: GHC.Types.TrName
16 [GblId,
17  Caf=NoCafRefs,
18  Str=DmdType m1,
19  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
20          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 40 20}]
21 Roman.$trModule1 = GHC.Types.TrNameS "Roman"#
22
23 -- RHS size: {terms: 3, types: 0, coercions: 0}
24 Roman.$trModule :: GHC.Types.Module
25 [GblId,
26  Caf=NoCafRefs,
27  Str=DmdType m,
28  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
29          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
30 Roman.$trModule =
31   GHC.Types.Module Roman.$trModule2 Roman.$trModule1
32
33 -- RHS size: {terms: 2, types: 2, coercions: 0}
34 Roman.foo3 :: Int
35 [GblId, Str=DmdType x]
36 Roman.foo3 =
37   Control.Exception.Base.patError
38     @ 'GHC.Types.PtrRepLifted
39     @ Int
40     "spec-inline.hs:(19,5)-(29,25)|function go"#
41
42 Rec {
43 -- RHS size: {terms: 55, types: 9, coercions: 0}
44 Roman.foo_$s$wgo [Occ=LoopBreaker]
45   :: GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
46 [GblId, Arity=2, Caf=NoCafRefs, Str=DmdType <L,U><L,U>]
47 Roman.foo_$s$wgo =
48   \ (sc :: GHC.Prim.Int#) (sc1 :: GHC.Prim.Int#) ->
49     let {
50       a :: GHC.Prim.Int#
51       [LclId, Str=DmdType]
52       a =
53         GHC.Prim.+#
54           (GHC.Prim.+#
55              (GHC.Prim.+#
56                 (GHC.Prim.+# (GHC.Prim.+# (GHC.Prim.+# sc sc) sc) sc) sc)
57              sc)
58           sc } in
59     case GHC.Prim.tagToEnum# @ Bool (GHC.Prim.<=# sc1 0#)
60     of _ [Occ=Dead] {
61       False ->
62         case GHC.Prim.tagToEnum# @ Bool (GHC.Prim.<# sc1 100#)
63         of _ [Occ=Dead] {
64           False ->
65             case GHC.Prim.tagToEnum# @ Bool (GHC.Prim.<# sc1 500#)
66             of _ [Occ=Dead] {
67               False -> Roman.foo_$s$wgo (GHC.Prim.+# a a) (GHC.Prim.-# sc1 1#);
68               True -> Roman.foo_$s$wgo a (GHC.Prim.-# sc1 3#)
69             };
70           True -> Roman.foo_$s$wgo sc (GHC.Prim.-# sc1 2#)
71         };
72       True -> 0#
73     }
74 end Rec }
75
76 -- RHS size: {terms: 74, types: 22, coercions: 0}
77 Roman.$wgo [InlPrag=[0]] :: Maybe Int -> Maybe Int -> GHC.Prim.Int#
78 [GblId,
79  Arity=2,
80  Str=DmdType <S,1*U><S,1*U>,
81  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
82          WorkFree=True, Expandable=True, Guidance=IF_ARGS [60 30] 256 0}]
83 Roman.$wgo =
84   \ (w :: Maybe Int) (w1 :: Maybe Int) ->
85     case w1 of _ [Occ=Dead] {
86       Nothing -> case Roman.foo3 of wild1 { };
87       Just x ->
88         case x of _ [Occ=Dead] { GHC.Types.I# ipv ->
89         let {
90           a :: GHC.Prim.Int#
91           [LclId, Str=DmdType]
92           a =
93             GHC.Prim.+#
94               (GHC.Prim.+#
95                  (GHC.Prim.+#
96                     (GHC.Prim.+# (GHC.Prim.+# (GHC.Prim.+# ipv ipv) ipv) ipv) ipv)
97                  ipv)
98               ipv } in
99         case w of _ [Occ=Dead] {
100           Nothing -> Roman.foo_$s$wgo a 10#;
101           Just n ->
102             case n of _ [Occ=Dead] { GHC.Types.I# x2 ->
103             case GHC.Prim.tagToEnum# @ Bool (GHC.Prim.<=# x2 0#)
104             of _ [Occ=Dead] {
105               False ->
106                 case GHC.Prim.tagToEnum# @ Bool (GHC.Prim.<# x2 100#)
107                 of _ [Occ=Dead] {
108                   False ->
109                     case GHC.Prim.tagToEnum# @ Bool (GHC.Prim.<# x2 500#)
110                     of _ [Occ=Dead] {
111                       False -> Roman.foo_$s$wgo (GHC.Prim.+# a a) (GHC.Prim.-# x2 1#);
112                       True -> Roman.foo_$s$wgo a (GHC.Prim.-# x2 3#)
113                     };
114                   True -> Roman.foo_$s$wgo ipv (GHC.Prim.-# x2 2#)
115                 };
116               True -> 0#
117             }
118             }
119         }
120         }
121     }
122
123 -- RHS size: {terms: 9, types: 5, coercions: 0}
124 Roman.foo_go [InlPrag=INLINE[0]] :: Maybe Int -> Maybe Int -> Int
125 [GblId,
126  Arity=2,
127  Str=DmdType <S,1*U><S,1*U>m,
128  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
129          WorkFree=True, Expandable=True,
130          Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=False)
131          Tmpl= \ (w [Occ=Once] :: Maybe Int) (w1 [Occ=Once] :: Maybe Int) ->
132                  case Roman.$wgo w w1 of ww { __DEFAULT -> GHC.Types.I# ww }}]
133 Roman.foo_go =
134   \ (w :: Maybe Int) (w1 :: Maybe Int) ->
135     case Roman.$wgo w w1 of ww { __DEFAULT -> GHC.Types.I# ww }
136
137 -- RHS size: {terms: 2, types: 0, coercions: 0}
138 Roman.foo2 :: Int
139 [GblId,
140  Caf=NoCafRefs,
141  Str=DmdType m,
142  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
143          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
144 Roman.foo2 = GHC.Types.I# 6#
145
146 -- RHS size: {terms: 2, types: 1, coercions: 0}
147 Roman.foo1 :: Maybe Int
148 [GblId,
149  Caf=NoCafRefs,
150  Str=DmdType m2,
151  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
152          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
153 Roman.foo1 = GHC.Base.Just @ Int Roman.foo2
154
155 -- RHS size: {terms: 11, types: 4, coercions: 0}
156 foo :: Int -> Int
157 [GblId,
158  Arity=1,
159  Caf=NoCafRefs,
160  Str=DmdType <S,1*U(U)>m,
161  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
162          WorkFree=True, Expandable=True,
163          Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
164          Tmpl= \ (n [Occ=Once!] :: Int) ->
165                  case n of n1 { GHC.Types.I# _ [Occ=Dead] ->
166                  Roman.foo_go (GHC.Base.Just @ Int n1) Roman.foo1
167                  }}]
168 foo =
169   \ (n :: Int) ->
170     case n of _ [Occ=Dead] { GHC.Types.I# ipv ->
171     case Roman.foo_$s$wgo 6# ipv of ww { __DEFAULT -> GHC.Types.I# ww }
172     }
173
174
175 ------ Local rules for imported ids --------
176 "SC:$wgo0" [0]
177     forall (sc :: GHC.Prim.Int#) (sc1 :: GHC.Prim.Int#).
178       Roman.$wgo (GHC.Base.Just @ Int (GHC.Types.I# sc1))
179                  (GHC.Base.Just @ Int (GHC.Types.I# sc))
180       = Roman.foo_$s$wgo sc sc1
181
182