roc/crates/compiler/test_mono/generated/weakening_avoids_overspecialization.txt
2025-01-03 13:58:24 -06:00

107 lines
4.1 KiB
Text
Generated

procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.23;
procedure List.115 (List.562, List.563, List.564):
let List.683 : U64 = 0i64;
let List.684 : U64 = CallByName List.6 List.562;
let List.682 : [C U64, C U64] = CallByName List.80 List.562 List.563 List.564 List.683 List.684;
ret List.682;
procedure List.26 (List.212, List.213, List.214):
let List.676 : [C U64, C U64] = CallByName List.115 List.212 List.213 List.214;
let List.679 : U8 = 1i64;
let List.680 : U8 = GetTagId List.676;
let List.681 : Int1 = lowlevel Eq List.679 List.680;
if List.681 then
let List.215 : U64 = UnionAtIndex (Id 1) (Index 0) List.676;
ret List.215;
else
let List.216 : U64 = UnionAtIndex (Id 0) (Index 0) List.676;
ret List.216;
procedure List.38 (List.400, List.401):
let List.675 : U64 = CallByName List.6 List.400;
let List.402 : U64 = CallByName Num.77 List.675 List.401;
let List.665 : List U8 = CallByName List.43 List.400 List.402;
ret List.665;
procedure List.43 (List.398, List.399):
let List.673 : U64 = CallByName List.6 List.398;
let List.672 : U64 = CallByName Num.77 List.673 List.399;
let List.667 : {U64, U64} = Struct {List.399, List.672};
let List.666 : List U8 = CallByName List.49 List.398 List.667;
ret List.666;
procedure List.49 (List.476, List.477):
let List.669 : U64 = StructAtIndex 1 List.477;
let List.670 : U64 = StructAtIndex 0 List.477;
let List.668 : List U8 = CallByName List.72 List.476 List.669 List.670;
ret List.668;
procedure List.6 (#Attr.2):
let List.674 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.674;
procedure List.66 (#Attr.2, #Attr.3):
let List.697 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.697;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.671 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.671;
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.685 List.565 List.566 List.567 List.568 List.569:
let List.687 : Int1 = CallByName Num.22 List.568 List.569;
if List.687 then
let List.696 : U8 = CallByName List.66 List.565 List.568;
let List.688 : [C U64, C U64] = CallByName Test.3 List.566 List.696;
let List.693 : U8 = 1i64;
let List.694 : U8 = GetTagId List.688;
let List.695 : Int1 = lowlevel Eq List.693 List.694;
if List.695 then
let List.570 : U64 = UnionAtIndex (Id 1) (Index 0) List.688;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.568 List.691;
jump List.685 List.565 List.570 List.567 List.690 List.569;
else
dec List.565;
let List.571 : U64 = UnionAtIndex (Id 0) (Index 0) List.688;
let List.692 : [C U64, C U64] = TagId(0) List.571;
ret List.692;
else
dec List.565;
let List.686 : [C U64, C U64] = TagId(1) List.566;
ret List.686;
in
inc #Derived_gen.0;
jump List.685 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.286;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.285 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.285;
procedure Num.77 (#Attr.2, #Attr.3):
let Num.284 : U64 = lowlevel NumSubSaturated #Attr.2 #Attr.3;
ret Num.284;
procedure Test.3 (Test.4, Test.12):
let Test.13 : [C U64, C U64] = TagId(0) Test.4;
ret Test.13;
procedure Test.0 (Test.1):
let Test.10 : U64 = 0i64;
let Test.11 : {} = Struct {};
let Test.2 : U64 = CallByName List.26 Test.1 Test.10 Test.11;
let Test.9 : U64 = 0i64;
let Test.7 : Int1 = CallByName Bool.11 Test.2 Test.9;
if Test.7 then
ret Test.1;
else
let Test.6 : List U8 = CallByName List.38 Test.1 Test.2;
ret Test.6;