roc/crates/compiler/test_mono/generated/issue_4770.txt
Brendan Hansknecht 3c737c19ee
update mono tests
2024-02-29 21:33:32 -08:00

195 lines
8.5 KiB
Text
Generated

procedure Bool.1 ():
let Bool.25 : Int1 = false;
ret Bool.25;
procedure Bool.2 ():
let Bool.24 : Int1 = true;
ret Bool.24;
procedure List.103 (List.487, List.488, List.489):
let List.586 : U64 = 0i64;
let List.587 : U64 = CallByName List.6 List.487;
let List.585 : [C {}, C {}] = CallByName List.80 List.487 List.488 List.489 List.586 List.587;
ret List.585;
procedure List.23 (#Attr.2, #Attr.3, #Attr.4):
let List.607 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListMap2 { xs: `#Attr.#arg1`, ys: `#Attr.#arg2` } #Attr.2 #Attr.3 Test.15 #Attr.4;
decref #Attr.3;
decref #Attr.2;
ret List.607;
procedure List.235 (List.574, List.236, List.234):
let List.604 : Int1 = CallByName Test.1 List.236;
if List.604 then
let List.606 : {} = Struct {};
let List.605 : [C {}, C {}] = TagId(1) List.606;
ret List.605;
else
let List.603 : {} = Struct {};
let List.602 : [C {}, C {}] = TagId(0) List.603;
ret List.602;
procedure List.56 (List.233, List.234):
let List.583 : {} = Struct {};
let List.575 : [C {}, C {}] = CallByName List.103 List.233 List.583 List.234;
let List.580 : U8 = 1i64;
let List.581 : U8 = GetTagId List.575;
let List.582 : Int1 = lowlevel Eq List.580 List.581;
if List.582 then
let List.576 : Int1 = CallByName Bool.2;
ret List.576;
else
let List.577 : Int1 = CallByName Bool.1;
ret List.577;
procedure List.6 (#Attr.2):
let List.573 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.573;
procedure List.6 (#Attr.2):
let List.601 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.601;
procedure List.66 (#Attr.2, #Attr.3):
let List.600 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.600;
procedure List.80 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5):
joinpoint List.588 List.490 List.491 List.492 List.493 List.494:
let List.590 : Int1 = CallByName Num.22 List.493 List.494;
if List.590 then
let List.599 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.490 List.493;
inc List.599;
let List.591 : [C {}, C {}] = CallByName List.235 List.491 List.599 List.492;
let List.596 : U8 = 1i64;
let List.597 : U8 = GetTagId List.591;
let List.598 : Int1 = lowlevel Eq List.596 List.597;
if List.598 then
let List.495 : {} = UnionAtIndex (Id 1) (Index 0) List.591;
let List.594 : U64 = 1i64;
let List.593 : U64 = CallByName Num.51 List.493 List.594;
jump List.588 List.490 List.495 List.492 List.593 List.494;
else
dec List.490;
let List.496 : {} = UnionAtIndex (Id 0) (Index 0) List.591;
let List.595 : [C {}, C {}] = TagId(0) List.496;
ret List.595;
else
dec List.490;
let List.589 : [C {}, C {}] = TagId(1) List.491;
ret List.589;
in
jump List.588 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.269 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.269;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.272 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;
ret Num.272;
procedure Num.51 (#Attr.2, #Attr.3):
let Num.271 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.271;
procedure Test.1 (#Derived_gen.0):
joinpoint Test.26 Test.6:
let Test.65 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
let Test.66 : U8 = 0i64;
let Test.67 : U8 = GetTagId Test.65;
let Test.68 : Int1 = lowlevel Eq Test.66 Test.67;
if Test.68 then
let Test.57 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
let Test.58 : U8 = 0i64;
let Test.59 : U8 = GetTagId Test.57;
let Test.60 : Int1 = lowlevel Eq Test.58 Test.59;
if Test.60 then
let Test.50 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
let Test.8 : I64 = UnionAtIndex (Id 0) (Index 0) Test.50;
let Test.49 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
dec Test.50;
let Test.10 : I64 = UnionAtIndex (Id 0) (Index 0) Test.49;
joinpoint #Derived_gen.6:
let Test.27 : Int1 = CallByName Num.22 Test.8 Test.10;
ret Test.27;
in
let #Derived_gen.7 : Int1 = lowlevel RefCountIsUnique Test.49;
if #Derived_gen.7 then
free Test.49;
jump #Derived_gen.6;
else
decref Test.49;
jump #Derived_gen.6;
else
let Test.39 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
let Test.42 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
let Test.41 : List [<r>C I64, C List *self] = Array [Test.42];
let Test.40 : [<r>C I64, C List *self] = TagId(1) Test.41;
let Test.38 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.39, Test.40};
jump Test.26 Test.38;
else
let Test.61 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
let Test.62 : U8 = 1i64;
let Test.63 : U8 = GetTagId Test.61;
let Test.64 : Int1 = lowlevel Eq Test.62 Test.63;
if Test.64 then
let Test.52 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
let Test.12 : List [<r>C I64, C List *self] = UnionAtIndex (Id 1) (Index 0) Test.52;
inc 2 Test.12;
let Test.51 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
dec Test.52;
let Test.14 : List [<r>C I64, C List *self] = UnionAtIndex (Id 1) (Index 0) Test.51;
inc Test.14;
joinpoint #Derived_gen.8:
let Test.35 : {} = Struct {};
let Test.33 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.23 Test.12 Test.14 Test.35;
let Test.34 : {} = Struct {};
let Test.29 : Int1 = CallByName List.56 Test.33 Test.34;
if Test.29 then
let Test.31 : U64 = CallByName List.6 Test.12;
dec Test.12;
let Test.32 : U64 = CallByName List.6 Test.14;
dec Test.14;
let Test.30 : Int1 = CallByName Num.22 Test.31 Test.32;
ret Test.30;
else
dec Test.12;
dec Test.14;
let Test.28 : Int1 = CallByName Bool.1;
ret Test.28;
in
let #Derived_gen.9 : Int1 = lowlevel RefCountIsUnique Test.51;
if #Derived_gen.9 then
free Test.51;
jump #Derived_gen.8;
else
inc Test.14;
decref Test.51;
jump #Derived_gen.8;
else
let Test.48 : [<r>C I64, C List *self] = StructAtIndex 0 Test.6;
let Test.47 : List [<r>C I64, C List *self] = Array [Test.48];
let Test.45 : [<r>C I64, C List *self] = TagId(1) Test.47;
let Test.46 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
let Test.44 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.45, Test.46};
jump Test.26 Test.44;
in
jump Test.26 #Derived_gen.0;
procedure Test.15 (Test.16, Test.17):
let Test.36 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.16, Test.17};
ret Test.36;
procedure Test.0 ():
let Test.76 : I64 = 10i64;
let Test.75 : [<r>C I64, C List *self] = TagId(0) Test.76;
let Test.74 : List [<r>C I64, C List *self] = Array [Test.75];
let Test.69 : [<r>C I64, C List *self] = TagId(1) Test.74;
let Test.73 : I64 = 20i64;
let Test.72 : [<r>C I64, C List *self] = TagId(0) Test.73;
let Test.71 : List [<r>C I64, C List *self] = Array [Test.72];
let Test.70 : [<r>C I64, C List *self] = TagId(1) Test.71;
let Test.25 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.69, Test.70};
let Test.24 : Int1 = CallByName Test.1 Test.25;
ret Test.24;