Allow CSE'ing of work-wrapped bindings (#14186)
[ghc.git] / testsuite / tests / simplCore / should_compile / T13143.stderr
1
2 ==================== Tidy Core ====================
3 Result size of Tidy Core
4   = {terms: 71, types: 44, coercions: 0, joins: 0/0}
5
6 Rec {
7 -- RHS size: {terms: 4, types: 4, coercions: 0, joins: 0/0}
8 T13143.$wf [InlPrag=NOINLINE, Occ=LoopBreaker]
9   :: forall a. GHC.Prim.Void# -> a
10 [GblId, Arity=1, Caf=NoCafRefs, Str=<B,A>b]
11 T13143.$wf = \ (@ a) _ [Occ=Dead] -> T13143.$wf @ a GHC.Prim.void#
12 end Rec }
13
14 -- RHS size: {terms: 4, types: 4, coercions: 0, joins: 0/0}
15 f [InlPrag=NOUSERINLINE[0]] :: forall a. Int -> a
16 [GblId,
17  Arity=1,
18  Caf=NoCafRefs,
19  Str=<B,A>b,
20  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
21          WorkFree=True, Expandable=True,
22          Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=True)
23          Tmpl= \ (@ a) _ [Occ=Dead] -> T13143.$wf @ a GHC.Prim.void#}]
24 f = \ (@ a) _ [Occ=Dead] -> T13143.$wf @ a GHC.Prim.void#
25
26 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
27 T13143.$trModule4 :: GHC.Prim.Addr#
28 [GblId,
29  Caf=NoCafRefs,
30  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
31          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
32 T13143.$trModule4 = "main"#
33
34 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
35 T13143.$trModule3 :: GHC.Types.TrName
36 [GblId,
37  Caf=NoCafRefs,
38  Str=m1,
39  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
40          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
41 T13143.$trModule3 = GHC.Types.TrNameS T13143.$trModule4
42
43 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
44 T13143.$trModule2 :: GHC.Prim.Addr#
45 [GblId,
46  Caf=NoCafRefs,
47  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
48          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
49 T13143.$trModule2 = "T13143"#
50
51 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
52 T13143.$trModule1 :: GHC.Types.TrName
53 [GblId,
54  Caf=NoCafRefs,
55  Str=m1,
56  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
57          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
58 T13143.$trModule1 = GHC.Types.TrNameS T13143.$trModule2
59
60 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
61 T13143.$trModule :: GHC.Types.Module
62 [GblId,
63  Caf=NoCafRefs,
64  Str=m,
65  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
66          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
67 T13143.$trModule
68   = GHC.Types.Module T13143.$trModule3 T13143.$trModule1
69
70 -- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0}
71 lvl :: Int
72 [GblId, Str=b]
73 lvl = T13143.$wf @ Int GHC.Prim.void#
74
75 Rec {
76 -- RHS size: {terms: 28, types: 7, coercions: 0, joins: 0/0}
77 T13143.$wg [InlPrag=NOUSERINLINE[0], Occ=LoopBreaker]
78   :: Bool -> Bool -> GHC.Prim.Int# -> GHC.Prim.Int#
79 [GblId, Arity=3, Str=<S,1*U><S,1*U><S,U>]
80 T13143.$wg
81   = \ (w :: Bool) (w1 :: Bool) (ww :: GHC.Prim.Int#) ->
82       case w of {
83         False ->
84           case w1 of {
85             False -> T13143.$wg GHC.Types.False GHC.Types.True ww;
86             True -> GHC.Prim.+# ww 1#
87           };
88         True ->
89           case w1 of {
90             False -> T13143.$wg GHC.Types.True GHC.Types.True ww;
91             True -> case lvl of wild2 { }
92           }
93       }
94 end Rec }
95
96 -- RHS size: {terms: 14, types: 6, coercions: 0, joins: 0/0}
97 g [InlPrag=NOUSERINLINE[0]] :: Bool -> Bool -> Int -> Int
98 [GblId,
99  Arity=3,
100  Str=<S,1*U><S,1*U><S(S),1*U(U)>m,
101  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
102          WorkFree=True, Expandable=True,
103          Guidance=ALWAYS_IF(arity=3,unsat_ok=True,boring_ok=False)
104          Tmpl= \ (w [Occ=Once] :: Bool)
105                  (w1 [Occ=Once] :: Bool)
106                  (w2 [Occ=Once!] :: Int) ->
107                  case w2 of { GHC.Types.I# ww1 [Occ=Once] ->
108                  case T13143.$wg w w1 ww1 of ww2 { __DEFAULT -> GHC.Types.I# ww2 }
109                  }}]
110 g = \ (w :: Bool) (w1 :: Bool) (w2 :: Int) ->
111       case w2 of { GHC.Types.I# ww1 ->
112       case T13143.$wg w w1 ww1 of ww2 { __DEFAULT -> GHC.Types.I# ww2 }
113       }
114
115
116