summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--6/asm.h28
-rw-r--r--6/gengas.c30
-rw-r--r--6/genp9.c27
-rw-r--r--6/isel.c562
-rw-r--r--6/locs.c2
-rw-r--r--6/ra.c25
-rw-r--r--6/simp.c86
-rw-r--r--6/typeinfo.c187
-rwxr-xr-xconfigure14
-rw-r--r--lib/crypto/sha3.myr4
-rw-r--r--lib/crypto/test/sha3.myr93
-rw-r--r--lib/std/bigint.myr3
-rw-r--r--lib/std/ipparse.myr36
-rw-r--r--lib/std/listen+posixy.myr6
-rw-r--r--lib/std/test/bigint.myr381
-rw-r--r--lib/std/test/fmt.myr4
-rw-r--r--lib/std/test/ipparse.myr25
-rw-r--r--lib/std/varargs.myr2
-rw-r--r--lib/sys/sys+osx-x64.myr2
-rw-r--r--mbld/deps.myr65
-rw-r--r--mbld/libs.myr2
-rw-r--r--mbld/types.myr5
-rw-r--r--mi/match.c84
-rwxr-xr-xmk/bootstrap/bootstrap+Darwin-x86_64.sh6
-rwxr-xr-xmk/bootstrap/bootstrap+FreeBSD-amd64.sh4
-rwxr-xr-xmk/bootstrap/bootstrap+OpenBSD-amd64.sh6
-rwxr-xr-xmk/bootstrap/bootstrap+Plan9-amd64.sh6
-rw-r--r--parse/fold.c3
-rw-r--r--parse/gram.y2
-rw-r--r--parse/infer.c66
-rw-r--r--parse/node.c2
-rw-r--r--parse/parse.h3
-rw-r--r--parse/tok.c5
-rw-r--r--parse/use.c4
-rw-r--r--rt/start-freebsd.s10
-rw-r--r--support/vim/syntax/myr.vim61
-rw-r--r--test/abi/001_in-c.glue.c25
-rw-r--r--test/abi/001_in-c.myr7
-rw-r--r--test/abi/001_in-myr.myr11
-rw-r--r--test/abi/001_main.myr29
-rw-r--r--test/abi/001_types.h2
-rw-r--r--test/abi/001_types.myr5
-rw-r--r--test/abi/002_main.myr24
-rw-r--r--test/abi/003_main.myr78
-rw-r--r--test/abi/004_in-c.glue.c443
-rw-r--r--test/abi/004_in-c.myr16
-rw-r--r--test/abi/004_in-myr.myr310
-rw-r--r--test/abi/004_main.myr175
-rw-r--r--test/abi/004_types.h62
-rw-r--r--test/abi/004_types.myr341
-rw-r--r--test/abi/005_in-c.glue.c468
-rw-r--r--test/abi/005_in-c.myr16
-rw-r--r--test/abi/005_in-myr.myr330
-rw-r--r--test/abi/005_main.myr180
-rw-r--r--test/abi/005_types.h79
-rw-r--r--test/abi/005_types.myr420
-rw-r--r--test/abi/006_in-c.glue.c913
-rw-r--r--test/abi/006_in-c.myr26
-rw-r--r--test/abi/006_in-myr.myr646
-rw-r--r--test/abi/006_main.myr339
-rw-r--r--test/abi/006_types.h102
-rw-r--r--test/abi/006_types.myr523
-rw-r--r--test/abi/bld.proj39
-rw-r--r--test/fmtnest.myr18
-rw-r--r--test/matchor.myr65
-rwxr-xr-xtest/runtest.rc23
-rwxr-xr-xtest/runtest.sh28
-rw-r--r--test/tests17
68 files changed, 7314 insertions, 297 deletions
diff --git a/6/asm.h b/6/asm.h
index fe33b3f..6011264 100644
--- a/6/asm.h
+++ b/6/asm.h
@@ -46,6 +46,27 @@ typedef enum {
} Mode;
typedef enum {
+ PassInNoPref,
+ PassInSSE,
+ PassInInt,
+ PassInMemory,
+} PassIn;
+
+typedef enum {
+ ArgVoid,
+ /* Either int or flt, depending on Loc* type */
+ ArgReg,
+ /* Small aggregates packed into registers */
+ ArgAggrI,
+ ArgAggrF,
+ ArgAggrII,
+ ArgAggrFI,
+ ArgAggrIF,
+ ArgAggrFF,
+ ArgBig,
+} ArgType;
+
+typedef enum {
Classbad,
Classint,
Classflt,
@@ -141,6 +162,7 @@ struct Func {
Htab *envoff; /* Loc* -> int envoff map */
size_t stksz; /* stack size */
Node *ret; /* return value */
+ ArgType rettype; /* how to actually get ret out */
Cfg *cfg; /* flow graph */
char isexport; /* is this exported from the asm? */
@@ -174,6 +196,7 @@ struct Isel {
Asmbb *curbb;
Node *ret; /* we store the return into here */
+ ArgType rettype; /* how ret actually gets out of the function */
Htab *spillslots; /* reg id => int stkoff */
Htab *reglocs; /* decl id => Loc *reg */
Htab *stkoff; /* decl id => int stkoff */
@@ -295,6 +318,8 @@ char *tydescid(char *buf, size_t bufsz, Type *ty);
Loc *coreg(Reg r, Mode m);
int isfloatmode(Mode m);
int isintmode(Mode m);
+int issubreg(Loc *, Loc *);
+int dumbmov(Loc *, Loc *);
/* emitting instructions */
Insn *mkinsn(int op, ...);
@@ -314,6 +339,9 @@ size_t tyalign(Type *t);
size_t size(Node *n);
ssize_t tyoffset(Type *ty, Node *memb);
ssize_t offset(Node *aggr, Node *memb);
+size_t countargs(Type *t);
+ArgType classify(Type *t);
+int isaggregate(Type *t);
int stacknode(Node *n);
int floatnode(Node *n);
void breakhere();
diff --git a/6/gengas.c b/6/gengas.c
index 991e30b..b224300 100644
--- a/6/gengas.c
+++ b/6/gengas.c
@@ -107,12 +107,6 @@ locprint(FILE *fd, Loc *l, char spec)
}
}
-static int
-issubreg(Loc *a, Loc *b)
-{
- return rclass(a) == rclass(b) && a->mode != b->mode;
-}
-
void
iprintf(FILE *fd, Insn *insn)
{
@@ -132,29 +126,22 @@ iprintf(FILE *fd, Insn *insn)
insn->args[1] = coreg(insn->args[1]->reg.colour, ModeL);
}
}
- /* moving a reg to itself is dumb. */
- if (insn->args[0]->reg.colour == insn->args[1]->reg.colour)
- return;
+ if(dumbmov(insn->args[0], insn->args[1]))
+ return;
break;
case Imovs:
- if (insn->args[0]->reg.colour == Rnone || insn->args[1]->reg.colour == Rnone)
- break;
- /* moving a reg to itself is dumb. */
- if (insn->args[0]->reg.colour == insn->args[1]->reg.colour)
+ if(dumbmov(insn->args[0], insn->args[1]))
return;
break;
case Imov:
assert(!isfloatmode(insn->args[0]->mode));
- if (insn->args[0]->type != Locreg || insn->args[1]->type != Locreg)
- break;
- if (insn->args[0]->reg.colour == Rnone || insn->args[1]->reg.colour == Rnone)
- break;
- /* if one reg is a subreg of another, we can just use the right
- * mode to move between them. */
+ /*
+ * if one reg is a subreg of another, we can just use the right
+ * mode to move between them, without any cost.
+ */
if (issubreg(insn->args[0], insn->args[1]))
insn->args[0] = coreg(insn->args[0]->reg.colour, insn->args[1]->mode);
- /* moving a reg to itself is dumb. */
- if (insn->args[0]->reg.colour == insn->args[1]->reg.colour)
+ if(dumbmov(insn->args[0], insn->args[1]))
return;
break;
default:
@@ -357,6 +344,7 @@ genfunc(FILE *fd, Func *fn, Htab *globls, Htab *strtab)
is.envoff = fn->envoff;
is.globls = globls;
is.ret = fn->ret;
+ is.rettype = fn->rettype;
is.cfg = fn->cfg;
is.cwd = strdup(cwd);
diff --git a/6/genp9.c b/6/genp9.c
index 32af6de..5a68984 100644
--- a/6/genp9.c
+++ b/6/genp9.c
@@ -105,12 +105,6 @@ locprint(FILE *fd, Loc *l, char spec)
}
}
-static int
-issubreg(Loc *a, Loc *b)
-{
- return rclass(a) == rclass(b) && a->mode != b->mode;
-}
-
static void
iprintf(FILE *fd, Insn *insn)
{
@@ -130,26 +124,22 @@ iprintf(FILE *fd, Insn *insn)
insn->args[1] = coreg(insn->args[1]->reg.colour, ModeL);
}
}
+ if(dumbmov(insn->args[0], insn->args[1]))
+ return;
break;
case Imovs:
- if (insn->args[0]->reg.colour == Rnone || insn->args[1]->reg.colour == Rnone)
- break;
- /* moving a reg to itself is dumb. */
- if (insn->args[0]->reg.colour == insn->args[1]->reg.colour)
+ if(dumbmov(insn->args[0], insn->args[1]))
return;
break;
case Imov:
assert(!isfloatmode(insn->args[0]->mode));
- if (insn->args[0]->type != Locreg || insn->args[1]->type != Locreg)
- break;
- if (insn->args[0]->reg.colour == Rnone || insn->args[1]->reg.colour == Rnone)
- break;
- /* if one reg is a subreg of another, we can just use the right
- * mode to move between them. */
+ /*
+ * if one reg is a subreg of another, we can just use the right
+ * mode to move between them, without any cost.
+ */
if (issubreg(insn->args[0], insn->args[1]))
insn->args[0] = coreg(insn->args[0]->reg.colour, insn->args[1]->mode);
- /* moving a reg to itself is dumb. */
- if (insn->args[0]->reg.colour == insn->args[1]->reg.colour)
+ if(dumbmov(insn->args[0], insn->args[1]))
return;
break;
default:
@@ -360,6 +350,7 @@ genfunc(FILE *fd, Func *fn, Htab *globls, Htab *strtab)
is.envoff = fn->envoff;
is.globls = globls;
is.ret = fn->ret;
+ is.rettype = fn->rettype;
is.cfg = fn->cfg;
if (fn->hasenv)
is.envp = locreg(ModeQ);
diff --git a/6/isel.c b/6/isel.c
index 0361578..0000424 100644
--- a/6/isel.c
+++ b/6/isel.c
@@ -27,6 +27,10 @@ regid floatargregs[] = {
Rxmm4d, Rxmm5d, Rxmm6d, Rxmm7d,
};
regid intargregs[] = {Rrdi, Rrsi, Rrdx, Rrcx, Rr8, Rr9};
+#define Nfloatregrets 2
+#define Nintregrets 2
+regid fltretregs[] = {Rxmm0d, Rxmm1d};
+regid intretregs[] = {Rrax, Rrdx};
/* used to decide which operator is appropriate
* for implementing various conditional operators */
@@ -83,6 +87,48 @@ tymode(Type *t)
return ModeNone;
}
+static Mode tymodepart(Type *t, int is_float, size_t displacement)
+{
+ assert(isstacktype(t));
+ size_t sz = tysize(t);
+
+ if (is_float) {
+ switch(sz - displacement) {
+ case 4: return ModeF; break;
+ default: return ModeD; break;
+ }
+ } else {
+ switch(sz - displacement) {
+ case 1: return ModeB; break;
+ case 2: return ModeW; break;
+ case 4: return ModeL; break;
+ default: return ModeQ; break;
+ }
+ }
+}
+
+static Mode
+forcefltmode(Mode m)
+{
+ assert(m != ModeNone);
+ switch (m) {
+ case ModeQ: return ModeD;
+ case ModeD: return ModeD;
+ default: return ModeF;
+ }
+}
+
+static Mode
+forceintmode(Mode m)
+{
+ assert(m != ModeNone);
+ switch (m) {
+ case ModeD: return ModeQ;
+ case ModeF: return ModeL;
+ default: return m;
+ }
+}
+
static Mode
mode(Node *n)
{
@@ -500,68 +546,190 @@ call(Isel *s, Node *n)
g(s, op, f, NULL);
}
-static size_t
-countargs(Type *t)
+static void
+placearg(Isel *s, Node *argn, Loc *argloc, PassIn p, Loc *rsp, int vararg, size_t *nfloats, size_t *nints, size_t *argoff)
{
- size_t nargs;
+ /*
+ placearg may be called when argn is stored at argloc, but it may also
+ be called when argloc is a small piece of argn, as in the case when
+ small structs are being passed. In those circumstances, p is PassInSSE
+ or PassInInt, and argn is irrelevant. Therefore, argn should not be
+ relied on when p is PassInSSE or PassInInt.
+ */
+ Loc *src, *dst;
+ size_t a;
+
+ if (p == PassInNoPref) {
+ if (stacknode(argn)) {
+ p = PassInMemory;
+ } else if (!vararg && isfloatmode(argloc->mode) && *nfloats < Nfloatregargs) {
+ p = PassInSSE;
+ } else if (!vararg && isintmode(argloc->mode) && *nints < Nintregargs) {
+ p = PassInInt;
+ } else {
+ p = PassInMemory;
+ }
+ }
- t = tybase(t);
- nargs = t->nsub - 1;
- if (isstacktype(t->sub[0]))
- nargs++;
- /* valists are replaced with hidden type parameter,
- * which we want on the stack for ease of ABI */
- if (tybase(t->sub[t->nsub - 1])->type == Tyvalist)
- nargs--;
- return nargs;
+ switch (p) {
+ case PassInMemory:
+ if (stacknode(argn)) {
+ src = locreg(ModeQ);
+ g(s, Ilea, argloc, src, NULL);
+ a = tyalign(exprtype(argn));
+ blit(s, rsp, src, *argoff, 0, size(argn), a);
+ *argoff += size(argn);
+ } else {
+ dst = locmem(*argoff, rsp, NULL, argloc->mode);
+ argloc = inri(s, argloc);
+ stor(s, argloc, dst);
+ *argoff += size(argn);
+ }
+ break;
+ case PassInSSE:
+ dst = coreg(floatargregs[*nfloats], forcefltmode(argloc->mode));
+ argloc = inri(s, argloc);
+ if (isfloatmode(argloc->mode)) {
+ g(s, Imovs, argloc, dst, NULL);
+ } else {
+ g(s, Imov, argloc, dst, NULL);
+ }
+ (*nfloats)++;
+ break;
+ case PassInInt:
+ dst = coreg(intargregs[*nints], forceintmode(argloc->mode));
+ argloc = inri(s, argloc);
+ g(s, Imov, argloc, dst, NULL);
+ (*nints)++;
+ break;
+ case PassInNoPref: /* impossible */
+ die("cannot determine how to pass arg");
+ break;
+ }
+}
+
+static int
+sufficientregs(ArgType a, size_t nfloats, size_t nints)
+{
+ static const struct {
+ int ireg;
+ int freg;
+ } needed[] = {
+ [ArgAggrI] = {1, 0},
+ [ArgAggrFI] = {1, 1},
+ [ArgAggrIF] = {1, 1},
+ [ArgAggrII] = {2, 0},
+ [ArgAggrFF] = {0, 2},
+ };
+
+ return (needed[a].freg + nfloats <= Nfloatregargs) && (needed[a].ireg + nints <= Nintregargs);
}
static Loc *
+plus8(Isel *s, Loc *base)
+{
+ Loc *forcedreg = locreg(ModeQ);
+ if (base->type == Loclbl || (base->type == Locmeml && !base->mem.base)) {
+ forcedreg = loclitl(base->lbl);
+ } else {
+ g(s, Ilea, base, forcedreg, NULL);
+ }
+ return locmem(8, forcedreg, NULL, ModeQ);
+}
+
+static void
gencall(Isel *s, Node *n)
{
- Loc *src, *dst, *arg; /* values we reduced */
- size_t argsz, argoff, nargs, vasplit;
+ Loc *arg; /* values we reduced */
+ size_t argsz, argoff, nargs, falseargs, vasplit;
size_t nfloats, nints;
- Loc *retloc, *rsp, *ret; /* hard-coded registers */
+ Loc *retloc1, *retloc2, *rsp; /* hard-coded registers */
+ Loc *ret;
+ size_t ri, rf;
Loc *stkbump; /* calculated stack offset */
Type *t, *fn;
Node **args;
- size_t i, a;
+ Node *retnode;
+ ArgType rettype;
+ size_t i;
int vararg;
rsp = locphysreg(Rrsp);
+
t = exprtype(n);
- if (tybase(t)->type == Tyvoid || isstacktype(t)) {
- retloc = NULL;
- ret = NULL;
- } else if (istyfloat(t)) {
- retloc = coreg(Rxmm0d, mode(n));
- ret = locreg(mode(n));
- } else {
- retloc = coreg(Rrax, mode(n));
- ret = locreg(mode(n));
+ ri = 0;
+ rf = 0;
+ retloc1 = NULL;
+ retloc2 = NULL;
+ rettype = classify(t);
+
+ switch (rettype) {
+ case ArgVoid:
+ case ArgBig:
+ break;
+ case ArgReg:
+ retloc1 = coreg((istyfloat(t)) ? Rxmm0d : Rrax, mode(n));
+ break;
+ case ArgAggrI:
+ retloc1 = coreg(intretregs[ri++], tymodepart(t, 0, 0));
+ break;
+ case ArgAggrF:
+ retloc1 = coreg(fltretregs[rf++], tymodepart(t, 1, 0));
+ break;
+ case ArgAggrII:
+ retloc1 = coreg(intretregs[ri++], tymodepart(t, 0, 0));
+ retloc2 = coreg(intretregs[ri++], tymodepart(t, 0, 8));
+ break;
+ case ArgAggrIF:
+ retloc1 = coreg(intretregs[ri++], tymodepart(t, 0, 0));
+ retloc2 = coreg(fltretregs[rf++], tymodepart(t, 1, 8));
+ break;
+ case ArgAggrFI:
+ retloc1 = coreg(fltretregs[rf++], tymodepart(t, 1, 0));
+ retloc2 = coreg(intretregs[ri++], tymodepart(t, 0, 8));
+ break;
+ case ArgAggrFF:
+ retloc1 = coreg(fltretregs[rf++], tymodepart(t, 1, 0));
+ retloc2 = coreg(fltretregs[rf++], tymodepart(t, 1, 8));
+ break;
}
+
fn = tybase(exprtype(n->expr.args[0]));
/* calculate the number of args we expect to see, adjust
* for a hidden return argument. */
vasplit = countargs(fn);
argsz = 0;
- if (exprop(n) == Ocall) {
- args = &n->expr.args[1];
- nargs = n->expr.nargs - 1;
- } else {
- args = &n->expr.args[2];
- nargs = n->expr.nargs - 2;
+
+ /*
+ * { the function itself, [optional environment], [optional return information], real arg 1, ... }
+ */
+ falseargs = 1;
+ if (exprop(n) == Ocallind) {
+ falseargs++;
+ }
+ if (rettype != ArgVoid) {
+ retnode = n->expr.args[falseargs];
+ if (rettype != ArgBig) {
+ falseargs++;
+ }
}
+ args = &n->expr.args[falseargs];
+ nargs = n->expr.nargs - falseargs;
/* Have to calculate the amount to bump the stack
* pointer by in one pass first, otherwise if we push
* one at a time, we evaluate the args in reverse order.
* Not good.
*
- * Skip the first operand, since it's the function itself */
+ * Skip the first operand, since it's the function itself
+ *
+ * Strictly speaking, we might waste a little space here,
+ * since some of these args might actually get passed in
+ * registers.
+ */
for (i = 0; i < nargs; i++) {
argsz = align(argsz, min(size(args[i]), Ptrsz));
argsz += size(args[i]);
+ argsz = align(argsz, 8);
}
argsz = align(argsz, 16);
stkbump = loclit(argsz, ModeQ);
@@ -575,42 +743,98 @@ gencall(Isel *s, Node *n)
vararg = 0;
for (i = 0; i < nargs; i++) {
arg = selexpr(s, args[i]);
- argoff = alignto(argoff, exprtype(args[i]));
+ t = exprtype(args[i]);
+ argoff = alignto(argoff, t);
+ ArgType a = ArgBig;
if (i >= vasplit)
vararg = 1;
- if (stacknode(args[i])) {
- src = locreg(ModeQ);
- g(s, Ilea, arg, src, NULL);
- a = tyalign(exprtype(args[i]));
- blit(s, rsp, src, argoff, 0, size(args[i]), a);
- argoff += size(args[i]);
- } else if (!vararg && isfloatmode(arg->mode) && nfloats < Nfloatregargs) {
- dst = coreg(floatargregs[nfloats], arg->mode);
- arg = inri(s, arg);
- g(s, Imovs, arg, dst, NULL);
- nfloats++;
- } else if (!vararg && isintmode(arg->mode) && nints < Nintregargs) {
- dst = coreg(intargregs[nints], arg->mode);
- arg = inri(s, arg);
- g(s, Imov, arg, dst, NULL);
- nints++;
- } else {
- dst = locmem(argoff, rsp, NULL, arg->mode);
- arg = inri(s, arg);
- stor(s, arg, dst);
- argoff += size(args[i]);
+ else
+ argoff = align(argoff, 8);
+
+ if (!vararg) {
+ a = classify(t);
+ }
+
+ if (!sufficientregs(a, nfloats, nints)) {
+ a = ArgBig;
+ }
+
+ switch(a) {
+ case ArgVoid:
+ break;
+ case ArgReg:
+ case ArgBig:
+ /* placearg can figure this out */
+ placearg(s, args[i], arg, PassInNoPref, rsp, vararg, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrI:
+ placearg(s, args[i], arg, PassInInt, rsp, vararg, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrF:
+ placearg(s, args[i], arg, PassInSSE, rsp, vararg, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrII:
+ placearg(s, args[i], arg , PassInInt, rsp, vararg, &nfloats, &nints, &argoff);
+ placearg(s, args[i], plus8(s, arg), PassInInt, rsp, vararg, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrIF:
+ placearg(s, args[i], arg , PassInInt, rsp, vararg, &nfloats, &nints, &argoff);
+ placearg(s, args[i], plus8(s, arg), PassInSSE, rsp, vararg, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrFI:
+ placearg(s, args[i], arg , PassInSSE, rsp, vararg, &nfloats, &nints, &argoff);
+ placearg(s, args[i], plus8(s, arg), PassInInt, rsp, vararg, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrFF:
+ placearg(s, args[i], arg , PassInSSE, rsp, vararg, &nfloats, &nints, &argoff);
+ placearg(s, args[i], plus8(s, arg), PassInSSE, rsp, vararg, &nfloats, &nints, &argoff);
+ break;
}
+
}
call(s, n);
if (argsz)
g(s, Iadd, stkbump, rsp, NULL);
- if (retloc) {
- if (isfloatmode(retloc->mode))
- g(s, Imovs, retloc, ret, NULL);
+
+ switch (rettype) {
+ case ArgVoid:
+ case ArgBig:
+ /*
+ * No need to do anything. The return location, if any, was taken care of
+ * as the hidden argument.
+ */
+ break;
+ case ArgReg:
+ /* retnode is the actual thing we're storing in */
+ ret = varloc(s, retnode);
+ if (isfloatmode(retloc1->mode))
+ g(s, Imovs, retloc1, ret, NULL);
else
- g(s, Imov, retloc, ret, NULL);
+ g(s, Imov, retloc1, ret, NULL);
+ break;
+ case ArgAggrI:
+ g(s, Imov, retloc1, locmem(0, inri(s, selexpr(s, retnode)), NULL, ModeQ), NULL);
+ break;
+ case ArgAggrF:
+ g(s, Imovs, retloc1, locmem(0, inri(s, selexpr(s, retnode)), NULL, ModeD), NULL);
+ break;
+ case ArgAggrII:
+ g(s, Imov, retloc1, locmem(0, inri(s, selexpr(s, retnode)), NULL, ModeQ), NULL);
+ g(s, Imov, retloc2, locmem(8, inri(s, selexpr(s, retnode)), NULL, ModeQ), NULL);
+ break;
+ case ArgAggrIF:
+ g(s, Imov, retloc1, locmem(0, inri(s, selexpr(s, retnode)), NULL, ModeQ), NULL);
+ g(s, Imovs, retloc2, locmem(8, inri(s, selexpr(s, retnode)), NULL, ModeD), NULL);
+ break;
+ case ArgAggrFI:
+ g(s, Imovs, retloc1, locmem(0, inri(s, selexpr(s, retnode)), NULL, ModeD), NULL);
+ g(s, Imov, retloc2, locmem(8, inri(s, selexpr(s, retnode)), NULL, ModeQ), NULL);
+ break;
+ case ArgAggrFF:
+ g(s, Imovs, retloc1, locmem(0, inri(s, selexpr(s, retnode)), NULL, ModeD), NULL);
+ g(s, Imovs, retloc2, locmem(8, inri(s, selexpr(s, retnode)), NULL, ModeD), NULL);
+ break;
}
- return ret;
}
static Loc*
@@ -750,7 +974,7 @@ selexpr(Isel *s, Node *n)
if (mode(args[0]) == ModeF) {
a = locreg(ModeF);
b = loclit(1LL << (31), ModeF);
- g(s, Imovs, r, a);
+ g(s, Imovs, r, a, NULL);
} else if (mode(args[0]) == ModeD) {
a = locreg(ModeQ);
b = loclit(1LL << 63, ModeQ);
@@ -848,7 +1072,7 @@ selexpr(Isel *s, Node *n)
break;
case Ocall:
case Ocallind:
- r = gencall(s, n);
+ gencall(s, n);
break;
case Oret:
a = locstrlbl(s->cfg->end->lbls[0]);
@@ -979,6 +1203,51 @@ savedregs[] = {
Rnone
};
+static void
+movearg(Isel *s, Loc *dst, PassIn p, Mode m, size_t *nfloats, size_t *nints, size_t *argoff)
+{
+ Loc *a;
+ assert(m != ModeNone);
+
+ switch(p) {
+ case PassInInt:
+ a = coreg(intargregs[*nints], forceintmode(m));
+ g(s, Imov, a, dst, NULL);
+ (*nints)++;
+ break;
+ case PassInSSE:
+ a = coreg(floatargregs[*nfloats], forcefltmode(m));
+ g(s, Imovs, a, dst, NULL);
+ (*nfloats)++;
+ break;
+ default: /* no need to move if on stack */
+ break;
+ }
+}
+
+static void
+retrievearg(Isel *s, Node *argn, int vararg, size_t *nfloats, size_t *nints, size_t *argoff)
+{
+ Loc *l;
+
+ if (stacknode(argn)) {
+ htput(s->stkoff, argn, itop(-(*argoff + 2*Ptrsz)));
+ *argoff += size(argn);
+ } else if (!vararg && isfloatmode(mode(argn)) && *nfloats < Nfloatregargs) {
+ l = loc(s, argn);
+ movearg(s, l, PassInSSE, forcefltmode(mode(argn)), nfloats, nints, argoff);
+ htput(s->reglocs, argn, l);
+ } else if (!vararg && isintmode(mode(argn)) && *nints < Nintregargs) {
+ l = loc(s, argn);
+ movearg(s, l, PassInInt, forceintmode(mode(argn)), nfloats, nints, argoff);
+ htput(s->reglocs, argn, l);
+ } else if (tybase(decltype(argn))->type != Tyvoid) {
+ /* varargs go on the stack */
+ htput(s->stkoff, argn, itop(-(*argoff + 2*Ptrsz)));
+ *argoff += size(argn);
+ }
+}
+
void
addarglocs(Isel *s, Func *fn)
{
@@ -986,7 +1255,7 @@ addarglocs(Isel *s, Func *fn)
size_t argoff;
int vararg;
Node *arg;
- Loc *a, *l;
+ Type *t;
argoff = 0;
nfloats = 0;
@@ -995,28 +1264,59 @@ addarglocs(Isel *s, Func *fn)
nargs = countargs(fn->type);
for (i = 0; i < fn->nargs; i++) {
arg = fn->args[i];
- argoff = alignto(argoff, decltype(arg));
+ t = decltype(arg);
+ argoff = alignto(argoff, t);
+ ArgType a = ArgBig;
+ Loc *l = NULL;
if (i >= nargs)
vararg = 1;
- if (stacknode(arg)) {
- htput(s->stkoff, arg, itop(-(argoff + 2*Ptrsz)));
- argoff += size(arg);
- } else if (!vararg && isfloatmode(mode(arg)) && nfloats < Nfloatregargs) {
- a = coreg(floatargregs[nfloats], mode(arg));
+ else
+ argoff = align(argoff, 8);
+
+ if (!vararg) {
+ a = classify(t);
+ }
+
+ if (!sufficientregs(a, nfloats, nints)) {
+ a = ArgBig;
+ }
+
+ switch(a) {
+ case ArgVoid:
+ break;
+ case ArgReg:
+ case ArgBig:
+ /* retrievearg can figure this out */
+ retrievearg(s, arg, vararg, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrI:
+ l = loc(s, arg);
+ movearg(s, l, PassInInt, ModeQ, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrF:
+ l = loc(s, arg);
+ movearg(s, l, PassInSSE, ModeD, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrII:
+ l = loc(s, arg);
+ movearg(s, l , PassInInt, ModeQ, &nfloats, &nints, &argoff);
+ movearg(s, plus8(s, l), PassInInt, ModeQ, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrIF:
l = loc(s, arg);
- g(s, Imovs, a, l, NULL);
- htput(s->reglocs, arg, l);
- nfloats++;
- } else if (!vararg && isintmode(mode(arg)) && nints < Nintregargs) {
- a = coreg(intargregs[nints], mode(arg));
+ movearg(s, l , PassInInt, ModeQ, &nfloats, &nints, &argoff);
+ movearg(s, plus8(s, l), PassInSSE, ModeD, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrFI:
+ l = loc(s, arg);
+ movearg(s, l , PassInSSE, ModeD, &nfloats, &nints, &argoff);
+ movearg(s, plus8(s, l), PassInInt, ModeQ, &nfloats, &nints, &argoff);
+ break;
+ case ArgAggrFF:
l = loc(s, arg);
- g(s, Imov, a, l, NULL);
- htput(s->reglocs, arg, l);
- nints++;
- } else if (tybase(decltype(arg))->type != Tyvoid) {
- /* varargs go on the stack */
- htput(s->stkoff, arg, itop(-(argoff + 2*Ptrsz)));
- argoff += size(arg);
+ movearg(s, l , PassInSSE, ModeD, &nfloats, &nints, &argoff);
+ movearg(s, plus8(s, l), PassInSSE, ModeD, &nfloats, &nints, &argoff);
+ break;
}
}
}
@@ -1060,24 +1360,63 @@ epilogue(Isel *s)
Loc *rsp, *rbp;
Loc *ret;
size_t i;
+ size_t ri = 0, rf = 0;
rsp = locphysreg(Rrsp);
rbp = locphysreg(Rrbp);
- if (s->ret) {
+ switch (s->rettype) {
+ case ArgVoid:
+ break;
+ case ArgReg:
+ /* s->ret is a value, and will be returned that way */
ret = loc(s, s->ret);
if (istyfloat(exprtype(s->ret)))
g(s, Imovs, ret, coreg(Rxmm0d, ret->mode), NULL);
else
g(s, Imov, ret, coreg(Rax, ret->mode), NULL);
+ break;
+ case ArgBig:
+ /* s->ret is an address, and will be returned that way */
+ ret = loc(s, s->ret);
+ g(s, Imov, ret, coreg(Rax, ret->mode), NULL);
+ break;
+ case ArgAggrI:
+ /* s->ret is an address, and will be returned as values */
+ ret = loc(s, s->ret);
+ load(s, locmem(0, ret, NULL, ModeQ), coreg(intretregs[ri++], ModeQ));
+ break;
+ case ArgAggrF:
+ ret = loc(s, s->ret);
+ load(s, locmem(0, ret, NULL, ModeD), coreg(fltretregs[rf++], ModeD));
+ break;
+ case ArgAggrII:
+ ret = loc(s, s->ret);
+ load(s, locmem(0, ret, NULL, ModeQ), coreg(intretregs[ri++], ModeQ));
+ load(s, locmem(8, ret, NULL, ModeQ), coreg(intretregs[ri++], ModeQ));
+ break;
+ case ArgAggrIF:
+ ret = loc(s, s->ret);
+ load(s, locmem(0, ret, NULL, ModeQ), coreg(intretregs[ri++], ModeQ));
+ load(s, locmem(8, ret, NULL, ModeD), coreg(fltretregs[rf++], ModeD));
+ break;
+ case ArgAggrFI:
+ ret = loc(s, s->ret);
+ load(s, locmem(0, ret, NULL, ModeD), coreg(fltretregs[rf++], ModeD));
+ load(s, locmem(8, ret, NULL, ModeQ), coreg(intretregs[ri++], ModeQ));
+ break;
+ case ArgAggrFF:
+ ret = loc(s, s->ret);
+ load(s, locmem(0, ret, NULL, ModeD), coreg(fltretregs[rf++], ModeD));
+ load(s, locmem(8, ret, NULL, ModeD), coreg(fltretregs[rf++], ModeD));
+ break;
}
+
/* restore registers */
- for (i = 0; savedregs[i] != Rnone; i++) {
- if (isfloatmode(s->calleesave[i]->mode)) {
+ for (i = 0; savedregs[i] != Rnone; i++)
+ if (isfloatmode(s->calleesave[i]->mode))
g(s, Imovs, s->calleesave[i], locphysreg(savedregs[i]), NULL);
- } else {
+ else
g(s, Imov, s->calleesave[i], locphysreg(savedregs[i]), NULL);
- }
- }
/* leave function */
g(s, Imov, rbp, rsp, NULL);
g(s, Ipop, rbp, NULL);
@@ -1100,6 +1439,56 @@ mkasmbb(Bb *bb)
return as;
}
+static void
+handlesmallstructargs(Isel *is, Func *fn)
+{
+ /*
+ * Perform a last-minute adjustment to fn->stksz to handle small structs
+ * that will be passed in registers. We do this inside selfunc so that
+ * generics will be specialized.
+ */
+ size_t vasplit = countargs(fn->type);
+ size_t i = 0;
+ Type *t;
+ Node *arg;
+
+ for (i = 0; i < fn->nargs; i++) {
+ arg = fn->args[i];
+ t = decltype(arg);
+ int vararg = 0;
+ ArgType a = ArgBig;
+
+ if (i >= vasplit)
+ vararg = 1;
+
+ if (!vararg) {
+ a = classify(t);
+ }
+
+ switch(a) {
+ case ArgVoid:
+ case ArgReg:
+ case ArgBig:
+ /* No need for any extra space for this arg */
+ break;
+ case ArgAggrI:
+ case ArgAggrF:
+ fn->stksz += 8;
+ fn->stksz = align(fn->stksz, min(8, Ptrsz));
+ htput(fn->stkoff, fn->args[i], itop(fn->stksz));
+ break;
+ case ArgAggrII:
+ case ArgAggrIF:
+ case ArgAggrFI:
+ case ArgAggrFF:
+ fn->stksz += 16;
+ fn->stksz = align(fn->stksz, min(16, Ptrsz));
+ htput(fn->stkoff, fn->args[i], itop(fn->stksz));
+ break;
+ }
+ }
+}
+
void
selfunc(Isel *is, Func *fn, Htab *globls, Htab *strtab)
{
@@ -1125,6 +1514,7 @@ selfunc(Isel *is, Func *fn, Htab *globls, Htab *strtab)
g(is, Iloc, locstrlbl(buf), NULL);
}
+ handlesmallstructargs(is, fn);
prologue(is, fn, fn->stksz);
lastline = -1;
for (j = 0; j < fn->cfg->nbb - 1; j++) {
diff --git a/6/locs.c b/6/locs.c
index aa26f01..b314cd9 100644
--- a/6/locs.c
+++ b/6/locs.c
@@ -176,6 +176,8 @@ loclit(long val, Mode m)
Loc *
coreg(Reg r, Mode m)
{
+ assert(m != ModeNone);
+
Reg crtab[][Nmode + 1] = {
[Ral] = {Rnone, Ral, Rax, Reax, Rrax},
[Rcl] = {Rnone, Rcl, Rcx, Recx, Rrcx},
diff --git a/6/ra.c b/6/ra.c
index da3deca..3ec5cb1 100644
--- a/6/ra.c
+++ b/6/ra.c
@@ -156,6 +156,31 @@ rclass(Loc *l)
return Classbad;
}
+int
+issubreg(Loc *a, Loc *b)
+{
+ if(a->type != Locreg || b->type != Locreg)
+ return 0;
+ if(a->reg.colour == Rnone || b->reg.colour == Rnone)
+ return 0;
+ return rclass(a) == rclass(b) && a->mode != b->mode;
+}
+
+int
+dumbmov(Loc *a, Loc *b)
+{
+ /*
+ * moving a reg to itself is dumb,
+ * but we generate a lot of these as part
+ * of register coalescing.
+ */
+ if (a->type != Locreg || b->type != Locreg)
+ return 0;
+ if (a->reg.colour == Rnone || b->reg.colour == Rnone)
+ return 0;
+ return a->reg.colour == b->reg.colour;
+}
+
/* %esp, %ebp are not in the allocatable pool */
static int
isfixreg(Loc *l)
diff --git a/6/simp.c b/6/simp.c
index d175e4e..6b2a9d6 100644
--- a/6/simp.c
+++ b/6/simp.c
@@ -35,8 +35,8 @@ Simp {
/* return handling */
Node *endlbl;
Node *ret;
+ ArgType rettype;
int hasenv;
- int isbigret;
/* location handling */
Node **blobs;
@@ -1065,6 +1065,7 @@ simpcall(Simp *s, Node *n, Node *dst)
size_t i, nargs;
Node **args;
Type *ft;
+ ArgType rettype;
Op op;
/* NB: If we called rval() on a const function, we would end up with
@@ -1089,8 +1090,23 @@ simpcall(Simp *s, Node *n, Node *dst)
lappend(&args, &nargs, getenvptr(s, fn));
}
- if (exprtype(n)->type != Tyvoid && isstacktype(exprtype(n)))
+ rettype = classify(exprtype(n));
+ switch (rettype) {
+ case ArgVoid:
+ break;
+ case ArgBig:
+ case ArgAggrI:
+ case ArgAggrF:
+ case ArgAggrII:
+ case ArgAggrIF:
+ case ArgAggrFI:
+ case ArgAggrFF:
lappend(&args, &nargs, addr(s, r, exprtype(n)));
+ break;
+ case ArgReg:
+ lappend(&args, &nargs, r);
+ break;
+ }
for (i = 1; i < n->expr.nargs; i++) {
if (i < ft->nsub && tybase(ft->sub[i])->type == Tyvalist)
@@ -1110,11 +1126,7 @@ simpcall(Simp *s, Node *n, Node *dst)
call = mkexprl(n->loc, op, args, nargs);
call->expr.type = exprtype(n);
- if (r && !isstacktype(exprtype(n))) {
- append(s, set(r, call));
- } else {
- append(s, call);
- }
+ append(s, call);
return r;
}
@@ -1237,20 +1249,40 @@ rval(Simp *s, Node *n, Node *dst)
fatal(n, "'_' may not be an rvalue");
break;
case Oret:
- if (s->isbigret) {
+ /*
+ * Compute and put the correct value into s->ret. In the case of ArgBig
+ * and ArgReg, exfiltrate the value from the function. In the case of
+ * ArgAggr_XYZ, put a pointer to the value where the function
+ * epilogue can access it.
+ */
+ switch (s->rettype) {
+ case ArgAggrI:
+ case ArgAggrF:
+ case ArgAggrII:
+ case ArgAggrIF:
+ case ArgAggrFI:
+ case ArgAggrFF:
+ t = s->ret;
+ u = rval(s, args[0], NULL);
+ u = addr(s, u, exprtype(args[0]));
+ v = set(t, u);
+ append(s, v);
+ case ArgBig:
t = rval(s, args[0], NULL);
t = addr(s, t, exprtype(args[0]));
u = disp(n->loc, size(args[0]));
v = mkexpr(n->loc, Oblit, s->ret, t, u, NULL);
append(s, v);
- } else {
+ break;
+ case ArgVoid:
+ rval(s, args[0], NULL);
+ break;
+ case ArgReg:
t = s->ret;
u = rval(s, args[0], NULL);
- /* void calls return nothing */
- if (t) {
- t = set(t, u);
- append(s, t);
- }
+ t = set(t, u);
+ append(s, t);
+ break;
}
append(s, mkexpr(n->loc, Oret, NULL));
break;
@@ -1371,17 +1403,30 @@ simpinit(Simp *s, Node *f)
s->nstmts = 0;
s->stmts = NULL;
s->endlbl = genlbl(f->loc);
- s->ret = NULL;
+ s->rettype = ArgVoid;
/* make a temp for the return type */
ty = f->func.type->sub[0];
- if (isstacktype(ty)) {
- s->isbigret = 1;
+ s->rettype = classify(ty);
+
+ switch(s->rettype) {
+ case ArgVoid:
+ break;
+ case ArgAggrI:
+ case ArgAggrF:
+ case ArgAggrII:
+ case ArgAggrIF:
+ case ArgAggrFI:
+ case ArgAggrFF:
+ s->ret = gentemp(f->loc, mktyptr(f->loc, ty), &dcl);
+ break;
+ case ArgBig:
s->ret = gentemp(f->loc, mktyptr(f->loc, ty), &dcl);
declarearg(s, dcl);
- } else if (tybase(ty)->type != Tyvoid) {
- s->isbigret = 0;
- s->ret = gentemp(f->loc, ty, &dcl);
+ break;
+ case ArgReg:
+ s->ret = gentemp(f->loc, ty, NULL);
+ break;
}
for (i = 0; i < f->func.nargs; i++) {
@@ -1486,6 +1531,7 @@ simpfn(Simp *s, char *name, Node *dcl)
fn->stkoff = s->stkoff;
fn->envoff = s->envoff;
fn->ret = s->ret;
+ fn->rettype = s->rettype;
fn->args = s->args;
fn->nargs = s->nargs;
fn->cfg = cfg;
diff --git a/6/typeinfo.c b/6/typeinfo.c
index c7bed27..b570e00 100644
--- a/6/typeinfo.c
+++ b/6/typeinfo.c
@@ -331,7 +331,7 @@ tyalign(Type *ty)
break;
case Tytuple:
for (i = 0; i < ty->nsub; i++)
- align = max(align, tyalign(ty->sub[0]));
+ align = max(align, tyalign(ty->sub[i]));
break;
case Tyunion:
align = 4;
@@ -408,3 +408,188 @@ offset(Node *aggr, Node *memb)
return tyoffset(exprtype(aggr), memb);
}
+size_t
+countargs(Type *t)
+{
+ size_t nargs;
+
+ t = tybase(t);
+ nargs = t->nsub - 1;
+ if (classify(t->sub[0]) == ArgBig)
+ nargs++;
+ /* valists are replaced with hidden type parameter,
+ * which we want on the stack for ease of ABI */
+ if (tybase(t->sub[t->nsub - 1])->type == Tyvalist)
+ nargs--;
+ return nargs;
+}
+
+static void join_classification(PassIn *current, PassIn new)
+{
+ if (*current == PassInNoPref) {
+ *current = new;
+ } else if ((*current == PassInInt) || (new == PassInInt)) {
+ *current = PassInInt;
+ } else if (*current != new) {
+ *current = PassInMemory;
+ }
+}
+
+static void
+classify_recursive(Type *t, PassIn *p, size_t *total_offset)
+{
+ size_t i = 0, sz = tysize(t);
+ size_t cur_offset = *total_offset;
+ PassIn *cur = 0;
+
+ if (!t)
+ die("cannot pass empty type.");
+ if (cur_offset + sz > 16) {
+ p[0] = PassInMemory;
+ p[1] = PassInMemory;
+ return;
+ }
+ cur = &p[cur_offset / 8];
+
+ switch(t->type) {
+ case Tyvoid: break;
+ case Tybool:
+ case Tybyte:
+ case Tychar:
+ case Tyint:
+ case Tyint16:
+ case Tyint32:
+ case Tyint64:
+ case Tyint8:
+ case Typtr:
+ case Tyuint:
+ case Tyuint16:
+ case Tyuint32:
+ case Tyuint64:
+ case Tyuint8:
+ join_classification(cur, PassInInt);
+ break;
+ case Tyslice:
+ /* Slices are too myrddin-specific, they go on the stack. */
+ join_classification(&p[0], PassInMemory);
+ join_classification(&p[1], PassInMemory);
+ break;
+ case Tyflt32:
+ case Tyflt64:
+ join_classification(cur, PassInSSE);
+ break;
+ case Tyname:
+ classify_recursive(t->sub[0], p, total_offset);
+ break;
+ case Tybad:
+ case Tycode:
+ case Tyfunc:
+ case Tygeneric:
+ case Typaram:
+ case Tyunres:
+ case Tyvalist:
+ case Tyvar:
+ case Ntypes:
+ /* We shouldn't even be in this function */
+ join_classification(cur, PassInMemory);
+ break;
+ case Tytuple:
+ for (i = 0; i < t->nsub; ++i) {
+ *total_offset = alignto(*total_offset, t->sub[i]);
+ classify_recursive(t->sub[i], p, total_offset);
+ }
+ *total_offset = alignto(*total_offset, t);
+ break;
+ case Tystruct:
+ for (i = 0; i < t->nmemb; ++i) {
+ Type *fieldt = decltype(t->sdecls[i]);
+ *total_offset = alignto(*total_offset, fieldt);
+ classify_recursive(fieldt, p, total_offset);
+ }
+ *total_offset = alignto(*total_offset, t);
+ break;
+ case Tyunion:
+ /*
+ * General enums are too complicated to interop with C, which is the only
+ * reason for anything other than PassInMemory.
+ */
+ if (isenum(t))
+ join_classification(cur, PassInInt);
+ else
+ join_classification(cur, PassInMemory);
+ break;
+ case Tyarray:
+ if (t->asize) {
+ t->asize = fold(t->asize, 1);
+ assert(exprop(t->asize) == Olit);
+ for (i = 0; i < t->asize->expr.args[0]->lit.intval; ++i) {
+ classify_recursive(t->sub[0], p, total_offset);
+ }
+ }
+ }
+
+ *total_offset = align(cur_offset + sz, tyalign(t));
+}
+
+int
+isaggregate(Type *t)
+{
+ t = tybase(t);
+ return (t->type == Tystruct || t->type == Tyarray || t->type == Tytuple ||
+ (t->type == Tyunion && !isenum(t)));
+}
+
+ArgType
+classify(Type *t)
+{
+ size_t sz = tysize(t);
+ size_t total_offset = 0;
+
+ /* p must be of length exactly 2 */
+ PassIn pi[2] = { PassInNoPref, PassInNoPref };
+
+ if (tybase(t)->type == Tyvoid) {
+ return ArgVoid;
+ } else if (isstacktype(t)) {
+ if (isaggregate(t) && sz <= 16) {
+ classify_recursive(t, pi, &total_offset);
+ if (pi[0] == PassInMemory || pi[1] == PassInMemory) {
+ return ArgBig;
+ }
+
+ switch(pi[0]) {
+ case PassInInt:
+ if (sz <= 8) {
+ return ArgAggrI;
+ }
+ switch(pi[1]) {
+ case PassInInt: return ArgAggrII;
+ case PassInSSE: return ArgAggrIF;
+ default:
+ die("Impossible return from classify_recursive");
+ break;
+ }
+ break;
+ case PassInSSE:
+ if (sz <= 8) {
+ return ArgAggrF;
+ }
+ switch(pi[1]) {
+ case PassInInt: return ArgAggrFI;
+ case PassInSSE: return ArgAggrFF;
+ default:
+ die("Impossible return from classify_recursive");
+ break;
+ }
+ break;
+ default:
+ die("Impossible return from classify_recursive");
+ break;
+ }
+ }
+
+ return ArgBig;
+ }
+
+ return ArgReg;
+}
diff --git a/configure b/configure
index 21f188e..b895748 100755
--- a/configure
+++ b/configure
@@ -56,25 +56,23 @@ case $OS in
*Darwin*)
symprefix='"_"'
defaultasm=Gnugasmacho
- sysinit='setenv("MACOSX_DEPLOYMENT_TARGET", "10.6", 0)'
echo 'export SYS=osx' >> config.mk
echo export INST_MAN=$prefix/share/man/man >> config.mk
- echo export MACOSX_DEPLOYMENT_TARGET=10.6 >> config.mk
echo 'const Sys = "OSX"' >> mbld/config.myr
echo 'const Linkcmd = ["ld", ' \
- '"-pagezero_size", "0x100000000",' \
- '"-macosx_version_min", "10.6",'\
+ '"-static", "-pagezero_size", "0x100000000", "-no_pie",' \
']' >> mbld/config.myr
echo "const Manpath = \"share/man/man\"" >> mbld/config.myr
echo 'const Dlflags : byte[:][:] = [][:]' >> mbld/config.myr
- env='[("MACOSX_DEPLOYMENT_TARGET", "10.6")][:]'
+ env='[][:]'
;;
*FreeBSD*)
echo 'export SYS=freebsd' >> config.mk
echo export INST_MAN=$prefix/man/man >> config.mk
echo 'const Sys = "FreeBSD"' >> mbld/config.myr
echo 'const Linkcmd = ["ld", "--gc-sections"]' >> mbld/config.myr
- echo 'const Dlflags : byte[:][:] = [][:]' >> mbld/config.myr
+ echo 'const Dlflags : byte[:][:] = ["-L/usr/lib", '\
+ '"-dynamic-linker", "/libexec/ld-elf.so.1"][:]' >> mbld/config.myr
echo "const Manpath = \"man/man\"" >> mbld/config.myr
;;
*NetBSD*)
@@ -90,8 +88,8 @@ case $OS in
echo export INST_MAN=$prefix/man/man >> config.mk
echo 'const Sys = "OpenBSD"' >> mbld/config.myr
echo 'const Linkcmd = ["ld", "-nopie", "--gc-sections"]' >> mbld/config.myr
- echo 'const Dlflags = ["-dynamic-linker",' \
- '"/usr/libexec/ld.so"]' >> mbld/config.myr
+ echo 'const Dlflags = ["-L/usr/lib",'\
+ '"-dynamic-linker", "/usr/libexec/ld.so"]' >> mbld/config.myr
echo "const Manpath = \"man/man\"" >> mbld/config.myr
;;
*)
diff --git a/lib/crypto/sha3.myr b/lib/crypto/sha3.myr
index 9d44ae3..b3cdcbb 100644
--- a/lib/crypto/sha3.myr
+++ b/lib/crypto/sha3.myr
@@ -187,13 +187,13 @@ const keccak = {x, data, blocksz, tail, msglen
std.slcp(tail[ntail:ntail + n], data[:n])
data = data[n:]
if n + ntail < blocksz
- -> n + ntail
+ -> len
;;
addblock(x, tail)
keccakf(x)
;;
while data.len >= blocksz
- addblock(x, data)
+ addblock(x, data[:blocksz])
keccakf(x)
data = data[blocksz:]
;;
diff --git a/lib/crypto/test/sha3.myr b/lib/crypto/test/sha3.myr
index eb7eefd..a8fc548 100644
--- a/lib/crypto/test/sha3.myr
+++ b/lib/crypto/test/sha3.myr
@@ -113,5 +113,98 @@ const main = {
"\x4B\x5C\xBF\x78\x28\x65\x8E\x6A"), \
"invalid hash result {r}", ret[:])
}],
+
+ [.name="keccak224multiadd", .fn = keccak224multiadd],
+ [.name="keccak256multiadd", .fn = keccak256multiadd],
+ [.name="keccak384multiadd", .fn = keccak384multiadd],
+ [.name="keccak512multiadd", .fn = keccak512multiadd],
][:])
}
+
+const toadd = [
+ [ "", "", "", "", "" ][:],
+ [ "a", "b" ][:],
+
+ /* Hover around the blocksz mark */
+ [ "a seventy-one byte string to make keccak-512 touch the limit (blocksz).", "" ][:],
+ [ "a seventy-one byte string to make keccak-512 touch the limit (blocksz).", "_" ][:],
+ [ "a seventy-one byte string to make keccak-512 touch the limit (blocksz).", "_", "_" ][:],
+ [ "a seventy-one byte string to make keccak-512 touch the limit (blocksz).", "__" ][:],
+
+ /* Go between blocksz and blocksz + 4 to stress addblock */
+ [ "Call me Ishmael. Some years ago—never mind how long precisely—having little or no money in my purse, and nothing particular to interest me on shore, ",
+ "I thought I would sail about a little and see the watery part of the world. It is a way I have of driving off the spleen and regulating the circulation. ",
+ "Whenever I find myself growing grim about the mouth; whenever it is a damp, drizzly November in my soul;", ][:],
+][:]
+
+const keccak224multiadd = {c
+ for l : toadd
+ var st : crypto.keccak224
+ crypto.keccak224init(&st)
+
+ var merged : std.strbuf# = std.mksb()
+ for data : l
+ std.sbputs(merged, data)
+ crypto.keccak224add(&st, data)
+ ;;
+
+ var hm = crypto.keccak224(std.sbfin(merged))
+ var hi = crypto.keccak224fin(&st)
+
+ testr.check(c, std.sleq(hm[0:28], hi[0:28]), "incremental keccak224 disagrees with all-at-once")
+ ;;
+}
+
+const keccak256multiadd = {c
+ for l : toadd
+ var st : crypto.keccak256
+ crypto.keccak256init(&st)
+
+ var merged : std.strbuf# = std.mksb()
+ for data : l
+ std.sbputs(merged, data)
+ crypto.keccak256add(&st, data)
+ ;;
+
+ var hm = crypto.keccak256(std.sbfin(merged))
+ var hi = crypto.keccak256fin(&st)
+
+ testr.check(c, std.sleq(hm[0:32], hi[0:32]), "incremental keccak256 disagrees with all-at-once")
+ ;;
+}
+
+const keccak384multiadd = {c
+ for l : toadd
+ var st : crypto.keccak384
+ crypto.keccak384init(&st)
+
+ var merged : std.strbuf# = std.mksb()
+ for data : l
+ std.sbputs(merged, data)
+ crypto.keccak384add(&st, data)
+ ;;
+
+ var hm = crypto.keccak384(std.sbfin(merged))
+ var hi = crypto.keccak384fin(&st)
+
+ testr.check(c, std.sleq(hm[0:48], hi[0:48]), "incremental keccak384 disagrees with all-at-once")
+ ;;
+}
+
+const keccak512multiadd = {c
+ for l : toadd
+ var st : crypto.keccak512
+ crypto.keccak512init(&st)
+
+ var merged : std.strbuf# = std.mksb()
+ for data : l
+ std.sbputs(merged, data)
+ crypto.keccak512add(&st, data)
+ ;;
+
+ var hm = crypto.keccak512(std.sbfin(merged))
+ var hi = crypto.keccak512fin(&st)
+
+ testr.check(c, std.sleq(hm[0:64], hi[0:64]), "incremental keccak512 disagrees with all-at-once")
+ ;;
+}
diff --git a/lib/std/bigint.myr b/lib/std/bigint.myr
index 9213007..ee82e7b 100644
--- a/lib/std/bigint.myr
+++ b/lib/std/bigint.myr
@@ -601,10 +601,12 @@ const kmul = {r, a, b
z1 = bigdup(&x0)
trim(z1)
bigsub(z1, &x1)
+ var z1sign = z1.sign
t0 = bigdup(&y1)
bigsub(t0, &y0)
umul(z1, t0)
+ z1.sign = z1sign * t0.sign
bigadd(z1, z0)
bigadd(z1, z2)
@@ -643,6 +645,7 @@ const smallmul = {a, b
;;
slfree(a.dig)
a.dig = w
+ trim(a)
}
const bigdiv = {a : bigint#, b : bigint# -> bigint#
diff --git a/lib/std/ipparse.myr b/lib/std/ipparse.myr
index 1147888..f8bba34 100644
--- a/lib/std/ipparse.myr
+++ b/lib/std/ipparse.myr
@@ -52,21 +52,24 @@ const ip4parse = {ip
;;
}
+const ipv6seg = 8
+
const ip6parse = {ip
var val : byte[16]
- var expand, split
+ var expand
var v, ok
- var i, nseg
+ var nseg, segsplit
ok = true
expand = false
- split = 0
+ segsplit = 0
+
if ip.len > 2 && eq(ip[:2], "::")
expand = true
- split = 0
;;
+
nseg = 0
- for i = 0; ip.len > 0 && ok; i++
+ for var i = 0; ip.len > 0 && ok; i++
/* parse 'num' segment */
(v, ip, ok) = num(ip, 0, 65536, 16, ':', ok)
@@ -75,7 +78,7 @@ const ip6parse = {ip
val[i*2 + 1] = (v & 0xff : byte)
nseg++
- if ip.len == 0 || nseg == 8
+ if ip.len == 0 || nseg == ipv6seg
break
;;
@@ -84,14 +87,14 @@ const ip6parse = {ip
if ip.len > 0 && ip[0] == (':' : byte) && !expand
(ip, ok) = delim(ip, ':', ok)
expand = true
- split = i
+ segsplit = nseg
;;
;;
if ok && ip.len == 0
if expand
- expandsplit(val[:], split, i)
- elif nseg != 8
+ expandsplit(val[:], nseg, segsplit)
+ elif nseg != ipv6seg
-> `None
;;
-> `Some `Ipv6 val
@@ -101,12 +104,17 @@ const ip6parse = {ip
}
/* take "a:b::c:d" and expand it to "a:b:0:0:...:0:c:d" */
-const expandsplit = {ip, split, len
- var width
+const expandsplit = {ip, nseg, segsplit
+ var head, tail
+ var split, middle
+
+ split = segsplit * 2
+ middle = (ipv6seg - nseg) * 2
+ head = ip[:split]
+ tail = ip[split : ip.len - middle]
- width = 16 - len
- std.slcp(ip[split:len], ip[split+width:len+width])
- std.slfill(ip[len:len+width], 0)
+ std.slcp(ip[ip.len - tail.len:], tail)
+ std.slfill(ip[head.len : ip.len - tail.len], 0)
}
const delim = {ip, sep, ok
diff --git a/lib/std/listen+posixy.myr b/lib/std/listen+posixy.myr
index e8018e9..1a792aa 100644
--- a/lib/std/listen+posixy.myr
+++ b/lib/std/listen+posixy.myr
@@ -91,8 +91,10 @@ const announcesock = {proto, str
if sys.bind(sock, sa, sz) < 0
-> `Err "failed to bind socket"
;;
- if sys.listen((sock : sys.fd), 10) < 0
- -> `Err "unable to listen on socket"
+ if proto == sys.Sockstream
+ if sys.listen((sock : sys.fd), 10) < 0
+ -> `Err "unable to listen on socket"
+ ;;
;;
-> `Ok mk([.lfd=(sock : fd)])
}
diff --git a/lib/std/test/bigint.myr b/lib/std/test/bigint.myr
index d50b0ff..8f12a3c 100644
--- a/lib/std/test/bigint.myr
+++ b/lib/std/test/bigint.myr
@@ -24,6 +24,7 @@ const main = {
[.name = "add-negatives", .fn = addneg],
[.name = "sub-negatives", .fn = subneg],
[.name = "bigdivmod", .fn = somebigdivmod],
+ [.name = "large-bigmul", .fn = largebigmul],
][:])
}
@@ -360,3 +361,383 @@ const somebigdivmod = {c
testr.check(c, std.bigeq(r_exp, r_act), "expected {} % {} to be {}, was {}", a, b, r_exp, r_act)
;;
}
+
+/* Tests a and b large enough that we are forced to used kmul, including recursively */
+const largebigmul = {c
+ var inputs : (byte[:], uint32[:], uint32[:], uint32[:])[:] = [
+ ( "0", [ 0x1 ][:], [ 0x1 ][:], [ 0x1 ][:] ),
+ ( "1",
+ [0xd438d501, 0x4989bb6c, 0xaa02ccd2, 0x8c02c7fb, 0xd0d39cab, 0x7daee963,
+ 0x03fa7756, 0x17371fb7, 0x4f2d80c7, 0xbc69e893, 0x02c68eea, 0x0aeec675,
+ 0x2975319d, 0x4d263e97, 0x6707e6f7, 0x1a4ef735, 0x28c24ac8, 0x1da85267,
+ 0x5ba370ed, 0x74e5b4c0, 0x45620f6a, 0x670847ec, 0xf285f864, 0xecbac2b5,
+ 0xc13311b0, 0x15d83f71, 0x38864ab3, 0x338158d0, 0x243593a7, 0x55f00d20,
+ 0x7bda6d92, 0xa95ce358, 0x80456513, 0x9bdb0419, 0xd0974038, 0xeab6f619,
+ 0x3c30aeaf, 0x8a4a50a1, 0xa2777800, 0xe1973634, 0xde34e4ad, 0xc85422d0,
+ 0x536a3638, 0x7bb91969, 0x1b6e1dac, 0x66582385, 0x61aab43a, 0xc0931876,
+ 0x74d01412, 0x47539d84, 0x2ceb3858, 0xb75a4c69, 0xafee3d68, 0xa8f568f2,
+ 0x05cd2855, 0x846851fe, 0xc358698e, 0x5ad7e3a2, 0x06c04ec2, 0x49c04dd4,
+ 0x65af24ee, 0xcaca4901, 0x782682b0, 0x1420ec52, 0xfbd6f634, 0x4e5751b8,
+ 0xc60275cd, 0x54000917, 0x2543fd5b, 0x6a7e6ee0, 0x84c7cce5, 0x26f9b270,
+ 0x745c34d8, 0xb461676a, 0x6ca583f0, 0x09ada4f6, 0x17158bf5, 0x312018c3,
+ 0x2acf878d, 0xa9e0ab50, 0x433370d8, 0x00000005][:],
+ [0x5a518f95, 0xef185267, 0x108f864c, 0xec996040, 0x593b2a4b, 0x3c5d1abb,
+ 0x5c2c7236, 0xfb727af9, 0xccfb6dbf, 0xa8e7df8d, 0x7848bada, 0x879d7999,
+ 0xfa4c7338, 0x35718a28, 0x0ba6d7c9, 0x18ee1a03, 0xf9730643, 0x114d1a6f,
+ 0x30fb26f8, 0xa7ce8a60, 0xeb507683, 0xaec6f875, 0xe9ea93d7, 0x5239caec,
+ 0x1b6e181d, 0x0d05743b, 0xa71a466e, 0x78d271f0, 0x991dc0e6, 0x961ec35c,
+ 0xe8b25de3, 0x7d8f853a, 0xeed878c0, 0x79a64b5f, 0x33b266f9, 0x737b8b42,
+ 0xb0018fb3, 0x02fb1917, 0x101803b8, 0x9969897c, 0x8f1e9f84, 0xb8977c7b,
+ 0x0d94ab3c, 0xba0bdc8c, 0xeb5b271e, 0x71bbc3ac, 0x6b3a99aa, 0xcfca90b2,
+ 0xc25784a0, 0x4b7b3dab, 0xb4d6301b, 0xe6bf1fb3, 0x4656b287, 0xf71fdd63,
+ 0x0783c3c5, 0xb399ec3a, 0x7dae1bd3, 0xa6e9cd42, 0x1b215387, 0x2fbfc73d,
+ 0x5a6684f0, 0x012e8f71, 0x0c059772, 0x00000001][:],
+ [0x03608895, 0xcb170728, 0xed235930, 0xa28f5417, 0x5c00f16b, 0x4d742082,
+ 0x8b0f61ee, 0xfda181e8, 0x2afd0ab2, 0x893be877, 0xc7661174, 0x4b2a1abd,
+ 0xe873e5fa, 0xeafb1741, 0xc905b9ab, 0x7af419ec, 0x8d7f9ffe, 0x46e45629,
+ 0x4239bae8, 0x9e50c518, 0x9b38a2c6, 0x4b019ab7, 0x0bf40396, 0xd7dfaa78,
+ 0x194ea149, 0x72d40c27, 0xc93fb77e, 0xf46a3bae, 0xf205b59a, 0x37d929da,
+ 0xd88ed984, 0x49a2213e, 0x5ede97a1, 0x3f99adc8, 0x6b4c6f3a, 0xdd193272,
+ 0x523fc0f7, 0x91f6ac1a, 0x76bcf78d, 0xec30f5e0, 0x71ea7b2b, 0x92fe5381,
+ 0x01a70007, 0x70ac2e64, 0x46c66e83, 0x2b0a4f4a, 0xde20afb2, 0x637b17d4,
+ 0x32ebad24, 0x5fbc158c, 0x0839222e, 0xaaa69163, 0x1a41e45d, 0x2596c604,
+ 0xf241193f, 0x8d7649f6, 0xf14676ab, 0x07e60937, 0x9aa0ec6d, 0xf3f1e581,
+ 0xaa405903, 0xb7fcc27e, 0xed7a1a3a, 0x09e0393c, 0x417d0d01, 0x3c0b5748,
+ 0x97b26c8a, 0xb18f2bd4, 0xcce143a0, 0x175aaa0a, 0xb5a199a2, 0xe7419c0e,
+ 0xad86bb76, 0x21ce336b, 0xdce58113, 0xef9a1639, 0x691857ea, 0x4ea4ce08,
+ 0xdb78d01e, 0x8a803b54, 0x4e62c40e, 0xede995d5, 0xea466369, 0x4975d5e2,
+ 0xe16ec2b0, 0x35e9f0f9, 0x734b4486, 0x7fc594c6, 0xf59977b9, 0x6fda8fd9,
+ 0xc66890ef, 0xa5f6d53f, 0xabc4a213, 0x439e36c9, 0xe1edd657, 0xbef6c23c,
+ 0xd1b8e53f, 0xef3d7a8e, 0xd5942d9b, 0x3678d074, 0xc7b33a1f, 0xa0da7e2a,
+ 0x55ff1f4b, 0x17543de3, 0x2f37b8e6, 0xc3c6edf2, 0x8757e107, 0x5a6d6ecc,
+ 0x05238803, 0xe91265a5, 0x20b6b8d8, 0x49a64334, 0x67d29fd6, 0xf7f64219,
+ 0xa5316b89, 0xa70e493a, 0x6500a01e, 0x342c92d8, 0x04c47fc5, 0x418fecea,
+ 0x335c77dd, 0x0075fd81, 0xabe80a7a, 0x1c87978b, 0x040928b4, 0x531c47b5,
+ 0x5b1abf55, 0x9d62cc66, 0x855394eb, 0xf6045e0b, 0xcd307a1e, 0xab7e9197,
+ 0x5725390f, 0x64930312, 0xf10b918a, 0x32d52d5e, 0xe4ebf112, 0x2a1174ac,
+ 0x7681fa2c, 0x554dd47f, 0x26bbf792, 0xd18c803c, 0x50c2caf7, 0x8277471f,
+ 0x00000005][:] ),
+ ( "2",
+ [0x8fa8c809, 0x543ccfc3, 0x40a67589, 0x13c872a6, 0xca8bd8d8, 0xcaa5195e,
+ 0x9bfccb1a, 0x5044e5a4, 0x2a1b585a, 0x6e2b558e, 0x02e09bfe, 0xc5773e7b,
+ 0xaeb80d18, 0xdfcef845, 0x1644673a, 0xc19be15d, 0x8d98234b, 0x424cb607,
+ 0x08f05d1a, 0xea92e8af, 0xf8d85512, 0xc76f3fb6, 0xaf56b49a, 0x162fb1b3,
+ 0xc194ef0a, 0x2e48a43b, 0x7952ddba, 0x2605be3e, 0xcd21045e, 0xf3837447,
+ 0xea4af63e, 0x56c4f0ba, 0xbd345727, 0xdfdac514, 0xb5622e07, 0xea8a3761,
+ 0x28061058, 0xf89e06a4, 0x635d4ea0, 0x44b0946b, 0x042bd0df, 0x479e38b8,
+ 0xba572f80, 0x027090ff, 0xafa718bb, 0x5617b2e2, 0x18826318, 0xe7a12367,
+ 0x59b565df, 0xa0af53db, 0xcf4c9bb9, 0xf0e87494, 0xf205236a, 0x7f9ffdaa,
+ 0x9a1a6b83, 0xfc817575, 0x787a885e, 0x56980581, 0xdc48c4a2, 0x5dba364d,
+ 0x3161b177, 0xdffd5d41, 0x8d2e075c, 0xfb7d12c2][:],
+ [0xf7ffa08f, 0x6e5c02bd, 0x0cd84a3a, 0x8e28cb47, 0x4cdd6159, 0xe69b9388,
+ 0xf5366110, 0xa3752c29, 0x4c793e6d, 0x13a9ee28, 0xca1aa614, 0x25fdb9b3,
+ 0x3fe9c1d2, 0xf9921d1a, 0xe7c9377d, 0x8d79e36f, 0x7a9348de, 0xa110805e,
+ 0x5df92768, 0xfb1c84da, 0x8d81287c, 0x8eea0ba5, 0x06beecfa, 0x7ec242b7,
+ 0x0e064d8c, 0x0b292555, 0x382ba0b5, 0x580eb632, 0x2755a606, 0x572f30c6,
+ 0xf55d2897, 0x2a724e36, 0x657b3ca9, 0x5963dd68, 0x606f5324, 0xf241245d,
+ 0x055ab33f, 0x3eef5523, 0xda3504d4, 0x61bfc918, 0xdfc30229, 0x695dfd29,
+ 0xd049f5a2, 0xec3eeabd, 0x54837bf9, 0x5f7a4cb3, 0x24f3a6f7, 0xca49bdf3,
+ 0x08357231, 0x881af70b, 0x46c7db74, 0x591108dd, 0xc6e63813, 0x7aed2e3b,
+ 0x5f0161ab, 0x805e6881, 0xe137b4be, 0x85dc2eea, 0x4b16bcdc, 0x97ed5301,
+ 0x5fd127ab, 0xff570b67, 0xc3995a73, 0x293c53ea][:],
+ [0xac445d07, 0xd5a1facb, 0xa0b20e8a, 0x47608bc6, 0xfbfbf40b, 0x1dbfc947,
+ 0xb2c95000, 0x7e793f5c, 0xad8b43e4, 0xaed1e721, 0xa353d730, 0x43261fd0,
+ 0x35363d03, 0x84fd0166, 0x89a8b3eb, 0x60657de1, 0x5da0fff8, 0x6886160c,
+ 0xaba2eb76, 0x56a19809, 0x302b6f1f, 0x3fb5b5c1, 0xb2890ff0, 0x82f8bf60,
+ 0x8e0d7375, 0xee92358e, 0x7f54bdf5, 0xa7cf09eb, 0x545ea45b, 0xd8417f77,
+ 0x8cc07ac7, 0x378a2893, 0x7da7f4d9, 0xbc470080, 0xd8bcdf22, 0x1e479f3b,
+ 0xb6f3f1c4, 0x44f267b2, 0xc3dec7ef, 0x8e63ac6c, 0x1e316ef2, 0x8aa23025,
+ 0x7e099910, 0x0ca8740b, 0xc85c30d4, 0x017cb92a, 0xbce9d39c, 0xa3480621,
+ 0xb2fc06af, 0x474e5b39, 0x339a2289, 0x9bc881ca, 0xbce293fd, 0xdbca309d,
+ 0xbb74a11a, 0xd024441c, 0xf66d6394, 0x3cf320d1, 0x6a1248c3, 0x0b12a871,
+ 0x0e227c35, 0x629f4969, 0x72cbef9e, 0xae18a37e, 0xfc1be6ff, 0xd95b4131,
+ 0xaac0a3ac, 0x79629682, 0xb8c6323c, 0x76913f2f, 0x90453e91, 0x78b07c24,
+ 0xb89ffea0, 0x0cb32917, 0xd75d17e9, 0x52d606c0, 0xc1c33240, 0x0902a819,
+ 0x75a73f41, 0x5157a6a0, 0x3bcad1ea, 0x50972558, 0xbfcf1c99, 0x7e12a8df,
+ 0x5659c108, 0x6466a629, 0xaab38244, 0xcff2e6de, 0x43d14392, 0xa56dcc0f,
+ 0x3ede1c6a, 0xf0ee6c6e, 0xaa1b37b4, 0x9d13b489, 0xa5d5289d, 0xb6b4da73,
+ 0x8da6fe58, 0xb98e7c64, 0xb12b0842, 0x1291c110, 0x023521c6, 0x3ca866f9,
+ 0x5e642f8f, 0xc946e820, 0x1f65389d, 0x1615acea, 0x2f2a06d4, 0xc42f7923,
+ 0x5c4b8d78, 0x9f6bd66b, 0xc16146cd, 0xe18345f3, 0x70e565f9, 0x748bd980,
+ 0xc2eed91d, 0xc0791edc, 0x52a4b5cc, 0xb6016466, 0x73eee8e4, 0x0400d3de,
+ 0x249a903f, 0x5a9e5ea2, 0x222e0f92, 0x8a645235, 0x06680935, 0xe6894660,
+ 0xbbc49b78, 0x28824bc1 ][:] ),
+ ("3",
+ [0x22dfeef3, 0x1295b431, 0xe9529863, 0x348d4b7d, 0x7272b12f, 0x0497c293,
+ 0xf02f7c25, 0x099e1eb9, 0xda9ba0ea, 0x62a2814d, 0x4fdbe3d7, 0x908a31b8,
+ 0xe5060b0d, 0x671d15bd, 0x294965ce, 0x232f88f1, 0x4c448988, 0xfc383d3b,
+ 0x86df2de1, 0x20432646, 0x4c7fbe1f, 0x326f7d3c, 0x38dfbec7, 0xf00f3df9,
+ 0xce5ea03d, 0x62ab0701, 0x4d23d197, 0x4ef44098, 0x38c375d6, 0xc7d72bc2,
+ 0x25199975, 0xbe84f268, 0x00d4ad56, 0x50243728, 0x4aea96dc, 0x4740a2e3,
+ 0x5d07b992, 0x7d0a0770, 0xed6a4976, 0x204cb483, 0xe4d930aa, 0xb5b0f5fc,
+ 0x3546f99a, 0x42087de5, 0x78cb663c, 0xab2e422d, 0x96214a92, 0x2721b270,
+ 0xcf272a16, 0xd0da429d, 0xe69f7c29, 0xb1de29e6, 0x9e9f2305, 0x80be09ca,
+ 0x1f5d8a2f, 0xbe152c9a, 0xc57021ed, 0xb99be11d, 0x6bd527e8, 0xda4ef764,
+ 0xe1b7d09c, 0xe2693d79, 0x609f8000, 0x69c4d0a3, 0x7f227f5a, 0x9b92e545,
+ 0x8833cd2c, 0x95a3a9ae, 0xd81e95f4, 0x422321b3, 0xe586291a, 0x8ef5f3a8,
+ 0x4dc1916b, 0x55136cdf, 0x353c870c, 0x7fb85f91, 0x9407cd80, 0xa18b43fa,
+ 0xa83d75ec, 0xb72b29e4, 0x99408c66, 0x26080a1e, 0x359f480e, 0xb1344ed4,
+ 0x8f9d1a7b, 0x3f264a46, 0xfbc27805, 0xd2e4f801, 0xc9f069e8, 0x77eb4d98,
+ 0x5e4e0744, 0x1a7b6e8a, 0x5033ba97, 0x3c8865ad, 0xf8b6918d, 0xaf58dea5,
+ 0xa621a059, 0xedd5d287, 0xa7692cf1, 0x08f6da8c, 0xa2f947ff, 0x22a1651b,
+ 0xba305733, 0x3d77331b, 0xce23609c, 0x7dc2463f, 0xacded3ea, 0x51af503b,
+ 0x9cbf5ddd, 0xa4f0b163, 0xb5102301, 0xc1f3442a, 0xf2f03659, 0x4a84e291,
+ 0x719b40f6, 0x1f08c19f, 0x34289a6f, 0xeafbc6da, 0x7e3c1da9, 0xb1736af0,
+ 0xa278d6fb, 0xf555dcc6, 0xac6db91f, 0x0961cb3e, 0xeb5988ca, 0x3a9d5433,
+ 0x259e1376, 0x6b6e6503][:],
+ [0x6b1ca441, 0x65742248, 0x181e0881, 0xb00f4698, 0x46305741, 0x7b8178e2,
+ 0x749ceb45, 0xbf901cb4, 0xb7bd02e6, 0x365da057, 0xa1bca303, 0xcde24d9d,
+ 0x5c389bec, 0xc6a226da, 0xca67fbc5, 0x69c47cae, 0x205abc68, 0x86722c43,
+ 0x247a94a9, 0x78270cef, 0xedef0dfb, 0x7130c80b, 0xb674b77e, 0xba9534b1,
+ 0xed537e68, 0x63198332, 0xceff15fa, 0xf68c1dcc, 0x03fe5e89, 0xa11c3e38,
+ 0x83b79cb9, 0x7cac2f9d, 0x29da9204, 0x4d6e2361, 0x11d237eb, 0xc9ccc25e,
+ 0x836c1307, 0x54faec3c, 0x42cab0a1, 0xcc53cb2f, 0xca329b79, 0xb1165990,
+ 0xbc40c6d3, 0x9c18f2d9, 0x54ad9dc1, 0xf32f4d6b, 0x738b9206, 0xf8d89e3b,
+ 0x9bdae564, 0x0d684ecf, 0x8b3ba78b, 0xc3a026ce, 0x7e57f8e0, 0x75e3af99,
+ 0xcb0a7aaa, 0x4d7a074c, 0xa7e9f774, 0x10e48e2c, 0x89a10535, 0x267003c0,
+ 0x74906b9f, 0x4eafe1f6, 0xd99d4ec0, 0x4323b3e1, 0x488d7a83, 0xde62fcc5,
+ 0x07cae706, 0x74cb362a, 0x6b2f4d61, 0xadf806c3, 0x5bad862c, 0x0c9b2b3a,
+ 0xf8aa721d, 0xb1b6caa5, 0x04aa9c5b, 0x982bafc9, 0xd1640b6a, 0x45a5c11c,
+ 0x37ece529, 0x751f30fc, 0xecdb58d9, 0x4de7d68c, 0x57f8e6dc, 0xbd51784c,
+ 0x5e18ac33, 0xfd96f93f, 0x7b9ae848, 0x4d5c3c7a, 0x01f0ad39, 0x15d79946,
+ 0x576b4ceb, 0x3fef8d14, 0xe01ff6a5, 0x60717e45, 0x89ec8ffa, 0x11932b09,
+ 0xcffd0872, 0xedcbb885, 0xff15ecc6, 0x557d81d6, 0x921f3f5f, 0x4d7e153f,
+ 0xa7103379, 0xa11f6491, 0xa0387abf, 0xc00bdb8b, 0x55f3f081, 0xdbb89eec,
+ 0x8ab41a4d, 0x59fbc622, 0x11588374, 0x119253b0, 0xf17420d5, 0x964706ec,
+ 0x81b886e3, 0x2a8052c7, 0x179a777b, 0xc586b2d1, 0x7bf190d0, 0xec24e894,
+ 0xdc832932, 0xcd755483, 0x7c6425ec, 0x876d7e4c, 0x4a9f72c8, 0xfbc115ad,
+ 0x25c7d971, 0xedaf521d][:],
+ [0x038357b3, 0x90391e87, 0xbb0b1f64, 0x3ddb1c33, 0xe301125b, 0x12aeb1dc,
+ 0x287ffbb9, 0x9ee982ad, 0x9741ae84, 0x39542c4f, 0x9f61a3e8, 0x09387c33,
+ 0x70a97e09, 0x1a6c0444, 0x959a837e, 0xa9fa7fbc, 0x93d0cfe3, 0x6983971a,
+ 0x9b27a516, 0x27fcaf20, 0x548eef04, 0x68133c8a, 0x4a4f180c, 0x588ed2e9,
+ 0x305789bb, 0x92ff4600, 0x4b9172e6, 0x679ccd52, 0xd6a53f0a, 0xba71774e,
+ 0x0bdfec3f, 0x0279dd6c, 0x3185adac, 0x8e9aed66, 0xcc7dad42, 0x0879329e,
+ 0x767a7c62, 0x05357615, 0x50536d95, 0x149f0875, 0x9aa4ead4, 0x934f498b,
+ 0x7fcbb757, 0x39ddcb63, 0x4b6457f8, 0x485564c0, 0x77fad861, 0xed489f61,
+ 0x8748a4fc, 0x9c78285c, 0xb8b66eec, 0x5a9a93eb, 0x465223e7, 0x46881a27,
+ 0x87c2c4a2, 0xac270dbb, 0x44015283, 0xd558c2c8, 0x93447a91, 0xd7133cdf,
+ 0x5012b012, 0xbe460642, 0x1db983e0, 0xe50ffe77, 0x625183a2, 0x8b5e5ca0,
+ 0x1163d7b4, 0x0cf9fa2c, 0xad8ab8d8, 0xa0b97c59, 0xa52fefec, 0x58da0bf2,
+ 0x6f2fd1bf, 0xdc01ce71, 0x1914aa24, 0x82ad1a95, 0xaa53fac0, 0x62d3f9cc,
+ 0xbaaa8089, 0x2a2d1264, 0xb26ea7ac, 0x04ada4f7, 0xfdbc95f5, 0xf2f50786,
+ 0x036a237d, 0x64cfacc5, 0x120ef1cc, 0xf3588412, 0x3c7c55ef, 0xb520eb8b,
+ 0x7a8dd08f, 0x1db1a183, 0x51f7a79f, 0x7f8f307c, 0xc1a97ca7, 0x80671cc7,
+ 0xf9a328c3, 0x47013e4e, 0x7823b8d1, 0xbbe06af0, 0xe680314e, 0x70a7d72c,
+ 0x229bf1d7, 0xdf7e1c8f, 0x959b4797, 0xcd2c5562, 0x3a16a7dc, 0xd4ead1f5,
+ 0x6338caae, 0x41a5b581, 0x3b39fd1b, 0x8a16105a, 0x6f28277c, 0x3136aa67,
+ 0x5b157dd1, 0x07bc0914, 0x651ab249, 0x85d8916d, 0xeacb3296, 0xa3f334a7,
+ 0x9a277b25, 0xd22b6466, 0x85e40d95, 0x415f76fa, 0x0e5cf265, 0x0dbfdc80,
+ 0xe009f0e1, 0x056c74ae, 0x8348b379, 0x6b14d769, 0xfe5068ae, 0x2c7b8ed8,
+ 0xf146323a, 0x916936ef, 0x5e3a9472, 0x2541af46, 0x68f617d0, 0xc779d3f8,
+ 0xb78bf034, 0xe4417ac7, 0xf5407b8c, 0x1ea31a97, 0xfd554f03, 0xe7e56918,
+ 0x525973d4, 0x4c25a06a, 0xf52bfbab, 0x1c8674fe, 0x317d4101, 0xdde64294,
+ 0xd59cbbdd, 0xe656ea74, 0xc4ff15db, 0xab2d0614, 0x19c67569, 0x3c653357,
+ 0xf5af550c, 0x26506c80, 0xb279a34d, 0x93cbef6f, 0xd41481f6, 0x76255c7b,
+ 0xd4f42c8f, 0x3bb49c64, 0xfa96fe56, 0x1e29f491, 0x2a5bede1, 0xf5b005ae,
+ 0xabfc04bd, 0x95cf0697, 0x4f4b9df6, 0x715de20d, 0x4b98356b, 0xf3d4c333,
+ 0xad5b4f93, 0x59131b9b, 0x5cd3a556, 0x098bcd23, 0xa06963ba, 0x174395d8,
+ 0xbb91e26d, 0x9ebc6f33, 0xa807da65, 0xbb4bd098, 0xd2e652a4, 0x3c7d3ee6,
+ 0x52a91bb1, 0x3f62fb01, 0x41be0494, 0xfab8db16, 0x810447dc, 0xfed91418,
+ 0x750efd71, 0x3a0ec6bc, 0x2c32e298, 0x151dffff, 0x47f210c1, 0x204e507d,
+ 0x84cf5792, 0xde782027, 0x9effd3a9, 0xb43ae3d5, 0x16cf97c1, 0x7d95c2df,
+ 0xf858e612, 0x49859ab9, 0xc16d577d, 0x14dd50d3, 0x2dd08736, 0xe96a7b2e,
+ 0xeb004b34, 0x9d9bc730, 0x13fe6e1a, 0x7dfd1021, 0x92a3d3d8, 0xf2407043,
+ 0x4428a7ca, 0x8d1b3922, 0xd33208e8, 0x8e7225d0, 0xc8f4fa13, 0x64272a09,
+ 0xe2c2038d, 0x830c409f, 0x154393f3, 0xe12f4602, 0x8199707a, 0x792f7290,
+ 0x64a70bc3, 0xb9bc1551, 0x0db8ffc0, 0x705bcd1b, 0x6471c035, 0x3bf40f65,
+ 0x6e8afac9, 0x2cd19929, 0x9c16c41c, 0x025648e3, 0xea05f99a, 0xd3fe51b9,
+ 0x66ce52dd, 0xf880e76e, 0x4aaa8a7b, 0x75142f5f, 0x432bd1dd, 0x1d7ac75e,
+ 0x5ab946b9, 0xcfdb4114, 0x98a502b7, 0x958470a5, 0xb51024c4, 0x05dd0fd9,
+ 0x7e46beda, 0x0a1c6800, 0x8eb15526, 0x63bec670 ][:] ),
+ ("4",
+ [0x00000000, 0x00000000, 0x2f80c620, 0xaed77bc2, 0x3e008565, 0xeb544010,
+ 0x5adb6bbb, 0x6a970524, 0x033da916, 0xe1167ffb, 0xfec62d44, 0x8ead118c,
+ 0x3fe1b8be, 0xe8d64f72, 0x38a4d68a, 0xc94c5109, 0x0b13ed98, 0x024300e0,
+ 0x9085d53a, 0xe98641f9, 0x2b8ed0d5, 0xbaf2d8a5, 0x12755828, 0x38ef909e,
+ 0xa3e8cfa5, 0x35cd9f30, 0xdd0e3b30, 0xca4ebe1d, 0x5b755afb, 0xf397fa0d,
+ 0x3b5caa19, 0x7b417233, 0x862fa53e, 0x02304de9, 0xf57a2a92, 0x675f10d4,
+ 0x474e06ca, 0x8ffb7725, 0x6e275c16, 0x6a186d48, 0xc69568eb, 0xf9eda4b9,
+ 0x5740fd4f, 0x803fd994, 0xfb453312, 0xddb8690a, 0x508e281b, 0x38a5577c,
+ 0xaab2f536, 0x6ce3b6f4, 0x4dee5d51, 0x60c4bbf2, 0x4c09a599, 0x5eb6c608,
+ 0xecf2220c, 0xf2588679, 0x44b9c787, 0xa2876cd5, 0x091d3194, 0xd0a82238,
+ 0xfa427746, 0xc632cfa4, 0x0ddec524, 0x162fe96b, 0xaeb1d611, 0xf178cbcf,
+ 0x73beb271, 0x28c6479f, 0x6b7f4382, 0x55ba5937, 0x3654d41e, 0xb812a225,
+ 0x01a7a376, 0x7272f156, 0x3707817c, 0xdf9d61fa, 0x5f6839b3, 0xd111299e,
+ 0xfe8f6bfd, 0xd8f049a8, 0x6258b970, 0xb0fc8bc1, 0x852852d5, 0x656244ca,
+ 0x22c6c460, 0x15099b9c, 0x4a1c7a83, 0x81009548, 0xe19c4dee, 0xa3e8eabc,
+ 0x75dc75bf, 0xe88d7417, 0xd35ea0a1, 0x15120543, 0x4048f128, 0x8b940efe,
+ 0x37a2e88b, 0x91e0a1be, 0x65315d55, 0xe34ffec8, 0xaed1838a, 0xb9ba4ac8,
+ 0xf5b565b2, 0xf460ff05, 0xc30257d9, 0x5befcccb, 0x4acecf36, 0x574a5aee,
+ 0xe30808a3, 0x6da67aa5, 0x7424734e, 0x9a859ca0, 0xb786105a, 0x9b494870,
+ 0xe45c7b71, 0x3d6bdb2b, 0x19134c3e, 0x92709ac1, 0x5641d664, 0x08a16956,
+ 0x218f6f73, 0x1e55b83c, 0x949eac19, 0x620564a9, 0xa975f94a, 0xc32bd272,
+ 0x0d9e7640, 0xcf27d5d6, 0x2b278f0f, 0x2fd0f6fe, 0x13bfef7b, 0xf5d6d904,
+ 0xb64391bc, 0xfe8a9ca3, 0xa64cab84, 0x653a96cd, 0xb48287fe, 0xdda1eeac,
+ 0x7b4d0581, 0x4071484b, 0x6c1f6b78, 0x614cb535, 0x56c4c164, 0x2b4a977d,
+ 0x7f7f640a, 0x871118e6, 0x6a337388, 0xce7b1958, 0x16d35d77, 0x71c0c4be,
+ 0x58e19d06, 0xc0837407, 0x1cbdd134, 0x22f04921, 0xdd394e98, 0xebefabc2,
+ 0x2c9b26f9, 0x5afa7c94, 0x04951ae1, 0x62903bfc, 0x194f245f, 0x759490c7,
+ 0x98680e80, 0x31de9269, 0xcb55b655, 0x3cc4d017, 0xf542431d, 0xbef9a613,
+ 0x8dad1067, 0xfb8ee54b, 0x80c5808a, 0xd6d5b742, 0x8eacc01e, 0x3d830d99,
+ 0x13d13a8d, 0x3e807eff, 0x7ed89776, 0x29ca8438, 0x31a6450f, 0xe9d8956b,
+ 0x2369bad3, 0x85dc23d8, 0xe0b4620a, 0xa1b916e4, 0x62497ae8, 0xdb095b68,
+ 0x24375842, 0xd34494cf, 0x13ebe06e, 0x95d10197, 0x1fcd4987, 0xa38922d9,
+ 0x0c7194ae, 0xa1945f61, 0xe8c7c6b6, 0xec4862c6, 0x4eb5323b, 0x3a61c6ed,
+ 0x0c729cb2, 0xa3540b69, 0xf457f914, 0x23a791d1, 0x7dd319b5, 0xd4099cf5,
+ 0xd9b4234c, 0xd6d100dd, 0x060e3a18, 0xc74b3904, 0x399d9841, 0x053c2d47,
+ 0xdf3e5d31, 0x9f9e3b3b, 0x91a0d196, 0x0775ef53, 0xd3f5ca07, 0xed96e3bd,
+ 0x76902f18, 0xf15245f5, 0x6d8592f7, 0x82da6881, 0x0d42eeca, 0x9d0cff24,
+ 0x529b91f4, 0x5a6be480, 0xd84fdca3, 0xa3ac3f0b, 0x1e1b173c, 0xc198f3ed,
+ 0xa4835315, 0x286663ba, 0x6f7f0e02, 0x57117b4c, 0x779342f4, 0xd26b4c19,
+ 0xf7fe4154, 0x2938c0ea, 0xdfc1e721, 0x8878ddfa, 0x2ca3f2f4, 0x864e6d35,
+ 0x5183dfcf, 0xba27bf53, 0x6dc12abc, 0xcfec1e5f, 0x1286715f, 0x79a436eb,
+ 0x3e62c3c1, 0xf586cbf2, 0x03d36e97, 0xc12d9745, 0xb830445c, 0xdeacc59b,
+ 0xf8f3b30d, 0x383f2dd8, 0x94218a13, 0xcfc2fff1, 0x4d6c9a61, 0x80037097,
+ 0xbe2a1767, 0xc7de564a, 0x382b15ec, 0x36e06537, 0x0b8e0644][:],
+ [0xe5621a7d, 0xb0f6475c, 0x3000e4b0, 0x53b8b119, 0x46c9460a, 0xc2c2f64d,
+ 0x15eb1ed7, 0xa89990fb, 0x193ed8e9, 0xffb67218, 0x08b28715, 0xca5afee2,
+ 0xa6d74a73, 0xfa6f1d9e, 0x91df97b8, 0x028125e2, 0xb9e08ff2, 0x31bb04c0,
+ 0xae8c88b1, 0x563530e8, 0x482163de, 0xab6b78e4, 0xf107ede6, 0xd1d56eb3,
+ 0xac3c6450, 0xa562b28a, 0x0022c497, 0xc0689e89, 0x59111c1e, 0x81909ce5,
+ 0x7e3e195d, 0xa93f5404, 0x1f0da612, 0xbab3949d, 0xe524ca5e, 0x4313c3cc,
+ 0x11be62c7, 0x97ac4245, 0xac8bc99d, 0x3689d84a, 0x7c0b6981, 0x3356bbe0,
+ 0xa4f96426, 0x85ad3a5e, 0x2945bb74, 0x7c57c074, 0x0e5307fa, 0xae84692f,
+ 0x1d44c111, 0x2043c096, 0xe6cf2147, 0x305537d8, 0xdf8d0c51, 0xc5c14cfe,
+ 0x580a9f0a, 0x0d792d22, 0x935e2ef6, 0xa7a51a8e, 0x0eb36a53, 0x7f093172,
+ 0x3822742b, 0xa5808923, 0xd3fd0a04, 0x8fe43041, 0x2b61a5bf, 0x39c323de,
+ 0x05d607f2, 0xcc0221d3, 0x9c503cfb, 0xd2cb6150, 0xd8469594, 0xdeeefd8e,
+ 0x70d9a37d, 0x353bd90d, 0x37cc99e0, 0xc676d61d, 0xa6787990, 0xb29db582,
+ 0xe1a54d0d, 0xed28287f, 0xf3f1985c, 0xa5cb4625, 0x95c4a133, 0x6427168a,
+ 0x463e52b8, 0x7185af04, 0x3d1d1d4d, 0x3a90b946, 0xb3dd9ac0, 0x6b9888b6,
+ 0xe0f14a09, 0xdd2cfe25, 0x22f4527f, 0x4c671823, 0xe155d8f6, 0xaedc37f8,
+ 0x4eaa2b30, 0x71f0c746, 0xfe2eefae, 0xd0fa4c12, 0xb906f9d4, 0x4d97f1a3,
+ 0x2d3be158, 0x2f4b0c08, 0x8cb52216, 0xef5e2562, 0x3b9102f4, 0x49b0ca12,
+ 0x535aa042, 0x5b0d8a57, 0xddcc235f, 0x614d76c5, 0xdfbeecec, 0x5561416d,
+ 0x57b22ea9, 0x7c6e37a2, 0x50277b6a, 0xfd25c564, 0x5274077a, 0xb147e023,
+ 0xd839a7a1, 0x1f55ae33, 0x1be20d38, 0x1dfb374e, 0x9c45bc7a, 0x9d41e666,
+ 0x46e571fc, 0x04fad28c, 0xbc498704, 0xf588c11b, 0xdd64929f, 0xb9646dfc,
+ 0x59413de3, 0xaf1429b0, 0x7c36290e, 0x8a07aebe, 0xce449549, 0x539518c7,
+ 0x2b92dd06, 0xd49562de, 0x0dd45c70, 0x317f8db6, 0x3dc9ecef, 0x21e70139,
+ 0xf4ee8863, 0x143b0fac, 0x65e1a3df, 0xa32aec61, 0x66b8cc77, 0x63ab3183,
+ 0xd88b7a3f, 0xe0c99eec, 0x0a6aa3dc, 0xaa99a520, 0xfd78cbaf, 0x132201e5,
+ 0xb74ae9ce, 0x6296ed96, 0x88b3ddf8, 0x82b483b2, 0xff6a80c7, 0xdf0598a3,
+ 0xf5aa6135, 0x86212925, 0x4f6b11cb, 0x6303a5da, 0xfc5ef8a7, 0x567dea22,
+ 0x463415fd, 0x2a33b1d0, 0x02230e91, 0x0f753876, 0x23eafb0f, 0xd3b2e9aa,
+ 0x1f2dcf8c, 0xab90f850, 0xbf072716, 0x46adeeec, 0x6d2edd8d, 0xc8b17c0a,
+ 0xc5f3d74a, 0xc99ba9e9, 0xc0df38dc, 0xc8422337, 0x03bf7f40, 0x00f14447,
+ 0x01ac58b0, 0x2c8f2eed, 0x89000dc7, 0x269892bf, 0xdad75fc7, 0xfef8b557,
+ 0xacffa348, 0xc359bb63, 0xe8674c38, 0x57f772e3, 0xe0bfc767, 0xef93703b,
+ 0xd497c8b5, 0x3d5219e1, 0x3db17f2b, 0x229c4fb2, 0x94c2e9a3, 0x86486d9f,
+ 0x69c73a0a, 0x5d4c9350, 0x08f77ae6, 0x682bd8b0, 0x482fcee7, 0x67423b8f,
+ 0xc1a9bf8c, 0xc373e8fd, 0xe7a19ed0, 0xd0b4c812, 0x89dbbcc9, 0x155a254d,
+ 0x6d541cad, 0xb4c37fc4, 0x296ea17d, 0x2f66047e, 0x381f9ecd, 0x40f26a79,
+ 0x9fcffc67, 0x8c098c43, 0xfbb93238, 0xca28fe51, 0x381712f9, 0xd1b97c87,
+ 0xe7187a4e, 0x94b28566, 0xdf009ad6, 0x4b601b00, 0x03b120de, 0xe3b5c0d3,
+ 0xf3f196be, 0x6b748491, 0xe7524b75, 0x024e81c3, 0x155ffd4b, 0xfdfd6f95,
+ 0x488ef2d5, 0x3e7c256b, 0xbb7d8fee, 0xe6aa4e12, 0xa7dc14c4, 0x8e7f07db,
+ 0x3b7b130d, 0xa2993d38, 0xe1af3de9, 0xa4611524, 0x175426ab, 0x9251aadb,
+ 0x407a68ad, 0x532e4ab0, 0x2f9ff789, 0x0b3beff1, 0x822b0c6e, 0x94ccd66a,
+ 0x8529ce24, 0xff0188de, 0xb2dff273, 0x08058dbf, 0x9faafe49, 0xbf9a5387,
+ 0x00000083][:],
+ [0x00000000, 0x00000000, 0xbe3ffda0, 0x82979aaa, 0xb9235f84, 0x04421405,
+ 0x28ab0324, 0xac4b68da, 0x9a4f0ab4, 0xbd71182a, 0xe412b1e1, 0x55141ce9,
+ 0x30cb7d22, 0x65a20018, 0x4b824f6f, 0x9e197442, 0x979709db, 0x6690672f,
+ 0x71ee5909, 0xc684a5d9, 0x3b60be23, 0x2387bcb2, 0xdee08193, 0xf64f208f,
+ 0x18a662b7, 0x037f0fc5, 0xb0b46377, 0x56bd8be1, 0x1c372107, 0xe3714128,
+ 0x767d7c37, 0x49214d77, 0x317d3a98, 0x81e6d835, 0x26c9cc7c, 0x127a81a5,
+ 0xa9ca0b59, 0x0e266bb8, 0xb7ce579f, 0xcae5ce06, 0x2685c5e2, 0x783bfdbc,
+ 0x090647da, 0x04a97a4c, 0xcb19122b, 0x20118309, 0x33de229b, 0x43d75527,
+ 0x2e8b1c07, 0x48ba85d7, 0xf54e4335, 0xecdd39e5, 0x64be3504, 0xe75167b3,
+ 0xcd0dbb77, 0x38090e16, 0xf4686dda, 0x47d6585f, 0xd572d8d1, 0x04dde8b1,
+ 0x1d93b235, 0xb51aaa24, 0xf66eb3ae, 0xa9f5f5ec, 0x1a0ff5f6, 0xc1bbd14a,
+ 0x3138fa5f, 0xc908a8d3, 0x6bc03615, 0x1af5e37f, 0x7ca06463, 0xbb0ebb30,
+ 0x8462f81d, 0x2778d2ce, 0x87205714, 0x4c54da67, 0x8c298b46, 0x6cfa4813,
+ 0x6571c721, 0x9a796e57, 0xa675b885, 0x1eb64a76, 0xebe54e7b, 0x11f653e5,
+ 0x4834a66b, 0xf609d1b6, 0xb620e147, 0x2392ca9b, 0xd27ee7ed, 0x7eb5c7c2,
+ 0xa9069748, 0x6adeeb6b, 0xcc07ab10, 0x0da13808, 0xd78edb23, 0x24ab4bc9,
+ 0x3404c0a1, 0x56119c6a, 0xf6416665, 0x33f4470c, 0xf2aacf62, 0x83c58c47,
+ 0xe7d9a5fc, 0x59aead51, 0xf4f7364a, 0xdcd4f5f7, 0x6709a431, 0xd10a6bdd,
+ 0x9d2eb4c9, 0x99ac2098, 0x7019acae, 0xbec04230, 0x5dc42afa, 0xd7a1bc64,
+ 0xb617190a, 0xbbb89502, 0x53149b0b, 0xc98de46e, 0xf89cab46, 0x75c9340f,
+ 0xbe4a25cb, 0xa76d3aec, 0xa0031650, 0x8188d222, 0xcefddfb6, 0xfd51b810,
+ 0x6eda1784, 0x5b41fd3d, 0x714244dc, 0xbc9d1c24, 0x53171ecc, 0x247c6235,
+ 0x32432b28, 0x7d0ac109, 0xf911b1c4, 0x5dbe82a4, 0x1b63c5c0, 0x9822ff30,
+ 0x14e1f7f9, 0x86ab98c0, 0xcd969103, 0xdcffed57, 0x985a484a, 0x00754e46,
+ 0xffa3b7a1, 0x31f1e4ef, 0xe8188d71, 0x565b93ce, 0x072240c4, 0x73a1c849,
+ 0xe05f999d, 0xd2103ce1, 0x0778a8e2, 0x96168f1a, 0x5c30942a, 0x420d4166,
+ 0x7d3157da, 0xbb9a4931, 0x012bd8f2, 0x66771ec3, 0x224bd3bb, 0x7fafa887,
+ 0xe82d297a, 0x1a7a8962, 0x67ee9a9d, 0x57193c34, 0xf22879fb, 0x518eae1d,
+ 0xf5844664, 0x79052b91, 0x265574d3, 0xe41ddcd5, 0xb0934575, 0xd71a14c1,
+ 0xb8b39ddd, 0xa11113d6, 0x6ef91c08, 0x290304a0, 0x56603b25, 0xcfc73457,
+ 0xa52cf8d9, 0xc9497ffc, 0xb05843a2, 0xd5dfa56e, 0x24e7f1ce, 0x283cbfe5,
+ 0x1f3519dd, 0x3fe86a1b, 0xb29bee1d, 0x7d454b14, 0x57fbaa22, 0xbc3a58b6,
+ 0x9931bb0a, 0x8240b67c, 0xbec15ccf, 0x9677fdbf, 0xde453b6f, 0x93917fa8,
+ 0x3653b793, 0x06a2e9f4, 0x677a3a31, 0xa68e508a, 0xc9392611, 0x6315adec,
+ 0xc0e895e2, 0x37c9a043, 0x7cb07fd7, 0x450417a9, 0x54b9acb4, 0x76414b62,
+ 0xdc6128e5, 0xc75a67e7, 0x4533f93f, 0xda0e6a3c, 0xfc7461ef, 0xc53a5440,
+ 0xe8aede4f, 0x655e62dc, 0x33bcec2b, 0xe0e6497f, 0xcb40f223, 0xa425fbd2,
+ 0x5c14cfc3, 0x5c0c8a72, 0x1ef898ac, 0x95a3edbb, 0xb520a67f, 0xc6410c1f,
+ 0x23cd82c3, 0xf26d59ea, 0x578f1a28, 0x4870b3c4, 0x91e0ab6b, 0x2f146b6c,
+ 0x52012d4f, 0x61a38d2a, 0x9f61eeb9, 0xa4b093eb, 0x6e90b268, 0x1e87f1a9,
+ 0xe9923052, 0x09e43b35, 0xe5852a70, 0xacd454e2, 0xb1a5a567, 0x09439ed5,
+ 0x79aab59c, 0xc456aaaa, 0x783983f1, 0xf8963bcf, 0xe063f94c, 0xbe5ec39b,
+ 0x237798db, 0x572ee3e1, 0xf656f0b6, 0x409ca341, 0x9405fc6c, 0x459f1382,
+ 0x145b0b46, 0x054d0d28, 0xc0502da9, 0x23d7965d, 0xc04e09b9, 0xcc82c64e,
+ 0x2da02d3a, 0x3d578803, 0xa0373dc5, 0x10f715cc, 0x38badb6f, 0x7e1ebd29,
+ 0xd80beefe, 0x2a01de6f, 0x47cfaf0a, 0x961e2329, 0x681767c6, 0xe1f26e44,
+ 0x73e32959, 0x3d5516ba, 0x33150281, 0xf0e32acb, 0x2ff58942, 0x3a81d0f8,
+ 0x0537dcd9, 0x66bf7242, 0xd239462c, 0x67815ee0, 0xf3602fc8, 0x63379c53,
+ 0x6038fb63, 0x16fe7fd4, 0xdf2a7271, 0xe388af54, 0x837a99ed, 0x23dfbfc6,
+ 0x9f5a7bf7, 0xe2903d2d, 0xca0298a5, 0xd19ba36e, 0xa936e528, 0x32ba65b1,
+ 0x65943496, 0x62a80493, 0x0ab3057a, 0xf7f18bc1, 0x995188be, 0x1dfcf7c8,
+ 0xa161ccfd, 0xa303757d, 0x3a8aa296, 0x551b6caf, 0xe977eef2, 0x0bd85cf8,
+ 0xc2af8f39, 0x5bf8952a, 0x7acef741, 0x0ab1771a, 0x0156008c, 0xfa3facea,
+ 0x1d25085f, 0x6a9e94ea, 0x7c2f77cd, 0x2ec7c794, 0xdde58996, 0x57a55297,
+ 0x9398de73, 0xe773282e, 0xc5ce08db, 0x83009b93, 0x530dbb2d, 0x97fd15c3,
+ 0xa6ce14cb, 0x576506a0, 0x26c0d23f, 0xb224fbe2, 0x08bdfeb4, 0xa0829671,
+ 0xd713b291, 0x50f47f73, 0x04f4dac5, 0x14c05208, 0x8444aa80, 0x1c4493d9,
+ 0xc6129bbb, 0x8e287680, 0xd348d4b1, 0x6710a259, 0xa31505ce, 0xb03f4c69,
+ 0xc5d524a6, 0x093332b8, 0x1c443255, 0xe0a67d66, 0xe4c0a9fc, 0xc39980f9,
+ 0xc3016d16, 0x6dbc33aa, 0xaaaf7f7a, 0x49e7e357, 0x8b7c1cc2, 0xbf9b3ccf,
+ 0x6710a38a, 0x23bc2ee9, 0x3ac655d1, 0x54909b56, 0x69e72155, 0xbd60706e,
+ 0x4c3cde2c, 0x1e79c4cb, 0x9c6199cb, 0x622363a2, 0x56e86c30, 0xf1110343,
+ 0x390ecc6d, 0x0cebbb28, 0xe430de2c, 0x2da244ee, 0xffee679b, 0xd74aaa35,
+ 0x341080b9, 0x841d42cb, 0xea44a03a, 0x68690521, 0xc2c02368, 0x519e0a3e,
+ 0xfc5316d3, 0xfa07bffa, 0x5b7ff4de, 0x3f284fc0, 0xd5298b15, 0xa34df1ad,
+ 0x3310e56f, 0xa6a7b5d9, 0x5311d3f0, 0xaa20df2a, 0x62f3940e, 0xbf9e92ea,
+ 0x884085dc, 0xe7f5d811, 0x4929e44e, 0xddd835cd, 0x5165edf4, 0x59e39525,
+ 0xae54cfaf, 0x887cdaea, 0xf4aaa590, 0xa6f4996b, 0x448d0000, 0xfb087d2f,
+ 0x161986ba, 0xb8074968, 0x15a4b409, 0x452286b0, 0xd7678ec8, 0xe08ee9ab,
+ 0xb84a452e, 0x8be3020b, 0x9861f3b9, 0x7e9a0e5a, 0xfd36a044, 0x3a7bc5f6,
+ 0xda5049c3, 0xc7a81a96, 0xa2dc3955, 0xab6bc016, 0x9383ec7c, 0x807aa367,
+ 0x2940d087, 0x137142ec, 0x378b956a, 0x35974daa, 0xdde753c7, 0x50bbb74f,
+ 0xa783762c, 0x853112e9, 0x5827ab32, 0x5b1ca0cd, 0x3b19be68, 0xd018137a,
+ 0x641a8394, 0x55d94c04, 0xb90f0637, 0xe335c233, 0xf63c2d18, 0x488ad935,
+ 0xc91097f0, 0xb3125f28, 0x40281ae9, 0x118e5b7b, 0x6730822f, 0xafd46678,
+ 0x2f349032, 0x3d23f660, 0xe9c8c940, 0xbe013000, 0xe831b243, 0x83b6be88,
+ 0x09f664ef, 0xf5e28265, 0x242107c2, 0x08d8c500, 0xf237e14f, 0x7081d19f,
+ 0x8ac71ab5, 0xd163e11d, 0xd425148a, 0x0f94724c, 0x381c0ef4, 0xb3196dad,
+ 0x62f53c77, 0xd8661911, 0x7b55387a, 0x05a155a6, 0x393f1c55, 0xb934a609,
+ 0xb18e5d81, 0x007224ad, 0x2bb4508f, 0xc9c87369, 0xb84821ce, 0x9070c6b3,
+ 0xfd371781, 0xd927036a, 0x032d173c, 0xc598df4a, 0xf3bc6d10, 0xf3ba63b1,
+ 0x6858c1b7, 0xd0ebf6e0, 0xde64f41f, 0x8e217531, 0x36403e12, 0x7c7aad22,
+ 0xe76fd6cf, 0xfbc5602b, 0xdfdd0451, 0x57859ce7, 0xb96c78e4, 0xf87ccd9d,
+ 0x6554c42e, 0xa4e4132d, 0xa6e1ab00, 0x933b6684, 0xfb6234c7, 0x75adffb8,
+ 0x55d835f1, 0xb91aeca8, 0xb58f54d9, 0x7c0a51d3, 0x48f1c33d, 0x2fcd22e9,
+ 0x67d2854d, 0xa8a0ec60, 0xa426d787, 0x89100511, 0xa5dc1a28, 0x030deedb,
+ 0x5594c424, 0x58d45125, 0x5116afb8, 0x665e5006, 0x8bf53db8, 0x533d88d5,
+ 0x7ad58de2, 0xa5aa816e, 0x42c866ea, 0xe9f09335, 0xf25322c9, 0x00000005
+ ][:]),
+ ][:]
+
+ for (id, a_dig, b_dig, exp_dig) : inputs
+ var a = [ .sign = 1, .dig = a_dig ]
+ var b = [ .sign = 1, .dig = b_dig ]
+ var exp_base = [ .sign = 1, .dig = exp_dig ]
+ var exp = &exp_base
+ var act = std.bigdup(&a)
+ std.bigmul(act, &b)
+ testr.check(c, std.bigeq(exp, act), "input #{}: a0 = 0x{x,w=8,p=0}, b0 = 0x{x,w=8,p=0}, exp0 = 0x{x,w=8,p=0}, act0=0x{x,w=8,p=0}", id, a.dig[0], b.dig[0], exp.dig[0], act.dig[0])
+ ;;
+}
diff --git a/lib/std/test/fmt.myr b/lib/std/test/fmt.myr
index 0d0385d..1522534 100644
--- a/lib/std/test/fmt.myr
+++ b/lib/std/test/fmt.myr
@@ -139,9 +139,9 @@ const variablewidth = {c
check(c, "77", "{w=?}", 77, (-1 : int8))
check(c, "77", "{w=?}", 77, (-1 : int16))
check(c, "77", "{w=?}", 77, (-1 : int32))
- check(c, "77", "{w=?}", 77, (-4294967294 : int32))
+ check(c, "77", "{w=?}", 77, (-4294967294L : int32))
check(c, "77", "{w=?}", 77, (-1 : int64))
- check(c, "77", "{w=?}", 77, (-18446744073709551614 : int64))
+ check(c, "77", "{w=?}", 77, (-18446744073709551614L : int64))
check(c, "77", "{w=?}", 77, (0 : int8))
check(c, "77", "{w=?}", 77, (0 : int16))
check(c, "77", "{w=?}", 77, (0 : int32))
diff --git a/lib/std/test/ipparse.myr b/lib/std/test/ipparse.myr
index dfed4d6..ad408cb 100644
--- a/lib/std/test/ipparse.myr
+++ b/lib/std/test/ipparse.myr
@@ -52,6 +52,12 @@ const main = {
0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00])
+ eq("2001:b88:1202::10", \
+ `std.Some `std.Ipv6 [ \
+ 0x20, 0x01, 0x0b, 0x88, \
+ 0x12, 0x02, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x10])
/* invalid ipv4 addresses */
eq("2a03:2880:2110:df07:face:b00c:0:1:abc", `std.None) /* too long */
@@ -60,12 +66,14 @@ const main = {
}
const eq = {ip, expected
+ var pdst : byte[16]
+ var edst : byte[16]
var parsed
var p, e
parsed = std.ipparse(ip)
- p = ipbytes(parsed)
- e = ipbytes(expected)
+ p = ipbytes(pdst[:], parsed)
+ e = ipbytes(edst[:], expected)
if !std.eq(p, e)
std.fput(1, "misparsed ip {}\n", ip)
std.put("parsed: ")
@@ -81,14 +89,19 @@ const eq = {ip, expected
;;
}
-const ipbytes = {ipopt
+const ipbytes = {dst, ipopt
match ipopt
+ | `std.None:
+ -> [][:]
| `std.Some ip:
match ip
- | `std.Ipv4 b: -> b[:]
- | `std.Ipv6 b: -> b[:]
+ | `std.Ipv4 b:
+ std.slcp(dst[:4], b[:])
+ -> dst[:4]
+ | `std.Ipv6 b:
+ std.slcp(dst[:16], b[:])
+ -> dst[:16]
;;
- | `std.None: -> [][:]
;;
-> [][:]
}
diff --git a/lib/std/varargs.myr b/lib/std/varargs.myr
index 90c2945..7a5e036 100644
--- a/lib/std/varargs.myr
+++ b/lib/std/varargs.myr
@@ -58,7 +58,7 @@ const vaenter = {ap
ty = vatype(ap)
match typedesc(ty)
| `Tyslice enc: -> [.args=sliceptr(ap.args), .tc=[.nelt=slicelen(ap.args), .rem=enc, .isiter=false]]
- | `Tytuple tc: -> [.args=ap.args, .tc=tc]
+ | `Tytuple tc: -> [.args=cursoralign(ap.args, ty), .tc=tc]
| `Tystruct tc: -> [.args=cursoralign(ap.args, ty), .tc=tc]
| `Tyarray (sz, enc): -> [.args=ap.args, .tc=[.nelt=sz, .rem=enc, .isiter=false]]
| `Tyname (name, enc): -> [.args=ap.args, .tc=typeenccursor(enc)]
diff --git a/lib/sys/sys+osx-x64.myr b/lib/sys/sys+osx-x64.myr
index 0597074..a926156 100644
--- a/lib/sys/sys+osx-x64.myr
+++ b/lib/sys/sys+osx-x64.myr
@@ -813,6 +813,7 @@ pkg sys =
const bind : (sock : fd, addr : sockaddr#, len : size -> int)
const setsockopt : (sock : fd, lev : sockproto, opt : sockopt, val : void#, len : size -> int)
const getsockopt : (sock : fd, lev : sockproto, opt : sockopt, val : void#, len : size# -> int)
+ const recvfrom : (sock : fd, buf : byte[:], flags : int, addr : sockaddr#, addr_len : size# -> int)
/* memory mapping */
const munmap : (addr:byte#, len:size -> int64)
@@ -1005,6 +1006,7 @@ const listen = {sock, backlog; -> (syscall(Syslisten, a(sock), a(backlog)) : int
const bind = {sock, addr, len; -> (syscall(Sysbind, a(sock), a(addr), a(len)) : int)}
const setsockopt = {sock, lev, opt, val, len; -> (syscall(Syssetsockopt, a(sock), a(lev), a(opt), a(val), a(len)) : int)}
const getsockopt = {sock, lev, opt, val, len; -> (syscall(Syssetsockopt, a(sock), a(lev), a(opt), a(val), a(len)) : int)}
+const recvfrom = {sock, buf, flags, addr, addr_len; -> (syscall(Sysrecvfrom, a(sock), (buf : byte#), a(buf.len), a(flags), a(addr), a(addr_len)) : int)}
/* memory management */
const munmap = {addr, len; -> syscall(Sysmunmap, a(addr), a(len))}
diff --git a/mbld/deps.myr b/mbld/deps.myr
index be12b4c..863285f 100644
--- a/mbld/deps.myr
+++ b/mbld/deps.myr
@@ -21,11 +21,13 @@ type dep = union
var usepat : regex.regex#
var cflagpat : regex.regex#
+var ldflagpat : regex.regex#
var clibpat : regex.regex#
const __init__ = {
usepat = std.try(regex.compile("^\\s*use\\s+((\\<\\S+\\>)|\"(\\S+)\").*"))
cflagpat = std.try(regex.compile("/\\*\\s*CFLAGS:\\s*(.*)\\s*\\*/"))
+ ldflagpat = std.try(regex.compile("/\\*\\s*LDFLAGS:\\s*(.*)\\s*\\*/"))
clibpat = std.try(regex.compile("/\\*\\s*LIBS:\\s*(.*)\\s*\\*/"))
}
@@ -57,8 +59,8 @@ const testdeps = {b
const myrdeps = {b, name, mt
var t, p, o, u, n, to, tu
- var libs, dynlibs
- var cflags, ll
+ var libs, dynlibs, ldflags
+ var cflags, ll, lf
var g, a, deps
var gu, go
@@ -123,6 +125,7 @@ const myrdeps = {b, name, mt
;;
libs = [][:]
+ ldflags = [][:]
dynlibs = [][:]
for f : mt.inputs
p = std.pathcat(mt.dir, f)
@@ -170,7 +173,7 @@ const myrdeps = {b, name, mt
o = std.pathcat(opt_objdir, t)
std.slfree(t)
- (cflags, ll) = scrapecflags(b, mt, p)
+ (cflags, ll, lf) = scrapecflags(b, mt, p)
depends(g, go, o)
n = node(g, o)
generates(g, n, o)
@@ -179,6 +182,9 @@ const myrdeps = {b, name, mt
for l : ll
std.slpush(&dynlibs, l)
;;
+ for l : lf
+ std.slpush(&ldflags, l)
+ ;;
mt.isdyn = true
elif std.hassuffix(f, config.Objsuffix)
depends(g, go, p)
@@ -192,7 +198,7 @@ const myrdeps = {b, name, mt
musecmd(b, gu, mt, tu, dynlibs)
builtlib(b, mt, libs, dynlibs)
else
- linkcmd(b, go, mt, to, libs, dynlibs, false)
+ linkcmd(b, go, mt, to, libs, dynlibs, ldflags, false)
std.slfree(libs)
;;
}
@@ -344,7 +350,7 @@ const addalt = {b, mt, kind, f
n = node(g, tp)
generates(g, n, tp)
depends(g, n, op)
- linkcmd(b, n, mt, tp, libs, [][:], true)
+ linkcmd(b, n, mt, tp, libs, [][:], [][:], true)
std.slfree(libs)
n = node(g, tp)
@@ -432,7 +438,7 @@ const arcmd = {b, n, mt, ar
;;
}
-const linkcmd = {b, n, mt, bin, libs, dynlibs, istest
+const linkcmd = {b, n, mt, bin, libs, dynlibs, ldflags, istest
var dynlink
for c : config.Linkcmd
@@ -460,6 +466,9 @@ const linkcmd = {b, n, mt, bin, libs, dynlibs, istest
;;
dynlink = addlibs(b, &n.cmd, libs, mt.incpath) || mt.isdyn
+ for f : ldflags
+ std.slpush(&n.cmd, std.sldup(f))
+ ;;
for l : dynlibs
std.slpush(&n.cmd, std.fmt("-l{}", l))
;;
@@ -471,11 +480,13 @@ const linkcmd = {b, n, mt, bin, libs, dynlibs, istest
;;
/* OSX warns if we don't add a version */
+ /* OSX now hates this, and then breaks everything */
+ /*
if std.eq(opt_sys, "osx")
std.slpush(&n.cmd, std.sldup("-macosx_version_min"))
std.slpush(&n.cmd, std.sldup("10.6"))
;;
-
+ */
}
const myrcmd = {b, n, mt, src, istest
@@ -559,8 +570,22 @@ const scrapedeps = {b : build#, mt, path
-> l
}
+const collectflags = {pat, ln, dst
+ var fl
+
+ match regex.exec(pat, ln)
+ | `std.None: /* skip */
+ | `std.Some m:
+ fl = std.strtok(m[1])
+ for s : fl
+ std.slpush(dst, std.sldup(s))
+ ;;
+ std.slfree(fl)
+ ;;
+}
+
const scrapecflags = {b, mt, path
- var f, fl, cflags, libs
+ var f, cflags, libs, ldflags
match bio.open(path, bio.Rd)
| `std.Ok fd: f = fd
@@ -569,27 +594,13 @@ const scrapecflags = {b, mt, path
cflags = [][:]
libs = [][:]
+ ldflags = [][:]
for ln : bio.byline(f)
- match regex.exec(cflagpat, ln)
- | `std.None: /* skip */
- | `std.Some m:
- fl = std.strtok(m[1])
- for s : fl
- std.slpush(&cflags, std.sldup(s))
- ;;
- std.slfree(fl)
- ;;
- match regex.exec(clibpat, ln)
- | `std.None: /* skip */
- | `std.Some m:
- fl = std.strtok(m[1])
- for s : fl
- std.slpush(&libs, std.sldup(s))
- ;;
- std.slfree(fl)
- ;;
+ collectflags(cflagpat, ln, &cflags)
+ collectflags(ldflagpat, ln, &ldflags)
+ collectflags(clibpat, ln, &libs)
;;
- -> (cflags, libs)
+ -> (cflags, libs, ldflags)
}
const generates = {g, n, dep
diff --git a/mbld/libs.myr b/mbld/libs.myr
index 19fd869..66d0957 100644
--- a/mbld/libs.myr
+++ b/mbld/libs.myr
@@ -23,7 +23,7 @@ pkg bld =
;;
/* Keep in sync with parse/parse.h */
-const Abiversion = 21
+const Abiversion = 23
const builtlib = {b, mt, dep, dyndep
var ldep, l, u
diff --git a/mbld/types.myr b/mbld/types.myr
index 809a543..f18aafa 100644
--- a/mbld/types.myr
+++ b/mbld/types.myr
@@ -42,10 +42,13 @@ pkg bld =
libdeps : (byte[:], byte[:], byte[:])[:]
tstdeps : (byte[:], byte[:], byte[:])[:]
runtime : byte[:]
- incpath : byte[:][:]
tags : byte[:][:]
ldscript : byte[:]
+ /* linking C */
+ incpath : byte[:][:]
+ ldflags : byte[:][:]
+
islib : bool
istest : bool
isbench : bool
diff --git a/mi/match.c b/mi/match.c
index 16fe04d..d6275ff 100644
--- a/mi/match.c
+++ b/mi/match.c
@@ -82,6 +82,8 @@ typedef struct Frontier {
Node **cap; /* the captured variables of the pattern of this match clause */
size_t ncap;
Dtree *final; /* final state, shared by all Frontiers for a specific (indxed by i) match clause */
+
+ struct Frontier *next;
} Frontier;
static Node *
@@ -409,6 +411,36 @@ nconstructors(Type *t)
return 0;
}
+static Frontier *
+mkfrontier(int i, Node *lbl)
+{
+ Frontier *fs;
+
+ fs = zalloc(sizeof(Frontier));
+ fs->i = i;
+ fs->lbl = lbl;
+ fs->final = mkdtree(lbl->loc, lbl);
+ fs->final->accept = 1;
+ return fs;;
+}
+
+/*
+ * All immutable fields are shared; mutable fields must be cloned *
+ */
+static Frontier *
+frontierdup(Frontier *fs)
+{
+ Frontier *out;
+
+ out = mkfrontier(fs->i, fs->lbl);
+ out->slot = memdup(fs->slot, fs->nslot*sizeof(fs->slot[0]));
+ out->nslot = fs->nslot;
+ out->cap = memdup(fs->cap, fs->ncap*sizeof(fs->cap[0]));
+ out->ncap = fs->ncap;
+ return out;
+}
+
+
/* addrec generates a list of slots for a Frontier by walking a pattern tree.
* It collects only the terminal patterns like union tags and literals.
* Non-terminal patterns like tuple/struct/array help encode the path only.
@@ -421,9 +453,17 @@ addrec(Frontier *fs, Node *pat, Node *val, Path *path)
Node *memb, *name, *tagid, *p, *v, *lit, *dcl, *asn, *deref;
Ucon *uc;
char *s;
+ Frontier *next;
pat = fold(pat, 1);
switch (exprop(pat)) {
+ case Olor:
+ next = frontierdup(fs);
+ next->next = fs->next;
+ fs->next = next;
+ addrec(fs, pat->expr.args[1], val, path);
+ addrec(next, pat->expr.args[0], val, path);
+ break;
case Ogap:
lappend(&fs->slot, &fs->nslot, mkslot(path, pat, val));
break;
@@ -515,13 +555,12 @@ genfrontier(int i, Node *val, Node *pat, Node *lbl, Frontier ***frontier, size_t
{
Frontier *fs;
- fs = zalloc(sizeof(Frontier));
- fs->i = i;
- fs->lbl = lbl;
- fs->final = mkdtree(lbl->loc, lbl);
- fs->final->accept = 1;
+ fs = mkfrontier(i, lbl);
addrec(fs, pat, val, mkpath(NULL, 0));
- lappend(frontier, nfrontier, fs);
+ while (fs != NULL) {
+ lappend(frontier, nfrontier, fs);
+ fs = fs->next;
+ }
}
/*
@@ -863,14 +902,27 @@ clearemit(Dtree *dt)
dt->emitted = 0;
}
+static int
+capeq(Node *a, Node *b)
+{
+ Node *pa, *pb, *va, *vb;
+
+ pa = a->expr.args[0];
+ pb = b->expr.args[0];
+ va = a->expr.args[1];
+ vb = b->expr.args[1];
+
+ return pa->expr.did == pb->expr.did && loadeq(va, vb);
+}
+
Dtree *
gendtree(Node *m, Node *val, Node **lbl, size_t nlbl)
{
Dtree *root;
Node **pat;
size_t npat;
- size_t i;
- Frontier **frontier;
+ size_t i, j;
+ Frontier **frontier, *cur, *last;
size_t nfrontier;
FILE *csv;
char *dbgloc, *dbgfn, *dbgln;
@@ -887,8 +939,22 @@ gendtree(Node *m, Node *val, Node **lbl, size_t nlbl)
for (i = 0; i < npat; i++) {
genfrontier(i, val, pat[i]->match.pat, lbl[i], &frontier, &nfrontier);
}
+
+ /* to determine if two different sets of captures come from a or-pattern, which is NOT allowed. */
+ last = NULL;
for (i = 0; i < nfrontier; i++) {
- addcapture(pat[i]->match.block, frontier[i]->cap, frontier[i]->ncap);
+ cur = frontier[i];
+ if (last && last->i == cur->i) {
+ if (last->ncap != cur->ncap)
+ fatal(pat[cur->i], "number of wildcard variables in the or-patterns are not equal (%d != %d)", last->ncap, cur->ncap);
+ for (j = 0; j < cur->ncap; j++) {
+ if (!capeq(last->cap[j], cur->cap[j]))
+ fatal(pat[cur->i], "wildcard variables have different types in the or-patterns");
+ }
+ } else {
+ addcapture(pat[cur->i]->match.block, cur->cap, cur->ncap);
+ }
+ last = cur;
}
root = compile(frontier, nfrontier);
diff --git a/mk/bootstrap/bootstrap+Darwin-x86_64.sh b/mk/bootstrap/bootstrap+Darwin-x86_64.sh
index 43c7e49..911d894 100755
--- a/mk/bootstrap/bootstrap+Darwin-x86_64.sh
+++ b/mk/bootstrap/bootstrap+Darwin-x86_64.sh
@@ -128,8 +128,8 @@ set -x
$pwd/6/6m -O obj -I obj/lib/sys lib/std/dial+posixy.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/listen+posixy.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/try.myr
- ar -rcs obj/lib/std/libstd.a obj/lib/std/resolve.o obj/lib/std/result.o obj/lib/std/try.o obj/lib/std/ipparse.o obj/lib/std/alloc.o obj/lib/std/sleq.o obj/lib/std/putint.o obj/lib/std/sljoin.o obj/lib/std/slpop.o obj/lib/std/syswrap.o obj/lib/std/getint.o obj/lib/std/strsplit.o obj/lib/std/slfill.o obj/lib/std/writeall.o obj/lib/std/fltfmt.o obj/lib/std/hasprefix.o obj/lib/std/swap.o obj/lib/std/fmt.o obj/lib/std/netaddr.o obj/lib/std/varargs.o obj/lib/std/diriter.o obj/lib/std/getcwd.o obj/lib/std/blat.o obj/lib/std/optparse.o obj/lib/std/pathjoin.o obj/lib/std/readall.o obj/lib/std/strjoin.o obj/lib/std/threadhooks.o obj/lib/std/sjlj.o obj/lib/std/extremum.o obj/lib/std/endian.o obj/lib/std/rand.o obj/lib/std/sldup.o obj/lib/std/sleep.o obj/lib/std/wait.o obj/lib/std/introspect.o obj/lib/std/fltparse.o obj/lib/std/fndup.o obj/lib/std/strbuf.o obj/lib/std/strreplace.o obj/lib/std/assert.o obj/lib/std/spork.o obj/lib/std/slpush.o obj/lib/std/strstrip.o obj/lib/std/htab.o obj/lib/std/hashfuncs.o obj/lib/std/slput.o obj/lib/std/sjlj-impl.o obj/lib/std/fltbits.o obj/lib/std/striter.o obj/lib/std/types.o obj/lib/std/cstrconv.o obj/lib/std/units.o obj/lib/std/backtrace.o obj/lib/std/syswrap-ss.o obj/lib/std/die.o obj/lib/std/mk.o obj/lib/std/hassuffix.o obj/lib/std/memops-impl.o obj/lib/std/pledge.o obj/lib/std/utf.o obj/lib/std/slurp.o obj/lib/std/dialparse.o obj/lib/std/bytealloc.o obj/lib/std/mktemp.o obj/lib/std/consts.o obj/lib/std/chomp.o obj/lib/std/dir.o obj/lib/std/search.o obj/lib/std/memops.o obj/lib/std/fmtfuncs.o obj/lib/std/strfind.o obj/lib/std/env.o obj/lib/std/dirname.o obj/lib/std/clear.o obj/lib/std/listen.o obj/lib/std/sort.o obj/lib/std/cmp.o obj/lib/std/now.o obj/lib/std/intparse.o obj/lib/std/traits.o obj/lib/std/mkpath.o obj/lib/std/option.o obj/lib/std/dial.o obj/lib/std/errno.o obj/lib/std/chartype.o obj/lib/std/bigint.o obj/lib/std/bitset.o obj/lib/std/getbp.o obj/lib/std/slcp.o obj/lib/std/execvp.o
- $pwd/muse/muse -o obj/lib/std/libstd.use -p std obj/lib/std/resolve.use obj/lib/std/result.use obj/lib/std/try.use obj/lib/std/ipparse.use obj/lib/std/alloc.use obj/lib/std/sleq.use obj/lib/std/putint.use obj/lib/std/sljoin.use obj/lib/std/slpop.use obj/lib/std/syswrap.use obj/lib/std/getint.use obj/lib/std/strsplit.use obj/lib/std/slfill.use obj/lib/std/writeall.use obj/lib/std/fltfmt.use obj/lib/std/hasprefix.use obj/lib/std/swap.use obj/lib/std/fmt.use obj/lib/std/netaddr.use obj/lib/std/varargs.use obj/lib/std/diriter.use obj/lib/std/getcwd.use obj/lib/std/blat.use obj/lib/std/optparse.use obj/lib/std/pathjoin.use obj/lib/std/readall.use obj/lib/std/strjoin.use obj/lib/std/threadhooks.use obj/lib/std/sjlj.use obj/lib/std/extremum.use obj/lib/std/endian.use obj/lib/std/rand.use obj/lib/std/sldup.use obj/lib/std/sleep.use obj/lib/std/wait.use obj/lib/std/introspect.use obj/lib/std/fltparse.use obj/lib/std/fndup.use obj/lib/std/strbuf.use obj/lib/std/strreplace.use obj/lib/std/assert.use obj/lib/std/spork.use obj/lib/std/slpush.use obj/lib/std/strstrip.use obj/lib/std/htab.use obj/lib/std/hashfuncs.use obj/lib/std/slput.use obj/lib/std/fltbits.use obj/lib/std/striter.use obj/lib/std/types.use obj/lib/std/cstrconv.use obj/lib/std/units.use obj/lib/std/backtrace.use obj/lib/std/syswrap-ss.use obj/lib/std/die.use obj/lib/std/mk.use obj/lib/std/hassuffix.use obj/lib/std/pledge.use obj/lib/std/utf.use obj/lib/std/slurp.use obj/lib/std/dialparse.use obj/lib/std/bytealloc.use obj/lib/std/mktemp.use obj/lib/std/consts.use obj/lib/std/chomp.use obj/lib/std/dir.use obj/lib/std/search.use obj/lib/std/memops.use obj/lib/std/fmtfuncs.use obj/lib/std/strfind.use obj/lib/std/env.use obj/lib/std/dirname.use obj/lib/std/clear.use obj/lib/std/listen.use obj/lib/std/sort.use obj/lib/std/cmp.use obj/lib/std/now.use obj/lib/std/intparse.use obj/lib/std/traits.use obj/lib/std/mkpath.use obj/lib/std/option.use obj/lib/std/dial.use obj/lib/std/errno.use obj/lib/std/chartype.use obj/lib/std/bigint.use obj/lib/std/bitset.use obj/lib/std/slcp.use obj/lib/std/execvp.use
+ ar -rcs obj/lib/std/libstd.a obj/lib/std/resolve.o obj/lib/std/intfmt.o obj/lib/std/result.o obj/lib/std/try.o obj/lib/std/ipparse.o obj/lib/std/alloc.o obj/lib/std/sleq.o obj/lib/std/putint.o obj/lib/std/sljoin.o obj/lib/std/slpop.o obj/lib/std/syswrap.o obj/lib/std/getint.o obj/lib/std/strsplit.o obj/lib/std/slfill.o obj/lib/std/writeall.o obj/lib/std/fltfmt.o obj/lib/std/hasprefix.o obj/lib/std/swap.o obj/lib/std/fmt.o obj/lib/std/netaddr.o obj/lib/std/varargs.o obj/lib/std/diriter.o obj/lib/std/getcwd.o obj/lib/std/blat.o obj/lib/std/optparse.o obj/lib/std/pathjoin.o obj/lib/std/readall.o obj/lib/std/strjoin.o obj/lib/std/threadhooks.o obj/lib/std/sjlj.o obj/lib/std/extremum.o obj/lib/std/endian.o obj/lib/std/rand.o obj/lib/std/sldup.o obj/lib/std/sleep.o obj/lib/std/wait.o obj/lib/std/introspect.o obj/lib/std/fltparse.o obj/lib/std/fndup.o obj/lib/std/strbuf.o obj/lib/std/strreplace.o obj/lib/std/assert.o obj/lib/std/spork.o obj/lib/std/slpush.o obj/lib/std/strstrip.o obj/lib/std/htab.o obj/lib/std/hashfuncs.o obj/lib/std/slput.o obj/lib/std/sjlj-impl.o obj/lib/std/fltbits.o obj/lib/std/striter.o obj/lib/std/types.o obj/lib/std/cstrconv.o obj/lib/std/units.o obj/lib/std/backtrace.o obj/lib/std/syswrap-ss.o obj/lib/std/die.o obj/lib/std/mk.o obj/lib/std/hassuffix.o obj/lib/std/memops-impl.o obj/lib/std/pledge.o obj/lib/std/utf.o obj/lib/std/slurp.o obj/lib/std/dialparse.o obj/lib/std/bytealloc.o obj/lib/std/mktemp.o obj/lib/std/consts.o obj/lib/std/chomp.o obj/lib/std/dir.o obj/lib/std/search.o obj/lib/std/memops.o obj/lib/std/fmtfuncs.o obj/lib/std/strfind.o obj/lib/std/env.o obj/lib/std/dirname.o obj/lib/std/clear.o obj/lib/std/listen.o obj/lib/std/sort.o obj/lib/std/cmp.o obj/lib/std/now.o obj/lib/std/intparse.o obj/lib/std/traits.o obj/lib/std/mkpath.o obj/lib/std/option.o obj/lib/std/dial.o obj/lib/std/errno.o obj/lib/std/chartype.o obj/lib/std/bigint.o obj/lib/std/bitset.o obj/lib/std/getbp.o obj/lib/std/slcp.o obj/lib/std/execvp.o
+ $pwd/muse/muse -o obj/lib/std/libstd.use -p std obj/lib/std/resolve.use obj/lib/std/intfmt.use obj/lib/std/result.use obj/lib/std/try.use obj/lib/std/ipparse.use obj/lib/std/alloc.use obj/lib/std/sleq.use obj/lib/std/putint.use obj/lib/std/sljoin.use obj/lib/std/slpop.use obj/lib/std/syswrap.use obj/lib/std/getint.use obj/lib/std/strsplit.use obj/lib/std/slfill.use obj/lib/std/writeall.use obj/lib/std/fltfmt.use obj/lib/std/hasprefix.use obj/lib/std/swap.use obj/lib/std/fmt.use obj/lib/std/netaddr.use obj/lib/std/varargs.use obj/lib/std/diriter.use obj/lib/std/getcwd.use obj/lib/std/blat.use obj/lib/std/optparse.use obj/lib/std/pathjoin.use obj/lib/std/readall.use obj/lib/std/strjoin.use obj/lib/std/threadhooks.use obj/lib/std/sjlj.use obj/lib/std/extremum.use obj/lib/std/endian.use obj/lib/std/rand.use obj/lib/std/sldup.use obj/lib/std/sleep.use obj/lib/std/wait.use obj/lib/std/introspect.use obj/lib/std/fltparse.use obj/lib/std/fndup.use obj/lib/std/strbuf.use obj/lib/std/strreplace.use obj/lib/std/assert.use obj/lib/std/spork.use obj/lib/std/slpush.use obj/lib/std/strstrip.use obj/lib/std/htab.use obj/lib/std/hashfuncs.use obj/lib/std/slput.use obj/lib/std/fltbits.use obj/lib/std/striter.use obj/lib/std/types.use obj/lib/std/cstrconv.use obj/lib/std/units.use obj/lib/std/backtrace.use obj/lib/std/syswrap-ss.use obj/lib/std/die.use obj/lib/std/mk.use obj/lib/std/hassuffix.use obj/lib/std/pledge.use obj/lib/std/utf.use obj/lib/std/slurp.use obj/lib/std/dialparse.use obj/lib/std/bytealloc.use obj/lib/std/mktemp.use obj/lib/std/consts.use obj/lib/std/chomp.use obj/lib/std/dir.use obj/lib/std/search.use obj/lib/std/memops.use obj/lib/std/fmtfuncs.use obj/lib/std/strfind.use obj/lib/std/env.use obj/lib/std/dirname.use obj/lib/std/clear.use obj/lib/std/listen.use obj/lib/std/sort.use obj/lib/std/cmp.use obj/lib/std/now.use obj/lib/std/intparse.use obj/lib/std/traits.use obj/lib/std/mkpath.use obj/lib/std/option.use obj/lib/std/dial.use obj/lib/std/errno.use obj/lib/std/chartype.use obj/lib/std/bigint.use obj/lib/std/bitset.use obj/lib/std/slcp.use obj/lib/std/execvp.use
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std -I obj/lib/bio -I obj/lib/regex -I obj/lib/thread mbld/types.myr
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std lib/regex/types.myr
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std lib/regex/interp.myr
@@ -173,5 +173,5 @@ set -x
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std -I obj/lib/bio -I obj/lib/regex -I obj/lib/thread mbld/test.myr
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std -I obj/lib/bio -I obj/lib/regex -I obj/lib/thread mbld/deps.myr
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std -I obj/lib/bio -I obj/lib/regex -I obj/lib/thread mbld/main.myr
- ld -pagezero_size 0x100000000 -macosx_version_min 10.6 -o obj/mbld/mbld $pwd/rt/_myrrt.o obj/mbld/deps.o obj/mbld/main.o obj/mbld/util.o obj/mbld/cpufeatures.o obj/mbld/libs.o obj/mbld/syssel.o obj/mbld/config.o obj/mbld/opts.o obj/mbld/subtest.o obj/mbld/types.o obj/mbld/test.o obj/mbld/install.o obj/mbld/parse.o obj/mbld/build.o -Lobj/lib/thread -lthread -Lobj/lib/bio -lbio -Lobj/lib/regex -lregex -Lobj/lib/std -lstd -Lobj/lib/sys -lsys -macosx_version_min 10.6
+ ld -static -pagezero_size 0x100000000 -no_pie -o obj/mbld/mbld $pwd/rt/_myrrt.o obj/mbld/deps.o obj/mbld/main.o obj/mbld/util.o obj/mbld/cpufeatures.o obj/mbld/libs.o obj/mbld/syssel.o obj/mbld/config.o obj/mbld/opts.o obj/mbld/subtest.o obj/mbld/types.o obj/mbld/test.o obj/mbld/install.o obj/mbld/parse.o obj/mbld/build.o -Lobj/lib/thread -lthread -Lobj/lib/bio -lbio -Lobj/lib/regex -lregex -Lobj/lib/std -lstd -Lobj/lib/sys -lsys
true
diff --git a/mk/bootstrap/bootstrap+FreeBSD-amd64.sh b/mk/bootstrap/bootstrap+FreeBSD-amd64.sh
index f097d6e..5220358 100755
--- a/mk/bootstrap/bootstrap+FreeBSD-amd64.sh
+++ b/mk/bootstrap/bootstrap+FreeBSD-amd64.sh
@@ -128,8 +128,8 @@ set -x
$pwd/6/6m -O obj -I obj/lib/sys lib/std/dial+posixy.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/listen+posixy.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/try.myr
- ar -rcs obj/lib/std/libstd.a obj/lib/std/resolve.o obj/lib/std/result.o obj/lib/std/try.o obj/lib/std/ipparse.o obj/lib/std/alloc.o obj/lib/std/sleq.o obj/lib/std/putint.o obj/lib/std/sljoin.o obj/lib/std/slpop.o obj/lib/std/syswrap.o obj/lib/std/getint.o obj/lib/std/strsplit.o obj/lib/std/slfill.o obj/lib/std/writeall.o obj/lib/std/fltfmt.o obj/lib/std/hasprefix.o obj/lib/std/swap.o obj/lib/std/fmt.o obj/lib/std/netaddr.o obj/lib/std/varargs.o obj/lib/std/diriter.o obj/lib/std/getcwd.o obj/lib/std/blat.o obj/lib/std/optparse.o obj/lib/std/pathjoin.o obj/lib/std/readall.o obj/lib/std/strjoin.o obj/lib/std/threadhooks.o obj/lib/std/sjlj.o obj/lib/std/extremum.o obj/lib/std/endian.o obj/lib/std/rand.o obj/lib/std/sldup.o obj/lib/std/sleep.o obj/lib/std/wait.o obj/lib/std/introspect.o obj/lib/std/fltparse.o obj/lib/std/fndup.o obj/lib/std/strbuf.o obj/lib/std/strreplace.o obj/lib/std/assert.o obj/lib/std/spork.o obj/lib/std/slpush.o obj/lib/std/strstrip.o obj/lib/std/htab.o obj/lib/std/hashfuncs.o obj/lib/std/slput.o obj/lib/std/sjlj-impl.o obj/lib/std/fltbits.o obj/lib/std/striter.o obj/lib/std/types.o obj/lib/std/cstrconv.o obj/lib/std/units.o obj/lib/std/backtrace.o obj/lib/std/syswrap-ss.o obj/lib/std/die.o obj/lib/std/mk.o obj/lib/std/hassuffix.o obj/lib/std/memops-impl.o obj/lib/std/pledge.o obj/lib/std/utf.o obj/lib/std/slurp.o obj/lib/std/dialparse.o obj/lib/std/bytealloc.o obj/lib/std/mktemp.o obj/lib/std/consts.o obj/lib/std/chomp.o obj/lib/std/dir.o obj/lib/std/search.o obj/lib/std/memops.o obj/lib/std/fmtfuncs.o obj/lib/std/strfind.o obj/lib/std/env.o obj/lib/std/dirname.o obj/lib/std/clear.o obj/lib/std/listen.o obj/lib/std/sort.o obj/lib/std/cmp.o obj/lib/std/now.o obj/lib/std/intparse.o obj/lib/std/traits.o obj/lib/std/mkpath.o obj/lib/std/option.o obj/lib/std/dial.o obj/lib/std/errno.o obj/lib/std/chartype.o obj/lib/std/bigint.o obj/lib/std/bitset.o obj/lib/std/getbp.o obj/lib/std/slcp.o obj/lib/std/execvp.o
- $pwd/muse/muse -o obj/lib/std/libstd.use -p std obj/lib/std/resolve.use obj/lib/std/result.use obj/lib/std/try.use obj/lib/std/ipparse.use obj/lib/std/alloc.use obj/lib/std/sleq.use obj/lib/std/putint.use obj/lib/std/sljoin.use obj/lib/std/slpop.use obj/lib/std/syswrap.use obj/lib/std/getint.use obj/lib/std/strsplit.use obj/lib/std/slfill.use obj/lib/std/writeall.use obj/lib/std/fltfmt.use obj/lib/std/hasprefix.use obj/lib/std/swap.use obj/lib/std/fmt.use obj/lib/std/netaddr.use obj/lib/std/varargs.use obj/lib/std/diriter.use obj/lib/std/getcwd.use obj/lib/std/blat.use obj/lib/std/optparse.use obj/lib/std/pathjoin.use obj/lib/std/readall.use obj/lib/std/strjoin.use obj/lib/std/threadhooks.use obj/lib/std/sjlj.use obj/lib/std/extremum.use obj/lib/std/endian.use obj/lib/std/rand.use obj/lib/std/sldup.use obj/lib/std/sleep.use obj/lib/std/wait.use obj/lib/std/introspect.use obj/lib/std/fltparse.use obj/lib/std/fndup.use obj/lib/std/strbuf.use obj/lib/std/strreplace.use obj/lib/std/assert.use obj/lib/std/spork.use obj/lib/std/slpush.use obj/lib/std/strstrip.use obj/lib/std/htab.use obj/lib/std/hashfuncs.use obj/lib/std/slput.use obj/lib/std/fltbits.use obj/lib/std/striter.use obj/lib/std/types.use obj/lib/std/cstrconv.use obj/lib/std/units.use obj/lib/std/backtrace.use obj/lib/std/syswrap-ss.use obj/lib/std/die.use obj/lib/std/mk.use obj/lib/std/hassuffix.use obj/lib/std/pledge.use obj/lib/std/utf.use obj/lib/std/slurp.use obj/lib/std/dialparse.use obj/lib/std/bytealloc.use obj/lib/std/mktemp.use obj/lib/std/consts.use obj/lib/std/chomp.use obj/lib/std/dir.use obj/lib/std/search.use obj/lib/std/memops.use obj/lib/std/fmtfuncs.use obj/lib/std/strfind.use obj/lib/std/env.use obj/lib/std/dirname.use obj/lib/std/clear.use obj/lib/std/listen.use obj/lib/std/sort.use obj/lib/std/cmp.use obj/lib/std/now.use obj/lib/std/intparse.use obj/lib/std/traits.use obj/lib/std/mkpath.use obj/lib/std/option.use obj/lib/std/dial.use obj/lib/std/errno.use obj/lib/std/chartype.use obj/lib/std/bigint.use obj/lib/std/bitset.use obj/lib/std/slcp.use obj/lib/std/execvp.use
+ ar -rcs obj/lib/std/libstd.a obj/lib/std/resolve.o obj/lib/std/intfmt.o obj/lib/std/result.o obj/lib/std/try.o obj/lib/std/ipparse.o obj/lib/std/alloc.o obj/lib/std/sleq.o obj/lib/std/putint.o obj/lib/std/sljoin.o obj/lib/std/slpop.o obj/lib/std/syswrap.o obj/lib/std/getint.o obj/lib/std/strsplit.o obj/lib/std/slfill.o obj/lib/std/writeall.o obj/lib/std/fltfmt.o obj/lib/std/hasprefix.o obj/lib/std/swap.o obj/lib/std/fmt.o obj/lib/std/netaddr.o obj/lib/std/varargs.o obj/lib/std/diriter.o obj/lib/std/getcwd.o obj/lib/std/blat.o obj/lib/std/optparse.o obj/lib/std/pathjoin.o obj/lib/std/readall.o obj/lib/std/strjoin.o obj/lib/std/threadhooks.o obj/lib/std/sjlj.o obj/lib/std/extremum.o obj/lib/std/endian.o obj/lib/std/rand.o obj/lib/std/sldup.o obj/lib/std/sleep.o obj/lib/std/wait.o obj/lib/std/introspect.o obj/lib/std/fltparse.o obj/lib/std/fndup.o obj/lib/std/strbuf.o obj/lib/std/strreplace.o obj/lib/std/assert.o obj/lib/std/spork.o obj/lib/std/slpush.o obj/lib/std/strstrip.o obj/lib/std/htab.o obj/lib/std/hashfuncs.o obj/lib/std/slput.o obj/lib/std/sjlj-impl.o obj/lib/std/fltbits.o obj/lib/std/striter.o obj/lib/std/types.o obj/lib/std/cstrconv.o obj/lib/std/units.o obj/lib/std/backtrace.o obj/lib/std/syswrap-ss.o obj/lib/std/die.o obj/lib/std/mk.o obj/lib/std/hassuffix.o obj/lib/std/memops-impl.o obj/lib/std/pledge.o obj/lib/std/utf.o obj/lib/std/slurp.o obj/lib/std/dialparse.o obj/lib/std/bytealloc.o obj/lib/std/mktemp.o obj/lib/std/consts.o obj/lib/std/chomp.o obj/lib/std/dir.o obj/lib/std/search.o obj/lib/std/memops.o obj/lib/std/fmtfuncs.o obj/lib/std/strfind.o obj/lib/std/env.o obj/lib/std/dirname.o obj/lib/std/clear.o obj/lib/std/listen.o obj/lib/std/sort.o obj/lib/std/cmp.o obj/lib/std/now.o obj/lib/std/intparse.o obj/lib/std/traits.o obj/lib/std/mkpath.o obj/lib/std/option.o obj/lib/std/dial.o obj/lib/std/errno.o obj/lib/std/chartype.o obj/lib/std/bigint.o obj/lib/std/bitset.o obj/lib/std/getbp.o obj/lib/std/slcp.o obj/lib/std/execvp.o
+ $pwd/muse/muse -o obj/lib/std/libstd.use -p std obj/lib/std/resolve.use obj/lib/std/intfmt.use obj/lib/std/result.use obj/lib/std/try.use obj/lib/std/ipparse.use obj/lib/std/alloc.use obj/lib/std/sleq.use obj/lib/std/putint.use obj/lib/std/sljoin.use obj/lib/std/slpop.use obj/lib/std/syswrap.use obj/lib/std/getint.use obj/lib/std/strsplit.use obj/lib/std/slfill.use obj/lib/std/writeall.use obj/lib/std/fltfmt.use obj/lib/std/hasprefix.use obj/lib/std/swap.use obj/lib/std/fmt.use obj/lib/std/netaddr.use obj/lib/std/varargs.use obj/lib/std/diriter.use obj/lib/std/getcwd.use obj/lib/std/blat.use obj/lib/std/optparse.use obj/lib/std/pathjoin.use obj/lib/std/readall.use obj/lib/std/strjoin.use obj/lib/std/threadhooks.use obj/lib/std/sjlj.use obj/lib/std/extremum.use obj/lib/std/endian.use obj/lib/std/rand.use obj/lib/std/sldup.use obj/lib/std/sleep.use obj/lib/std/wait.use obj/lib/std/introspect.use obj/lib/std/fltparse.use obj/lib/std/fndup.use obj/lib/std/strbuf.use obj/lib/std/strreplace.use obj/lib/std/assert.use obj/lib/std/spork.use obj/lib/std/slpush.use obj/lib/std/strstrip.use obj/lib/std/htab.use obj/lib/std/hashfuncs.use obj/lib/std/slput.use obj/lib/std/fltbits.use obj/lib/std/striter.use obj/lib/std/types.use obj/lib/std/cstrconv.use obj/lib/std/units.use obj/lib/std/backtrace.use obj/lib/std/syswrap-ss.use obj/lib/std/die.use obj/lib/std/mk.use obj/lib/std/hassuffix.use obj/lib/std/pledge.use obj/lib/std/utf.use obj/lib/std/slurp.use obj/lib/std/dialparse.use obj/lib/std/bytealloc.use obj/lib/std/mktemp.use obj/lib/std/consts.use obj/lib/std/chomp.use obj/lib/std/dir.use obj/lib/std/search.use obj/lib/std/memops.use obj/lib/std/fmtfuncs.use obj/lib/std/strfind.use obj/lib/std/env.use obj/lib/std/dirname.use obj/lib/std/clear.use obj/lib/std/listen.use obj/lib/std/sort.use obj/lib/std/cmp.use obj/lib/std/now.use obj/lib/std/intparse.use obj/lib/std/traits.use obj/lib/std/mkpath.use obj/lib/std/option.use obj/lib/std/dial.use obj/lib/std/errno.use obj/lib/std/chartype.use obj/lib/std/bigint.use obj/lib/std/bitset.use obj/lib/std/slcp.use obj/lib/std/execvp.use
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std -I obj/lib/bio -I obj/lib/regex -I obj/lib/thread mbld/types.myr
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std lib/regex/types.myr
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std lib/regex/interp.myr
diff --git a/mk/bootstrap/bootstrap+OpenBSD-amd64.sh b/mk/bootstrap/bootstrap+OpenBSD-amd64.sh
index 00b0328..5f1a9f0 100755
--- a/mk/bootstrap/bootstrap+OpenBSD-amd64.sh
+++ b/mk/bootstrap/bootstrap+OpenBSD-amd64.sh
@@ -89,9 +89,9 @@ set -x
$pwd/6/6m -O obj -I obj/lib/sys lib/std/slpush.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/striter.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/intparse.myr
- $pwd/6/6m -O obj -I obj/lib/sys lib/std/intfmt.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/strsplit.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/strbuf.myr
+ $pwd/6/6m -O obj -I obj/lib/sys lib/std/intfmt.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/sldup.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/bigint.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/fltparse.myr
@@ -129,8 +129,8 @@ set -x
$pwd/6/6m -O obj -I obj/lib/sys lib/std/dial+posixy.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/listen+posixy.myr
$pwd/6/6m -O obj -I obj/lib/sys lib/std/try.myr
- ar -rcs obj/lib/std/libstd.a obj/lib/std/resolve.o obj/lib/std/result.o obj/lib/std/try.o obj/lib/std/ipparse.o obj/lib/std/alloc.o obj/lib/std/sleq.o obj/lib/std/putint.o obj/lib/std/sljoin.o obj/lib/std/slpop.o obj/lib/std/syswrap.o obj/lib/std/getint.o obj/lib/std/strsplit.o obj/lib/std/slfill.o obj/lib/std/writeall.o obj/lib/std/fltfmt.o obj/lib/std/hasprefix.o obj/lib/std/swap.o obj/lib/std/fmt.o obj/lib/std/netaddr.o obj/lib/std/varargs.o obj/lib/std/diriter.o obj/lib/std/getcwd.o obj/lib/std/blat.o obj/lib/std/optparse.o obj/lib/std/pathjoin.o obj/lib/std/readall.o obj/lib/std/strjoin.o obj/lib/std/threadhooks.o obj/lib/std/sjlj.o obj/lib/std/extremum.o obj/lib/std/endian.o obj/lib/std/rand.o obj/lib/std/sldup.o obj/lib/std/sleep.o obj/lib/std/wait.o obj/lib/std/introspect.o obj/lib/std/fltparse.o obj/lib/std/fndup.o obj/lib/std/strbuf.o obj/lib/std/strreplace.o obj/lib/std/assert.o obj/lib/std/spork.o obj/lib/std/slpush.o obj/lib/std/strstrip.o obj/lib/std/htab.o obj/lib/std/hashfuncs.o obj/lib/std/slput.o obj/lib/std/sjlj-impl.o obj/lib/std/fltbits.o obj/lib/std/striter.o obj/lib/std/types.o obj/lib/std/cstrconv.o obj/lib/std/units.o obj/lib/std/backtrace.o obj/lib/std/syswrap-ss.o obj/lib/std/die.o obj/lib/std/mk.o obj/lib/std/hassuffix.o obj/lib/std/memops-impl.o obj/lib/std/pledge.o obj/lib/std/utf.o obj/lib/std/slurp.o obj/lib/std/dialparse.o obj/lib/std/bytealloc.o obj/lib/std/mktemp.o obj/lib/std/consts.o obj/lib/std/chomp.o obj/lib/std/dir.o obj/lib/std/search.o obj/lib/std/memops.o obj/lib/std/fmtfuncs.o obj/lib/std/strfind.o obj/lib/std/env.o obj/lib/std/dirname.o obj/lib/std/clear.o obj/lib/std/listen.o obj/lib/std/sort.o obj/lib/std/cmp.o obj/lib/std/now.o obj/lib/std/intparse.o obj/lib/std/traits.o obj/lib/std/mkpath.o obj/lib/std/option.o obj/lib/std/dial.o obj/lib/std/errno.o obj/lib/std/chartype.o obj/lib/std/bigint.o obj/lib/std/bitset.o obj/lib/std/getbp.o obj/lib/std/slcp.o obj/lib/std/execvp.o
- $pwd/muse/muse -o obj/lib/std/libstd.use -p std obj/lib/std/resolve.use obj/lib/std/result.use obj/lib/std/try.use obj/lib/std/ipparse.use obj/lib/std/alloc.use obj/lib/std/sleq.use obj/lib/std/putint.use obj/lib/std/sljoin.use obj/lib/std/slpop.use obj/lib/std/syswrap.use obj/lib/std/getint.use obj/lib/std/strsplit.use obj/lib/std/slfill.use obj/lib/std/writeall.use obj/lib/std/fltfmt.use obj/lib/std/hasprefix.use obj/lib/std/swap.use obj/lib/std/fmt.use obj/lib/std/netaddr.use obj/lib/std/varargs.use obj/lib/std/diriter.use obj/lib/std/getcwd.use obj/lib/std/blat.use obj/lib/std/optparse.use obj/lib/std/pathjoin.use obj/lib/std/readall.use obj/lib/std/strjoin.use obj/lib/std/threadhooks.use obj/lib/std/sjlj.use obj/lib/std/extremum.use obj/lib/std/endian.use obj/lib/std/rand.use obj/lib/std/sldup.use obj/lib/std/sleep.use obj/lib/std/wait.use obj/lib/std/introspect.use obj/lib/std/fltparse.use obj/lib/std/fndup.use obj/lib/std/strbuf.use obj/lib/std/strreplace.use obj/lib/std/assert.use obj/lib/std/spork.use obj/lib/std/slpush.use obj/lib/std/strstrip.use obj/lib/std/htab.use obj/lib/std/hashfuncs.use obj/lib/std/slput.use obj/lib/std/fltbits.use obj/lib/std/striter.use obj/lib/std/types.use obj/lib/std/cstrconv.use obj/lib/std/units.use obj/lib/std/backtrace.use obj/lib/std/syswrap-ss.use obj/lib/std/die.use obj/lib/std/mk.use obj/lib/std/hassuffix.use obj/lib/std/pledge.use obj/lib/std/utf.use obj/lib/std/slurp.use obj/lib/std/dialparse.use obj/lib/std/bytealloc.use obj/lib/std/mktemp.use obj/lib/std/consts.use obj/lib/std/chomp.use obj/lib/std/dir.use obj/lib/std/search.use obj/lib/std/memops.use obj/lib/std/fmtfuncs.use obj/lib/std/strfind.use obj/lib/std/env.use obj/lib/std/dirname.use obj/lib/std/clear.use obj/lib/std/listen.use obj/lib/std/sort.use obj/lib/std/cmp.use obj/lib/std/now.use obj/lib/std/intparse.use obj/lib/std/traits.use obj/lib/std/mkpath.use obj/lib/std/option.use obj/lib/std/dial.use obj/lib/std/errno.use obj/lib/std/chartype.use obj/lib/std/bigint.use obj/lib/std/bitset.use obj/lib/std/slcp.use obj/lib/std/execvp.use
+ ar -rcs obj/lib/std/libstd.a obj/lib/std/resolve.o obj/lib/std/intfmt.o obj/lib/std/result.o obj/lib/std/try.o obj/lib/std/ipparse.o obj/lib/std/alloc.o obj/lib/std/sleq.o obj/lib/std/putint.o obj/lib/std/sljoin.o obj/lib/std/slpop.o obj/lib/std/syswrap.o obj/lib/std/getint.o obj/lib/std/strsplit.o obj/lib/std/slfill.o obj/lib/std/writeall.o obj/lib/std/fltfmt.o obj/lib/std/hasprefix.o obj/lib/std/swap.o obj/lib/std/fmt.o obj/lib/std/netaddr.o obj/lib/std/varargs.o obj/lib/std/diriter.o obj/lib/std/getcwd.o obj/lib/std/blat.o obj/lib/std/optparse.o obj/lib/std/pathjoin.o obj/lib/std/readall.o obj/lib/std/strjoin.o obj/lib/std/threadhooks.o obj/lib/std/sjlj.o obj/lib/std/extremum.o obj/lib/std/endian.o obj/lib/std/rand.o obj/lib/std/sldup.o obj/lib/std/sleep.o obj/lib/std/wait.o obj/lib/std/introspect.o obj/lib/std/fltparse.o obj/lib/std/fndup.o obj/lib/std/strbuf.o obj/lib/std/strreplace.o obj/lib/std/assert.o obj/lib/std/spork.o obj/lib/std/slpush.o obj/lib/std/strstrip.o obj/lib/std/htab.o obj/lib/std/hashfuncs.o obj/lib/std/slput.o obj/lib/std/sjlj-impl.o obj/lib/std/fltbits.o obj/lib/std/striter.o obj/lib/std/types.o obj/lib/std/cstrconv.o obj/lib/std/units.o obj/lib/std/backtrace.o obj/lib/std/syswrap-ss.o obj/lib/std/die.o obj/lib/std/mk.o obj/lib/std/hassuffix.o obj/lib/std/memops-impl.o obj/lib/std/pledge.o obj/lib/std/utf.o obj/lib/std/slurp.o obj/lib/std/dialparse.o obj/lib/std/bytealloc.o obj/lib/std/mktemp.o obj/lib/std/consts.o obj/lib/std/chomp.o obj/lib/std/dir.o obj/lib/std/search.o obj/lib/std/memops.o obj/lib/std/fmtfuncs.o obj/lib/std/strfind.o obj/lib/std/env.o obj/lib/std/dirname.o obj/lib/std/clear.o obj/lib/std/listen.o obj/lib/std/sort.o obj/lib/std/cmp.o obj/lib/std/now.o obj/lib/std/intparse.o obj/lib/std/traits.o obj/lib/std/mkpath.o obj/lib/std/option.o obj/lib/std/dial.o obj/lib/std/errno.o obj/lib/std/chartype.o obj/lib/std/bigint.o obj/lib/std/bitset.o obj/lib/std/getbp.o obj/lib/std/slcp.o obj/lib/std/execvp.o
+ $pwd/muse/muse -o obj/lib/std/libstd.use -p std obj/lib/std/resolve.use obj/lib/std/intfmt.use obj/lib/std/result.use obj/lib/std/try.use obj/lib/std/ipparse.use obj/lib/std/alloc.use obj/lib/std/sleq.use obj/lib/std/putint.use obj/lib/std/sljoin.use obj/lib/std/slpop.use obj/lib/std/syswrap.use obj/lib/std/getint.use obj/lib/std/strsplit.use obj/lib/std/slfill.use obj/lib/std/writeall.use obj/lib/std/fltfmt.use obj/lib/std/hasprefix.use obj/lib/std/swap.use obj/lib/std/fmt.use obj/lib/std/netaddr.use obj/lib/std/varargs.use obj/lib/std/diriter.use obj/lib/std/getcwd.use obj/lib/std/blat.use obj/lib/std/optparse.use obj/lib/std/pathjoin.use obj/lib/std/readall.use obj/lib/std/strjoin.use obj/lib/std/threadhooks.use obj/lib/std/sjlj.use obj/lib/std/extremum.use obj/lib/std/endian.use obj/lib/std/rand.use obj/lib/std/sldup.use obj/lib/std/sleep.use obj/lib/std/wait.use obj/lib/std/introspect.use obj/lib/std/fltparse.use obj/lib/std/fndup.use obj/lib/std/strbuf.use obj/lib/std/strreplace.use obj/lib/std/assert.use obj/lib/std/spork.use obj/lib/std/slpush.use obj/lib/std/strstrip.use obj/lib/std/htab.use obj/lib/std/hashfuncs.use obj/lib/std/slput.use obj/lib/std/fltbits.use obj/lib/std/striter.use obj/lib/std/types.use obj/lib/std/cstrconv.use obj/lib/std/units.use obj/lib/std/backtrace.use obj/lib/std/syswrap-ss.use obj/lib/std/die.use obj/lib/std/mk.use obj/lib/std/hassuffix.use obj/lib/std/pledge.use obj/lib/std/utf.use obj/lib/std/slurp.use obj/lib/std/dialparse.use obj/lib/std/bytealloc.use obj/lib/std/mktemp.use obj/lib/std/consts.use obj/lib/std/chomp.use obj/lib/std/dir.use obj/lib/std/search.use obj/lib/std/memops.use obj/lib/std/fmtfuncs.use obj/lib/std/strfind.use obj/lib/std/env.use obj/lib/std/dirname.use obj/lib/std/clear.use obj/lib/std/listen.use obj/lib/std/sort.use obj/lib/std/cmp.use obj/lib/std/now.use obj/lib/std/intparse.use obj/lib/std/traits.use obj/lib/std/mkpath.use obj/lib/std/option.use obj/lib/std/dial.use obj/lib/std/errno.use obj/lib/std/chartype.use obj/lib/std/bigint.use obj/lib/std/bitset.use obj/lib/std/slcp.use obj/lib/std/execvp.use
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std -I obj/lib/bio -I obj/lib/regex -I obj/lib/thread mbld/types.myr
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std lib/regex/types.myr
$pwd/6/6m -O obj -I obj/lib/sys -I obj/lib/std lib/regex/interp.myr
diff --git a/mk/bootstrap/bootstrap+Plan9-amd64.sh b/mk/bootstrap/bootstrap+Plan9-amd64.sh
index 4b6ad1a..1b6346b 100755
--- a/mk/bootstrap/bootstrap+Plan9-amd64.sh
+++ b/mk/bootstrap/bootstrap+Plan9-amd64.sh
@@ -85,9 +85,9 @@ set -x
$pwd/6/6.out -O obj -I obj/lib/sys lib/std/slpush.myr
$pwd/6/6.out -O obj -I obj/lib/sys lib/std/striter.myr
$pwd/6/6.out -O obj -I obj/lib/sys lib/std/intparse.myr
- $pwd/6/6.out -O obj -I obj/lib/sys lib/std/intfmt.myr
$pwd/6/6.out -O obj -I obj/lib/sys lib/std/strsplit.myr
$pwd/6/6.out -O obj -I obj/lib/sys lib/std/strbuf.myr
+ $pwd/6/6.out -O obj -I obj/lib/sys lib/std/intfmt.myr
$pwd/6/6.out -O obj -I obj/lib/sys lib/std/sldup.myr
$pwd/6/6.out -O obj -I obj/lib/sys lib/std/bigint.myr
$pwd/6/6.out -O obj -I obj/lib/sys lib/std/fltparse.myr
@@ -124,8 +124,8 @@ set -x
$pwd/6/6.out -O obj -I obj/lib/sys lib/std/ipparse.myr
$pwd/6/6.out -O obj -I obj/lib/sys lib/std/fmtfuncs.myr
$pwd/6/6.out -O obj -I obj/lib/sys lib/std/try.myr
- ar u obj/lib/std/libstd.a obj/lib/std/resolve.6 obj/lib/std/result.6 obj/lib/std/try.6 obj/lib/std/ipparse.6 obj/lib/std/alloc.6 obj/lib/std/sleq.6 obj/lib/std/putint.6 obj/lib/std/sljoin.6 obj/lib/std/slpop.6 obj/lib/std/syswrap.6 obj/lib/std/getint.6 obj/lib/std/strsplit.6 obj/lib/std/slfill.6 obj/lib/std/writeall.6 obj/lib/std/fltfmt.6 obj/lib/std/hasprefix.6 obj/lib/std/swap.6 obj/lib/std/fmt.6 obj/lib/std/netaddr.6 obj/lib/std/varargs.6 obj/lib/std/diriter.6 obj/lib/std/getcwd.6 obj/lib/std/blat.6 obj/lib/std/optparse.6 obj/lib/std/pathjoin.6 obj/lib/std/readall.6 obj/lib/std/strjoin.6 obj/lib/std/threadhooks.6 obj/lib/std/sjlj.6 obj/lib/std/extremum.6 obj/lib/std/endian.6 obj/lib/std/rand.6 obj/lib/std/sldup.6 obj/lib/std/sleep.6 obj/lib/std/wait.6 obj/lib/std/introspect.6 obj/lib/std/fltparse.6 obj/lib/std/fndup.6 obj/lib/std/strbuf.6 obj/lib/std/strreplace.6 obj/lib/std/assert.6 obj/lib/std/spork.6 obj/lib/std/slpush.6 obj/lib/std/strstrip.6 obj/lib/std/htab.6 obj/lib/std/hashfuncs.6 obj/lib/std/slput.6 obj/lib/std/sjlj-impl.6 obj/lib/std/fltbits.6 obj/lib/std/striter.6 obj/lib/std/types.6 obj/lib/std/cstrconv.6 obj/lib/std/units.6 obj/lib/std/backtrace.6 obj/lib/std/syswrap-ss.6 obj/lib/std/die.6 obj/lib/std/mk.6 obj/lib/std/hassuffix.6 obj/lib/std/memops-impl.6 obj/lib/std/pledge.6 obj/lib/std/utf.6 obj/lib/std/slurp.6 obj/lib/std/bytealloc.6 obj/lib/std/mktemp.6 obj/lib/std/consts.6 obj/lib/std/chomp.6 obj/lib/std/dir.6 obj/lib/std/search.6 obj/lib/std/memops.6 obj/lib/std/fmtfuncs.6 obj/lib/std/strfind.6 obj/lib/std/env.6 obj/lib/std/dirname.6 obj/lib/std/clear.6 obj/lib/std/listen.6 obj/lib/std/sort.6 obj/lib/std/cmp.6 obj/lib/std/now.6 obj/lib/std/intparse.6 obj/lib/std/traits.6 obj/lib/std/mkpath.6 obj/lib/std/option.6 obj/lib/std/dial.6 obj/lib/std/errno.6 obj/lib/std/chartype.6 obj/lib/std/bigint.6 obj/lib/std/bitset.6 obj/lib/std/getbp.6 obj/lib/std/slcp.6 obj/lib/std/execvp.6
- $pwd/muse/6.out -o obj/lib/std/libstd.use -p std obj/lib/std/resolve.use obj/lib/std/result.use obj/lib/std/try.use obj/lib/std/ipparse.use obj/lib/std/alloc.use obj/lib/std/sleq.use obj/lib/std/putint.use obj/lib/std/sljoin.use obj/lib/std/slpop.use obj/lib/std/syswrap.use obj/lib/std/getint.use obj/lib/std/strsplit.use obj/lib/std/slfill.use obj/lib/std/writeall.use obj/lib/std/fltfmt.use obj/lib/std/hasprefix.use obj/lib/std/swap.use obj/lib/std/fmt.use obj/lib/std/netaddr.use obj/lib/std/varargs.use obj/lib/std/diriter.use obj/lib/std/getcwd.use obj/lib/std/blat.use obj/lib/std/optparse.use obj/lib/std/pathjoin.use obj/lib/std/readall.use obj/lib/std/strjoin.use obj/lib/std/threadhooks.use obj/lib/std/sjlj.use obj/lib/std/extremum.use obj/lib/std/endian.use obj/lib/std/rand.use obj/lib/std/sldup.use obj/lib/std/sleep.use obj/lib/std/wait.use obj/lib/std/introspect.use obj/lib/std/fltparse.use obj/lib/std/fndup.use obj/lib/std/strbuf.use obj/lib/std/strreplace.use obj/lib/std/assert.use obj/lib/std/spork.use obj/lib/std/slpush.use obj/lib/std/strstrip.use obj/lib/std/htab.use obj/lib/std/hashfuncs.use obj/lib/std/slput.use obj/lib/std/fltbits.use obj/lib/std/striter.use obj/lib/std/types.use obj/lib/std/cstrconv.use obj/lib/std/units.use obj/lib/std/backtrace.use obj/lib/std/syswrap-ss.use obj/lib/std/die.use obj/lib/std/mk.use obj/lib/std/hassuffix.use obj/lib/std/pledge.use obj/lib/std/utf.use obj/lib/std/slurp.use obj/lib/std/bytealloc.use obj/lib/std/mktemp.use obj/lib/std/consts.use obj/lib/std/chomp.use obj/lib/std/dir.use obj/lib/std/search.use obj/lib/std/memops.use obj/lib/std/fmtfuncs.use obj/lib/std/strfind.use obj/lib/std/env.use obj/lib/std/dirname.use obj/lib/std/clear.use obj/lib/std/listen.use obj/lib/std/sort.use obj/lib/std/cmp.use obj/lib/std/now.use obj/lib/std/intparse.use obj/lib/std/traits.use obj/lib/std/mkpath.use obj/lib/std/option.use obj/lib/std/dial.use obj/lib/std/errno.use obj/lib/std/chartype.use obj/lib/std/bigint.use obj/lib/std/bitset.use obj/lib/std/slcp.use obj/lib/std/execvp.use
+ ar u obj/lib/std/libstd.a obj/lib/std/resolve.6 obj/lib/std/intfmt.6 obj/lib/std/result.6 obj/lib/std/try.6 obj/lib/std/ipparse.6 obj/lib/std/alloc.6 obj/lib/std/sleq.6 obj/lib/std/putint.6 obj/lib/std/sljoin.6 obj/lib/std/slpop.6 obj/lib/std/syswrap.6 obj/lib/std/getint.6 obj/lib/std/strsplit.6 obj/lib/std/slfill.6 obj/lib/std/writeall.6 obj/lib/std/fltfmt.6 obj/lib/std/hasprefix.6 obj/lib/std/swap.6 obj/lib/std/fmt.6 obj/lib/std/netaddr.6 obj/lib/std/varargs.6 obj/lib/std/diriter.6 obj/lib/std/getcwd.6 obj/lib/std/blat.6 obj/lib/std/optparse.6 obj/lib/std/pathjoin.6 obj/lib/std/readall.6 obj/lib/std/strjoin.6 obj/lib/std/threadhooks.6 obj/lib/std/sjlj.6 obj/lib/std/extremum.6 obj/lib/std/endian.6 obj/lib/std/rand.6 obj/lib/std/sldup.6 obj/lib/std/sleep.6 obj/lib/std/wait.6 obj/lib/std/introspect.6 obj/lib/std/fltparse.6 obj/lib/std/fndup.6 obj/lib/std/strbuf.6 obj/lib/std/strreplace.6 obj/lib/std/assert.6 obj/lib/std/spork.6 obj/lib/std/slpush.6 obj/lib/std/strstrip.6 obj/lib/std/htab.6 obj/lib/std/hashfuncs.6 obj/lib/std/slput.6 obj/lib/std/sjlj-impl.6 obj/lib/std/fltbits.6 obj/lib/std/striter.6 obj/lib/std/types.6 obj/lib/std/cstrconv.6 obj/lib/std/units.6 obj/lib/std/backtrace.6 obj/lib/std/syswrap-ss.6 obj/lib/std/die.6 obj/lib/std/mk.6 obj/lib/std/hassuffix.6 obj/lib/std/memops-impl.6 obj/lib/std/pledge.6 obj/lib/std/utf.6 obj/lib/std/slurp.6 obj/lib/std/bytealloc.6 obj/lib/std/mktemp.6 obj/lib/std/consts.6 obj/lib/std/chomp.6 obj/lib/std/dir.6 obj/lib/std/search.6 obj/lib/std/memops.6 obj/lib/std/fmtfuncs.6 obj/lib/std/strfind.6 obj/lib/std/env.6 obj/lib/std/dirname.6 obj/lib/std/clear.6 obj/lib/std/listen.6 obj/lib/std/sort.6 obj/lib/std/cmp.6 obj/lib/std/now.6 obj/lib/std/intparse.6 obj/lib/std/traits.6 obj/lib/std/mkpath.6 obj/lib/std/option.6 obj/lib/std/dial.6 obj/lib/std/errno.6 obj/lib/std/chartype.6 obj/lib/std/bigint.6 obj/lib/std/bitset.6 obj/lib/std/getbp.6 obj/lib/std/slcp.6 obj/lib/std/execvp.6
+ $pwd/muse/6.out -o obj/lib/std/libstd.use -p std obj/lib/std/resolve.use obj/lib/std/intfmt.use obj/lib/std/result.use obj/lib/std/try.use obj/lib/std/ipparse.use obj/lib/std/alloc.use obj/lib/std/sleq.use obj/lib/std/putint.use obj/lib/std/sljoin.use obj/lib/std/slpop.use obj/lib/std/syswrap.use obj/lib/std/getint.use obj/lib/std/strsplit.use obj/lib/std/slfill.use obj/lib/std/writeall.use obj/lib/std/fltfmt.use obj/lib/std/hasprefix.use obj/lib/std/swap.use obj/lib/std/fmt.use obj/lib/std/netaddr.use obj/lib/std/varargs.use obj/lib/std/diriter.use obj/lib/std/getcwd.use obj/lib/std/blat.use obj/lib/std/optparse.use obj/lib/std/pathjoin.use obj/lib/std/readall.use obj/lib/std/strjoin.use obj/lib/std/threadhooks.use obj/lib/std/sjlj.use obj/lib/std/extremum.use obj/lib/std/endian.use obj/lib/std/rand.use obj/lib/std/sldup.use obj/lib/std/sleep.use obj/lib/std/wait.use obj/lib/std/introspect.use obj/lib/std/fltparse.use obj/lib/std/fndup.use obj/lib/std/strbuf.use obj/lib/std/strreplace.use obj/lib/std/assert.use obj/lib/std/spork.use obj/lib/std/slpush.use obj/lib/std/strstrip.use obj/lib/std/htab.use obj/lib/std/hashfuncs.use obj/lib/std/slput.use obj/lib/std/fltbits.use obj/lib/std/striter.use obj/lib/std/types.use obj/lib/std/cstrconv.use obj/lib/std/units.use obj/lib/std/backtrace.use obj/lib/std/syswrap-ss.use obj/lib/std/die.use obj/lib/std/mk.use obj/lib/std/hassuffix.use obj/lib/std/pledge.use obj/lib/std/utf.use obj/lib/std/slurp.use obj/lib/std/bytealloc.use obj/lib/std/mktemp.use obj/lib/std/consts.use obj/lib/std/chomp.use obj/lib/std/dir.use obj/lib/std/search.use obj/lib/std/memops.use obj/lib/std/fmtfuncs.use obj/lib/std/strfind.use obj/lib/std/env.use obj/lib/std/dirname.use obj/lib/std/clear.use obj/lib/std/listen.use obj/lib/std/sort.use obj/lib/std/cmp.use obj/lib/std/now.use obj/lib/std/intparse.use obj/lib/std/traits.use obj/lib/std/mkpath.use obj/lib/std/option.use obj/lib/std/dial.use obj/lib/std/errno.use obj/lib/std/chartype.use obj/lib/std/bigint.use obj/lib/std/bitset.use obj/lib/std/slcp.use obj/lib/std/execvp.use
$pwd/6/6.out -O obj -I obj/lib/sys -I obj/lib/std -I obj/lib/bio -I obj/lib/regex -I obj/lib/thread mbld/types.myr
$pwd/6/6.out -O obj -I obj/lib/sys -I obj/lib/std lib/regex/types.myr
$pwd/6/6.out -O obj -I obj/lib/sys -I obj/lib/std lib/regex/interp.myr
diff --git a/parse/fold.c b/parse/fold.c
index 2518a4b..4094c49 100644
--- a/parse/fold.c
+++ b/parse/fold.c
@@ -247,6 +247,9 @@ fold(Node *n, int foldvar)
if (t->type == Tyarray && !strcmp(namestr(args[1]), "len")) {
r = t->asize;
r->expr.type = exprtype(n);
+ } else if (t->type == Tyunion && !strcmp(namestr(args[1]), "tag")) {
+ r = mkexpr(n->loc, Outag, args[0], NULL);
+ r->expr.type = mktype(n->loc, Tyint32);
}
break;
case Oarr:
diff --git a/parse/gram.y b/parse/gram.y
index a5151fd..8e8e51b 100644
--- a/parse/gram.y
+++ b/parse/gram.y
@@ -936,7 +936,7 @@ params : fnparam {
$$.nn = 0;
lappend(&$$.nl, &$$.nn, $1);
}
- | params Tcomma fnparam {lappend(&$$.nl, &$$.nn, $3);}
+ | params listsep fnparam {lappend(&$$.nl, &$$.nn, $3);}
| /* empty */ {$$.nl = NULL; $$.nn = 0;}
;
diff --git a/parse/infer.c b/parse/infer.c
index 6415cb3..79e45cf 100644
--- a/parse/infer.c
+++ b/parse/infer.c
@@ -1531,16 +1531,19 @@ inferpat(Node **np, Node *val, Node ***bind, size_t *nbind)
n = *np;
n = checkns(n, np);
+ n->expr.ispat = 1;
args = n->expr.args;
for (i = 0; i < n->expr.nargs; i++)
- if (args[i]->type == Nexpr)
+ if (args[i]->type == Nexpr) {
inferpat(&args[i], val, bind, nbind);
+ }
switch (exprop(n)) {
case Otup:
case Ostruct:
case Oarr:
case Olit:
case Omemb:
+ case Olor:
infernode(np, NULL, NULL);
break;
/* arithmetic expressions just need to be constant */
@@ -1576,11 +1579,23 @@ inferpat(Node **np, Node *val, Node ***bind, size_t *nbind)
fatal(n, "pattern shadows variable declared on %s:%d near %s",
fname(s->loc), lnum(s->loc), ctxstr(s));
} else {
- t = mktyvar(n->loc);
- s = mkdecl(n->loc, n->expr.args[0], t);
- s->decl.init = val;
- settype(n, t);
- lappend(bind, nbind, s);
+ /* Scan the already collected bound variables in the pattern of this match case.
+ * If a bound variable with the same name is found, assign the variable the existing decl.
+ * Otherwise, create a new decl for the variable */
+ s = NULL;
+ for (i = 0; !s && i < *nbind; i++)
+ if (nameeq(args[0], (*bind)[i]->decl.name))
+ s = (*bind)[i];
+
+ if (s) {
+ t = s->decl.type;
+ } else {
+ t = mktyvar(n->loc);
+ s = mkdecl(n->loc, n->expr.args[0], t);
+ s->decl.init = val;
+ settype(n, t);
+ lappend(bind, nbind, s);
+ }
}
settype(n, t);
n->expr.did = s->decl.did;
@@ -1722,6 +1737,15 @@ inferexpr(Node **np, Type *ret, int *sawret)
/* operands same type, returning bool */
case Olor: /* @a || @b -> bool */
+ if (n->expr.ispat) {
+ infersub(n, ret, sawret, &isconst);
+ t = type(args[0]);
+ for (i = 1; i < nargs; i++)
+ t = unify(n, t, type(args[i]));
+ n->expr.isconst = isconst;
+ settype(n, t);
+ break;
+ }
case Oland: /* @a && @b -> bool */
case Oeq: /* @a == @a -> bool */
case One: /* @a != @a -> bool */
@@ -2293,6 +2317,12 @@ infercompn(Node *n, Postcheck ***post, size_t *npost)
constrain(n, type(n), traittab[Tcint]);
found = 1;
}
+ } else if (ismemb && t->type == Tyunion) {
+ if (!strcmp(namestr(memb), "tag")) {
+ constrain(n, type(n), traittab[Tcnum]);
+ constrain(n, type(n), traittab[Tcint]);
+ found = 1;
+ }
} else {
if (tybase(t)->type == Typtr)
t = tybase(tf(t->sub[0]));
@@ -2540,18 +2570,22 @@ checkrange(Node *n)
int64_t sval;
uint64_t uval;
static const int64_t svranges[][2] = {
- /* signed ints */
- [Tyint8] = {-128LL, 127LL}, [Tyint16] = {-32768LL, 32767LL},
- /* FIXME: this has been doubled allow for uints... */
- [Tyint32] = {-2147483648LL, 2 * 2147483647LL},
- [Tyint] = {-2147483648LL, 2 * 2147483647LL},
- [Tyint64] = {-9223372036854775808ULL, 9223372036854775807LL},
+ /* signed ints; allow one above max range for unary -'ve operator */
+ [Tyint8] = {-128LL, 128LL},
+ [Tyint16] = {-32768LL, 32768LL},
+ [Tyint32] = {-2147483648LL, 2147483648LL},
+ [Tyint] = {-2147483648LL, 2147483648LL},
+ [Tyint64] = {-9223372036854775808ULL, 9223372036854775807ULL},
};
static const uint64_t uvranges[][2] = {
- [Tybyte] = {0, 255ULL}, [Tyuint8] = {0, 255ULL}, [Tyuint16] = {0, 65535ULL},
- [Tyuint32] = {0, 4294967295ULL}, [Tyuint64] = {0, 18446744073709551615ULL},
- [Tychar] = {0, 4294967295ULL},
+ [Tybyte] = {0, 255ULL},
+ [Tyuint8] = {0, 255ULL},
+ [Tyuint16] = {0, 65535ULL},
+ [Tyuint] = {0, 4294967295ULL},
+ [Tyuint32] = {0, 4294967295ULL},
+ [Tyuint64] = {0, 18446744073709551615ULL},
+ [Tychar] = {0, 4294967295ULL},
};
/* signed types */
@@ -2560,7 +2594,7 @@ checkrange(Node *n)
sval = n->lit.intval;
if (sval < svranges[t->type][0] || sval > svranges[t->type][1])
fatal(n, "literal value %lld out of range for type \"%s\"", sval, tystr(t));
- } else if ((t->type >= Tybyte && t->type <= Tyint64) || t->type == Tychar) {
+ } else if ((t->type >= Tybyte && t->type <= Tyuint64) || t->type == Tychar) {
uval = n->lit.intval;
if (uval < uvranges[t->type][0] || uval > uvranges[t->type][1])
fatal(n, "literal value %llu out of range for type \"%s\"", uval, tystr(t));
diff --git a/parse/node.c b/parse/node.c
index bf40143..b3cef6c 100644
--- a/parse/node.c
+++ b/parse/node.c
@@ -55,7 +55,7 @@ arraysz(Node *sz)
return 0;
n = fold(sz, 1);
if (exprop(n) != Olit)
- fatal(sz, "too much indirection when finding intializer. (initialization loop?)");
+ fatal(sz, "too much indirection when finding initializer. (initialization loop?)");
n = n->expr.args[0];
if (n->lit.littype != Lint)
diff --git a/parse/parse.h b/parse/parse.h
index 4fbbfa7..e3b402f 100644
--- a/parse/parse.h
+++ b/parse/parse.h
@@ -1,4 +1,4 @@
-#define Abiversion 21
+#define Abiversion 23
typedef struct Srcloc Srcloc;
typedef struct Tysubst Tysubst;
@@ -237,6 +237,7 @@ struct Node {
Type *type;
Type *param; /* for specialized traits, the primary param */
int isconst;
+ int ispat;
size_t did; /* for Ovar, we want a mapping to the decl id */
size_t nargs;
Node *idx; /* used when this is in an indexed initializer */
diff --git a/parse/tok.c b/parse/tok.c
index f4505d5..8b40dc2 100644
--- a/parse/tok.c
+++ b/parse/tok.c
@@ -732,12 +732,14 @@ nextsuffix
:
switch (peek()) {
case 'u':
+ case 'U':
if (unsignedval == 1)
lfatal(curloc, "Duplicate 'u' integer specifier");
next();
unsignedval = 1;
goto nextsuffix;
case 'l':
+ case 'L':
next();
if (unsignedval)
t->inttype = Tyuint64;
@@ -745,6 +747,7 @@ nextsuffix
t->inttype = Tyint64;
break;
case 'i':
+ case 'I':
next();
if (unsignedval)
t->inttype = Tyuint32;
@@ -752,6 +755,7 @@ nextsuffix
t->inttype = Tyint32;
break;
case 's':
+ case 'S':
next();
if (unsignedval)
t->inttype = Tyuint16;
@@ -759,6 +763,7 @@ nextsuffix
t->inttype = Tyint16;
break;
case 'b':
+ case 'B':
next();
if (unsignedval)
t->inttype = Tyuint8;
diff --git a/parse/use.c b/parse/use.c
index b08aced..088e1e7 100644
--- a/parse/use.c
+++ b/parse/use.c
@@ -158,7 +158,7 @@ rducon(FILE *fd, Type *ut)
}
/* Writes the name and type of a variable,
- * but only writes its intializer for thing
+ * but only writes its initializer for thing
* we want to inline cross-file (currently,
* the only cross-file inline is generics) */
static void
@@ -397,7 +397,7 @@ tyunpickle(FILE *fd)
case Tyunres:
ty->name = unpickle(fd);
break;
- case Typaram:
+ case Typaram:
n = rdint(fd);
for (i = 0; i < n; i++)
rdtrait(fd, NULL, ty);
diff --git a/rt/start-freebsd.s b/rt/start-freebsd.s
index b995559..edb7a9b 100644
--- a/rt/start-freebsd.s
+++ b/rt/start-freebsd.s
@@ -1,8 +1,14 @@
.data
/* sys.__cenvp : byte## */
+.globl environ
.globl sys$__cenvp
+environ:
sys$__cenvp:
- .quad 0
+ .quad 0
+
+.globl __progname
+__progname:
+ .quad 0
.globl thread$__tls
thread$__tls:
@@ -25,6 +31,8 @@ _start:
/* load argc, argv, envp from stack */
movq (%rdi),%rax /* argc */
leaq 8(%rdi),%rbx /* argv */
+ movq (%rbx),%rcx /* save progname */
+ movq %rcx,__progname
leaq 16(%rdi,%rax,8),%rcx /* envp = argv + 8*argc + 8 */
/* store envp for some syscalls to use without converting */
diff --git a/support/vim/syntax/myr.vim b/support/vim/syntax/myr.vim
index 84680c5..f1124f0 100644
--- a/support/vim/syntax/myr.vim
+++ b/support/vim/syntax/myr.vim
@@ -6,45 +6,44 @@ if exists("b:current_syntax")
finish
endif
+if exists("myr_color_on")
+ syn keyword myrConditional if elif else match
+ syn keyword myrRepeat while for
+ syn keyword myrStructure generic impl struct trait union type
+ syn keyword myrItem const var extern auto
+ syn keyword myrPackage pkg pkglocal use
+ syn keyword myrControl break continue goto
+ syn keyword myrBool true false
+ syn keyword myrSizeOf sizeof
+ syn match myrTerminate ';;'
+endif
+
syn region myrComment start=+/\*+ end=+\*/+ contains=myrComment
syn region myrComment start=+//+ end=+$+
-syn match myrSpecial display contained "\\\(x\x\+\|\o\{1,3}\|u{[a-zA-Z0-9_]*}\|.\|$\)"
-syn match myrFormat display contained "{[^}]*}"
-syn region myrString start=+"+ skip=+\\"+ end=+"+ contains=myrSpecial,myrFormat extend
-syn region myrChar start=+'+ skip=+\\'+ end=+'+ contains=myrSpecial,myrFormat extend
-syn keyword myrKeyword auto
- \ break
- \ const
- \ continue
- \ elif
- \ else
- \ extern
- \ false
- \ for
- \ generic
- \ goto
- \ if
- \ impl
- \ match
- \ pkg
- \ pkglocal
- \ sizeof
- \ struct
- \ trait
- \ true
- \ type
- \ union
- \ use
- \ var
- \ while
+syn match myrSpecial display contained "\\\(x\x\+\|\o\{1,3}\|u{[a-zA-Z0-9_]*}\|.\|$\)"
+syn match myrFormat display contained "{[^}]*}"
+syn region myrString start=+"+ skip=+\\"+ end=+"+ contains=myrSpecial,myrFormat extend
+syn region myrChar start=+'+ skip=+\\'+ end=+'+ contains=myrSpecial,myrFormat extend
hi def link myrComment Comment
hi def link myrString String
-hi def link myrChar String
+hi def link myrChar String
hi def link myrSpecial Special
hi def link myrFormat Special
+
" Too much color makes my eyes hurt. Just highlight
" the most important and uncommon stuff.
-"hi def link myrKeyword Keyword
+
+if exists("myr_color_on")
+ hi def link myrConditional Conditional
+ hi def link myrRepeat Repeat
+ hi def link myrStructure Structure
+ hi def link myrItem Constant
+ hi def link myrPackage Statement
+ hi def link myrControl Statement
+ hi def link myrBool Constant
+ hi def link myrSizeOf Identifier
+ hi def link myrTerminate SpecialChar
+endif
let b:current_syntax = "myr"
diff --git a/test/abi/001_in-c.glue.c b/test/abi/001_in-c.glue.c
new file mode 100644
index 0000000..a800972
--- /dev/null
+++ b/test/abi/001_in-c.glue.c
@@ -0,0 +1,25 @@
+/* CFLAGS: -I/usr/include/ */
+/* CFLAGS: -I/usr/include */
+/* LIBS: c */
+
+#include <stdint.h>
+#include "001_types.h"
+
+extern t1 fn_1_myr(void);
+
+t1
+fn_1_c(void)
+{
+ return (t1) {.field_1=(t2) {.field_1=249229305184256,.field_2=3.36328125}};
+}
+
+int
+const check_c_to_myr_fns(void)
+{
+ t1 ret_1 = fn_1_myr();
+ if (!(((ret_1.field_1.field_1==249229305184256) && (ret_1.field_1.field_2==3.36328125)))) {
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/test/abi/001_in-c.myr b/test/abi/001_in-c.myr
new file mode 100644
index 0000000..a398aee
--- /dev/null
+++ b/test/abi/001_in-c.myr
@@ -0,0 +1,7 @@
+use std
+use "001_types"
+
+pkg =
+ extern const fn_1_c : ( -> t1)
+ extern const check_c_to_myr_fns : (-> int)
+;;
diff --git a/test/abi/001_in-myr.myr b/test/abi/001_in-myr.myr
new file mode 100644
index 0000000..19c320a
--- /dev/null
+++ b/test/abi/001_in-myr.myr
@@ -0,0 +1,11 @@
+use std
+use "001_types"
+
+pkg =
+ const fn_1_myr : ( -> t1)
+;;
+
+const fn_1_myr = {
+ -> [.field_1=(249229305184256,3.36328125)]
+}
+
diff --git a/test/abi/001_main.myr b/test/abi/001_main.myr
new file mode 100644
index 0000000..fcdc78a
--- /dev/null
+++ b/test/abi/001_main.myr
@@ -0,0 +1,29 @@
+use std
+use "001_types"
+use "001_in-myr"
+use "001_in-c"
+
+const main = {
+ /* myr calling myr */
+ var ret_1 : t1 = fn_1_myr()
+ if !(((ret_1.field_1.0==249229305184256) && (ret_1.field_1.1==3.36328125)))
+ std.put("ret_1 = {}\n", ret_1)
+ std.put("myr_to_myr 1 failed\n")
+ std.exit(1)
+ ;;
+
+ /* myr calling c */
+ ret_1 = fn_1_c()
+ if !(((ret_1.field_1.0==249229305184256) && (ret_1.field_1.1==3.36328125)))
+ std.put("ret_1 = {}\n", ret_1)
+ std.put("myr_to_c 1 failed\n")
+ std.exit(1)
+ ;;
+
+ if !(check_c_to_myr_fns() == 0)
+ std.put("c_to_myr failed\n")
+ std.exit(1)
+ ;;
+
+ std.exit(0)
+}
diff --git a/test/abi/001_types.h b/test/abi/001_types.h
new file mode 100644
index 0000000..9fbaae2
--- /dev/null
+++ b/test/abi/001_types.h
@@ -0,0 +1,2 @@
+typedef struct {uint64_t field_1;double field_2;} t2;
+typedef struct {t2 field_1;} t1;
diff --git a/test/abi/001_types.myr b/test/abi/001_types.myr
new file mode 100644
index 0000000..c059598
--- /dev/null
+++ b/test/abi/001_types.myr
@@ -0,0 +1,5 @@
+pkg =
+ type t1 = struct
+ field_1 : (uint64,flt64)
+ ;;
+;;
diff --git a/test/abi/002_main.myr b/test/abi/002_main.myr
new file mode 100644
index 0000000..2657228
--- /dev/null
+++ b/test/abi/002_main.myr
@@ -0,0 +1,24 @@
+use std
+
+pkg =
+ type foo = struct
+ bar : uint32
+ ;;
+;;
+
+const main = {
+ var a : foo = [.bar = 158747960]
+ call_me(a)
+
+ /*
+ * If argument alignment is not respected, the above will stuff
+ * all eight bytes of %rdi into four bytes of stack, and the
+ * overflow will clobber enough to cause a segfault. Explicitly
+ * exiting via std.exit(0) will mask this failure, however.
+ */
+}
+
+
+const call_me = { a : foo
+ -> void
+}
diff --git a/test/abi/003_main.myr b/test/abi/003_main.myr
new file mode 100644
index 0000000..f5fff3e
--- /dev/null
+++ b/test/abi/003_main.myr
@@ -0,0 +1,78 @@
+use std
+
+pkg =
+ type t1 = struct
+ a : uint64
+ ;;
+ type t2 = struct
+ f : uint8
+ ;;
+ type t3 = struct
+ a : uint64
+ b : uint64
+ ;;
+ type t4 = struct
+ dummy1 : uint8
+ dummy2 : uint8
+ dummy3 : uint8
+ dummy4 : uint8
+ f : uint8
+ ;;
+;;
+
+const main = {
+ var a : t1 = [.a=6]
+ var ret : t2
+
+ /* This one succeeds */
+ ret = fn_10_myr(a)
+
+ /*
+ * This one fails if gencall is too sloppy with the return type.
+ * Since t2 is so small, we might have clobbered the value of a.
+ */
+ ret = fn_10_myr(a)
+
+ if ret.f != 1
+ std.exit(1)
+ ;;
+
+ /*
+ * Now again, for slightly bigger types. This one probably won't
+ * happen due to the way the structs are aligned on stack, no
+ * matter how sloppy gencall gets.
+ */
+ var b : t3 = [ .a = 12, .b = 24 ]
+ var ret2 : t4
+ ret = fn_11_myr(b)
+ ret = fn_11_myr(b)
+
+ if ret.f != 1
+ std.exit(1)
+ ;;
+
+ std.exit(0)
+}
+
+
+const fn_10_myr = { a : t1
+ if a.a != 6
+ goto bad
+ ;;
+
+ -> [.f=1]
+
+:bad
+ -> [.f=2]
+}
+
+const fn_11_myr = { b : t3
+ if b.a != 12 || b.b != 24
+ goto bad
+ ;;
+
+ -> [.f=1]
+
+:bad
+ -> [.f=2]
+}
diff --git a/test/abi/004_in-c.glue.c b/test/abi/004_in-c.glue.c
new file mode 100644
index 0000000..5db8c0d
--- /dev/null
+++ b/test/abi/004_in-c.glue.c
@@ -0,0 +1,443 @@
+/* CFLAGS: -I/usr/include/ */
+/* CFLAGS: -I/usr/include */
+/* LIBS: c */
+
+#include <stdint.h>
+#include "004_types.h"
+
+extern t2 fn_1_myr(double a1);
+extern uint64_t fn_2_myr(double a1, t4 a2, t1 a3, t5 a4);
+extern t13 fn_3_myr(t1 a1, t3 a2, t7 a3, t4 a4, t9 a5, uint8_t a6, float a7, float a8);
+extern t19 fn_4_myr(t16 a1);
+extern t29 fn_5_myr(uint32_t a1, t11 a2, t21 a3, t23 a4, t24 a5, uint32_t a6, double a7, t26 a8, t27 a9, t28 a10);
+extern uint32_t fn_6_myr(t20 a1, t15 a2);
+extern t37 fn_7_myr(double a1, double a2, t31 a3, t21 a4, double a5, float a6, t35 a7, uint64_t a8);
+extern t42 fn_8_myr(t38 a1, t39 a2, double a3, uint8_t a4);
+extern uint64_t fn_9_myr(t46 a1, float a2, t26 a3, t47 a4, t48 a5, t54 a6, uint32_t a7, float a8, t55 a9, t56 a10);
+extern t3 fn_10_myr(uint64_t a1, double a2, t61 a3, uint8_t a4, t62 a5, uint8_t a6, double a7, uint64_t a8);
+
+t2
+fn_1_c(double a1)
+{
+ if (!(a1==-0.26171875)) {
+ goto bad;
+ }
+
+ return (t2) {.field_1=12459410325504,.field_2=98659448520704,.field_3=(t1) {.field_1=166,.field_2=107,.field_3=0.140625,.field_4=92389009653760},.field_4=-3.140625,.field_5=(t1) {.field_1=157,.field_2=191,.field_3=1.125,.field_4=644801363968}};
+
+bad:
+ return (t2) {.field_1=238850629042176,.field_2=48799761170432,.field_3=(t1) {.field_1=120,.field_2=183,.field_3=1.109375,.field_4=182937149505536},.field_4=3.46875,.field_5=(t1) {.field_1=140,.field_2=106,.field_3=-0.4375,.field_4=114576194142208}};
+}
+
+uint64_t
+fn_2_c(double a1, t4 a2, t1 a3, t5 a4)
+{
+ if (!(a1==-3.80078125)) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==2.8203125) && (a2.field_2==1.40625) && ((a2.field_3.field_1==281155744301057) && ((a2.field_3.field_2.field_1==201484396396544) && (a2.field_3.field_2.field_2==167610483867648) && ((a2.field_3.field_2.field_3.field_1==241) && (a2.field_3.field_2.field_3.field_2==67) && (a2.field_3.field_2.field_3.field_3==-1.546875) && (a2.field_3.field_2.field_3.field_4==85217436499968)) && (a2.field_3.field_2.field_4==1.33203125) && ((a2.field_3.field_2.field_5.field_1==115) && (a2.field_3.field_2.field_5.field_2==174) && (a2.field_3.field_2.field_5.field_3==0.578125) && (a2.field_3.field_2.field_5.field_4==108879745908736))) && ((a2.field_3.field_3.field_1==46) && (a2.field_3.field_3.field_2==0) && (a2.field_3.field_3.field_3==0.484375) && (a2.field_3.field_3.field_4==41200816095232)) && (a2.field_3.field_4==1.640625) && (a2.field_3.field_5==4163457034)))) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==179) && (a3.field_2==82) && (a3.field_3==0.796875) && (a3.field_4==149846806626304))) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==132525092503552) && (a4.field_2==-1.3125))) {
+ goto bad;
+ }
+
+ return 132205860093952;
+
+bad:
+ return 224271076950016;
+}
+
+t13
+fn_3_c(t1 a1, t3 a2, t7 a3, t4 a4, t9 a5, uint8_t a6, float a7, float a8)
+{
+ if (!((a1.field_1==211) && (a1.field_2==183) && (a1.field_3==0.71875) && (a1.field_4==77205130182656))) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==186084876091392) && ((a2.field_2.field_1==162500698177536) && (a2.field_2.field_2==117147867938816) && ((a2.field_2.field_3.field_1==81) && (a2.field_2.field_3.field_2==185) && (a2.field_2.field_3.field_3==-1.171875) && (a2.field_2.field_3.field_4==80629570863104)) && (a2.field_2.field_4==-2.453125) && ((a2.field_2.field_5.field_1==49) && (a2.field_2.field_5.field_2==253) && (a2.field_2.field_5.field_3==0.03125) && (a2.field_2.field_5.field_4==266183655817216))) && ((a2.field_3.field_1==133) && (a2.field_3.field_2==78) && (a2.field_3.field_3==-1.15625) && (a2.field_3.field_4==208468516143104)) && (a2.field_4==0.625) && (a2.field_5==2593151244))) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==104) && (a3.field_2==E_6_7) && ((a3.field_3.field_1==168319363710976) && (a3.field_3.field_2==1.015625)) && ((a3.field_4.field_1==105329353555968) && (a3.field_4.field_2==49345085177856) && ((a3.field_4.field_3.field_1==61) && (a3.field_4.field_3.field_2==176) && (a3.field_4.field_3.field_3==1.25) && (a3.field_4.field_3.field_4==102963779993600)) && (a3.field_4.field_4==3.734375) && ((a3.field_4.field_5.field_1==21) && (a3.field_4.field_5.field_2==143) && (a3.field_4.field_5.field_3==1.46875) && (a3.field_4.field_5.field_4==167234555215872))))) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==3.12890625) && (a4.field_2==0.4375) && ((a4.field_3.field_1==63982214447104) && ((a4.field_3.field_2.field_1==135072305512448) && (a4.field_3.field_2.field_2==67998052515840) && ((a4.field_3.field_2.field_3.field_1==12) && (a4.field_3.field_2.field_3.field_2==71) && (a4.field_3.field_2.field_3.field_3==-0.578125) && (a4.field_3.field_2.field_3.field_4==187813731500032)) && (a4.field_3.field_2.field_4==3.07421875) && ((a4.field_3.field_2.field_5.field_1==205) && (a4.field_3.field_2.field_5.field_2==88) && (a4.field_3.field_2.field_5.field_3==-0.53125) && (a4.field_3.field_2.field_5.field_4==674692464640))) && ((a4.field_3.field_3.field_1==193) && (a4.field_3.field_3.field_2==11) && (a4.field_3.field_3.field_3==0.3125) && (a4.field_3.field_3.field_4==162599899496448)) && (a4.field_3.field_4==-0.62890625) && (a4.field_3.field_5==3331590902)))) {
+ goto bad;
+ }
+
+ if (!((a5.field_1==E_8_5) && (a5.field_2==3187538484))) {
+ goto bad;
+ }
+
+ if (!(a6==90)) {
+ goto bad;
+ }
+
+ if (!(a7==0.125)) {
+ goto bad;
+ }
+
+ if (!(a8==1.203125)) {
+ goto bad;
+ }
+
+ return (t13) {.field_1=650661816,.field_2=(t10) {.field_1=-0.015625,.field_2=2851726420},.field_3=(t11) {.field_1=-3.625,.field_2=(t2) {.field_1=74772813709312,.field_2=112035052126208,.field_3=(t1) {.field_1=41,.field_2=21,.field_3=-0.28125,.field_4=170067893944320},.field_4=0.52734375,.field_5=(t1) {.field_1=81,.field_2=216,.field_3=-0.328125,.field_4=156496708894720}}},.field_4=(t12) {.field_1=(t4) {.field_1=-3.19140625,.field_2=1.515625,.field_3=(t3) {.field_1=236308757348352,.field_2=(t2) {.field_1=263713238548480,.field_2=40608255049728,.field_3=(t1) {.field_1=138,.field_2=142,.field_3=-1.1875,.field_4=100184688558080},.field_4=2.76171875,.field_5=(t1) {.field_1=73,.field_2=65,.field_3=1.28125,.field_4=53591441145856}},.field_3=(t1) {.field_1=54,.field_2=81,.field_3=-0.5,.field_4=200208867524608},.field_4=3.7734375,.field_5=1624457196}},.field_2=(t1) {.field_1=250,.field_2=97,.field_3=0.125,.field_4=16842727882752},.field_3=(t5) {.field_1=222985090629632,.field_2=-1.109375}}};
+
+bad:
+ return (t13) {.field_1=2694026068,.field_2=(t10) {.field_1=-1.21875,.field_2=4260115106},.field_3=(t11) {.field_1=-3.71484375,.field_2=(t2) {.field_1=187395190947840,.field_2=23501456670720,.field_3=(t1) {.field_1=1,.field_2=129,.field_3=-1.5,.field_4=42547396608000},.field_4=-3.53515625,.field_5=(t1) {.field_1=148,.field_2=70,.field_3=-0.296875,.field_4=121552673308672}}},.field_4=(t12) {.field_1=(t4) {.field_1=0.47265625,.field_2=0.5,.field_3=(t3) {.field_1=96003926654976,.field_2=(t2) {.field_1=211416389124096,.field_2=246412730040320,.field_3=(t1) {.field_1=168,.field_2=23,.field_3=0.265625,.field_4=181009723555840},.field_4=-0.2265625,.field_5=(t1) {.field_1=144,.field_2=6,.field_3=-1.53125,.field_4=175496053391360}},.field_3=(t1) {.field_1=208,.field_2=40,.field_3=-0.78125,.field_4=260664153079808},.field_4=-2.7421875,.field_5=1183476516}},.field_2=(t1) {.field_1=151,.field_2=59,.field_3=-0.6875,.field_4=27338362322944},.field_3=(t5) {.field_1=71252360822784,.field_2=-0.203125}}};
+}
+
+t19
+fn_4_c(t16 a1)
+{
+ if (!((a1.field_1==E_14_1) && (a1.field_2==-0.734375) && (a1.field_3==31855997878272) && (a1.field_4==E_15_5))) {
+ goto bad;
+ }
+
+ return (t19) {.field_1=0.03125,.field_2=(t17) {.field_1=(t13) {.field_1=947051528,.field_2=(t10) {.field_1=0.96875,.field_2=241559198},.field_3=(t11) {.field_1=-0.125,.field_2=(t2) {.field_1=22236939157504,.field_2=74920569470976,.field_3=(t1) {.field_1=22,.field_2=25,.field_3=-0.46875,.field_4=99222545367040},.field_4=-2.25,.field_5=(t1) {.field_1=6,.field_2=66,.field_3=0.9375,.field_4=72999681130496}}},.field_4=(t12) {.field_1=(t4) {.field_1=-2.41015625,.field_2=-0.328125,.field_3=(t3) {.field_1=33373226926080,.field_2=(t2) {.field_1=264437028749312,.field_2=41455185559552,.field_3=(t1) {.field_1=58,.field_2=157,.field_3=-1.40625,.field_4=172834173747200},.field_4=2.96484375,.field_5=(t1) {.field_1=47,.field_2=72,.field_3=-0.8125,.field_4=161994014326784}},.field_3=(t1) {.field_1=98,.field_2=191,.field_3=0.9375,.field_4=54448237051904},.field_4=2.390625,.field_5=1201643174}},.field_2=(t1) {.field_1=69,.field_2=18,.field_3=-0.421875,.field_4=104603486781440},.field_3=(t5) {.field_1=119279618490368,.field_2=0.6875}}},.field_2=0.65625,.field_3=125926830637056,.field_4=250},.field_3=E_18_3,.field_4=(t2) {.field_1=198926511898624,.field_2=48406520135680,.field_3=(t1) {.field_1=198,.field_2=211,.field_3=-1.21875,.field_4=259336007450624},.field_4=-3.48828125,.field_5=(t1) {.field_1=185,.field_2=248,.field_3=0.53125,.field_4=170021025611776}}};
+
+bad:
+ return (t19) {.field_1=-1.078125,.field_2=(t17) {.field_1=(t13) {.field_1=4079464194,.field_2=(t10) {.field_1=1.09375,.field_2=3151538724},.field_3=(t11) {.field_1=-1.30078125,.field_2=(t2) {.field_1=167739336687616,.field_2=149124248371200,.field_3=(t1) {.field_1=134,.field_2=102,.field_3=0.96875,.field_4=224961458864128},.field_4=-0.203125,.field_5=(t1) {.field_1=45,.field_2=43,.field_3=1.25,.field_4=252713962045440}}},.field_4=(t12) {.field_1=(t4) {.field_1=1.9921875,.field_2=-0.484375,.field_3=(t3) {.field_1=247192255463424,.field_2=(t2) {.field_1=38160966352896,.field_2=14664874459136,.field_3=(t1) {.field_1=12,.field_2=232,.field_3=1.1875,.field_4=45492371193856},.field_4=2.5859375,.field_5=(t1) {.field_1=238,.field_2=226,.field_3=0.953125,.field_4=168620418269184}},.field_3=(t1) {.field_1=125,.field_2=246,.field_3=0.15625,.field_4=94751226331136},.field_4=1.5234375,.field_5=3789142650}},.field_2=(t1) {.field_1=238,.field_2=57,.field_3=-0.28125,.field_4=94165903343616},.field_3=(t5) {.field_1=9631686328320,.field_2=-0.921875}}},.field_2=2.4140625,.field_3=59577473957888,.field_4=97},.field_3=E_18_5,.field_4=(t2) {.field_1=30816459292672,.field_2=37695797854208,.field_3=(t1) {.field_1=13,.field_2=252,.field_3=-0.71875,.field_4=29337515720704},.field_4=-3.61328125,.field_5=(t1) {.field_1=45,.field_2=251,.field_3=-0.9375,.field_4=2851418144768}}};
+}
+
+t29
+fn_5_c(uint32_t a1, t11 a2, t21 a3, t23 a4, t24 a5, uint32_t a6, double a7, t26 a8, t27 a9, t28 a10)
+{
+ if (!(a1==3491579916)) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==2.140625) && ((a2.field_2.field_1==17107741573120) && (a2.field_2.field_2==257014155051008) && ((a2.field_2.field_3.field_1==120) && (a2.field_2.field_3.field_2==241) && (a2.field_2.field_3.field_3==1.078125) && (a2.field_2.field_3.field_4==195206002114560)) && (a2.field_2.field_4==-1.15625) && ((a2.field_2.field_5.field_1==46) && (a2.field_2.field_5.field_2==186) && (a2.field_2.field_5.field_3==0.1875) && (a2.field_2.field_5.field_4==278368438321153))))) {
+ goto bad;
+ }
+
+ if (!((((a3.field_1.field_1.field_1==66) && (a3.field_1.field_1.field_2==239) && (a3.field_1.field_1.field_3==-1.203125) && (a3.field_1.field_1.field_4==89848418926592)) && ((a3.field_1.field_2.field_1==239095841685504) && (a3.field_1.field_2.field_2==165469104898048) && ((a3.field_1.field_2.field_3.field_1==67) && (a3.field_1.field_2.field_3.field_2==177) && (a3.field_1.field_2.field_3.field_3==-0.6875) && (a3.field_1.field_2.field_3.field_4==172891013120000)) && (a3.field_1.field_2.field_4==2.93359375) && ((a3.field_1.field_2.field_5.field_1==2) && (a3.field_1.field_2.field_5.field_2==44) && (a3.field_1.field_2.field_5.field_3==1.140625) && (a3.field_1.field_2.field_5.field_4==266978004566016)))) && (((a3.field_2.field_1.field_1==488880992) && ((a3.field_2.field_1.field_2.field_1==0.1875) && (a3.field_2.field_1.field_2.field_2==4283670802)) && ((a3.field_2.field_1.field_3.field_1==-2.4453125) && ((a3.field_2.field_1.field_3.field_2.field_1==86642904793088) && (a3.field_2.field_1.field_3.field_2.field_2==9550056259584) && ((a3.field_2.field_1.field_3.field_2.field_3.field_1==135) && (a3.field_2.field_1.field_3.field_2.field_3.field_2==40) && (a3.field_2.field_1.field_3.field_2.field_3.field_3==-1.234375) && (a3.field_2.field_1.field_3.field_2.field_3.field_4==14565778391040)) && (a3.field_2.field_1.field_3.field_2.field_4==3.859375) && ((a3.field_2.field_1.field_3.field_2.field_5.field_1==97) && (a3.field_2.field_1.field_3.field_2.field_5.field_2==149) && (a3.field_2.field_1.field_3.field_2.field_5.field_3==0.75) && (a3.field_2.field_1.field_3.field_2.field_5.field_4==208889540378624)))) && (((a3.field_2.field_1.field_4.field_1.field_1==3.3515625) && (a3.field_2.field_1.field_4.field_1.field_2==1.5625) && ((a3.field_2.field_1.field_4.field_1.field_3.field_1==190971227013120) && ((a3.field_2.field_1.field_4.field_1.field_3.field_2.field_1==13441050607616) && (a3.field_2.field_1.field_4.field_1.field_3.field_2.field_2==89440160972800) && ((a3.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_1==135) && (a3.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_2==162) && (a3.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_3==0.25) && (a3.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_4==62767721873408)) && (a3.field_2.field_1.field_4.field_1.field_3.field_2.field_4==3.2578125) && ((a3.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_1==49) && (a3.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_2==25) && (a3.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_3==1.34375) && (a3.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_4==103776287981568))) && ((a3.field_2.field_1.field_4.field_1.field_3.field_3.field_1==246) && (a3.field_2.field_1.field_4.field_1.field_3.field_3.field_2==223) && (a3.field_2.field_1.field_4.field_1.field_3.field_3.field_3==-0.0625) && (a3.field_2.field_1.field_4.field_1.field_3.field_3.field_4==147071279038464)) && (a3.field_2.field_1.field_4.field_1.field_3.field_4==2.90625) && (a3.field_2.field_1.field_4.field_1.field_3.field_5==2875920810))) && ((a3.field_2.field_1.field_4.field_2.field_1==212) && (a3.field_2.field_1.field_4.field_2.field_2==231) && (a3.field_2.field_1.field_4.field_2.field_3==-0.9375) && (a3.field_2.field_1.field_4.field_2.field_4==278720009601025)) && ((a3.field_2.field_1.field_4.field_3.field_1==4008885223424) && (a3.field_2.field_1.field_4.field_3.field_2==-0.78125)))) && (a3.field_2.field_2==3.78125) && (a3.field_2.field_3==111604690845696) && (a3.field_2.field_4==213)) && (a3.field_3==0.703125) && (a3.field_4==E_15_1) && (a3.field_5==2.0625) && (a3.field_6==1.73828125))) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==208) && (a4.field_2==1.30078125) && (a4.field_3==E_14_3) && (a4.field_4==E_22_2))) {
+ goto bad;
+ }
+
+ if (!(a5==E_24_4)) {
+ goto bad;
+ }
+
+ if (!(a6==157825342)) {
+ goto bad;
+ }
+
+ if (!(a7==3.765625)) {
+ goto bad;
+ }
+
+ if (!((((a8.field_1.field_1.field_1==E_8_6) && (a8.field_1.field_1.field_2==3815456600)) && (a8.field_1.field_2==-1.58203125) && (a8.field_1.field_3==16877321453568) && (a8.field_1.field_4==145567904956416) && (a8.field_1.field_5==-0.125) && (a8.field_1.field_6==1.76171875)) && (a8.field_2==171) && (a8.field_3==140444787539968) && (a8.field_4==15))) {
+ goto bad;
+ }
+
+ if (!(a9==E_27_5)) {
+ goto bad;
+ }
+
+ if (!(a10==E_28_3)) {
+ goto bad;
+ }
+
+ return E_29_1;
+
+bad:
+ return E_29_3;
+}
+
+uint32_t
+fn_6_c(t20 a1, t15 a2)
+{
+ if (!(((a1.field_1.field_1==141) && (a1.field_1.field_2==149) && (a1.field_1.field_3==-1.25) && (a1.field_1.field_4==58279295057920)) && ((a1.field_2.field_1==63572928888832) && (a1.field_2.field_2==46145049067520) && ((a1.field_2.field_3.field_1==109) && (a1.field_2.field_3.field_2==59) && (a1.field_2.field_3.field_3==-1.4375) && (a1.field_2.field_3.field_4==89364507131904)) && (a1.field_2.field_4==0.23828125) && ((a1.field_2.field_5.field_1==25) && (a1.field_2.field_5.field_2==213) && (a1.field_2.field_5.field_3==1.546875) && (a1.field_2.field_5.field_4==232592606363648))))) {
+ goto bad;
+ }
+
+ if (!(a2==E_15_6)) {
+ goto bad;
+ }
+
+ return 4008488864;
+
+bad:
+ return 2072402048;
+}
+
+t37
+fn_7_c(double a1, double a2, t31 a3, t21 a4, double a5, float a6, t35 a7, uint64_t a8)
+{
+ if (!(a1==2.84375)) {
+ goto bad;
+ }
+
+ if (!(a2==-3.25390625)) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==-2.56640625) && (a3.field_2==-0.59375) && (a3.field_3==-0.34375) && ((a3.field_4.field_1==83) && (a3.field_4.field_2==-0.8125) && (a3.field_4.field_3==245451030659072) && (a3.field_4.field_4==E_24_1) && (a3.field_4.field_5==0.58203125) && (a3.field_4.field_6==0.734375)))) {
+ goto bad;
+ }
+
+ if (!((((a4.field_1.field_1.field_1==154) && (a4.field_1.field_1.field_2==16) && (a4.field_1.field_1.field_3==1.53125) && (a4.field_1.field_1.field_4==240450872147968)) && ((a4.field_1.field_2.field_1==93431282270208) && (a4.field_1.field_2.field_2==243719039352832) && ((a4.field_1.field_2.field_3.field_1==176) && (a4.field_1.field_2.field_3.field_2==179) && (a4.field_1.field_2.field_3.field_3==1.421875) && (a4.field_1.field_2.field_3.field_4==211285330100224)) && (a4.field_1.field_2.field_4==-2.0546875) && ((a4.field_1.field_2.field_5.field_1==120) && (a4.field_1.field_2.field_5.field_2==11) && (a4.field_1.field_2.field_5.field_3==0.984375) && (a4.field_1.field_2.field_5.field_4==85609800400896)))) && (((a4.field_2.field_1.field_1==3734886520) && ((a4.field_2.field_1.field_2.field_1==-0.03125) && (a4.field_2.field_1.field_2.field_2==4178676130)) && ((a4.field_2.field_1.field_3.field_1==1.4609375) && ((a4.field_2.field_1.field_3.field_2.field_1==278857533489153) && (a4.field_2.field_1.field_3.field_2.field_2==40762444611584) && ((a4.field_2.field_1.field_3.field_2.field_3.field_1==255) && (a4.field_2.field_1.field_3.field_2.field_3.field_2==97) && (a4.field_2.field_1.field_3.field_2.field_3.field_3==-0.09375) && (a4.field_2.field_1.field_3.field_2.field_3.field_4==67201348272128)) && (a4.field_2.field_1.field_3.field_2.field_4==-1.9375) && ((a4.field_2.field_1.field_3.field_2.field_5.field_1==145) && (a4.field_2.field_1.field_3.field_2.field_5.field_2==208) && (a4.field_2.field_1.field_3.field_2.field_5.field_3==1.53125) && (a4.field_2.field_1.field_3.field_2.field_5.field_4==6521111838720)))) && (((a4.field_2.field_1.field_4.field_1.field_1==-0.2265625) && (a4.field_2.field_1.field_4.field_1.field_2==0.28125) && ((a4.field_2.field_1.field_4.field_1.field_3.field_1==24215899865088) && ((a4.field_2.field_1.field_4.field_1.field_3.field_2.field_1==128440090099712) && (a4.field_2.field_1.field_4.field_1.field_3.field_2.field_2==124968190476288) && ((a4.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_1==106) && (a4.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_2==82) && (a4.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_3==-1.15625) && (a4.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_4==33900307021824)) && (a4.field_2.field_1.field_4.field_1.field_3.field_2.field_4==-1.75390625) && ((a4.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_1==226) && (a4.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_2==91) && (a4.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_3==0.765625) && (a4.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_4==261485102891008))) && ((a4.field_2.field_1.field_4.field_1.field_3.field_3.field_1==43) && (a4.field_2.field_1.field_4.field_1.field_3.field_3.field_2==12) && (a4.field_2.field_1.field_4.field_1.field_3.field_3.field_3==0.9375) && (a4.field_2.field_1.field_4.field_1.field_3.field_3.field_4==185189970870272)) && (a4.field_2.field_1.field_4.field_1.field_3.field_4==-3.73046875) && (a4.field_2.field_1.field_4.field_1.field_3.field_5==2085882880))) && ((a4.field_2.field_1.field_4.field_2.field_1==166) && (a4.field_2.field_1.field_4.field_2.field_2==42) && (a4.field_2.field_1.field_4.field_2.field_3==-0.0625) && (a4.field_2.field_1.field_4.field_2.field_4==8114197757952)) && ((a4.field_2.field_1.field_4.field_3.field_1==179406660042752) && (a4.field_2.field_1.field_4.field_3.field_2==0.6875)))) && (a4.field_2.field_2==-1.7109375) && (a4.field_2.field_3==58423380148224) && (a4.field_2.field_4==136)) && (a4.field_3==-0.71875) && (a4.field_4==E_15_2) && (a4.field_5==-3.87109375) && (a4.field_6==2.8046875))) {
+ goto bad;
+ }
+
+ if (!(a5==-0.3046875)) {
+ goto bad;
+ }
+
+ if (!(a6==0.734375)) {
+ goto bad;
+ }
+
+ if (!(((a7.field_1.field_1==66690558)) && (((a7.field_2.field_1.field_1==201975036641280) && (a7.field_2.field_1.field_2==191791705096192) && ((a7.field_2.field_1.field_3.field_1==188) && (a7.field_2.field_1.field_3.field_2==255) && (a7.field_2.field_1.field_3.field_3==1.21875) && (a7.field_2.field_1.field_3.field_4==75962620575744)) && (a7.field_2.field_1.field_4==-1.81640625) && ((a7.field_2.field_1.field_5.field_1==30) && (a7.field_2.field_1.field_5.field_2==70) && (a7.field_2.field_1.field_5.field_3==-1.171875) && (a7.field_2.field_1.field_5.field_4==122844992372736))) && (a7.field_2.field_2==E_18_6)) && (a7.field_3==E_34_3))) {
+ goto bad;
+ }
+
+ if (!(a8==145924444127232)) {
+ goto bad;
+ }
+
+ return (t37) {.field_1=E_36_2};
+
+bad:
+ return (t37) {.field_1=E_36_3};
+}
+
+t42
+fn_8_c(t38 a1, t39 a2, double a3, uint8_t a4)
+{
+ if (!(a1==E_38_4)) {
+ goto bad;
+ }
+
+ if (!(a2==E_39_1)) {
+ goto bad;
+ }
+
+ if (!(a3==-2.69140625)) {
+ goto bad;
+ }
+
+ if (!(a4==17)) {
+ goto bad;
+ }
+
+ return (t42) {.field_1=86,.field_2=(t40) {.field_1=(t13) {.field_1=3264522662,.field_2=(t10) {.field_1=1.125,.field_2=3024392},.field_3=(t11) {.field_1=2.90625,.field_2=(t2) {.field_1=246587710898176,.field_2=98684395847680,.field_3=(t1) {.field_1=7,.field_2=232,.field_3=-0.25,.field_4=243343254224896},.field_4=1.3828125,.field_5=(t1) {.field_1=123,.field_2=151,.field_3=0.671875,.field_4=230200040620032}}},.field_4=(t12) {.field_1=(t4) {.field_1=-0.5,.field_2=-1.484375,.field_3=(t3) {.field_1=78257571102720,.field_2=(t2) {.field_1=202195772637184,.field_2=21507053977600,.field_3=(t1) {.field_1=42,.field_2=43,.field_3=0.453125,.field_4=259622561644544},.field_4=1.18359375,.field_5=(t1) {.field_1=201,.field_2=220,.field_3=-0.40625,.field_4=87732745404416}},.field_3=(t1) {.field_1=61,.field_2=181,.field_3=-1.34375,.field_4=27713052475392},.field_4=1.640625,.field_5=4052472574}},.field_2=(t1) {.field_1=249,.field_2=15,.field_3=1.484375,.field_4=248514888728576},.field_3=(t5) {.field_1=134716506374144,.field_2=1.046875}}},.field_2=2404422220},.field_3=246,.field_4=(t41) {.field_1=(t20) {.field_1=(t1) {.field_1=109,.field_2=70,.field_3=0.875,.field_4=242714521763840},.field_2=(t2) {.field_1=85381772738560,.field_2=16488017559552,.field_3=(t1) {.field_1=148,.field_2=97,.field_3=-0.859375,.field_4=211742737956864},.field_4=-3.73046875,.field_5=(t1) {.field_1=37,.field_2=103,.field_3=0.96875,.field_4=3251610451968}}},.field_2=E_29_7,.field_3=34127014920192}};
+
+bad:
+ return (t42) {.field_1=64,.field_2=(t40) {.field_1=(t13) {.field_1=2072157872,.field_2=(t10) {.field_1=-0.96875,.field_2=1499873962},.field_3=(t11) {.field_1=-2.40234375,.field_2=(t2) {.field_1=38436406689792,.field_2=91121526767616,.field_3=(t1) {.field_1=64,.field_2=27,.field_3=-0.921875,.field_4=205924771299328},.field_4=3.46484375,.field_5=(t1) {.field_1=196,.field_2=177,.field_3=-0.40625,.field_4=11710038278144}}},.field_4=(t12) {.field_1=(t4) {.field_1=-0.1953125,.field_2=-0.84375,.field_3=(t3) {.field_1=97091811147776,.field_2=(t2) {.field_1=150148618125312,.field_2=228580951588864,.field_3=(t1) {.field_1=185,.field_2=194,.field_3=0.203125,.field_4=210398628937728},.field_4=3.1875,.field_5=(t1) {.field_1=247,.field_2=142,.field_3=1.3125,.field_4=208583715848192}},.field_3=(t1) {.field_1=173,.field_2=43,.field_3=-0.875,.field_4=245248454164480},.field_4=0.15234375,.field_5=1786378194}},.field_2=(t1) {.field_1=2,.field_2=215,.field_3=0.53125,.field_4=32483101376512},.field_3=(t5) {.field_1=14001190862848,.field_2=-0.3125}}},.field_2=251181130},.field_3=208,.field_4=(t41) {.field_1=(t20) {.field_1=(t1) {.field_1=24,.field_2=109,.field_3=1.125,.field_4=160345918668800},.field_2=(t2) {.field_1=185513129279488,.field_2=57065717104640,.field_3=(t1) {.field_1=26,.field_2=120,.field_3=1.34375,.field_4=242789147082752},.field_4=-3.62890625,.field_5=(t1) {.field_1=172,.field_2=197,.field_3=-1.5625,.field_4=65287928938496}}},.field_2=E_29_7,.field_3=209522592579584}};
+}
+
+uint64_t
+fn_9_c(t46 a1, float a2, t26 a3, t47 a4, t48 a5, t54 a6, uint32_t a7, float a8, t55 a9, t56 a10)
+{
+ if (!((((a1.field_1.field_1.field_1==0.171875) && (a1.field_1.field_1.field_2==3226754646)) && (((a1.field_1.field_2.field_1.field_1==2.765625) && (a1.field_1.field_2.field_1.field_2==0.1875) && ((a1.field_1.field_2.field_1.field_3.field_1==276756521549824) && ((a1.field_1.field_2.field_1.field_3.field_2.field_1==152999296499712) && (a1.field_1.field_2.field_1.field_3.field_2.field_2==85664820494336) && ((a1.field_1.field_2.field_1.field_3.field_2.field_3.field_1==228) && (a1.field_1.field_2.field_1.field_3.field_2.field_3.field_2==103) && (a1.field_1.field_2.field_1.field_3.field_2.field_3.field_3==-0.71875) && (a1.field_1.field_2.field_1.field_3.field_2.field_3.field_4==189995730337792)) && (a1.field_1.field_2.field_1.field_3.field_2.field_4==2.2109375) && ((a1.field_1.field_2.field_1.field_3.field_2.field_5.field_1==167) && (a1.field_1.field_2.field_1.field_3.field_2.field_5.field_2==118) && (a1.field_1.field_2.field_1.field_3.field_2.field_5.field_3==-1.546875) && (a1.field_1.field_2.field_1.field_3.field_2.field_5.field_4==199486233247744))) && ((a1.field_1.field_2.field_1.field_3.field_3.field_1==94) && (a1.field_1.field_2.field_1.field_3.field_3.field_2==71) && (a1.field_1.field_2.field_1.field_3.field_3.field_3==-1.0625) && (a1.field_1.field_2.field_1.field_3.field_3.field_4==93572022140928)) && (a1.field_1.field_2.field_1.field_3.field_4==-1.046875) && (a1.field_1.field_2.field_1.field_3.field_5==3049108056))) && ((a1.field_1.field_2.field_2.field_1==185) && (a1.field_1.field_2.field_2.field_2==79) && (a1.field_1.field_2.field_2.field_3==1.03125) && (a1.field_1.field_2.field_2.field_4==217666636349440)) && ((a1.field_1.field_2.field_3.field_1==129819186561024) && (a1.field_1.field_2.field_3.field_2==-1.421875))) && ((a1.field_1.field_3.field_1==-1.60546875) && (a1.field_1.field_3.field_2==0.125) && ((a1.field_1.field_3.field_3.field_1==37068096536576) && ((a1.field_1.field_3.field_3.field_2.field_1==239555475144704) && (a1.field_1.field_3.field_3.field_2.field_2==81311387615232) && ((a1.field_1.field_3.field_3.field_2.field_3.field_1==252) && (a1.field_1.field_3.field_3.field_2.field_3.field_2==105) && (a1.field_1.field_3.field_3.field_2.field_3.field_3==-0.71875) && (a1.field_1.field_3.field_3.field_2.field_3.field_4==148899603939328)) && (a1.field_1.field_3.field_3.field_2.field_4==1.68359375) && ((a1.field_1.field_3.field_3.field_2.field_5.field_1==42) && (a1.field_1.field_3.field_3.field_2.field_5.field_2==238) && (a1.field_1.field_3.field_3.field_2.field_5.field_3==1.53125) && (a1.field_1.field_3.field_3.field_2.field_5.field_4==236603073363968))) && ((a1.field_1.field_3.field_3.field_3.field_1==183) && (a1.field_1.field_3.field_3.field_3.field_2==164) && (a1.field_1.field_3.field_3.field_3.field_3==-0.609375) && (a1.field_1.field_3.field_3.field_3.field_4==202904325324800)) && (a1.field_1.field_3.field_3.field_4==-1.15234375) && (a1.field_1.field_3.field_3.field_5==2895375692)))) && (a1.field_2==E_44_7) && ((a1.field_3.field_1==2208687568)) && (a1.field_4==1848386781184) && ((a1.field_5.field_1==-1.05859375) && (a1.field_5.field_2==-0.859375) && ((a1.field_5.field_3.field_1==205448639807488) && ((a1.field_5.field_3.field_2.field_1==190494723801088) && (a1.field_5.field_3.field_2.field_2==14572431867904) && ((a1.field_5.field_3.field_2.field_3.field_1==128) && (a1.field_5.field_3.field_2.field_3.field_2==35) && (a1.field_5.field_3.field_2.field_3.field_3==-1.25) && (a1.field_5.field_3.field_2.field_3.field_4==224517446828032)) && (a1.field_5.field_3.field_2.field_4==1.37109375) && ((a1.field_5.field_3.field_2.field_5.field_1==59) && (a1.field_5.field_3.field_2.field_5.field_2==166) && (a1.field_5.field_3.field_2.field_5.field_3==1.453125) && (a1.field_5.field_3.field_2.field_5.field_4==61154056208384))) && ((a1.field_5.field_3.field_3.field_1==15) && (a1.field_5.field_3.field_3.field_2==60) && (a1.field_5.field_3.field_3.field_3==0.765625) && (a1.field_5.field_3.field_3.field_4==218183195164672)) && (a1.field_5.field_3.field_4==-0.765625) && (a1.field_5.field_3.field_5==2915453416))) && (a1.field_6==3275953006))) {
+ goto bad;
+ }
+
+ if (!(a2==-0.328125)) {
+ goto bad;
+ }
+
+ if (!((((a3.field_1.field_1.field_1==E_8_1) && (a3.field_1.field_1.field_2==3258536312)) && (a3.field_1.field_2==-2.17578125) && (a3.field_1.field_3==31978917462016) && (a3.field_1.field_4==76825007489024) && (a3.field_1.field_5==-0.859375) && (a3.field_1.field_6==-0.171875)) && (a3.field_2==127) && (a3.field_3==269734934740992) && (a3.field_4==39))) {
+ goto bad;
+ }
+
+ if (!(a4==E_47_3)) {
+ goto bad;
+ }
+
+ if (!(a5==E_48_7)) {
+ goto bad;
+ }
+
+ if (!(((a6.field_1.field_1==613960680)) && ((a6.field_2.field_1==-0.125) && ((a6.field_2.field_2.field_1==469993662)) && (a6.field_2.field_3==201131156307968) && (a6.field_2.field_4==3.79296875)) && (a6.field_3==E_51_4) && ((a6.field_4.field_1==0.09375) && (a6.field_4.field_2==E_51_6) && (a6.field_4.field_3==134) && (a6.field_4.field_4==1.234375) && (a6.field_4.field_5==1.359375)) && (a6.field_5==E_51_2) && (a6.field_6==E_53_4))) {
+ goto bad;
+ }
+
+ if (!(a7==604879132)) {
+ goto bad;
+ }
+
+ if (!(a8==0.640625)) {
+ goto bad;
+ }
+
+ if (!(a9==E_55_3)) {
+ goto bad;
+ }
+
+ if (!(a10==E_56_4)) {
+ goto bad;
+ }
+
+ return 219771358019584;
+
+bad:
+ return 168173477429248;
+}
+
+t3
+fn_10_c(uint64_t a1, double a2, t61 a3, uint8_t a4, t62 a5, uint8_t a6, double a7, uint64_t a8)
+{
+ if (!(a1==160708767514624)) {
+ goto bad;
+ }
+
+ if (!(a2==0.36328125)) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==E_57_5) && ((a3.field_2.field_1==-0.27734375) && (a3.field_2.field_2==E_36_3)) && ((a3.field_3.field_1==97) && (a3.field_3.field_2==33865353396224)) && ((a3.field_4.field_1==216701139681280) && (a3.field_4.field_2==-1.03125) && ((a3.field_4.field_3.field_1==-0.8515625) && (a3.field_4.field_3.field_2==0.71875) && ((a3.field_4.field_3.field_3.field_1==244705840726016) && ((a3.field_4.field_3.field_3.field_2.field_1==53149469900800) && (a3.field_4.field_3.field_3.field_2.field_2==161998735409152) && ((a3.field_4.field_3.field_3.field_2.field_3.field_1==127) && (a3.field_4.field_3.field_3.field_2.field_3.field_2==47) && (a3.field_4.field_3.field_3.field_2.field_3.field_3==1.25) && (a3.field_4.field_3.field_3.field_2.field_3.field_4==59620799152128)) && (a3.field_4.field_3.field_3.field_2.field_4==-1.41015625) && ((a3.field_4.field_3.field_3.field_2.field_5.field_1==130) && (a3.field_4.field_3.field_3.field_2.field_5.field_2==161) && (a3.field_4.field_3.field_3.field_2.field_5.field_3==-1.453125) && (a3.field_4.field_3.field_3.field_2.field_5.field_4==49656372789248))) && ((a3.field_4.field_3.field_3.field_3.field_1==136) && (a3.field_4.field_3.field_3.field_3.field_2==83) && (a3.field_4.field_3.field_3.field_3.field_3==-1.15625) && (a3.field_4.field_3.field_3.field_3.field_4==278799917907969)) && (a3.field_4.field_3.field_3.field_4==2.5234375) && (a3.field_4.field_3.field_3.field_5==3744252854))) && (a3.field_4.field_4==E_38_1)))) {
+ goto bad;
+ }
+
+ if (!(a4==202)) {
+ goto bad;
+ }
+
+ if (!(a5==E_62_3)) {
+ goto bad;
+ }
+
+ if (!(a6==0)) {
+ goto bad;
+ }
+
+ if (!(a7==2.234375)) {
+ goto bad;
+ }
+
+ if (!(a8==215484511158272)) {
+ goto bad;
+ }
+
+ return (t3) {.field_1=268633981059072,.field_2=(t2) {.field_1=24949413642240,.field_2=153583813787648,.field_3=(t1) {.field_1=35,.field_2=252,.field_3=0.8125,.field_4=128878867382272},.field_4=-0.03125,.field_5=(t1) {.field_1=98,.field_2=126,.field_3=0.546875,.field_4=258416610377728}},.field_3=(t1) {.field_1=209,.field_2=206,.field_3=1.28125,.field_4=180894750212096},.field_4=1.390625,.field_5=4104417000};
+
+bad:
+ return (t3) {.field_1=194724296130560,.field_2=(t2) {.field_1=131606075277312,.field_2=177386963992576,.field_3=(t1) {.field_1=80,.field_2=184,.field_3=0.453125,.field_4=88961125056512},.field_4=-3.15625,.field_5=(t1) {.field_1=110,.field_2=126,.field_3=1.140625,.field_4=266037895757824}},.field_3=(t1) {.field_1=137,.field_2=208,.field_3=-1.46875,.field_4=23546486325248},.field_4=3.55078125,.field_5=90406856};
+}
+
+int
+const check_c_to_myr_fns(void)
+{
+ double a_1_1 = -0.26171875;
+ t2 ret_1 = fn_1_myr(a_1_1);
+ if (!((ret_1.field_1==12459410325504) && (ret_1.field_2==98659448520704) && ((ret_1.field_3.field_1==166) && (ret_1.field_3.field_2==107) && (ret_1.field_3.field_3==0.140625) && (ret_1.field_3.field_4==92389009653760)) && (ret_1.field_4==-3.140625) && ((ret_1.field_5.field_1==157) && (ret_1.field_5.field_2==191) && (ret_1.field_5.field_3==1.125) && (ret_1.field_5.field_4==644801363968)))) {
+ return -1;
+ }
+
+ double a_2_1 = -3.80078125;
+ t4 a_2_2 = (t4) {.field_1=2.8203125,.field_2=1.40625,.field_3=(t3) {.field_1=281155744301057,.field_2=(t2) {.field_1=201484396396544,.field_2=167610483867648,.field_3=(t1) {.field_1=241,.field_2=67,.field_3=-1.546875,.field_4=85217436499968},.field_4=1.33203125,.field_5=(t1) {.field_1=115,.field_2=174,.field_3=0.578125,.field_4=108879745908736}},.field_3=(t1) {.field_1=46,.field_2=0,.field_3=0.484375,.field_4=41200816095232},.field_4=1.640625,.field_5=4163457034}};
+ t1 a_2_3 = (t1) {.field_1=179,.field_2=82,.field_3=0.796875,.field_4=149846806626304};
+ t5 a_2_4 = (t5) {.field_1=132525092503552,.field_2=-1.3125};
+ uint64_t ret_2 = fn_2_myr(a_2_1, a_2_2, a_2_3, a_2_4);
+ if (!(ret_2==132205860093952)) {
+ return -1;
+ }
+
+ t1 a_3_1 = (t1) {.field_1=211,.field_2=183,.field_3=0.71875,.field_4=77205130182656};
+ t3 a_3_2 = (t3) {.field_1=186084876091392,.field_2=(t2) {.field_1=162500698177536,.field_2=117147867938816,.field_3=(t1) {.field_1=81,.field_2=185,.field_3=-1.171875,.field_4=80629570863104},.field_4=-2.453125,.field_5=(t1) {.field_1=49,.field_2=253,.field_3=0.03125,.field_4=266183655817216}},.field_3=(t1) {.field_1=133,.field_2=78,.field_3=-1.15625,.field_4=208468516143104},.field_4=0.625,.field_5=2593151244};
+ t7 a_3_3 = (t7) {.field_1=104,.field_2=E_6_7,.field_3=(t5) {.field_1=168319363710976,.field_2=1.015625},.field_4=(t2) {.field_1=105329353555968,.field_2=49345085177856,.field_3=(t1) {.field_1=61,.field_2=176,.field_3=1.25,.field_4=102963779993600},.field_4=3.734375,.field_5=(t1) {.field_1=21,.field_2=143,.field_3=1.46875,.field_4=167234555215872}}};
+ t4 a_3_4 = (t4) {.field_1=3.12890625,.field_2=0.4375,.field_3=(t3) {.field_1=63982214447104,.field_2=(t2) {.field_1=135072305512448,.field_2=67998052515840,.field_3=(t1) {.field_1=12,.field_2=71,.field_3=-0.578125,.field_4=187813731500032},.field_4=3.07421875,.field_5=(t1) {.field_1=205,.field_2=88,.field_3=-0.53125,.field_4=674692464640}},.field_3=(t1) {.field_1=193,.field_2=11,.field_3=0.3125,.field_4=162599899496448},.field_4=-0.62890625,.field_5=3331590902}};
+ t9 a_3_5 = (t9) {.field_1=E_8_5,.field_2=3187538484};
+ uint8_t a_3_6 = 90;
+ float a_3_7 = 0.125;
+ float a_3_8 = 1.203125;
+ t13 ret_3 = fn_3_myr(a_3_1, a_3_2, a_3_3, a_3_4, a_3_5, a_3_6, a_3_7, a_3_8);
+ if (!((ret_3.field_1==650661816) && ((ret_3.field_2.field_1==-0.015625) && (ret_3.field_2.field_2==2851726420)) && ((ret_3.field_3.field_1==-3.625) && ((ret_3.field_3.field_2.field_1==74772813709312) && (ret_3.field_3.field_2.field_2==112035052126208) && ((ret_3.field_3.field_2.field_3.field_1==41) && (ret_3.field_3.field_2.field_3.field_2==21) && (ret_3.field_3.field_2.field_3.field_3==-0.28125) && (ret_3.field_3.field_2.field_3.field_4==170067893944320)) && (ret_3.field_3.field_2.field_4==0.52734375) && ((ret_3.field_3.field_2.field_5.field_1==81) && (ret_3.field_3.field_2.field_5.field_2==216) && (ret_3.field_3.field_2.field_5.field_3==-0.328125) && (ret_3.field_3.field_2.field_5.field_4==156496708894720)))) && (((ret_3.field_4.field_1.field_1==-3.19140625) && (ret_3.field_4.field_1.field_2==1.515625) && ((ret_3.field_4.field_1.field_3.field_1==236308757348352) && ((ret_3.field_4.field_1.field_3.field_2.field_1==263713238548480) && (ret_3.field_4.field_1.field_3.field_2.field_2==40608255049728) && ((ret_3.field_4.field_1.field_3.field_2.field_3.field_1==138) && (ret_3.field_4.field_1.field_3.field_2.field_3.field_2==142) && (ret_3.field_4.field_1.field_3.field_2.field_3.field_3==-1.1875) && (ret_3.field_4.field_1.field_3.field_2.field_3.field_4==100184688558080)) && (ret_3.field_4.field_1.field_3.field_2.field_4==2.76171875) && ((ret_3.field_4.field_1.field_3.field_2.field_5.field_1==73) && (ret_3.field_4.field_1.field_3.field_2.field_5.field_2==65) && (ret_3.field_4.field_1.field_3.field_2.field_5.field_3==1.28125) && (ret_3.field_4.field_1.field_3.field_2.field_5.field_4==53591441145856))) && ((ret_3.field_4.field_1.field_3.field_3.field_1==54) && (ret_3.field_4.field_1.field_3.field_3.field_2==81) && (ret_3.field_4.field_1.field_3.field_3.field_3==-0.5) && (ret_3.field_4.field_1.field_3.field_3.field_4==200208867524608)) && (ret_3.field_4.field_1.field_3.field_4==3.7734375) && (ret_3.field_4.field_1.field_3.field_5==1624457196))) && ((ret_3.field_4.field_2.field_1==250) && (ret_3.field_4.field_2.field_2==97) && (ret_3.field_4.field_2.field_3==0.125) && (ret_3.field_4.field_2.field_4==16842727882752)) && ((ret_3.field_4.field_3.field_1==222985090629632) && (ret_3.field_4.field_3.field_2==-1.109375))))) {
+ return -1;
+ }
+
+ t16 a_4_1 = (t16) {.field_1=E_14_1,.field_2=-0.734375,.field_3=31855997878272,.field_4=E_15_5};
+ t19 ret_4 = fn_4_myr(a_4_1);
+ if (!((ret_4.field_1==0.03125) && (((ret_4.field_2.field_1.field_1==947051528) && ((ret_4.field_2.field_1.field_2.field_1==0.96875) && (ret_4.field_2.field_1.field_2.field_2==241559198)) && ((ret_4.field_2.field_1.field_3.field_1==-0.125) && ((ret_4.field_2.field_1.field_3.field_2.field_1==22236939157504) && (ret_4.field_2.field_1.field_3.field_2.field_2==74920569470976) && ((ret_4.field_2.field_1.field_3.field_2.field_3.field_1==22) && (ret_4.field_2.field_1.field_3.field_2.field_3.field_2==25) && (ret_4.field_2.field_1.field_3.field_2.field_3.field_3==-0.46875) && (ret_4.field_2.field_1.field_3.field_2.field_3.field_4==99222545367040)) && (ret_4.field_2.field_1.field_3.field_2.field_4==-2.25) && ((ret_4.field_2.field_1.field_3.field_2.field_5.field_1==6) && (ret_4.field_2.field_1.field_3.field_2.field_5.field_2==66) && (ret_4.field_2.field_1.field_3.field_2.field_5.field_3==0.9375) && (ret_4.field_2.field_1.field_3.field_2.field_5.field_4==72999681130496)))) && (((ret_4.field_2.field_1.field_4.field_1.field_1==-2.41015625) && (ret_4.field_2.field_1.field_4.field_1.field_2==-0.328125) && ((ret_4.field_2.field_1.field_4.field_1.field_3.field_1==33373226926080) && ((ret_4.field_2.field_1.field_4.field_1.field_3.field_2.field_1==264437028749312) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_2.field_2==41455185559552) && ((ret_4.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_1==58) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_2==157) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_3==-1.40625) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_4==172834173747200)) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_2.field_4==2.96484375) && ((ret_4.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_1==47) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_2==72) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_3==-0.8125) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_4==161994014326784))) && ((ret_4.field_2.field_1.field_4.field_1.field_3.field_3.field_1==98) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_3.field_2==191) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_3.field_3==0.9375) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_3.field_4==54448237051904)) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_4==2.390625) && (ret_4.field_2.field_1.field_4.field_1.field_3.field_5==1201643174))) && ((ret_4.field_2.field_1.field_4.field_2.field_1==69) && (ret_4.field_2.field_1.field_4.field_2.field_2==18) && (ret_4.field_2.field_1.field_4.field_2.field_3==-0.421875) && (ret_4.field_2.field_1.field_4.field_2.field_4==104603486781440)) && ((ret_4.field_2.field_1.field_4.field_3.field_1==119279618490368) && (ret_4.field_2.field_1.field_4.field_3.field_2==0.6875)))) && (ret_4.field_2.field_2==0.65625) && (ret_4.field_2.field_3==125926830637056) && (ret_4.field_2.field_4==250)) && (ret_4.field_3==E_18_3) && ((ret_4.field_4.field_1==198926511898624) && (ret_4.field_4.field_2==48406520135680) && ((ret_4.field_4.field_3.field_1==198) && (ret_4.field_4.field_3.field_2==211) && (ret_4.field_4.field_3.field_3==-1.21875) && (ret_4.field_4.field_3.field_4==259336007450624)) && (ret_4.field_4.field_4==-3.48828125) && ((ret_4.field_4.field_5.field_1==185) && (ret_4.field_4.field_5.field_2==248) && (ret_4.field_4.field_5.field_3==0.53125) && (ret_4.field_4.field_5.field_4==170021025611776))))) {
+ return -1;
+ }
+
+ uint32_t a_5_1 = 3491579916;
+ t11 a_5_2 = (t11) {.field_1=2.140625,.field_2=(t2) {.field_1=17107741573120,.field_2=257014155051008,.field_3=(t1) {.field_1=120,.field_2=241,.field_3=1.078125,.field_4=195206002114560},.field_4=-1.15625,.field_5=(t1) {.field_1=46,.field_2=186,.field_3=0.1875,.field_4=278368438321153}}};
+ t21 a_5_3 = (t21) {.field_1=(t20) {.field_1=(t1) {.field_1=66,.field_2=239,.field_3=-1.203125,.field_4=89848418926592},.field_2=(t2) {.field_1=239095841685504,.field_2=165469104898048,.field_3=(t1) {.field_1=67,.field_2=177,.field_3=-0.6875,.field_4=172891013120000},.field_4=2.93359375,.field_5=(t1) {.field_1=2,.field_2=44,.field_3=1.140625,.field_4=266978004566016}}},.field_2=(t17) {.field_1=(t13) {.field_1=488880992,.field_2=(t10) {.field_1=0.1875,.field_2=4283670802},.field_3=(t11) {.field_1=-2.4453125,.field_2=(t2) {.field_1=86642904793088,.field_2=9550056259584,.field_3=(t1) {.field_1=135,.field_2=40,.field_3=-1.234375,.field_4=14565778391040},.field_4=3.859375,.field_5=(t1) {.field_1=97,.field_2=149,.field_3=0.75,.field_4=208889540378624}}},.field_4=(t12) {.field_1=(t4) {.field_1=3.3515625,.field_2=1.5625,.field_3=(t3) {.field_1=190971227013120,.field_2=(t2) {.field_1=13441050607616,.field_2=89440160972800,.field_3=(t1) {.field_1=135,.field_2=162,.field_3=0.25,.field_4=62767721873408},.field_4=3.2578125,.field_5=(t1) {.field_1=49,.field_2=25,.field_3=1.34375,.field_4=103776287981568}},.field_3=(t1) {.field_1=246,.field_2=223,.field_3=-0.0625,.field_4=147071279038464},.field_4=2.90625,.field_5=2875920810}},.field_2=(t1) {.field_1=212,.field_2=231,.field_3=-0.9375,.field_4=278720009601025},.field_3=(t5) {.field_1=4008885223424,.field_2=-0.78125}}},.field_2=3.78125,.field_3=111604690845696,.field_4=213},.field_3=0.703125,.field_4=E_15_1,.field_5=2.0625,.field_6=1.73828125};
+ t23 a_5_4 = (t23) {.field_1=208,.field_2=1.30078125,.field_3=E_14_3,.field_4=E_22_2};
+ t24 a_5_5 = E_24_4;
+ uint32_t a_5_6 = 157825342;
+ double a_5_7 = 3.765625;
+ t26 a_5_8 = (t26) {.field_1=(t25) {.field_1=(t9) {.field_1=E_8_6,.field_2=3815456600},.field_2=-1.58203125,.field_3=16877321453568,.field_4=145567904956416,.field_5=-0.125,.field_6=1.76171875},.field_2=171,.field_3=140444787539968,.field_4=15};
+ t27 a_5_9 = E_27_5;
+ t28 a_5_10 = E_28_3;
+ t29 ret_5 = fn_5_myr(a_5_1, a_5_2, a_5_3, a_5_4, a_5_5, a_5_6, a_5_7, a_5_8, a_5_9, a_5_10);
+ if (!(ret_5==E_29_1)) {
+ return -1;
+ }
+
+ t20 a_6_1 = (t20) {.field_1=(t1) {.field_1=141,.field_2=149,.field_3=-1.25,.field_4=58279295057920},.field_2=(t2) {.field_1=63572928888832,.field_2=46145049067520,.field_3=(t1) {.field_1=109,.field_2=59,.field_3=-1.4375,.field_4=89364507131904},.field_4=0.23828125,.field_5=(t1) {.field_1=25,.field_2=213,.field_3=1.546875,.field_4=232592606363648}}};
+ t15 a_6_2 = E_15_6;
+ uint32_t ret_6 = fn_6_myr(a_6_1, a_6_2);
+ if (!(ret_6==4008488864)) {
+ return -1;
+ }
+
+ double a_7_1 = 2.84375;
+ double a_7_2 = -3.25390625;
+ t31 a_7_3 = (t31) {.field_1=-2.56640625,.field_2=-0.59375,.field_3=-0.34375,.field_4=(t30) {.field_1=83,.field_2=-0.8125,.field_3=245451030659072,.field_4=E_24_1,.field_5=0.58203125,.field_6=0.734375}};
+ t21 a_7_4 = (t21) {.field_1=(t20) {.field_1=(t1) {.field_1=154,.field_2=16,.field_3=1.53125,.field_4=240450872147968},.field_2=(t2) {.field_1=93431282270208,.field_2=243719039352832,.field_3=(t1) {.field_1=176,.field_2=179,.field_3=1.421875,.field_4=211285330100224},.field_4=-2.0546875,.field_5=(t1) {.field_1=120,.field_2=11,.field_3=0.984375,.field_4=85609800400896}}},.field_2=(t17) {.field_1=(t13) {.field_1=3734886520,.field_2=(t10) {.field_1=-0.03125,.field_2=4178676130},.field_3=(t11) {.field_1=1.4609375,.field_2=(t2) {.field_1=278857533489153,.field_2=40762444611584,.field_3=(t1) {.field_1=255,.field_2=97,.field_3=-0.09375,.field_4=67201348272128},.field_4=-1.9375,.field_5=(t1) {.field_1=145,.field_2=208,.field_3=1.53125,.field_4=6521111838720}}},.field_4=(t12) {.field_1=(t4) {.field_1=-0.2265625,.field_2=0.28125,.field_3=(t3) {.field_1=24215899865088,.field_2=(t2) {.field_1=128440090099712,.field_2=124968190476288,.field_3=(t1) {.field_1=106,.field_2=82,.field_3=-1.15625,.field_4=33900307021824},.field_4=-1.75390625,.field_5=(t1) {.field_1=226,.field_2=91,.field_3=0.765625,.field_4=261485102891008}},.field_3=(t1) {.field_1=43,.field_2=12,.field_3=0.9375,.field_4=185189970870272},.field_4=-3.73046875,.field_5=2085882880}},.field_2=(t1) {.field_1=166,.field_2=42,.field_3=-0.0625,.field_4=8114197757952},.field_3=(t5) {.field_1=179406660042752,.field_2=0.6875}}},.field_2=-1.7109375,.field_3=58423380148224,.field_4=136},.field_3=-0.71875,.field_4=E_15_2,.field_5=-3.87109375,.field_6=2.8046875};
+ double a_7_5 = -0.3046875;
+ float a_7_6 = 0.734375;
+ t35 a_7_7 = (t35) {.field_1=(t32) {.field_1=66690558},.field_2=(t33) {.field_1=(t2) {.field_1=201975036641280,.field_2=191791705096192,.field_3=(t1) {.field_1=188,.field_2=255,.field_3=1.21875,.field_4=75962620575744},.field_4=-1.81640625,.field_5=(t1) {.field_1=30,.field_2=70,.field_3=-1.171875,.field_4=122844992372736}},.field_2=E_18_6},.field_3=E_34_3};
+ uint64_t a_7_8 = 145924444127232;
+ t37 ret_7 = fn_7_myr(a_7_1, a_7_2, a_7_3, a_7_4, a_7_5, a_7_6, a_7_7, a_7_8);
+ if (!((ret_7.field_1==E_36_2))) {
+ return -1;
+ }
+
+ t38 a_8_1 = E_38_4;
+ t39 a_8_2 = E_39_1;
+ double a_8_3 = -2.69140625;
+ uint8_t a_8_4 = 17;
+ t42 ret_8 = fn_8_myr(a_8_1, a_8_2, a_8_3, a_8_4);
+ if (!((ret_8.field_1==86) && (((ret_8.field_2.field_1.field_1==3264522662) && ((ret_8.field_2.field_1.field_2.field_1==1.125) && (ret_8.field_2.field_1.field_2.field_2==3024392)) && ((ret_8.field_2.field_1.field_3.field_1==2.90625) && ((ret_8.field_2.field_1.field_3.field_2.field_1==246587710898176) && (ret_8.field_2.field_1.field_3.field_2.field_2==98684395847680) && ((ret_8.field_2.field_1.field_3.field_2.field_3.field_1==7) && (ret_8.field_2.field_1.field_3.field_2.field_3.field_2==232) && (ret_8.field_2.field_1.field_3.field_2.field_3.field_3==-0.25) && (ret_8.field_2.field_1.field_3.field_2.field_3.field_4==243343254224896)) && (ret_8.field_2.field_1.field_3.field_2.field_4==1.3828125) && ((ret_8.field_2.field_1.field_3.field_2.field_5.field_1==123) && (ret_8.field_2.field_1.field_3.field_2.field_5.field_2==151) && (ret_8.field_2.field_1.field_3.field_2.field_5.field_3==0.671875) && (ret_8.field_2.field_1.field_3.field_2.field_5.field_4==230200040620032)))) && (((ret_8.field_2.field_1.field_4.field_1.field_1==-0.5) && (ret_8.field_2.field_1.field_4.field_1.field_2==-1.484375) && ((ret_8.field_2.field_1.field_4.field_1.field_3.field_1==78257571102720) && ((ret_8.field_2.field_1.field_4.field_1.field_3.field_2.field_1==202195772637184) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_2.field_2==21507053977600) && ((ret_8.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_1==42) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_2==43) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_3==0.453125) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_2.field_3.field_4==259622561644544)) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_2.field_4==1.18359375) && ((ret_8.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_1==201) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_2==220) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_3==-0.40625) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_2.field_5.field_4==87732745404416))) && ((ret_8.field_2.field_1.field_4.field_1.field_3.field_3.field_1==61) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_3.field_2==181) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_3.field_3==-1.34375) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_3.field_4==27713052475392)) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_4==1.640625) && (ret_8.field_2.field_1.field_4.field_1.field_3.field_5==4052472574))) && ((ret_8.field_2.field_1.field_4.field_2.field_1==249) && (ret_8.field_2.field_1.field_4.field_2.field_2==15) && (ret_8.field_2.field_1.field_4.field_2.field_3==1.484375) && (ret_8.field_2.field_1.field_4.field_2.field_4==248514888728576)) && ((ret_8.field_2.field_1.field_4.field_3.field_1==134716506374144) && (ret_8.field_2.field_1.field_4.field_3.field_2==1.046875)))) && (ret_8.field_2.field_2==2404422220)) && (ret_8.field_3==246) && ((((ret_8.field_4.field_1.field_1.field_1==109) && (ret_8.field_4.field_1.field_1.field_2==70) && (ret_8.field_4.field_1.field_1.field_3==0.875) && (ret_8.field_4.field_1.field_1.field_4==242714521763840)) && ((ret_8.field_4.field_1.field_2.field_1==85381772738560) && (ret_8.field_4.field_1.field_2.field_2==16488017559552) && ((ret_8.field_4.field_1.field_2.field_3.field_1==148) && (ret_8.field_4.field_1.field_2.field_3.field_2==97) && (ret_8.field_4.field_1.field_2.field_3.field_3==-0.859375) && (ret_8.field_4.field_1.field_2.field_3.field_4==211742737956864)) && (ret_8.field_4.field_1.field_2.field_4==-3.73046875) && ((ret_8.field_4.field_1.field_2.field_5.field_1==37) && (ret_8.field_4.field_1.field_2.field_5.field_2==103) && (ret_8.field_4.field_1.field_2.field_5.field_3==0.96875) && (ret_8.field_4.field_1.field_2.field_5.field_4==3251610451968)))) && (ret_8.field_4.field_2==E_29_7) && (ret_8.field_4.field_3==34127014920192)))) {
+ return -1;
+ }
+
+ t46 a_9_1 = (t46) {.field_1=(t43) {.field_1=(t10) {.field_1=0.171875,.field_2=3226754646},.field_2=(t12) {.field_1=(t4) {.field_1=2.765625,.field_2=0.1875,.field_3=(t3) {.field_1=276756521549824,.field_2=(t2) {.field_1=152999296499712,.field_2=85664820494336,.field_3=(t1) {.field_1=228,.field_2=103,.field_3=-0.71875,.field_4=189995730337792},.field_4=2.2109375,.field_5=(t1) {.field_1=167,.field_2=118,.field_3=-1.546875,.field_4=199486233247744}},.field_3=(t1) {.field_1=94,.field_2=71,.field_3=-1.0625,.field_4=93572022140928},.field_4=-1.046875,.field_5=3049108056}},.field_2=(t1) {.field_1=185,.field_2=79,.field_3=1.03125,.field_4=217666636349440},.field_3=(t5) {.field_1=129819186561024,.field_2=-1.421875}},.field_3=(t4) {.field_1=-1.60546875,.field_2=0.125,.field_3=(t3) {.field_1=37068096536576,.field_2=(t2) {.field_1=239555475144704,.field_2=81311387615232,.field_3=(t1) {.field_1=252,.field_2=105,.field_3=-0.71875,.field_4=148899603939328},.field_4=1.68359375,.field_5=(t1) {.field_1=42,.field_2=238,.field_3=1.53125,.field_4=236603073363968}},.field_3=(t1) {.field_1=183,.field_2=164,.field_3=-0.609375,.field_4=202904325324800},.field_4=-1.15234375,.field_5=2895375692}}},.field_2=E_44_7,.field_3=(t45) {.field_1=2208687568},.field_4=1848386781184,.field_5=(t4) {.field_1=-1.05859375,.field_2=-0.859375,.field_3=(t3) {.field_1=205448639807488,.field_2=(t2) {.field_1=190494723801088,.field_2=14572431867904,.field_3=(t1) {.field_1=128,.field_2=35,.field_3=-1.25,.field_4=224517446828032},.field_4=1.37109375,.field_5=(t1) {.field_1=59,.field_2=166,.field_3=1.453125,.field_4=61154056208384}},.field_3=(t1) {.field_1=15,.field_2=60,.field_3=0.765625,.field_4=218183195164672},.field_4=-0.765625,.field_5=2915453416}},.field_6=3275953006};
+ float a_9_2 = -0.328125;
+ t26 a_9_3 = (t26) {.field_1=(t25) {.field_1=(t9) {.field_1=E_8_1,.field_2=3258536312},.field_2=-2.17578125,.field_3=31978917462016,.field_4=76825007489024,.field_5=-0.859375,.field_6=-0.171875},.field_2=127,.field_3=269734934740992,.field_4=39};
+ t47 a_9_4 = E_47_3;
+ t48 a_9_5 = E_48_7;
+ t54 a_9_6 = (t54) {.field_1=(t49) {.field_1=613960680},.field_2=(t50) {.field_1=-0.125,.field_2=(t45) {.field_1=469993662},.field_3=201131156307968,.field_4=3.79296875},.field_3=E_51_4,.field_4=(t52) {.field_1=0.09375,.field_2=E_51_6,.field_3=134,.field_4=1.234375,.field_5=1.359375},.field_5=E_51_2,.field_6=E_53_4};
+ uint32_t a_9_7 = 604879132;
+ float a_9_8 = 0.640625;
+ t55 a_9_9 = E_55_3;
+ t56 a_9_10 = E_56_4;
+ uint64_t ret_9 = fn_9_myr(a_9_1, a_9_2, a_9_3, a_9_4, a_9_5, a_9_6, a_9_7, a_9_8, a_9_9, a_9_10);
+ if (!(ret_9==219771358019584)) {
+ return -1;
+ }
+
+ uint64_t a_10_1 = 160708767514624;
+ double a_10_2 = 0.36328125;
+ t61 a_10_3 = (t61) {.field_1=E_57_5,.field_2=(t58) {.field_1=-0.27734375,.field_2=E_36_3},.field_3=(t59) {.field_1=97,.field_2=33865353396224},.field_4=(t60) {.field_1=216701139681280,.field_2=-1.03125,.field_3=(t4) {.field_1=-0.8515625,.field_2=0.71875,.field_3=(t3) {.field_1=244705840726016,.field_2=(t2) {.field_1=53149469900800,.field_2=161998735409152,.field_3=(t1) {.field_1=127,.field_2=47,.field_3=1.25,.field_4=59620799152128},.field_4=-1.41015625,.field_5=(t1) {.field_1=130,.field_2=161,.field_3=-1.453125,.field_4=49656372789248}},.field_3=(t1) {.field_1=136,.field_2=83,.field_3=-1.15625,.field_4=278799917907969},.field_4=2.5234375,.field_5=3744252854}},.field_4=E_38_1}};
+ uint8_t a_10_4 = 202;
+ t62 a_10_5 = E_62_3;
+ uint8_t a_10_6 = 0;
+ double a_10_7 = 2.234375;
+ uint64_t a_10_8 = 215484511158272;
+ t3 ret_10 = fn_10_myr(a_10_1, a_10_2, a_10_3, a_10_4, a_10_5, a_10_6, a_10_7, a_10_8);
+ if (!((ret_10.field_1==268633981059072) && ((ret_10.field_2.field_1==24949413642240) && (ret_10.field_2.field_2==153583813787648) && ((ret_10.field_2.field_3.field_1==35) && (ret_10.field_2.field_3.field_2==252) && (ret_10.field_2.field_3.field_3==0.8125) && (ret_10.field_2.field_3.field_4==128878867382272)) && (ret_10.field_2.field_4==-0.03125) && ((ret_10.field_2.field_5.field_1==98) && (ret_10.field_2.field_5.field_2==126) && (ret_10.field_2.field_5.field_3==0.546875) && (ret_10.field_2.field_5.field_4==258416610377728))) && ((ret_10.field_3.field_1==209) && (ret_10.field_3.field_2==206) && (ret_10.field_3.field_3==1.28125) && (ret_10.field_3.field_4==180894750212096)) && (ret_10.field_4==1.390625) && (ret_10.field_5==4104417000))) {
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/test/abi/004_in-c.myr b/test/abi/004_in-c.myr
new file mode 100644
index 0000000..7e0e581
--- /dev/null
+++ b/test/abi/004_in-c.myr
@@ -0,0 +1,16 @@
+use std
+use "004_types"
+
+pkg =
+ extern const fn_1_c : (a1 : flt64 -> t2)
+ extern const fn_2_c : (a1 : flt64, a2 : t4, a3 : (uint8,uint8,flt32,uint64), a4 : (uint64,flt32) -> uint64)
+ extern const fn_3_c : (a1 : (uint8,uint8,flt32,uint64), a2 : t3, a3 : (uint8,t6,(uint64,flt32),t2), a4 : t4, a5 : (t8,uint32), a6 : uint8, a7 : flt32, a8 : flt32 -> (uint32,(flt32,uint32),(flt64,t2),(t4,(uint8,uint8,flt32,uint64),(uint64,flt32))))
+ extern const fn_4_c : (a1 : (t14,flt32,uint64,t15) -> t19)
+ extern const fn_5_c : (a1 : uint32, a2 : (flt64,t2), a3 : t21, a4 : (uint8,flt64,t14,t22), a5 : t24, a6 : uint32, a7 : flt64, a8 : t26, a9 : t27, a10 : t28 -> t29)
+ extern const fn_6_c : (a1 : ((uint8,uint8,flt32,uint64),t2), a2 : t15 -> uint32)
+ extern const fn_7_c : (a1 : flt64, a2 : flt64, a3 : t31, a4 : t21, a5 : flt64, a6 : flt32, a7 : (t32,(t2,t18),t34), a8 : uint64 -> t37)
+ extern const fn_8_c : (a1 : t38, a2 : t39, a3 : flt64, a4 : uint8 -> (uint8,((uint32,(flt32,uint32),(flt64,t2),(t4,(uint8,uint8,flt32,uint64),(uint64,flt32))),uint32),uint8,t41))
+ extern const fn_9_c : (a1 : t46, a2 : flt32, a3 : t26, a4 : t47, a5 : t48, a6 : t54, a7 : uint32, a8 : flt32, a9 : t55, a10 : t56 -> uint64)
+ extern const fn_10_c : (a1 : uint64, a2 : flt64, a3 : (t57,(flt64,t36),t59,(uint64,flt32,t4,t38)), a4 : uint8, a5 : t62, a6 : uint8, a7 : flt64, a8 : uint64 -> t3)
+ extern const check_c_to_myr_fns : (-> int)
+;;
diff --git a/test/abi/004_in-myr.myr b/test/abi/004_in-myr.myr
new file mode 100644
index 0000000..e67d4e6
--- /dev/null
+++ b/test/abi/004_in-myr.myr
@@ -0,0 +1,310 @@
+use std
+use "004_types"
+
+pkg =
+ const fn_1_myr : (a1 : flt64 -> t2)
+ const fn_2_myr : (a1 : flt64, a2 : t4, a3 : (uint8,uint8,flt32,uint64), a4 : (uint64,flt32) -> uint64)
+ const fn_3_myr : (a1 : (uint8,uint8,flt32,uint64), a2 : t3, a3 : (uint8,t6,(uint64,flt32),t2), a4 : t4, a5 : (t8,uint32), a6 : uint8, a7 : flt32, a8 : flt32 -> (uint32,(flt32,uint32),(flt64,t2),(t4,(uint8,uint8,flt32,uint64),(uint64,flt32))))
+ const fn_4_myr : (a1 : (t14,flt32,uint64,t15) -> t19)
+ const fn_5_myr : (a1 : uint32, a2 : (flt64,t2), a3 : t21, a4 : (uint8,flt64,t14,t22), a5 : t24, a6 : uint32, a7 : flt64, a8 : t26, a9 : t27, a10 : t28 -> t29)
+ const fn_6_myr : (a1 : ((uint8,uint8,flt32,uint64),t2), a2 : t15 -> uint32)
+ const fn_7_myr : (a1 : flt64, a2 : flt64, a3 : t31, a4 : t21, a5 : flt64, a6 : flt32, a7 : (t32,(t2,t18),t34), a8 : uint64 -> t37)
+ const fn_8_myr : (a1 : t38, a2 : t39, a3 : flt64, a4 : uint8 -> (uint8,((uint32,(flt32,uint32),(flt64,t2),(t4,(uint8,uint8,flt32,uint64),(uint64,flt32))),uint32),uint8,t41))
+ const fn_9_myr : (a1 : t46, a2 : flt32, a3 : t26, a4 : t47, a5 : t48, a6 : t54, a7 : uint32, a8 : flt32, a9 : t55, a10 : t56 -> uint64)
+ const fn_10_myr : (a1 : uint64, a2 : flt64, a3 : (t57,(flt64,t36),t59,(uint64,flt32,t4,t38)), a4 : uint8, a5 : t62, a6 : uint8, a7 : flt64, a8 : uint64 -> t3)
+;;
+
+const fn_1_myr = { a1 : flt64
+ if !(a1==-0.26171875)
+ goto bad
+ ;;
+
+ -> [.field_1=12459410325504,.field_2=98659448520704,.field_3=(166,107,0.140625,92389009653760),.field_4=-3.140625,.field_5=(157,191,1.125,644801363968)]
+
+:bad
+ -> [.field_1=238850629042176,.field_2=48799761170432,.field_3=(120,183,1.109375,182937149505536),.field_4=3.46875,.field_5=(140,106,-0.4375,114576194142208)]
+}
+
+const fn_2_myr = { a1 : flt64, a2 : t4, a3 : (uint8,uint8,flt32,uint64), a4 : (uint64,flt32)
+ if !(a1==-3.80078125)
+ goto bad
+ ;;
+
+ if !((a2.field_1==2.8203125) && (a2.field_2==1.40625) && ((a2.field_3.field_1==281155744301057) && ((a2.field_3.field_2.field_1==201484396396544) && (a2.field_3.field_2.field_2==167610483867648) && ((a2.field_3.field_2.field_3.0==241) && (a2.field_3.field_2.field_3.1==67) && (a2.field_3.field_2.field_3.2==-1.546875) && (a2.field_3.field_2.field_3.3==85217436499968)) && (a2.field_3.field_2.field_4==1.33203125) && ((a2.field_3.field_2.field_5.0==115) && (a2.field_3.field_2.field_5.1==174) && (a2.field_3.field_2.field_5.2==0.578125) && (a2.field_3.field_2.field_5.3==108879745908736))) && ((a2.field_3.field_3.0==46) && (a2.field_3.field_3.1==0) && (a2.field_3.field_3.2==0.484375) && (a2.field_3.field_3.3==41200816095232)) && (a2.field_3.field_4==1.640625) && (a2.field_3.field_5==4163457034)))
+ goto bad
+ ;;
+
+ if !((a3.0==179) && (a3.1==82) && (a3.2==0.796875) && (a3.3==149846806626304))
+ goto bad
+ ;;
+
+ if !((a4.0==132525092503552) && (a4.1==-1.3125))
+ goto bad
+ ;;
+
+ -> 132205860093952
+
+:bad
+ -> 224271076950016
+}
+
+const fn_3_myr = { a1 : (uint8,uint8,flt32,uint64), a2 : t3, a3 : (uint8,t6,(uint64,flt32),t2), a4 : t4, a5 : (t8,uint32), a6 : uint8, a7 : flt32, a8 : flt32
+ if !((a1.0==211) && (a1.1==183) && (a1.2==0.71875) && (a1.3==77205130182656))
+ goto bad
+ ;;
+
+ if !((a2.field_1==186084876091392) && ((a2.field_2.field_1==162500698177536) && (a2.field_2.field_2==117147867938816) && ((a2.field_2.field_3.0==81) && (a2.field_2.field_3.1==185) && (a2.field_2.field_3.2==-1.171875) && (a2.field_2.field_3.3==80629570863104)) && (a2.field_2.field_4==-2.453125) && ((a2.field_2.field_5.0==49) && (a2.field_2.field_5.1==253) && (a2.field_2.field_5.2==0.03125) && (a2.field_2.field_5.3==266183655817216))) && ((a2.field_3.0==133) && (a2.field_3.1==78) && (a2.field_3.2==-1.15625) && (a2.field_3.3==208468516143104)) && (a2.field_4==0.625) && (a2.field_5==2593151244))
+ goto bad
+ ;;
+
+ if !((a3.0==104) && (a3.1==`E_6_7) && ((a3.2.0==168319363710976) && (a3.2.1==1.015625)) && ((a3.3.field_1==105329353555968) && (a3.3.field_2==49345085177856) && ((a3.3.field_3.0==61) && (a3.3.field_3.1==176) && (a3.3.field_3.2==1.25) && (a3.3.field_3.3==102963779993600)) && (a3.3.field_4==3.734375) && ((a3.3.field_5.0==21) && (a3.3.field_5.1==143) && (a3.3.field_5.2==1.46875) && (a3.3.field_5.3==167234555215872))))
+ goto bad
+ ;;
+
+ if !((a4.field_1==3.12890625) && (a4.field_2==0.4375) && ((a4.field_3.field_1==63982214447104) && ((a4.field_3.field_2.field_1==135072305512448) && (a4.field_3.field_2.field_2==67998052515840) && ((a4.field_3.field_2.field_3.0==12) && (a4.field_3.field_2.field_3.1==71) && (a4.field_3.field_2.field_3.2==-0.578125) && (a4.field_3.field_2.field_3.3==187813731500032)) && (a4.field_3.field_2.field_4==3.07421875) && ((a4.field_3.field_2.field_5.0==205) && (a4.field_3.field_2.field_5.1==88) && (a4.field_3.field_2.field_5.2==-0.53125) && (a4.field_3.field_2.field_5.3==674692464640))) && ((a4.field_3.field_3.0==193) && (a4.field_3.field_3.1==11) && (a4.field_3.field_3.2==0.3125) && (a4.field_3.field_3.3==162599899496448)) && (a4.field_3.field_4==-0.62890625) && (a4.field_3.field_5==3331590902)))
+ goto bad
+ ;;
+
+ if !((a5.0==`E_8_5) && (a5.1==3187538484))
+ goto bad
+ ;;
+
+ if !(a6==90)
+ goto bad
+ ;;
+
+ if !(a7==0.125)
+ goto bad
+ ;;
+
+ if !(a8==1.203125)
+ goto bad
+ ;;
+
+ -> (650661816,(-0.015625,2851726420),(-3.625,[.field_1=74772813709312,.field_2=112035052126208,.field_3=(41,21,-0.28125,170067893944320),.field_4=0.52734375,.field_5=(81,216,-0.328125,156496708894720)]),([.field_1=-3.19140625,.field_2=1.515625,.field_3=[.field_1=236308757348352,.field_2=[.field_1=263713238548480,.field_2=40608255049728,.field_3=(138,142,-1.1875,100184688558080),.field_4=2.76171875,.field_5=(73,65,1.28125,53591441145856)],.field_3=(54,81,-0.5,200208867524608),.field_4=3.7734375,.field_5=1624457196]],(250,97,0.125,16842727882752),(222985090629632,-1.109375)))
+
+:bad
+ -> (2694026068,(-1.21875,4260115106),(-3.71484375,[.field_1=187395190947840,.field_2=23501456670720,.field_3=(1,129,-1.5,42547396608000),.field_4=-3.53515625,.field_5=(148,70,-0.296875,121552673308672)]),([.field_1=0.47265625,.field_2=0.5,.field_3=[.field_1=96003926654976,.field_2=[.field_1=211416389124096,.field_2=246412730040320,.field_3=(168,23,0.265625,181009723555840),.field_4=-0.2265625,.field_5=(144,6,-1.53125,175496053391360)],.field_3=(208,40,-0.78125,260664153079808),.field_4=-2.7421875,.field_5=1183476516]],(151,59,-0.6875,27338362322944),(71252360822784,-0.203125)))
+}
+
+const fn_4_myr = { a1 : (t14,flt32,uint64,t15)
+ if !((a1.0==`E_14_1) && (a1.1==-0.734375) && (a1.2==31855997878272) && (a1.3==`E_15_5))
+ goto bad
+ ;;
+
+ -> [.field_1=0.03125,.field_2=[.field_1=(947051528,(0.96875,241559198),(-0.125,[.field_1=22236939157504,.field_2=74920569470976,.field_3=(22,25,-0.46875,99222545367040),.field_4=-2.25,.field_5=(6,66,0.9375,72999681130496)]),([.field_1=-2.41015625,.field_2=-0.328125,.field_3=[.field_1=33373226926080,.field_2=[.field_1=264437028749312,.field_2=41455185559552,.field_3=(58,157,-1.40625,172834173747200),.field_4=2.96484375,.field_5=(47,72,-0.8125,161994014326784)],.field_3=(98,191,0.9375,54448237051904),.field_4=2.390625,.field_5=1201643174]],(69,18,-0.421875,104603486781440),(119279618490368,0.6875))),.field_2=0.65625,.field_3=125926830637056,.field_4=250],.field_3=`E_18_3,.field_4=[.field_1=198926511898624,.field_2=48406520135680,.field_3=(198,211,-1.21875,259336007450624),.field_4=-3.48828125,.field_5=(185,248,0.53125,170021025611776)]]
+
+:bad
+ -> [.field_1=-1.078125,.field_2=[.field_1=(4079464194,(1.09375,3151538724),(-1.30078125,[.field_1=167739336687616,.field_2=149124248371200,.field_3=(134,102,0.96875,224961458864128),.field_4=-0.203125,.field_5=(45,43,1.25,252713962045440)]),([.field_1=1.9921875,.field_2=-0.484375,.field_3=[.field_1=247192255463424,.field_2=[.field_1=38160966352896,.field_2=14664874459136,.field_3=(12,232,1.1875,45492371193856),.field_4=2.5859375,.field_5=(238,226,0.953125,168620418269184)],.field_3=(125,246,0.15625,94751226331136),.field_4=1.5234375,.field_5=3789142650]],(238,57,-0.28125,94165903343616),(9631686328320,-0.921875))),.field_2=2.4140625,.field_3=59577473957888,.field_4=97],.field_3=`E_18_5,.field_4=[.field_1=30816459292672,.field_2=37695797854208,.field_3=(13,252,-0.71875,29337515720704),.field_4=-3.61328125,.field_5=(45,251,-0.9375,2851418144768)]]
+}
+
+const fn_5_myr = { a1 : uint32, a2 : (flt64,t2), a3 : t21, a4 : (uint8,flt64,t14,t22), a5 : t24, a6 : uint32, a7 : flt64, a8 : t26, a9 : t27, a10 : t28
+ if !(a1==3491579916)
+ goto bad
+ ;;
+
+ if !((a2.0==2.140625) && ((a2.1.field_1==17107741573120) && (a2.1.field_2==257014155051008) && ((a2.1.field_3.0==120) && (a2.1.field_3.1==241) && (a2.1.field_3.2==1.078125) && (a2.1.field_3.3==195206002114560)) && (a2.1.field_4==-1.15625) && ((a2.1.field_5.0==46) && (a2.1.field_5.1==186) && (a2.1.field_5.2==0.1875) && (a2.1.field_5.3==278368438321153))))
+ goto bad
+ ;;
+
+ if !((((a3.field_1.0.0==66) && (a3.field_1.0.1==239) && (a3.field_1.0.2==-1.203125) && (a3.field_1.0.3==89848418926592)) && ((a3.field_1.1.field_1==239095841685504) && (a3.field_1.1.field_2==165469104898048) && ((a3.field_1.1.field_3.0==67) && (a3.field_1.1.field_3.1==177) && (a3.field_1.1.field_3.2==-0.6875) && (a3.field_1.1.field_3.3==172891013120000)) && (a3.field_1.1.field_4==2.93359375) && ((a3.field_1.1.field_5.0==2) && (a3.field_1.1.field_5.1==44) && (a3.field_1.1.field_5.2==1.140625) && (a3.field_1.1.field_5.3==266978004566016)))) && (((a3.field_2.field_1.0==488880992) && ((a3.field_2.field_1.1.0==0.1875) && (a3.field_2.field_1.1.1==4283670802)) && ((a3.field_2.field_1.2.0==-2.4453125) && ((a3.field_2.field_1.2.1.field_1==86642904793088) && (a3.field_2.field_1.2.1.field_2==9550056259584) && ((a3.field_2.field_1.2.1.field_3.0==135) && (a3.field_2.field_1.2.1.field_3.1==40) && (a3.field_2.field_1.2.1.field_3.2==-1.234375) && (a3.field_2.field_1.2.1.field_3.3==14565778391040)) && (a3.field_2.field_1.2.1.field_4==3.859375) && ((a3.field_2.field_1.2.1.field_5.0==97) && (a3.field_2.field_1.2.1.field_5.1==149) && (a3.field_2.field_1.2.1.field_5.2==0.75) && (a3.field_2.field_1.2.1.field_5.3==208889540378624)))) && (((a3.field_2.field_1.3.0.field_1==3.3515625) && (a3.field_2.field_1.3.0.field_2==1.5625) && ((a3.field_2.field_1.3.0.field_3.field_1==190971227013120) && ((a3.field_2.field_1.3.0.field_3.field_2.field_1==13441050607616) && (a3.field_2.field_1.3.0.field_3.field_2.field_2==89440160972800) && ((a3.field_2.field_1.3.0.field_3.field_2.field_3.0==135) && (a3.field_2.field_1.3.0.field_3.field_2.field_3.1==162) && (a3.field_2.field_1.3.0.field_3.field_2.field_3.2==0.25) && (a3.field_2.field_1.3.0.field_3.field_2.field_3.3==62767721873408)) && (a3.field_2.field_1.3.0.field_3.field_2.field_4==3.2578125) && ((a3.field_2.field_1.3.0.field_3.field_2.field_5.0==49) && (a3.field_2.field_1.3.0.field_3.field_2.field_5.1==25) && (a3.field_2.field_1.3.0.field_3.field_2.field_5.2==1.34375) && (a3.field_2.field_1.3.0.field_3.field_2.field_5.3==103776287981568))) && ((a3.field_2.field_1.3.0.field_3.field_3.0==246) && (a3.field_2.field_1.3.0.field_3.field_3.1==223) && (a3.field_2.field_1.3.0.field_3.field_3.2==-0.0625) && (a3.field_2.field_1.3.0.field_3.field_3.3==147071279038464)) && (a3.field_2.field_1.3.0.field_3.field_4==2.90625) && (a3.field_2.field_1.3.0.field_3.field_5==2875920810))) && ((a3.field_2.field_1.3.1.0==212) && (a3.field_2.field_1.3.1.1==231) && (a3.field_2.field_1.3.1.2==-0.9375) && (a3.field_2.field_1.3.1.3==278720009601025)) && ((a3.field_2.field_1.3.2.0==4008885223424) && (a3.field_2.field_1.3.2.1==-0.78125)))) && (a3.field_2.field_2==3.78125) && (a3.field_2.field_3==111604690845696) && (a3.field_2.field_4==213)) && (a3.field_3==0.703125) && (a3.field_4==`E_15_1) && (a3.field_5==2.0625) && (a3.field_6==1.73828125))
+ goto bad
+ ;;
+
+ if !((a4.0==208) && (a4.1==1.30078125) && (a4.2==`E_14_3) && (a4.3==`E_22_2))
+ goto bad
+ ;;
+
+ if !(a5==`E_24_4)
+ goto bad
+ ;;
+
+ if !(a6==157825342)
+ goto bad
+ ;;
+
+ if !(a7==3.765625)
+ goto bad
+ ;;
+
+ if !((((a8.field_1.field_1.0==`E_8_6) && (a8.field_1.field_1.1==3815456600)) && (a8.field_1.field_2==-1.58203125) && (a8.field_1.field_3==16877321453568) && (a8.field_1.field_4==145567904956416) && (a8.field_1.field_5==-0.125) && (a8.field_1.field_6==1.76171875)) && (a8.field_2==171) && (a8.field_3==140444787539968) && (a8.field_4==15))
+ goto bad
+ ;;
+
+ if !(a9==`E_27_5)
+ goto bad
+ ;;
+
+ if !(a10==`E_28_3)
+ goto bad
+ ;;
+
+ -> `E_29_1
+
+:bad
+ -> `E_29_3
+}
+
+const fn_6_myr = { a1 : ((uint8,uint8,flt32,uint64),t2), a2 : t15
+ if !(((a1.0.0==141) && (a1.0.1==149) && (a1.0.2==-1.25) && (a1.0.3==58279295057920)) && ((a1.1.field_1==63572928888832) && (a1.1.field_2==46145049067520) && ((a1.1.field_3.0==109) && (a1.1.field_3.1==59) && (a1.1.field_3.2==-1.4375) && (a1.1.field_3.3==89364507131904)) && (a1.1.field_4==0.23828125) && ((a1.1.field_5.0==25) && (a1.1.field_5.1==213) && (a1.1.field_5.2==1.546875) && (a1.1.field_5.3==232592606363648))))
+ goto bad
+ ;;
+
+ if !(a2==`E_15_6)
+ goto bad
+ ;;
+
+ -> 4008488864
+
+:bad
+ -> 2072402048
+}
+
+const fn_7_myr = { a1 : flt64, a2 : flt64, a3 : t31, a4 : t21, a5 : flt64, a6 : flt32, a7 : (t32,(t2,t18),t34), a8 : uint64
+ if !(a1==2.84375)
+ goto bad
+ ;;
+
+ if !(a2==-3.25390625)
+ goto bad
+ ;;
+
+ if !((a3.field_1==-2.56640625) && (a3.field_2==-0.59375) && (a3.field_3==-0.34375) && ((a3.field_4.field_1==83) && (a3.field_4.field_2==-0.8125) && (a3.field_4.field_3==245451030659072) && (a3.field_4.field_4==`E_24_1) && (a3.field_4.field_5==0.58203125) && (a3.field_4.field_6==0.734375)))
+ goto bad
+ ;;
+
+ if !((((a4.field_1.0.0==154) && (a4.field_1.0.1==16) && (a4.field_1.0.2==1.53125) && (a4.field_1.0.3==240450872147968)) && ((a4.field_1.1.field_1==93431282270208) && (a4.field_1.1.field_2==243719039352832) && ((a4.field_1.1.field_3.0==176) && (a4.field_1.1.field_3.1==179) && (a4.field_1.1.field_3.2==1.421875) && (a4.field_1.1.field_3.3==211285330100224)) && (a4.field_1.1.field_4==-2.0546875) && ((a4.field_1.1.field_5.0==120) && (a4.field_1.1.field_5.1==11) && (a4.field_1.1.field_5.2==0.984375) && (a4.field_1.1.field_5.3==85609800400896)))) && (((a4.field_2.field_1.0==3734886520) && ((a4.field_2.field_1.1.0==-0.03125) && (a4.field_2.field_1.1.1==4178676130)) && ((a4.field_2.field_1.2.0==1.4609375) && ((a4.field_2.field_1.2.1.field_1==278857533489153) && (a4.field_2.field_1.2.1.field_2==40762444611584) && ((a4.field_2.field_1.2.1.field_3.0==255) && (a4.field_2.field_1.2.1.field_3.1==97) && (a4.field_2.field_1.2.1.field_3.2==-0.09375) && (a4.field_2.field_1.2.1.field_3.3==67201348272128)) && (a4.field_2.field_1.2.1.field_4==-1.9375) && ((a4.field_2.field_1.2.1.field_5.0==145) && (a4.field_2.field_1.2.1.field_5.1==208) && (a4.field_2.field_1.2.1.field_5.2==1.53125) && (a4.field_2.field_1.2.1.field_5.3==6521111838720)))) && (((a4.field_2.field_1.3.0.field_1==-0.2265625) && (a4.field_2.field_1.3.0.field_2==0.28125) && ((a4.field_2.field_1.3.0.field_3.field_1==24215899865088) && ((a4.field_2.field_1.3.0.field_3.field_2.field_1==128440090099712) && (a4.field_2.field_1.3.0.field_3.field_2.field_2==124968190476288) && ((a4.field_2.field_1.3.0.field_3.field_2.field_3.0==106) && (a4.field_2.field_1.3.0.field_3.field_2.field_3.1==82) && (a4.field_2.field_1.3.0.field_3.field_2.field_3.2==-1.15625) && (a4.field_2.field_1.3.0.field_3.field_2.field_3.3==33900307021824)) && (a4.field_2.field_1.3.0.field_3.field_2.field_4==-1.75390625) && ((a4.field_2.field_1.3.0.field_3.field_2.field_5.0==226) && (a4.field_2.field_1.3.0.field_3.field_2.field_5.1==91) && (a4.field_2.field_1.3.0.field_3.field_2.field_5.2==0.765625) && (a4.field_2.field_1.3.0.field_3.field_2.field_5.3==261485102891008))) && ((a4.field_2.field_1.3.0.field_3.field_3.0==43) && (a4.field_2.field_1.3.0.field_3.field_3.1==12) && (a4.field_2.field_1.3.0.field_3.field_3.2==0.9375) && (a4.field_2.field_1.3.0.field_3.field_3.3==185189970870272)) && (a4.field_2.field_1.3.0.field_3.field_4==-3.73046875) && (a4.field_2.field_1.3.0.field_3.field_5==2085882880))) && ((a4.field_2.field_1.3.1.0==166) && (a4.field_2.field_1.3.1.1==42) && (a4.field_2.field_1.3.1.2==-0.0625) && (a4.field_2.field_1.3.1.3==8114197757952)) && ((a4.field_2.field_1.3.2.0==179406660042752) && (a4.field_2.field_1.3.2.1==0.6875)))) && (a4.field_2.field_2==-1.7109375) && (a4.field_2.field_3==58423380148224) && (a4.field_2.field_4==136)) && (a4.field_3==-0.71875) && (a4.field_4==`E_15_2) && (a4.field_5==-3.87109375) && (a4.field_6==2.8046875))
+ goto bad
+ ;;
+
+ if !(a5==-0.3046875)
+ goto bad
+ ;;
+
+ if !(a6==0.734375)
+ goto bad
+ ;;
+
+ if !(((a7.0.field_1==66690558)) && (((a7.1.0.field_1==201975036641280) && (a7.1.0.field_2==191791705096192) && ((a7.1.0.field_3.0==188) && (a7.1.0.field_3.1==255) && (a7.1.0.field_3.2==1.21875) && (a7.1.0.field_3.3==75962620575744)) && (a7.1.0.field_4==-1.81640625) && ((a7.1.0.field_5.0==30) && (a7.1.0.field_5.1==70) && (a7.1.0.field_5.2==-1.171875) && (a7.1.0.field_5.3==122844992372736))) && (a7.1.1==`E_18_6)) && (a7.2==`E_34_3))
+ goto bad
+ ;;
+
+ if !(a8==145924444127232)
+ goto bad
+ ;;
+
+ -> [.field_1=`E_36_2]
+
+:bad
+ -> [.field_1=`E_36_3]
+}
+
+const fn_8_myr = { a1 : t38, a2 : t39, a3 : flt64, a4 : uint8
+ if !(a1==`E_38_4)
+ goto bad
+ ;;
+
+ if !(a2==`E_39_1)
+ goto bad
+ ;;
+
+ if !(a3==-2.69140625)
+ goto bad
+ ;;
+
+ if !(a4==17)
+ goto bad
+ ;;
+
+ -> (86,((3264522662,(1.125,3024392),(2.90625,[.field_1=246587710898176,.field_2=98684395847680,.field_3=(7,232,-0.25,243343254224896),.field_4=1.3828125,.field_5=(123,151,0.671875,230200040620032)]),([.field_1=-0.5,.field_2=-1.484375,.field_3=[.field_1=78257571102720,.field_2=[.field_1=202195772637184,.field_2=21507053977600,.field_3=(42,43,0.453125,259622561644544),.field_4=1.18359375,.field_5=(201,220,-0.40625,87732745404416)],.field_3=(61,181,-1.34375,27713052475392),.field_4=1.640625,.field_5=4052472574]],(249,15,1.484375,248514888728576),(134716506374144,1.046875))),2404422220),246,[.field_1=((109,70,0.875,242714521763840),[.field_1=85381772738560,.field_2=16488017559552,.field_3=(148,97,-0.859375,211742737956864),.field_4=-3.73046875,.field_5=(37,103,0.96875,3251610451968)]),.field_2=`E_29_7,.field_3=34127014920192])
+
+:bad
+ -> (64,((2072157872,(-0.96875,1499873962),(-2.40234375,[.field_1=38436406689792,.field_2=91121526767616,.field_3=(64,27,-0.921875,205924771299328),.field_4=3.46484375,.field_5=(196,177,-0.40625,11710038278144)]),([.field_1=-0.1953125,.field_2=-0.84375,.field_3=[.field_1=97091811147776,.field_2=[.field_1=150148618125312,.field_2=228580951588864,.field_3=(185,194,0.203125,210398628937728),.field_4=3.1875,.field_5=(247,142,1.3125,208583715848192)],.field_3=(173,43,-0.875,245248454164480),.field_4=0.15234375,.field_5=1786378194]],(2,215,0.53125,32483101376512),(14001190862848,-0.3125))),251181130),208,[.field_1=((24,109,1.125,160345918668800),[.field_1=185513129279488,.field_2=57065717104640,.field_3=(26,120,1.34375,242789147082752),.field_4=-3.62890625,.field_5=(172,197,-1.5625,65287928938496)]),.field_2=`E_29_7,.field_3=209522592579584])
+}
+
+const fn_9_myr = { a1 : t46, a2 : flt32, a3 : t26, a4 : t47, a5 : t48, a6 : t54, a7 : uint32, a8 : flt32, a9 : t55, a10 : t56
+ if !((((a1.field_1.0.0==0.171875) && (a1.field_1.0.1==3226754646)) && (((a1.field_1.1.0.field_1==2.765625) && (a1.field_1.1.0.field_2==0.1875) && ((a1.field_1.1.0.field_3.field_1==276756521549824) && ((a1.field_1.1.0.field_3.field_2.field_1==152999296499712) && (a1.field_1.1.0.field_3.field_2.field_2==85664820494336) && ((a1.field_1.1.0.field_3.field_2.field_3.0==228) && (a1.field_1.1.0.field_3.field_2.field_3.1==103) && (a1.field_1.1.0.field_3.field_2.field_3.2==-0.71875) && (a1.field_1.1.0.field_3.field_2.field_3.3==189995730337792)) && (a1.field_1.1.0.field_3.field_2.field_4==2.2109375) && ((a1.field_1.1.0.field_3.field_2.field_5.0==167) && (a1.field_1.1.0.field_3.field_2.field_5.1==118) && (a1.field_1.1.0.field_3.field_2.field_5.2==-1.546875) && (a1.field_1.1.0.field_3.field_2.field_5.3==199486233247744))) && ((a1.field_1.1.0.field_3.field_3.0==94) && (a1.field_1.1.0.field_3.field_3.1==71) && (a1.field_1.1.0.field_3.field_3.2==-1.0625) && (a1.field_1.1.0.field_3.field_3.3==93572022140928)) && (a1.field_1.1.0.field_3.field_4==-1.046875) && (a1.field_1.1.0.field_3.field_5==3049108056))) && ((a1.field_1.1.1.0==185) && (a1.field_1.1.1.1==79) && (a1.field_1.1.1.2==1.03125) && (a1.field_1.1.1.3==217666636349440)) && ((a1.field_1.1.2.0==129819186561024) && (a1.field_1.1.2.1==-1.421875))) && ((a1.field_1.2.field_1==-1.60546875) && (a1.field_1.2.field_2==0.125) && ((a1.field_1.2.field_3.field_1==37068096536576) && ((a1.field_1.2.field_3.field_2.field_1==239555475144704) && (a1.field_1.2.field_3.field_2.field_2==81311387615232) && ((a1.field_1.2.field_3.field_2.field_3.0==252) && (a1.field_1.2.field_3.field_2.field_3.1==105) && (a1.field_1.2.field_3.field_2.field_3.2==-0.71875) && (a1.field_1.2.field_3.field_2.field_3.3==148899603939328)) && (a1.field_1.2.field_3.field_2.field_4==1.68359375) && ((a1.field_1.2.field_3.field_2.field_5.0==42) && (a1.field_1.2.field_3.field_2.field_5.1==238) && (a1.field_1.2.field_3.field_2.field_5.2==1.53125) && (a1.field_1.2.field_3.field_2.field_5.3==236603073363968))) && ((a1.field_1.2.field_3.field_3.0==183) && (a1.field_1.2.field_3.field_3.1==164) && (a1.field_1.2.field_3.field_3.2==-0.609375) && (a1.field_1.2.field_3.field_3.3==202904325324800)) && (a1.field_1.2.field_3.field_4==-1.15234375) && (a1.field_1.2.field_3.field_5==2895375692)))) && (a1.field_2==`E_44_7) && ((a1.field_3.field_1==2208687568)) && (a1.field_4==1848386781184) && ((a1.field_5.field_1==-1.05859375) && (a1.field_5.field_2==-0.859375) && ((a1.field_5.field_3.field_1==205448639807488) && ((a1.field_5.field_3.field_2.field_1==190494723801088) && (a1.field_5.field_3.field_2.field_2==14572431867904) && ((a1.field_5.field_3.field_2.field_3.0==128) && (a1.field_5.field_3.field_2.field_3.1==35) && (a1.field_5.field_3.field_2.field_3.2==-1.25) && (a1.field_5.field_3.field_2.field_3.3==224517446828032)) && (a1.field_5.field_3.field_2.field_4==1.37109375) && ((a1.field_5.field_3.field_2.field_5.0==59) && (a1.field_5.field_3.field_2.field_5.1==166) && (a1.field_5.field_3.field_2.field_5.2==1.453125) && (a1.field_5.field_3.field_2.field_5.3==61154056208384))) && ((a1.field_5.field_3.field_3.0==15) && (a1.field_5.field_3.field_3.1==60) && (a1.field_5.field_3.field_3.2==0.765625) && (a1.field_5.field_3.field_3.3==218183195164672)) && (a1.field_5.field_3.field_4==-0.765625) && (a1.field_5.field_3.field_5==2915453416))) && (a1.field_6==3275953006))
+ goto bad
+ ;;
+
+ if !(a2==-0.328125)
+ goto bad
+ ;;
+
+ if !((((a3.field_1.field_1.0==`E_8_1) && (a3.field_1.field_1.1==3258536312)) && (a3.field_1.field_2==-2.17578125) && (a3.field_1.field_3==31978917462016) && (a3.field_1.field_4==76825007489024) && (a3.field_1.field_5==-0.859375) && (a3.field_1.field_6==-0.171875)) && (a3.field_2==127) && (a3.field_3==269734934740992) && (a3.field_4==39))
+ goto bad
+ ;;
+
+ if !(a4==`E_47_3)
+ goto bad
+ ;;
+
+ if !(a5==`E_48_7)
+ goto bad
+ ;;
+
+ if !(((a6.field_1.field_1==613960680)) && ((a6.field_2.0==-0.125) && ((a6.field_2.1.field_1==469993662)) && (a6.field_2.2==201131156307968) && (a6.field_2.3==3.79296875)) && (a6.field_3==`E_51_4) && ((a6.field_4.field_1==0.09375) && (a6.field_4.field_2==`E_51_6) && (a6.field_4.field_3==134) && (a6.field_4.field_4==1.234375) && (a6.field_4.field_5==1.359375)) && (a6.field_5==`E_51_2) && (a6.field_6==`E_53_4))
+ goto bad
+ ;;
+
+ if !(a7==604879132)
+ goto bad
+ ;;
+
+ if !(a8==0.640625)
+ goto bad
+ ;;
+
+ if !(a9==`E_55_3)
+ goto bad
+ ;;
+
+ if !(a10==`E_56_4)
+ goto bad
+ ;;
+
+ -> 219771358019584
+
+:bad
+ -> 168173477429248
+}
+
+const fn_10_myr = { a1 : uint64, a2 : flt64, a3 : (t57,(flt64,t36),t59,(uint64,flt32,t4,t38)), a4 : uint8, a5 : t62, a6 : uint8, a7 : flt64, a8 : uint64
+ if !(a1==160708767514624)
+ goto bad
+ ;;
+
+ if !(a2==0.36328125)
+ goto bad
+ ;;
+
+ if !((a3.0==`E_57_5) && ((a3.1.0==-0.27734375) && (a3.1.1==`E_36_3)) && ((a3.2.field_1==97) && (a3.2.field_2==33865353396224)) && ((a3.3.0==216701139681280) && (a3.3.1==-1.03125) && ((a3.3.2.field_1==-0.8515625) && (a3.3.2.field_2==0.71875) && ((a3.3.2.field_3.field_1==244705840726016) && ((a3.3.2.field_3.field_2.field_1==53149469900800) && (a3.3.2.field_3.field_2.field_2==161998735409152) && ((a3.3.2.field_3.field_2.field_3.0==127) && (a3.3.2.field_3.field_2.field_3.1==47) && (a3.3.2.field_3.field_2.field_3.2==1.25) && (a3.3.2.field_3.field_2.field_3.3==59620799152128)) && (a3.3.2.field_3.field_2.field_4==-1.41015625) && ((a3.3.2.field_3.field_2.field_5.0==130) && (a3.3.2.field_3.field_2.field_5.1==161) && (a3.3.2.field_3.field_2.field_5.2==-1.453125) && (a3.3.2.field_3.field_2.field_5.3==49656372789248))) && ((a3.3.2.field_3.field_3.0==136) && (a3.3.2.field_3.field_3.1==83) && (a3.3.2.field_3.field_3.2==-1.15625) && (a3.3.2.field_3.field_3.3==278799917907969)) && (a3.3.2.field_3.field_4==2.5234375) && (a3.3.2.field_3.field_5==3744252854))) && (a3.3.3==`E_38_1)))
+ goto bad
+ ;;
+
+ if !(a4==202)
+ goto bad
+ ;;
+
+ if !(a5==`E_62_3)
+ goto bad
+ ;;
+
+ if !(a6==0)
+ goto bad
+ ;;
+
+ if !(a7==2.234375)
+ goto bad
+ ;;
+
+ if !(a8==215484511158272)
+ goto bad
+ ;;
+
+ -> [.field_1=268633981059072,.field_2=[.field_1=24949413642240,.field_2=153583813787648,.field_3=(35,252,0.8125,128878867382272),.field_4=-0.03125,.field_5=(98,126,0.546875,258416610377728)],.field_3=(209,206,1.28125,180894750212096),.field_4=1.390625,.field_5=4104417000]
+
+:bad
+ -> [.field_1=194724296130560,.field_2=[.field_1=131606075277312,.field_2=177386963992576,.field_3=(80,184,0.453125,88961125056512),.field_4=-3.15625,.field_5=(110,126,1.140625,266037895757824)],.field_3=(137,208,-1.46875,23546486325248),.field_4=3.55078125,.field_5=90406856]
+}
+
diff --git a/test/abi/004_main.myr b/test/abi/004_main.myr
new file mode 100644
index 0000000..905f23b
--- /dev/null
+++ b/test/abi/004_main.myr
@@ -0,0 +1,175 @@
+/* seed = 1591515270 */
+use std
+use "004_types"
+use "004_in-myr"
+use "004_in-c"
+
+const main = {
+ /* myr calling myr */
+ var a_1_1 : flt64 = -0.26171875
+ var ret_1 : t2 = fn_1_myr(a_1_1)
+ if !((ret_1.field_1==12459410325504) && (ret_1.field_2==98659448520704) && ((ret_1.field_3.0==166) && (ret_1.field_3.1==107) && (ret_1.field_3.2==0.140625) && (ret_1.field_3.3==92389009653760)) && (ret_1.field_4==-3.140625) && ((ret_1.field_5.0==157) && (ret_1.field_5.1==191) && (ret_1.field_5.2==1.125) && (ret_1.field_5.3==644801363968)))
+ std.put("myr_to_myr 1 failed\n")
+ std.exit(1)
+ ;;
+ var a_2_1 : flt64 = -3.80078125
+ var a_2_2 : t4 = [.field_1=2.8203125,.field_2=1.40625,.field_3=[.field_1=281155744301057,.field_2=[.field_1=201484396396544,.field_2=167610483867648,.field_3=(241,67,-1.546875,85217436499968),.field_4=1.33203125,.field_5=(115,174,0.578125,108879745908736)],.field_3=(46,0,0.484375,41200816095232),.field_4=1.640625,.field_5=4163457034]]
+ var a_2_3 : (uint8,uint8,flt32,uint64) = (179,82,0.796875,149846806626304)
+ var a_2_4 : (uint64,flt32) = (132525092503552,-1.3125)
+ var ret_2 : uint64 = fn_2_myr(a_2_1, a_2_2, a_2_3, a_2_4)
+ if !(ret_2==132205860093952)
+ std.put("myr_to_myr 2 failed\n")
+ std.exit(1)
+ ;;
+ var a_3_1 : (uint8,uint8,flt32,uint64) = (211,183,0.71875,77205130182656)
+ var a_3_2 : t3 = [.field_1=186084876091392,.field_2=[.field_1=162500698177536,.field_2=117147867938816,.field_3=(81,185,-1.171875,80629570863104),.field_4=-2.453125,.field_5=(49,253,0.03125,266183655817216)],.field_3=(133,78,-1.15625,208468516143104),.field_4=0.625,.field_5=2593151244]
+ var a_3_3 : (uint8,t6,(uint64,flt32),t2) = (104,`E_6_7,(168319363710976,1.015625),[.field_1=105329353555968,.field_2=49345085177856,.field_3=(61,176,1.25,102963779993600),.field_4=3.734375,.field_5=(21,143,1.46875,167234555215872)])
+ var a_3_4 : t4 = [.field_1=3.12890625,.field_2=0.4375,.field_3=[.field_1=63982214447104,.field_2=[.field_1=135072305512448,.field_2=67998052515840,.field_3=(12,71,-0.578125,187813731500032),.field_4=3.07421875,.field_5=(205,88,-0.53125,674692464640)],.field_3=(193,11,0.3125,162599899496448),.field_4=-0.62890625,.field_5=3331590902]]
+ var a_3_5 : (t8,uint32) = (`E_8_5,3187538484)
+ var a_3_6 : uint8 = 90
+ var a_3_7 : flt32 = 0.125
+ var a_3_8 : flt32 = 1.203125
+ var ret_3 : (uint32,(flt32,uint32),(flt64,t2),(t4,(uint8,uint8,flt32,uint64),(uint64,flt32))) = fn_3_myr(a_3_1, a_3_2, a_3_3, a_3_4, a_3_5, a_3_6, a_3_7, a_3_8)
+ if !((ret_3.0==650661816) && ((ret_3.1.0==-0.015625) && (ret_3.1.1==2851726420)) && ((ret_3.2.0==-3.625) && ((ret_3.2.1.field_1==74772813709312) && (ret_3.2.1.field_2==112035052126208) && ((ret_3.2.1.field_3.0==41) && (ret_3.2.1.field_3.1==21) && (ret_3.2.1.field_3.2==-0.28125) && (ret_3.2.1.field_3.3==170067893944320)) && (ret_3.2.1.field_4==0.52734375) && ((ret_3.2.1.field_5.0==81) && (ret_3.2.1.field_5.1==216) && (ret_3.2.1.field_5.2==-0.328125) && (ret_3.2.1.field_5.3==156496708894720)))) && (((ret_3.3.0.field_1==-3.19140625) && (ret_3.3.0.field_2==1.515625) && ((ret_3.3.0.field_3.field_1==236308757348352) && ((ret_3.3.0.field_3.field_2.field_1==263713238548480) && (ret_3.3.0.field_3.field_2.field_2==40608255049728) && ((ret_3.3.0.field_3.field_2.field_3.0==138) && (ret_3.3.0.field_3.field_2.field_3.1==142) && (ret_3.3.0.field_3.field_2.field_3.2==-1.1875) && (ret_3.3.0.field_3.field_2.field_3.3==100184688558080)) && (ret_3.3.0.field_3.field_2.field_4==2.76171875) && ((ret_3.3.0.field_3.field_2.field_5.0==73) && (ret_3.3.0.field_3.field_2.field_5.1==65) && (ret_3.3.0.field_3.field_2.field_5.2==1.28125) && (ret_3.3.0.field_3.field_2.field_5.3==53591441145856))) && ((ret_3.3.0.field_3.field_3.0==54) && (ret_3.3.0.field_3.field_3.1==81) && (ret_3.3.0.field_3.field_3.2==-0.5) && (ret_3.3.0.field_3.field_3.3==200208867524608)) && (ret_3.3.0.field_3.field_4==3.7734375) && (ret_3.3.0.field_3.field_5==1624457196))) && ((ret_3.3.1.0==250) && (ret_3.3.1.1==97) && (ret_3.3.1.2==0.125) && (ret_3.3.1.3==16842727882752)) && ((ret_3.3.2.0==222985090629632) && (ret_3.3.2.1==-1.109375))))
+ std.put("myr_to_myr 3 failed\n")
+ std.exit(1)
+ ;;
+ var a_4_1 : (t14,flt32,uint64,t15) = (`E_14_1,-0.734375,31855997878272,`E_15_5)
+ var ret_4 : t19 = fn_4_myr(a_4_1)
+ if !((ret_4.field_1==0.03125) && (((ret_4.field_2.field_1.0==947051528) && ((ret_4.field_2.field_1.1.0==0.96875) && (ret_4.field_2.field_1.1.1==241559198)) && ((ret_4.field_2.field_1.2.0==-0.125) && ((ret_4.field_2.field_1.2.1.field_1==22236939157504) && (ret_4.field_2.field_1.2.1.field_2==74920569470976) && ((ret_4.field_2.field_1.2.1.field_3.0==22) && (ret_4.field_2.field_1.2.1.field_3.1==25) && (ret_4.field_2.field_1.2.1.field_3.2==-0.46875) && (ret_4.field_2.field_1.2.1.field_3.3==99222545367040)) && (ret_4.field_2.field_1.2.1.field_4==-2.25) && ((ret_4.field_2.field_1.2.1.field_5.0==6) && (ret_4.field_2.field_1.2.1.field_5.1==66) && (ret_4.field_2.field_1.2.1.field_5.2==0.9375) && (ret_4.field_2.field_1.2.1.field_5.3==72999681130496)))) && (((ret_4.field_2.field_1.3.0.field_1==-2.41015625) && (ret_4.field_2.field_1.3.0.field_2==-0.328125) && ((ret_4.field_2.field_1.3.0.field_3.field_1==33373226926080) && ((ret_4.field_2.field_1.3.0.field_3.field_2.field_1==264437028749312) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_2==41455185559552) && ((ret_4.field_2.field_1.3.0.field_3.field_2.field_3.0==58) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_3.1==157) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_3.2==-1.40625) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_3.3==172834173747200)) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_4==2.96484375) && ((ret_4.field_2.field_1.3.0.field_3.field_2.field_5.0==47) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_5.1==72) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_5.2==-0.8125) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_5.3==161994014326784))) && ((ret_4.field_2.field_1.3.0.field_3.field_3.0==98) && (ret_4.field_2.field_1.3.0.field_3.field_3.1==191) && (ret_4.field_2.field_1.3.0.field_3.field_3.2==0.9375) && (ret_4.field_2.field_1.3.0.field_3.field_3.3==54448237051904)) && (ret_4.field_2.field_1.3.0.field_3.field_4==2.390625) && (ret_4.field_2.field_1.3.0.field_3.field_5==1201643174))) && ((ret_4.field_2.field_1.3.1.0==69) && (ret_4.field_2.field_1.3.1.1==18) && (ret_4.field_2.field_1.3.1.2==-0.421875) && (ret_4.field_2.field_1.3.1.3==104603486781440)) && ((ret_4.field_2.field_1.3.2.0==119279618490368) && (ret_4.field_2.field_1.3.2.1==0.6875)))) && (ret_4.field_2.field_2==0.65625) && (ret_4.field_2.field_3==125926830637056) && (ret_4.field_2.field_4==250)) && (ret_4.field_3==`E_18_3) && ((ret_4.field_4.field_1==198926511898624) && (ret_4.field_4.field_2==48406520135680) && ((ret_4.field_4.field_3.0==198) && (ret_4.field_4.field_3.1==211) && (ret_4.field_4.field_3.2==-1.21875) && (ret_4.field_4.field_3.3==259336007450624)) && (ret_4.field_4.field_4==-3.48828125) && ((ret_4.field_4.field_5.0==185) && (ret_4.field_4.field_5.1==248) && (ret_4.field_4.field_5.2==0.53125) && (ret_4.field_4.field_5.3==170021025611776))))
+ std.put("myr_to_myr 4 failed\n")
+ std.exit(1)
+ ;;
+ var a_5_1 : uint32 = 3491579916
+ var a_5_2 : (flt64,t2) = (2.140625,[.field_1=17107741573120,.field_2=257014155051008,.field_3=(120,241,1.078125,195206002114560),.field_4=-1.15625,.field_5=(46,186,0.1875,278368438321153)])
+ var a_5_3 : t21 = [.field_1=((66,239,-1.203125,89848418926592),[.field_1=239095841685504,.field_2=165469104898048,.field_3=(67,177,-0.6875,172891013120000),.field_4=2.93359375,.field_5=(2,44,1.140625,266978004566016)]),.field_2=[.field_1=(488880992,(0.1875,4283670802),(-2.4453125,[.field_1=86642904793088,.field_2=9550056259584,.field_3=(135,40,-1.234375,14565778391040),.field_4=3.859375,.field_5=(97,149,0.75,208889540378624)]),([.field_1=3.3515625,.field_2=1.5625,.field_3=[.field_1=190971227013120,.field_2=[.field_1=13441050607616,.field_2=89440160972800,.field_3=(135,162,0.25,62767721873408),.field_4=3.2578125,.field_5=(49,25,1.34375,103776287981568)],.field_3=(246,223,-0.0625,147071279038464),.field_4=2.90625,.field_5=2875920810]],(212,231,-0.9375,278720009601025),(4008885223424,-0.78125))),.field_2=3.78125,.field_3=111604690845696,.field_4=213],.field_3=0.703125,.field_4=`E_15_1,.field_5=2.0625,.field_6=1.73828125]
+ var a_5_4 : (uint8,flt64,t14,t22) = (208,1.30078125,`E_14_3,`E_22_2)
+ var a_5_5 : t24 = `E_24_4
+ var a_5_6 : uint32 = 157825342
+ var a_5_7 : flt64 = 3.765625
+ var a_5_8 : t26 = [.field_1=[.field_1=(`E_8_6,3815456600),.field_2=-1.58203125,.field_3=16877321453568,.field_4=145567904956416,.field_5=-0.125,.field_6=1.76171875],.field_2=171,.field_3=140444787539968,.field_4=15]
+ var a_5_9 : t27 = `E_27_5
+ var a_5_10 : t28 = `E_28_3
+ var ret_5 : t29 = fn_5_myr(a_5_1, a_5_2, a_5_3, a_5_4, a_5_5, a_5_6, a_5_7, a_5_8, a_5_9, a_5_10)
+ if !(ret_5==`E_29_1)
+ std.put("myr_to_myr 5 failed\n")
+ std.exit(1)
+ ;;
+ var a_6_1 : ((uint8,uint8,flt32,uint64),t2) = ((141,149,-1.25,58279295057920),[.field_1=63572928888832,.field_2=46145049067520,.field_3=(109,59,-1.4375,89364507131904),.field_4=0.23828125,.field_5=(25,213,1.546875,232592606363648)])
+ var a_6_2 : t15 = `E_15_6
+ var ret_6 : uint32 = fn_6_myr(a_6_1, a_6_2)
+ if !(ret_6==4008488864)
+ std.put("myr_to_myr 6 failed\n")
+ std.exit(1)
+ ;;
+ var a_7_1 : flt64 = 2.84375
+ var a_7_2 : flt64 = -3.25390625
+ var a_7_3 : t31 = [.field_1=-2.56640625,.field_2=-0.59375,.field_3=-0.34375,.field_4=[.field_1=83,.field_2=-0.8125,.field_3=245451030659072,.field_4=`E_24_1,.field_5=0.58203125,.field_6=0.734375]]
+ var a_7_4 : t21 = [.field_1=((154,16,1.53125,240450872147968),[.field_1=93431282270208,.field_2=243719039352832,.field_3=(176,179,1.421875,211285330100224),.field_4=-2.0546875,.field_5=(120,11,0.984375,85609800400896)]),.field_2=[.field_1=(3734886520,(-0.03125,4178676130),(1.4609375,[.field_1=278857533489153,.field_2=40762444611584,.field_3=(255,97,-0.09375,67201348272128),.field_4=-1.9375,.field_5=(145,208,1.53125,6521111838720)]),([.field_1=-0.2265625,.field_2=0.28125,.field_3=[.field_1=24215899865088,.field_2=[.field_1=128440090099712,.field_2=124968190476288,.field_3=(106,82,-1.15625,33900307021824),.field_4=-1.75390625,.field_5=(226,91,0.765625,261485102891008)],.field_3=(43,12,0.9375,185189970870272),.field_4=-3.73046875,.field_5=2085882880]],(166,42,-0.0625,8114197757952),(179406660042752,0.6875))),.field_2=-1.7109375,.field_3=58423380148224,.field_4=136],.field_3=-0.71875,.field_4=`E_15_2,.field_5=-3.87109375,.field_6=2.8046875]
+ var a_7_5 : flt64 = -0.3046875
+ var a_7_6 : flt32 = 0.734375
+ var a_7_7 : (t32,(t2,t18),t34) = ([.field_1=66690558],([.field_1=201975036641280,.field_2=191791705096192,.field_3=(188,255,1.21875,75962620575744),.field_4=-1.81640625,.field_5=(30,70,-1.171875,122844992372736)],`E_18_6),`E_34_3)
+ var a_7_8 : uint64 = 145924444127232
+ var ret_7 : t37 = fn_7_myr(a_7_1, a_7_2, a_7_3, a_7_4, a_7_5, a_7_6, a_7_7, a_7_8)
+ if !((ret_7.field_1==`E_36_2))
+ std.put("myr_to_myr 7 failed\n")
+ std.exit(1)
+ ;;
+ var a_8_1 : t38 = `E_38_4
+ var a_8_2 : t39 = `E_39_1
+ var a_8_3 : flt64 = -2.69140625
+ var a_8_4 : uint8 = 17
+ var ret_8 : (uint8,((uint32,(flt32,uint32),(flt64,t2),(t4,(uint8,uint8,flt32,uint64),(uint64,flt32))),uint32),uint8,t41) = fn_8_myr(a_8_1, a_8_2, a_8_3, a_8_4)
+ if !((ret_8.0==86) && (((ret_8.1.0.0==3264522662) && ((ret_8.1.0.1.0==1.125) && (ret_8.1.0.1.1==3024392)) && ((ret_8.1.0.2.0==2.90625) && ((ret_8.1.0.2.1.field_1==246587710898176) && (ret_8.1.0.2.1.field_2==98684395847680) && ((ret_8.1.0.2.1.field_3.0==7) && (ret_8.1.0.2.1.field_3.1==232) && (ret_8.1.0.2.1.field_3.2==-0.25) && (ret_8.1.0.2.1.field_3.3==243343254224896)) && (ret_8.1.0.2.1.field_4==1.3828125) && ((ret_8.1.0.2.1.field_5.0==123) && (ret_8.1.0.2.1.field_5.1==151) && (ret_8.1.0.2.1.field_5.2==0.671875) && (ret_8.1.0.2.1.field_5.3==230200040620032)))) && (((ret_8.1.0.3.0.field_1==-0.5) && (ret_8.1.0.3.0.field_2==-1.484375) && ((ret_8.1.0.3.0.field_3.field_1==78257571102720) && ((ret_8.1.0.3.0.field_3.field_2.field_1==202195772637184) && (ret_8.1.0.3.0.field_3.field_2.field_2==21507053977600) && ((ret_8.1.0.3.0.field_3.field_2.field_3.0==42) && (ret_8.1.0.3.0.field_3.field_2.field_3.1==43) && (ret_8.1.0.3.0.field_3.field_2.field_3.2==0.453125) && (ret_8.1.0.3.0.field_3.field_2.field_3.3==259622561644544)) && (ret_8.1.0.3.0.field_3.field_2.field_4==1.18359375) && ((ret_8.1.0.3.0.field_3.field_2.field_5.0==201) && (ret_8.1.0.3.0.field_3.field_2.field_5.1==220) && (ret_8.1.0.3.0.field_3.field_2.field_5.2==-0.40625) && (ret_8.1.0.3.0.field_3.field_2.field_5.3==87732745404416))) && ((ret_8.1.0.3.0.field_3.field_3.0==61) && (ret_8.1.0.3.0.field_3.field_3.1==181) && (ret_8.1.0.3.0.field_3.field_3.2==-1.34375) && (ret_8.1.0.3.0.field_3.field_3.3==27713052475392)) && (ret_8.1.0.3.0.field_3.field_4==1.640625) && (ret_8.1.0.3.0.field_3.field_5==4052472574))) && ((ret_8.1.0.3.1.0==249) && (ret_8.1.0.3.1.1==15) && (ret_8.1.0.3.1.2==1.484375) && (ret_8.1.0.3.1.3==248514888728576)) && ((ret_8.1.0.3.2.0==134716506374144) && (ret_8.1.0.3.2.1==1.046875)))) && (ret_8.1.1==2404422220)) && (ret_8.2==246) && ((((ret_8.3.field_1.0.0==109) && (ret_8.3.field_1.0.1==70) && (ret_8.3.field_1.0.2==0.875) && (ret_8.3.field_1.0.3==242714521763840)) && ((ret_8.3.field_1.1.field_1==85381772738560) && (ret_8.3.field_1.1.field_2==16488017559552) && ((ret_8.3.field_1.1.field_3.0==148) && (ret_8.3.field_1.1.field_3.1==97) && (ret_8.3.field_1.1.field_3.2==-0.859375) && (ret_8.3.field_1.1.field_3.3==211742737956864)) && (ret_8.3.field_1.1.field_4==-3.73046875) && ((ret_8.3.field_1.1.field_5.0==37) && (ret_8.3.field_1.1.field_5.1==103) && (ret_8.3.field_1.1.field_5.2==0.96875) && (ret_8.3.field_1.1.field_5.3==3251610451968)))) && (ret_8.3.field_2==`E_29_7) && (ret_8.3.field_3==34127014920192)))
+ std.put("myr_to_myr 8 failed\n")
+ std.exit(1)
+ ;;
+ var a_9_1 : t46 = [.field_1=((0.171875,3226754646),([.field_1=2.765625,.field_2=0.1875,.field_3=[.field_1=276756521549824,.field_2=[.field_1=152999296499712,.field_2=85664820494336,.field_3=(228,103,-0.71875,189995730337792),.field_4=2.2109375,.field_5=(167,118,-1.546875,199486233247744)],.field_3=(94,71,-1.0625,93572022140928),.field_4=-1.046875,.field_5=3049108056]],(185,79,1.03125,217666636349440),(129819186561024,-1.421875)),[.field_1=-1.60546875,.field_2=0.125,.field_3=[.field_1=37068096536576,.field_2=[.field_1=239555475144704,.field_2=81311387615232,.field_3=(252,105,-0.71875,148899603939328),.field_4=1.68359375,.field_5=(42,238,1.53125,236603073363968)],.field_3=(183,164,-0.609375,202904325324800),.field_4=-1.15234375,.field_5=2895375692]]),.field_2=`E_44_7,.field_3=[.field_1=2208687568],.field_4=1848386781184,.field_5=[.field_1=-1.05859375,.field_2=-0.859375,.field_3=[.field_1=205448639807488,.field_2=[.field_1=190494723801088,.field_2=14572431867904,.field_3=(128,35,-1.25,224517446828032),.field_4=1.37109375,.field_5=(59,166,1.453125,61154056208384)],.field_3=(15,60,0.765625,218183195164672),.field_4=-0.765625,.field_5=2915453416]],.field_6=3275953006]
+ var a_9_2 : flt32 = -0.328125
+ var a_9_3 : t26 = [.field_1=[.field_1=(`E_8_1,3258536312),.field_2=-2.17578125,.field_3=31978917462016,.field_4=76825007489024,.field_5=-0.859375,.field_6=-0.171875],.field_2=127,.field_3=269734934740992,.field_4=39]
+ var a_9_4 : t47 = `E_47_3
+ var a_9_5 : t48 = `E_48_7
+ var a_9_6 : t54 = [.field_1=[.field_1=613960680],.field_2=(-0.125,[.field_1=469993662],201131156307968,3.79296875),.field_3=`E_51_4,.field_4=[.field_1=0.09375,.field_2=`E_51_6,.field_3=134,.field_4=1.234375,.field_5=1.359375],.field_5=`E_51_2,.field_6=`E_53_4]
+ var a_9_7 : uint32 = 604879132
+ var a_9_8 : flt32 = 0.640625
+ var a_9_9 : t55 = `E_55_3
+ var a_9_10 : t56 = `E_56_4
+ var ret_9 : uint64 = fn_9_myr(a_9_1, a_9_2, a_9_3, a_9_4, a_9_5, a_9_6, a_9_7, a_9_8, a_9_9, a_9_10)
+ if !(ret_9==219771358019584)
+ std.put("myr_to_myr 9 failed\n")
+ std.exit(1)
+ ;;
+ var a_10_1 : uint64 = 160708767514624
+ var a_10_2 : flt64 = 0.36328125
+ var a_10_3 : (t57,(flt64,t36),t59,(uint64,flt32,t4,t38)) = (`E_57_5,(-0.27734375,`E_36_3),[.field_1=97,.field_2=33865353396224],(216701139681280,-1.03125,[.field_1=-0.8515625,.field_2=0.71875,.field_3=[.field_1=244705840726016,.field_2=[.field_1=53149469900800,.field_2=161998735409152,.field_3=(127,47,1.25,59620799152128),.field_4=-1.41015625,.field_5=(130,161,-1.453125,49656372789248)],.field_3=(136,83,-1.15625,278799917907969),.field_4=2.5234375,.field_5=3744252854]],`E_38_1))
+ var a_10_4 : uint8 = 202
+ var a_10_5 : t62 = `E_62_3
+ var a_10_6 : uint8 = 0
+ var a_10_7 : flt64 = 2.234375
+ var a_10_8 : uint64 = 215484511158272
+ var ret_10 : t3 = fn_10_myr(a_10_1, a_10_2, a_10_3, a_10_4, a_10_5, a_10_6, a_10_7, a_10_8)
+ if !((ret_10.field_1==268633981059072) && ((ret_10.field_2.field_1==24949413642240) && (ret_10.field_2.field_2==153583813787648) && ((ret_10.field_2.field_3.0==35) && (ret_10.field_2.field_3.1==252) && (ret_10.field_2.field_3.2==0.8125) && (ret_10.field_2.field_3.3==128878867382272)) && (ret_10.field_2.field_4==-0.03125) && ((ret_10.field_2.field_5.0==98) && (ret_10.field_2.field_5.1==126) && (ret_10.field_2.field_5.2==0.546875) && (ret_10.field_2.field_5.3==258416610377728))) && ((ret_10.field_3.0==209) && (ret_10.field_3.1==206) && (ret_10.field_3.2==1.28125) && (ret_10.field_3.3==180894750212096)) && (ret_10.field_4==1.390625) && (ret_10.field_5==4104417000))
+ std.put("myr_to_myr 10 failed\n")
+ std.exit(1)
+ ;;
+
+ /* myr calling c */
+ ret_1 = fn_1_c(a_1_1)
+ if !((ret_1.field_1==12459410325504) && (ret_1.field_2==98659448520704) && ((ret_1.field_3.0==166) && (ret_1.field_3.1==107) && (ret_1.field_3.2==0.140625) && (ret_1.field_3.3==92389009653760)) && (ret_1.field_4==-3.140625) && ((ret_1.field_5.0==157) && (ret_1.field_5.1==191) && (ret_1.field_5.2==1.125) && (ret_1.field_5.3==644801363968)))
+ std.put("myr_to_c 1 failed\n")
+ std.exit(1)
+ ;;
+ ret_2 = fn_2_c(a_2_1, a_2_2, a_2_3, a_2_4)
+ if !(ret_2==132205860093952)
+ std.put("myr_to_c 2 failed\n")
+ std.exit(1)
+ ;;
+ ret_3 = fn_3_c(a_3_1, a_3_2, a_3_3, a_3_4, a_3_5, a_3_6, a_3_7, a_3_8)
+ if !((ret_3.0==650661816) && ((ret_3.1.0==-0.015625) && (ret_3.1.1==2851726420)) && ((ret_3.2.0==-3.625) && ((ret_3.2.1.field_1==74772813709312) && (ret_3.2.1.field_2==112035052126208) && ((ret_3.2.1.field_3.0==41) && (ret_3.2.1.field_3.1==21) && (ret_3.2.1.field_3.2==-0.28125) && (ret_3.2.1.field_3.3==170067893944320)) && (ret_3.2.1.field_4==0.52734375) && ((ret_3.2.1.field_5.0==81) && (ret_3.2.1.field_5.1==216) && (ret_3.2.1.field_5.2==-0.328125) && (ret_3.2.1.field_5.3==156496708894720)))) && (((ret_3.3.0.field_1==-3.19140625) && (ret_3.3.0.field_2==1.515625) && ((ret_3.3.0.field_3.field_1==236308757348352) && ((ret_3.3.0.field_3.field_2.field_1==263713238548480) && (ret_3.3.0.field_3.field_2.field_2==40608255049728) && ((ret_3.3.0.field_3.field_2.field_3.0==138) && (ret_3.3.0.field_3.field_2.field_3.1==142) && (ret_3.3.0.field_3.field_2.field_3.2==-1.1875) && (ret_3.3.0.field_3.field_2.field_3.3==100184688558080)) && (ret_3.3.0.field_3.field_2.field_4==2.76171875) && ((ret_3.3.0.field_3.field_2.field_5.0==73) && (ret_3.3.0.field_3.field_2.field_5.1==65) && (ret_3.3.0.field_3.field_2.field_5.2==1.28125) && (ret_3.3.0.field_3.field_2.field_5.3==53591441145856))) && ((ret_3.3.0.field_3.field_3.0==54) && (ret_3.3.0.field_3.field_3.1==81) && (ret_3.3.0.field_3.field_3.2==-0.5) && (ret_3.3.0.field_3.field_3.3==200208867524608)) && (ret_3.3.0.field_3.field_4==3.7734375) && (ret_3.3.0.field_3.field_5==1624457196))) && ((ret_3.3.1.0==250) && (ret_3.3.1.1==97) && (ret_3.3.1.2==0.125) && (ret_3.3.1.3==16842727882752)) && ((ret_3.3.2.0==222985090629632) && (ret_3.3.2.1==-1.109375))))
+ std.put("myr_to_c 3 failed\n")
+ std.exit(1)
+ ;;
+ ret_4 = fn_4_c(a_4_1)
+ if !((ret_4.field_1==0.03125) && (((ret_4.field_2.field_1.0==947051528) && ((ret_4.field_2.field_1.1.0==0.96875) && (ret_4.field_2.field_1.1.1==241559198)) && ((ret_4.field_2.field_1.2.0==-0.125) && ((ret_4.field_2.field_1.2.1.field_1==22236939157504) && (ret_4.field_2.field_1.2.1.field_2==74920569470976) && ((ret_4.field_2.field_1.2.1.field_3.0==22) && (ret_4.field_2.field_1.2.1.field_3.1==25) && (ret_4.field_2.field_1.2.1.field_3.2==-0.46875) && (ret_4.field_2.field_1.2.1.field_3.3==99222545367040)) && (ret_4.field_2.field_1.2.1.field_4==-2.25) && ((ret_4.field_2.field_1.2.1.field_5.0==6) && (ret_4.field_2.field_1.2.1.field_5.1==66) && (ret_4.field_2.field_1.2.1.field_5.2==0.9375) && (ret_4.field_2.field_1.2.1.field_5.3==72999681130496)))) && (((ret_4.field_2.field_1.3.0.field_1==-2.41015625) && (ret_4.field_2.field_1.3.0.field_2==-0.328125) && ((ret_4.field_2.field_1.3.0.field_3.field_1==33373226926080) && ((ret_4.field_2.field_1.3.0.field_3.field_2.field_1==264437028749312) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_2==41455185559552) && ((ret_4.field_2.field_1.3.0.field_3.field_2.field_3.0==58) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_3.1==157) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_3.2==-1.40625) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_3.3==172834173747200)) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_4==2.96484375) && ((ret_4.field_2.field_1.3.0.field_3.field_2.field_5.0==47) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_5.1==72) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_5.2==-0.8125) && (ret_4.field_2.field_1.3.0.field_3.field_2.field_5.3==161994014326784))) && ((ret_4.field_2.field_1.3.0.field_3.field_3.0==98) && (ret_4.field_2.field_1.3.0.field_3.field_3.1==191) && (ret_4.field_2.field_1.3.0.field_3.field_3.2==0.9375) && (ret_4.field_2.field_1.3.0.field_3.field_3.3==54448237051904)) && (ret_4.field_2.field_1.3.0.field_3.field_4==2.390625) && (ret_4.field_2.field_1.3.0.field_3.field_5==1201643174))) && ((ret_4.field_2.field_1.3.1.0==69) && (ret_4.field_2.field_1.3.1.1==18) && (ret_4.field_2.field_1.3.1.2==-0.421875) && (ret_4.field_2.field_1.3.1.3==104603486781440)) && ((ret_4.field_2.field_1.3.2.0==119279618490368) && (ret_4.field_2.field_1.3.2.1==0.6875)))) && (ret_4.field_2.field_2==0.65625) && (ret_4.field_2.field_3==125926830637056) && (ret_4.field_2.field_4==250)) && (ret_4.field_3==`E_18_3) && ((ret_4.field_4.field_1==198926511898624) && (ret_4.field_4.field_2==48406520135680) && ((ret_4.field_4.field_3.0==198) && (ret_4.field_4.field_3.1==211) && (ret_4.field_4.field_3.2==-1.21875) && (ret_4.field_4.field_3.3==259336007450624)) && (ret_4.field_4.field_4==-3.48828125) && ((ret_4.field_4.field_5.0==185) && (ret_4.field_4.field_5.1==248) && (ret_4.field_4.field_5.2==0.53125) && (ret_4.field_4.field_5.3==170021025611776))))
+ std.put("myr_to_c 4 failed\n")
+ std.exit(1)
+ ;;
+ ret_5 = fn_5_c(a_5_1, a_5_2, a_5_3, a_5_4, a_5_5, a_5_6, a_5_7, a_5_8, a_5_9, a_5_10)
+ if !(ret_5==`E_29_1)
+ std.put("myr_to_c 5 failed\n")
+ std.exit(1)
+ ;;
+ ret_6 = fn_6_c(a_6_1, a_6_2)
+ if !(ret_6==4008488864)
+ std.put("myr_to_c 6 failed\n")
+ std.exit(1)
+ ;;
+ ret_7 = fn_7_c(a_7_1, a_7_2, a_7_3, a_7_4, a_7_5, a_7_6, a_7_7, a_7_8)
+ if !((ret_7.field_1==`E_36_2))
+ std.put("myr_to_c 7 failed\n")
+ std.exit(1)
+ ;;
+ ret_8 = fn_8_c(a_8_1, a_8_2, a_8_3, a_8_4)
+ if !((ret_8.0==86) && (((ret_8.1.0.0==3264522662) && ((ret_8.1.0.1.0==1.125) && (ret_8.1.0.1.1==3024392)) && ((ret_8.1.0.2.0==2.90625) && ((ret_8.1.0.2.1.field_1==246587710898176) && (ret_8.1.0.2.1.field_2==98684395847680) && ((ret_8.1.0.2.1.field_3.0==7) && (ret_8.1.0.2.1.field_3.1==232) && (ret_8.1.0.2.1.field_3.2==-0.25) && (ret_8.1.0.2.1.field_3.3==243343254224896)) && (ret_8.1.0.2.1.field_4==1.3828125) && ((ret_8.1.0.2.1.field_5.0==123) && (ret_8.1.0.2.1.field_5.1==151) && (ret_8.1.0.2.1.field_5.2==0.671875) && (ret_8.1.0.2.1.field_5.3==230200040620032)))) && (((ret_8.1.0.3.0.field_1==-0.5) && (ret_8.1.0.3.0.field_2==-1.484375) && ((ret_8.1.0.3.0.field_3.field_1==78257571102720) && ((ret_8.1.0.3.0.field_3.field_2.field_1==202195772637184) && (ret_8.1.0.3.0.field_3.field_2.field_2==21507053977600) && ((ret_8.1.0.3.0.field_3.field_2.field_3.0==42) && (ret_8.1.0.3.0.field_3.field_2.field_3.1==43) && (ret_8.1.0.3.0.field_3.field_2.field_3.2==0.453125) && (ret_8.1.0.3.0.field_3.field_2.field_3.3==259622561644544)) && (ret_8.1.0.3.0.field_3.field_2.field_4==1.18359375) && ((ret_8.1.0.3.0.field_3.field_2.field_5.0==201) && (ret_8.1.0.3.0.field_3.field_2.field_5.1==220) && (ret_8.1.0.3.0.field_3.field_2.field_5.2==-0.40625) && (ret_8.1.0.3.0.field_3.field_2.field_5.3==87732745404416))) && ((ret_8.1.0.3.0.field_3.field_3.0==61) && (ret_8.1.0.3.0.field_3.field_3.1==181) && (ret_8.1.0.3.0.field_3.field_3.2==-1.34375) && (ret_8.1.0.3.0.field_3.field_3.3==27713052475392)) && (ret_8.1.0.3.0.field_3.field_4==1.640625) && (ret_8.1.0.3.0.field_3.field_5==4052472574))) && ((ret_8.1.0.3.1.0==249) && (ret_8.1.0.3.1.1==15) && (ret_8.1.0.3.1.2==1.484375) && (ret_8.1.0.3.1.3==248514888728576)) && ((ret_8.1.0.3.2.0==134716506374144) && (ret_8.1.0.3.2.1==1.046875)))) && (ret_8.1.1==2404422220)) && (ret_8.2==246) && ((((ret_8.3.field_1.0.0==109) && (ret_8.3.field_1.0.1==70) && (ret_8.3.field_1.0.2==0.875) && (ret_8.3.field_1.0.3==242714521763840)) && ((ret_8.3.field_1.1.field_1==85381772738560) && (ret_8.3.field_1.1.field_2==16488017559552) && ((ret_8.3.field_1.1.field_3.0==148) && (ret_8.3.field_1.1.field_3.1==97) && (ret_8.3.field_1.1.field_3.2==-0.859375) && (ret_8.3.field_1.1.field_3.3==211742737956864)) && (ret_8.3.field_1.1.field_4==-3.73046875) && ((ret_8.3.field_1.1.field_5.0==37) && (ret_8.3.field_1.1.field_5.1==103) && (ret_8.3.field_1.1.field_5.2==0.96875) && (ret_8.3.field_1.1.field_5.3==3251610451968)))) && (ret_8.3.field_2==`E_29_7) && (ret_8.3.field_3==34127014920192)))
+ std.put("myr_to_c 8 failed\n")
+ std.exit(1)
+ ;;
+ ret_9 = fn_9_c(a_9_1, a_9_2, a_9_3, a_9_4, a_9_5, a_9_6, a_9_7, a_9_8, a_9_9, a_9_10)
+ if !(ret_9==219771358019584)
+ std.put("myr_to_c 9 failed\n")
+ std.exit(1)
+ ;;
+ ret_10 = fn_10_c(a_10_1, a_10_2, a_10_3, a_10_4, a_10_5, a_10_6, a_10_7, a_10_8)
+ if !((ret_10.field_1==268633981059072) && ((ret_10.field_2.field_1==24949413642240) && (ret_10.field_2.field_2==153583813787648) && ((ret_10.field_2.field_3.0==35) && (ret_10.field_2.field_3.1==252) && (ret_10.field_2.field_3.2==0.8125) && (ret_10.field_2.field_3.3==128878867382272)) && (ret_10.field_2.field_4==-0.03125) && ((ret_10.field_2.field_5.0==98) && (ret_10.field_2.field_5.1==126) && (ret_10.field_2.field_5.2==0.546875) && (ret_10.field_2.field_5.3==258416610377728))) && ((ret_10.field_3.0==209) && (ret_10.field_3.1==206) && (ret_10.field_3.2==1.28125) && (ret_10.field_3.3==180894750212096)) && (ret_10.field_4==1.390625) && (ret_10.field_5==4104417000))
+ std.put("myr_to_c 10 failed\n")
+ std.exit(1)
+ ;;
+
+ /* c calling myr */
+ if check_c_to_myr_fns() != 0
+ std.put("c_to_myr failed\n")
+ std.exit(1)
+ ;;
+
+ std.exit(0)
+}
diff --git a/test/abi/004_types.h b/test/abi/004_types.h
new file mode 100644
index 0000000..d7e4899
--- /dev/null
+++ b/test/abi/004_types.h
@@ -0,0 +1,62 @@
+typedef struct {uint8_t field_1;uint8_t field_2;float field_3;uint64_t field_4;} t1;
+typedef struct {uint64_t field_1;uint64_t field_2;t1 field_3;double field_4;t1 field_5;} t2;
+typedef struct {uint64_t field_1;t2 field_2;t1 field_3;double field_4;uint32_t field_5;} t3;
+typedef struct {double field_1;float field_2;t3 field_3;} t4;
+typedef struct {uint64_t field_1;float field_2;} t5;
+typedef enum {E_6_1,E_6_2,E_6_3,E_6_4,E_6_5,E_6_6,E_6_7,E_6_8,E_6_9,} t6;
+typedef struct {uint8_t field_1;t6 field_2;t5 field_3;t2 field_4;} t7;
+typedef enum {E_8_1,E_8_2,E_8_3,E_8_4,E_8_5,E_8_6,} t8;
+typedef struct {t8 field_1;uint32_t field_2;} t9;
+typedef struct {float field_1;uint32_t field_2;} t10;
+typedef struct {double field_1;t2 field_2;} t11;
+typedef struct {t4 field_1;t1 field_2;t5 field_3;} t12;
+typedef struct {uint32_t field_1;t10 field_2;t11 field_3;t12 field_4;} t13;
+typedef enum {E_14_1,E_14_2,E_14_3,E_14_4,E_14_5,E_14_6,E_14_7,} t14;
+typedef enum {E_15_1,E_15_2,E_15_3,E_15_4,E_15_5,E_15_6,} t15;
+typedef struct {t14 field_1;float field_2;uint64_t field_3;t15 field_4;} t16;
+typedef struct {t13 field_1;double field_2;uint64_t field_3;uint8_t field_4;} t17;
+typedef enum {E_18_1,E_18_2,E_18_3,E_18_4,E_18_5,E_18_6,E_18_7,} t18;
+typedef struct {float field_1;t17 field_2;t18 field_3;t2 field_4;} t19;
+typedef struct {t1 field_1;t2 field_2;} t20;
+typedef struct {t20 field_1;t17 field_2;float field_3;t15 field_4;double field_5;double field_6;} t21;
+typedef enum {E_22_1,E_22_2,E_22_3,E_22_4,E_22_5,E_22_6,E_22_7,} t22;
+typedef struct {uint8_t field_1;double field_2;t14 field_3;t22 field_4;} t23;
+typedef enum {E_24_1,E_24_2,E_24_3,E_24_4,E_24_5,E_24_6,} t24;
+typedef struct {t9 field_1;double field_2;uint64_t field_3;uint64_t field_4;float field_5;double field_6;} t25;
+typedef struct {t25 field_1;uint8_t field_2;uint64_t field_3;uint8_t field_4;} t26;
+typedef enum {E_27_1,E_27_2,E_27_3,E_27_4,E_27_5,E_27_6,E_27_7,E_27_8,} t27;
+typedef enum {E_28_1,E_28_2,E_28_3,E_28_4,E_28_5,E_28_6,E_28_7,} t28;
+typedef enum {E_29_1,E_29_2,E_29_3,E_29_4,E_29_5,E_29_6,E_29_7,E_29_8,E_29_9,} t29;
+typedef struct {uint8_t field_1;float field_2;uint64_t field_3;t24 field_4;double field_5;float field_6;} t30;
+typedef struct {double field_1;float field_2;float field_3;t30 field_4;} t31;
+typedef struct {uint32_t field_1;} t32;
+typedef struct {t2 field_1;t18 field_2;} t33;
+typedef enum {E_34_1,E_34_2,E_34_3,E_34_4,E_34_5,E_34_6,} t34;
+typedef struct {t32 field_1;t33 field_2;t34 field_3;} t35;
+typedef enum {E_36_1,E_36_2,E_36_3,E_36_4,E_36_5,E_36_6,} t36;
+typedef struct {t36 field_1;} t37;
+typedef enum {E_38_1,E_38_2,E_38_3,E_38_4,E_38_5,E_38_6,E_38_7,} t38;
+typedef enum {E_39_1,E_39_2,E_39_3,E_39_4,E_39_5,E_39_6,} t39;
+typedef struct {t13 field_1;uint32_t field_2;} t40;
+typedef struct {t20 field_1;t29 field_2;uint64_t field_3;} t41;
+typedef struct {uint8_t field_1;t40 field_2;uint8_t field_3;t41 field_4;} t42;
+typedef struct {t10 field_1;t12 field_2;t4 field_3;} t43;
+typedef enum {E_44_1,E_44_2,E_44_3,E_44_4,E_44_5,E_44_6,E_44_7,} t44;
+typedef struct {uint32_t field_1;} t45;
+typedef struct {t43 field_1;t44 field_2;t45 field_3;uint64_t field_4;t4 field_5;uint32_t field_6;} t46;
+typedef enum {E_47_1,E_47_2,E_47_3,E_47_4,E_47_5,E_47_6,E_47_7,E_47_8,} t47;
+typedef enum {E_48_1,E_48_2,E_48_3,E_48_4,E_48_5,E_48_6,E_48_7,} t48;
+typedef struct {uint32_t field_1;} t49;
+typedef struct {float field_1;t45 field_2;uint64_t field_3;double field_4;} t50;
+typedef enum {E_51_1,E_51_2,E_51_3,E_51_4,E_51_5,E_51_6,} t51;
+typedef struct {float field_1;t51 field_2;uint8_t field_3;float field_4;float field_5;} t52;
+typedef enum {E_53_1,E_53_2,E_53_3,E_53_4,E_53_5,E_53_6,E_53_7,} t53;
+typedef struct {t49 field_1;t50 field_2;t51 field_3;t52 field_4;t51 field_5;t53 field_6;} t54;
+typedef enum {E_55_1,E_55_2,E_55_3,E_55_4,E_55_5,E_55_6,} t55;
+typedef enum {E_56_1,E_56_2,E_56_3,E_56_4,E_56_5,E_56_6,E_56_7,} t56;
+typedef enum {E_57_1,E_57_2,E_57_3,E_57_4,E_57_5,E_57_6,E_57_7,E_57_8,} t57;
+typedef struct {double field_1;t36 field_2;} t58;
+typedef struct {uint8_t field_1;uint64_t field_2;} t59;
+typedef struct {uint64_t field_1;float field_2;t4 field_3;t38 field_4;} t60;
+typedef struct {t57 field_1;t58 field_2;t59 field_3;t60 field_4;} t61;
+typedef enum {E_62_1,E_62_2,E_62_3,E_62_4,E_62_5,E_62_6,E_62_7,E_62_8,E_62_9,} t62;
diff --git a/test/abi/004_types.myr b/test/abi/004_types.myr
new file mode 100644
index 0000000..e06d271
--- /dev/null
+++ b/test/abi/004_types.myr
@@ -0,0 +1,341 @@
+pkg =
+
+type t2 = struct
+field_1 : uint64
+field_2 : uint64
+field_3 : (uint8,uint8,flt32,uint64)
+field_4 : flt64
+field_5 : (uint8,uint8,flt32,uint64)
+;;
+type t3 = struct
+field_1 : uint64
+field_2 : t2
+field_3 : (uint8,uint8,flt32,uint64)
+field_4 : flt64
+field_5 : uint32
+;;
+type t4 = struct
+field_1 : flt64
+field_2 : flt32
+field_3 : t3
+;;
+
+type t6 = union
+`E_6_1
+`E_6_2
+`E_6_3
+`E_6_4
+`E_6_5
+`E_6_6
+`E_6_7
+`E_6_8
+`E_6_9
+;;
+
+type t8 = union
+`E_8_1
+`E_8_2
+`E_8_3
+`E_8_4
+`E_8_5
+`E_8_6
+;;
+
+
+
+
+
+type t14 = union
+`E_14_1
+`E_14_2
+`E_14_3
+`E_14_4
+`E_14_5
+`E_14_6
+`E_14_7
+;;
+type t15 = union
+`E_15_1
+`E_15_2
+`E_15_3
+`E_15_4
+`E_15_5
+`E_15_6
+;;
+
+type t17 = struct
+field_1 : (uint32,(flt32,uint32),(flt64,t2),(t4,(uint8,uint8,flt32,uint64),(uint64,flt32)))
+field_2 : flt64
+field_3 : uint64
+field_4 : uint8
+;;
+type t18 = union
+`E_18_1
+`E_18_2
+`E_18_3
+`E_18_4
+`E_18_5
+`E_18_6
+`E_18_7
+;;
+type t19 = struct
+field_1 : flt32
+field_2 : t17
+field_3 : t18
+field_4 : t2
+;;
+
+type t21 = struct
+field_1 : ((uint8,uint8,flt32,uint64),t2)
+field_2 : t17
+field_3 : flt32
+field_4 : t15
+field_5 : flt64
+field_6 : flt64
+;;
+type t22 = union
+`E_22_1
+`E_22_2
+`E_22_3
+`E_22_4
+`E_22_5
+`E_22_6
+`E_22_7
+;;
+
+type t24 = union
+`E_24_1
+`E_24_2
+`E_24_3
+`E_24_4
+`E_24_5
+`E_24_6
+;;
+type t25 = struct
+field_1 : (t8,uint32)
+field_2 : flt64
+field_3 : uint64
+field_4 : uint64
+field_5 : flt32
+field_6 : flt64
+;;
+type t26 = struct
+field_1 : t25
+field_2 : uint8
+field_3 : uint64
+field_4 : uint8
+;;
+type t27 = union
+`E_27_1
+`E_27_2
+`E_27_3
+`E_27_4
+`E_27_5
+`E_27_6
+`E_27_7
+`E_27_8
+;;
+type t28 = union
+`E_28_1
+`E_28_2
+`E_28_3
+`E_28_4
+`E_28_5
+`E_28_6
+`E_28_7
+;;
+type t29 = union
+`E_29_1
+`E_29_2
+`E_29_3
+`E_29_4
+`E_29_5
+`E_29_6
+`E_29_7
+`E_29_8
+`E_29_9
+;;
+type t30 = struct
+field_1 : uint8
+field_2 : flt32
+field_3 : uint64
+field_4 : t24
+field_5 : flt64
+field_6 : flt32
+;;
+type t31 = struct
+field_1 : flt64
+field_2 : flt32
+field_3 : flt32
+field_4 : t30
+;;
+type t32 = struct
+field_1 : uint32
+;;
+
+type t34 = union
+`E_34_1
+`E_34_2
+`E_34_3
+`E_34_4
+`E_34_5
+`E_34_6
+;;
+
+type t36 = union
+`E_36_1
+`E_36_2
+`E_36_3
+`E_36_4
+`E_36_5
+`E_36_6
+;;
+type t37 = struct
+field_1 : t36
+;;
+type t38 = union
+`E_38_1
+`E_38_2
+`E_38_3
+`E_38_4
+`E_38_5
+`E_38_6
+`E_38_7
+;;
+type t39 = union
+`E_39_1
+`E_39_2
+`E_39_3
+`E_39_4
+`E_39_5
+`E_39_6
+;;
+
+type t41 = struct
+field_1 : ((uint8,uint8,flt32,uint64),t2)
+field_2 : t29
+field_3 : uint64
+;;
+
+
+type t44 = union
+`E_44_1
+`E_44_2
+`E_44_3
+`E_44_4
+`E_44_5
+`E_44_6
+`E_44_7
+;;
+type t45 = struct
+field_1 : uint32
+;;
+type t46 = struct
+field_1 : ((flt32,uint32),(t4,(uint8,uint8,flt32,uint64),(uint64,flt32)),t4)
+field_2 : t44
+field_3 : t45
+field_4 : uint64
+field_5 : t4
+field_6 : uint32
+;;
+type t47 = union
+`E_47_1
+`E_47_2
+`E_47_3
+`E_47_4
+`E_47_5
+`E_47_6
+`E_47_7
+`E_47_8
+;;
+type t48 = union
+`E_48_1
+`E_48_2
+`E_48_3
+`E_48_4
+`E_48_5
+`E_48_6
+`E_48_7
+;;
+type t49 = struct
+field_1 : uint32
+;;
+
+type t51 = union
+`E_51_1
+`E_51_2
+`E_51_3
+`E_51_4
+`E_51_5
+`E_51_6
+;;
+type t52 = struct
+field_1 : flt32
+field_2 : t51
+field_3 : uint8
+field_4 : flt32
+field_5 : flt32
+;;
+type t53 = union
+`E_53_1
+`E_53_2
+`E_53_3
+`E_53_4
+`E_53_5
+`E_53_6
+`E_53_7
+;;
+type t54 = struct
+field_1 : t49
+field_2 : (flt32,t45,uint64,flt64)
+field_3 : t51
+field_4 : t52
+field_5 : t51
+field_6 : t53
+;;
+type t55 = union
+`E_55_1
+`E_55_2
+`E_55_3
+`E_55_4
+`E_55_5
+`E_55_6
+;;
+type t56 = union
+`E_56_1
+`E_56_2
+`E_56_3
+`E_56_4
+`E_56_5
+`E_56_6
+`E_56_7
+;;
+type t57 = union
+`E_57_1
+`E_57_2
+`E_57_3
+`E_57_4
+`E_57_5
+`E_57_6
+`E_57_7
+`E_57_8
+;;
+
+type t59 = struct
+field_1 : uint8
+field_2 : uint64
+;;
+
+
+type t62 = union
+`E_62_1
+`E_62_2
+`E_62_3
+`E_62_4
+`E_62_5
+`E_62_6
+`E_62_7
+`E_62_8
+`E_62_9
+;;
+;;
diff --git a/test/abi/005_in-c.glue.c b/test/abi/005_in-c.glue.c
new file mode 100644
index 0000000..30832e1
--- /dev/null
+++ b/test/abi/005_in-c.glue.c
@@ -0,0 +1,468 @@
+/* CFLAGS: -I/usr/include/ */
+/* CFLAGS: -I/usr/include */
+/* LIBS: c */
+
+#include <stdint.h>
+#include "005_types.h"
+
+extern t9 fn_1_myr(t2 a1, uint32_t a2, t4 a3, t2 a4, t7 a5, float a6, double a7, t8 a8);
+extern t17 fn_2_myr(t12 a1, t14 a2, t7 a3, float a4, t15 a5, t14 a6, uint8_t a7);
+extern uint32_t fn_3_myr(t15 a1, t23 a2, t21 a3, uint8_t a4, uint8_t a5, t27 a6);
+extern uint64_t fn_4_myr(t30 a1);
+extern double fn_5_myr(t33 a1, t34 a2, t36 a3, t37 a4, uint64_t a5);
+extern t43 fn_6_myr(t40 a1, t41 a2, t34 a3, t42 a4, double a5, double a6, uint64_t a7, uint64_t a8, t26 a9);
+extern uint32_t fn_7_myr(t48 a1);
+extern float fn_8_myr(t1 a1, t50 a2, t51 a3, float a4, t52 a5, uint32_t a6, t53 a7, uint8_t a8);
+extern uint64_t fn_9_myr(t51 a1, float a2, float a3, t56 a4, t58 a5, t61 a6, t65 a7, t66 a8, t67 a9, double a10);
+extern float fn_10_myr(t74 a1, float a2, t75 a3, uint8_t a4, t78 a5, t79 a6);
+
+t9
+fn_1_c(t2 a1, uint32_t a2, t4 a3, t2 a4, t7 a5, float a6, double a7, t8 a8)
+{
+ if (!((a1.field_1==0.0625) && ((a1.field_2.field_1==112) && (a1.field_2.field_2==-0.625) && (a1.field_2.field_3==110) && (a1.field_2.field_4==44)))) {
+ goto bad;
+ }
+
+ if (!(a2==2189228706)) {
+ goto bad;
+ }
+
+ if (!(((a3.field_1.field_1==-0.84375) && ((a3.field_1.field_2.field_1==150) && (a3.field_1.field_2.field_2==0.359375) && (a3.field_1.field_2.field_3==172) && (a3.field_1.field_2.field_4==26))) && ((a3.field_2.field_1==241023379308544) && (a3.field_2.field_2==115) && ((a3.field_2.field_3.field_1==228) && (a3.field_2.field_3.field_2==0.65625) && (a3.field_2.field_3.field_3==247) && (a3.field_2.field_3.field_4==84))) && ((a3.field_3.field_1==3134223810560) && (a3.field_3.field_2==102) && ((a3.field_3.field_3.field_1==128) && (a3.field_3.field_3.field_2==-1.21875) && (a3.field_3.field_3.field_3==232) && (a3.field_3.field_3.field_4==105))))) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==-1.203125) && ((a4.field_2.field_1==110) && (a4.field_2.field_2==0.6875) && (a4.field_2.field_3==119) && (a4.field_2.field_4==200)))) {
+ goto bad;
+ }
+
+ if (!(((a5.field_1.field_1==94503966736384) && (a5.field_1.field_2==2770153426) && (a5.field_1.field_3==187) && (a5.field_1.field_4==214) && (a5.field_1.field_5==213410253897728)) && (a5.field_2==164) && (a5.field_3==E_6_2))) {
+ goto bad;
+ }
+
+ if (!(a6==1.53125)) {
+ goto bad;
+ }
+
+ if (!(a7==1.3984375)) {
+ goto bad;
+ }
+
+ if (!((((a8.field_1.field_1.field_1==0.578125) && ((a8.field_1.field_1.field_2.field_1==170) && (a8.field_1.field_1.field_2.field_2==1.09375) && (a8.field_1.field_1.field_2.field_3==193) && (a8.field_1.field_1.field_2.field_4==148))) && ((a8.field_1.field_2.field_1==271021012025344) && (a8.field_1.field_2.field_2==173) && ((a8.field_1.field_2.field_3.field_1==241) && (a8.field_1.field_2.field_3.field_2==1.46875) && (a8.field_1.field_2.field_3.field_3==80) && (a8.field_1.field_2.field_3.field_4==71))) && ((a8.field_1.field_3.field_1==86092233441280) && (a8.field_1.field_3.field_2==245) && ((a8.field_1.field_3.field_3.field_1==3) && (a8.field_1.field_3.field_3.field_2==-1.125) && (a8.field_1.field_3.field_3.field_3==183) && (a8.field_1.field_3.field_3.field_4==168)))) && ((a8.field_2.field_1==110146554691584) && (a8.field_2.field_2==246) && ((a8.field_2.field_3.field_1==164) && (a8.field_2.field_3.field_2==0.8125) && (a8.field_2.field_3.field_3==164) && (a8.field_2.field_3.field_4==89))) && (a8.field_3==0.28125) && (a8.field_4==E_6_1))) {
+ goto bad;
+ }
+
+ return (t9) {.field_1=(t1) {.field_1=192,.field_2=-1.296875,.field_3=50,.field_4=129},.field_2=(t3) {.field_1=188458318561280,.field_2=40,.field_3=(t1) {.field_1=47,.field_2=0.359375,.field_3=32,.field_4=127}}};
+
+bad:
+ return (t9) {.field_1=(t1) {.field_1=228,.field_2=-0.203125,.field_3=117,.field_4=231},.field_2=(t3) {.field_1=162396161703936,.field_2=44,.field_3=(t1) {.field_1=143,.field_2=1.46875,.field_3=35,.field_4=52}}};
+}
+
+t17
+fn_2_c(t12 a1, t14 a2, t7 a3, float a4, t15 a5, t14 a6, uint8_t a7)
+{
+ if (!((a1.field_1==2.7734375) && ((a1.field_2.field_1==258260610842624) && (((a1.field_2.field_2.field_1.field_1==67688764407808) && (a1.field_2.field_2.field_1.field_2==122501974) && (a1.field_2.field_2.field_1.field_3==122) && (a1.field_2.field_2.field_1.field_4==53) && (a1.field_2.field_2.field_1.field_5==46816349519872)) && (a1.field_2.field_2.field_2==175) && (a1.field_2.field_2.field_3==E_6_7)) && (((a1.field_2.field_3.field_1.field_1==242) && (a1.field_2.field_3.field_1.field_2==-0.828125) && (a1.field_2.field_3.field_1.field_3==64) && (a1.field_2.field_3.field_1.field_4==212)) && ((a1.field_2.field_3.field_2.field_1==175981577109504) && (a1.field_2.field_3.field_2.field_2==146) && ((a1.field_2.field_3.field_2.field_3.field_1==58) && (a1.field_2.field_3.field_2.field_3.field_2==-1.3125) && (a1.field_2.field_3.field_2.field_3.field_3==81) && (a1.field_2.field_3.field_2.field_3.field_4==249))))) && (((a1.field_3.field_1.field_1==-0.671875) && ((a1.field_3.field_1.field_2.field_1==39) && (a1.field_3.field_1.field_2.field_2==1.3125) && (a1.field_3.field_1.field_2.field_3==255) && (a1.field_3.field_1.field_2.field_4==168))) && (a1.field_3.field_2==5680861020160) && (a1.field_3.field_3==3.1015625)))) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==-0.65625) && ((a2.field_2.field_1==-3.07421875) && (a2.field_2.field_2==2364459620) && (a2.field_2.field_3==34004063092736) && (((a2.field_2.field_4.field_1.field_1==0.734375) && ((a2.field_2.field_4.field_1.field_2.field_1==31) && (a2.field_2.field_4.field_1.field_2.field_2==-0.46875) && (a2.field_2.field_4.field_1.field_2.field_3==207) && (a2.field_2.field_4.field_1.field_2.field_4==112))) && ((a2.field_2.field_4.field_2.field_1==91868031090688) && (a2.field_2.field_4.field_2.field_2==24) && ((a2.field_2.field_4.field_2.field_3.field_1==152) && (a2.field_2.field_4.field_2.field_3.field_2==-0.796875) && (a2.field_2.field_4.field_2.field_3.field_3==24) && (a2.field_2.field_4.field_2.field_3.field_4==64))) && ((a2.field_2.field_4.field_3.field_1==74808418369536) && (a2.field_2.field_4.field_3.field_2==254) && ((a2.field_2.field_4.field_3.field_3.field_1==6) && (a2.field_2.field_4.field_3.field_3.field_2==0.046875) && (a2.field_2.field_4.field_3.field_3.field_3==73) && (a2.field_2.field_4.field_3.field_3.field_4==208))))))) {
+ goto bad;
+ }
+
+ if (!(((a3.field_1.field_1==145965008551936) && (a3.field_1.field_2==2498931774) && (a3.field_1.field_3==156) && (a3.field_1.field_4==179) && (a3.field_1.field_5==265737065725952)) && (a3.field_2==244) && (a3.field_3==E_6_5))) {
+ goto bad;
+ }
+
+ if (!(a4==-0.796875)) {
+ goto bad;
+ }
+
+ if (!(a5==E_15_4)) {
+ goto bad;
+ }
+
+ if (!((a6.field_1==0.6875) && ((a6.field_2.field_1==-2.171875) && (a6.field_2.field_2==1533036440) && (a6.field_2.field_3==12142327889920) && (((a6.field_2.field_4.field_1.field_1==-0.5625) && ((a6.field_2.field_4.field_1.field_2.field_1==243) && (a6.field_2.field_4.field_1.field_2.field_2==-0.65625) && (a6.field_2.field_4.field_1.field_2.field_3==106) && (a6.field_2.field_4.field_1.field_2.field_4==51))) && ((a6.field_2.field_4.field_2.field_1==156078303608832) && (a6.field_2.field_4.field_2.field_2==104) && ((a6.field_2.field_4.field_2.field_3.field_1==58) && (a6.field_2.field_4.field_2.field_3.field_2==-1.34375) && (a6.field_2.field_4.field_2.field_3.field_3==178) && (a6.field_2.field_4.field_2.field_3.field_4==10))) && ((a6.field_2.field_4.field_3.field_1==140200370896896) && (a6.field_2.field_4.field_3.field_2==33) && ((a6.field_2.field_4.field_3.field_3.field_1==143) && (a6.field_2.field_4.field_3.field_3.field_2==-1.3125) && (a6.field_2.field_4.field_3.field_3.field_3==190) && (a6.field_2.field_4.field_3.field_3.field_4==67))))))) {
+ goto bad;
+ }
+
+ if (!(a7==179)) {
+ goto bad;
+ }
+
+ return (t17) {.field_1=(t16) {.field_1=101589888270336,.field_2=(t1) {.field_1=225,.field_2=-0.046875,.field_3=234,.field_4=74},.field_3=200069064425472,.field_4=1.53125},.field_2=1.53125};
+
+bad:
+ return (t17) {.field_1=(t16) {.field_1=211711070699520,.field_2=(t1) {.field_1=123,.field_2=-1.203125,.field_3=79,.field_4=144},.field_3=242499850862592,.field_4=0.234375},.field_2=0.28125};
+}
+
+uint32_t
+fn_3_c(t15 a1, t23 a2, t21 a3, uint8_t a4, uint8_t a5, t27 a6)
+{
+ if (!(a1==E_15_5)) {
+ goto bad;
+ }
+
+ if (!(((((a2.field_1.field_1.field_1.field_1==208514472345600) && ((a2.field_1.field_1.field_1.field_2.field_1==171) && (a2.field_1.field_1.field_1.field_2.field_2==0.53125) && (a2.field_1.field_1.field_1.field_2.field_3==170) && (a2.field_1.field_1.field_1.field_2.field_4==148)) && (a2.field_1.field_1.field_1.field_3==137775610724352) && (a2.field_1.field_1.field_1.field_4==0.046875)) && (a2.field_1.field_1.field_2==-0.109375)) && ((((a2.field_1.field_2.field_1.field_1.field_1==-0.515625) && ((a2.field_1.field_2.field_1.field_1.field_2.field_1==130) && (a2.field_1.field_2.field_1.field_1.field_2.field_2==0.5625) && (a2.field_1.field_2.field_1.field_1.field_2.field_3==65) && (a2.field_1.field_2.field_1.field_1.field_2.field_4==249))) && ((a2.field_1.field_2.field_1.field_2.field_1==49920772014080) && (a2.field_1.field_2.field_1.field_2.field_2==137) && ((a2.field_1.field_2.field_1.field_2.field_3.field_1==81) && (a2.field_1.field_2.field_1.field_2.field_3.field_2==-1.078125) && (a2.field_1.field_2.field_1.field_2.field_3.field_3==187) && (a2.field_1.field_2.field_1.field_2.field_3.field_4==244))) && ((a2.field_1.field_2.field_1.field_3.field_1==238917205884928) && (a2.field_1.field_2.field_1.field_3.field_2==234) && ((a2.field_1.field_2.field_1.field_3.field_3.field_1==148) && (a2.field_1.field_2.field_1.field_3.field_3.field_2==-0.65625) && (a2.field_1.field_2.field_1.field_3.field_3.field_3==148) && (a2.field_1.field_2.field_1.field_3.field_3.field_4==82)))) && ((a2.field_1.field_2.field_2.field_1==13348047552512) && (a2.field_1.field_2.field_2.field_2==206) && ((a2.field_1.field_2.field_2.field_3.field_1==236) && (a2.field_1.field_2.field_2.field_3.field_2==-0.390625) && (a2.field_1.field_2.field_2.field_3.field_3==159) && (a2.field_1.field_2.field_2.field_3.field_4==22))) && (a2.field_1.field_2.field_3==-1.203125) && (a2.field_1.field_2.field_4==E_6_3)) && (a2.field_1.field_3==3263768112) && (((a2.field_1.field_4.field_1.field_1==0.890625) && ((a2.field_1.field_4.field_1.field_2.field_1==223) && (a2.field_1.field_4.field_1.field_2.field_2==-0.78125) && (a2.field_1.field_4.field_1.field_2.field_3==76) && (a2.field_1.field_4.field_1.field_2.field_4==85))) && ((a2.field_1.field_4.field_2.field_1==165112780685312) && (a2.field_1.field_4.field_2.field_2==206) && ((a2.field_1.field_4.field_2.field_3.field_1==4) && (a2.field_1.field_4.field_2.field_3.field_2==1.078125) && (a2.field_1.field_4.field_2.field_3.field_3==200) && (a2.field_1.field_4.field_2.field_3.field_4==49))) && ((a2.field_1.field_4.field_3.field_1==107450067189760) && (a2.field_1.field_4.field_3.field_2==25) && ((a2.field_1.field_4.field_3.field_3.field_1==89) && (a2.field_1.field_4.field_3.field_3.field_2==-1.203125) && (a2.field_1.field_4.field_3.field_3.field_3==14) && (a2.field_1.field_4.field_3.field_3.field_4==51))))) && (a2.field_2==E_19_1) && (a2.field_3==178689565917184) && (a2.field_4==E_20_4) && (a2.field_5==E_21_6) && ((a2.field_6.field_1==269113953746944) && (a2.field_6.field_2==2315358406)))) {
+ goto bad;
+ }
+
+ if (!(a3==E_21_9)) {
+ goto bad;
+ }
+
+ if (!(a4==248)) {
+ goto bad;
+ }
+
+ if (!(a5==86)) {
+ goto bad;
+ }
+
+ if (!((a6.field_1==85770339090432) && ((a6.field_2.field_1==-0.671875)) && ((a6.field_3.field_1==-1.15234375) && (a6.field_3.field_2==E_20_1) && (a6.field_3.field_3==E_21_1) && ((a6.field_3.field_4.field_1==0.46875) && ((a6.field_3.field_4.field_2.field_1==3865086263296) && (((a6.field_3.field_4.field_2.field_2.field_1.field_1==62745143410688) && (a6.field_3.field_4.field_2.field_2.field_1.field_2==444241798) && (a6.field_3.field_4.field_2.field_2.field_1.field_3==148) && (a6.field_3.field_4.field_2.field_2.field_1.field_4==38) && (a6.field_3.field_4.field_2.field_2.field_1.field_5==186451756843008)) && (a6.field_3.field_4.field_2.field_2.field_2==253) && (a6.field_3.field_4.field_2.field_2.field_3==E_6_6)) && (((a6.field_3.field_4.field_2.field_3.field_1.field_1==106) && (a6.field_3.field_4.field_2.field_3.field_1.field_2==0.875) && (a6.field_3.field_4.field_2.field_3.field_1.field_3==169) && (a6.field_3.field_4.field_2.field_3.field_1.field_4==132)) && ((a6.field_3.field_4.field_2.field_3.field_2.field_1==193552010969088) && (a6.field_3.field_4.field_2.field_3.field_2.field_2==134) && ((a6.field_3.field_4.field_2.field_3.field_2.field_3.field_1==209) && (a6.field_3.field_4.field_2.field_3.field_2.field_3.field_2==0.390625) && (a6.field_3.field_4.field_2.field_3.field_2.field_3.field_3==6) && (a6.field_3.field_4.field_2.field_3.field_2.field_3.field_4==157))))) && (((a6.field_3.field_4.field_3.field_1.field_1==-1.015625) && ((a6.field_3.field_4.field_3.field_1.field_2.field_1==122) && (a6.field_3.field_4.field_3.field_1.field_2.field_2==1.40625) && (a6.field_3.field_4.field_3.field_1.field_2.field_3==38) && (a6.field_3.field_4.field_3.field_1.field_2.field_4==208))) && (a6.field_3.field_4.field_3.field_2==55544454578176) && (a6.field_3.field_4.field_3.field_3==-2.609375)))) && ((a6.field_4.field_1==33366908207104) && (a6.field_4.field_2==136001504280576) && (a6.field_4.field_3==132)))) {
+ goto bad;
+ }
+
+ return 2527618668;
+
+bad:
+ return 339855078;
+}
+
+uint64_t
+fn_4_c(t30 a1)
+{
+ if (!(((((((a1.field_1.field_1.field_1.field_1.field_1.field_1==44445459546112) && ((a1.field_1.field_1.field_1.field_1.field_1.field_2.field_1==83) && (a1.field_1.field_1.field_1.field_1.field_1.field_2.field_2==-0.453125) && (a1.field_1.field_1.field_1.field_1.field_1.field_2.field_3==82) && (a1.field_1.field_1.field_1.field_1.field_1.field_2.field_4==113)) && (a1.field_1.field_1.field_1.field_1.field_1.field_3==235939541549056) && (a1.field_1.field_1.field_1.field_1.field_1.field_4==1.078125)) && (a1.field_1.field_1.field_1.field_1.field_2==0.3125)) && ((((a1.field_1.field_1.field_1.field_2.field_1.field_1.field_1==-0.234375) && ((a1.field_1.field_1.field_1.field_2.field_1.field_1.field_2.field_1==236) && (a1.field_1.field_1.field_1.field_2.field_1.field_1.field_2.field_2==0.828125) && (a1.field_1.field_1.field_1.field_2.field_1.field_1.field_2.field_3==60) && (a1.field_1.field_1.field_1.field_2.field_1.field_1.field_2.field_4==26))) && ((a1.field_1.field_1.field_1.field_2.field_1.field_2.field_1==143671663132672) && (a1.field_1.field_1.field_1.field_2.field_1.field_2.field_2==50) && ((a1.field_1.field_1.field_1.field_2.field_1.field_2.field_3.field_1==243) && (a1.field_1.field_1.field_1.field_2.field_1.field_2.field_3.field_2==-0.796875) && (a1.field_1.field_1.field_1.field_2.field_1.field_2.field_3.field_3==3) && (a1.field_1.field_1.field_1.field_2.field_1.field_2.field_3.field_4==53))) && ((a1.field_1.field_1.field_1.field_2.field_1.field_3.field_1==214366877515776) && (a1.field_1.field_1.field_1.field_2.field_1.field_3.field_2==126) && ((a1.field_1.field_1.field_1.field_2.field_1.field_3.field_3.field_1==252) && (a1.field_1.field_1.field_1.field_2.field_1.field_3.field_3.field_2==1.453125) && (a1.field_1.field_1.field_1.field_2.field_1.field_3.field_3.field_3==128) && (a1.field_1.field_1.field_1.field_2.field_1.field_3.field_3.field_4==149)))) && ((a1.field_1.field_1.field_1.field_2.field_2.field_1==223779870998528) && (a1.field_1.field_1.field_1.field_2.field_2.field_2==137) && ((a1.field_1.field_1.field_1.field_2.field_2.field_3.field_1==203) && (a1.field_1.field_1.field_1.field_2.field_2.field_3.field_2==0.953125) && (a1.field_1.field_1.field_1.field_2.field_2.field_3.field_3==12) && (a1.field_1.field_1.field_1.field_2.field_2.field_3.field_4==243))) && (a1.field_1.field_1.field_1.field_2.field_3==1.453125) && (a1.field_1.field_1.field_1.field_2.field_4==E_6_3)) && (a1.field_1.field_1.field_1.field_3==1314332054) && (((a1.field_1.field_1.field_1.field_4.field_1.field_1==-0.671875) && ((a1.field_1.field_1.field_1.field_4.field_1.field_2.field_1==209) && (a1.field_1.field_1.field_1.field_4.field_1.field_2.field_2==-1.125) && (a1.field_1.field_1.field_1.field_4.field_1.field_2.field_3==32) && (a1.field_1.field_1.field_1.field_4.field_1.field_2.field_4==106))) && ((a1.field_1.field_1.field_1.field_4.field_2.field_1==160715212455936) && (a1.field_1.field_1.field_1.field_4.field_2.field_2==12) && ((a1.field_1.field_1.field_1.field_4.field_2.field_3.field_1==45) && (a1.field_1.field_1.field_1.field_4.field_2.field_3.field_2==0.96875) && (a1.field_1.field_1.field_1.field_4.field_2.field_3.field_3==39) && (a1.field_1.field_1.field_1.field_4.field_2.field_3.field_4==176))) && ((a1.field_1.field_1.field_1.field_4.field_3.field_1==2142336450560) && (a1.field_1.field_1.field_1.field_4.field_3.field_2==26) && ((a1.field_1.field_1.field_1.field_4.field_3.field_3.field_1==239) && (a1.field_1.field_1.field_1.field_4.field_3.field_3.field_2==-1.5) && (a1.field_1.field_1.field_1.field_4.field_3.field_3.field_3==80) && (a1.field_1.field_1.field_1.field_4.field_3.field_3.field_4==178))))) && (a1.field_1.field_1.field_2==E_19_5) && (a1.field_1.field_1.field_3==84526311014400) && (a1.field_1.field_1.field_4==E_20_6) && (a1.field_1.field_1.field_5==E_21_1) && ((a1.field_1.field_1.field_6.field_1==248535774265344) && (a1.field_1.field_1.field_6.field_2==1964811016))) && (a1.field_1.field_2==0.1875) && (a1.field_1.field_3==E_6_5) && (a1.field_1.field_4==-1.87109375)) && ((a1.field_2.field_1==155) && (a1.field_2.field_2==2693759888)))) {
+ goto bad;
+ }
+
+ return 276275068796928;
+
+bad:
+ return 262674313510912;
+}
+
+double
+fn_5_c(t33 a1, t34 a2, t36 a3, t37 a4, uint64_t a5)
+{
+ if (!((a1.field_1==E_31_3) && (a1.field_2==E_32_5))) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==E_32_5) && (a2.field_2==66))) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==E_35_4) && (a3.field_2==214))) {
+ goto bad;
+ }
+
+ if (!(a4==E_37_1)) {
+ goto bad;
+ }
+
+ if (!(a5==210077727850496)) {
+ goto bad;
+ }
+
+ return -2.5234375;
+
+bad:
+ return 1.40234375;
+}
+
+t43
+fn_6_c(t40 a1, t41 a2, t34 a3, t42 a4, double a5, double a6, uint64_t a7, uint64_t a8, t26 a9)
+{
+ if (!(((((a1.field_1.field_1.field_1.field_1==0.71875) && ((a1.field_1.field_1.field_1.field_2.field_1==162) && (a1.field_1.field_1.field_1.field_2.field_2==-1.375) && (a1.field_1.field_1.field_1.field_2.field_3==12) && (a1.field_1.field_1.field_1.field_2.field_4==208))) && ((a1.field_1.field_1.field_2.field_1==208257259929600) && (a1.field_1.field_1.field_2.field_2==224) && ((a1.field_1.field_1.field_2.field_3.field_1==202) && (a1.field_1.field_1.field_2.field_3.field_2==-0.015625) && (a1.field_1.field_1.field_2.field_3.field_3==86) && (a1.field_1.field_1.field_2.field_3.field_4==251))) && ((a1.field_1.field_1.field_3.field_1==253976550440960) && (a1.field_1.field_1.field_3.field_2==123) && ((a1.field_1.field_1.field_3.field_3.field_1==146) && (a1.field_1.field_1.field_3.field_3.field_2==0.828125) && (a1.field_1.field_1.field_3.field_3.field_3==120) && (a1.field_1.field_1.field_3.field_3.field_4==62)))) && ((a1.field_1.field_2.field_1==26298971062272) && (a1.field_1.field_2.field_2==103) && ((a1.field_1.field_2.field_3.field_1==239) && (a1.field_1.field_2.field_3.field_2==1.28125) && (a1.field_1.field_2.field_3.field_3==152) && (a1.field_1.field_2.field_3.field_4==89))) && (a1.field_1.field_3==0.734375) && (a1.field_1.field_4==E_6_3)) && (a1.field_2==E_6_1) && (a1.field_3==E_38_6) && (((a1.field_4.field_1.field_1==152549047009280) && ((a1.field_4.field_1.field_2.field_1==0.859375)) && ((a1.field_4.field_1.field_3.field_1==-3.7109375) && (a1.field_4.field_1.field_3.field_2==E_20_7) && (a1.field_4.field_1.field_3.field_3==E_21_5) && ((a1.field_4.field_1.field_3.field_4.field_1==1.26171875) && ((a1.field_4.field_1.field_3.field_4.field_2.field_1==257906686427136) && (((a1.field_4.field_1.field_3.field_4.field_2.field_2.field_1.field_1==154973503488000) && (a1.field_4.field_1.field_3.field_4.field_2.field_2.field_1.field_2==2040012194) && (a1.field_4.field_1.field_3.field_4.field_2.field_2.field_1.field_3==167) && (a1.field_4.field_1.field_3.field_4.field_2.field_2.field_1.field_4==109) && (a1.field_4.field_1.field_3.field_4.field_2.field_2.field_1.field_5==74787062284288)) && (a1.field_4.field_1.field_3.field_4.field_2.field_2.field_2==39) && (a1.field_4.field_1.field_3.field_4.field_2.field_2.field_3==E_6_6)) && (((a1.field_4.field_1.field_3.field_4.field_2.field_3.field_1.field_1==63) && (a1.field_4.field_1.field_3.field_4.field_2.field_3.field_1.field_2==-1.390625) && (a1.field_4.field_1.field_3.field_4.field_2.field_3.field_1.field_3==63) && (a1.field_4.field_1.field_3.field_4.field_2.field_3.field_1.field_4==209)) && ((a1.field_4.field_1.field_3.field_4.field_2.field_3.field_2.field_1==230983872282624) && (a1.field_4.field_1.field_3.field_4.field_2.field_3.field_2.field_2==184) && ((a1.field_4.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_1==15) && (a1.field_4.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_2==1.296875) && (a1.field_4.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_3==31) && (a1.field_4.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_4==255))))) && (((a1.field_4.field_1.field_3.field_4.field_3.field_1.field_1==1.015625) && ((a1.field_4.field_1.field_3.field_4.field_3.field_1.field_2.field_1==183) && (a1.field_4.field_1.field_3.field_4.field_3.field_1.field_2.field_2==-0.484375) && (a1.field_4.field_1.field_3.field_4.field_3.field_1.field_2.field_3==142) && (a1.field_4.field_1.field_3.field_4.field_3.field_1.field_2.field_4==16))) && (a1.field_4.field_1.field_3.field_4.field_3.field_2==137163913822208) && (a1.field_4.field_1.field_3.field_4.field_3.field_3==-2.80859375)))) && ((a1.field_4.field_1.field_4.field_1==170983975682048) && (a1.field_4.field_1.field_4.field_2==72796805398528) && (a1.field_4.field_1.field_4.field_3==42))) && (a1.field_4.field_2==1990287632) && ((a1.field_4.field_3.field_1==194) && (a1.field_4.field_3.field_2==3552591666)) && ((((a1.field_4.field_4.field_1.field_1.field_1==-0.375) && ((a1.field_4.field_4.field_1.field_1.field_2.field_1==79) && (a1.field_4.field_4.field_1.field_1.field_2.field_2==-0.625) && (a1.field_4.field_4.field_1.field_1.field_2.field_3==9) && (a1.field_4.field_4.field_1.field_1.field_2.field_4==188))) && ((a1.field_4.field_4.field_1.field_2.field_1==159828972142592) && (a1.field_4.field_4.field_1.field_2.field_2==48) && ((a1.field_4.field_4.field_1.field_2.field_3.field_1==128) && (a1.field_4.field_4.field_1.field_2.field_3.field_2==1.0) && (a1.field_4.field_4.field_1.field_2.field_3.field_3==62) && (a1.field_4.field_4.field_1.field_2.field_3.field_4==192))) && ((a1.field_4.field_4.field_1.field_3.field_1==179052505464832) && (a1.field_4.field_4.field_1.field_3.field_2==16) && ((a1.field_4.field_4.field_1.field_3.field_3.field_1==120) && (a1.field_4.field_4.field_1.field_3.field_3.field_2==0.625) && (a1.field_4.field_4.field_1.field_3.field_3.field_3==250) && (a1.field_4.field_4.field_1.field_3.field_3.field_4==151)))) && ((a1.field_4.field_4.field_2.field_1==196274257788928) && (a1.field_4.field_4.field_2.field_2==205) && ((a1.field_4.field_4.field_2.field_3.field_1==79) && (a1.field_4.field_4.field_2.field_3.field_2==-1.4375) && (a1.field_4.field_4.field_2.field_3.field_3==91) && (a1.field_4.field_4.field_2.field_3.field_4==96))) && (a1.field_4.field_4.field_3==0.09375) && (a1.field_4.field_4.field_4==E_6_4)) && (a1.field_4.field_5==1.515625)) && (a1.field_5==2.265625))) {
+ goto bad;
+ }
+
+ if (!(a2==E_41_5)) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==E_32_8) && (a3.field_2==203))) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==-1.58984375) && (a4.field_2==217) && (a4.field_3==3500137676) && (a4.field_4==101686982737920))) {
+ goto bad;
+ }
+
+ if (!(a5==0.10546875)) {
+ goto bad;
+ }
+
+ if (!(a6==3.21875)) {
+ goto bad;
+ }
+
+ if (!(a7==40133181046784)) {
+ goto bad;
+ }
+
+ if (!(a8==71741835313152)) {
+ goto bad;
+ }
+
+ if (!((a9.field_1==221313136459776) && (a9.field_2==104460582912) && (a9.field_3==149))) {
+ goto bad;
+ }
+
+ return E_43_1;
+
+bad:
+ return E_43_2;
+}
+
+uint32_t
+fn_7_c(t48 a1)
+{
+ if (!(((a1.field_1.field_1==6386332991488) && (a1.field_1.field_2==-3.90625) && (a1.field_1.field_3==163) && (a1.field_1.field_4==155193554763776) && ((a1.field_1.field_5.field_1==E_35_3) && (a1.field_1.field_5.field_2==18))) && (((a1.field_2.field_1.field_1==112229799297024) && (a1.field_2.field_1.field_2==-2.8984375) && (a1.field_2.field_1.field_3==216) && (a1.field_2.field_1.field_4==44483204612096) && ((a1.field_2.field_1.field_5.field_1==E_35_2) && (a1.field_2.field_1.field_5.field_2==195))) && (a1.field_2.field_2==39665754832896) && (a1.field_2.field_3==114) && (a1.field_2.field_4==776337414)) && (a1.field_3==E_46_5) && (a1.field_4==146729052536832) && ((((a1.field_5.field_1.field_1.field_1==153) && (a1.field_5.field_1.field_1.field_2==1.234375) && (a1.field_5.field_1.field_1.field_3==43) && (a1.field_5.field_1.field_1.field_4==174)) && ((a1.field_5.field_1.field_2.field_1==26828980748288) && (a1.field_5.field_1.field_2.field_2==242) && ((a1.field_5.field_1.field_2.field_3.field_1==236) && (a1.field_5.field_1.field_2.field_3.field_2==-1.078125) && (a1.field_5.field_1.field_2.field_3.field_3==180) && (a1.field_5.field_1.field_2.field_3.field_4==30)))) && (a1.field_5.field_2==266092824363008)) && ((a1.field_6.field_1==13831859994624) && ((a1.field_6.field_2.field_1==0.390625)) && ((a1.field_6.field_3.field_1==0.0703125) && (a1.field_6.field_3.field_2==E_20_1) && (a1.field_6.field_3.field_3==E_21_6) && ((a1.field_6.field_3.field_4.field_1==-2.765625) && ((a1.field_6.field_3.field_4.field_2.field_1==175411747749888) && (((a1.field_6.field_3.field_4.field_2.field_2.field_1.field_1==262729443049472) && (a1.field_6.field_3.field_4.field_2.field_2.field_1.field_2==932333724) && (a1.field_6.field_3.field_4.field_2.field_2.field_1.field_3==5) && (a1.field_6.field_3.field_4.field_2.field_2.field_1.field_4==16) && (a1.field_6.field_3.field_4.field_2.field_2.field_1.field_5==17637135220736)) && (a1.field_6.field_3.field_4.field_2.field_2.field_2==46) && (a1.field_6.field_3.field_4.field_2.field_2.field_3==E_6_2)) && (((a1.field_6.field_3.field_4.field_2.field_3.field_1.field_1==211) && (a1.field_6.field_3.field_4.field_2.field_3.field_1.field_2==-0.5625) && (a1.field_6.field_3.field_4.field_2.field_3.field_1.field_3==171) && (a1.field_6.field_3.field_4.field_2.field_3.field_1.field_4==1)) && ((a1.field_6.field_3.field_4.field_2.field_3.field_2.field_1==12764915826688) && (a1.field_6.field_3.field_4.field_2.field_3.field_2.field_2==49) && ((a1.field_6.field_3.field_4.field_2.field_3.field_2.field_3.field_1==154) && (a1.field_6.field_3.field_4.field_2.field_3.field_2.field_3.field_2==1.375) && (a1.field_6.field_3.field_4.field_2.field_3.field_2.field_3.field_3==93) && (a1.field_6.field_3.field_4.field_2.field_3.field_2.field_3.field_4==73))))) && (((a1.field_6.field_3.field_4.field_3.field_1.field_1==-1.46875) && ((a1.field_6.field_3.field_4.field_3.field_1.field_2.field_1==79) && (a1.field_6.field_3.field_4.field_3.field_1.field_2.field_2==-0.90625) && (a1.field_6.field_3.field_4.field_3.field_1.field_2.field_3==49) && (a1.field_6.field_3.field_4.field_3.field_1.field_2.field_4==4))) && (a1.field_6.field_3.field_4.field_3.field_2==93216219463680) && (a1.field_6.field_3.field_4.field_3.field_3==-2.83203125)))) && ((a1.field_6.field_4.field_1==18454498639872) && (a1.field_6.field_4.field_2==269237052506112) && (a1.field_6.field_4.field_3==165))))) {
+ goto bad;
+ }
+
+ return 2499773006;
+
+bad:
+ return 3403919486;
+}
+
+float
+fn_8_c(t1 a1, t50 a2, t51 a3, float a4, t52 a5, uint32_t a6, t53 a7, uint8_t a8)
+{
+ if (!((a1.field_1==200) && (a1.field_2==0.25) && (a1.field_3==18) && (a1.field_4==246))) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==-0.734375) && ((a2.field_2.field_1==8592161505280) && (a2.field_2.field_2==2.32421875) && (a2.field_2.field_3==77) && (a2.field_2.field_4==95804356820992) && ((a2.field_2.field_5.field_1==E_35_1) && (a2.field_2.field_5.field_2==126))) && (a2.field_3==-1.12109375) && (a2.field_4==E_49_3))) {
+ goto bad;
+ }
+
+ if (!(a3==E_51_3)) {
+ goto bad;
+ }
+
+ if (!(a4==0.1875)) {
+ goto bad;
+ }
+
+ if (!((a5.field_1==-0.81640625))) {
+ goto bad;
+ }
+
+ if (!(a6==441584498)) {
+ goto bad;
+ }
+
+ if (!((a7.field_1==198))) {
+ goto bad;
+ }
+
+ if (!(a8==89)) {
+ goto bad;
+ }
+
+ return 1.421875;
+
+bad:
+ return 0.5625;
+}
+
+uint64_t
+fn_9_c(t51 a1, float a2, float a3, t56 a4, t58 a5, t61 a6, t65 a7, t66 a8, t67 a9, double a10)
+{
+ if (!(a1==E_51_8)) {
+ goto bad;
+ }
+
+ if (!(a2==-0.796875)) {
+ goto bad;
+ }
+
+ if (!(a3==-0.71875)) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==E_54_7) && (a4.field_2==255) && ((((a4.field_3.field_1.field_1.field_1==130105287114752) && ((a4.field_3.field_1.field_1.field_2.field_1==-1.0)) && ((a4.field_3.field_1.field_1.field_3.field_1==3.53125) && (a4.field_3.field_1.field_1.field_3.field_2==E_20_2) && (a4.field_3.field_1.field_1.field_3.field_3==E_21_1) && ((a4.field_3.field_1.field_1.field_3.field_4.field_1==-0.67578125) && ((a4.field_3.field_1.field_1.field_3.field_4.field_2.field_1==23617654620160) && (((a4.field_3.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_1==12594182750208) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_2==2889081194) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_3==84) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_4==84) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_5==265251503210496)) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_2.field_2==17) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_2.field_3==E_6_7)) && (((a4.field_3.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_1==141) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_2==-0.1875) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_3==10) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_4==118)) && ((a4.field_3.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_1==24302215233536) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_2==170) && ((a4.field_3.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_1==64) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_2==0.953125) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_3==156) && (a4.field_3.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_4==112))))) && (((a4.field_3.field_1.field_1.field_3.field_4.field_3.field_1.field_1==0.3125) && ((a4.field_3.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_1==168) && (a4.field_3.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_2==0.3125) && (a4.field_3.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_3==140) && (a4.field_3.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_4==197))) && (a4.field_3.field_1.field_1.field_3.field_4.field_3.field_2==149682231705600) && (a4.field_3.field_1.field_1.field_3.field_4.field_3.field_3==0.3828125)))) && ((a4.field_3.field_1.field_1.field_4.field_1==66190105247744) && (a4.field_3.field_1.field_1.field_4.field_2==201243456045056) && (a4.field_3.field_1.field_1.field_4.field_3==128))) && (a4.field_3.field_1.field_2==1608787508) && ((a4.field_3.field_1.field_3.field_1==208) && (a4.field_3.field_1.field_3.field_2==3925244758)) && ((((a4.field_3.field_1.field_4.field_1.field_1.field_1==-0.125) && ((a4.field_3.field_1.field_4.field_1.field_1.field_2.field_1==219) && (a4.field_3.field_1.field_4.field_1.field_1.field_2.field_2==0.265625) && (a4.field_3.field_1.field_4.field_1.field_1.field_2.field_3==201) && (a4.field_3.field_1.field_4.field_1.field_1.field_2.field_4==48))) && ((a4.field_3.field_1.field_4.field_1.field_2.field_1==148885215510528) && (a4.field_3.field_1.field_4.field_1.field_2.field_2==219) && ((a4.field_3.field_1.field_4.field_1.field_2.field_3.field_1==41) && (a4.field_3.field_1.field_4.field_1.field_2.field_3.field_2==-1.3125) && (a4.field_3.field_1.field_4.field_1.field_2.field_3.field_3==75) && (a4.field_3.field_1.field_4.field_1.field_2.field_3.field_4==52))) && ((a4.field_3.field_1.field_4.field_1.field_3.field_1==153670362464256) && (a4.field_3.field_1.field_4.field_1.field_3.field_2==97) && ((a4.field_3.field_1.field_4.field_1.field_3.field_3.field_1==222) && (a4.field_3.field_1.field_4.field_1.field_3.field_3.field_2==0.9375) && (a4.field_3.field_1.field_4.field_1.field_3.field_3.field_3==47) && (a4.field_3.field_1.field_4.field_1.field_3.field_3.field_4==122)))) && ((a4.field_3.field_1.field_4.field_2.field_1==66828912033792) && (a4.field_3.field_1.field_4.field_2.field_2==201) && ((a4.field_3.field_1.field_4.field_2.field_3.field_1==35) && (a4.field_3.field_1.field_4.field_2.field_3.field_2==1.046875) && (a4.field_3.field_1.field_4.field_2.field_3.field_3==86) && (a4.field_3.field_1.field_4.field_2.field_3.field_4==233))) && (a4.field_3.field_1.field_4.field_3==-0.421875) && (a4.field_3.field_1.field_4.field_4==E_6_7)) && (a4.field_3.field_1.field_5==-1.109375)) && (a4.field_3.field_2==350527626) && (a4.field_3.field_3==98) && (((a4.field_3.field_4.field_1.field_1==146849136115712) && (a4.field_3.field_4.field_1.field_2==3845172994) && (a4.field_3.field_4.field_1.field_3==76) && (a4.field_3.field_4.field_1.field_4==250) && (a4.field_3.field_4.field_1.field_5==212141542211584)) && (a4.field_3.field_4.field_2==227) && (a4.field_3.field_4.field_3==E_6_6))))) {
+ goto bad;
+ }
+
+ if (!((a5.field_1==E_57_1) && ((a5.field_2.field_1==77)) && (a5.field_3==-2.5))) {
+ goto bad;
+ }
+
+ if (!((a6.field_1==E_59_2) && (a6.field_2==-0.984375) && ((a6.field_3.field_1==-1.09375) && (a6.field_3.field_2==-1.53125) && (a6.field_3.field_3==20793480314880) && (a6.field_3.field_4==36073398206464)))) {
+ goto bad;
+ }
+
+ if (!(((a7.field_1.field_1==-2.32421875) && (a7.field_1.field_2==208)) && ((a7.field_2.field_1==-0.0625) && ((((a7.field_2.field_2.field_1.field_1.field_1==224) && (a7.field_2.field_2.field_1.field_1.field_2==-0.984375) && (a7.field_2.field_2.field_1.field_1.field_3==131) && (a7.field_2.field_2.field_1.field_1.field_4==218)) && ((a7.field_2.field_2.field_1.field_2.field_1==209069555974144) && (a7.field_2.field_2.field_1.field_2.field_2==100) && ((a7.field_2.field_2.field_1.field_2.field_3.field_1==82) && (a7.field_2.field_2.field_1.field_2.field_3.field_2==1.4375) && (a7.field_2.field_2.field_1.field_2.field_3.field_3==89) && (a7.field_2.field_2.field_1.field_2.field_3.field_4==16)))) && (a7.field_2.field_2.field_2==273030717767680)) && (((((a7.field_2.field_3.field_1.field_1.field_1.field_1==62938097254400) && ((a7.field_2.field_3.field_1.field_1.field_1.field_2.field_1==107) && (a7.field_2.field_3.field_1.field_1.field_1.field_2.field_2==0.609375) && (a7.field_2.field_3.field_1.field_1.field_1.field_2.field_3==97) && (a7.field_2.field_3.field_1.field_1.field_1.field_2.field_4==70)) && (a7.field_2.field_3.field_1.field_1.field_1.field_3==77561457147904) && (a7.field_2.field_3.field_1.field_1.field_1.field_4==1.265625)) && (a7.field_2.field_3.field_1.field_1.field_2==-1.515625)) && ((((a7.field_2.field_3.field_1.field_2.field_1.field_1.field_1==-0.828125) && ((a7.field_2.field_3.field_1.field_2.field_1.field_1.field_2.field_1==174) && (a7.field_2.field_3.field_1.field_2.field_1.field_1.field_2.field_2==1.390625) && (a7.field_2.field_3.field_1.field_2.field_1.field_1.field_2.field_3==142) && (a7.field_2.field_3.field_1.field_2.field_1.field_1.field_2.field_4==121))) && ((a7.field_2.field_3.field_1.field_2.field_1.field_2.field_1==266278944636928) && (a7.field_2.field_3.field_1.field_2.field_1.field_2.field_2==1) && ((a7.field_2.field_3.field_1.field_2.field_1.field_2.field_3.field_1==57) && (a7.field_2.field_3.field_1.field_2.field_1.field_2.field_3.field_2==-0.1875) && (a7.field_2.field_3.field_1.field_2.field_1.field_2.field_3.field_3==53) && (a7.field_2.field_3.field_1.field_2.field_1.field_2.field_3.field_4==10))) && ((a7.field_2.field_3.field_1.field_2.field_1.field_3.field_1==258630503497728) && (a7.field_2.field_3.field_1.field_2.field_1.field_3.field_2==22) && ((a7.field_2.field_3.field_1.field_2.field_1.field_3.field_3.field_1==58) && (a7.field_2.field_3.field_1.field_2.field_1.field_3.field_3.field_2==-0.203125) && (a7.field_2.field_3.field_1.field_2.field_1.field_3.field_3.field_3==241) && (a7.field_2.field_3.field_1.field_2.field_1.field_3.field_3.field_4==248)))) && ((a7.field_2.field_3.field_1.field_2.field_2.field_1==232005730828288) && (a7.field_2.field_3.field_1.field_2.field_2.field_2==67) && ((a7.field_2.field_3.field_1.field_2.field_2.field_3.field_1==237) && (a7.field_2.field_3.field_1.field_2.field_2.field_3.field_2==-1.03125) && (a7.field_2.field_3.field_1.field_2.field_2.field_3.field_3==83) && (a7.field_2.field_3.field_1.field_2.field_2.field_3.field_4==229))) && (a7.field_2.field_3.field_1.field_2.field_3==-0.328125) && (a7.field_2.field_3.field_1.field_2.field_4==E_6_6)) && (a7.field_2.field_3.field_1.field_3==2541087240) && (((a7.field_2.field_3.field_1.field_4.field_1.field_1==0.875) && ((a7.field_2.field_3.field_1.field_4.field_1.field_2.field_1==4) && (a7.field_2.field_3.field_1.field_4.field_1.field_2.field_2==1.15625) && (a7.field_2.field_3.field_1.field_4.field_1.field_2.field_3==173) && (a7.field_2.field_3.field_1.field_4.field_1.field_2.field_4==8))) && ((a7.field_2.field_3.field_1.field_4.field_2.field_1==29310895783936) && (a7.field_2.field_3.field_1.field_4.field_2.field_2==92) && ((a7.field_2.field_3.field_1.field_4.field_2.field_3.field_1==250) && (a7.field_2.field_3.field_1.field_4.field_2.field_3.field_2==0.515625) && (a7.field_2.field_3.field_1.field_4.field_2.field_3.field_3==214) && (a7.field_2.field_3.field_1.field_4.field_2.field_3.field_4==236))) && ((a7.field_2.field_3.field_1.field_4.field_3.field_1==188538419019776) && (a7.field_2.field_3.field_1.field_4.field_3.field_2==16) && ((a7.field_2.field_3.field_1.field_4.field_3.field_3.field_1==92) && (a7.field_2.field_3.field_1.field_4.field_3.field_3.field_2==1.1875) && (a7.field_2.field_3.field_1.field_4.field_3.field_3.field_3==26) && (a7.field_2.field_3.field_1.field_4.field_3.field_3.field_4==72))))) && (a7.field_2.field_3.field_2==E_19_9) && (a7.field_2.field_3.field_3==93123907813376) && (a7.field_2.field_3.field_4==E_20_6) && (a7.field_2.field_3.field_5==E_21_9) && ((a7.field_2.field_3.field_6.field_1==84919533043712) && (a7.field_2.field_3.field_6.field_2==2312961846))) && (a7.field_2.field_4==738749758)) && (((a7.field_3.field_1.field_1==E_59_2) && (a7.field_3.field_1.field_2==0.671875) && ((a7.field_3.field_1.field_3.field_1==-0.01953125) && (a7.field_3.field_1.field_3.field_2==-1.171875) && (a7.field_3.field_1.field_3.field_3==30820079632384) && (a7.field_3.field_1.field_3.field_4==68216701976576))) && (a7.field_3.field_2==E_21_7) && (a7.field_3.field_3==227) && (a7.field_3.field_4==E_31_2)))) {
+ goto bad;
+ }
+
+ if (!(a8==E_66_3)) {
+ goto bad;
+ }
+
+ if (!(a9==E_67_3)) {
+ goto bad;
+ }
+
+ if (!(a10==2.06640625)) {
+ goto bad;
+ }
+
+ return 6316575686656;
+
+bad:
+ return 232898686615552;
+}
+
+float
+fn_10_c(t74 a1, float a2, t75 a3, uint8_t a4, t78 a5, t79 a6)
+{
+ if (!(((a1.field_1.field_1==1.21875) && (a1.field_1.field_2==-0.890625) && (a1.field_1.field_3==E_54_5) && (a1.field_1.field_4==-1.140625)) && ((a1.field_2.field_1==-2.86328125) && ((a1.field_2.field_2.field_1==272734424006656) && ((a1.field_2.field_2.field_2.field_1==168) && (a1.field_2.field_2.field_2.field_2==-0.3125) && (a1.field_2.field_2.field_2.field_3==7) && (a1.field_2.field_2.field_2.field_4==96)) && (a1.field_2.field_2.field_3==194650230882304) && (a1.field_2.field_2.field_4==1.3125)) && (a1.field_2.field_3==2832640246) && (a1.field_2.field_4==248902425116672) && (a1.field_2.field_5==3177491204) && (a1.field_2.field_6==E_20_7)) && ((((a1.field_3.field_1.field_1.field_1==242) && (a1.field_3.field_1.field_1.field_2==1.0) && (a1.field_3.field_1.field_1.field_3==118) && (a1.field_3.field_1.field_1.field_4==202)) && ((a1.field_3.field_1.field_2.field_1==130511054045184) && (a1.field_3.field_1.field_2.field_2==60) && ((a1.field_3.field_1.field_2.field_3.field_1==149) && (a1.field_3.field_1.field_2.field_3.field_2==1.25) && (a1.field_3.field_1.field_2.field_3.field_3==209) && (a1.field_3.field_1.field_2.field_3.field_4==211)))) && (a1.field_3.field_2==65)) && (a1.field_4==E_71_4) && (a1.field_5==E_72_7) && ((a1.field_6.field_1==1065245434) && (a1.field_6.field_2==0.359375) && ((a1.field_6.field_3.field_1==182449277763584) && (a1.field_6.field_3.field_2==2003708228))))) {
+ goto bad;
+ }
+
+ if (!(a2==0.890625)) {
+ goto bad;
+ }
+
+ if (!(a3==E_75_4)) {
+ goto bad;
+ }
+
+ if (!(a4==73)) {
+ goto bad;
+ }
+
+ if (!((a5.field_1==100724679639040) && ((a5.field_2.field_1==197606249070592) && (a5.field_2.field_2==0.3515625) && (a5.field_2.field_3==45) && (a5.field_2.field_4==111205168709632) && ((a5.field_2.field_5.field_1==E_35_6) && (a5.field_2.field_5.field_2==168))) && (((((a5.field_3.field_1.field_1.field_1.field_1==273706513334272) && ((a5.field_3.field_1.field_1.field_1.field_2.field_1==0.625)) && ((a5.field_3.field_1.field_1.field_1.field_3.field_1==3.27734375) && (a5.field_3.field_1.field_1.field_1.field_3.field_2==E_20_4) && (a5.field_3.field_1.field_1.field_1.field_3.field_3==E_21_5) && ((a5.field_3.field_1.field_1.field_1.field_3.field_4.field_1==1.125) && ((a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_1==228193040859136) && (((a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_1==197736696643584) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_2==2597012506) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_3==181) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_4==213) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_5==107853796474880)) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_2==110) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_3==E_6_2)) && (((a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_1==122) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_2==1.296875) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_3==218) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_4==48)) && ((a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_1==13448229421056) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_2==244) && ((a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_1==47) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_2==1.453125) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_3==167) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_4==113))))) && (((a5.field_3.field_1.field_1.field_1.field_3.field_4.field_3.field_1.field_1==-0.5625) && ((a5.field_3.field_1.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_1==91) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_2==1.53125) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_3==127) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_4==192))) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_3.field_2==208774694567936) && (a5.field_3.field_1.field_1.field_1.field_3.field_4.field_3.field_3==-2.68359375)))) && ((a5.field_3.field_1.field_1.field_1.field_4.field_1==203837156753408) && (a5.field_3.field_1.field_1.field_1.field_4.field_2==124751440248832) && (a5.field_3.field_1.field_1.field_1.field_4.field_3==19))) && (a5.field_3.field_1.field_1.field_2==949240352) && ((a5.field_3.field_1.field_1.field_3.field_1==233) && (a5.field_3.field_1.field_1.field_3.field_2==3093393614)) && ((((a5.field_3.field_1.field_1.field_4.field_1.field_1.field_1==-1.46875) && ((a5.field_3.field_1.field_1.field_4.field_1.field_1.field_2.field_1==157) && (a5.field_3.field_1.field_1.field_4.field_1.field_1.field_2.field_2==-0.546875) && (a5.field_3.field_1.field_1.field_4.field_1.field_1.field_2.field_3==189) && (a5.field_3.field_1.field_1.field_4.field_1.field_1.field_2.field_4==115))) && ((a5.field_3.field_1.field_1.field_4.field_1.field_2.field_1==199305275375616) && (a5.field_3.field_1.field_1.field_4.field_1.field_2.field_2==43) && ((a5.field_3.field_1.field_1.field_4.field_1.field_2.field_3.field_1==171) && (a5.field_3.field_1.field_1.field_4.field_1.field_2.field_3.field_2==-0.984375) && (a5.field_3.field_1.field_1.field_4.field_1.field_2.field_3.field_3==22) && (a5.field_3.field_1.field_1.field_4.field_1.field_2.field_3.field_4==134))) && ((a5.field_3.field_1.field_1.field_4.field_1.field_3.field_1==105055744950272) && (a5.field_3.field_1.field_1.field_4.field_1.field_3.field_2==34) && ((a5.field_3.field_1.field_1.field_4.field_1.field_3.field_3.field_1==122) && (a5.field_3.field_1.field_1.field_4.field_1.field_3.field_3.field_2==0.1875) && (a5.field_3.field_1.field_1.field_4.field_1.field_3.field_3.field_3==25) && (a5.field_3.field_1.field_1.field_4.field_1.field_3.field_3.field_4==33)))) && ((a5.field_3.field_1.field_1.field_4.field_2.field_1==1198625914880) && (a5.field_3.field_1.field_1.field_4.field_2.field_2==107) && ((a5.field_3.field_1.field_1.field_4.field_2.field_3.field_1==125) && (a5.field_3.field_1.field_1.field_4.field_2.field_3.field_2==1.546875) && (a5.field_3.field_1.field_1.field_4.field_2.field_3.field_3==235) && (a5.field_3.field_1.field_1.field_4.field_2.field_3.field_4==61))) && (a5.field_3.field_1.field_1.field_4.field_3==0.734375) && (a5.field_3.field_1.field_1.field_4.field_4==E_6_1)) && (a5.field_3.field_1.field_1.field_5==1.453125)) && (a5.field_3.field_1.field_2==763193548) && (a5.field_3.field_1.field_3==39) && (((a5.field_3.field_1.field_4.field_1.field_1==52338931924992) && (a5.field_3.field_1.field_4.field_1.field_2==391110206) && (a5.field_3.field_1.field_4.field_1.field_3==223) && (a5.field_3.field_1.field_4.field_1.field_4==55) && (a5.field_3.field_1.field_4.field_1.field_5==198983641202688)) && (a5.field_3.field_1.field_4.field_2==50) && (a5.field_3.field_1.field_4.field_3==E_6_7))) && (a5.field_3.field_2==673599174)) && (((((a5.field_4.field_1.field_1.field_1.field_1==254957327745024) && ((a5.field_4.field_1.field_1.field_1.field_2.field_1==-1.171875)) && ((a5.field_4.field_1.field_1.field_1.field_3.field_1==2.5546875) && (a5.field_4.field_1.field_1.field_1.field_3.field_2==E_20_1) && (a5.field_4.field_1.field_1.field_1.field_3.field_3==E_21_2) && ((a5.field_4.field_1.field_1.field_1.field_3.field_4.field_1==-1.171875) && ((a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_1==130672052011008) && (((a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_1==97871770550272) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_2==3555186718) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_3==6) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_4==114) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_1.field_5==270228958085120)) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_2==7) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_2.field_3==E_6_7)) && (((a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_1==114) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_2==-1.5) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_3==200) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_1.field_4==176)) && ((a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_1==212862159159296) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_2==220) && ((a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_1==167) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_2==1.359375) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_3==3) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_2.field_3.field_2.field_3.field_4==215))))) && (((a5.field_4.field_1.field_1.field_1.field_3.field_4.field_3.field_1.field_1==-1.484375) && ((a5.field_4.field_1.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_1==226) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_2==-1.390625) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_3==187) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_3.field_1.field_2.field_4==21))) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_3.field_2==4365063815168) && (a5.field_4.field_1.field_1.field_1.field_3.field_4.field_3.field_3==3.0390625)))) && ((a5.field_4.field_1.field_1.field_1.field_4.field_1==278530325086209) && (a5.field_4.field_1.field_1.field_1.field_4.field_2==40351778734080) && (a5.field_4.field_1.field_1.field_1.field_4.field_3==183))) && (a5.field_4.field_1.field_1.field_2==345942008) && ((a5.field_4.field_1.field_1.field_3.field_1==91) && (a5.field_4.field_1.field_1.field_3.field_2==281298906)) && ((((a5.field_4.field_1.field_1.field_4.field_1.field_1.field_1==0.140625) && ((a5.field_4.field_1.field_1.field_4.field_1.field_1.field_2.field_1==180) && (a5.field_4.field_1.field_1.field_4.field_1.field_1.field_2.field_2==1.234375) && (a5.field_4.field_1.field_1.field_4.field_1.field_1.field_2.field_3==145) && (a5.field_4.field_1.field_1.field_4.field_1.field_1.field_2.field_4==38))) && ((a5.field_4.field_1.field_1.field_4.field_1.field_2.field_1==240181903360000) && (a5.field_4.field_1.field_1.field_4.field_1.field_2.field_2==153) && ((a5.field_4.field_1.field_1.field_4.field_1.field_2.field_3.field_1==4) && (a5.field_4.field_1.field_1.field_4.field_1.field_2.field_3.field_2==-0.625) && (a5.field_4.field_1.field_1.field_4.field_1.field_2.field_3.field_3==158) && (a5.field_4.field_1.field_1.field_4.field_1.field_2.field_3.field_4==204))) && ((a5.field_4.field_1.field_1.field_4.field_1.field_3.field_1==279255610818561) && (a5.field_4.field_1.field_1.field_4.field_1.field_3.field_2==96) && ((a5.field_4.field_1.field_1.field_4.field_1.field_3.field_3.field_1==169) && (a5.field_4.field_1.field_1.field_4.field_1.field_3.field_3.field_2==0.46875) && (a5.field_4.field_1.field_1.field_4.field_1.field_3.field_3.field_3==79) && (a5.field_4.field_1.field_1.field_4.field_1.field_3.field_3.field_4==172)))) && ((a5.field_4.field_1.field_1.field_4.field_2.field_1==137219642097664) && (a5.field_4.field_1.field_1.field_4.field_2.field_2==85) && ((a5.field_4.field_1.field_1.field_4.field_2.field_3.field_1==143) && (a5.field_4.field_1.field_1.field_4.field_2.field_3.field_2==0.140625) && (a5.field_4.field_1.field_1.field_4.field_2.field_3.field_3==17) && (a5.field_4.field_1.field_1.field_4.field_2.field_3.field_4==164))) && (a5.field_4.field_1.field_1.field_4.field_3==0.1875) && (a5.field_4.field_1.field_1.field_4.field_4==E_6_7)) && (a5.field_4.field_1.field_1.field_5==0.421875)) && (a5.field_4.field_1.field_2==3026647616) && (a5.field_4.field_1.field_3==171) && (((a5.field_4.field_1.field_4.field_1.field_1==200920828215296) && (a5.field_4.field_1.field_4.field_1.field_2==266056950) && (a5.field_4.field_1.field_4.field_1.field_3==188) && (a5.field_4.field_1.field_4.field_1.field_4==66) && (a5.field_4.field_1.field_4.field_1.field_5==215864985649152)) && (a5.field_4.field_1.field_4.field_2==161) && (a5.field_4.field_1.field_4.field_3==E_6_6))) && (a5.field_4.field_2==234) && (a5.field_4.field_3==-0.12890625) && (a5.field_4.field_4==109) && ((((a5.field_4.field_5.field_1.field_1.field_1==238) && (a5.field_4.field_5.field_1.field_1.field_2==0.890625) && (a5.field_4.field_5.field_1.field_1.field_3==11) && (a5.field_4.field_5.field_1.field_1.field_4==187)) && ((a5.field_4.field_5.field_1.field_2.field_1==218973062561792) && (a5.field_4.field_5.field_1.field_2.field_2==108) && ((a5.field_4.field_5.field_1.field_2.field_3.field_1==100) && (a5.field_4.field_5.field_1.field_2.field_3.field_2==-0.234375) && (a5.field_4.field_5.field_1.field_2.field_3.field_3==187) && (a5.field_4.field_5.field_1.field_2.field_3.field_4==17)))) && (a5.field_4.field_5.field_2==233)) && (a5.field_4.field_6==296769572)))) {
+ goto bad;
+ }
+
+ if (!(a6==E_79_2)) {
+ goto bad;
+ }
+
+ return -1.515625;
+
+bad:
+ return -1.28125;
+}
+
+int
+const check_c_to_myr_fns(void)
+{
+ t2 a_1_1 = (t2) {.field_1=0.0625,.field_2=(t1) {.field_1=112,.field_2=-0.625,.field_3=110,.field_4=44}};
+ uint32_t a_1_2 = 2189228706;
+ t4 a_1_3 = (t4) {.field_1=(t2) {.field_1=-0.84375,.field_2=(t1) {.field_1=150,.field_2=0.359375,.field_3=172,.field_4=26}},.field_2=(t3) {.field_1=241023379308544,.field_2=115,.field_3=(t1) {.field_1=228,.field_2=0.65625,.field_3=247,.field_4=84}},.field_3=(t3) {.field_1=3134223810560,.field_2=102,.field_3=(t1) {.field_1=128,.field_2=-1.21875,.field_3=232,.field_4=105}}};
+ t2 a_1_4 = (t2) {.field_1=-1.203125,.field_2=(t1) {.field_1=110,.field_2=0.6875,.field_3=119,.field_4=200}};
+ t7 a_1_5 = (t7) {.field_1=(t5) {.field_1=94503966736384,.field_2=2770153426,.field_3=187,.field_4=214,.field_5=213410253897728},.field_2=164,.field_3=E_6_2};
+ float a_1_6 = 1.53125;
+ double a_1_7 = 1.3984375;
+ t8 a_1_8 = (t8) {.field_1=(t4) {.field_1=(t2) {.field_1=0.578125,.field_2=(t1) {.field_1=170,.field_2=1.09375,.field_3=193,.field_4=148}},.field_2=(t3) {.field_1=271021012025344,.field_2=173,.field_3=(t1) {.field_1=241,.field_2=1.46875,.field_3=80,.field_4=71}},.field_3=(t3) {.field_1=86092233441280,.field_2=245,.field_3=(t1) {.field_1=3,.field_2=-1.125,.field_3=183,.field_4=168}}},.field_2=(t3) {.field_1=110146554691584,.field_2=246,.field_3=(t1) {.field_1=164,.field_2=0.8125,.field_3=164,.field_4=89}},.field_3=0.28125,.field_4=E_6_1};
+ t9 ret_1 = fn_1_myr(a_1_1, a_1_2, a_1_3, a_1_4, a_1_5, a_1_6, a_1_7, a_1_8);
+ if (!(((ret_1.field_1.field_1==192) && (ret_1.field_1.field_2==-1.296875) && (ret_1.field_1.field_3==50) && (ret_1.field_1.field_4==129)) && ((ret_1.field_2.field_1==188458318561280) && (ret_1.field_2.field_2==40) && ((ret_1.field_2.field_3.field_1==47) && (ret_1.field_2.field_3.field_2==0.359375) && (ret_1.field_2.field_3.field_3==32) && (ret_1.field_2.field_3.field_4==127))))) {
+ return -1;
+ }
+
+ t12 a_2_1 = (t12) {.field_1=2.7734375,.field_2=(t10) {.field_1=258260610842624,.field_2=(t7) {.field_1=(t5) {.field_1=67688764407808,.field_2=122501974,.field_3=122,.field_4=53,.field_5=46816349519872},.field_2=175,.field_3=E_6_7},.field_3=(t9) {.field_1=(t1) {.field_1=242,.field_2=-0.828125,.field_3=64,.field_4=212},.field_2=(t3) {.field_1=175981577109504,.field_2=146,.field_3=(t1) {.field_1=58,.field_2=-1.3125,.field_3=81,.field_4=249}}}},.field_3=(t11) {.field_1=(t2) {.field_1=-0.671875,.field_2=(t1) {.field_1=39,.field_2=1.3125,.field_3=255,.field_4=168}},.field_2=5680861020160,.field_3=3.1015625}};
+ t14 a_2_2 = (t14) {.field_1=-0.65625,.field_2=(t13) {.field_1=-3.07421875,.field_2=2364459620,.field_3=34004063092736,.field_4=(t4) {.field_1=(t2) {.field_1=0.734375,.field_2=(t1) {.field_1=31,.field_2=-0.46875,.field_3=207,.field_4=112}},.field_2=(t3) {.field_1=91868031090688,.field_2=24,.field_3=(t1) {.field_1=152,.field_2=-0.796875,.field_3=24,.field_4=64}},.field_3=(t3) {.field_1=74808418369536,.field_2=254,.field_3=(t1) {.field_1=6,.field_2=0.046875,.field_3=73,.field_4=208}}}}};
+ t7 a_2_3 = (t7) {.field_1=(t5) {.field_1=145965008551936,.field_2=2498931774,.field_3=156,.field_4=179,.field_5=265737065725952},.field_2=244,.field_3=E_6_5};
+ float a_2_4 = -0.796875;
+ t15 a_2_5 = E_15_4;
+ t14 a_2_6 = (t14) {.field_1=0.6875,.field_2=(t13) {.field_1=-2.171875,.field_2=1533036440,.field_3=12142327889920,.field_4=(t4) {.field_1=(t2) {.field_1=-0.5625,.field_2=(t1) {.field_1=243,.field_2=-0.65625,.field_3=106,.field_4=51}},.field_2=(t3) {.field_1=156078303608832,.field_2=104,.field_3=(t1) {.field_1=58,.field_2=-1.34375,.field_3=178,.field_4=10}},.field_3=(t3) {.field_1=140200370896896,.field_2=33,.field_3=(t1) {.field_1=143,.field_2=-1.3125,.field_3=190,.field_4=67}}}}};
+ uint8_t a_2_7 = 179;
+ t17 ret_2 = fn_2_myr(a_2_1, a_2_2, a_2_3, a_2_4, a_2_5, a_2_6, a_2_7);
+ if (!(((ret_2.field_1.field_1==101589888270336) && ((ret_2.field_1.field_2.field_1==225) && (ret_2.field_1.field_2.field_2==-0.046875) && (ret_2.field_1.field_2.field_3==234) && (ret_2.field_1.field_2.field_4==74)) && (ret_2.field_1.field_3==200069064425472) && (ret_2.field_1.field_4==1.53125)) && (ret_2.field_2==1.53125))) {
+ return -1;
+ }
+
+ t15 a_3_1 = E_15_5;
+ t23 a_3_2 = (t23) {.field_1=(t18) {.field_1=(t17) {.field_1=(t16) {.field_1=208514472345600,.field_2=(t1) {.field_1=171,.field_2=0.53125,.field_3=170,.field_4=148},.field_3=137775610724352,.field_4=0.046875},.field_2=-0.109375},.field_2=(t8) {.field_1=(t4) {.field_1=(t2) {.field_1=-0.515625,.field_2=(t1) {.field_1=130,.field_2=0.5625,.field_3=65,.field_4=249}},.field_2=(t3) {.field_1=49920772014080,.field_2=137,.field_3=(t1) {.field_1=81,.field_2=-1.078125,.field_3=187,.field_4=244}},.field_3=(t3) {.field_1=238917205884928,.field_2=234,.field_3=(t1) {.field_1=148,.field_2=-0.65625,.field_3=148,.field_4=82}}},.field_2=(t3) {.field_1=13348047552512,.field_2=206,.field_3=(t1) {.field_1=236,.field_2=-0.390625,.field_3=159,.field_4=22}},.field_3=-1.203125,.field_4=E_6_3},.field_3=3263768112,.field_4=(t4) {.field_1=(t2) {.field_1=0.890625,.field_2=(t1) {.field_1=223,.field_2=-0.78125,.field_3=76,.field_4=85}},.field_2=(t3) {.field_1=165112780685312,.field_2=206,.field_3=(t1) {.field_1=4,.field_2=1.078125,.field_3=200,.field_4=49}},.field_3=(t3) {.field_1=107450067189760,.field_2=25,.field_3=(t1) {.field_1=89,.field_2=-1.203125,.field_3=14,.field_4=51}}}},.field_2=E_19_1,.field_3=178689565917184,.field_4=E_20_4,.field_5=E_21_6,.field_6=(t22) {.field_1=269113953746944,.field_2=2315358406}};
+ t21 a_3_3 = E_21_9;
+ uint8_t a_3_4 = 248;
+ uint8_t a_3_5 = 86;
+ t27 a_3_6 = (t27) {.field_1=85770339090432,.field_2=(t24) {.field_1=-0.671875},.field_3=(t25) {.field_1=-1.15234375,.field_2=E_20_1,.field_3=E_21_1,.field_4=(t12) {.field_1=0.46875,.field_2=(t10) {.field_1=3865086263296,.field_2=(t7) {.field_1=(t5) {.field_1=62745143410688,.field_2=444241798,.field_3=148,.field_4=38,.field_5=186451756843008},.field_2=253,.field_3=E_6_6},.field_3=(t9) {.field_1=(t1) {.field_1=106,.field_2=0.875,.field_3=169,.field_4=132},.field_2=(t3) {.field_1=193552010969088,.field_2=134,.field_3=(t1) {.field_1=209,.field_2=0.390625,.field_3=6,.field_4=157}}}},.field_3=(t11) {.field_1=(t2) {.field_1=-1.015625,.field_2=(t1) {.field_1=122,.field_2=1.40625,.field_3=38,.field_4=208}},.field_2=55544454578176,.field_3=-2.609375}}},.field_4=(t26) {.field_1=33366908207104,.field_2=136001504280576,.field_3=132}};
+ uint32_t ret_3 = fn_3_myr(a_3_1, a_3_2, a_3_3, a_3_4, a_3_5, a_3_6);
+ if (!(ret_3==2527618668)) {
+ return -1;
+ }
+
+ t30 a_4_1 = (t30) {.field_1=(t28) {.field_1=(t23) {.field_1=(t18) {.field_1=(t17) {.field_1=(t16) {.field_1=44445459546112,.field_2=(t1) {.field_1=83,.field_2=-0.453125,.field_3=82,.field_4=113},.field_3=235939541549056,.field_4=1.078125},.field_2=0.3125},.field_2=(t8) {.field_1=(t4) {.field_1=(t2) {.field_1=-0.234375,.field_2=(t1) {.field_1=236,.field_2=0.828125,.field_3=60,.field_4=26}},.field_2=(t3) {.field_1=143671663132672,.field_2=50,.field_3=(t1) {.field_1=243,.field_2=-0.796875,.field_3=3,.field_4=53}},.field_3=(t3) {.field_1=214366877515776,.field_2=126,.field_3=(t1) {.field_1=252,.field_2=1.453125,.field_3=128,.field_4=149}}},.field_2=(t3) {.field_1=223779870998528,.field_2=137,.field_3=(t1) {.field_1=203,.field_2=0.953125,.field_3=12,.field_4=243}},.field_3=1.453125,.field_4=E_6_3},.field_3=1314332054,.field_4=(t4) {.field_1=(t2) {.field_1=-0.671875,.field_2=(t1) {.field_1=209,.field_2=-1.125,.field_3=32,.field_4=106}},.field_2=(t3) {.field_1=160715212455936,.field_2=12,.field_3=(t1) {.field_1=45,.field_2=0.96875,.field_3=39,.field_4=176}},.field_3=(t3) {.field_1=2142336450560,.field_2=26,.field_3=(t1) {.field_1=239,.field_2=-1.5,.field_3=80,.field_4=178}}}},.field_2=E_19_5,.field_3=84526311014400,.field_4=E_20_6,.field_5=E_21_1,.field_6=(t22) {.field_1=248535774265344,.field_2=1964811016}},.field_2=0.1875,.field_3=E_6_5,.field_4=-1.87109375},.field_2=(t29) {.field_1=155,.field_2=2693759888}};
+ uint64_t ret_4 = fn_4_myr(a_4_1);
+ if (!(ret_4==276275068796928)) {
+ return -1;
+ }
+
+ t33 a_5_1 = (t33) {.field_1=E_31_3,.field_2=E_32_5};
+ t34 a_5_2 = (t34) {.field_1=E_32_5,.field_2=66};
+ t36 a_5_3 = (t36) {.field_1=E_35_4,.field_2=214};
+ t37 a_5_4 = E_37_1;
+ uint64_t a_5_5 = 210077727850496;
+ double ret_5 = fn_5_myr(a_5_1, a_5_2, a_5_3, a_5_4, a_5_5);
+ if (!(ret_5==-2.5234375)) {
+ return -1;
+ }
+
+ t40 a_6_1 = (t40) {.field_1=(t8) {.field_1=(t4) {.field_1=(t2) {.field_1=0.71875,.field_2=(t1) {.field_1=162,.field_2=-1.375,.field_3=12,.field_4=208}},.field_2=(t3) {.field_1=208257259929600,.field_2=224,.field_3=(t1) {.field_1=202,.field_2=-0.015625,.field_3=86,.field_4=251}},.field_3=(t3) {.field_1=253976550440960,.field_2=123,.field_3=(t1) {.field_1=146,.field_2=0.828125,.field_3=120,.field_4=62}}},.field_2=(t3) {.field_1=26298971062272,.field_2=103,.field_3=(t1) {.field_1=239,.field_2=1.28125,.field_3=152,.field_4=89}},.field_3=0.734375,.field_4=E_6_3},.field_2=E_6_1,.field_3=E_38_6,.field_4=(t39) {.field_1=(t27) {.field_1=152549047009280,.field_2=(t24) {.field_1=0.859375},.field_3=(t25) {.field_1=-3.7109375,.field_2=E_20_7,.field_3=E_21_5,.field_4=(t12) {.field_1=1.26171875,.field_2=(t10) {.field_1=257906686427136,.field_2=(t7) {.field_1=(t5) {.field_1=154973503488000,.field_2=2040012194,.field_3=167,.field_4=109,.field_5=74787062284288},.field_2=39,.field_3=E_6_6},.field_3=(t9) {.field_1=(t1) {.field_1=63,.field_2=-1.390625,.field_3=63,.field_4=209},.field_2=(t3) {.field_1=230983872282624,.field_2=184,.field_3=(t1) {.field_1=15,.field_2=1.296875,.field_3=31,.field_4=255}}}},.field_3=(t11) {.field_1=(t2) {.field_1=1.015625,.field_2=(t1) {.field_1=183,.field_2=-0.484375,.field_3=142,.field_4=16}},.field_2=137163913822208,.field_3=-2.80859375}}},.field_4=(t26) {.field_1=170983975682048,.field_2=72796805398528,.field_3=42}},.field_2=1990287632,.field_3=(t29) {.field_1=194,.field_2=3552591666},.field_4=(t8) {.field_1=(t4) {.field_1=(t2) {.field_1=-0.375,.field_2=(t1) {.field_1=79,.field_2=-0.625,.field_3=9,.field_4=188}},.field_2=(t3) {.field_1=159828972142592,.field_2=48,.field_3=(t1) {.field_1=128,.field_2=1.0,.field_3=62,.field_4=192}},.field_3=(t3) {.field_1=179052505464832,.field_2=16,.field_3=(t1) {.field_1=120,.field_2=0.625,.field_3=250,.field_4=151}}},.field_2=(t3) {.field_1=196274257788928,.field_2=205,.field_3=(t1) {.field_1=79,.field_2=-1.4375,.field_3=91,.field_4=96}},.field_3=0.09375,.field_4=E_6_4},.field_5=1.515625},.field_5=2.265625};
+ t41 a_6_2 = E_41_5;
+ t34 a_6_3 = (t34) {.field_1=E_32_8,.field_2=203};
+ t42 a_6_4 = (t42) {.field_1=-1.58984375,.field_2=217,.field_3=3500137676,.field_4=101686982737920};
+ double a_6_5 = 0.10546875;
+ double a_6_6 = 3.21875;
+ uint64_t a_6_7 = 40133181046784;
+ uint64_t a_6_8 = 71741835313152;
+ t26 a_6_9 = (t26) {.field_1=221313136459776,.field_2=104460582912,.field_3=149};
+ t43 ret_6 = fn_6_myr(a_6_1, a_6_2, a_6_3, a_6_4, a_6_5, a_6_6, a_6_7, a_6_8, a_6_9);
+ if (!(ret_6==E_43_1)) {
+ return -1;
+ }
+
+ t48 a_7_1 = (t48) {.field_1=(t44) {.field_1=6386332991488,.field_2=-3.90625,.field_3=163,.field_4=155193554763776,.field_5=(t36) {.field_1=E_35_3,.field_2=18}},.field_2=(t45) {.field_1=(t44) {.field_1=112229799297024,.field_2=-2.8984375,.field_3=216,.field_4=44483204612096,.field_5=(t36) {.field_1=E_35_2,.field_2=195}},.field_2=39665754832896,.field_3=114,.field_4=776337414},.field_3=E_46_5,.field_4=146729052536832,.field_5=(t47) {.field_1=(t9) {.field_1=(t1) {.field_1=153,.field_2=1.234375,.field_3=43,.field_4=174},.field_2=(t3) {.field_1=26828980748288,.field_2=242,.field_3=(t1) {.field_1=236,.field_2=-1.078125,.field_3=180,.field_4=30}}},.field_2=266092824363008},.field_6=(t27) {.field_1=13831859994624,.field_2=(t24) {.field_1=0.390625},.field_3=(t25) {.field_1=0.0703125,.field_2=E_20_1,.field_3=E_21_6,.field_4=(t12) {.field_1=-2.765625,.field_2=(t10) {.field_1=175411747749888,.field_2=(t7) {.field_1=(t5) {.field_1=262729443049472,.field_2=932333724,.field_3=5,.field_4=16,.field_5=17637135220736},.field_2=46,.field_3=E_6_2},.field_3=(t9) {.field_1=(t1) {.field_1=211,.field_2=-0.5625,.field_3=171,.field_4=1},.field_2=(t3) {.field_1=12764915826688,.field_2=49,.field_3=(t1) {.field_1=154,.field_2=1.375,.field_3=93,.field_4=73}}}},.field_3=(t11) {.field_1=(t2) {.field_1=-1.46875,.field_2=(t1) {.field_1=79,.field_2=-0.90625,.field_3=49,.field_4=4}},.field_2=93216219463680,.field_3=-2.83203125}}},.field_4=(t26) {.field_1=18454498639872,.field_2=269237052506112,.field_3=165}}};
+ uint32_t ret_7 = fn_7_myr(a_7_1);
+ if (!(ret_7==2499773006)) {
+ return -1;
+ }
+
+ t1 a_8_1 = (t1) {.field_1=200,.field_2=0.25,.field_3=18,.field_4=246};
+ t50 a_8_2 = (t50) {.field_1=-0.734375,.field_2=(t44) {.field_1=8592161505280,.field_2=2.32421875,.field_3=77,.field_4=95804356820992,.field_5=(t36) {.field_1=E_35_1,.field_2=126}},.field_3=-1.12109375,.field_4=E_49_3};
+ t51 a_8_3 = E_51_3;
+ float a_8_4 = 0.1875;
+ t52 a_8_5 = (t52) {.field_1=-0.81640625};
+ uint32_t a_8_6 = 441584498;
+ t53 a_8_7 = (t53) {.field_1=198};
+ uint8_t a_8_8 = 89;
+ float ret_8 = fn_8_myr(a_8_1, a_8_2, a_8_3, a_8_4, a_8_5, a_8_6, a_8_7, a_8_8);
+ if (!(ret_8==1.421875)) {
+ return -1;
+ }
+
+ t51 a_9_1 = E_51_8;
+ float a_9_2 = -0.796875;
+ float a_9_3 = -0.71875;
+ t56 a_9_4 = (t56) {.field_1=E_54_7,.field_2=255,.field_3=(t55) {.field_1=(t39) {.field_1=(t27) {.field_1=130105287114752,.field_2=(t24) {.field_1=-1.0},.field_3=(t25) {.field_1=3.53125,.field_2=E_20_2,.field_3=E_21_1,.field_4=(t12) {.field_1=-0.67578125,.field_2=(t10) {.field_1=23617654620160,.field_2=(t7) {.field_1=(t5) {.field_1=12594182750208,.field_2=2889081194,.field_3=84,.field_4=84,.field_5=265251503210496},.field_2=17,.field_3=E_6_7},.field_3=(t9) {.field_1=(t1) {.field_1=141,.field_2=-0.1875,.field_3=10,.field_4=118},.field_2=(t3) {.field_1=24302215233536,.field_2=170,.field_3=(t1) {.field_1=64,.field_2=0.953125,.field_3=156,.field_4=112}}}},.field_3=(t11) {.field_1=(t2) {.field_1=0.3125,.field_2=(t1) {.field_1=168,.field_2=0.3125,.field_3=140,.field_4=197}},.field_2=149682231705600,.field_3=0.3828125}}},.field_4=(t26) {.field_1=66190105247744,.field_2=201243456045056,.field_3=128}},.field_2=1608787508,.field_3=(t29) {.field_1=208,.field_2=3925244758},.field_4=(t8) {.field_1=(t4) {.field_1=(t2) {.field_1=-0.125,.field_2=(t1) {.field_1=219,.field_2=0.265625,.field_3=201,.field_4=48}},.field_2=(t3) {.field_1=148885215510528,.field_2=219,.field_3=(t1) {.field_1=41,.field_2=-1.3125,.field_3=75,.field_4=52}},.field_3=(t3) {.field_1=153670362464256,.field_2=97,.field_3=(t1) {.field_1=222,.field_2=0.9375,.field_3=47,.field_4=122}}},.field_2=(t3) {.field_1=66828912033792,.field_2=201,.field_3=(t1) {.field_1=35,.field_2=1.046875,.field_3=86,.field_4=233}},.field_3=-0.421875,.field_4=E_6_7},.field_5=-1.109375},.field_2=350527626,.field_3=98,.field_4=(t7) {.field_1=(t5) {.field_1=146849136115712,.field_2=3845172994,.field_3=76,.field_4=250,.field_5=212141542211584},.field_2=227,.field_3=E_6_6}}};
+ t58 a_9_5 = (t58) {.field_1=E_57_1,.field_2=(t53) {.field_1=77},.field_3=-2.5};
+ t61 a_9_6 = (t61) {.field_1=E_59_2,.field_2=-0.984375,.field_3=(t60) {.field_1=-1.09375,.field_2=-1.53125,.field_3=20793480314880,.field_4=36073398206464}};
+ t65 a_9_7 = (t65) {.field_1=(t62) {.field_1=-2.32421875,.field_2=208},.field_2=(t63) {.field_1=-0.0625,.field_2=(t47) {.field_1=(t9) {.field_1=(t1) {.field_1=224,.field_2=-0.984375,.field_3=131,.field_4=218},.field_2=(t3) {.field_1=209069555974144,.field_2=100,.field_3=(t1) {.field_1=82,.field_2=1.4375,.field_3=89,.field_4=16}}},.field_2=273030717767680},.field_3=(t23) {.field_1=(t18) {.field_1=(t17) {.field_1=(t16) {.field_1=62938097254400,.field_2=(t1) {.field_1=107,.field_2=0.609375,.field_3=97,.field_4=70},.field_3=77561457147904,.field_4=1.265625},.field_2=-1.515625},.field_2=(t8) {.field_1=(t4) {.field_1=(t2) {.field_1=-0.828125,.field_2=(t1) {.field_1=174,.field_2=1.390625,.field_3=142,.field_4=121}},.field_2=(t3) {.field_1=266278944636928,.field_2=1,.field_3=(t1) {.field_1=57,.field_2=-0.1875,.field_3=53,.field_4=10}},.field_3=(t3) {.field_1=258630503497728,.field_2=22,.field_3=(t1) {.field_1=58,.field_2=-0.203125,.field_3=241,.field_4=248}}},.field_2=(t3) {.field_1=232005730828288,.field_2=67,.field_3=(t1) {.field_1=237,.field_2=-1.03125,.field_3=83,.field_4=229}},.field_3=-0.328125,.field_4=E_6_6},.field_3=2541087240,.field_4=(t4) {.field_1=(t2) {.field_1=0.875,.field_2=(t1) {.field_1=4,.field_2=1.15625,.field_3=173,.field_4=8}},.field_2=(t3) {.field_1=29310895783936,.field_2=92,.field_3=(t1) {.field_1=250,.field_2=0.515625,.field_3=214,.field_4=236}},.field_3=(t3) {.field_1=188538419019776,.field_2=16,.field_3=(t1) {.field_1=92,.field_2=1.1875,.field_3=26,.field_4=72}}}},.field_2=E_19_9,.field_3=93123907813376,.field_4=E_20_6,.field_5=E_21_9,.field_6=(t22) {.field_1=84919533043712,.field_2=2312961846}},.field_4=738749758},.field_3=(t64) {.field_1=(t61) {.field_1=E_59_2,.field_2=0.671875,.field_3=(t60) {.field_1=-0.01953125,.field_2=-1.171875,.field_3=30820079632384,.field_4=68216701976576}},.field_2=E_21_7,.field_3=227,.field_4=E_31_2}};
+ t66 a_9_8 = E_66_3;
+ t67 a_9_9 = E_67_3;
+ double a_9_10 = 2.06640625;
+ uint64_t ret_9 = fn_9_myr(a_9_1, a_9_2, a_9_3, a_9_4, a_9_5, a_9_6, a_9_7, a_9_8, a_9_9, a_9_10);
+ if (!(ret_9==6316575686656)) {
+ return -1;
+ }
+
+ t74 a_10_1 = (t74) {.field_1=(t68) {.field_1=1.21875,.field_2=-0.890625,.field_3=E_54_5,.field_4=-1.140625},.field_2=(t69) {.field_1=-2.86328125,.field_2=(t16) {.field_1=272734424006656,.field_2=(t1) {.field_1=168,.field_2=-0.3125,.field_3=7,.field_4=96},.field_3=194650230882304,.field_4=1.3125},.field_3=2832640246,.field_4=248902425116672,.field_5=3177491204,.field_6=E_20_7},.field_3=(t70) {.field_1=(t9) {.field_1=(t1) {.field_1=242,.field_2=1.0,.field_3=118,.field_4=202},.field_2=(t3) {.field_1=130511054045184,.field_2=60,.field_3=(t1) {.field_1=149,.field_2=1.25,.field_3=209,.field_4=211}}},.field_2=65},.field_4=E_71_4,.field_5=E_72_7,.field_6=(t73) {.field_1=1065245434,.field_2=0.359375,.field_3=(t22) {.field_1=182449277763584,.field_2=2003708228}}};
+ float a_10_2 = 0.890625;
+ t75 a_10_3 = E_75_4;
+ uint8_t a_10_4 = 73;
+ t78 a_10_5 = (t78) {.field_1=100724679639040,.field_2=(t44) {.field_1=197606249070592,.field_2=0.3515625,.field_3=45,.field_4=111205168709632,.field_5=(t36) {.field_1=E_35_6,.field_2=168}},.field_3=(t76) {.field_1=(t55) {.field_1=(t39) {.field_1=(t27) {.field_1=273706513334272,.field_2=(t24) {.field_1=0.625},.field_3=(t25) {.field_1=3.27734375,.field_2=E_20_4,.field_3=E_21_5,.field_4=(t12) {.field_1=1.125,.field_2=(t10) {.field_1=228193040859136,.field_2=(t7) {.field_1=(t5) {.field_1=197736696643584,.field_2=2597012506,.field_3=181,.field_4=213,.field_5=107853796474880},.field_2=110,.field_3=E_6_2},.field_3=(t9) {.field_1=(t1) {.field_1=122,.field_2=1.296875,.field_3=218,.field_4=48},.field_2=(t3) {.field_1=13448229421056,.field_2=244,.field_3=(t1) {.field_1=47,.field_2=1.453125,.field_3=167,.field_4=113}}}},.field_3=(t11) {.field_1=(t2) {.field_1=-0.5625,.field_2=(t1) {.field_1=91,.field_2=1.53125,.field_3=127,.field_4=192}},.field_2=208774694567936,.field_3=-2.68359375}}},.field_4=(t26) {.field_1=203837156753408,.field_2=124751440248832,.field_3=19}},.field_2=949240352,.field_3=(t29) {.field_1=233,.field_2=3093393614},.field_4=(t8) {.field_1=(t4) {.field_1=(t2) {.field_1=-1.46875,.field_2=(t1) {.field_1=157,.field_2=-0.546875,.field_3=189,.field_4=115}},.field_2=(t3) {.field_1=199305275375616,.field_2=43,.field_3=(t1) {.field_1=171,.field_2=-0.984375,.field_3=22,.field_4=134}},.field_3=(t3) {.field_1=105055744950272,.field_2=34,.field_3=(t1) {.field_1=122,.field_2=0.1875,.field_3=25,.field_4=33}}},.field_2=(t3) {.field_1=1198625914880,.field_2=107,.field_3=(t1) {.field_1=125,.field_2=1.546875,.field_3=235,.field_4=61}},.field_3=0.734375,.field_4=E_6_1},.field_5=1.453125},.field_2=763193548,.field_3=39,.field_4=(t7) {.field_1=(t5) {.field_1=52338931924992,.field_2=391110206,.field_3=223,.field_4=55,.field_5=198983641202688},.field_2=50,.field_3=E_6_7}},.field_2=673599174},.field_4=(t77) {.field_1=(t55) {.field_1=(t39) {.field_1=(t27) {.field_1=254957327745024,.field_2=(t24) {.field_1=-1.171875},.field_3=(t25) {.field_1=2.5546875,.field_2=E_20_1,.field_3=E_21_2,.field_4=(t12) {.field_1=-1.171875,.field_2=(t10) {.field_1=130672052011008,.field_2=(t7) {.field_1=(t5) {.field_1=97871770550272,.field_2=3555186718,.field_3=6,.field_4=114,.field_5=270228958085120},.field_2=7,.field_3=E_6_7},.field_3=(t9) {.field_1=(t1) {.field_1=114,.field_2=-1.5,.field_3=200,.field_4=176},.field_2=(t3) {.field_1=212862159159296,.field_2=220,.field_3=(t1) {.field_1=167,.field_2=1.359375,.field_3=3,.field_4=215}}}},.field_3=(t11) {.field_1=(t2) {.field_1=-1.484375,.field_2=(t1) {.field_1=226,.field_2=-1.390625,.field_3=187,.field_4=21}},.field_2=4365063815168,.field_3=3.0390625}}},.field_4=(t26) {.field_1=278530325086209,.field_2=40351778734080,.field_3=183}},.field_2=345942008,.field_3=(t29) {.field_1=91,.field_2=281298906},.field_4=(t8) {.field_1=(t4) {.field_1=(t2) {.field_1=0.140625,.field_2=(t1) {.field_1=180,.field_2=1.234375,.field_3=145,.field_4=38}},.field_2=(t3) {.field_1=240181903360000,.field_2=153,.field_3=(t1) {.field_1=4,.field_2=-0.625,.field_3=158,.field_4=204}},.field_3=(t3) {.field_1=279255610818561,.field_2=96,.field_3=(t1) {.field_1=169,.field_2=0.46875,.field_3=79,.field_4=172}}},.field_2=(t3) {.field_1=137219642097664,.field_2=85,.field_3=(t1) {.field_1=143,.field_2=0.140625,.field_3=17,.field_4=164}},.field_3=0.1875,.field_4=E_6_7},.field_5=0.421875},.field_2=3026647616,.field_3=171,.field_4=(t7) {.field_1=(t5) {.field_1=200920828215296,.field_2=266056950,.field_3=188,.field_4=66,.field_5=215864985649152},.field_2=161,.field_3=E_6_6}},.field_2=234,.field_3=-0.12890625,.field_4=109,.field_5=(t70) {.field_1=(t9) {.field_1=(t1) {.field_1=238,.field_2=0.890625,.field_3=11,.field_4=187},.field_2=(t3) {.field_1=218973062561792,.field_2=108,.field_3=(t1) {.field_1=100,.field_2=-0.234375,.field_3=187,.field_4=17}}},.field_2=233},.field_6=296769572}};
+ t79 a_10_6 = E_79_2;
+ float ret_10 = fn_10_myr(a_10_1, a_10_2, a_10_3, a_10_4, a_10_5, a_10_6);
+ if (!(ret_10==-1.515625)) {
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/test/abi/005_in-c.myr b/test/abi/005_in-c.myr
new file mode 100644
index 0000000..83a8c97
--- /dev/null
+++ b/test/abi/005_in-c.myr
@@ -0,0 +1,16 @@
+use std
+use "005_types"
+
+pkg =
+ extern const fn_1_c : (a1 : t2, a2 : uint32, a3 : t4, a4 : t2, a5 : (t5,uint8,t6), a6 : flt32, a7 : flt64, a8 : (t4,t3,flt32,t6) -> ((uint8,flt32,uint8,uint8),t3))
+ extern const fn_2_c : (a1 : (flt64,t10,(t2,uint64,flt64)), a2 : (flt32,(flt64,uint32,uint64,t4)), a3 : (t5,uint8,t6), a4 : flt32, a5 : t15, a6 : (flt32,(flt64,uint32,uint64,t4)), a7 : uint8 -> (t16,flt32))
+ extern const fn_3_c : (a1 : t15, a2 : t23, a3 : t21, a4 : uint8, a5 : uint8, a6 : (uint64,t24,t25,(uint64,uint64,uint8)) -> uint32)
+ extern const fn_4_c : (a1 : ((t23,flt32,t6,flt64),(uint8,uint32)) -> uint64)
+ extern const fn_5_c : (a1 : (t31,t32), a2 : (t32,uint8), a3 : (t35,uint8), a4 : t37, a5 : uint64 -> flt64)
+ extern const fn_6_c : (a1 : t40, a2 : t41, a3 : (t32,uint8), a4 : t42, a5 : flt64, a6 : flt64, a7 : uint64, a8 : uint64, a9 : (uint64,uint64,uint8) -> t43)
+ extern const fn_7_c : (a1 : t48 -> uint32)
+ extern const fn_8_c : (a1 : (uint8,flt32,uint8,uint8), a2 : (flt32,t44,flt64,t49), a3 : t51, a4 : flt32, a5 : t52, a6 : uint32, a7 : t53, a8 : uint8 -> flt32)
+ extern const fn_9_c : (a1 : t51, a2 : flt32, a3 : flt32, a4 : (t54,uint8,t55), a5 : t58, a6 : (t59,flt32,(flt64,flt32,uint64,uint64)), a7 : t65, a8 : t66, a9 : t67, a10 : flt64 -> uint64)
+ extern const fn_10_c : (a1 : t74, a2 : flt32, a3 : t75, a4 : uint8, a5 : (uint64,t44,t76,t77), a6 : t79 -> flt32)
+ extern const check_c_to_myr_fns : (-> int)
+;;
diff --git a/test/abi/005_in-myr.myr b/test/abi/005_in-myr.myr
new file mode 100644
index 0000000..07374e1
--- /dev/null
+++ b/test/abi/005_in-myr.myr
@@ -0,0 +1,330 @@
+use std
+use "005_types"
+
+pkg =
+ const fn_1_myr : (a1 : t2, a2 : uint32, a3 : t4, a4 : t2, a5 : (t5,uint8,t6), a6 : flt32, a7 : flt64, a8 : (t4,t3,flt32,t6) -> ((uint8,flt32,uint8,uint8),t3))
+ const fn_2_myr : (a1 : (flt64,t10,(t2,uint64,flt64)), a2 : (flt32,(flt64,uint32,uint64,t4)), a3 : (t5,uint8,t6), a4 : flt32, a5 : t15, a6 : (flt32,(flt64,uint32,uint64,t4)), a7 : uint8 -> (t16,flt32))
+ const fn_3_myr : (a1 : t15, a2 : t23, a3 : t21, a4 : uint8, a5 : uint8, a6 : (uint64,t24,t25,(uint64,uint64,uint8)) -> uint32)
+ const fn_4_myr : (a1 : ((t23,flt32,t6,flt64),(uint8,uint32)) -> uint64)
+ const fn_5_myr : (a1 : (t31,t32), a2 : (t32,uint8), a3 : (t35,uint8), a4 : t37, a5 : uint64 -> flt64)
+ const fn_6_myr : (a1 : t40, a2 : t41, a3 : (t32,uint8), a4 : t42, a5 : flt64, a6 : flt64, a7 : uint64, a8 : uint64, a9 : (uint64,uint64,uint8) -> t43)
+ const fn_7_myr : (a1 : t48 -> uint32)
+ const fn_8_myr : (a1 : (uint8,flt32,uint8,uint8), a2 : (flt32,t44,flt64,t49), a3 : t51, a4 : flt32, a5 : t52, a6 : uint32, a7 : t53, a8 : uint8 -> flt32)
+ const fn_9_myr : (a1 : t51, a2 : flt32, a3 : flt32, a4 : (t54,uint8,t55), a5 : t58, a6 : (t59,flt32,(flt64,flt32,uint64,uint64)), a7 : t65, a8 : t66, a9 : t67, a10 : flt64 -> uint64)
+ const fn_10_myr : (a1 : t74, a2 : flt32, a3 : t75, a4 : uint8, a5 : (uint64,t44,t76,t77), a6 : t79 -> flt32)
+;;
+
+const fn_1_myr = { a1 : t2, a2 : uint32, a3 : t4, a4 : t2, a5 : (t5,uint8,t6), a6 : flt32, a7 : flt64, a8 : (t4,t3,flt32,t6)
+ if !((a1.field_1==0.0625) && ((a1.field_2.0==112) && (a1.field_2.1==-0.625) && (a1.field_2.2==110) && (a1.field_2.3==44)))
+ goto bad
+ ;;
+
+ if !(a2==2189228706)
+ goto bad
+ ;;
+
+ if !(((a3.field_1.field_1==-0.84375) && ((a3.field_1.field_2.0==150) && (a3.field_1.field_2.1==0.359375) && (a3.field_1.field_2.2==172) && (a3.field_1.field_2.3==26))) && ((a3.field_2.field_1==241023379308544) && (a3.field_2.field_2==115) && ((a3.field_2.field_3.0==228) && (a3.field_2.field_3.1==0.65625) && (a3.field_2.field_3.2==247) && (a3.field_2.field_3.3==84))) && ((a3.field_3.field_1==3134223810560) && (a3.field_3.field_2==102) && ((a3.field_3.field_3.0==128) && (a3.field_3.field_3.1==-1.21875) && (a3.field_3.field_3.2==232) && (a3.field_3.field_3.3==105))))
+ goto bad
+ ;;
+
+ if !((a4.field_1==-1.203125) && ((a4.field_2.0==110) && (a4.field_2.1==0.6875) && (a4.field_2.2==119) && (a4.field_2.3==200)))
+ goto bad
+ ;;
+
+ if !(((a5.0.field_1==94503966736384) && (a5.0.field_2==2770153426) && (a5.0.field_3==187) && (a5.0.field_4==214) && (a5.0.field_5==213410253897728)) && (a5.1==164) && (a5.2==`E_6_2))
+ goto bad
+ ;;
+
+ if !(a6==1.53125)
+ goto bad
+ ;;
+
+ if !(a7==1.3984375)
+ goto bad
+ ;;
+
+ if !((((a8.0.field_1.field_1==0.578125) && ((a8.0.field_1.field_2.0==170) && (a8.0.field_1.field_2.1==1.09375) && (a8.0.field_1.field_2.2==193) && (a8.0.field_1.field_2.3==148))) && ((a8.0.field_2.field_1==271021012025344) && (a8.0.field_2.field_2==173) && ((a8.0.field_2.field_3.0==241) && (a8.0.field_2.field_3.1==1.46875) && (a8.0.field_2.field_3.2==80) && (a8.0.field_2.field_3.3==71))) && ((a8.0.field_3.field_1==86092233441280) && (a8.0.field_3.field_2==245) && ((a8.0.field_3.field_3.0==3) && (a8.0.field_3.field_3.1==-1.125) && (a8.0.field_3.field_3.2==183) && (a8.0.field_3.field_3.3==168)))) && ((a8.1.field_1==110146554691584) && (a8.1.field_2==246) && ((a8.1.field_3.0==164) && (a8.1.field_3.1==0.8125) && (a8.1.field_3.2==164) && (a8.1.field_3.3==89))) && (a8.2==0.28125) && (a8.3==`E_6_1))
+ goto bad
+ ;;
+
+ -> ((192,-1.296875,50,129),[.field_1=188458318561280,.field_2=40,.field_3=(47,0.359375,32,127)])
+
+:bad
+ -> ((228,-0.203125,117,231),[.field_1=162396161703936,.field_2=44,.field_3=(143,1.46875,35,52)])
+}
+
+const fn_2_myr = { a1 : (flt64,t10,(t2,uint64,flt64)), a2 : (flt32,(flt64,uint32,uint64,t4)), a3 : (t5,uint8,t6), a4 : flt32, a5 : t15, a6 : (flt32,(flt64,uint32,uint64,t4)), a7 : uint8
+ if !((a1.0==2.7734375) && ((a1.1.field_1==258260610842624) && (((a1.1.field_2.0.field_1==67688764407808) && (a1.1.field_2.0.field_2==122501974) && (a1.1.field_2.0.field_3==122) && (a1.1.field_2.0.field_4==53) && (a1.1.field_2.0.field_5==46816349519872)) && (a1.1.field_2.1==175) && (a1.1.field_2.2==`E_6_7)) && (((a1.1.field_3.0.0==242) && (a1.1.field_3.0.1==-0.828125) && (a1.1.field_3.0.2==64) && (a1.1.field_3.0.3==212)) && ((a1.1.field_3.1.field_1==175981577109504) && (a1.1.field_3.1.field_2==146) && ((a1.1.field_3.1.field_3.0==58) && (a1.1.field_3.1.field_3.1==-1.3125) && (a1.1.field_3.1.field_3.2==81) && (a1.1.field_3.1.field_3.3==249))))) && (((a1.2.0.field_1==-0.671875) && ((a1.2.0.field_2.0==39) && (a1.2.0.field_2.1==1.3125) && (a1.2.0.field_2.2==255) && (a1.2.0.field_2.3==168))) && (a1.2.1==5680861020160) && (a1.2.2==3.1015625)))
+ goto bad
+ ;;
+
+ if !((a2.0==-0.65625) && ((a2.1.0==-3.07421875) && (a2.1.1==2364459620) && (a2.1.2==34004063092736) && (((a2.1.3.field_1.field_1==0.734375) && ((a2.1.3.field_1.field_2.0==31) && (a2.1.3.field_1.field_2.1==-0.46875) && (a2.1.3.field_1.field_2.2==207) && (a2.1.3.field_1.field_2.3==112))) && ((a2.1.3.field_2.field_1==91868031090688) && (a2.1.3.field_2.field_2==24) && ((a2.1.3.field_2.field_3.0==152) && (a2.1.3.field_2.field_3.1==-0.796875) && (a2.1.3.field_2.field_3.2==24) && (a2.1.3.field_2.field_3.3==64))) && ((a2.1.3.field_3.field_1==74808418369536) && (a2.1.3.field_3.field_2==254) && ((a2.1.3.field_3.field_3.0==6) && (a2.1.3.field_3.field_3.1==0.046875) && (a2.1.3.field_3.field_3.2==73) && (a2.1.3.field_3.field_3.3==208))))))
+ goto bad
+ ;;
+
+ if !(((a3.0.field_1==145965008551936) && (a3.0.field_2==2498931774) && (a3.0.field_3==156) && (a3.0.field_4==179) && (a3.0.field_5==265737065725952)) && (a3.1==244) && (a3.2==`E_6_5))
+ goto bad
+ ;;
+
+ if !(a4==-0.796875)
+ goto bad
+ ;;
+
+ if !(a5==`E_15_4)
+ goto bad
+ ;;
+
+ if !((a6.0==0.6875) && ((a6.1.0==-2.171875) && (a6.1.1==1533036440) && (a6.1.2==12142327889920) && (((a6.1.3.field_1.field_1==-0.5625) && ((a6.1.3.field_1.field_2.0==243) && (a6.1.3.field_1.field_2.1==-0.65625) && (a6.1.3.field_1.field_2.2==106) && (a6.1.3.field_1.field_2.3==51))) && ((a6.1.3.field_2.field_1==156078303608832) && (a6.1.3.field_2.field_2==104) && ((a6.1.3.field_2.field_3.0==58) && (a6.1.3.field_2.field_3.1==-1.34375) && (a6.1.3.field_2.field_3.2==178) && (a6.1.3.field_2.field_3.3==10))) && ((a6.1.3.field_3.field_1==140200370896896) && (a6.1.3.field_3.field_2==33) && ((a6.1.3.field_3.field_3.0==143) && (a6.1.3.field_3.field_3.1==-1.3125) && (a6.1.3.field_3.field_3.2==190) && (a6.1.3.field_3.field_3.3==67))))))
+ goto bad
+ ;;
+
+ if !(a7==179)
+ goto bad
+ ;;
+
+ -> ([.field_1=101589888270336,.field_2=(225,-0.046875,234,74),.field_3=200069064425472,.field_4=1.53125],1.53125)
+
+:bad
+ -> ([.field_1=211711070699520,.field_2=(123,-1.203125,79,144),.field_3=242499850862592,.field_4=0.234375],0.28125)
+}
+
+const fn_3_myr = { a1 : t15, a2 : t23, a3 : t21, a4 : uint8, a5 : uint8, a6 : (uint64,t24,t25,(uint64,uint64,uint8))
+ if !(a1==`E_15_5)
+ goto bad
+ ;;
+
+ if !(((((a2.field_1.0.0.field_1==208514472345600) && ((a2.field_1.0.0.field_2.0==171) && (a2.field_1.0.0.field_2.1==0.53125) && (a2.field_1.0.0.field_2.2==170) && (a2.field_1.0.0.field_2.3==148)) && (a2.field_1.0.0.field_3==137775610724352) && (a2.field_1.0.0.field_4==0.046875)) && (a2.field_1.0.1==-0.109375)) && ((((a2.field_1.1.0.field_1.field_1==-0.515625) && ((a2.field_1.1.0.field_1.field_2.0==130) && (a2.field_1.1.0.field_1.field_2.1==0.5625) && (a2.field_1.1.0.field_1.field_2.2==65) && (a2.field_1.1.0.field_1.field_2.3==249))) && ((a2.field_1.1.0.field_2.field_1==49920772014080) && (a2.field_1.1.0.field_2.field_2==137) && ((a2.field_1.1.0.field_2.field_3.0==81) && (a2.field_1.1.0.field_2.field_3.1==-1.078125) && (a2.field_1.1.0.field_2.field_3.2==187) && (a2.field_1.1.0.field_2.field_3.3==244))) && ((a2.field_1.1.0.field_3.field_1==238917205884928) && (a2.field_1.1.0.field_3.field_2==234) && ((a2.field_1.1.0.field_3.field_3.0==148) && (a2.field_1.1.0.field_3.field_3.1==-0.65625) && (a2.field_1.1.0.field_3.field_3.2==148) && (a2.field_1.1.0.field_3.field_3.3==82)))) && ((a2.field_1.1.1.field_1==13348047552512) && (a2.field_1.1.1.field_2==206) && ((a2.field_1.1.1.field_3.0==236) && (a2.field_1.1.1.field_3.1==-0.390625) && (a2.field_1.1.1.field_3.2==159) && (a2.field_1.1.1.field_3.3==22))) && (a2.field_1.1.2==-1.203125) && (a2.field_1.1.3==`E_6_3)) && (a2.field_1.2==3263768112) && (((a2.field_1.3.field_1.field_1==0.890625) && ((a2.field_1.3.field_1.field_2.0==223) && (a2.field_1.3.field_1.field_2.1==-0.78125) && (a2.field_1.3.field_1.field_2.2==76) && (a2.field_1.3.field_1.field_2.3==85))) && ((a2.field_1.3.field_2.field_1==165112780685312) && (a2.field_1.3.field_2.field_2==206) && ((a2.field_1.3.field_2.field_3.0==4) && (a2.field_1.3.field_2.field_3.1==1.078125) && (a2.field_1.3.field_2.field_3.2==200) && (a2.field_1.3.field_2.field_3.3==49))) && ((a2.field_1.3.field_3.field_1==107450067189760) && (a2.field_1.3.field_3.field_2==25) && ((a2.field_1.3.field_3.field_3.0==89) && (a2.field_1.3.field_3.field_3.1==-1.203125) && (a2.field_1.3.field_3.field_3.2==14) && (a2.field_1.3.field_3.field_3.3==51))))) && (a2.field_2==`E_19_1) && (a2.field_3==178689565917184) && (a2.field_4==`E_20_4) && (a2.field_5==`E_21_6) && ((a2.field_6.0==269113953746944) && (a2.field_6.1==2315358406)))
+ goto bad
+ ;;
+
+ if !(a3==`E_21_9)
+ goto bad
+ ;;
+
+ if !(a4==248)
+ goto bad
+ ;;
+
+ if !(a5==86)
+ goto bad
+ ;;
+
+ if !((a6.0==85770339090432) && ((a6.1.field_1==-0.671875)) && ((a6.2.field_1==-1.15234375) && (a6.2.field_2==`E_20_1) && (a6.2.field_3==`E_21_1) && ((a6.2.field_4.0==0.46875) && ((a6.2.field_4.1.field_1==3865086263296) && (((a6.2.field_4.1.field_2.0.field_1==62745143410688) && (a6.2.field_4.1.field_2.0.field_2==444241798) && (a6.2.field_4.1.field_2.0.field_3==148) && (a6.2.field_4.1.field_2.0.field_4==38) && (a6.2.field_4.1.field_2.0.field_5==186451756843008)) && (a6.2.field_4.1.field_2.1==253) && (a6.2.field_4.1.field_2.2==`E_6_6)) && (((a6.2.field_4.1.field_3.0.0==106) && (a6.2.field_4.1.field_3.0.1==0.875) && (a6.2.field_4.1.field_3.0.2==169) && (a6.2.field_4.1.field_3.0.3==132)) && ((a6.2.field_4.1.field_3.1.field_1==193552010969088) && (a6.2.field_4.1.field_3.1.field_2==134) && ((a6.2.field_4.1.field_3.1.field_3.0==209) && (a6.2.field_4.1.field_3.1.field_3.1==0.390625) && (a6.2.field_4.1.field_3.1.field_3.2==6) && (a6.2.field_4.1.field_3.1.field_3.3==157))))) && (((a6.2.field_4.2.0.field_1==-1.015625) && ((a6.2.field_4.2.0.field_2.0==122) && (a6.2.field_4.2.0.field_2.1==1.40625) && (a6.2.field_4.2.0.field_2.2==38) && (a6.2.field_4.2.0.field_2.3==208))) && (a6.2.field_4.2.1==55544454578176) && (a6.2.field_4.2.2==-2.609375)))) && ((a6.3.0==33366908207104) && (a6.3.1==136001504280576) && (a6.3.2==132)))
+ goto bad
+ ;;
+
+ -> 2527618668
+
+:bad
+ -> 339855078
+}
+
+const fn_4_myr = { a1 : ((t23,flt32,t6,flt64),(uint8,uint32))
+ if !(((((((a1.0.0.field_1.0.0.field_1==44445459546112) && ((a1.0.0.field_1.0.0.field_2.0==83) && (a1.0.0.field_1.0.0.field_2.1==-0.453125) && (a1.0.0.field_1.0.0.field_2.2==82) && (a1.0.0.field_1.0.0.field_2.3==113)) && (a1.0.0.field_1.0.0.field_3==235939541549056) && (a1.0.0.field_1.0.0.field_4==1.078125)) && (a1.0.0.field_1.0.1==0.3125)) && ((((a1.0.0.field_1.1.0.field_1.field_1==-0.234375) && ((a1.0.0.field_1.1.0.field_1.field_2.0==236) && (a1.0.0.field_1.1.0.field_1.field_2.1==0.828125) && (a1.0.0.field_1.1.0.field_1.field_2.2==60) && (a1.0.0.field_1.1.0.field_1.field_2.3==26))) && ((a1.0.0.field_1.1.0.field_2.field_1==143671663132672) && (a1.0.0.field_1.1.0.field_2.field_2==50) && ((a1.0.0.field_1.1.0.field_2.field_3.0==243) && (a1.0.0.field_1.1.0.field_2.field_3.1==-0.796875) && (a1.0.0.field_1.1.0.field_2.field_3.2==3) && (a1.0.0.field_1.1.0.field_2.field_3.3==53))) && ((a1.0.0.field_1.1.0.field_3.field_1==214366877515776) && (a1.0.0.field_1.1.0.field_3.field_2==126) && ((a1.0.0.field_1.1.0.field_3.field_3.0==252) && (a1.0.0.field_1.1.0.field_3.field_3.1==1.453125) && (a1.0.0.field_1.1.0.field_3.field_3.2==128) && (a1.0.0.field_1.1.0.field_3.field_3.3==149)))) && ((a1.0.0.field_1.1.1.field_1==223779870998528) && (a1.0.0.field_1.1.1.field_2==137) && ((a1.0.0.field_1.1.1.field_3.0==203) && (a1.0.0.field_1.1.1.field_3.1==0.953125) && (a1.0.0.field_1.1.1.field_3.2==12) && (a1.0.0.field_1.1.1.field_3.3==243))) && (a1.0.0.field_1.1.2==1.453125) && (a1.0.0.field_1.1.3==`E_6_3)) && (a1.0.0.field_1.2==1314332054) && (((a1.0.0.field_1.3.field_1.field_1==-0.671875) && ((a1.0.0.field_1.3.field_1.field_2.0==209) && (a1.0.0.field_1.3.field_1.field_2.1==-1.125) && (a1.0.0.field_1.3.field_1.field_2.2==32) && (a1.0.0.field_1.3.field_1.field_2.3==106))) && ((a1.0.0.field_1.3.field_2.field_1==160715212455936) && (a1.0.0.field_1.3.field_2.field_2==12) && ((a1.0.0.field_1.3.field_2.field_3.0==45) && (a1.0.0.field_1.3.field_2.field_3.1==0.96875) && (a1.0.0.field_1.3.field_2.field_3.2==39) && (a1.0.0.field_1.3.field_2.field_3.3==176))) && ((a1.0.0.field_1.3.field_3.field_1==2142336450560) && (a1.0.0.field_1.3.field_3.field_2==26) && ((a1.0.0.field_1.3.field_3.field_3.0==239) && (a1.0.0.field_1.3.field_3.field_3.1==-1.5) && (a1.0.0.field_1.3.field_3.field_3.2==80) && (a1.0.0.field_1.3.field_3.field_3.3==178))))) && (a1.0.0.field_2==`E_19_5) && (a1.0.0.field_3==84526311014400) && (a1.0.0.field_4==`E_20_6) && (a1.0.0.field_5==`E_21_1) && ((a1.0.0.field_6.0==248535774265344) && (a1.0.0.field_6.1==1964811016))) && (a1.0.1==0.1875) && (a1.0.2==`E_6_5) && (a1.0.3==-1.87109375)) && ((a1.1.0==155) && (a1.1.1==2693759888)))
+ goto bad
+ ;;
+
+ -> 276275068796928
+
+:bad
+ -> 262674313510912
+}
+
+const fn_5_myr = { a1 : (t31,t32), a2 : (t32,uint8), a3 : (t35,uint8), a4 : t37, a5 : uint64
+ if !((a1.0==`E_31_3) && (a1.1==`E_32_5))
+ goto bad
+ ;;
+
+ if !((a2.0==`E_32_5) && (a2.1==66))
+ goto bad
+ ;;
+
+ if !((a3.0==`E_35_4) && (a3.1==214))
+ goto bad
+ ;;
+
+ if !(a4==`E_37_1)
+ goto bad
+ ;;
+
+ if !(a5==210077727850496)
+ goto bad
+ ;;
+
+ -> -2.5234375
+
+:bad
+ -> 1.40234375
+}
+
+const fn_6_myr = { a1 : t40, a2 : t41, a3 : (t32,uint8), a4 : t42, a5 : flt64, a6 : flt64, a7 : uint64, a8 : uint64, a9 : (uint64,uint64,uint8)
+ if !(((((a1.field_1.0.field_1.field_1==0.71875) && ((a1.field_1.0.field_1.field_2.0==162) && (a1.field_1.0.field_1.field_2.1==-1.375) && (a1.field_1.0.field_1.field_2.2==12) && (a1.field_1.0.field_1.field_2.3==208))) && ((a1.field_1.0.field_2.field_1==208257259929600) && (a1.field_1.0.field_2.field_2==224) && ((a1.field_1.0.field_2.field_3.0==202) && (a1.field_1.0.field_2.field_3.1==-0.015625) && (a1.field_1.0.field_2.field_3.2==86) && (a1.field_1.0.field_2.field_3.3==251))) && ((a1.field_1.0.field_3.field_1==253976550440960) && (a1.field_1.0.field_3.field_2==123) && ((a1.field_1.0.field_3.field_3.0==146) && (a1.field_1.0.field_3.field_3.1==0.828125) && (a1.field_1.0.field_3.field_3.2==120) && (a1.field_1.0.field_3.field_3.3==62)))) && ((a1.field_1.1.field_1==26298971062272) && (a1.field_1.1.field_2==103) && ((a1.field_1.1.field_3.0==239) && (a1.field_1.1.field_3.1==1.28125) && (a1.field_1.1.field_3.2==152) && (a1.field_1.1.field_3.3==89))) && (a1.field_1.2==0.734375) && (a1.field_1.3==`E_6_3)) && (a1.field_2==`E_6_1) && (a1.field_3==`E_38_6) && (((a1.field_4.field_1.0==152549047009280) && ((a1.field_4.field_1.1.field_1==0.859375)) && ((a1.field_4.field_1.2.field_1==-3.7109375) && (a1.field_4.field_1.2.field_2==`E_20_7) && (a1.field_4.field_1.2.field_3==`E_21_5) && ((a1.field_4.field_1.2.field_4.0==1.26171875) && ((a1.field_4.field_1.2.field_4.1.field_1==257906686427136) && (((a1.field_4.field_1.2.field_4.1.field_2.0.field_1==154973503488000) && (a1.field_4.field_1.2.field_4.1.field_2.0.field_2==2040012194) && (a1.field_4.field_1.2.field_4.1.field_2.0.field_3==167) && (a1.field_4.field_1.2.field_4.1.field_2.0.field_4==109) && (a1.field_4.field_1.2.field_4.1.field_2.0.field_5==74787062284288)) && (a1.field_4.field_1.2.field_4.1.field_2.1==39) && (a1.field_4.field_1.2.field_4.1.field_2.2==`E_6_6)) && (((a1.field_4.field_1.2.field_4.1.field_3.0.0==63) && (a1.field_4.field_1.2.field_4.1.field_3.0.1==-1.390625) && (a1.field_4.field_1.2.field_4.1.field_3.0.2==63) && (a1.field_4.field_1.2.field_4.1.field_3.0.3==209)) && ((a1.field_4.field_1.2.field_4.1.field_3.1.field_1==230983872282624) && (a1.field_4.field_1.2.field_4.1.field_3.1.field_2==184) && ((a1.field_4.field_1.2.field_4.1.field_3.1.field_3.0==15) && (a1.field_4.field_1.2.field_4.1.field_3.1.field_3.1==1.296875) && (a1.field_4.field_1.2.field_4.1.field_3.1.field_3.2==31) && (a1.field_4.field_1.2.field_4.1.field_3.1.field_3.3==255))))) && (((a1.field_4.field_1.2.field_4.2.0.field_1==1.015625) && ((a1.field_4.field_1.2.field_4.2.0.field_2.0==183) && (a1.field_4.field_1.2.field_4.2.0.field_2.1==-0.484375) && (a1.field_4.field_1.2.field_4.2.0.field_2.2==142) && (a1.field_4.field_1.2.field_4.2.0.field_2.3==16))) && (a1.field_4.field_1.2.field_4.2.1==137163913822208) && (a1.field_4.field_1.2.field_4.2.2==-2.80859375)))) && ((a1.field_4.field_1.3.0==170983975682048) && (a1.field_4.field_1.3.1==72796805398528) && (a1.field_4.field_1.3.2==42))) && (a1.field_4.field_2==1990287632) && ((a1.field_4.field_3.0==194) && (a1.field_4.field_3.1==3552591666)) && ((((a1.field_4.field_4.0.field_1.field_1==-0.375) && ((a1.field_4.field_4.0.field_1.field_2.0==79) && (a1.field_4.field_4.0.field_1.field_2.1==-0.625) && (a1.field_4.field_4.0.field_1.field_2.2==9) && (a1.field_4.field_4.0.field_1.field_2.3==188))) && ((a1.field_4.field_4.0.field_2.field_1==159828972142592) && (a1.field_4.field_4.0.field_2.field_2==48) && ((a1.field_4.field_4.0.field_2.field_3.0==128) && (a1.field_4.field_4.0.field_2.field_3.1==1.0) && (a1.field_4.field_4.0.field_2.field_3.2==62) && (a1.field_4.field_4.0.field_2.field_3.3==192))) && ((a1.field_4.field_4.0.field_3.field_1==179052505464832) && (a1.field_4.field_4.0.field_3.field_2==16) && ((a1.field_4.field_4.0.field_3.field_3.0==120) && (a1.field_4.field_4.0.field_3.field_3.1==0.625) && (a1.field_4.field_4.0.field_3.field_3.2==250) && (a1.field_4.field_4.0.field_3.field_3.3==151)))) && ((a1.field_4.field_4.1.field_1==196274257788928) && (a1.field_4.field_4.1.field_2==205) && ((a1.field_4.field_4.1.field_3.0==79) && (a1.field_4.field_4.1.field_3.1==-1.4375) && (a1.field_4.field_4.1.field_3.2==91) && (a1.field_4.field_4.1.field_3.3==96))) && (a1.field_4.field_4.2==0.09375) && (a1.field_4.field_4.3==`E_6_4)) && (a1.field_4.field_5==1.515625)) && (a1.field_5==2.265625))
+ goto bad
+ ;;
+
+ if !(a2==`E_41_5)
+ goto bad
+ ;;
+
+ if !((a3.0==`E_32_8) && (a3.1==203))
+ goto bad
+ ;;
+
+ if !((a4.field_1==-1.58984375) && (a4.field_2==217) && (a4.field_3==3500137676) && (a4.field_4==101686982737920))
+ goto bad
+ ;;
+
+ if !(a5==0.10546875)
+ goto bad
+ ;;
+
+ if !(a6==3.21875)
+ goto bad
+ ;;
+
+ if !(a7==40133181046784)
+ goto bad
+ ;;
+
+ if !(a8==71741835313152)
+ goto bad
+ ;;
+
+ if !((a9.0==221313136459776) && (a9.1==104460582912) && (a9.2==149))
+ goto bad
+ ;;
+
+ -> `E_43_1
+
+:bad
+ -> `E_43_2
+}
+
+const fn_7_myr = { a1 : t48
+ if !(((a1.field_1.field_1==6386332991488) && (a1.field_1.field_2==-3.90625) && (a1.field_1.field_3==163) && (a1.field_1.field_4==155193554763776) && ((a1.field_1.field_5.0==`E_35_3) && (a1.field_1.field_5.1==18))) && (((a1.field_2.0.field_1==112229799297024) && (a1.field_2.0.field_2==-2.8984375) && (a1.field_2.0.field_3==216) && (a1.field_2.0.field_4==44483204612096) && ((a1.field_2.0.field_5.0==`E_35_2) && (a1.field_2.0.field_5.1==195))) && (a1.field_2.1==39665754832896) && (a1.field_2.2==114) && (a1.field_2.3==776337414)) && (a1.field_3==`E_46_5) && (a1.field_4==146729052536832) && ((((a1.field_5.0.0.0==153) && (a1.field_5.0.0.1==1.234375) && (a1.field_5.0.0.2==43) && (a1.field_5.0.0.3==174)) && ((a1.field_5.0.1.field_1==26828980748288) && (a1.field_5.0.1.field_2==242) && ((a1.field_5.0.1.field_3.0==236) && (a1.field_5.0.1.field_3.1==-1.078125) && (a1.field_5.0.1.field_3.2==180) && (a1.field_5.0.1.field_3.3==30)))) && (a1.field_5.1==266092824363008)) && ((a1.field_6.0==13831859994624) && ((a1.field_6.1.field_1==0.390625)) && ((a1.field_6.2.field_1==0.0703125) && (a1.field_6.2.field_2==`E_20_1) && (a1.field_6.2.field_3==`E_21_6) && ((a1.field_6.2.field_4.0==-2.765625) && ((a1.field_6.2.field_4.1.field_1==175411747749888) && (((a1.field_6.2.field_4.1.field_2.0.field_1==262729443049472) && (a1.field_6.2.field_4.1.field_2.0.field_2==932333724) && (a1.field_6.2.field_4.1.field_2.0.field_3==5) && (a1.field_6.2.field_4.1.field_2.0.field_4==16) && (a1.field_6.2.field_4.1.field_2.0.field_5==17637135220736)) && (a1.field_6.2.field_4.1.field_2.1==46) && (a1.field_6.2.field_4.1.field_2.2==`E_6_2)) && (((a1.field_6.2.field_4.1.field_3.0.0==211) && (a1.field_6.2.field_4.1.field_3.0.1==-0.5625) && (a1.field_6.2.field_4.1.field_3.0.2==171) && (a1.field_6.2.field_4.1.field_3.0.3==1)) && ((a1.field_6.2.field_4.1.field_3.1.field_1==12764915826688) && (a1.field_6.2.field_4.1.field_3.1.field_2==49) && ((a1.field_6.2.field_4.1.field_3.1.field_3.0==154) && (a1.field_6.2.field_4.1.field_3.1.field_3.1==1.375) && (a1.field_6.2.field_4.1.field_3.1.field_3.2==93) && (a1.field_6.2.field_4.1.field_3.1.field_3.3==73))))) && (((a1.field_6.2.field_4.2.0.field_1==-1.46875) && ((a1.field_6.2.field_4.2.0.field_2.0==79) && (a1.field_6.2.field_4.2.0.field_2.1==-0.90625) && (a1.field_6.2.field_4.2.0.field_2.2==49) && (a1.field_6.2.field_4.2.0.field_2.3==4))) && (a1.field_6.2.field_4.2.1==93216219463680) && (a1.field_6.2.field_4.2.2==-2.83203125)))) && ((a1.field_6.3.0==18454498639872) && (a1.field_6.3.1==269237052506112) && (a1.field_6.3.2==165))))
+ goto bad
+ ;;
+
+ -> 2499773006
+
+:bad
+ -> 3403919486
+}
+
+const fn_8_myr = { a1 : (uint8,flt32,uint8,uint8), a2 : (flt32,t44,flt64,t49), a3 : t51, a4 : flt32, a5 : t52, a6 : uint32, a7 : t53, a8 : uint8
+ if !((a1.0==200) && (a1.1==0.25) && (a1.2==18) && (a1.3==246))
+ goto bad
+ ;;
+
+ if !((a2.0==-0.734375) && ((a2.1.field_1==8592161505280) && (a2.1.field_2==2.32421875) && (a2.1.field_3==77) && (a2.1.field_4==95804356820992) && ((a2.1.field_5.0==`E_35_1) && (a2.1.field_5.1==126))) && (a2.2==-1.12109375) && (a2.3==`E_49_3))
+ goto bad
+ ;;
+
+ if !(a3==`E_51_3)
+ goto bad
+ ;;
+
+ if !(a4==0.1875)
+ goto bad
+ ;;
+
+ if !((a5.field_1==-0.81640625))
+ goto bad
+ ;;
+
+ if !(a6==441584498)
+ goto bad
+ ;;
+
+ if !((a7.field_1==198))
+ goto bad
+ ;;
+
+ if !(a8==89)
+ goto bad
+ ;;
+
+ -> 1.421875
+
+:bad
+ -> 0.5625
+}
+
+const fn_9_myr = { a1 : t51, a2 : flt32, a3 : flt32, a4 : (t54,uint8,t55), a5 : t58, a6 : (t59,flt32,(flt64,flt32,uint64,uint64)), a7 : t65, a8 : t66, a9 : t67, a10 : flt64
+ if !(a1==`E_51_8)
+ goto bad
+ ;;
+
+ if !(a2==-0.796875)
+ goto bad
+ ;;
+
+ if !(a3==-0.71875)
+ goto bad
+ ;;
+
+ if !((a4.0==`E_54_7) && (a4.1==255) && ((((a4.2.field_1.field_1.0==130105287114752) && ((a4.2.field_1.field_1.1.field_1==-1.0)) && ((a4.2.field_1.field_1.2.field_1==3.53125) && (a4.2.field_1.field_1.2.field_2==`E_20_2) && (a4.2.field_1.field_1.2.field_3==`E_21_1) && ((a4.2.field_1.field_1.2.field_4.0==-0.67578125) && ((a4.2.field_1.field_1.2.field_4.1.field_1==23617654620160) && (((a4.2.field_1.field_1.2.field_4.1.field_2.0.field_1==12594182750208) && (a4.2.field_1.field_1.2.field_4.1.field_2.0.field_2==2889081194) && (a4.2.field_1.field_1.2.field_4.1.field_2.0.field_3==84) && (a4.2.field_1.field_1.2.field_4.1.field_2.0.field_4==84) && (a4.2.field_1.field_1.2.field_4.1.field_2.0.field_5==265251503210496)) && (a4.2.field_1.field_1.2.field_4.1.field_2.1==17) && (a4.2.field_1.field_1.2.field_4.1.field_2.2==`E_6_7)) && (((a4.2.field_1.field_1.2.field_4.1.field_3.0.0==141) && (a4.2.field_1.field_1.2.field_4.1.field_3.0.1==-0.1875) && (a4.2.field_1.field_1.2.field_4.1.field_3.0.2==10) && (a4.2.field_1.field_1.2.field_4.1.field_3.0.3==118)) && ((a4.2.field_1.field_1.2.field_4.1.field_3.1.field_1==24302215233536) && (a4.2.field_1.field_1.2.field_4.1.field_3.1.field_2==170) && ((a4.2.field_1.field_1.2.field_4.1.field_3.1.field_3.0==64) && (a4.2.field_1.field_1.2.field_4.1.field_3.1.field_3.1==0.953125) && (a4.2.field_1.field_1.2.field_4.1.field_3.1.field_3.2==156) && (a4.2.field_1.field_1.2.field_4.1.field_3.1.field_3.3==112))))) && (((a4.2.field_1.field_1.2.field_4.2.0.field_1==0.3125) && ((a4.2.field_1.field_1.2.field_4.2.0.field_2.0==168) && (a4.2.field_1.field_1.2.field_4.2.0.field_2.1==0.3125) && (a4.2.field_1.field_1.2.field_4.2.0.field_2.2==140) && (a4.2.field_1.field_1.2.field_4.2.0.field_2.3==197))) && (a4.2.field_1.field_1.2.field_4.2.1==149682231705600) && (a4.2.field_1.field_1.2.field_4.2.2==0.3828125)))) && ((a4.2.field_1.field_1.3.0==66190105247744) && (a4.2.field_1.field_1.3.1==201243456045056) && (a4.2.field_1.field_1.3.2==128))) && (a4.2.field_1.field_2==1608787508) && ((a4.2.field_1.field_3.0==208) && (a4.2.field_1.field_3.1==3925244758)) && ((((a4.2.field_1.field_4.0.field_1.field_1==-0.125) && ((a4.2.field_1.field_4.0.field_1.field_2.0==219) && (a4.2.field_1.field_4.0.field_1.field_2.1==0.265625) && (a4.2.field_1.field_4.0.field_1.field_2.2==201) && (a4.2.field_1.field_4.0.field_1.field_2.3==48))) && ((a4.2.field_1.field_4.0.field_2.field_1==148885215510528) && (a4.2.field_1.field_4.0.field_2.field_2==219) && ((a4.2.field_1.field_4.0.field_2.field_3.0==41) && (a4.2.field_1.field_4.0.field_2.field_3.1==-1.3125) && (a4.2.field_1.field_4.0.field_2.field_3.2==75) && (a4.2.field_1.field_4.0.field_2.field_3.3==52))) && ((a4.2.field_1.field_4.0.field_3.field_1==153670362464256) && (a4.2.field_1.field_4.0.field_3.field_2==97) && ((a4.2.field_1.field_4.0.field_3.field_3.0==222) && (a4.2.field_1.field_4.0.field_3.field_3.1==0.9375) && (a4.2.field_1.field_4.0.field_3.field_3.2==47) && (a4.2.field_1.field_4.0.field_3.field_3.3==122)))) && ((a4.2.field_1.field_4.1.field_1==66828912033792) && (a4.2.field_1.field_4.1.field_2==201) && ((a4.2.field_1.field_4.1.field_3.0==35) && (a4.2.field_1.field_4.1.field_3.1==1.046875) && (a4.2.field_1.field_4.1.field_3.2==86) && (a4.2.field_1.field_4.1.field_3.3==233))) && (a4.2.field_1.field_4.2==-0.421875) && (a4.2.field_1.field_4.3==`E_6_7)) && (a4.2.field_1.field_5==-1.109375)) && (a4.2.field_2==350527626) && (a4.2.field_3==98) && (((a4.2.field_4.0.field_1==146849136115712) && (a4.2.field_4.0.field_2==3845172994) && (a4.2.field_4.0.field_3==76) && (a4.2.field_4.0.field_4==250) && (a4.2.field_4.0.field_5==212141542211584)) && (a4.2.field_4.1==227) && (a4.2.field_4.2==`E_6_6))))
+ goto bad
+ ;;
+
+ if !((a5.field_1==`E_57_1) && ((a5.field_2.field_1==77)) && (a5.field_3==-2.5))
+ goto bad
+ ;;
+
+ if !((a6.0==`E_59_2) && (a6.1==-0.984375) && ((a6.2.0==-1.09375) && (a6.2.1==-1.53125) && (a6.2.2==20793480314880) && (a6.2.3==36073398206464)))
+ goto bad
+ ;;
+
+ if !(((a7.field_1.0==-2.32421875) && (a7.field_1.1==208)) && ((a7.field_2.field_1==-0.0625) && ((((a7.field_2.field_2.0.0.0==224) && (a7.field_2.field_2.0.0.1==-0.984375) && (a7.field_2.field_2.0.0.2==131) && (a7.field_2.field_2.0.0.3==218)) && ((a7.field_2.field_2.0.1.field_1==209069555974144) && (a7.field_2.field_2.0.1.field_2==100) && ((a7.field_2.field_2.0.1.field_3.0==82) && (a7.field_2.field_2.0.1.field_3.1==1.4375) && (a7.field_2.field_2.0.1.field_3.2==89) && (a7.field_2.field_2.0.1.field_3.3==16)))) && (a7.field_2.field_2.1==273030717767680)) && (((((a7.field_2.field_3.field_1.0.0.field_1==62938097254400) && ((a7.field_2.field_3.field_1.0.0.field_2.0==107) && (a7.field_2.field_3.field_1.0.0.field_2.1==0.609375) && (a7.field_2.field_3.field_1.0.0.field_2.2==97) && (a7.field_2.field_3.field_1.0.0.field_2.3==70)) && (a7.field_2.field_3.field_1.0.0.field_3==77561457147904) && (a7.field_2.field_3.field_1.0.0.field_4==1.265625)) && (a7.field_2.field_3.field_1.0.1==-1.515625)) && ((((a7.field_2.field_3.field_1.1.0.field_1.field_1==-0.828125) && ((a7.field_2.field_3.field_1.1.0.field_1.field_2.0==174) && (a7.field_2.field_3.field_1.1.0.field_1.field_2.1==1.390625) && (a7.field_2.field_3.field_1.1.0.field_1.field_2.2==142) && (a7.field_2.field_3.field_1.1.0.field_1.field_2.3==121))) && ((a7.field_2.field_3.field_1.1.0.field_2.field_1==266278944636928) && (a7.field_2.field_3.field_1.1.0.field_2.field_2==1) && ((a7.field_2.field_3.field_1.1.0.field_2.field_3.0==57) && (a7.field_2.field_3.field_1.1.0.field_2.field_3.1==-0.1875) && (a7.field_2.field_3.field_1.1.0.field_2.field_3.2==53) && (a7.field_2.field_3.field_1.1.0.field_2.field_3.3==10))) && ((a7.field_2.field_3.field_1.1.0.field_3.field_1==258630503497728) && (a7.field_2.field_3.field_1.1.0.field_3.field_2==22) && ((a7.field_2.field_3.field_1.1.0.field_3.field_3.0==58) && (a7.field_2.field_3.field_1.1.0.field_3.field_3.1==-0.203125) && (a7.field_2.field_3.field_1.1.0.field_3.field_3.2==241) && (a7.field_2.field_3.field_1.1.0.field_3.field_3.3==248)))) && ((a7.field_2.field_3.field_1.1.1.field_1==232005730828288) && (a7.field_2.field_3.field_1.1.1.field_2==67) && ((a7.field_2.field_3.field_1.1.1.field_3.0==237) && (a7.field_2.field_3.field_1.1.1.field_3.1==-1.03125) && (a7.field_2.field_3.field_1.1.1.field_3.2==83) && (a7.field_2.field_3.field_1.1.1.field_3.3==229))) && (a7.field_2.field_3.field_1.1.2==-0.328125) && (a7.field_2.field_3.field_1.1.3==`E_6_6)) && (a7.field_2.field_3.field_1.2==2541087240) && (((a7.field_2.field_3.field_1.3.field_1.field_1==0.875) && ((a7.field_2.field_3.field_1.3.field_1.field_2.0==4) && (a7.field_2.field_3.field_1.3.field_1.field_2.1==1.15625) && (a7.field_2.field_3.field_1.3.field_1.field_2.2==173) && (a7.field_2.field_3.field_1.3.field_1.field_2.3==8))) && ((a7.field_2.field_3.field_1.3.field_2.field_1==29310895783936) && (a7.field_2.field_3.field_1.3.field_2.field_2==92) && ((a7.field_2.field_3.field_1.3.field_2.field_3.0==250) && (a7.field_2.field_3.field_1.3.field_2.field_3.1==0.515625) && (a7.field_2.field_3.field_1.3.field_2.field_3.2==214) && (a7.field_2.field_3.field_1.3.field_2.field_3.3==236))) && ((a7.field_2.field_3.field_1.3.field_3.field_1==188538419019776) && (a7.field_2.field_3.field_1.3.field_3.field_2==16) && ((a7.field_2.field_3.field_1.3.field_3.field_3.0==92) && (a7.field_2.field_3.field_1.3.field_3.field_3.1==1.1875) && (a7.field_2.field_3.field_1.3.field_3.field_3.2==26) && (a7.field_2.field_3.field_1.3.field_3.field_3.3==72))))) && (a7.field_2.field_3.field_2==`E_19_9) && (a7.field_2.field_3.field_3==93123907813376) && (a7.field_2.field_3.field_4==`E_20_6) && (a7.field_2.field_3.field_5==`E_21_9) && ((a7.field_2.field_3.field_6.0==84919533043712) && (a7.field_2.field_3.field_6.1==2312961846))) && (a7.field_2.field_4==738749758)) && (((a7.field_3.field_1.0==`E_59_2) && (a7.field_3.field_1.1==0.671875) && ((a7.field_3.field_1.2.0==-0.01953125) && (a7.field_3.field_1.2.1==-1.171875) && (a7.field_3.field_1.2.2==30820079632384) && (a7.field_3.field_1.2.3==68216701976576))) && (a7.field_3.field_2==`E_21_7) && (a7.field_3.field_3==227) && (a7.field_3.field_4==`E_31_2)))
+ goto bad
+ ;;
+
+ if !(a8==`E_66_3)
+ goto bad
+ ;;
+
+ if !(a9==`E_67_3)
+ goto bad
+ ;;
+
+ if !(a10==2.06640625)
+ goto bad
+ ;;
+
+ -> 6316575686656
+
+:bad
+ -> 232898686615552
+}
+
+const fn_10_myr = { a1 : t74, a2 : flt32, a3 : t75, a4 : uint8, a5 : (uint64,t44,t76,t77), a6 : t79
+ if !(((a1.field_1.0==1.21875) && (a1.field_1.1==-0.890625) && (a1.field_1.2==`E_54_5) && (a1.field_1.3==-1.140625)) && ((a1.field_2.field_1==-2.86328125) && ((a1.field_2.field_2.field_1==272734424006656) && ((a1.field_2.field_2.field_2.0==168) && (a1.field_2.field_2.field_2.1==-0.3125) && (a1.field_2.field_2.field_2.2==7) && (a1.field_2.field_2.field_2.3==96)) && (a1.field_2.field_2.field_3==194650230882304) && (a1.field_2.field_2.field_4==1.3125)) && (a1.field_2.field_3==2832640246) && (a1.field_2.field_4==248902425116672) && (a1.field_2.field_5==3177491204) && (a1.field_2.field_6==`E_20_7)) && ((((a1.field_3.field_1.0.0==242) && (a1.field_3.field_1.0.1==1.0) && (a1.field_3.field_1.0.2==118) && (a1.field_3.field_1.0.3==202)) && ((a1.field_3.field_1.1.field_1==130511054045184) && (a1.field_3.field_1.1.field_2==60) && ((a1.field_3.field_1.1.field_3.0==149) && (a1.field_3.field_1.1.field_3.1==1.25) && (a1.field_3.field_1.1.field_3.2==209) && (a1.field_3.field_1.1.field_3.3==211)))) && (a1.field_3.field_2==65)) && (a1.field_4==`E_71_4) && (a1.field_5==`E_72_7) && ((a1.field_6.0==1065245434) && (a1.field_6.1==0.359375) && ((a1.field_6.2.0==182449277763584) && (a1.field_6.2.1==2003708228))))
+ goto bad
+ ;;
+
+ if !(a2==0.890625)
+ goto bad
+ ;;
+
+ if !(a3==`E_75_4)
+ goto bad
+ ;;
+
+ if !(a4==73)
+ goto bad
+ ;;
+
+ if !((a5.0==100724679639040) && ((a5.1.field_1==197606249070592) && (a5.1.field_2==0.3515625) && (a5.1.field_3==45) && (a5.1.field_4==111205168709632) && ((a5.1.field_5.0==`E_35_6) && (a5.1.field_5.1==168))) && (((((a5.2.field_1.field_1.field_1.0==273706513334272) && ((a5.2.field_1.field_1.field_1.1.field_1==0.625)) && ((a5.2.field_1.field_1.field_1.2.field_1==3.27734375) && (a5.2.field_1.field_1.field_1.2.field_2==`E_20_4) && (a5.2.field_1.field_1.field_1.2.field_3==`E_21_5) && ((a5.2.field_1.field_1.field_1.2.field_4.0==1.125) && ((a5.2.field_1.field_1.field_1.2.field_4.1.field_1==228193040859136) && (((a5.2.field_1.field_1.field_1.2.field_4.1.field_2.0.field_1==197736696643584) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_2.0.field_2==2597012506) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_2.0.field_3==181) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_2.0.field_4==213) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_2.0.field_5==107853796474880)) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_2.1==110) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_2.2==`E_6_2)) && (((a5.2.field_1.field_1.field_1.2.field_4.1.field_3.0.0==122) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_3.0.1==1.296875) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_3.0.2==218) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_3.0.3==48)) && ((a5.2.field_1.field_1.field_1.2.field_4.1.field_3.1.field_1==13448229421056) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_3.1.field_2==244) && ((a5.2.field_1.field_1.field_1.2.field_4.1.field_3.1.field_3.0==47) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_3.1.field_3.1==1.453125) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_3.1.field_3.2==167) && (a5.2.field_1.field_1.field_1.2.field_4.1.field_3.1.field_3.3==113))))) && (((a5.2.field_1.field_1.field_1.2.field_4.2.0.field_1==-0.5625) && ((a5.2.field_1.field_1.field_1.2.field_4.2.0.field_2.0==91) && (a5.2.field_1.field_1.field_1.2.field_4.2.0.field_2.1==1.53125) && (a5.2.field_1.field_1.field_1.2.field_4.2.0.field_2.2==127) && (a5.2.field_1.field_1.field_1.2.field_4.2.0.field_2.3==192))) && (a5.2.field_1.field_1.field_1.2.field_4.2.1==208774694567936) && (a5.2.field_1.field_1.field_1.2.field_4.2.2==-2.68359375)))) && ((a5.2.field_1.field_1.field_1.3.0==203837156753408) && (a5.2.field_1.field_1.field_1.3.1==124751440248832) && (a5.2.field_1.field_1.field_1.3.2==19))) && (a5.2.field_1.field_1.field_2==949240352) && ((a5.2.field_1.field_1.field_3.0==233) && (a5.2.field_1.field_1.field_3.1==3093393614)) && ((((a5.2.field_1.field_1.field_4.0.field_1.field_1==-1.46875) && ((a5.2.field_1.field_1.field_4.0.field_1.field_2.0==157) && (a5.2.field_1.field_1.field_4.0.field_1.field_2.1==-0.546875) && (a5.2.field_1.field_1.field_4.0.field_1.field_2.2==189) && (a5.2.field_1.field_1.field_4.0.field_1.field_2.3==115))) && ((a5.2.field_1.field_1.field_4.0.field_2.field_1==199305275375616) && (a5.2.field_1.field_1.field_4.0.field_2.field_2==43) && ((a5.2.field_1.field_1.field_4.0.field_2.field_3.0==171) && (a5.2.field_1.field_1.field_4.0.field_2.field_3.1==-0.984375) && (a5.2.field_1.field_1.field_4.0.field_2.field_3.2==22) && (a5.2.field_1.field_1.field_4.0.field_2.field_3.3==134))) && ((a5.2.field_1.field_1.field_4.0.field_3.field_1==105055744950272) && (a5.2.field_1.field_1.field_4.0.field_3.field_2==34) && ((a5.2.field_1.field_1.field_4.0.field_3.field_3.0==122) && (a5.2.field_1.field_1.field_4.0.field_3.field_3.1==0.1875) && (a5.2.field_1.field_1.field_4.0.field_3.field_3.2==25) && (a5.2.field_1.field_1.field_4.0.field_3.field_3.3==33)))) && ((a5.2.field_1.field_1.field_4.1.field_1==1198625914880) && (a5.2.field_1.field_1.field_4.1.field_2==107) && ((a5.2.field_1.field_1.field_4.1.field_3.0==125) && (a5.2.field_1.field_1.field_4.1.field_3.1==1.546875) && (a5.2.field_1.field_1.field_4.1.field_3.2==235) && (a5.2.field_1.field_1.field_4.1.field_3.3==61))) && (a5.2.field_1.field_1.field_4.2==0.734375) && (a5.2.field_1.field_1.field_4.3==`E_6_1)) && (a5.2.field_1.field_1.field_5==1.453125)) && (a5.2.field_1.field_2==763193548) && (a5.2.field_1.field_3==39) && (((a5.2.field_1.field_4.0.field_1==52338931924992) && (a5.2.field_1.field_4.0.field_2==391110206) && (a5.2.field_1.field_4.0.field_3==223) && (a5.2.field_1.field_4.0.field_4==55) && (a5.2.field_1.field_4.0.field_5==198983641202688)) && (a5.2.field_1.field_4.1==50) && (a5.2.field_1.field_4.2==`E_6_7))) && (a5.2.field_2==673599174)) && (((((a5.3.field_1.field_1.field_1.0==254957327745024) && ((a5.3.field_1.field_1.field_1.1.field_1==-1.171875)) && ((a5.3.field_1.field_1.field_1.2.field_1==2.5546875) && (a5.3.field_1.field_1.field_1.2.field_2==`E_20_1) && (a5.3.field_1.field_1.field_1.2.field_3==`E_21_2) && ((a5.3.field_1.field_1.field_1.2.field_4.0==-1.171875) && ((a5.3.field_1.field_1.field_1.2.field_4.1.field_1==130672052011008) && (((a5.3.field_1.field_1.field_1.2.field_4.1.field_2.0.field_1==97871770550272) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_2.0.field_2==3555186718) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_2.0.field_3==6) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_2.0.field_4==114) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_2.0.field_5==270228958085120)) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_2.1==7) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_2.2==`E_6_7)) && (((a5.3.field_1.field_1.field_1.2.field_4.1.field_3.0.0==114) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_3.0.1==-1.5) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_3.0.2==200) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_3.0.3==176)) && ((a5.3.field_1.field_1.field_1.2.field_4.1.field_3.1.field_1==212862159159296) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_3.1.field_2==220) && ((a5.3.field_1.field_1.field_1.2.field_4.1.field_3.1.field_3.0==167) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_3.1.field_3.1==1.359375) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_3.1.field_3.2==3) && (a5.3.field_1.field_1.field_1.2.field_4.1.field_3.1.field_3.3==215))))) && (((a5.3.field_1.field_1.field_1.2.field_4.2.0.field_1==-1.484375) && ((a5.3.field_1.field_1.field_1.2.field_4.2.0.field_2.0==226) && (a5.3.field_1.field_1.field_1.2.field_4.2.0.field_2.1==-1.390625) && (a5.3.field_1.field_1.field_1.2.field_4.2.0.field_2.2==187) && (a5.3.field_1.field_1.field_1.2.field_4.2.0.field_2.3==21))) && (a5.3.field_1.field_1.field_1.2.field_4.2.1==4365063815168) && (a5.3.field_1.field_1.field_1.2.field_4.2.2==3.0390625)))) && ((a5.3.field_1.field_1.field_1.3.0==278530325086209) && (a5.3.field_1.field_1.field_1.3.1==40351778734080) && (a5.3.field_1.field_1.field_1.3.2==183))) && (a5.3.field_1.field_1.field_2==345942008) && ((a5.3.field_1.field_1.field_3.0==91) && (a5.3.field_1.field_1.field_3.1==281298906)) && ((((a5.3.field_1.field_1.field_4.0.field_1.field_1==0.140625) && ((a5.3.field_1.field_1.field_4.0.field_1.field_2.0==180) && (a5.3.field_1.field_1.field_4.0.field_1.field_2.1==1.234375) && (a5.3.field_1.field_1.field_4.0.field_1.field_2.2==145) && (a5.3.field_1.field_1.field_4.0.field_1.field_2.3==38))) && ((a5.3.field_1.field_1.field_4.0.field_2.field_1==240181903360000) && (a5.3.field_1.field_1.field_4.0.field_2.field_2==153) && ((a5.3.field_1.field_1.field_4.0.field_2.field_3.0==4) && (a5.3.field_1.field_1.field_4.0.field_2.field_3.1==-0.625) && (a5.3.field_1.field_1.field_4.0.field_2.field_3.2==158) && (a5.3.field_1.field_1.field_4.0.field_2.field_3.3==204))) && ((a5.3.field_1.field_1.field_4.0.field_3.field_1==279255610818561) && (a5.3.field_1.field_1.field_4.0.field_3.field_2==96) && ((a5.3.field_1.field_1.field_4.0.field_3.field_3.0==169) && (a5.3.field_1.field_1.field_4.0.field_3.field_3.1==0.46875) && (a5.3.field_1.field_1.field_4.0.field_3.field_3.2==79) && (a5.3.field_1.field_1.field_4.0.field_3.field_3.3==172)))) && ((a5.3.field_1.field_1.field_4.1.field_1==137219642097664) && (a5.3.field_1.field_1.field_4.1.field_2==85) && ((a5.3.field_1.field_1.field_4.1.field_3.0==143) && (a5.3.field_1.field_1.field_4.1.field_3.1==0.140625) && (a5.3.field_1.field_1.field_4.1.field_3.2==17) && (a5.3.field_1.field_1.field_4.1.field_3.3==164))) && (a5.3.field_1.field_1.field_4.2==0.1875) && (a5.3.field_1.field_1.field_4.3==`E_6_7)) && (a5.3.field_1.field_1.field_5==0.421875)) && (a5.3.field_1.field_2==3026647616) && (a5.3.field_1.field_3==171) && (((a5.3.field_1.field_4.0.field_1==200920828215296) && (a5.3.field_1.field_4.0.field_2==266056950) && (a5.3.field_1.field_4.0.field_3==188) && (a5.3.field_1.field_4.0.field_4==66) && (a5.3.field_1.field_4.0.field_5==215864985649152)) && (a5.3.field_1.field_4.1==161) && (a5.3.field_1.field_4.2==`E_6_6))) && (a5.3.field_2==234) && (a5.3.field_3==-0.12890625) && (a5.3.field_4==109) && ((((a5.3.field_5.field_1.0.0==238) && (a5.3.field_5.field_1.0.1==0.890625) && (a5.3.field_5.field_1.0.2==11) && (a5.3.field_5.field_1.0.3==187)) && ((a5.3.field_5.field_1.1.field_1==218973062561792) && (a5.3.field_5.field_1.1.field_2==108) && ((a5.3.field_5.field_1.1.field_3.0==100) && (a5.3.field_5.field_1.1.field_3.1==-0.234375) && (a5.3.field_5.field_1.1.field_3.2==187) && (a5.3.field_5.field_1.1.field_3.3==17)))) && (a5.3.field_5.field_2==233)) && (a5.3.field_6==296769572)))
+ goto bad
+ ;;
+
+ if !(a6==`E_79_2)
+ goto bad
+ ;;
+
+ -> -1.515625
+
+:bad
+ -> -1.28125
+}
+
diff --git a/test/abi/005_main.myr b/test/abi/005_main.myr
new file mode 100644
index 0000000..3bff60d
--- /dev/null
+++ b/test/abi/005_main.myr
@@ -0,0 +1,180 @@
+/* seed = 1591521986 */
+use std
+use "005_types"
+use "005_in-myr"
+use "005_in-c"
+
+const main = {
+ /* myr calling myr */
+ var a_1_1 : t2 = [.field_1=0.0625,.field_2=(112,-0.625,110,44)]
+ var a_1_2 : uint32 = 2189228706
+ var a_1_3 : t4 = [.field_1=[.field_1=-0.84375,.field_2=(150,0.359375,172,26)],.field_2=[.field_1=241023379308544,.field_2=115,.field_3=(228,0.65625,247,84)],.field_3=[.field_1=3134223810560,.field_2=102,.field_3=(128,-1.21875,232,105)]]
+ var a_1_4 : t2 = [.field_1=-1.203125,.field_2=(110,0.6875,119,200)]
+ var a_1_5 : (t5,uint8,t6) = ([.field_1=94503966736384,.field_2=2770153426,.field_3=187,.field_4=214,.field_5=213410253897728],164,`E_6_2)
+ var a_1_6 : flt32 = 1.53125
+ var a_1_7 : flt64 = 1.3984375
+ var a_1_8 : (t4,t3,flt32,t6) = ([.field_1=[.field_1=0.578125,.field_2=(170,1.09375,193,148)],.field_2=[.field_1=271021012025344,.field_2=173,.field_3=(241,1.46875,80,71)],.field_3=[.field_1=86092233441280,.field_2=245,.field_3=(3,-1.125,183,168)]],[.field_1=110146554691584,.field_2=246,.field_3=(164,0.8125,164,89)],0.28125,`E_6_1)
+ var ret_1 : ((uint8,flt32,uint8,uint8),t3) = fn_1_myr(a_1_1, a_1_2, a_1_3, a_1_4, a_1_5, a_1_6, a_1_7, a_1_8)
+ if !(((ret_1.0.0==192) && (ret_1.0.1==-1.296875) && (ret_1.0.2==50) && (ret_1.0.3==129)) && ((ret_1.1.field_1==188458318561280) && (ret_1.1.field_2==40) && ((ret_1.1.field_3.0==47) && (ret_1.1.field_3.1==0.359375) && (ret_1.1.field_3.2==32) && (ret_1.1.field_3.3==127))))
+ std.put("myr_to_myr 1 failed\n")
+ std.exit(1)
+ ;;
+ var a_2_1 : (flt64,t10,(t2,uint64,flt64)) = (2.7734375,[.field_1=258260610842624,.field_2=([.field_1=67688764407808,.field_2=122501974,.field_3=122,.field_4=53,.field_5=46816349519872],175,`E_6_7),.field_3=((242,-0.828125,64,212),[.field_1=175981577109504,.field_2=146,.field_3=(58,-1.3125,81,249)])],([.field_1=-0.671875,.field_2=(39,1.3125,255,168)],5680861020160,3.1015625))
+ var a_2_2 : (flt32,(flt64,uint32,uint64,t4)) = (-0.65625,(-3.07421875,2364459620,34004063092736,[.field_1=[.field_1=0.734375,.field_2=(31,-0.46875,207,112)],.field_2=[.field_1=91868031090688,.field_2=24,.field_3=(152,-0.796875,24,64)],.field_3=[.field_1=74808418369536,.field_2=254,.field_3=(6,0.046875,73,208)]]))
+ var a_2_3 : (t5,uint8,t6) = ([.field_1=145965008551936,.field_2=2498931774,.field_3=156,.field_4=179,.field_5=265737065725952],244,`E_6_5)
+ var a_2_4 : flt32 = -0.796875
+ var a_2_5 : t15 = `E_15_4
+ var a_2_6 : (flt32,(flt64,uint32,uint64,t4)) = (0.6875,(-2.171875,1533036440,12142327889920,[.field_1=[.field_1=-0.5625,.field_2=(243,-0.65625,106,51)],.field_2=[.field_1=156078303608832,.field_2=104,.field_3=(58,-1.34375,178,10)],.field_3=[.field_1=140200370896896,.field_2=33,.field_3=(143,-1.3125,190,67)]]))
+ var a_2_7 : uint8 = 179
+ var ret_2 : (t16,flt32) = fn_2_myr(a_2_1, a_2_2, a_2_3, a_2_4, a_2_5, a_2_6, a_2_7)
+ if !(((ret_2.0.field_1==101589888270336) && ((ret_2.0.field_2.0==225) && (ret_2.0.field_2.1==-0.046875) && (ret_2.0.field_2.2==234) && (ret_2.0.field_2.3==74)) && (ret_2.0.field_3==200069064425472) && (ret_2.0.field_4==1.53125)) && (ret_2.1==1.53125))
+ std.put("myr_to_myr 2 failed\n")
+ std.exit(1)
+ ;;
+ var a_3_1 : t15 = `E_15_5
+ var a_3_2 : t23 = [.field_1=(([.field_1=208514472345600,.field_2=(171,0.53125,170,148),.field_3=137775610724352,.field_4=0.046875],-0.109375),([.field_1=[.field_1=-0.515625,.field_2=(130,0.5625,65,249)],.field_2=[.field_1=49920772014080,.field_2=137,.field_3=(81,-1.078125,187,244)],.field_3=[.field_1=238917205884928,.field_2=234,.field_3=(148,-0.65625,148,82)]],[.field_1=13348047552512,.field_2=206,.field_3=(236,-0.390625,159,22)],-1.203125,`E_6_3),3263768112,[.field_1=[.field_1=0.890625,.field_2=(223,-0.78125,76,85)],.field_2=[.field_1=165112780685312,.field_2=206,.field_3=(4,1.078125,200,49)],.field_3=[.field_1=107450067189760,.field_2=25,.field_3=(89,-1.203125,14,51)]]),.field_2=`E_19_1,.field_3=178689565917184,.field_4=`E_20_4,.field_5=`E_21_6,.field_6=(269113953746944,2315358406)]
+ var a_3_3 : t21 = `E_21_9
+ var a_3_4 : uint8 = 248
+ var a_3_5 : uint8 = 86
+ var a_3_6 : (uint64,t24,t25,(uint64,uint64,uint8)) = (85770339090432,[.field_1=-0.671875],[.field_1=-1.15234375,.field_2=`E_20_1,.field_3=`E_21_1,.field_4=(0.46875,[.field_1=3865086263296,.field_2=([.field_1=62745143410688,.field_2=444241798,.field_3=148,.field_4=38,.field_5=186451756843008],253,`E_6_6),.field_3=((106,0.875,169,132),[.field_1=193552010969088,.field_2=134,.field_3=(209,0.390625,6,157)])],([.field_1=-1.015625,.field_2=(122,1.40625,38,208)],55544454578176,-2.609375))],(33366908207104,136001504280576,132))
+ var ret_3 : uint32 = fn_3_myr(a_3_1, a_3_2, a_3_3, a_3_4, a_3_5, a_3_6)
+ if !(ret_3==2527618668)
+ std.put("myr_to_myr 3 failed\n")
+ std.exit(1)
+ ;;
+ var a_4_1 : ((t23,flt32,t6,flt64),(uint8,uint32)) = (([.field_1=(([.field_1=44445459546112,.field_2=(83,-0.453125,82,113),.field_3=235939541549056,.field_4=1.078125],0.3125),([.field_1=[.field_1=-0.234375,.field_2=(236,0.828125,60,26)],.field_2=[.field_1=143671663132672,.field_2=50,.field_3=(243,-0.796875,3,53)],.field_3=[.field_1=214366877515776,.field_2=126,.field_3=(252,1.453125,128,149)]],[.field_1=223779870998528,.field_2=137,.field_3=(203,0.953125,12,243)],1.453125,`E_6_3),1314332054,[.field_1=[.field_1=-0.671875,.field_2=(209,-1.125,32,106)],.field_2=[.field_1=160715212455936,.field_2=12,.field_3=(45,0.96875,39,176)],.field_3=[.field_1=2142336450560,.field_2=26,.field_3=(239,-1.5,80,178)]]),.field_2=`E_19_5,.field_3=84526311014400,.field_4=`E_20_6,.field_5=`E_21_1,.field_6=(248535774265344,1964811016)],0.1875,`E_6_5,-1.87109375),(155,2693759888))
+ var ret_4 : uint64 = fn_4_myr(a_4_1)
+ if !(ret_4==276275068796928)
+ std.put("myr_to_myr 4 failed\n")
+ std.exit(1)
+ ;;
+ var a_5_1 : (t31,t32) = (`E_31_3,`E_32_5)
+ var a_5_2 : (t32,uint8) = (`E_32_5,66)
+ var a_5_3 : (t35,uint8) = (`E_35_4,214)
+ var a_5_4 : t37 = `E_37_1
+ var a_5_5 : uint64 = 210077727850496
+ var ret_5 : flt64 = fn_5_myr(a_5_1, a_5_2, a_5_3, a_5_4, a_5_5)
+ if !(ret_5==-2.5234375)
+ std.put("myr_to_myr 5 failed\n")
+ std.exit(1)
+ ;;
+ var a_6_1 : t40 = [.field_1=([.field_1=[.field_1=0.71875,.field_2=(162,-1.375,12,208)],.field_2=[.field_1=208257259929600,.field_2=224,.field_3=(202,-0.015625,86,251)],.field_3=[.field_1=253976550440960,.field_2=123,.field_3=(146,0.828125,120,62)]],[.field_1=26298971062272,.field_2=103,.field_3=(239,1.28125,152,89)],0.734375,`E_6_3),.field_2=`E_6_1,.field_3=`E_38_6,.field_4=[.field_1=(152549047009280,[.field_1=0.859375],[.field_1=-3.7109375,.field_2=`E_20_7,.field_3=`E_21_5,.field_4=(1.26171875,[.field_1=257906686427136,.field_2=([.field_1=154973503488000,.field_2=2040012194,.field_3=167,.field_4=109,.field_5=74787062284288],39,`E_6_6),.field_3=((63,-1.390625,63,209),[.field_1=230983872282624,.field_2=184,.field_3=(15,1.296875,31,255)])],([.field_1=1.015625,.field_2=(183,-0.484375,142,16)],137163913822208,-2.80859375))],(170983975682048,72796805398528,42)),.field_2=1990287632,.field_3=(194,3552591666),.field_4=([.field_1=[.field_1=-0.375,.field_2=(79,-0.625,9,188)],.field_2=[.field_1=159828972142592,.field_2=48,.field_3=(128,1.0,62,192)],.field_3=[.field_1=179052505464832,.field_2=16,.field_3=(120,0.625,250,151)]],[.field_1=196274257788928,.field_2=205,.field_3=(79,-1.4375,91,96)],0.09375,`E_6_4),.field_5=1.515625],.field_5=2.265625]
+ var a_6_2 : t41 = `E_41_5
+ var a_6_3 : (t32,uint8) = (`E_32_8,203)
+ var a_6_4 : t42 = [.field_1=-1.58984375,.field_2=217,.field_3=3500137676,.field_4=101686982737920]
+ var a_6_5 : flt64 = 0.10546875
+ var a_6_6 : flt64 = 3.21875
+ var a_6_7 : uint64 = 40133181046784
+ var a_6_8 : uint64 = 71741835313152
+ var a_6_9 : (uint64,uint64,uint8) = (221313136459776,104460582912,149)
+ var ret_6 : t43 = fn_6_myr(a_6_1, a_6_2, a_6_3, a_6_4, a_6_5, a_6_6, a_6_7, a_6_8, a_6_9)
+ if !(ret_6==`E_43_1)
+ std.put("myr_to_myr 6 failed\n")
+ std.exit(1)
+ ;;
+ var a_7_1 : t48 = [.field_1=[.field_1=6386332991488,.field_2=-3.90625,.field_3=163,.field_4=155193554763776,.field_5=(`E_35_3,18)],.field_2=([.field_1=112229799297024,.field_2=-2.8984375,.field_3=216,.field_4=44483204612096,.field_5=(`E_35_2,195)],39665754832896,114,776337414),.field_3=`E_46_5,.field_4=146729052536832,.field_5=(((153,1.234375,43,174),[.field_1=26828980748288,.field_2=242,.field_3=(236,-1.078125,180,30)]),266092824363008),.field_6=(13831859994624,[.field_1=0.390625],[.field_1=0.0703125,.field_2=`E_20_1,.field_3=`E_21_6,.field_4=(-2.765625,[.field_1=175411747749888,.field_2=([.field_1=262729443049472,.field_2=932333724,.field_3=5,.field_4=16,.field_5=17637135220736],46,`E_6_2),.field_3=((211,-0.5625,171,1),[.field_1=12764915826688,.field_2=49,.field_3=(154,1.375,93,73)])],([.field_1=-1.46875,.field_2=(79,-0.90625,49,4)],93216219463680,-2.83203125))],(18454498639872,269237052506112,165))]
+ var ret_7 : uint32 = fn_7_myr(a_7_1)
+ if !(ret_7==2499773006)
+ std.put("myr_to_myr 7 failed\n")
+ std.exit(1)
+ ;;
+ var a_8_1 : (uint8,flt32,uint8,uint8) = (200,0.25,18,246)
+ var a_8_2 : (flt32,t44,flt64,t49) = (-0.734375,[.field_1=8592161505280,.field_2=2.32421875,.field_3=77,.field_4=95804356820992,.field_5=(`E_35_1,126)],-1.12109375,`E_49_3)
+ var a_8_3 : t51 = `E_51_3
+ var a_8_4 : flt32 = 0.1875
+ var a_8_5 : t52 = [.field_1=-0.81640625]
+ var a_8_6 : uint32 = 441584498
+ var a_8_7 : t53 = [.field_1=198]
+ var a_8_8 : uint8 = 89
+ var ret_8 : flt32 = fn_8_myr(a_8_1, a_8_2, a_8_3, a_8_4, a_8_5, a_8_6, a_8_7, a_8_8)
+ if !(ret_8==1.421875)
+ std.put("myr_to_myr 8 failed\n")
+ std.exit(1)
+ ;;
+ var a_9_1 : t51 = `E_51_8
+ var a_9_2 : flt32 = -0.796875
+ var a_9_3 : flt32 = -0.71875
+ var a_9_4 : (t54,uint8,t55) = (`E_54_7,255,[.field_1=[.field_1=(130105287114752,[.field_1=-1.0],[.field_1=3.53125,.field_2=`E_20_2,.field_3=`E_21_1,.field_4=(-0.67578125,[.field_1=23617654620160,.field_2=([.field_1=12594182750208,.field_2=2889081194,.field_3=84,.field_4=84,.field_5=265251503210496],17,`E_6_7),.field_3=((141,-0.1875,10,118),[.field_1=24302215233536,.field_2=170,.field_3=(64,0.953125,156,112)])],([.field_1=0.3125,.field_2=(168,0.3125,140,197)],149682231705600,0.3828125))],(66190105247744,201243456045056,128)),.field_2=1608787508,.field_3=(208,3925244758),.field_4=([.field_1=[.field_1=-0.125,.field_2=(219,0.265625,201,48)],.field_2=[.field_1=148885215510528,.field_2=219,.field_3=(41,-1.3125,75,52)],.field_3=[.field_1=153670362464256,.field_2=97,.field_3=(222,0.9375,47,122)]],[.field_1=66828912033792,.field_2=201,.field_3=(35,1.046875,86,233)],-0.421875,`E_6_7),.field_5=-1.109375],.field_2=350527626,.field_3=98,.field_4=([.field_1=146849136115712,.field_2=3845172994,.field_3=76,.field_4=250,.field_5=212141542211584],227,`E_6_6)])
+ var a_9_5 : t58 = [.field_1=`E_57_1,.field_2=[.field_1=77],.field_3=-2.5]
+ var a_9_6 : (t59,flt32,(flt64,flt32,uint64,uint64)) = (`E_59_2,-0.984375,(-1.09375,-1.53125,20793480314880,36073398206464))
+ var a_9_7 : t65 = [.field_1=(-2.32421875,208),.field_2=[.field_1=-0.0625,.field_2=(((224,-0.984375,131,218),[.field_1=209069555974144,.field_2=100,.field_3=(82,1.4375,89,16)]),273030717767680),.field_3=[.field_1=(([.field_1=62938097254400,.field_2=(107,0.609375,97,70),.field_3=77561457147904,.field_4=1.265625],-1.515625),([.field_1=[.field_1=-0.828125,.field_2=(174,1.390625,142,121)],.field_2=[.field_1=266278944636928,.field_2=1,.field_3=(57,-0.1875,53,10)],.field_3=[.field_1=258630503497728,.field_2=22,.field_3=(58,-0.203125,241,248)]],[.field_1=232005730828288,.field_2=67,.field_3=(237,-1.03125,83,229)],-0.328125,`E_6_6),2541087240,[.field_1=[.field_1=0.875,.field_2=(4,1.15625,173,8)],.field_2=[.field_1=29310895783936,.field_2=92,.field_3=(250,0.515625,214,236)],.field_3=[.field_1=188538419019776,.field_2=16,.field_3=(92,1.1875,26,72)]]),.field_2=`E_19_9,.field_3=93123907813376,.field_4=`E_20_6,.field_5=`E_21_9,.field_6=(84919533043712,2312961846)],.field_4=738749758],.field_3=[.field_1=(`E_59_2,0.671875,(-0.01953125,-1.171875,30820079632384,68216701976576)),.field_2=`E_21_7,.field_3=227,.field_4=`E_31_2]]
+ var a_9_8 : t66 = `E_66_3
+ var a_9_9 : t67 = `E_67_3
+ var a_9_10 : flt64 = 2.06640625
+ var ret_9 : uint64 = fn_9_myr(a_9_1, a_9_2, a_9_3, a_9_4, a_9_5, a_9_6, a_9_7, a_9_8, a_9_9, a_9_10)
+ if !(ret_9==6316575686656)
+ std.put("myr_to_myr 9 failed\n")
+ std.exit(1)
+ ;;
+ var a_10_1 : t74 = [.field_1=(1.21875,-0.890625,`E_54_5,-1.140625),.field_2=[.field_1=-2.86328125,.field_2=[.field_1=272734424006656,.field_2=(168,-0.3125,7,96),.field_3=194650230882304,.field_4=1.3125],.field_3=2832640246,.field_4=248902425116672,.field_5=3177491204,.field_6=`E_20_7],.field_3=[.field_1=((242,1.0,118,202),[.field_1=130511054045184,.field_2=60,.field_3=(149,1.25,209,211)]),.field_2=65],.field_4=`E_71_4,.field_5=`E_72_7,.field_6=(1065245434,0.359375,(182449277763584,2003708228))]
+ var a_10_2 : flt32 = 0.890625
+ var a_10_3 : t75 = `E_75_4
+ var a_10_4 : uint8 = 73
+ var a_10_5 : (uint64,t44,t76,t77) = (100724679639040,[.field_1=197606249070592,.field_2=0.3515625,.field_3=45,.field_4=111205168709632,.field_5=(`E_35_6,168)],[.field_1=[.field_1=[.field_1=(273706513334272,[.field_1=0.625],[.field_1=3.27734375,.field_2=`E_20_4,.field_3=`E_21_5,.field_4=(1.125,[.field_1=228193040859136,.field_2=([.field_1=197736696643584,.field_2=2597012506,.field_3=181,.field_4=213,.field_5=107853796474880],110,`E_6_2),.field_3=((122,1.296875,218,48),[.field_1=13448229421056,.field_2=244,.field_3=(47,1.453125,167,113)])],([.field_1=-0.5625,.field_2=(91,1.53125,127,192)],208774694567936,-2.68359375))],(203837156753408,124751440248832,19)),.field_2=949240352,.field_3=(233,3093393614),.field_4=([.field_1=[.field_1=-1.46875,.field_2=(157,-0.546875,189,115)],.field_2=[.field_1=199305275375616,.field_2=43,.field_3=(171,-0.984375,22,134)],.field_3=[.field_1=105055744950272,.field_2=34,.field_3=(122,0.1875,25,33)]],[.field_1=1198625914880,.field_2=107,.field_3=(125,1.546875,235,61)],0.734375,`E_6_1),.field_5=1.453125],.field_2=763193548,.field_3=39,.field_4=([.field_1=52338931924992,.field_2=391110206,.field_3=223,.field_4=55,.field_5=198983641202688],50,`E_6_7)],.field_2=673599174],[.field_1=[.field_1=[.field_1=(254957327745024,[.field_1=-1.171875],[.field_1=2.5546875,.field_2=`E_20_1,.field_3=`E_21_2,.field_4=(-1.171875,[.field_1=130672052011008,.field_2=([.field_1=97871770550272,.field_2=3555186718,.field_3=6,.field_4=114,.field_5=270228958085120],7,`E_6_7),.field_3=((114,-1.5,200,176),[.field_1=212862159159296,.field_2=220,.field_3=(167,1.359375,3,215)])],([.field_1=-1.484375,.field_2=(226,-1.390625,187,21)],4365063815168,3.0390625))],(278530325086209,40351778734080,183)),.field_2=345942008,.field_3=(91,281298906),.field_4=([.field_1=[.field_1=0.140625,.field_2=(180,1.234375,145,38)],.field_2=[.field_1=240181903360000,.field_2=153,.field_3=(4,-0.625,158,204)],.field_3=[.field_1=279255610818561,.field_2=96,.field_3=(169,0.46875,79,172)]],[.field_1=137219642097664,.field_2=85,.field_3=(143,0.140625,17,164)],0.1875,`E_6_7),.field_5=0.421875],.field_2=3026647616,.field_3=171,.field_4=([.field_1=200920828215296,.field_2=266056950,.field_3=188,.field_4=66,.field_5=215864985649152],161,`E_6_6)],.field_2=234,.field_3=-0.12890625,.field_4=109,.field_5=[.field_1=((238,0.890625,11,187),[.field_1=218973062561792,.field_2=108,.field_3=(100,-0.234375,187,17)]),.field_2=233],.field_6=296769572])
+ var a_10_6 : t79 = `E_79_2
+ var ret_10 : flt32 = fn_10_myr(a_10_1, a_10_2, a_10_3, a_10_4, a_10_5, a_10_6)
+ if !(ret_10==-1.515625)
+ std.put("myr_to_myr 10 failed\n")
+ std.exit(1)
+ ;;
+
+ /* myr calling c */
+ ret_1 = fn_1_c(a_1_1, a_1_2, a_1_3, a_1_4, a_1_5, a_1_6, a_1_7, a_1_8)
+ if !(((ret_1.0.0==192) && (ret_1.0.1==-1.296875) && (ret_1.0.2==50) && (ret_1.0.3==129)) && ((ret_1.1.field_1==188458318561280) && (ret_1.1.field_2==40) && ((ret_1.1.field_3.0==47) && (ret_1.1.field_3.1==0.359375) && (ret_1.1.field_3.2==32) && (ret_1.1.field_3.3==127))))
+ std.put("myr_to_c 1 failed\n")
+ std.exit(1)
+ ;;
+ ret_2 = fn_2_c(a_2_1, a_2_2, a_2_3, a_2_4, a_2_5, a_2_6, a_2_7)
+ if !(((ret_2.0.field_1==101589888270336) && ((ret_2.0.field_2.0==225) && (ret_2.0.field_2.1==-0.046875) && (ret_2.0.field_2.2==234) && (ret_2.0.field_2.3==74)) && (ret_2.0.field_3==200069064425472) && (ret_2.0.field_4==1.53125)) && (ret_2.1==1.53125))
+ std.put("myr_to_c 2 failed\n")
+ std.exit(1)
+ ;;
+ ret_3 = fn_3_c(a_3_1, a_3_2, a_3_3, a_3_4, a_3_5, a_3_6)
+ if !(ret_3==2527618668)
+ std.put("myr_to_c 3 failed\n")
+ std.exit(1)
+ ;;
+ ret_4 = fn_4_c(a_4_1)
+ if !(ret_4==276275068796928)
+ std.put("myr_to_c 4 failed\n")
+ std.exit(1)
+ ;;
+ ret_5 = fn_5_c(a_5_1, a_5_2, a_5_3, a_5_4, a_5_5)
+ if !(ret_5==-2.5234375)
+ std.put("myr_to_c 5 failed\n")
+ std.exit(1)
+ ;;
+ ret_6 = fn_6_c(a_6_1, a_6_2, a_6_3, a_6_4, a_6_5, a_6_6, a_6_7, a_6_8, a_6_9)
+ if !(ret_6==`E_43_1)
+ std.put("myr_to_c 6 failed\n")
+ std.exit(1)
+ ;;
+ ret_7 = fn_7_c(a_7_1)
+ if !(ret_7==2499773006)
+ std.put("myr_to_c 7 failed\n")
+ std.exit(1)
+ ;;
+ ret_8 = fn_8_c(a_8_1, a_8_2, a_8_3, a_8_4, a_8_5, a_8_6, a_8_7, a_8_8)
+ if !(ret_8==1.421875)
+ std.put("myr_to_c 8 failed\n")
+ std.exit(1)
+ ;;
+ ret_9 = fn_9_c(a_9_1, a_9_2, a_9_3, a_9_4, a_9_5, a_9_6, a_9_7, a_9_8, a_9_9, a_9_10)
+ if !(ret_9==6316575686656)
+ std.put("myr_to_c 9 failed\n")
+ std.exit(1)
+ ;;
+ ret_10 = fn_10_c(a_10_1, a_10_2, a_10_3, a_10_4, a_10_5, a_10_6)
+ if !(ret_10==-1.515625)
+ std.put("myr_to_c 10 failed\n")
+ std.exit(1)
+ ;;
+
+ /* c calling myr */
+ if check_c_to_myr_fns() != 0
+ std.put("c_to_myr failed\n")
+ std.exit(1)
+ ;;
+
+ std.exit(0)
+}
diff --git a/test/abi/005_types.h b/test/abi/005_types.h
new file mode 100644
index 0000000..6d7b3c8
--- /dev/null
+++ b/test/abi/005_types.h
@@ -0,0 +1,79 @@
+typedef struct {uint8_t field_1;float field_2;uint8_t field_3;uint8_t field_4;} t1;
+typedef struct {float field_1;t1 field_2;} t2;
+typedef struct {uint64_t field_1;uint8_t field_2;t1 field_3;} t3;
+typedef struct {t2 field_1;t3 field_2;t3 field_3;} t4;
+typedef struct {uint64_t field_1;uint32_t field_2;uint8_t field_3;uint8_t field_4;uint64_t field_5;} t5;
+typedef enum {E_6_1,E_6_2,E_6_3,E_6_4,E_6_5,E_6_6,E_6_7,} t6;
+typedef struct {t5 field_1;uint8_t field_2;t6 field_3;} t7;
+typedef struct {t4 field_1;t3 field_2;float field_3;t6 field_4;} t8;
+typedef struct {t1 field_1;t3 field_2;} t9;
+typedef struct {uint64_t field_1;t7 field_2;t9 field_3;} t10;
+typedef struct {t2 field_1;uint64_t field_2;double field_3;} t11;
+typedef struct {double field_1;t10 field_2;t11 field_3;} t12;
+typedef struct {double field_1;uint32_t field_2;uint64_t field_3;t4 field_4;} t13;
+typedef struct {float field_1;t13 field_2;} t14;
+typedef enum {E_15_1,E_15_2,E_15_3,E_15_4,E_15_5,E_15_6,E_15_7,E_15_8,E_15_9,} t15;
+typedef struct {uint64_t field_1;t1 field_2;uint64_t field_3;float field_4;} t16;
+typedef struct {t16 field_1;float field_2;} t17;
+typedef struct {t17 field_1;t8 field_2;uint32_t field_3;t4 field_4;} t18;
+typedef enum {E_19_1,E_19_2,E_19_3,E_19_4,E_19_5,E_19_6,E_19_7,E_19_8,E_19_9,} t19;
+typedef enum {E_20_1,E_20_2,E_20_3,E_20_4,E_20_5,E_20_6,E_20_7,E_20_8,} t20;
+typedef enum {E_21_1,E_21_2,E_21_3,E_21_4,E_21_5,E_21_6,E_21_7,E_21_8,E_21_9,} t21;
+typedef struct {uint64_t field_1;uint32_t field_2;} t22;
+typedef struct {t18 field_1;t19 field_2;uint64_t field_3;t20 field_4;t21 field_5;t22 field_6;} t23;
+typedef struct {float field_1;} t24;
+typedef struct {double field_1;t20 field_2;t21 field_3;t12 field_4;} t25;
+typedef struct {uint64_t field_1;uint64_t field_2;uint8_t field_3;} t26;
+typedef struct {uint64_t field_1;t24 field_2;t25 field_3;t26 field_4;} t27;
+typedef struct {t23 field_1;float field_2;t6 field_3;double field_4;} t28;
+typedef struct {uint8_t field_1;uint32_t field_2;} t29;
+typedef struct {t28 field_1;t29 field_2;} t30;
+typedef enum {E_31_1,E_31_2,E_31_3,E_31_4,E_31_5,E_31_6,E_31_7,} t31;
+typedef enum {E_32_1,E_32_2,E_32_3,E_32_4,E_32_5,E_32_6,E_32_7,E_32_8,E_32_9,} t32;
+typedef struct {t31 field_1;t32 field_2;} t33;
+typedef struct {t32 field_1;uint8_t field_2;} t34;
+typedef enum {E_35_1,E_35_2,E_35_3,E_35_4,E_35_5,E_35_6,E_35_7,} t35;
+typedef struct {t35 field_1;uint8_t field_2;} t36;
+typedef enum {E_37_1,E_37_2,E_37_3,E_37_4,E_37_5,E_37_6,} t37;
+typedef enum {E_38_1,E_38_2,E_38_3,E_38_4,E_38_5,E_38_6,E_38_7,E_38_8,E_38_9,E_38_10,} t38;
+typedef struct {t27 field_1;uint32_t field_2;t29 field_3;t8 field_4;float field_5;} t39;
+typedef struct {t8 field_1;t6 field_2;t38 field_3;t39 field_4;double field_5;} t40;
+typedef enum {E_41_1,E_41_2,E_41_3,E_41_4,E_41_5,E_41_6,E_41_7,E_41_8,} t41;
+typedef struct {double field_1;uint8_t field_2;uint32_t field_3;uint64_t field_4;} t42;
+typedef enum {E_43_1,E_43_2,E_43_3,E_43_4,E_43_5,E_43_6,E_43_7,E_43_8,E_43_9,} t43;
+typedef struct {uint64_t field_1;double field_2;uint8_t field_3;uint64_t field_4;t36 field_5;} t44;
+typedef struct {t44 field_1;uint64_t field_2;uint8_t field_3;uint32_t field_4;} t45;
+typedef enum {E_46_1,E_46_2,E_46_3,E_46_4,E_46_5,E_46_6,} t46;
+typedef struct {t9 field_1;uint64_t field_2;} t47;
+typedef struct {t44 field_1;t45 field_2;t46 field_3;uint64_t field_4;t47 field_5;t27 field_6;} t48;
+typedef enum {E_49_1,E_49_2,E_49_3,E_49_4,E_49_5,E_49_6,E_49_7,E_49_8,} t49;
+typedef struct {float field_1;t44 field_2;double field_3;t49 field_4;} t50;
+typedef enum {E_51_1,E_51_2,E_51_3,E_51_4,E_51_5,E_51_6,E_51_7,E_51_8,} t51;
+typedef struct {double field_1;} t52;
+typedef struct {uint8_t field_1;} t53;
+typedef enum {E_54_1,E_54_2,E_54_3,E_54_4,E_54_5,E_54_6,E_54_7,} t54;
+typedef struct {t39 field_1;uint32_t field_2;uint8_t field_3;t7 field_4;} t55;
+typedef struct {t54 field_1;uint8_t field_2;t55 field_3;} t56;
+typedef enum {E_57_1,E_57_2,E_57_3,E_57_4,E_57_5,E_57_6,} t57;
+typedef struct {t57 field_1;t53 field_2;double field_3;} t58;
+typedef enum {E_59_1,E_59_2,E_59_3,E_59_4,E_59_5,E_59_6,} t59;
+typedef struct {double field_1;float field_2;uint64_t field_3;uint64_t field_4;} t60;
+typedef struct {t59 field_1;float field_2;t60 field_3;} t61;
+typedef struct {double field_1;uint8_t field_2;} t62;
+typedef struct {float field_1;t47 field_2;t23 field_3;uint32_t field_4;} t63;
+typedef struct {t61 field_1;t21 field_2;uint8_t field_3;t31 field_4;} t64;
+typedef struct {t62 field_1;t63 field_2;t64 field_3;} t65;
+typedef enum {E_66_1,E_66_2,E_66_3,E_66_4,E_66_5,E_66_6,E_66_7,E_66_8,} t66;
+typedef enum {E_67_1,E_67_2,E_67_3,E_67_4,E_67_5,E_67_6,E_67_7,E_67_8,E_67_9,E_67_10,} t67;
+typedef struct {float field_1;float field_2;t54 field_3;float field_4;} t68;
+typedef struct {double field_1;t16 field_2;uint32_t field_3;uint64_t field_4;uint32_t field_5;t20 field_6;} t69;
+typedef struct {t9 field_1;uint8_t field_2;} t70;
+typedef enum {E_71_1,E_71_2,E_71_3,E_71_4,E_71_5,E_71_6,E_71_7,E_71_8,E_71_9,E_71_10,} t71;
+typedef enum {E_72_1,E_72_2,E_72_3,E_72_4,E_72_5,E_72_6,E_72_7,E_72_8,E_72_9,} t72;
+typedef struct {uint32_t field_1;float field_2;t22 field_3;} t73;
+typedef struct {t68 field_1;t69 field_2;t70 field_3;t71 field_4;t72 field_5;t73 field_6;} t74;
+typedef enum {E_75_1,E_75_2,E_75_3,E_75_4,E_75_5,E_75_6,E_75_7,} t75;
+typedef struct {t55 field_1;uint32_t field_2;} t76;
+typedef struct {t55 field_1;uint8_t field_2;double field_3;uint8_t field_4;t70 field_5;uint32_t field_6;} t77;
+typedef struct {uint64_t field_1;t44 field_2;t76 field_3;t77 field_4;} t78;
+typedef enum {E_79_1,E_79_2,E_79_3,E_79_4,E_79_5,E_79_6,E_79_7,E_79_8,} t79;
diff --git a/test/abi/005_types.myr b/test/abi/005_types.myr
new file mode 100644
index 0000000..361859a
--- /dev/null
+++ b/test/abi/005_types.myr
@@ -0,0 +1,420 @@
+pkg =
+
+type t2 = struct
+field_1 : flt32
+field_2 : (uint8,flt32,uint8,uint8)
+;;
+type t3 = struct
+field_1 : uint64
+field_2 : uint8
+field_3 : (uint8,flt32,uint8,uint8)
+;;
+type t4 = struct
+field_1 : t2
+field_2 : t3
+field_3 : t3
+;;
+type t5 = struct
+field_1 : uint64
+field_2 : uint32
+field_3 : uint8
+field_4 : uint8
+field_5 : uint64
+;;
+type t6 = union
+`E_6_1
+`E_6_2
+`E_6_3
+`E_6_4
+`E_6_5
+`E_6_6
+`E_6_7
+;;
+
+
+
+type t10 = struct
+field_1 : uint64
+field_2 : (t5,uint8,t6)
+field_3 : ((uint8,flt32,uint8,uint8),t3)
+;;
+
+
+
+
+type t15 = union
+`E_15_1
+`E_15_2
+`E_15_3
+`E_15_4
+`E_15_5
+`E_15_6
+`E_15_7
+`E_15_8
+`E_15_9
+;;
+type t16 = struct
+field_1 : uint64
+field_2 : (uint8,flt32,uint8,uint8)
+field_3 : uint64
+field_4 : flt32
+;;
+
+
+type t19 = union
+`E_19_1
+`E_19_2
+`E_19_3
+`E_19_4
+`E_19_5
+`E_19_6
+`E_19_7
+`E_19_8
+`E_19_9
+;;
+type t20 = union
+`E_20_1
+`E_20_2
+`E_20_3
+`E_20_4
+`E_20_5
+`E_20_6
+`E_20_7
+`E_20_8
+;;
+type t21 = union
+`E_21_1
+`E_21_2
+`E_21_3
+`E_21_4
+`E_21_5
+`E_21_6
+`E_21_7
+`E_21_8
+`E_21_9
+;;
+
+type t23 = struct
+field_1 : ((t16,flt32),(t4,t3,flt32,t6),uint32,t4)
+field_2 : t19
+field_3 : uint64
+field_4 : t20
+field_5 : t21
+field_6 : (uint64,uint32)
+;;
+type t24 = struct
+field_1 : flt32
+;;
+type t25 = struct
+field_1 : flt64
+field_2 : t20
+field_3 : t21
+field_4 : (flt64,t10,(t2,uint64,flt64))
+;;
+
+
+
+
+
+type t31 = union
+`E_31_1
+`E_31_2
+`E_31_3
+`E_31_4
+`E_31_5
+`E_31_6
+`E_31_7
+;;
+type t32 = union
+`E_32_1
+`E_32_2
+`E_32_3
+`E_32_4
+`E_32_5
+`E_32_6
+`E_32_7
+`E_32_8
+`E_32_9
+;;
+
+
+type t35 = union
+`E_35_1
+`E_35_2
+`E_35_3
+`E_35_4
+`E_35_5
+`E_35_6
+`E_35_7
+;;
+
+type t37 = union
+`E_37_1
+`E_37_2
+`E_37_3
+`E_37_4
+`E_37_5
+`E_37_6
+;;
+type t38 = union
+`E_38_1
+`E_38_2
+`E_38_3
+`E_38_4
+`E_38_5
+`E_38_6
+`E_38_7
+`E_38_8
+`E_38_9
+`E_38_10
+;;
+type t39 = struct
+field_1 : (uint64,t24,t25,(uint64,uint64,uint8))
+field_2 : uint32
+field_3 : (uint8,uint32)
+field_4 : (t4,t3,flt32,t6)
+field_5 : flt32
+;;
+type t40 = struct
+field_1 : (t4,t3,flt32,t6)
+field_2 : t6
+field_3 : t38
+field_4 : t39
+field_5 : flt64
+;;
+type t41 = union
+`E_41_1
+`E_41_2
+`E_41_3
+`E_41_4
+`E_41_5
+`E_41_6
+`E_41_7
+`E_41_8
+;;
+type t42 = struct
+field_1 : flt64
+field_2 : uint8
+field_3 : uint32
+field_4 : uint64
+;;
+type t43 = union
+`E_43_1
+`E_43_2
+`E_43_3
+`E_43_4
+`E_43_5
+`E_43_6
+`E_43_7
+`E_43_8
+`E_43_9
+;;
+type t44 = struct
+field_1 : uint64
+field_2 : flt64
+field_3 : uint8
+field_4 : uint64
+field_5 : (t35,uint8)
+;;
+
+type t46 = union
+`E_46_1
+`E_46_2
+`E_46_3
+`E_46_4
+`E_46_5
+`E_46_6
+;;
+
+type t48 = struct
+field_1 : t44
+field_2 : (t44,uint64,uint8,uint32)
+field_3 : t46
+field_4 : uint64
+field_5 : (((uint8,flt32,uint8,uint8),t3),uint64)
+field_6 : (uint64,t24,t25,(uint64,uint64,uint8))
+;;
+type t49 = union
+`E_49_1
+`E_49_2
+`E_49_3
+`E_49_4
+`E_49_5
+`E_49_6
+`E_49_7
+`E_49_8
+;;
+
+type t51 = union
+`E_51_1
+`E_51_2
+`E_51_3
+`E_51_4
+`E_51_5
+`E_51_6
+`E_51_7
+`E_51_8
+;;
+type t52 = struct
+field_1 : flt64
+;;
+type t53 = struct
+field_1 : uint8
+;;
+type t54 = union
+`E_54_1
+`E_54_2
+`E_54_3
+`E_54_4
+`E_54_5
+`E_54_6
+`E_54_7
+;;
+type t55 = struct
+field_1 : t39
+field_2 : uint32
+field_3 : uint8
+field_4 : (t5,uint8,t6)
+;;
+
+type t57 = union
+`E_57_1
+`E_57_2
+`E_57_3
+`E_57_4
+`E_57_5
+`E_57_6
+;;
+type t58 = struct
+field_1 : t57
+field_2 : t53
+field_3 : flt64
+;;
+type t59 = union
+`E_59_1
+`E_59_2
+`E_59_3
+`E_59_4
+`E_59_5
+`E_59_6
+;;
+
+
+
+type t63 = struct
+field_1 : flt32
+field_2 : (((uint8,flt32,uint8,uint8),t3),uint64)
+field_3 : t23
+field_4 : uint32
+;;
+type t64 = struct
+field_1 : (t59,flt32,(flt64,flt32,uint64,uint64))
+field_2 : t21
+field_3 : uint8
+field_4 : t31
+;;
+type t65 = struct
+field_1 : (flt64,uint8)
+field_2 : t63
+field_3 : t64
+;;
+type t66 = union
+`E_66_1
+`E_66_2
+`E_66_3
+`E_66_4
+`E_66_5
+`E_66_6
+`E_66_7
+`E_66_8
+;;
+type t67 = union
+`E_67_1
+`E_67_2
+`E_67_3
+`E_67_4
+`E_67_5
+`E_67_6
+`E_67_7
+`E_67_8
+`E_67_9
+`E_67_10
+;;
+
+type t69 = struct
+field_1 : flt64
+field_2 : t16
+field_3 : uint32
+field_4 : uint64
+field_5 : uint32
+field_6 : t20
+;;
+type t70 = struct
+field_1 : ((uint8,flt32,uint8,uint8),t3)
+field_2 : uint8
+;;
+type t71 = union
+`E_71_1
+`E_71_2
+`E_71_3
+`E_71_4
+`E_71_5
+`E_71_6
+`E_71_7
+`E_71_8
+`E_71_9
+`E_71_10
+;;
+type t72 = union
+`E_72_1
+`E_72_2
+`E_72_3
+`E_72_4
+`E_72_5
+`E_72_6
+`E_72_7
+`E_72_8
+`E_72_9
+;;
+
+type t74 = struct
+field_1 : (flt32,flt32,t54,flt32)
+field_2 : t69
+field_3 : t70
+field_4 : t71
+field_5 : t72
+field_6 : (uint32,flt32,(uint64,uint32))
+;;
+type t75 = union
+`E_75_1
+`E_75_2
+`E_75_3
+`E_75_4
+`E_75_5
+`E_75_6
+`E_75_7
+;;
+type t76 = struct
+field_1 : t55
+field_2 : uint32
+;;
+type t77 = struct
+field_1 : t55
+field_2 : uint8
+field_3 : flt64
+field_4 : uint8
+field_5 : t70
+field_6 : uint32
+;;
+
+type t79 = union
+`E_79_1
+`E_79_2
+`E_79_3
+`E_79_4
+`E_79_5
+`E_79_6
+`E_79_7
+`E_79_8
+;;
+;;
diff --git a/test/abi/006_in-c.glue.c b/test/abi/006_in-c.glue.c
new file mode 100644
index 0000000..53254c3
--- /dev/null
+++ b/test/abi/006_in-c.glue.c
@@ -0,0 +1,913 @@
+/* CFLAGS: -I/usr/include/ */
+/* CFLAGS: -I/usr/include */
+/* LIBS: c */
+
+#include <stdint.h>
+#include "006_types.h"
+
+extern t7 fn_1_myr(uint32_t a1, t3 a2, t2 a3, float a4, uint8_t a5);
+extern float fn_2_myr(t7 a1, t8 a2, t12 a3, double a4, t15 a5, t13 a6, uint32_t a7);
+extern float fn_3_myr(t5 a1, t15 a2, t16 a3, t16 a4, uint64_t a5, t17 a6, t12 a7);
+extern t2 fn_4_myr(t1 a1, t21 a2, t23 a3, double a4, t6 a5, uint64_t a6, double a7);
+extern t3 fn_5_myr(uint32_t a1, t24 a2, double a3, t25 a4, uint64_t a5, t28 a6);
+extern double fn_6_myr(t29 a1, t8 a2, t33 a3, t5 a4, uint32_t a5, float a6, t11 a7, t36 a8, t16 a9, t37 a10);
+extern double fn_7_myr(uint64_t a1, t38 a2, uint8_t a3, t40 a4, t42 a5, t43 a6, uint8_t a7);
+extern t44 fn_8_myr(void);
+extern t53 fn_9_myr(t45 a1, t46 a2, t45 a3, t47 a4, t48 a5, float a6, double a7, uint8_t a8, uint64_t a9, t49 a10);
+extern float fn_10_myr(float a1, t55 a2, t43 a3);
+extern uint32_t fn_11_myr(t40 a1, uint64_t a2, t59 a3);
+extern uint32_t fn_12_myr(t63 a1, double a2, uint32_t a3, t68 a4);
+extern t74 fn_13_myr(t26 a1, uint32_t a2, t70 a3, double a4, t73 a5);
+extern uint64_t fn_14_myr(uint32_t a1, uint8_t a2, t78 a3, t81 a4, t32 a5, t82 a6, t85 a7);
+extern t102 fn_15_myr(t86 a1, t69 a2, t88 a3, t93 a4, t95 a5, t25 a6, float a7, t60 a8, t97 a9, t100 a10);
+extern t15 fn_16_myr(uint64_t a1, t57 a2);
+extern double fn_17_myr(float a1, t10 a2, t35 a3, float a4, t18 a5, uint64_t a6, t3 a7, float a8, t56 a9, t72 a10);
+extern t68 fn_18_myr(t29 a1, t50 a2, t94 a3, t97 a4, t82 a5, uint32_t a6);
+extern uint8_t fn_19_myr(uint64_t a1, uint8_t a2);
+extern uint8_t fn_20_myr(t72 a1, t54 a2, t102 a3, t30 a4, float a5, t100 a6, t82 a7, t92 a8, t19 a9);
+
+t7
+fn_1_c(uint32_t a1, t3 a2, t2 a3, float a4, uint8_t a5)
+{
+ if (!(a1==3331313618)) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==163) && ((a2.field_2.field_1==112669747445760) && (a2.field_2.field_2==68) && (a2.field_2.field_3==2961163238) && (a2.field_2.field_4==144) && (a2.field_2.field_5==3.1171875) && (a2.field_2.field_6==-0.77734375)) && (a2.field_3==2638767956) && (a2.field_4==E_2_3))) {
+ goto bad;
+ }
+
+ if (!(a3==E_2_1)) {
+ goto bad;
+ }
+
+ if (!(a4==0.875)) {
+ goto bad;
+ }
+
+ if (!(a5==63)) {
+ goto bad;
+ }
+
+ return (t7) {.field_1=(t4) {.field_1=156,.field_2=2.83203125,.field_3=67,.field_4=143760266887168,.field_5=E_2_6,.field_6=2927029180},.field_2=(t5) {.field_1=-2.55078125,.field_2=159665344872448,.field_3=199843724394496},.field_3=(t6) {.field_1=-0.625,.field_2=E_2_6}};
+
+bad:
+ return (t7) {.field_1=(t4) {.field_1=224,.field_2=-3.55859375,.field_3=83,.field_4=192626519703552,.field_5=E_2_2,.field_6=280197342},.field_2=(t5) {.field_1=-2.49609375,.field_2=252253836541952,.field_3=197595307704320},.field_3=(t6) {.field_1=-1.328125,.field_2=E_2_2}};
+}
+
+float
+fn_2_c(t7 a1, t8 a2, t12 a3, double a4, t15 a5, t13 a6, uint32_t a7)
+{
+ if (!(((a1.field_1.field_1==195) && (a1.field_1.field_2==-2.625) && (a1.field_1.field_3==107) && (a1.field_1.field_4==250193960632320) && (a1.field_1.field_5==E_2_1) && (a1.field_1.field_6==3277066896)) && ((a1.field_2.field_1==0.01171875) && (a1.field_2.field_2==271113481355264) && (a1.field_2.field_3==7202154348544)) && ((a1.field_3.field_1==-1.53125) && (a1.field_3.field_2==E_2_6)))) {
+ goto bad;
+ }
+
+ if (!(((a2.field_1.field_1==75) && ((a2.field_1.field_2.field_1==149688830001152) && (a2.field_1.field_2.field_2==166) && (a2.field_1.field_2.field_3==4203656652) && (a2.field_1.field_2.field_4==184) && (a2.field_1.field_2.field_5==1.6796875) && (a2.field_1.field_2.field_6==-2.66015625)) && (a2.field_1.field_3==2647535284) && (a2.field_1.field_4==E_2_3)) && ((a2.field_2.field_1==60) && ((a2.field_2.field_2.field_1==234959706259456) && (a2.field_2.field_2.field_2==30) && (a2.field_2.field_2.field_3==3070502934) && (a2.field_2.field_2.field_4==195) && (a2.field_2.field_2.field_5==2.9921875) && (a2.field_2.field_2.field_6==2.96484375)) && (a2.field_2.field_3==803402210) && (a2.field_2.field_4==E_2_5)))) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==0.203125) && (((a3.field_2.field_1.field_1==-0.140625) && (a3.field_2.field_1.field_2==E_2_2)) && (a3.field_2.field_2==151793905303552) && ((a3.field_2.field_3.field_1==0.75) && (a3.field_2.field_3.field_2==E_2_1)) && (a3.field_2.field_4==-0.875) && (a3.field_2.field_5==59595538169856) && ((a3.field_2.field_6.field_1==-0.51171875) && (a3.field_2.field_6.field_2==90586118225920) && (a3.field_2.field_6.field_3==47799910137856))) && ((a3.field_3.field_1==-3.4140625) && (a3.field_3.field_2==0.671875) && (a3.field_3.field_3==185693112107008)) && (a3.field_4==-1.23828125) && (a3.field_5==E_11_1) && (a3.field_6==2.890625))) {
+ goto bad;
+ }
+
+ if (!(a4==0.94921875)) {
+ goto bad;
+ }
+
+ if (!(((a5.field_1.field_1==2.03515625) && (a5.field_1.field_2==29216526696448) && (a5.field_1.field_3==236353793556480)) && (a5.field_2==1.09375) && ((a5.field_3.field_1==4181791332) && (((a5.field_3.field_2.field_1.field_1==44) && ((a5.field_3.field_2.field_1.field_2.field_1==132595126632448) && (a5.field_3.field_2.field_1.field_2.field_2==171) && (a5.field_3.field_2.field_1.field_2.field_3==3948447728) && (a5.field_3.field_2.field_1.field_2.field_4==220) && (a5.field_3.field_2.field_1.field_2.field_5==-3.69140625) && (a5.field_3.field_2.field_1.field_2.field_6==-2.40625)) && (a5.field_3.field_2.field_1.field_3==3172323970) && (a5.field_3.field_2.field_1.field_4==E_2_5)) && ((a5.field_3.field_2.field_2.field_1==224) && ((a5.field_3.field_2.field_2.field_2.field_1==275519312887808) && (a5.field_3.field_2.field_2.field_2.field_2==53) && (a5.field_3.field_2.field_2.field_2.field_3==3186715686) && (a5.field_3.field_2.field_2.field_2.field_4==144) && (a5.field_3.field_2.field_2.field_2.field_5==-2.5703125) && (a5.field_3.field_2.field_2.field_2.field_6==-3.41015625)) && (a5.field_3.field_2.field_2.field_3==1867717394) && (a5.field_3.field_2.field_2.field_4==E_2_5))) && (a5.field_3.field_3==35551921045504) && (a5.field_3.field_4==-0.203125) && (a5.field_3.field_5==101)) && ((a5.field_4.field_1==102) && (a5.field_4.field_2==1.15625)))) {
+ goto bad;
+ }
+
+ if (!((a6.field_1==1580005156) && (((a6.field_2.field_1.field_1==51) && ((a6.field_2.field_1.field_2.field_1==266965320073216) && (a6.field_2.field_1.field_2.field_2==53) && (a6.field_2.field_1.field_2.field_3==212878900) && (a6.field_2.field_1.field_2.field_4==236) && (a6.field_2.field_1.field_2.field_5==-0.921875) && (a6.field_2.field_1.field_2.field_6==0.16015625)) && (a6.field_2.field_1.field_3==2543329268) && (a6.field_2.field_1.field_4==E_2_2)) && ((a6.field_2.field_2.field_1==98) && ((a6.field_2.field_2.field_2.field_1==174501380489216) && (a6.field_2.field_2.field_2.field_2==126) && (a6.field_2.field_2.field_2.field_3==522689612) && (a6.field_2.field_2.field_2.field_4==110) && (a6.field_2.field_2.field_2.field_5==-1.0234375) && (a6.field_2.field_2.field_2.field_6==-3.12109375)) && (a6.field_2.field_2.field_3==2756676114) && (a6.field_2.field_2.field_4==E_2_1))) && (a6.field_3==186819725099008) && (a6.field_4==0.984375) && (a6.field_5==44))) {
+ goto bad;
+ }
+
+ if (!(a7==2083878374)) {
+ goto bad;
+ }
+
+ return 0.109375;
+
+bad:
+ return 1.1875;
+}
+
+float
+fn_3_c(t5 a1, t15 a2, t16 a3, t16 a4, uint64_t a5, t17 a6, t12 a7)
+{
+ if (!((a1.field_1==0.36328125) && (a1.field_2==217080895242240) && (a1.field_3==146180381081600))) {
+ goto bad;
+ }
+
+ if (!(((a2.field_1.field_1==0.5390625) && (a2.field_1.field_2==117399373217792) && (a2.field_1.field_3==101569454014464)) && (a2.field_2==-1.296875) && ((a2.field_3.field_1==39734246) && (((a2.field_3.field_2.field_1.field_1==169) && ((a2.field_3.field_2.field_1.field_2.field_1==133031533740032) && (a2.field_3.field_2.field_1.field_2.field_2==161) && (a2.field_3.field_2.field_1.field_2.field_3==668802928) && (a2.field_3.field_2.field_1.field_2.field_4==152) && (a2.field_3.field_2.field_1.field_2.field_5==-3.4296875) && (a2.field_3.field_2.field_1.field_2.field_6==0.1953125)) && (a2.field_3.field_2.field_1.field_3==2984403120) && (a2.field_3.field_2.field_1.field_4==E_2_5)) && ((a2.field_3.field_2.field_2.field_1==162) && ((a2.field_3.field_2.field_2.field_2.field_1==100930591260672) && (a2.field_3.field_2.field_2.field_2.field_2==132) && (a2.field_3.field_2.field_2.field_2.field_3==3484222870) && (a2.field_3.field_2.field_2.field_2.field_4==117) && (a2.field_3.field_2.field_2.field_2.field_5==-3.8984375) && (a2.field_3.field_2.field_2.field_2.field_6==-3.02734375)) && (a2.field_3.field_2.field_2.field_3==4255148568) && (a2.field_3.field_2.field_2.field_4==E_2_6))) && (a2.field_3.field_3==229240590827520) && (a2.field_3.field_4==-0.328125) && (a2.field_3.field_5==51)) && ((a2.field_4.field_1==92) && (a2.field_4.field_2==-1.046875)))) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==1212401592) && (a3.field_2==-1.046875) && (a3.field_3==1.109375) && ((a3.field_4.field_1==1.296875) && (a3.field_4.field_2==E_2_2)))) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==3641606114) && (a4.field_2==-1.125) && (a4.field_3==0.546875) && ((a4.field_4.field_1==-0.046875) && (a4.field_4.field_2==E_2_3)))) {
+ goto bad;
+ }
+
+ if (!(a5==83130758201344)) {
+ goto bad;
+ }
+
+ if (!(((a6.field_1.field_1==954818626) && (a6.field_1.field_2==-0.5) && (a6.field_1.field_3==-0.703125) && ((a6.field_1.field_4.field_1==0.265625) && (a6.field_1.field_4.field_2==E_2_4))) && (a6.field_2==254))) {
+ goto bad;
+ }
+
+ if (!((a7.field_1==-0.671875) && (((a7.field_2.field_1.field_1==0.671875) && (a7.field_2.field_1.field_2==E_2_1)) && (a7.field_2.field_2==186559912869888) && ((a7.field_2.field_3.field_1==1.546875) && (a7.field_2.field_3.field_2==E_2_2)) && (a7.field_2.field_4==0.046875) && (a7.field_2.field_5==255023204139008) && ((a7.field_2.field_6.field_1==1.13671875) && (a7.field_2.field_6.field_2==270028714934272) && (a7.field_2.field_6.field_3==247333204000768))) && ((a7.field_3.field_1==-0.0546875) && (a7.field_3.field_2==-1.25) && (a7.field_3.field_3==156053374763008)) && (a7.field_4==3.73046875) && (a7.field_5==E_11_4) && (a7.field_6==1.92578125))) {
+ goto bad;
+ }
+
+ return 0.171875;
+
+bad:
+ return 1.375;
+}
+
+t2
+fn_4_c(t1 a1, t21 a2, t23 a3, double a4, t6 a5, uint64_t a6, double a7)
+{
+ if (!((a1.field_1==254108937224192) && (a1.field_2==215) && (a1.field_3==1243252406) && (a1.field_4==124) && (a1.field_5==-1.1875) && (a1.field_6==-1.68359375))) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==E_18_8) && (a2.field_2==4113752024) && (a2.field_3==0.5) && (a2.field_4==E_19_5) && ((a2.field_5.field_1==-0.3203125) && (a2.field_5.field_2==1.33984375) && ((a2.field_5.field_3.field_1==-0.171875) && (((a2.field_5.field_3.field_2.field_1.field_1==-0.625) && (a2.field_5.field_3.field_2.field_1.field_2==E_2_6)) && (a2.field_5.field_3.field_2.field_2==262778588495872) && ((a2.field_5.field_3.field_2.field_3.field_1==0.46875) && (a2.field_5.field_3.field_2.field_3.field_2==E_2_2)) && (a2.field_5.field_3.field_2.field_4==1.125) && (a2.field_5.field_3.field_2.field_5==182381629145088) && ((a2.field_5.field_3.field_2.field_6.field_1==2.4609375) && (a2.field_5.field_3.field_2.field_6.field_2==139713139179520) && (a2.field_5.field_3.field_2.field_6.field_3==225645534511104))) && ((a2.field_5.field_3.field_3.field_1==-3.54296875) && (a2.field_5.field_3.field_3.field_2==-1.171875) && (a2.field_5.field_3.field_3.field_3==78173635870720)) && (a2.field_5.field_3.field_4==2.28515625) && (a2.field_5.field_3.field_5==E_11_4) && (a2.field_5.field_3.field_6==-0.7890625))) && (((a2.field_6.field_1.field_1==-0.01953125) && (a2.field_6.field_1.field_2==23439019999232) && (a2.field_6.field_1.field_3==3807452332032)) && (a2.field_6.field_2==-0.625) && ((a2.field_6.field_3.field_1==233931326) && (((a2.field_6.field_3.field_2.field_1.field_1==154) && ((a2.field_6.field_3.field_2.field_1.field_2.field_1==198616597528576) && (a2.field_6.field_3.field_2.field_1.field_2.field_2==197) && (a2.field_6.field_3.field_2.field_1.field_2.field_3==2016579036) && (a2.field_6.field_3.field_2.field_1.field_2.field_4==169) && (a2.field_6.field_3.field_2.field_1.field_2.field_5==-0.5546875) && (a2.field_6.field_3.field_2.field_1.field_2.field_6==-3.796875)) && (a2.field_6.field_3.field_2.field_1.field_3==526208716) && (a2.field_6.field_3.field_2.field_1.field_4==E_2_1)) && ((a2.field_6.field_3.field_2.field_2.field_1==118) && ((a2.field_6.field_3.field_2.field_2.field_2.field_1==119263763103744) && (a2.field_6.field_3.field_2.field_2.field_2.field_2==15) && (a2.field_6.field_3.field_2.field_2.field_2.field_3==1698145536) && (a2.field_6.field_3.field_2.field_2.field_2.field_4==18) && (a2.field_6.field_3.field_2.field_2.field_2.field_5==-1.51171875) && (a2.field_6.field_3.field_2.field_2.field_2.field_6==-1.921875)) && (a2.field_6.field_3.field_2.field_2.field_3==3097128252) && (a2.field_6.field_3.field_2.field_2.field_4==E_2_1))) && (a2.field_6.field_3.field_3==211270742966272) && (a2.field_6.field_3.field_4==0.078125) && (a2.field_6.field_3.field_5==42)) && ((a2.field_6.field_4.field_1==225) && (a2.field_6.field_4.field_2==0.9375))))) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==190020550524928) && ((a3.field_2.field_1==11) && (a3.field_2.field_2==-1.0625)) && (a3.field_3==210612318502912) && ((a3.field_4.field_1==-0.46875) && (a3.field_4.field_2==116393468362752) && (((a3.field_4.field_3.field_1.field_1==120) && (a3.field_4.field_3.field_1.field_2==-0.21484375) && (a3.field_4.field_3.field_1.field_3==42) && (a3.field_4.field_3.field_1.field_4==279254693969921) && (a3.field_4.field_3.field_1.field_5==E_2_4) && (a3.field_4.field_3.field_1.field_6==185092378)) && ((a3.field_4.field_3.field_2.field_1==2.28515625) && (a3.field_4.field_3.field_2.field_2==168886583296000) && (a3.field_4.field_3.field_2.field_3==165671684931584)) && ((a3.field_4.field_3.field_3.field_1==1.546875) && (a3.field_4.field_3.field_3.field_2==E_2_1))) && (((a3.field_4.field_4.field_1.field_1==933489974) && (a3.field_4.field_4.field_1.field_2==-0.921875) && (a3.field_4.field_4.field_1.field_3==1.0) && ((a3.field_4.field_4.field_1.field_4.field_1==1.265625) && (a3.field_4.field_4.field_1.field_4.field_2==E_2_1))) && (a3.field_4.field_4.field_2==72))))) {
+ goto bad;
+ }
+
+ if (!(a4==-1.47265625)) {
+ goto bad;
+ }
+
+ if (!((a5.field_1==0.359375) && (a5.field_2==E_2_4))) {
+ goto bad;
+ }
+
+ if (!(a6==106223398289408)) {
+ goto bad;
+ }
+
+ if (!(a7==-1.80078125)) {
+ goto bad;
+ }
+
+ return E_2_4;
+
+bad:
+ return E_2_6;
+}
+
+t3
+fn_5_c(uint32_t a1, t24 a2, double a3, t25 a4, uint64_t a5, t28 a6)
+{
+ if (!(a1==490829306)) {
+ goto bad;
+ }
+
+ if (!(a2==E_24_2)) {
+ goto bad;
+ }
+
+ if (!(a3==-1.296875)) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==E_24_8) && ((a4.field_2.field_1==0.1875) && (a4.field_2.field_2==E_2_3)))) {
+ goto bad;
+ }
+
+ if (!(a5==245616036151296)) {
+ goto bad;
+ }
+
+ if (!((((a6.field_1.field_1.field_1==2.08203125) && (a6.field_1.field_1.field_2==35857928683520) && (a6.field_1.field_1.field_3==93232914235392)) && (a6.field_1.field_2==-0.609375) && ((a6.field_1.field_3.field_1==1442943954) && (((a6.field_1.field_3.field_2.field_1.field_1==49) && ((a6.field_1.field_3.field_2.field_1.field_2.field_1==243496050229248) && (a6.field_1.field_3.field_2.field_1.field_2.field_2==211) && (a6.field_1.field_3.field_2.field_1.field_2.field_3==1781303846) && (a6.field_1.field_3.field_2.field_1.field_2.field_4==188) && (a6.field_1.field_3.field_2.field_1.field_2.field_5==1.796875) && (a6.field_1.field_3.field_2.field_1.field_2.field_6==2.92578125)) && (a6.field_1.field_3.field_2.field_1.field_3==961004516) && (a6.field_1.field_3.field_2.field_1.field_4==E_2_2)) && ((a6.field_1.field_3.field_2.field_2.field_1==142) && ((a6.field_1.field_3.field_2.field_2.field_2.field_1==24547072671744) && (a6.field_1.field_3.field_2.field_2.field_2.field_2==51) && (a6.field_1.field_3.field_2.field_2.field_2.field_3==2197818536) && (a6.field_1.field_3.field_2.field_2.field_2.field_4==124) && (a6.field_1.field_3.field_2.field_2.field_2.field_5==-2.42578125) && (a6.field_1.field_3.field_2.field_2.field_2.field_6==-3.234375)) && (a6.field_1.field_3.field_2.field_2.field_3==3597667158) && (a6.field_1.field_3.field_2.field_2.field_4==E_2_5))) && (a6.field_1.field_3.field_3==212450688237568) && (a6.field_1.field_3.field_4==-0.625) && (a6.field_1.field_3.field_5==212)) && ((a6.field_1.field_4.field_1==40) && (a6.field_1.field_4.field_2==1.328125))) && (a6.field_2==E_26_3) && ((((a6.field_3.field_1.field_1.field_1==3.07421875) && (a6.field_3.field_1.field_1.field_2==82227144294400) && (a6.field_3.field_1.field_1.field_3==7948002787328)) && (a6.field_3.field_1.field_2==-1.5) && ((a6.field_3.field_1.field_3.field_1==2677308022) && (((a6.field_3.field_1.field_3.field_2.field_1.field_1==85) && ((a6.field_3.field_1.field_3.field_2.field_1.field_2.field_1==100333243203584) && (a6.field_3.field_1.field_3.field_2.field_1.field_2.field_2==209) && (a6.field_3.field_1.field_3.field_2.field_1.field_2.field_3==846728032) && (a6.field_3.field_1.field_3.field_2.field_1.field_2.field_4==47) && (a6.field_3.field_1.field_3.field_2.field_1.field_2.field_5==-2.0859375) && (a6.field_3.field_1.field_3.field_2.field_1.field_2.field_6==3.3984375)) && (a6.field_3.field_1.field_3.field_2.field_1.field_3==3924268624) && (a6.field_3.field_1.field_3.field_2.field_1.field_4==E_2_1)) && ((a6.field_3.field_1.field_3.field_2.field_2.field_1==40) && ((a6.field_3.field_1.field_3.field_2.field_2.field_2.field_1==58951057276928) && (a6.field_3.field_1.field_3.field_2.field_2.field_2.field_2==170) && (a6.field_3.field_1.field_3.field_2.field_2.field_2.field_3==1055614716) && (a6.field_3.field_1.field_3.field_2.field_2.field_2.field_4==104) && (a6.field_3.field_1.field_3.field_2.field_2.field_2.field_5==-2.51953125) && (a6.field_3.field_1.field_3.field_2.field_2.field_2.field_6==1.8203125)) && (a6.field_3.field_1.field_3.field_2.field_2.field_3==2570174796) && (a6.field_3.field_1.field_3.field_2.field_2.field_4==E_2_2))) && (a6.field_3.field_1.field_3.field_3==160655520563200) && (a6.field_3.field_1.field_3.field_4==-0.515625) && (a6.field_3.field_1.field_3.field_5==4)) && ((a6.field_3.field_1.field_4.field_1==223) && (a6.field_3.field_1.field_4.field_2==-1.0625))) && (a6.field_3.field_2==-1.015625) && (a6.field_3.field_3==0.9375) && (a6.field_3.field_4==119362880667648) && (a6.field_3.field_5==-1.359375) && (a6.field_3.field_6==25145455280128)))) {
+ goto bad;
+ }
+
+ return (t3) {.field_1=182,.field_2=(t1) {.field_1=220780978372608,.field_2=114,.field_3=2281314962,.field_4=251,.field_5=1.01171875,.field_6=2.06640625},.field_3=3935630006,.field_4=E_2_4};
+
+bad:
+ return (t3) {.field_1=223,.field_2=(t1) {.field_1=21084164849664,.field_2=192,.field_3=2309250974,.field_4=82,.field_5=-2.64453125,.field_6=1.68359375},.field_3=231075084,.field_4=E_2_5};
+}
+
+double
+fn_6_c(t29 a1, t8 a2, t33 a3, t5 a4, uint32_t a5, float a6, t11 a7, t36 a8, t16 a9, t37 a10)
+{
+ if (!(a1==E_29_6)) {
+ goto bad;
+ }
+
+ if (!(((a2.field_1.field_1==44) && ((a2.field_1.field_2.field_1==82970538278912) && (a2.field_1.field_2.field_2==173) && (a2.field_1.field_2.field_3==1039620306) && (a2.field_1.field_2.field_4==98) && (a2.field_1.field_2.field_5==-2.87890625) && (a2.field_1.field_2.field_6==-1.3203125)) && (a2.field_1.field_3==415749068) && (a2.field_1.field_4==E_2_6)) && ((a2.field_2.field_1==198) && ((a2.field_2.field_2.field_1==176754788270080) && (a2.field_2.field_2.field_2==229) && (a2.field_2.field_2.field_3==1745396264) && (a2.field_2.field_2.field_4==100) && (a2.field_2.field_2.field_5==2.453125) && (a2.field_2.field_2.field_6==3.51171875)) && (a2.field_2.field_3==1134845604) && (a2.field_2.field_4==E_2_6)))) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==45346413608960) && ((a3.field_2.field_1==1.5546875) && ((a3.field_2.field_2.field_1==E_18_1) && (a3.field_2.field_2.field_2==3388995392) && (a3.field_2.field_2.field_3==0.296875) && (a3.field_2.field_2.field_4==E_19_4) && ((a3.field_2.field_2.field_5.field_1==-2.4921875) && (a3.field_2.field_2.field_5.field_2==-0.69921875) && ((a3.field_2.field_2.field_5.field_3.field_1==-0.390625) && (((a3.field_2.field_2.field_5.field_3.field_2.field_1.field_1==-0.171875) && (a3.field_2.field_2.field_5.field_3.field_2.field_1.field_2==E_2_2)) && (a3.field_2.field_2.field_5.field_3.field_2.field_2==21150251483136) && ((a3.field_2.field_2.field_5.field_3.field_2.field_3.field_1==-0.796875) && (a3.field_2.field_2.field_5.field_3.field_2.field_3.field_2==E_2_4)) && (a3.field_2.field_2.field_5.field_3.field_2.field_4==1.375) && (a3.field_2.field_2.field_5.field_3.field_2.field_5==215200983941120) && ((a3.field_2.field_2.field_5.field_3.field_2.field_6.field_1==2.125) && (a3.field_2.field_2.field_5.field_3.field_2.field_6.field_2==158112869384192) && (a3.field_2.field_2.field_5.field_3.field_2.field_6.field_3==73351684030464))) && ((a3.field_2.field_2.field_5.field_3.field_3.field_1==1.25) && (a3.field_2.field_2.field_5.field_3.field_3.field_2==-0.703125) && (a3.field_2.field_2.field_5.field_3.field_3.field_3==212315222310912)) && (a3.field_2.field_2.field_5.field_3.field_4==-3.5546875) && (a3.field_2.field_2.field_5.field_3.field_5==E_11_2) && (a3.field_2.field_2.field_5.field_3.field_6==-0.61328125))) && (((a3.field_2.field_2.field_6.field_1.field_1==1.76171875) && (a3.field_2.field_2.field_6.field_1.field_2==253745235361792) && (a3.field_2.field_2.field_6.field_1.field_3==92984779997184)) && (a3.field_2.field_2.field_6.field_2==0.90625) && ((a3.field_2.field_2.field_6.field_3.field_1==2939679992) && (((a3.field_2.field_2.field_6.field_3.field_2.field_1.field_1==146) && ((a3.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_1==267681124188160) && (a3.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_2==98) && (a3.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_3==2525744200) && (a3.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_4==189) && (a3.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_5==3.75390625) && (a3.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_6==-3.81640625)) && (a3.field_2.field_2.field_6.field_3.field_2.field_1.field_3==3957579288) && (a3.field_2.field_2.field_6.field_3.field_2.field_1.field_4==E_2_3)) && ((a3.field_2.field_2.field_6.field_3.field_2.field_2.field_1==98) && ((a3.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_1==103318747742208) && (a3.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_2==176) && (a3.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_3==1976332274) && (a3.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_4==157) && (a3.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_5==-2.35546875) && (a3.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_6==-0.79296875)) && (a3.field_2.field_2.field_6.field_3.field_2.field_2.field_3==1628294370) && (a3.field_2.field_2.field_6.field_3.field_2.field_2.field_4==E_2_6))) && (a3.field_2.field_2.field_6.field_3.field_3==270327169941504) && (a3.field_2.field_2.field_6.field_3.field_4==0.4375) && (a3.field_2.field_2.field_6.field_3.field_5==161)) && ((a3.field_2.field_2.field_6.field_4.field_1==61) && (a3.field_2.field_2.field_6.field_4.field_2==-0.328125)))) && (a3.field_2.field_3==190305229078528) && (a3.field_2.field_4==-0.0859375)) && (a3.field_3==E_31_8) && ((a3.field_4.field_1==1725236208)))) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==-2.41015625) && (a4.field_2==21064454635520) && (a4.field_3==201636834967552))) {
+ goto bad;
+ }
+
+ if (!(a5==1968388378)) {
+ goto bad;
+ }
+
+ if (!(a6==1.203125)) {
+ goto bad;
+ }
+
+ if (!(a7==E_11_5)) {
+ goto bad;
+ }
+
+ if (!((a8.field_1==165571080617984) && ((a8.field_2.field_1==0.671875) && (a8.field_2.field_2==E_2_6)) && ((a8.field_3.field_1==3138764072) && (a8.field_3.field_2==-1.03125) && (a8.field_3.field_3==50747094728704) && (a8.field_3.field_4==2634664560)) && ((a8.field_4.field_1==171685942525952) && (a8.field_4.field_2==2132603492)))) {
+ goto bad;
+ }
+
+ if (!((a9.field_1==849505522) && (a9.field_2==0.28125) && (a9.field_3==1.4375) && ((a9.field_4.field_1==-0.4375) && (a9.field_4.field_2==E_2_3)))) {
+ goto bad;
+ }
+
+ if (!(a10==E_37_6)) {
+ goto bad;
+ }
+
+ return -0.47265625;
+
+bad:
+ return -1.22265625;
+}
+
+double
+fn_7_c(uint64_t a1, t38 a2, uint8_t a3, t40 a4, t42 a5, t43 a6, uint8_t a7)
+{
+ if (!(a1==152633167446016)) {
+ goto bad;
+ }
+
+ if (!(a2==E_38_5)) {
+ goto bad;
+ }
+
+ if (!(a3==21)) {
+ goto bad;
+ }
+
+ if (!((((a4.field_1.field_1.field_1==3.7265625) && ((a4.field_1.field_1.field_2.field_1==E_18_8) && (a4.field_1.field_1.field_2.field_2==1660321984) && (a4.field_1.field_1.field_2.field_3==0.46875) && (a4.field_1.field_1.field_2.field_4==E_19_6) && ((a4.field_1.field_1.field_2.field_5.field_1==3.328125) && (a4.field_1.field_1.field_2.field_5.field_2==-3.79296875) && ((a4.field_1.field_1.field_2.field_5.field_3.field_1==-0.984375) && (((a4.field_1.field_1.field_2.field_5.field_3.field_2.field_1.field_1==-0.71875) && (a4.field_1.field_1.field_2.field_5.field_3.field_2.field_1.field_2==E_2_5)) && (a4.field_1.field_1.field_2.field_5.field_3.field_2.field_2==107860547076096) && ((a4.field_1.field_1.field_2.field_5.field_3.field_2.field_3.field_1==0.984375) && (a4.field_1.field_1.field_2.field_5.field_3.field_2.field_3.field_2==E_2_3)) && (a4.field_1.field_1.field_2.field_5.field_3.field_2.field_4==1.03125) && (a4.field_1.field_1.field_2.field_5.field_3.field_2.field_5==103537434427392) && ((a4.field_1.field_1.field_2.field_5.field_3.field_2.field_6.field_1==-0.41015625) && (a4.field_1.field_1.field_2.field_5.field_3.field_2.field_6.field_2==257720167301120) && (a4.field_1.field_1.field_2.field_5.field_3.field_2.field_6.field_3==23490682028032))) && ((a4.field_1.field_1.field_2.field_5.field_3.field_3.field_1==-3.0546875) && (a4.field_1.field_1.field_2.field_5.field_3.field_3.field_2==0.671875) && (a4.field_1.field_1.field_2.field_5.field_3.field_3.field_3==189976970788864)) && (a4.field_1.field_1.field_2.field_5.field_3.field_4==0.015625) && (a4.field_1.field_1.field_2.field_5.field_3.field_5==E_11_5) && (a4.field_1.field_1.field_2.field_5.field_3.field_6==-0.41796875))) && (((a4.field_1.field_1.field_2.field_6.field_1.field_1==0.0625) && (a4.field_1.field_1.field_2.field_6.field_1.field_2==74574491418624) && (a4.field_1.field_1.field_2.field_6.field_1.field_3==201256086929408)) && (a4.field_1.field_1.field_2.field_6.field_2==1.359375) && ((a4.field_1.field_1.field_2.field_6.field_3.field_1==1220073662) && (((a4.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_1==46) && ((a4.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_1==265659814641664) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_2==66) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_3==27449604) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_4==84) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_5==3.22265625) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_6==1.9609375)) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_3==1100098150) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_4==E_2_6)) && ((a4.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_1==239) && ((a4.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_1==147943258062848) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_2==159) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_3==1367706340) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_4==86) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_5==3.89453125) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_6==-2.74609375)) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_3==3028657672) && (a4.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_4==E_2_3))) && (a4.field_1.field_1.field_2.field_6.field_3.field_3==18076800647168) && (a4.field_1.field_1.field_2.field_6.field_3.field_4==0.90625) && (a4.field_1.field_1.field_2.field_6.field_3.field_5==142)) && ((a4.field_1.field_1.field_2.field_6.field_4.field_1==199) && (a4.field_1.field_1.field_2.field_6.field_4.field_2==-0.109375)))) && (a4.field_1.field_1.field_3==15997300899840) && (a4.field_1.field_1.field_4==-0.2890625)) && (a4.field_1.field_2==3.20703125) && (a4.field_1.field_3==158990308868096)) && (a4.field_2==186) && ((a4.field_3.field_1==175995273347072) && (a4.field_3.field_2==127) && (a4.field_3.field_3==52543290) && (a4.field_3.field_4==206) && (a4.field_3.field_5==-0.46875) && (a4.field_3.field_6==-1.7734375)))) {
+ goto bad;
+ }
+
+ if (!((a5.field_1==207514518814720) && (a5.field_2==E_41_5) && (a5.field_3==3821234462) && ((a5.field_4.field_1==206987958681600) && ((a5.field_4.field_2.field_1==247) && (a5.field_4.field_2.field_2==0.296875)) && (a5.field_4.field_3==50935557783552) && ((a5.field_4.field_4.field_1==-1.46875) && (a5.field_4.field_4.field_2==107941368692736) && (((a5.field_4.field_4.field_3.field_1.field_1==188) && (a5.field_4.field_4.field_3.field_1.field_2==2.4140625) && (a5.field_4.field_4.field_3.field_1.field_3==216) && (a5.field_4.field_4.field_3.field_1.field_4==223121033003008) && (a5.field_4.field_4.field_3.field_1.field_5==E_2_2) && (a5.field_4.field_4.field_3.field_1.field_6==3252553412)) && ((a5.field_4.field_4.field_3.field_2.field_1==-1.11328125) && (a5.field_4.field_4.field_3.field_2.field_2==48622469120) && (a5.field_4.field_4.field_3.field_2.field_3==107679637045248)) && ((a5.field_4.field_4.field_3.field_3.field_1==1.109375) && (a5.field_4.field_4.field_3.field_3.field_2==E_2_1))) && (((a5.field_4.field_4.field_4.field_1.field_1==811385302) && (a5.field_4.field_4.field_4.field_1.field_2==-0.640625) && (a5.field_4.field_4.field_4.field_1.field_3==-0.671875) && ((a5.field_4.field_4.field_4.field_1.field_4.field_1==-1.5625) && (a5.field_4.field_4.field_4.field_1.field_4.field_2==E_2_1))) && (a5.field_4.field_4.field_4.field_2==120)))))) {
+ goto bad;
+ }
+
+ if (!(a6==E_43_4)) {
+ goto bad;
+ }
+
+ if (!(a7==164)) {
+ goto bad;
+ }
+
+ return 2.984375;
+
+bad:
+ return 0.26171875;
+}
+
+t44
+fn_8_c(void)
+{
+ return (t44) {.field_1=1.1875};
+
+bad:
+ return (t44) {.field_1=0.03125};
+}
+
+t53
+fn_9_c(t45 a1, t46 a2, t45 a3, t47 a4, t48 a5, float a6, double a7, uint8_t a8, uint64_t a9, t49 a10)
+{
+ if (!(a1==E_45_6)) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==4118535730))) {
+ goto bad;
+ }
+
+ if (!(a3==E_45_7)) {
+ goto bad;
+ }
+
+ if (!(a4==E_47_2)) {
+ goto bad;
+ }
+
+ if (!(a5==E_48_6)) {
+ goto bad;
+ }
+
+ if (!(a6==-0.21875)) {
+ goto bad;
+ }
+
+ if (!(a7==-1.4140625)) {
+ goto bad;
+ }
+
+ if (!(a8==162)) {
+ goto bad;
+ }
+
+ if (!(a9==170573566967808)) {
+ goto bad;
+ }
+
+ if (!(a10==E_49_5)) {
+ goto bad;
+ }
+
+ return (t53) {.field_1=-0.46875,.field_2=(t50) {.field_1=-0.28125,.field_2=(t39) {.field_1=(t30) {.field_1=3.50390625,.field_2=(t21) {.field_1=E_18_9,.field_2=298590436,.field_3=0.359375,.field_4=E_19_5,.field_5=(t20) {.field_1=2.28125,.field_2=-0.7421875,.field_3=(t12) {.field_1=-1.359375,.field_2=(t9) {.field_1=(t6) {.field_1=-1.53125,.field_2=E_2_2},.field_2=159748598530048,.field_3=(t6) {.field_1=1.328125,.field_2=E_2_2},.field_4=-0.546875,.field_5=146401660239872,.field_6=(t5) {.field_1=0.6875,.field_2=228983429529600,.field_3=105127852507136}},.field_3=(t10) {.field_1=-0.84375,.field_2=0.359375,.field_3=153705986129920},.field_4=-1.80859375,.field_5=E_11_1,.field_6=3.28125}},.field_6=(t15) {.field_1=(t5) {.field_1=1.96484375,.field_2=46322522914816,.field_3=96194539421696},.field_2=1.46875,.field_3=(t13) {.field_1=912869840,.field_2=(t8) {.field_1=(t3) {.field_1=176,.field_2=(t1) {.field_1=121643541069824,.field_2=41,.field_3=2802989848,.field_4=128,.field_5=2.15625,.field_6=-2.44921875},.field_3=1259853458,.field_4=E_2_2},.field_2=(t3) {.field_1=64,.field_2=(t1) {.field_1=86146197356544,.field_2=90,.field_3=3519983450,.field_4=58,.field_5=0.50390625,.field_6=-2.765625},.field_3=3211917080,.field_4=E_2_1}},.field_3=270136525455360,.field_4=-1.1875,.field_5=139},.field_4=(t14) {.field_1=146,.field_2=0.53125}}},.field_3=228868406378496,.field_4=0.90234375},.field_2=0.6796875,.field_3=158843979956224},.field_3=3350000678,.field_4=1.34375},.field_3=(t51) {.field_1=0.25390625},.field_4=3.8515625,.field_5=(t44) {.field_1=0.375},.field_6=(t52) {.field_1=(t23) {.field_1=271586366193664,.field_2=(t14) {.field_1=39,.field_2=-0.71875},.field_3=131323353497600,.field_4=(t22) {.field_1=1.34375,.field_2=129109365489664,.field_3=(t7) {.field_1=(t4) {.field_1=194,.field_2=-3.05078125,.field_3=181,.field_4=18560330366976,.field_5=E_2_3,.field_6=2277482010},.field_2=(t5) {.field_1=-1.61328125,.field_2=7613576773632,.field_3=190410156933120},.field_3=(t6) {.field_1=-1.4375,.field_2=E_2_2}},.field_4=(t17) {.field_1=(t16) {.field_1=2732417384,.field_2=-1.0625,.field_3=0.703125,.field_4=(t6) {.field_1=-0.921875,.field_2=E_2_5}},.field_2=137}}},.field_2=1.015625,.field_3=117426174033920,.field_4=25}};
+
+bad:
+ return (t53) {.field_1=0.328125,.field_2=(t50) {.field_1=-1.203125,.field_2=(t39) {.field_1=(t30) {.field_1=1.046875,.field_2=(t21) {.field_1=E_18_6,.field_2=4145360800,.field_3=0.3125,.field_4=E_19_6,.field_5=(t20) {.field_1=-2.0546875,.field_2=-3.3984375,.field_3=(t12) {.field_1=0.5625,.field_2=(t9) {.field_1=(t6) {.field_1=0.609375,.field_2=E_2_5},.field_2=221801050013696,.field_3=(t6) {.field_1=-0.296875,.field_2=E_2_6},.field_4=-0.78125,.field_5=263658707091456,.field_6=(t5) {.field_1=-2.4609375,.field_2=78100894187520,.field_3=172593887444992}},.field_3=(t10) {.field_1=-2.13671875,.field_2=-0.140625,.field_3=70190616412160},.field_4=-0.8671875,.field_5=E_11_2,.field_6=-0.33203125}},.field_6=(t15) {.field_1=(t5) {.field_1=-2.19140625,.field_2=202050438168576,.field_3=79035918319616},.field_2=0.421875,.field_3=(t13) {.field_1=3518277532,.field_2=(t8) {.field_1=(t3) {.field_1=226,.field_2=(t1) {.field_1=276554656776192,.field_2=116,.field_3=2062106064,.field_4=242,.field_5=-3.5,.field_6=-2.11328125},.field_3=793394830,.field_4=E_2_1},.field_2=(t3) {.field_1=232,.field_2=(t1) {.field_1=247826144034816,.field_2=241,.field_3=2988853828,.field_4=73,.field_5=2.61328125,.field_6=3.48828125},.field_3=960335446,.field_4=E_2_1}},.field_3=62990759493632,.field_4=1.0625,.field_5=62},.field_4=(t14) {.field_1=174,.field_2=-1.296875}}},.field_3=178677585936384,.field_4=2.82421875},.field_2=0.33984375,.field_3=240439403347968},.field_3=2488286120,.field_4=1.015625},.field_3=(t51) {.field_1=-0.0703125},.field_4=-0.79296875,.field_5=(t44) {.field_1=0.65625},.field_6=(t52) {.field_1=(t23) {.field_1=133232098148352,.field_2=(t14) {.field_1=218,.field_2=-0.984375},.field_3=118507166892032,.field_4=(t22) {.field_1=1.265625,.field_2=117681019027456,.field_3=(t7) {.field_1=(t4) {.field_1=155,.field_2=-3.7421875,.field_3=83,.field_4=136854257926144,.field_5=E_2_6,.field_6=93994772},.field_2=(t5) {.field_1=2.1328125,.field_2=224765803364352,.field_3=272524883394560},.field_3=(t6) {.field_1=1.5625,.field_2=E_2_5}},.field_4=(t17) {.field_1=(t16) {.field_1=824595126,.field_2=1.046875,.field_3=-1.375,.field_4=(t6) {.field_1=1.171875,.field_2=E_2_6}},.field_2=178}}},.field_2=0.734375,.field_3=130355430162432,.field_4=141}};
+}
+
+float
+fn_10_c(float a1, t55 a2, t43 a3)
+{
+ if (!(a1==-1.4375)) {
+ goto bad;
+ }
+
+ if (!(((a2.field_1.field_1==3.2734375) && ((a2.field_1.field_2.field_1==E_18_8) && (a2.field_1.field_2.field_2==298655464) && (a2.field_1.field_2.field_3==-1.21875) && (a2.field_1.field_2.field_4==E_19_6) && ((a2.field_1.field_2.field_5.field_1==-2.87109375) && (a2.field_1.field_2.field_5.field_2==3.77734375) && ((a2.field_1.field_2.field_5.field_3.field_1==0.15625) && (((a2.field_1.field_2.field_5.field_3.field_2.field_1.field_1==1.03125) && (a2.field_1.field_2.field_5.field_3.field_2.field_1.field_2==E_2_5)) && (a2.field_1.field_2.field_5.field_3.field_2.field_2==4317979738112) && ((a2.field_1.field_2.field_5.field_3.field_2.field_3.field_1==-0.375) && (a2.field_1.field_2.field_5.field_3.field_2.field_3.field_2==E_2_1)) && (a2.field_1.field_2.field_5.field_3.field_2.field_4==-0.625) && (a2.field_1.field_2.field_5.field_3.field_2.field_5==119942540689408) && ((a2.field_1.field_2.field_5.field_3.field_2.field_6.field_1==1.90234375) && (a2.field_1.field_2.field_5.field_3.field_2.field_6.field_2==84070773030912) && (a2.field_1.field_2.field_5.field_3.field_2.field_6.field_3==265295537897472))) && ((a2.field_1.field_2.field_5.field_3.field_3.field_1==-1.5078125) && (a2.field_1.field_2.field_5.field_3.field_3.field_2==-0.046875) && (a2.field_1.field_2.field_5.field_3.field_3.field_3==247680725286912)) && (a2.field_1.field_2.field_5.field_3.field_4==2.1484375) && (a2.field_1.field_2.field_5.field_3.field_5==E_11_1) && (a2.field_1.field_2.field_5.field_3.field_6==-0.6015625))) && (((a2.field_1.field_2.field_6.field_1.field_1==-1.84765625) && (a2.field_1.field_2.field_6.field_1.field_2==4068918427648) && (a2.field_1.field_2.field_6.field_1.field_3==127361585905664)) && (a2.field_1.field_2.field_6.field_2==0.6875) && ((a2.field_1.field_2.field_6.field_3.field_1==4144444706) && (((a2.field_1.field_2.field_6.field_3.field_2.field_1.field_1==65) && ((a2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_1==272708430856192) && (a2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_2==226) && (a2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_3==232384220) && (a2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_4==9) && (a2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_5==3.86328125) && (a2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_6==1.4609375)) && (a2.field_1.field_2.field_6.field_3.field_2.field_1.field_3==735172550) && (a2.field_1.field_2.field_6.field_3.field_2.field_1.field_4==E_2_6)) && ((a2.field_1.field_2.field_6.field_3.field_2.field_2.field_1==61) && ((a2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_1==558452178944) && (a2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_2==178) && (a2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_3==1092184810) && (a2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_4==98) && (a2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_5==1.76953125) && (a2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_6==0.4453125)) && (a2.field_1.field_2.field_6.field_3.field_2.field_2.field_3==3483926918) && (a2.field_1.field_2.field_6.field_3.field_2.field_2.field_4==E_2_3))) && (a2.field_1.field_2.field_6.field_3.field_3==240867814670336) && (a2.field_1.field_2.field_6.field_3.field_4==0.796875) && (a2.field_1.field_2.field_6.field_3.field_5==198)) && ((a2.field_1.field_2.field_6.field_4.field_1==86) && (a2.field_1.field_2.field_6.field_4.field_2==0.421875)))) && (a2.field_1.field_3==155213721894912) && (a2.field_1.field_4==-0.5859375)) && (a2.field_2==15967994380288) && ((a2.field_3.field_1==0.984375) && (a2.field_3.field_2==E_2_3) && (a2.field_3.field_3==E_43_4)) && (a2.field_4==0.09375))) {
+ goto bad;
+ }
+
+ if (!(a3==E_43_4)) {
+ goto bad;
+ }
+
+ return 1.0;
+
+bad:
+ return 0.125;
+}
+
+uint32_t
+fn_11_c(t40 a1, uint64_t a2, t59 a3)
+{
+ if (!((((a1.field_1.field_1.field_1==-1.875) && ((a1.field_1.field_1.field_2.field_1==E_18_7) && (a1.field_1.field_1.field_2.field_2==3060119432) && (a1.field_1.field_1.field_2.field_3==1.4375) && (a1.field_1.field_1.field_2.field_4==E_19_8) && ((a1.field_1.field_1.field_2.field_5.field_1==-3.14453125) && (a1.field_1.field_1.field_2.field_5.field_2==1.421875) && ((a1.field_1.field_1.field_2.field_5.field_3.field_1==0.171875) && (((a1.field_1.field_1.field_2.field_5.field_3.field_2.field_1.field_1==1.28125) && (a1.field_1.field_1.field_2.field_5.field_3.field_2.field_1.field_2==E_2_1)) && (a1.field_1.field_1.field_2.field_5.field_3.field_2.field_2==115694040645632) && ((a1.field_1.field_1.field_2.field_5.field_3.field_2.field_3.field_1==0.515625) && (a1.field_1.field_1.field_2.field_5.field_3.field_2.field_3.field_2==E_2_6)) && (a1.field_1.field_1.field_2.field_5.field_3.field_2.field_4==0.78125) && (a1.field_1.field_1.field_2.field_5.field_3.field_2.field_5==83317925609472) && ((a1.field_1.field_1.field_2.field_5.field_3.field_2.field_6.field_1==-0.16015625) && (a1.field_1.field_1.field_2.field_5.field_3.field_2.field_6.field_2==49194524213248) && (a1.field_1.field_1.field_2.field_5.field_3.field_2.field_6.field_3==99285919989760))) && ((a1.field_1.field_1.field_2.field_5.field_3.field_3.field_1==-1.60546875) && (a1.field_1.field_1.field_2.field_5.field_3.field_3.field_2==0.359375) && (a1.field_1.field_1.field_2.field_5.field_3.field_3.field_3==242615500275712)) && (a1.field_1.field_1.field_2.field_5.field_3.field_4==2.5546875) && (a1.field_1.field_1.field_2.field_5.field_3.field_5==E_11_1) && (a1.field_1.field_1.field_2.field_5.field_3.field_6==0.984375))) && (((a1.field_1.field_1.field_2.field_6.field_1.field_1==-1.34375) && (a1.field_1.field_1.field_2.field_6.field_1.field_2==86155678318592) && (a1.field_1.field_1.field_2.field_6.field_1.field_3==125076719534080)) && (a1.field_1.field_1.field_2.field_6.field_2==1.15625) && ((a1.field_1.field_1.field_2.field_6.field_3.field_1==2526692668) && (((a1.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_1==243) && ((a1.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_1==162605589856256) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_2==217) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_3==2977687486) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_4==74) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_5==2.37109375) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_6==1.49609375)) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_3==1665217660) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_1.field_4==E_2_3)) && ((a1.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_1==63) && ((a1.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_1==83432466808832) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_2==163) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_3==2825472336) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_4==245) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_5==0.5078125) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_6==-0.71875)) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_3==1094350794) && (a1.field_1.field_1.field_2.field_6.field_3.field_2.field_2.field_4==E_2_1))) && (a1.field_1.field_1.field_2.field_6.field_3.field_3==163990210084864) && (a1.field_1.field_1.field_2.field_6.field_3.field_4==0.34375) && (a1.field_1.field_1.field_2.field_6.field_3.field_5==86)) && ((a1.field_1.field_1.field_2.field_6.field_4.field_1==50) && (a1.field_1.field_1.field_2.field_6.field_4.field_2==-0.09375)))) && (a1.field_1.field_1.field_3==46874424901632) && (a1.field_1.field_1.field_4==-2.23046875)) && (a1.field_1.field_2==-3.16015625) && (a1.field_1.field_3==139156190003200)) && (a1.field_2==133) && ((a1.field_3.field_1==151978903994368) && (a1.field_3.field_2==92) && (a1.field_3.field_3==469183736) && (a1.field_3.field_4==125) && (a1.field_3.field_5==3.43359375) && (a1.field_3.field_6==3.57421875)))) {
+ goto bad;
+ }
+
+ if (!(a2==64581458329600)) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==E_56_6) && (a3.field_2==2175957910) && ((a3.field_3.field_1==E_26_6) && (a3.field_3.field_2==168) && ((a3.field_3.field_3.field_1==80343449468928) && (a3.field_3.field_3.field_2==E_41_3) && (a3.field_3.field_3.field_3==458518304) && ((a3.field_3.field_3.field_4.field_1==132879007088640) && ((a3.field_3.field_3.field_4.field_2.field_1==141) && (a3.field_3.field_3.field_4.field_2.field_2==0.3125)) && (a3.field_3.field_3.field_4.field_3==67929798082560) && ((a3.field_3.field_3.field_4.field_4.field_1==-0.65625) && (a3.field_3.field_3.field_4.field_4.field_2==121657342951424) && (((a3.field_3.field_3.field_4.field_4.field_3.field_1.field_1==53) && (a3.field_3.field_3.field_4.field_4.field_3.field_1.field_2==-0.0546875) && (a3.field_3.field_3.field_4.field_4.field_3.field_1.field_3==110) && (a3.field_3.field_3.field_4.field_4.field_3.field_1.field_4==109205112356864) && (a3.field_3.field_3.field_4.field_4.field_3.field_1.field_5==E_2_5) && (a3.field_3.field_3.field_4.field_4.field_3.field_1.field_6==3971726706)) && ((a3.field_3.field_3.field_4.field_4.field_3.field_2.field_1==-3.20703125) && (a3.field_3.field_3.field_4.field_4.field_3.field_2.field_2==177956855611392) && (a3.field_3.field_3.field_4.field_4.field_3.field_2.field_3==219483313799168)) && ((a3.field_3.field_3.field_4.field_4.field_3.field_3.field_1==1.265625) && (a3.field_3.field_3.field_4.field_4.field_3.field_3.field_2==E_2_6))) && (((a3.field_3.field_3.field_4.field_4.field_4.field_1.field_1==2465490790) && (a3.field_3.field_3.field_4.field_4.field_4.field_1.field_2==0.53125) && (a3.field_3.field_3.field_4.field_4.field_4.field_1.field_3==-0.078125) && ((a3.field_3.field_3.field_4.field_4.field_4.field_1.field_4.field_1==0.3125) && (a3.field_3.field_3.field_4.field_4.field_4.field_1.field_4.field_2==E_2_2))) && (a3.field_3.field_3.field_4.field_4.field_4.field_2==219))))) && ((a3.field_3.field_4.field_1==-0.828125) && (((a3.field_3.field_4.field_2.field_1.field_1==1.484375) && (a3.field_3.field_4.field_2.field_1.field_2==E_2_3)) && (a3.field_3.field_4.field_2.field_2==223230053711872) && ((a3.field_3.field_4.field_2.field_3.field_1==0.421875) && (a3.field_3.field_4.field_2.field_3.field_2==E_2_4)) && (a3.field_3.field_4.field_2.field_4==-0.875) && (a3.field_3.field_4.field_2.field_5==208129902903296) && ((a3.field_3.field_4.field_2.field_6.field_1==-2.94921875) && (a3.field_3.field_4.field_2.field_6.field_2==217811484278784) && (a3.field_3.field_4.field_2.field_6.field_3==95447919886336))) && ((a3.field_3.field_4.field_3.field_1==-1.0625) && (a3.field_3.field_4.field_3.field_2==-1.375) && (a3.field_3.field_4.field_3.field_3==217105262837760)) && (a3.field_3.field_4.field_4==0.5546875) && (a3.field_3.field_4.field_5==E_11_4) && (a3.field_3.field_4.field_6==-2.32421875)) && (a3.field_3.field_5==4119368836) && (a3.field_3.field_6==-0.484375)) && ((a3.field_4.field_1==E_19_2) && ((a3.field_4.field_2.field_1==-3.52734375) && ((a3.field_4.field_2.field_2.field_1==E_18_9) && (a3.field_4.field_2.field_2.field_2==3895962858) && (a3.field_4.field_2.field_2.field_3==1.40625) && (a3.field_4.field_2.field_2.field_4==E_19_8) && ((a3.field_4.field_2.field_2.field_5.field_1==-0.1484375) && (a3.field_4.field_2.field_2.field_5.field_2==0.92578125) && ((a3.field_4.field_2.field_2.field_5.field_3.field_1==-0.265625) && (((a3.field_4.field_2.field_2.field_5.field_3.field_2.field_1.field_1==-1.328125) && (a3.field_4.field_2.field_2.field_5.field_3.field_2.field_1.field_2==E_2_5)) && (a3.field_4.field_2.field_2.field_5.field_3.field_2.field_2==76685686865920) && ((a3.field_4.field_2.field_2.field_5.field_3.field_2.field_3.field_1==-0.578125) && (a3.field_4.field_2.field_2.field_5.field_3.field_2.field_3.field_2==E_2_5)) && (a3.field_4.field_2.field_2.field_5.field_3.field_2.field_4==0.4375) && (a3.field_4.field_2.field_2.field_5.field_3.field_2.field_5==31133991829504) && ((a3.field_4.field_2.field_2.field_5.field_3.field_2.field_6.field_1==-0.59765625) && (a3.field_4.field_2.field_2.field_5.field_3.field_2.field_6.field_2==81066773446656) && (a3.field_4.field_2.field_2.field_5.field_3.field_2.field_6.field_3==93021535076352))) && ((a3.field_4.field_2.field_2.field_5.field_3.field_3.field_1==-2.6328125) && (a3.field_4.field_2.field_2.field_5.field_3.field_3.field_2==-0.28125) && (a3.field_4.field_2.field_2.field_5.field_3.field_3.field_3==29358042644480)) && (a3.field_4.field_2.field_2.field_5.field_3.field_4==0.015625) && (a3.field_4.field_2.field_2.field_5.field_3.field_5==E_11_5) && (a3.field_4.field_2.field_2.field_5.field_3.field_6==-2.60546875))) && (((a3.field_4.field_2.field_2.field_6.field_1.field_1==-1.7734375) && (a3.field_4.field_2.field_2.field_6.field_1.field_2==97291012014080) && (a3.field_4.field_2.field_2.field_6.field_1.field_3==203235864870912)) && (a3.field_4.field_2.field_2.field_6.field_2==-0.078125) && ((a3.field_4.field_2.field_2.field_6.field_3.field_1==1308944570) && (((a3.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_1==17) && ((a3.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_1==169812367376384) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_2==90) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_3==214389768) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_4==130) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_5==-1.5390625) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_6==3.83984375)) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_3==4258613008) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_4==E_2_6)) && ((a3.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_1==103) && ((a3.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_1==19826711592960) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_2==188) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_3==2910355046) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_4==99) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_5==0.2265625) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_6==-1.4453125)) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_3==2141412632) && (a3.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_4==E_2_6))) && (a3.field_4.field_2.field_2.field_6.field_3.field_3==169766818938880) && (a3.field_4.field_2.field_2.field_6.field_3.field_4==1.03125) && (a3.field_4.field_2.field_2.field_6.field_3.field_5==29)) && ((a3.field_4.field_2.field_2.field_6.field_4.field_1==3) && (a3.field_4.field_2.field_2.field_6.field_4.field_2==1.359375)))) && (a3.field_4.field_2.field_3==173832218083328) && (a3.field_4.field_2.field_4==2.25390625)) && (a3.field_4.field_3==-1.25) && (a3.field_4.field_4==3.0546875)))) {
+ goto bad;
+ }
+
+ return 3531194568;
+
+bad:
+ return 1575783646;
+}
+
+uint32_t
+fn_12_c(t63 a1, double a2, uint32_t a3, t68 a4)
+{
+ if (!(((a1.field_1.field_1==1) && (a1.field_1.field_2==-0.953125) && (a1.field_1.field_3==28380691169280) && ((a1.field_1.field_4.field_1==266791176896512) && (a1.field_1.field_4.field_2==173) && (a1.field_1.field_4.field_3==841702660) && (a1.field_1.field_4.field_4==225) && (a1.field_1.field_4.field_5==-2.734375) && (a1.field_1.field_4.field_6==-2.24609375))) && ((a1.field_2.field_1==-0.875) && ((a1.field_2.field_2.field_1==2975373622) && (a1.field_2.field_2.field_2==1.46875) && (a1.field_2.field_2.field_3==-0.828125) && ((a1.field_2.field_2.field_4.field_1==0.390625) && (a1.field_2.field_2.field_4.field_2==E_2_2)))) && (a1.field_3==0.515625) && ((a1.field_4.field_1==E_18_1) && (((a1.field_4.field_2.field_1.field_1==124) && (a1.field_4.field_2.field_1.field_2==0.00390625) && (a1.field_4.field_2.field_1.field_3==79) && (a1.field_4.field_2.field_1.field_4==236261015289856) && (a1.field_4.field_2.field_1.field_5==E_2_3) && (a1.field_4.field_2.field_1.field_6==2156655358)) && ((a1.field_4.field_2.field_2.field_1==2.4140625) && (a1.field_4.field_2.field_2.field_2==51905146388480) && (a1.field_4.field_2.field_2.field_3==223439089434624)) && ((a1.field_4.field_2.field_3.field_1==0.53125) && (a1.field_4.field_2.field_3.field_2==E_2_1)))) && (a1.field_5==255485003694080) && (a1.field_6==3.1015625))) {
+ goto bad;
+ }
+
+ if (!(a2==3.234375)) {
+ goto bad;
+ }
+
+ if (!(a3==1992315490)) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==E_64_6) && ((a4.field_2.field_1==-1.48828125) && (a4.field_2.field_2==1219436194) && (a4.field_2.field_3==50) && (a4.field_2.field_4==41975805771776) && (a4.field_2.field_5==2064448724) && (a4.field_2.field_6==122353563467776)) && (((a4.field_3.field_1.field_1==E_56_2) && (a4.field_3.field_1.field_2==1046332580) && ((a4.field_3.field_1.field_3.field_1==E_26_8) && (a4.field_3.field_1.field_3.field_2==209) && ((a4.field_3.field_1.field_3.field_3.field_1==142694099582976) && (a4.field_3.field_1.field_3.field_3.field_2==E_41_2) && (a4.field_3.field_1.field_3.field_3.field_3==1010741440) && ((a4.field_3.field_1.field_3.field_3.field_4.field_1==61520011984896) && ((a4.field_3.field_1.field_3.field_3.field_4.field_2.field_1==110) && (a4.field_3.field_1.field_3.field_3.field_4.field_2.field_2==-0.125)) && (a4.field_3.field_1.field_3.field_3.field_4.field_3==32251070906368) && ((a4.field_3.field_1.field_3.field_3.field_4.field_4.field_1==-0.546875) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_2==100567390355456) && (((a4.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_1==16) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_2==-2.8671875) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_3==38) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_4==106528154320896) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_5==E_2_6) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_6==154283124)) && ((a4.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_2.field_1==-2.69140625) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_2.field_2==121530523058176) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_2.field_3==195491981033472)) && ((a4.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_3.field_1==0.296875) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_3.field_2==E_2_5))) && (((a4.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_1.field_1==1183512522) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_1.field_2==1.265625) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_1.field_3==-1.453125) && ((a4.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_1.field_4.field_1==-0.09375) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_1.field_4.field_2==E_2_1))) && (a4.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_2==132))))) && ((a4.field_3.field_1.field_3.field_4.field_1==1.28125) && (((a4.field_3.field_1.field_3.field_4.field_2.field_1.field_1==-0.65625) && (a4.field_3.field_1.field_3.field_4.field_2.field_1.field_2==E_2_5)) && (a4.field_3.field_1.field_3.field_4.field_2.field_2==177899132157952) && ((a4.field_3.field_1.field_3.field_4.field_2.field_3.field_1==-1.234375) && (a4.field_3.field_1.field_3.field_4.field_2.field_3.field_2==E_2_2)) && (a4.field_3.field_1.field_3.field_4.field_2.field_4==1.4375) && (a4.field_3.field_1.field_3.field_4.field_2.field_5==97002546921472) && ((a4.field_3.field_1.field_3.field_4.field_2.field_6.field_1==-0.09375) && (a4.field_3.field_1.field_3.field_4.field_2.field_6.field_2==109686219472896) && (a4.field_3.field_1.field_3.field_4.field_2.field_6.field_3==226948153081856))) && ((a4.field_3.field_1.field_3.field_4.field_3.field_1==0.80078125) && (a4.field_3.field_1.field_3.field_4.field_3.field_2==0.6875) && (a4.field_3.field_1.field_3.field_4.field_3.field_3==46040566726656)) && (a4.field_3.field_1.field_3.field_4.field_4==1.30859375) && (a4.field_3.field_1.field_3.field_4.field_5==E_11_6) && (a4.field_3.field_1.field_3.field_4.field_6==-1.4609375)) && (a4.field_3.field_1.field_3.field_5==197005372) && (a4.field_3.field_1.field_3.field_6==0.640625)) && ((a4.field_3.field_1.field_4.field_1==E_19_3) && ((a4.field_3.field_1.field_4.field_2.field_1==-2.33203125) && ((a4.field_3.field_1.field_4.field_2.field_2.field_1==E_18_2) && (a4.field_3.field_1.field_4.field_2.field_2.field_2==187071608) && (a4.field_3.field_1.field_4.field_2.field_2.field_3==0.921875) && (a4.field_3.field_1.field_4.field_2.field_2.field_4==E_19_8) && ((a4.field_3.field_1.field_4.field_2.field_2.field_5.field_1==-1.4140625) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_2==1.54296875) && ((a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_1==1.34375) && (((a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_1.field_1==0.90625) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_1.field_2==E_2_5)) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_2==125311720620032) && ((a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_3.field_1==0.625) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_3.field_2==E_2_1)) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_4==-0.921875) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_5==92709840093184) && ((a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_6.field_1==-2.73828125) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_6.field_2==134199459708928) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_6.field_3==81184594198528))) && ((a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_3.field_1==-0.046875) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_3.field_2==1.453125) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_3.field_3==190870813671424)) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_4==-1.55859375) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_5==E_11_4) && (a4.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_6==-0.8125))) && (((a4.field_3.field_1.field_4.field_2.field_2.field_6.field_1.field_1==-0.28125) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_1.field_2==65980206415872) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_1.field_3==69437640933376)) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_2==0.875) && ((a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_1==1203783426) && (((a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_1==243) && ((a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_1==35503180218368) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_2==123) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_3==359364016) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_4==43) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_5==-1.74609375) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_6==3.69140625)) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_3==2099391278) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_4==E_2_6)) && ((a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_1==230) && ((a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_1==78725579800576) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_2==184) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_3==1476808480) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_4==250) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_5==2.0546875) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_6==0.40234375)) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_3==1316011470) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_4==E_2_6))) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_3==7917143982080) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_4==0.296875) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_5==104)) && ((a4.field_3.field_1.field_4.field_2.field_2.field_6.field_4.field_1==254) && (a4.field_3.field_1.field_4.field_2.field_2.field_6.field_4.field_2==-0.71875)))) && (a4.field_3.field_1.field_4.field_2.field_3==198977607696384) && (a4.field_3.field_1.field_4.field_2.field_4==0.46875)) && (a4.field_3.field_1.field_4.field_3==0.53125) && (a4.field_3.field_1.field_4.field_4==-2.57421875))) && ((a4.field_3.field_2.field_1==0.921875) && ((a4.field_3.field_2.field_2.field_1==3.24609375) && (((a4.field_3.field_2.field_2.field_2.field_1.field_1==3.5) && ((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_1==E_18_1) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_2==3714170846) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_3==-1.34375) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_4==E_19_5) && ((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_1==3.50390625) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_2==-2.00390625) && ((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_1==1.046875) && (((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_1==1.328125) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_2==E_2_5)) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_2==227074820669440) && ((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_1==1.0) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_2==E_2_1)) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_4==0.09375) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_5==45904748347392) && ((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_1==3.82421875) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_2==82226218532864) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_3==201097409331200))) && ((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_1==-1.59765625) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_2==-0.921875) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_3==209014553313280)) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_4==3.0546875) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_5==E_11_4) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_6==1.83984375))) && (((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_1.field_1==-2.62890625) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_1.field_2==89468697313280) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_1.field_3==83042110013440)) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_2==1.046875) && ((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_1==2099223986) && (((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_1==22) && ((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_1==210486406021120) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_2==111) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_3==702570652) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_4==156) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_5==0.0859375) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_6==1.71875)) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_3==2409538788) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_4==E_2_5)) && ((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_1==141) && ((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_1==135559761887232) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_2==124) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_3==1544636438) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_4==77) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_5==-0.00390625) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_6==3.0390625)) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_3==1992571074) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_4==E_2_3))) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_3==50968790564864) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_4==-1.015625) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_5==200)) && ((a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_4.field_1==98) && (a4.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_4.field_2==1.328125)))) && (a4.field_3.field_2.field_2.field_2.field_1.field_3==190118914424832) && (a4.field_3.field_2.field_2.field_2.field_1.field_4==3.87890625)) && (a4.field_3.field_2.field_2.field_2.field_2==1.22265625) && (a4.field_3.field_2.field_2.field_2.field_3==236152535121920)) && (a4.field_3.field_2.field_2.field_3==1350095886) && (a4.field_3.field_2.field_2.field_4==1.421875)) && ((a4.field_3.field_2.field_3.field_1==1.33984375)) && (a4.field_3.field_2.field_4==2.37109375) && ((a4.field_3.field_2.field_5.field_1==-1.4375)) && (((a4.field_3.field_2.field_6.field_1.field_1==117967668903936) && ((a4.field_3.field_2.field_6.field_1.field_2.field_1==61) && (a4.field_3.field_2.field_6.field_1.field_2.field_2==-0.921875)) && (a4.field_3.field_2.field_6.field_1.field_3==8916022067200) && ((a4.field_3.field_2.field_6.field_1.field_4.field_1==0.78125) && (a4.field_3.field_2.field_6.field_1.field_4.field_2==260068453384192) && (((a4.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_1==151) && (a4.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_2==0.04296875) && (a4.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_3==122) && (a4.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_4==20912341385216) && (a4.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_5==E_2_6) && (a4.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_6==3592715758)) && ((a4.field_3.field_2.field_6.field_1.field_4.field_3.field_2.field_1==-0.9765625) && (a4.field_3.field_2.field_6.field_1.field_4.field_3.field_2.field_2==138666200793088) && (a4.field_3.field_2.field_6.field_1.field_4.field_3.field_2.field_3==204194791948288)) && ((a4.field_3.field_2.field_6.field_1.field_4.field_3.field_3.field_1==1.0625) && (a4.field_3.field_2.field_6.field_1.field_4.field_3.field_3.field_2==E_2_6))) && (((a4.field_3.field_2.field_6.field_1.field_4.field_4.field_1.field_1==3893487284) && (a4.field_3.field_2.field_6.field_1.field_4.field_4.field_1.field_2==-1.515625) && (a4.field_3.field_2.field_6.field_1.field_4.field_4.field_1.field_3==0.84375) && ((a4.field_3.field_2.field_6.field_1.field_4.field_4.field_1.field_4.field_1==-0.65625) && (a4.field_3.field_2.field_6.field_1.field_4.field_4.field_1.field_4.field_2==E_2_6))) && (a4.field_3.field_2.field_6.field_1.field_4.field_4.field_2==113)))) && (a4.field_3.field_2.field_6.field_2==-0.671875) && (a4.field_3.field_2.field_6.field_3==167371868864512) && (a4.field_3.field_2.field_6.field_4==71)))) && ((((a4.field_4.field_1.field_1.field_1==169699773906944) && ((a4.field_4.field_1.field_1.field_2.field_1==139) && (a4.field_4.field_1.field_1.field_2.field_2==1.421875)) && (a4.field_4.field_1.field_1.field_3==114279424327680) && ((a4.field_4.field_1.field_1.field_4.field_1==0.265625) && (a4.field_4.field_1.field_1.field_4.field_2==104534041427968) && (((a4.field_4.field_1.field_1.field_4.field_3.field_1.field_1==165) && (a4.field_4.field_1.field_1.field_4.field_3.field_1.field_2==2.26953125) && (a4.field_4.field_1.field_1.field_4.field_3.field_1.field_3==103) && (a4.field_4.field_1.field_1.field_4.field_3.field_1.field_4==111656380792832) && (a4.field_4.field_1.field_1.field_4.field_3.field_1.field_5==E_2_5) && (a4.field_4.field_1.field_1.field_4.field_3.field_1.field_6==4276697078)) && ((a4.field_4.field_1.field_1.field_4.field_3.field_2.field_1==3.14453125) && (a4.field_4.field_1.field_1.field_4.field_3.field_2.field_2==53795771645952) && (a4.field_4.field_1.field_1.field_4.field_3.field_2.field_3==19714984378368)) && ((a4.field_4.field_1.field_1.field_4.field_3.field_3.field_1==1.234375) && (a4.field_4.field_1.field_1.field_4.field_3.field_3.field_2==E_2_1))) && (((a4.field_4.field_1.field_1.field_4.field_4.field_1.field_1==1912043998) && (a4.field_4.field_1.field_1.field_4.field_4.field_1.field_2==-0.359375) && (a4.field_4.field_1.field_1.field_4.field_4.field_1.field_3==0.796875) && ((a4.field_4.field_1.field_1.field_4.field_4.field_1.field_4.field_1==-0.671875) && (a4.field_4.field_1.field_1.field_4.field_4.field_1.field_4.field_2==E_2_3))) && (a4.field_4.field_1.field_1.field_4.field_4.field_2==168)))) && (a4.field_4.field_1.field_2==-0.625) && (a4.field_4.field_1.field_3==38298238189568) && (a4.field_4.field_1.field_4==243)) && (a4.field_4.field_2==-2.03125)) && ((a4.field_5.field_1==0.25) && (a4.field_5.field_2==67610029064192) && (((a4.field_5.field_3.field_1.field_1==213) && (a4.field_5.field_3.field_1.field_2==2.8046875) && (a4.field_5.field_3.field_1.field_3==215) && (a4.field_5.field_3.field_1.field_4==107128833966080) && (a4.field_5.field_3.field_1.field_5==E_2_5) && (a4.field_5.field_3.field_1.field_6==1069858560)) && ((a4.field_5.field_3.field_2.field_1==3.6484375) && (a4.field_5.field_3.field_2.field_2==51416336302080) && (a4.field_5.field_3.field_2.field_3==251914374217728)) && ((a4.field_5.field_3.field_3.field_1==0.8125) && (a4.field_5.field_3.field_3.field_2==E_2_4))) && (((a4.field_5.field_4.field_1.field_1==1252682164) && (a4.field_5.field_4.field_1.field_2==-0.09375) && (a4.field_5.field_4.field_1.field_3==0.25) && ((a4.field_5.field_4.field_1.field_4.field_1==-0.96875) && (a4.field_5.field_4.field_1.field_4.field_2==E_2_4))) && (a4.field_5.field_4.field_2==166))))) {
+ goto bad;
+ }
+
+ return 2964505044;
+
+bad:
+ return 415294892;
+}
+
+t74
+fn_13_c(t26 a1, uint32_t a2, t70 a3, double a4, t73 a5)
+{
+ if (!(a1==E_26_9)) {
+ goto bad;
+ }
+
+ if (!(a2==2931952582)) {
+ goto bad;
+ }
+
+ if (!(((a3.field_1.field_1==E_29_2) && (a3.field_1.field_2==220) && (a3.field_1.field_3==281245651828737) && (a3.field_1.field_4==161440489930752)))) {
+ goto bad;
+ }
+
+ if (!(a4==0.62890625)) {
+ goto bad;
+ }
+
+ if (!((a5.field_1==0.90625) && ((a5.field_2.field_1==109360486285312) && (a5.field_2.field_2==-2.51953125) && (a5.field_2.field_3==3374314812) && (a5.field_2.field_4==4132094974) && (a5.field_2.field_5==143973346836480)) && ((a5.field_3.field_1==93) && (a5.field_3.field_2==3133286358) && (a5.field_3.field_3==129)) && (a5.field_4==0.76953125))) {
+ goto bad;
+ }
+
+ return E_74_6;
+
+bad:
+ return E_74_2;
+}
+
+uint64_t
+fn_14_c(uint32_t a1, uint8_t a2, t78 a3, t81 a4, t32 a5, t82 a6, t85 a7)
+{
+ if (!(a1==2391308062)) {
+ goto bad;
+ }
+
+ if (!(a2==66)) {
+ goto bad;
+ }
+
+ if (!(((a3.field_1.field_1==85) && (a3.field_1.field_2==-2.80859375) && (a3.field_1.field_3==155146548)) && ((a3.field_2.field_1==235) && (a3.field_2.field_2==-1.2890625)) && (a3.field_3==E_77_8))) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==E_79_1) && (a4.field_2==274420389904384) && (a4.field_3==E_80_2))) {
+ goto bad;
+ }
+
+ if (!((a5.field_1==1325686188))) {
+ goto bad;
+ }
+
+ if (!(a6==E_82_5)) {
+ goto bad;
+ }
+
+ if (!((a7.field_1==558424532) && (((a7.field_2.field_1.field_1==206) && ((a7.field_2.field_1.field_2.field_1==150202022100992) && (a7.field_2.field_1.field_2.field_2==157) && (a7.field_2.field_1.field_2.field_3==860064444) && (a7.field_2.field_1.field_2.field_4==215) && (a7.field_2.field_1.field_2.field_5==-1.9765625) && (a7.field_2.field_1.field_2.field_6==-2.18359375)) && (a7.field_2.field_1.field_3==2792603168) && (a7.field_2.field_1.field_4==E_2_1)) && ((a7.field_2.field_2.field_1==47) && ((a7.field_2.field_2.field_2.field_1==209371989409792) && (a7.field_2.field_2.field_2.field_2==167) && (a7.field_2.field_2.field_2.field_3==1162519188) && (a7.field_2.field_2.field_2.field_4==232) && (a7.field_2.field_2.field_2.field_5==2.2109375) && (a7.field_2.field_2.field_2.field_6==3.82421875)) && (a7.field_2.field_2.field_3==2196829234) && (a7.field_2.field_2.field_4==E_2_2))) && (a7.field_3==239020664553472) && (a7.field_4==645390774) && (((a7.field_5.field_1.field_1==0.375) && ((a7.field_5.field_1.field_2.field_1==-3.5625) && (((a7.field_5.field_1.field_2.field_2.field_1.field_1==1.97265625) && ((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_1==E_18_8) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_2==3857006490) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_3==1.4375) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_4==E_19_8) && ((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_1==3.66015625) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_2==2.25390625) && ((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_1==-0.5) && (((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_1==-1.265625) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_2==E_2_4)) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_2==246081152876544) && ((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_1==0.671875) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_2==E_2_5)) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_4==0.6875) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_5==270577423351808) && ((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_1==-3.7734375) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_2==103229432922112) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_3==25981307060224))) && ((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_1==-2.328125) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_2==-1.21875) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_3==210485456797696)) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_4==-0.21484375) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_5==E_11_1) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_6==0.23828125))) && (((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_1.field_1==-0.296875) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_1.field_2==149437025615872) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_1.field_3==217610901782528)) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_2==-0.59375) && ((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_1==2925618826) && (((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_1==100) && ((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_1==100015436857344) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_2==111) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_3==988840590) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_4==64) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_5==-0.8671875) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_6==-2.19140625)) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_3==951054362) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_4==E_2_2)) && ((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_1==143) && ((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_1==89940269858816) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_2==197) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_3==1866268236) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_4==8) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_5==0.546875) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_6==-2.7265625)) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_3==4272545584) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_4==E_2_4))) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_3==145750579740672) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_4==-1.296875) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_5==201)) && ((a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_4.field_1==160) && (a7.field_5.field_1.field_2.field_2.field_1.field_2.field_6.field_4.field_2==1.046875)))) && (a7.field_5.field_1.field_2.field_2.field_1.field_3==73607486504960) && (a7.field_5.field_1.field_2.field_2.field_1.field_4==1.15625)) && (a7.field_5.field_1.field_2.field_2.field_2==-1.05078125) && (a7.field_5.field_1.field_2.field_2.field_3==203696970924032)) && (a7.field_5.field_1.field_2.field_3==767588794) && (a7.field_5.field_1.field_2.field_4==-1.140625)) && ((a7.field_5.field_1.field_3.field_1==-3.6328125)) && (a7.field_5.field_1.field_4==2.8125) && ((a7.field_5.field_1.field_5.field_1==0.09375)) && (((a7.field_5.field_1.field_6.field_1.field_1==109872603332608) && ((a7.field_5.field_1.field_6.field_1.field_2.field_1==75) && (a7.field_5.field_1.field_6.field_1.field_2.field_2==0.828125)) && (a7.field_5.field_1.field_6.field_1.field_3==181185840939008) && ((a7.field_5.field_1.field_6.field_1.field_4.field_1==0.578125) && (a7.field_5.field_1.field_6.field_1.field_4.field_2==276458107961344) && (((a7.field_5.field_1.field_6.field_1.field_4.field_3.field_1.field_1==221) && (a7.field_5.field_1.field_6.field_1.field_4.field_3.field_1.field_2==2.8125) && (a7.field_5.field_1.field_6.field_1.field_4.field_3.field_1.field_3==138) && (a7.field_5.field_1.field_6.field_1.field_4.field_3.field_1.field_4==51979432886272) && (a7.field_5.field_1.field_6.field_1.field_4.field_3.field_1.field_5==E_2_4) && (a7.field_5.field_1.field_6.field_1.field_4.field_3.field_1.field_6==4196052024)) && ((a7.field_5.field_1.field_6.field_1.field_4.field_3.field_2.field_1==-2.203125) && (a7.field_5.field_1.field_6.field_1.field_4.field_3.field_2.field_2==57078884073472) && (a7.field_5.field_1.field_6.field_1.field_4.field_3.field_2.field_3==36038635683840)) && ((a7.field_5.field_1.field_6.field_1.field_4.field_3.field_3.field_1==-0.90625) && (a7.field_5.field_1.field_6.field_1.field_4.field_3.field_3.field_2==E_2_5))) && (((a7.field_5.field_1.field_6.field_1.field_4.field_4.field_1.field_1==2773883292) && (a7.field_5.field_1.field_6.field_1.field_4.field_4.field_1.field_2==-0.625) && (a7.field_5.field_1.field_6.field_1.field_4.field_4.field_1.field_3==0.25) && ((a7.field_5.field_1.field_6.field_1.field_4.field_4.field_1.field_4.field_1==-0.703125) && (a7.field_5.field_1.field_6.field_1.field_4.field_4.field_1.field_4.field_2==E_2_1))) && (a7.field_5.field_1.field_6.field_1.field_4.field_4.field_2==215)))) && (a7.field_5.field_1.field_6.field_2==1.328125) && (a7.field_5.field_1.field_6.field_3==140846684569600) && (a7.field_5.field_1.field_6.field_4==144))) && (a7.field_5.field_2==432794756) && (a7.field_5.field_3==2744398968)) && ((a7.field_6.field_1==153) && (a7.field_6.field_2==270401691844608)))) {
+ goto bad;
+ }
+
+ return 278379121082369;
+
+bad:
+ return 71555255238656;
+}
+
+t102
+fn_15_c(t86 a1, t69 a2, t88 a3, t93 a4, t95 a5, t25 a6, float a7, t60 a8, t97 a9, t100 a10)
+{
+ if (!(a1==E_86_10)) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==E_29_3) && (a2.field_2==174) && (a2.field_3==120887724867584) && (a2.field_4==122558970331136))) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==E_87_6) && (a3.field_2==E_19_4) && ((a3.field_3.field_1==13773365706752) && (a3.field_3.field_2==103) && (a3.field_3.field_3==2174769352) && (a3.field_3.field_4==176) && (a3.field_3.field_5==-3.88671875) && (a3.field_3.field_6==-0.2578125)) && (a3.field_4==E_48_7))) {
+ goto bad;
+ }
+
+ if (!(((a4.field_1.field_1==2.3515625) && (a4.field_1.field_2==0.375) && (((a4.field_1.field_3.field_1.field_1==225) && (a4.field_1.field_3.field_1.field_2==3.30859375) && (a4.field_1.field_3.field_1.field_3==307894648)) && ((a4.field_1.field_3.field_2.field_1==11) && (a4.field_1.field_3.field_2.field_2==1.78125)) && (a4.field_1.field_3.field_3==E_77_8))) && (a4.field_2==E_90_6) && (((a4.field_3.field_1.field_1==-0.5234375) && (a4.field_3.field_1.field_2==132763972009984) && (a4.field_3.field_1.field_3==229659410694144)) && (a4.field_3.field_2==-0.78125) && ((a4.field_3.field_3.field_1==1759559384) && (((a4.field_3.field_3.field_2.field_1.field_1==49) && ((a4.field_3.field_3.field_2.field_1.field_2.field_1==136392379072512) && (a4.field_3.field_3.field_2.field_1.field_2.field_2==89) && (a4.field_3.field_3.field_2.field_1.field_2.field_3==217892376) && (a4.field_3.field_3.field_2.field_1.field_2.field_4==68) && (a4.field_3.field_3.field_2.field_1.field_2.field_5==-2.91796875) && (a4.field_3.field_3.field_2.field_1.field_2.field_6==-1.44140625)) && (a4.field_3.field_3.field_2.field_1.field_3==411030898) && (a4.field_3.field_3.field_2.field_1.field_4==E_2_2)) && ((a4.field_3.field_3.field_2.field_2.field_1==22) && ((a4.field_3.field_3.field_2.field_2.field_2.field_1==172726771253248) && (a4.field_3.field_3.field_2.field_2.field_2.field_2==126) && (a4.field_3.field_3.field_2.field_2.field_2.field_3==1394729466) && (a4.field_3.field_3.field_2.field_2.field_2.field_4==253) && (a4.field_3.field_3.field_2.field_2.field_2.field_5==1.3359375) && (a4.field_3.field_3.field_2.field_2.field_2.field_6==-1.6875)) && (a4.field_3.field_3.field_2.field_2.field_3==691362998) && (a4.field_3.field_3.field_2.field_2.field_4==E_2_3))) && (a4.field_3.field_3.field_3==253720887820288) && (a4.field_3.field_3.field_4==-1.4375) && (a4.field_3.field_3.field_5==101)) && ((a4.field_3.field_4.field_1==249) && (a4.field_3.field_4.field_2==-1.296875))) && ((a4.field_4.field_1==528531976) && ((a4.field_4.field_2.field_1==261386844897280) && (a4.field_4.field_2.field_2==1.84765625) && (a4.field_4.field_2.field_3==2388631154) && (a4.field_4.field_2.field_4==1719296880) && (a4.field_4.field_2.field_5==155468073926656)) && (a4.field_4.field_3==3470986990) && (a4.field_4.field_4==3478856264)) && ((a4.field_5.field_1==3194978670) && (a4.field_5.field_2==1257202236) && (a4.field_5.field_3==678627422)))) {
+ goto bad;
+ }
+
+ if (!((a5.field_1==-0.953125) && (a5.field_2==1149891486) && (a5.field_3==E_94_1))) {
+ goto bad;
+ }
+
+ if (!((a6.field_1==E_24_7) && ((a6.field_2.field_1==0.953125) && (a6.field_2.field_2==E_2_3)))) {
+ goto bad;
+ }
+
+ if (!(a7==0.65625)) {
+ goto bad;
+ }
+
+ if (!((a8.field_1==174) && (a8.field_2==0.140625) && (a8.field_3==211052441108480) && ((a8.field_4.field_1==171324051947520) && (a8.field_4.field_2==72) && (a8.field_4.field_3==1314068538) && (a8.field_4.field_4==2) && (a8.field_4.field_5==2.62109375) && (a8.field_4.field_6==-3.015625)))) {
+ goto bad;
+ }
+
+ if (!((((a9.field_1.field_1.field_1==3.0234375) && (a9.field_1.field_1.field_2==1.390625) && (((a9.field_1.field_1.field_3.field_1.field_1==51) && (a9.field_1.field_1.field_3.field_1.field_2==-2.76953125) && (a9.field_1.field_1.field_3.field_1.field_3==3019798602)) && ((a9.field_1.field_1.field_3.field_2.field_1==1) && (a9.field_1.field_1.field_3.field_2.field_2==0.5078125)) && (a9.field_1.field_1.field_3.field_3==E_77_8))) && (a9.field_1.field_2==E_90_7) && (((a9.field_1.field_3.field_1.field_1==-3.71484375) && (a9.field_1.field_3.field_1.field_2==157999771287552) && (a9.field_1.field_3.field_1.field_3==111072570245120)) && (a9.field_1.field_3.field_2==0.21875) && ((a9.field_1.field_3.field_3.field_1==1336322566) && (((a9.field_1.field_3.field_3.field_2.field_1.field_1==0) && ((a9.field_1.field_3.field_3.field_2.field_1.field_2.field_1==240426317512704) && (a9.field_1.field_3.field_3.field_2.field_1.field_2.field_2==157) && (a9.field_1.field_3.field_3.field_2.field_1.field_2.field_3==52590348) && (a9.field_1.field_3.field_3.field_2.field_1.field_2.field_4==176) && (a9.field_1.field_3.field_3.field_2.field_1.field_2.field_5==1.80859375) && (a9.field_1.field_3.field_3.field_2.field_1.field_2.field_6==2.58984375)) && (a9.field_1.field_3.field_3.field_2.field_1.field_3==1153624366) && (a9.field_1.field_3.field_3.field_2.field_1.field_4==E_2_1)) && ((a9.field_1.field_3.field_3.field_2.field_2.field_1==206) && ((a9.field_1.field_3.field_3.field_2.field_2.field_2.field_1==180814220492800) && (a9.field_1.field_3.field_3.field_2.field_2.field_2.field_2==26) && (a9.field_1.field_3.field_3.field_2.field_2.field_2.field_3==299703506) && (a9.field_1.field_3.field_3.field_2.field_2.field_2.field_4==32) && (a9.field_1.field_3.field_3.field_2.field_2.field_2.field_5==1.73828125) && (a9.field_1.field_3.field_3.field_2.field_2.field_2.field_6==3.32421875)) && (a9.field_1.field_3.field_3.field_2.field_2.field_3==3465599182) && (a9.field_1.field_3.field_3.field_2.field_2.field_4==E_2_4))) && (a9.field_1.field_3.field_3.field_3==244610903965696) && (a9.field_1.field_3.field_3.field_4==-1.546875) && (a9.field_1.field_3.field_3.field_5==193)) && ((a9.field_1.field_3.field_4.field_1==146) && (a9.field_1.field_3.field_4.field_2==-1.515625))) && ((a9.field_1.field_4.field_1==1374840658) && ((a9.field_1.field_4.field_2.field_1==142626650193920) && (a9.field_1.field_4.field_2.field_2==1.80859375) && (a9.field_1.field_4.field_2.field_3==1480961136) && (a9.field_1.field_4.field_2.field_4==292227856) && (a9.field_1.field_4.field_2.field_5==35406836006912)) && (a9.field_1.field_4.field_3==3934363586) && (a9.field_1.field_4.field_4==1628550422)) && ((a9.field_1.field_5.field_1==554328638) && (a9.field_1.field_5.field_2==3308010754) && (a9.field_1.field_5.field_3==4278941526))) && (a9.field_2==-2.8046875) && ((a9.field_3.field_1==-0.31640625) && (a9.field_3.field_2==1.77734375)))) {
+ goto bad;
+ }
+
+ if (!(((((a10.field_1.field_1.field_1.field_1==-0.578125) && ((a10.field_1.field_1.field_1.field_2.field_1==-0.7265625) && (((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_1==-2.6015625) && ((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_1==E_18_5) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_2==3722140840) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_3==1.234375) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_4==E_19_4) && ((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_1==0.7421875) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_2==2.03125) && ((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_1==-0.90625) && (((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_1==1.46875) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_2==E_2_5)) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_2==16987441070080) && ((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_1==-0.125) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_2==E_2_3)) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_4==1.0625) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_5==215665831968768) && ((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_1==1.7265625) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_2==135345495736320) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_3==22229593620480))) && ((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_1==2.16015625) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_2==0.625) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_3==114942210998272)) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_4==-2.71484375) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_5==E_11_3) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_6==-0.2421875))) && (((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_1.field_1==2.91796875) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_1.field_2==59953140727808) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_1.field_3==184442813546496)) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_2==0.03125) && ((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_1==1648496868) && (((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_1==248) && ((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_1==258110700650496) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_2==141) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_3==1835743428) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_4==200) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_5==-0.42578125) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_6==2.7890625)) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_3==1625618080) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_4==E_2_2)) && ((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_1==17) && ((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_1==96824602525696) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_2==239) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_3==545066032) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_4==206) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_5==-1.140625) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_6==3.6171875)) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_3==2459246160) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_4==E_2_1))) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_3==124927959629824) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_4==0.46875) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_5==218)) && ((a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_4.field_1==36) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_4.field_2==-1.375)))) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_3==1156421255168) && (a10.field_1.field_1.field_1.field_2.field_2.field_1.field_4==0.4921875)) && (a10.field_1.field_1.field_1.field_2.field_2.field_2==0.2265625) && (a10.field_1.field_1.field_1.field_2.field_2.field_3==246949201182720)) && (a10.field_1.field_1.field_1.field_2.field_3==3332544584) && (a10.field_1.field_1.field_1.field_2.field_4==-0.984375)) && ((a10.field_1.field_1.field_1.field_3.field_1==-0.87890625)) && (a10.field_1.field_1.field_1.field_4==-2.66015625) && ((a10.field_1.field_1.field_1.field_5.field_1==-1.078125)) && (((a10.field_1.field_1.field_1.field_6.field_1.field_1==85664792313856) && ((a10.field_1.field_1.field_1.field_6.field_1.field_2.field_1==181) && (a10.field_1.field_1.field_1.field_6.field_1.field_2.field_2==0.265625)) && (a10.field_1.field_1.field_1.field_6.field_1.field_3==24759761633280) && ((a10.field_1.field_1.field_1.field_6.field_1.field_4.field_1==-1.078125) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_2==123531649613824) && (((a10.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_1==119) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_2==-1.08203125) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_3==129) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_4==228120870649856) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_5==E_2_2) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_6==2715867670)) && ((a10.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_2.field_1==0.9140625) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_2.field_2==183028377845760) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_2.field_3==167569567645696)) && ((a10.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_3.field_1==-0.96875) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_3.field_2==E_2_5))) && (((a10.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_1.field_1==168190774) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_1.field_2==1.078125) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_1.field_3==0.234375) && ((a10.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_1.field_4.field_1==-1.0) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_1.field_4.field_2==E_2_6))) && (a10.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_2==148)))) && (a10.field_1.field_1.field_1.field_6.field_2==0.765625) && (a10.field_1.field_1.field_1.field_6.field_3==120963210805248) && (a10.field_1.field_1.field_1.field_6.field_4==117))) && (a10.field_1.field_1.field_2==2231554362) && (a10.field_1.field_1.field_3==2636507052)) && (a10.field_1.field_2==2.703125) && (a10.field_1.field_3==191209702686720) && (a10.field_1.field_4==2.1015625) && (a10.field_1.field_5==38)) && (a10.field_2==109765657755648) && (a10.field_3==-1.1640625) && (a10.field_4==-2.046875) && ((a10.field_5.field_1==E_19_5) && (a10.field_5.field_2==3391967572)))) {
+ goto bad;
+ }
+
+ return (t102) {.field_1=0.25,.field_2=(t21) {.field_1=E_18_6,.field_2=696503716,.field_3=-1.078125,.field_4=E_19_6,.field_5=(t20) {.field_1=-3.4140625,.field_2=1.85546875,.field_3=(t12) {.field_1=-0.046875,.field_2=(t9) {.field_1=(t6) {.field_1=-0.015625,.field_2=E_2_2},.field_2=1680566779904,.field_3=(t6) {.field_1=-1.234375,.field_2=E_2_1},.field_4=0.578125,.field_5=246387639451648,.field_6=(t5) {.field_1=-2.4140625,.field_2=21180950511616,.field_3=63676999925760}},.field_3=(t10) {.field_1=-0.5546875,.field_2=0.375,.field_3=4498010144768},.field_4=-2.86328125,.field_5=E_11_4,.field_6=-1.4765625}},.field_6=(t15) {.field_1=(t5) {.field_1=1.16015625,.field_2=206263158308864,.field_3=67183469658112},.field_2=0.875,.field_3=(t13) {.field_1=2520041722,.field_2=(t8) {.field_1=(t3) {.field_1=194,.field_2=(t1) {.field_1=28598144729088,.field_2=42,.field_3=1389583824,.field_4=67,.field_5=-1.390625,.field_6=-3.390625},.field_3=1403784366,.field_4=E_2_1},.field_2=(t3) {.field_1=141,.field_2=(t1) {.field_1=230715822833664,.field_2=65,.field_3=2399362858,.field_4=237,.field_5=-1.59375,.field_6=-2.0},.field_3=3443253262,.field_4=E_2_3}},.field_3=89840887529472,.field_4=-1.484375,.field_5=234},.field_4=(t14) {.field_1=240,.field_2=-1.4375}}},.field_3=(t101) {.field_1=-1.40625},.field_4=-0.23828125};
+
+bad:
+ return (t102) {.field_1=-0.453125,.field_2=(t21) {.field_1=E_18_7,.field_2=869338882,.field_3=0.296875,.field_4=E_19_4,.field_5=(t20) {.field_1=2.26171875,.field_2=-1.1328125,.field_3=(t12) {.field_1=0.25,.field_2=(t9) {.field_1=(t6) {.field_1=1.421875,.field_2=E_2_5},.field_2=237789654155264,.field_3=(t6) {.field_1=-0.703125,.field_2=E_2_5},.field_4=-1.03125,.field_5=94734685962240,.field_6=(t5) {.field_1=-1.58203125,.field_2=279028912488449,.field_3=166458857750528}},.field_3=(t10) {.field_1=2.78515625,.field_2=1.3125,.field_3=249786336149504},.field_4=-3.125,.field_5=E_11_5,.field_6=-0.98046875}},.field_6=(t15) {.field_1=(t5) {.field_1=-0.62890625,.field_2=210339456876544,.field_3=81998632321024},.field_2=-0.4375,.field_3=(t13) {.field_1=3398079470,.field_2=(t8) {.field_1=(t3) {.field_1=87,.field_2=(t1) {.field_1=233528477483008,.field_2=37,.field_3=174654276,.field_4=8,.field_5=1.875,.field_6=0.15625},.field_3=3527113970,.field_4=E_2_1},.field_2=(t3) {.field_1=25,.field_2=(t1) {.field_1=218524851896320,.field_2=198,.field_3=4062706894,.field_4=13,.field_5=0.1484375,.field_6=-2.98828125},.field_3=1675854050,.field_4=E_2_5}},.field_3=30645607858176,.field_4=1.515625,.field_5=172},.field_4=(t14) {.field_1=6,.field_2=1.15625}}},.field_3=(t101) {.field_1=0.859375},.field_4=1.921875};
+}
+
+t15
+fn_16_c(uint64_t a1, t57 a2)
+{
+ if (!(a1==138813818142720)) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==E_26_3) && (a2.field_2==224) && ((a2.field_3.field_1==107786496507904) && (a2.field_3.field_2==E_41_3) && (a2.field_3.field_3==3940023518) && ((a2.field_3.field_4.field_1==116812990251008) && ((a2.field_3.field_4.field_2.field_1==43) && (a2.field_3.field_4.field_2.field_2==-0.203125)) && (a2.field_3.field_4.field_3==66490954678272) && ((a2.field_3.field_4.field_4.field_1==-0.734375) && (a2.field_3.field_4.field_4.field_2==151595749212160) && (((a2.field_3.field_4.field_4.field_3.field_1.field_1==3) && (a2.field_3.field_4.field_4.field_3.field_1.field_2==-3.59765625) && (a2.field_3.field_4.field_4.field_3.field_1.field_3==124) && (a2.field_3.field_4.field_4.field_3.field_1.field_4==18634915053568) && (a2.field_3.field_4.field_4.field_3.field_1.field_5==E_2_4) && (a2.field_3.field_4.field_4.field_3.field_1.field_6==2585846002)) && ((a2.field_3.field_4.field_4.field_3.field_2.field_1==-0.33984375) && (a2.field_3.field_4.field_4.field_3.field_2.field_2==105850133544960) && (a2.field_3.field_4.field_4.field_3.field_2.field_3==200111611576320)) && ((a2.field_3.field_4.field_4.field_3.field_3.field_1==-0.1875) && (a2.field_3.field_4.field_4.field_3.field_3.field_2==E_2_1))) && (((a2.field_3.field_4.field_4.field_4.field_1.field_1==3167428002) && (a2.field_3.field_4.field_4.field_4.field_1.field_2==-0.609375) && (a2.field_3.field_4.field_4.field_4.field_1.field_3==1.015625) && ((a2.field_3.field_4.field_4.field_4.field_1.field_4.field_1==-0.046875) && (a2.field_3.field_4.field_4.field_4.field_1.field_4.field_2==E_2_4))) && (a2.field_3.field_4.field_4.field_4.field_2==4))))) && ((a2.field_4.field_1==1.5) && (((a2.field_4.field_2.field_1.field_1==-1.296875) && (a2.field_4.field_2.field_1.field_2==E_2_4)) && (a2.field_4.field_2.field_2==73429141815296) && ((a2.field_4.field_2.field_3.field_1==1.453125) && (a2.field_4.field_2.field_3.field_2==E_2_6)) && (a2.field_4.field_2.field_4==0.59375) && (a2.field_4.field_2.field_5==247630766538752) && ((a2.field_4.field_2.field_6.field_1==-1.03515625) && (a2.field_4.field_2.field_6.field_2==242640090824704) && (a2.field_4.field_2.field_6.field_3==89287634190336))) && ((a2.field_4.field_3.field_1==0.8125) && (a2.field_4.field_3.field_2==-1.171875) && (a2.field_4.field_3.field_3==240883383402496)) && (a2.field_4.field_4==0.91015625) && (a2.field_4.field_5==E_11_2) && (a2.field_4.field_6==-1.25)) && (a2.field_5==2931638482) && (a2.field_6==0.71875))) {
+ goto bad;
+ }
+
+ return (t15) {.field_1=(t5) {.field_1=-3.1015625,.field_2=183885376782336,.field_3=162392907317248},.field_2=-1.09375,.field_3=(t13) {.field_1=1678328882,.field_2=(t8) {.field_1=(t3) {.field_1=226,.field_2=(t1) {.field_1=274580443365376,.field_2=223,.field_3=1866442708,.field_4=253,.field_5=2.7421875,.field_6=0.16015625},.field_3=2411587072,.field_4=E_2_1},.field_2=(t3) {.field_1=123,.field_2=(t1) {.field_1=144693939929088,.field_2=205,.field_3=1556663324,.field_4=225,.field_5=1.2890625,.field_6=1.40234375},.field_3=2084842492,.field_4=E_2_5}},.field_3=150713528483840,.field_4=-1.25,.field_5=245},.field_4=(t14) {.field_1=224,.field_2=0.890625}};
+
+bad:
+ return (t15) {.field_1=(t5) {.field_1=1.46484375,.field_2=230270032019456,.field_3=259894633955328},.field_2=0.90625,.field_3=(t13) {.field_1=2024542726,.field_2=(t8) {.field_1=(t3) {.field_1=128,.field_2=(t1) {.field_1=265414265667584,.field_2=220,.field_3=1649945756,.field_4=235,.field_5=1.84765625,.field_6=2.4921875},.field_3=3909742020,.field_4=E_2_4},.field_2=(t3) {.field_1=86,.field_2=(t1) {.field_1=132799646662656,.field_2=178,.field_3=3529069034,.field_4=252,.field_5=0.01171875,.field_6=-2.46875},.field_3=3725795130,.field_4=E_2_1}},.field_3=243128701026304,.field_4=-0.46875,.field_5=245},.field_4=(t14) {.field_1=102,.field_2=-0.140625}};
+}
+
+double
+fn_17_c(float a1, t10 a2, t35 a3, float a4, t18 a5, uint64_t a6, t3 a7, float a8, t56 a9, t72 a10)
+{
+ if (!(a1==-0.8125)) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==-2.640625) && (a2.field_2==-0.3125) && (a2.field_3==158864030433280))) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==120060447424512) && (a3.field_2==200994178))) {
+ goto bad;
+ }
+
+ if (!(a4==-1.0625)) {
+ goto bad;
+ }
+
+ if (!(a5==E_18_7)) {
+ goto bad;
+ }
+
+ if (!(a6==180628077543424)) {
+ goto bad;
+ }
+
+ if (!((a7.field_1==160) && ((a7.field_2.field_1==267308015419392) && (a7.field_2.field_2==53) && (a7.field_2.field_3==2126242378) && (a7.field_2.field_4==29) && (a7.field_2.field_5==-3.328125) && (a7.field_2.field_6==2.71875)) && (a7.field_3==324345820) && (a7.field_4==E_2_3))) {
+ goto bad;
+ }
+
+ if (!(a8==1.5625)) {
+ goto bad;
+ }
+
+ if (!(a9==E_56_5)) {
+ goto bad;
+ }
+
+ if (!((a10.field_1==0) && (a10.field_2==1742227568) && (a10.field_3==93))) {
+ goto bad;
+ }
+
+ return 2.59765625;
+
+bad:
+ return -0.67578125;
+}
+
+t68
+fn_18_c(t29 a1, t50 a2, t94 a3, t97 a4, t82 a5, uint32_t a6)
+{
+ if (!(a1==E_29_5)) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==-0.671875) && (((a2.field_2.field_1.field_1==-2.3984375) && ((a2.field_2.field_1.field_2.field_1==E_18_5) && (a2.field_2.field_1.field_2.field_2==178101928) && (a2.field_2.field_1.field_2.field_3==-1.125) && (a2.field_2.field_1.field_2.field_4==E_19_6) && ((a2.field_2.field_1.field_2.field_5.field_1==0.28515625) && (a2.field_2.field_1.field_2.field_5.field_2==-1.88671875) && ((a2.field_2.field_1.field_2.field_5.field_3.field_1==0.921875) && (((a2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_1==-0.359375) && (a2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_2==E_2_3)) && (a2.field_2.field_1.field_2.field_5.field_3.field_2.field_2==75260795158528) && ((a2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_1==0.59375) && (a2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_2==E_2_2)) && (a2.field_2.field_1.field_2.field_5.field_3.field_2.field_4==-1.515625) && (a2.field_2.field_1.field_2.field_5.field_3.field_2.field_5==64393391505408) && ((a2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_1==3.38671875) && (a2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_2==241181364584448) && (a2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_3==262564167811072))) && ((a2.field_2.field_1.field_2.field_5.field_3.field_3.field_1==3.3984375) && (a2.field_2.field_1.field_2.field_5.field_3.field_3.field_2==-0.75) && (a2.field_2.field_1.field_2.field_5.field_3.field_3.field_3==84301476790272)) && (a2.field_2.field_1.field_2.field_5.field_3.field_4==-1.7421875) && (a2.field_2.field_1.field_2.field_5.field_3.field_5==E_11_1) && (a2.field_2.field_1.field_2.field_5.field_3.field_6==1.6640625))) && (((a2.field_2.field_1.field_2.field_6.field_1.field_1==2.96484375) && (a2.field_2.field_1.field_2.field_6.field_1.field_2==25240979636224) && (a2.field_2.field_1.field_2.field_6.field_1.field_3==279218169577473)) && (a2.field_2.field_1.field_2.field_6.field_2==0.46875) && ((a2.field_2.field_1.field_2.field_6.field_3.field_1==3583795084) && (((a2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_1==121) && ((a2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_1==18449750163456) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_2==7) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_3==4231471828) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_4==27) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_5==-2.578125) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_6==1.60546875)) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_3==2763967082) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_4==E_2_3)) && ((a2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_1==127) && ((a2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_1==7883293065216) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_2==195) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_3==3293015804) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_4==183) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_5==-3.18359375) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_6==2.20703125)) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_3==4053927584) && (a2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_4==E_2_1))) && (a2.field_2.field_1.field_2.field_6.field_3.field_3==179909264015360) && (a2.field_2.field_1.field_2.field_6.field_3.field_4==1.1875) && (a2.field_2.field_1.field_2.field_6.field_3.field_5==245)) && ((a2.field_2.field_1.field_2.field_6.field_4.field_1==230) && (a2.field_2.field_1.field_2.field_6.field_4.field_2==-1.015625)))) && (a2.field_2.field_1.field_3==66953411952640) && (a2.field_2.field_1.field_4==3.87890625)) && (a2.field_2.field_2==3.04296875) && (a2.field_2.field_3==33030485442560)) && (a2.field_3==369406000) && (a2.field_4==1.203125))) {
+ goto bad;
+ }
+
+ if (!(a3==E_94_3)) {
+ goto bad;
+ }
+
+ if (!((((a4.field_1.field_1.field_1==-1.234375) && (a4.field_1.field_1.field_2==1.390625) && (((a4.field_1.field_1.field_3.field_1.field_1==30) && (a4.field_1.field_1.field_3.field_1.field_2==-3.5390625) && (a4.field_1.field_1.field_3.field_1.field_3==2512982078)) && ((a4.field_1.field_1.field_3.field_2.field_1==139) && (a4.field_1.field_1.field_3.field_2.field_2==0.36328125)) && (a4.field_1.field_1.field_3.field_3==E_77_5))) && (a4.field_1.field_2==E_90_3) && (((a4.field_1.field_3.field_1.field_1==-1.4609375) && (a4.field_1.field_3.field_1.field_2==92383916457984) && (a4.field_1.field_3.field_1.field_3==113307733983232)) && (a4.field_1.field_3.field_2==-1.265625) && ((a4.field_1.field_3.field_3.field_1==1168626982) && (((a4.field_1.field_3.field_3.field_2.field_1.field_1==109) && ((a4.field_1.field_3.field_3.field_2.field_1.field_2.field_1==206784518291456) && (a4.field_1.field_3.field_3.field_2.field_1.field_2.field_2==38) && (a4.field_1.field_3.field_3.field_2.field_1.field_2.field_3==1671741250) && (a4.field_1.field_3.field_3.field_2.field_1.field_2.field_4==162) && (a4.field_1.field_3.field_3.field_2.field_1.field_2.field_5==-1.3671875) && (a4.field_1.field_3.field_3.field_2.field_1.field_2.field_6==0.9921875)) && (a4.field_1.field_3.field_3.field_2.field_1.field_3==2717166618) && (a4.field_1.field_3.field_3.field_2.field_1.field_4==E_2_2)) && ((a4.field_1.field_3.field_3.field_2.field_2.field_1==190) && ((a4.field_1.field_3.field_3.field_2.field_2.field_2.field_1==202281623093248) && (a4.field_1.field_3.field_3.field_2.field_2.field_2.field_2==24) && (a4.field_1.field_3.field_3.field_2.field_2.field_2.field_3==2205245826) && (a4.field_1.field_3.field_3.field_2.field_2.field_2.field_4==163) && (a4.field_1.field_3.field_3.field_2.field_2.field_2.field_5==-0.375) && (a4.field_1.field_3.field_3.field_2.field_2.field_2.field_6==-1.1875)) && (a4.field_1.field_3.field_3.field_2.field_2.field_3==2520606304) && (a4.field_1.field_3.field_3.field_2.field_2.field_4==E_2_5))) && (a4.field_1.field_3.field_3.field_3==81504045891584) && (a4.field_1.field_3.field_3.field_4==0.640625) && (a4.field_1.field_3.field_3.field_5==215)) && ((a4.field_1.field_3.field_4.field_1==223) && (a4.field_1.field_3.field_4.field_2==-0.78125))) && ((a4.field_1.field_4.field_1==1663866964) && ((a4.field_1.field_4.field_2.field_1==137293949304832) && (a4.field_1.field_4.field_2.field_2==0.4765625) && (a4.field_1.field_4.field_2.field_3==3008888856) && (a4.field_1.field_4.field_2.field_4==3504606106) && (a4.field_1.field_4.field_2.field_5==271175374602240)) && (a4.field_1.field_4.field_3==3418972692) && (a4.field_1.field_4.field_4==378265792)) && ((a4.field_1.field_5.field_1==1683646014) && (a4.field_1.field_5.field_2==2279286742) && (a4.field_1.field_5.field_3==1017297018))) && (a4.field_2==2.19921875) && ((a4.field_3.field_1==-2.6015625) && (a4.field_3.field_2==0.484375)))) {
+ goto bad;
+ }
+
+ if (!(a5==E_82_5)) {
+ goto bad;
+ }
+
+ if (!(a6==2225998788)) {
+ goto bad;
+ }
+
+ return (t68) {.field_1=E_64_2,.field_2=(t65) {.field_1=-1.3828125,.field_2=61112946,.field_3=190,.field_4=32961124368384,.field_5=1304765990,.field_6=126354513723392},.field_3=(t66) {.field_1=(t59) {.field_1=E_56_7,.field_2=766433818,.field_3=(t57) {.field_1=E_26_8,.field_2=88,.field_3=(t42) {.field_1=187522956001280,.field_2=E_41_2,.field_3=197628948,.field_4=(t23) {.field_1=135725845053440,.field_2=(t14) {.field_1=57,.field_2=1.078125},.field_3=160515871997952,.field_4=(t22) {.field_1=0.359375,.field_2=104917964292096,.field_3=(t7) {.field_1=(t4) {.field_1=206,.field_2=-0.80078125,.field_3=138,.field_4=103853490044928,.field_5=E_2_5,.field_6=1457574106},.field_2=(t5) {.field_1=-2.7734375,.field_2=269868276908032,.field_3=241406633312256},.field_3=(t6) {.field_1=-1.515625,.field_2=E_2_4}},.field_4=(t17) {.field_1=(t16) {.field_1=64443498,.field_2=-0.5,.field_3=0.4375,.field_4=(t6) {.field_1=0.8125,.field_2=E_2_3}},.field_2=241}}}},.field_4=(t12) {.field_1=-0.921875,.field_2=(t9) {.field_1=(t6) {.field_1=-0.265625,.field_2=E_2_1},.field_2=255656365260800,.field_3=(t6) {.field_1=0.8125,.field_2=E_2_5},.field_4=-1.03125,.field_5=226905594134528,.field_6=(t5) {.field_1=-1.796875,.field_2=110809697746944,.field_3=182448222502912}},.field_3=(t10) {.field_1=2.66015625,.field_2=-1.53125,.field_3=5891210215424},.field_4=1.15234375,.field_5=E_11_3,.field_6=0.47265625},.field_5=69698034,.field_6=-0.90625},.field_4=(t58) {.field_1=E_19_8,.field_2=(t30) {.field_1=-2.6484375,.field_2=(t21) {.field_1=E_18_2,.field_2=3254220376,.field_3=-1.015625,.field_4=E_19_7,.field_5=(t20) {.field_1=2.1328125,.field_2=0.1328125,.field_3=(t12) {.field_1=-0.203125,.field_2=(t9) {.field_1=(t6) {.field_1=0.09375,.field_2=E_2_6},.field_2=106879791398912,.field_3=(t6) {.field_1=0.75,.field_2=E_2_3},.field_4=0.0,.field_5=182488977768448,.field_6=(t5) {.field_1=-2.75,.field_2=81305866600448,.field_3=230134322036736}},.field_3=(t10) {.field_1=3.55078125,.field_2=0.1875,.field_3=59469043073024},.field_4=0.80078125,.field_5=E_11_3,.field_6=-2.1796875}},.field_6=(t15) {.field_1=(t5) {.field_1=0.96484375,.field_2=12986746798080,.field_3=177073504780288},.field_2=-0.984375,.field_3=(t13) {.field_1=267860066,.field_2=(t8) {.field_1=(t3) {.field_1=215,.field_2=(t1) {.field_1=23720503803904,.field_2=57,.field_3=65633880,.field_4=215,.field_5=-0.7734375,.field_6=2.4453125},.field_3=2639863120,.field_4=E_2_6},.field_2=(t3) {.field_1=63,.field_2=(t1) {.field_1=41253608357888,.field_2=228,.field_3=2702252196,.field_4=226,.field_5=-1.72265625,.field_6=-2.890625},.field_3=2297595192,.field_4=E_2_3}},.field_3=117994529226752,.field_4=-0.46875,.field_5=97},.field_4=(t14) {.field_1=250,.field_2=0.203125}}},.field_3=277277376118785,.field_4=-0.96484375},.field_3=0.890625,.field_4=0.84765625}},.field_2=(t53) {.field_1=-0.234375,.field_2=(t50) {.field_1=-0.671875,.field_2=(t39) {.field_1=(t30) {.field_1=2.2890625,.field_2=(t21) {.field_1=E_18_5,.field_2=1104171190,.field_3=1.1875,.field_4=E_19_6,.field_5=(t20) {.field_1=-1.77734375,.field_2=1.7109375,.field_3=(t12) {.field_1=-1.21875,.field_2=(t9) {.field_1=(t6) {.field_1=-1.296875,.field_2=E_2_3},.field_2=7804846080000,.field_3=(t6) {.field_1=-0.515625,.field_2=E_2_3},.field_4=1.3125,.field_5=271269411815424,.field_6=(t5) {.field_1=-1.0390625,.field_2=55968624803840,.field_3=26483097731072}},.field_3=(t10) {.field_1=3.140625,.field_2=0.390625,.field_3=144477626957824},.field_4=-1.91796875,.field_5=E_11_1,.field_6=-0.0703125}},.field_6=(t15) {.field_1=(t5) {.field_1=2.48828125,.field_2=279887108243457,.field_3=244326716669952},.field_2=0.328125,.field_3=(t13) {.field_1=2589946058,.field_2=(t8) {.field_1=(t3) {.field_1=74,.field_2=(t1) {.field_1=4995850829824,.field_2=101,.field_3=3334065356,.field_4=70,.field_5=-1.7734375,.field_6=-0.1171875},.field_3=2350206898,.field_4=E_2_6},.field_2=(t3) {.field_1=152,.field_2=(t1) {.field_1=177982762647552,.field_2=83,.field_3=2674374442,.field_4=247,.field_5=2.39453125,.field_6=0.328125},.field_3=3997067408,.field_4=E_2_2}},.field_3=208487505199104,.field_4=-1.5,.field_5=19},.field_4=(t14) {.field_1=94,.field_2=0.125}}},.field_3=92775544913920,.field_4=-0.96484375},.field_2=-3.6796875,.field_3=41625584271360},.field_3=1594096200,.field_4=1.25},.field_3=(t51) {.field_1=1.96484375},.field_4=3.70703125,.field_5=(t44) {.field_1=-0.984375},.field_6=(t52) {.field_1=(t23) {.field_1=216482604515328,.field_2=(t14) {.field_1=94,.field_2=1.453125},.field_3=12366441873408,.field_4=(t22) {.field_1=0.453125,.field_2=126556415852544,.field_3=(t7) {.field_1=(t4) {.field_1=151,.field_2=1.05859375,.field_3=11,.field_4=62897387208704,.field_5=E_2_6,.field_6=2865786744},.field_2=(t5) {.field_1=-2.421875,.field_2=216082708430848,.field_3=58856103739392},.field_3=(t6) {.field_1=-1.1875,.field_2=E_2_6}},.field_4=(t17) {.field_1=(t16) {.field_1=4079339738,.field_2=-1.109375,.field_3=-1.515625,.field_4=(t6) {.field_1=-0.578125,.field_2=E_2_5}},.field_2=88}}},.field_2=0.609375,.field_3=200682606166016,.field_4=126}}},.field_4=(t67) {.field_1=(t52) {.field_1=(t23) {.field_1=18371726016512,.field_2=(t14) {.field_1=156,.field_2=-0.796875},.field_3=11102142726144,.field_4=(t22) {.field_1=0.9375,.field_2=3949612367872,.field_3=(t7) {.field_1=(t4) {.field_1=104,.field_2=2.0546875,.field_3=14,.field_4=14837206614016,.field_5=E_2_2,.field_6=2787867058},.field_2=(t5) {.field_1=1.46875,.field_2=72374060974080,.field_3=245603042721792},.field_3=(t6) {.field_1=0.46875,.field_2=E_2_6}},.field_4=(t17) {.field_1=(t16) {.field_1=270200364,.field_2=-0.265625,.field_3=-1.15625,.field_4=(t6) {.field_1=-1.0,.field_2=E_2_3}},.field_2=21}}},.field_2=-0.53125,.field_3=105323182686208,.field_4=102},.field_2=-3.8046875},.field_5=(t22) {.field_1=0.6875,.field_2=26654515134464,.field_3=(t7) {.field_1=(t4) {.field_1=185,.field_2=-2.23828125,.field_3=40,.field_4=94730623254528,.field_5=E_2_3,.field_6=856451172},.field_2=(t5) {.field_1=-2.8515625,.field_2=132974633549824,.field_3=171401795600384},.field_3=(t6) {.field_1=1.25,.field_2=E_2_4}},.field_4=(t17) {.field_1=(t16) {.field_1=2841781650,.field_2=-1.21875,.field_3=-1.0,.field_4=(t6) {.field_1=-0.46875,.field_2=E_2_3}},.field_2=13}}};
+
+bad:
+ return (t68) {.field_1=E_64_9,.field_2=(t65) {.field_1=-1.625,.field_2=493732968,.field_3=106,.field_4=119753663578112,.field_5=1283596086,.field_6=217997951107072},.field_3=(t66) {.field_1=(t59) {.field_1=E_56_4,.field_2=2699322070,.field_3=(t57) {.field_1=E_26_2,.field_2=232,.field_3=(t42) {.field_1=180662919102464,.field_2=E_41_6,.field_3=17131048,.field_4=(t23) {.field_1=103630696611840,.field_2=(t14) {.field_1=20,.field_2=-1.0625},.field_3=198361319997440,.field_4=(t22) {.field_1=0.125,.field_2=102277325520896,.field_3=(t7) {.field_1=(t4) {.field_1=214,.field_2=-3.80859375,.field_3=248,.field_4=207630602338304,.field_5=E_2_4,.field_6=2722826334},.field_2=(t5) {.field_1=2.72265625,.field_2=203418755792896,.field_3=276891418099712},.field_3=(t6) {.field_1=-0.890625,.field_2=E_2_5}},.field_4=(t17) {.field_1=(t16) {.field_1=4221742598,.field_2=0.03125,.field_3=1.21875,.field_4=(t6) {.field_1=-0.3125,.field_2=E_2_6}},.field_2=48}}}},.field_4=(t12) {.field_1=-1.03125,.field_2=(t9) {.field_1=(t6) {.field_1=-0.1875,.field_2=E_2_5},.field_2=90774124494848,.field_3=(t6) {.field_1=-0.46875,.field_2=E_2_3},.field_4=-0.96875,.field_5=99977078505472,.field_6=(t5) {.field_1=2.5546875,.field_2=76855133863936,.field_3=146126020149248}},.field_3=(t10) {.field_1=0.25,.field_2=0.984375,.field_3=248403345670144},.field_4=-1.00390625,.field_5=E_11_5,.field_6=2.7734375},.field_5=468749822,.field_6=-0.40625},.field_4=(t58) {.field_1=E_19_4,.field_2=(t30) {.field_1=3.57421875,.field_2=(t21) {.field_1=E_18_1,.field_2=2029298424,.field_3=-1.03125,.field_4=E_19_7,.field_5=(t20) {.field_1=-0.34765625,.field_2=1.4140625,.field_3=(t12) {.field_1=0.8125,.field_2=(t9) {.field_1=(t6) {.field_1=1.109375,.field_2=E_2_4},.field_2=266026004119552,.field_3=(t6) {.field_1=-1.484375,.field_2=E_2_1},.field_4=0.828125,.field_5=98825356050432,.field_6=(t5) {.field_1=-0.7265625,.field_2=62214033113088,.field_3=152598466789376}},.field_3=(t10) {.field_1=2.05078125,.field_2=-1.421875,.field_3=229453600653312},.field_4=-1.70703125,.field_5=E_11_4,.field_6=1.00390625}},.field_6=(t15) {.field_1=(t5) {.field_1=-2.625,.field_2=267777080688640,.field_3=128034704850944},.field_2=-1.515625,.field_3=(t13) {.field_1=259736516,.field_2=(t8) {.field_1=(t3) {.field_1=211,.field_2=(t1) {.field_1=142852680843264,.field_2=4,.field_3=3936173516,.field_4=250,.field_5=-2.41796875,.field_6=2.21484375},.field_3=1870163782,.field_4=E_2_6},.field_2=(t3) {.field_1=138,.field_2=(t1) {.field_1=81686317760512,.field_2=124,.field_3=2083117010,.field_4=81,.field_5=0.32421875,.field_6=-1.9765625},.field_3=2877241598,.field_4=E_2_6}},.field_3=131784260321280,.field_4=-0.90625,.field_5=181},.field_4=(t14) {.field_1=132,.field_2=-1.484375}}},.field_3=279307994923009,.field_4=-3.15625},.field_3=0.484375,.field_4=-2.6875}},.field_2=(t53) {.field_1=-1.421875,.field_2=(t50) {.field_1=-3.04296875,.field_2=(t39) {.field_1=(t30) {.field_1=-2.5390625,.field_2=(t21) {.field_1=E_18_1,.field_2=4015984290,.field_3=0.578125,.field_4=E_19_2,.field_5=(t20) {.field_1=2.74609375,.field_2=1.26953125,.field_3=(t12) {.field_1=-0.578125,.field_2=(t9) {.field_1=(t6) {.field_1=0.421875,.field_2=E_2_1},.field_2=52941939802112,.field_3=(t6) {.field_1=-1.015625,.field_2=E_2_3},.field_4=0.546875,.field_5=185704319811584,.field_6=(t5) {.field_1=1.6171875,.field_2=60560770203648,.field_3=255274547019776}},.field_3=(t10) {.field_1=-0.9609375,.field_2=-1.0625,.field_3=105583830630400},.field_4=0.6953125,.field_5=E_11_6,.field_6=3.05859375}},.field_6=(t15) {.field_1=(t5) {.field_1=0.90625,.field_2=244012407324672,.field_3=277955523772417},.field_2=-0.71875,.field_3=(t13) {.field_1=99410342,.field_2=(t8) {.field_1=(t3) {.field_1=8,.field_2=(t1) {.field_1=107724715327488,.field_2=50,.field_3=613651762,.field_4=81,.field_5=2.9765625,.field_6=-1.80859375},.field_3=726988920,.field_4=E_2_4},.field_2=(t3) {.field_1=149,.field_2=(t1) {.field_1=226335956926464,.field_2=164,.field_3=3320618414,.field_4=250,.field_5=-3.6796875,.field_6=-0.4140625},.field_3=2742774408,.field_4=E_2_5}},.field_3=186327866408960,.field_4=0.140625,.field_5=28},.field_4=(t14) {.field_1=211,.field_2=1.328125}}},.field_3=197574553108480,.field_4=1.56640625},.field_2=2.4375,.field_3=89527896899584},.field_3=2436176174,.field_4=0.9375},.field_3=(t51) {.field_1=0.703125},.field_4=0.70703125,.field_5=(t44) {.field_1=1.046875},.field_6=(t52) {.field_1=(t23) {.field_1=273811777912832,.field_2=(t14) {.field_1=201,.field_2=1.5},.field_3=81778086379520,.field_4=(t22) {.field_1=0.53125,.field_2=69212746940416,.field_3=(t7) {.field_1=(t4) {.field_1=117,.field_2=-2.25,.field_3=212,.field_4=74283012456448,.field_5=E_2_6,.field_6=2594542348},.field_2=(t5) {.field_1=-2.01171875,.field_2=248411503984640,.field_3=14328046682112},.field_3=(t6) {.field_1=1.203125,.field_2=E_2_4}},.field_4=(t17) {.field_1=(t16) {.field_1=3061766252,.field_2=-0.234375,.field_3=0.734375,.field_4=(t6) {.field_1=0.125,.field_2=E_2_3}},.field_2=111}}},.field_2=-0.8125,.field_3=44898282504192,.field_4=192}}},.field_4=(t67) {.field_1=(t52) {.field_1=(t23) {.field_1=226898411388928,.field_2=(t14) {.field_1=245,.field_2=-0.5},.field_3=111595632590848,.field_4=(t22) {.field_1=0.921875,.field_2=88533462941696,.field_3=(t7) {.field_1=(t4) {.field_1=47,.field_2=2.1171875,.field_3=154,.field_4=240405809463296,.field_5=E_2_1,.field_6=278604200},.field_2=(t5) {.field_1=-3.390625,.field_2=238588698165248,.field_3=92541617307648},.field_3=(t6) {.field_1=1.3125,.field_2=E_2_3}},.field_4=(t17) {.field_1=(t16) {.field_1=2454693200,.field_2=0.953125,.field_3=0.015625,.field_4=(t6) {.field_1=-0.140625,.field_2=E_2_3}},.field_2=55}}},.field_2=1.1875,.field_3=42958779449344,.field_4=193},.field_2=-2.1328125},.field_5=(t22) {.field_1=0.265625,.field_2=279496136720385,.field_3=(t7) {.field_1=(t4) {.field_1=99,.field_2=-1.265625,.field_3=204,.field_4=97330511872000,.field_5=E_2_5,.field_6=839847220},.field_2=(t5) {.field_1=-2.8203125,.field_2=279855182249985,.field_3=107102583652352},.field_3=(t6) {.field_1=1.28125,.field_2=E_2_4}},.field_4=(t17) {.field_1=(t16) {.field_1=1007589972,.field_2=1.34375,.field_3=0.515625,.field_4=(t6) {.field_1=-0.625,.field_2=E_2_5}},.field_2=254}}};
+}
+
+uint8_t
+fn_19_c(uint64_t a1, uint8_t a2)
+{
+ if (!(a1==158887773995008)) {
+ goto bad;
+ }
+
+ if (!(a2==186)) {
+ goto bad;
+ }
+
+ return 113;
+
+bad:
+ return 241;
+}
+
+uint8_t
+fn_20_c(t72 a1, t54 a2, t102 a3, t30 a4, float a5, t100 a6, t82 a7, t92 a8, t19 a9)
+{
+ if (!((a1.field_1==31) && (a1.field_2==784492568) && (a1.field_3==176))) {
+ goto bad;
+ }
+
+ if (!((a2.field_1==-0.03125) && (a2.field_2==E_2_6) && (a2.field_3==E_43_2))) {
+ goto bad;
+ }
+
+ if (!((a3.field_1==-0.953125) && ((a3.field_2.field_1==E_18_1) && (a3.field_2.field_2==3892333532) && (a3.field_2.field_3==0.921875) && (a3.field_2.field_4==E_19_3) && ((a3.field_2.field_5.field_1==2.6015625) && (a3.field_2.field_5.field_2==-0.328125) && ((a3.field_2.field_5.field_3.field_1==0.3125) && (((a3.field_2.field_5.field_3.field_2.field_1.field_1==0.34375) && (a3.field_2.field_5.field_3.field_2.field_1.field_2==E_2_3)) && (a3.field_2.field_5.field_3.field_2.field_2==231543623516160) && ((a3.field_2.field_5.field_3.field_2.field_3.field_1==1.046875) && (a3.field_2.field_5.field_3.field_2.field_3.field_2==E_2_1)) && (a3.field_2.field_5.field_3.field_2.field_4==1.078125) && (a3.field_2.field_5.field_3.field_2.field_5==158249674997760) && ((a3.field_2.field_5.field_3.field_2.field_6.field_1==-3.65234375) && (a3.field_2.field_5.field_3.field_2.field_6.field_2==81418480910336) && (a3.field_2.field_5.field_3.field_2.field_6.field_3==142554027130880))) && ((a3.field_2.field_5.field_3.field_3.field_1==3.359375) && (a3.field_2.field_5.field_3.field_3.field_2==1.21875) && (a3.field_2.field_5.field_3.field_3.field_3==57638369755136)) && (a3.field_2.field_5.field_3.field_4==-3.484375) && (a3.field_2.field_5.field_3.field_5==E_11_1) && (a3.field_2.field_5.field_3.field_6==3.09765625))) && (((a3.field_2.field_6.field_1.field_1==0.51171875) && (a3.field_2.field_6.field_1.field_2==165765595136000) && (a3.field_2.field_6.field_1.field_3==108768946552832)) && (a3.field_2.field_6.field_2==-0.25) && ((a3.field_2.field_6.field_3.field_1==3389738472) && (((a3.field_2.field_6.field_3.field_2.field_1.field_1==18) && ((a3.field_2.field_6.field_3.field_2.field_1.field_2.field_1==117849701351424) && (a3.field_2.field_6.field_3.field_2.field_1.field_2.field_2==251) && (a3.field_2.field_6.field_3.field_2.field_1.field_2.field_3==595888978) && (a3.field_2.field_6.field_3.field_2.field_1.field_2.field_4==83) && (a3.field_2.field_6.field_3.field_2.field_1.field_2.field_5==2.171875) && (a3.field_2.field_6.field_3.field_2.field_1.field_2.field_6==-0.47265625)) && (a3.field_2.field_6.field_3.field_2.field_1.field_3==678334346) && (a3.field_2.field_6.field_3.field_2.field_1.field_4==E_2_2)) && ((a3.field_2.field_6.field_3.field_2.field_2.field_1==10) && ((a3.field_2.field_6.field_3.field_2.field_2.field_2.field_1==215416273371136) && (a3.field_2.field_6.field_3.field_2.field_2.field_2.field_2==175) && (a3.field_2.field_6.field_3.field_2.field_2.field_2.field_3==3712234320) && (a3.field_2.field_6.field_3.field_2.field_2.field_2.field_4==153) && (a3.field_2.field_6.field_3.field_2.field_2.field_2.field_5==1.58203125) && (a3.field_2.field_6.field_3.field_2.field_2.field_2.field_6==1.640625)) && (a3.field_2.field_6.field_3.field_2.field_2.field_3==691527554) && (a3.field_2.field_6.field_3.field_2.field_2.field_4==E_2_5))) && (a3.field_2.field_6.field_3.field_3==281208706433025) && (a3.field_2.field_6.field_3.field_4==0.53125) && (a3.field_2.field_6.field_3.field_5==170)) && ((a3.field_2.field_6.field_4.field_1==226) && (a3.field_2.field_6.field_4.field_2==1.171875)))) && ((a3.field_3.field_1==0.6875)) && (a3.field_4==3.54296875))) {
+ goto bad;
+ }
+
+ if (!((a4.field_1==0.328125) && ((a4.field_2.field_1==E_18_2) && (a4.field_2.field_2==3038599074) && (a4.field_2.field_3==-0.53125) && (a4.field_2.field_4==E_19_2) && ((a4.field_2.field_5.field_1==-2.921875) && (a4.field_2.field_5.field_2==-1.4453125) && ((a4.field_2.field_5.field_3.field_1==-0.421875) && (((a4.field_2.field_5.field_3.field_2.field_1.field_1==-0.15625) && (a4.field_2.field_5.field_3.field_2.field_1.field_2==E_2_1)) && (a4.field_2.field_5.field_3.field_2.field_2==226740145750016) && ((a4.field_2.field_5.field_3.field_2.field_3.field_1==0.34375) && (a4.field_2.field_5.field_3.field_2.field_3.field_2==E_2_2)) && (a4.field_2.field_5.field_3.field_2.field_4==1.09375) && (a4.field_2.field_5.field_3.field_2.field_5==105371665039360) && ((a4.field_2.field_5.field_3.field_2.field_6.field_1==-3.7890625) && (a4.field_2.field_5.field_3.field_2.field_6.field_2==200291522183168) && (a4.field_2.field_5.field_3.field_2.field_6.field_3==273916916662272))) && ((a4.field_2.field_5.field_3.field_3.field_1==1.69921875) && (a4.field_2.field_5.field_3.field_3.field_2==-0.25) && (a4.field_2.field_5.field_3.field_3.field_3==37761889730560)) && (a4.field_2.field_5.field_3.field_4==-0.37109375) && (a4.field_2.field_5.field_3.field_5==E_11_3) && (a4.field_2.field_5.field_3.field_6==2.359375))) && (((a4.field_2.field_6.field_1.field_1==-2.98828125) && (a4.field_2.field_6.field_1.field_2==85889758134272) && (a4.field_2.field_6.field_1.field_3==189673236725760)) && (a4.field_2.field_6.field_2==1.0625) && ((a4.field_2.field_6.field_3.field_1==1108811158) && (((a4.field_2.field_6.field_3.field_2.field_1.field_1==113) && ((a4.field_2.field_6.field_3.field_2.field_1.field_2.field_1==34340434870272) && (a4.field_2.field_6.field_3.field_2.field_1.field_2.field_2==204) && (a4.field_2.field_6.field_3.field_2.field_1.field_2.field_3==2563547796) && (a4.field_2.field_6.field_3.field_2.field_1.field_2.field_4==212) && (a4.field_2.field_6.field_3.field_2.field_1.field_2.field_5==-2.8828125) && (a4.field_2.field_6.field_3.field_2.field_1.field_2.field_6==2.53125)) && (a4.field_2.field_6.field_3.field_2.field_1.field_3==4104468038) && (a4.field_2.field_6.field_3.field_2.field_1.field_4==E_2_3)) && ((a4.field_2.field_6.field_3.field_2.field_2.field_1==48) && ((a4.field_2.field_6.field_3.field_2.field_2.field_2.field_1==114490489438208) && (a4.field_2.field_6.field_3.field_2.field_2.field_2.field_2==137) && (a4.field_2.field_6.field_3.field_2.field_2.field_2.field_3==4274611490) && (a4.field_2.field_6.field_3.field_2.field_2.field_2.field_4==4) && (a4.field_2.field_6.field_3.field_2.field_2.field_2.field_5==2.87109375) && (a4.field_2.field_6.field_3.field_2.field_2.field_2.field_6==2.67578125)) && (a4.field_2.field_6.field_3.field_2.field_2.field_3==1675682774) && (a4.field_2.field_6.field_3.field_2.field_2.field_4==E_2_6))) && (a4.field_2.field_6.field_3.field_3==155964017999872) && (a4.field_2.field_6.field_3.field_4==-0.421875) && (a4.field_2.field_6.field_3.field_5==153)) && ((a4.field_2.field_6.field_4.field_1==249) && (a4.field_2.field_6.field_4.field_2==-0.015625)))) && (a4.field_3==14699609849856) && (a4.field_4==-0.8125))) {
+ goto bad;
+ }
+
+ if (!(a5==-1.03125)) {
+ goto bad;
+ }
+
+ if (!(((((a6.field_1.field_1.field_1.field_1==-1.546875) && ((a6.field_1.field_1.field_1.field_2.field_1==3.58984375) && (((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_1==-0.6640625) && ((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_1==E_18_2) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_2==3261231628) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_3==-1.53125) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_4==E_19_8) && ((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_1==3.0546875) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_2==2.625) && ((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_1==1.296875) && (((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_1==-0.515625) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_2==E_2_1)) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_2==90256515661824) && ((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_1==1.1875) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_2==E_2_1)) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_4==-0.515625) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_5==209147190050816) && ((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_1==2.83984375) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_2==204519943045120) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_3==176046915452928))) && ((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_1==-0.64453125) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_2==-1.28125) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_3==63390518214656)) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_4==-0.8359375) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_5==E_11_4) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_5.field_3.field_6==-1.73828125))) && (((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_1.field_1==2.2578125) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_1.field_2==249508094672896) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_1.field_3==125875889766400)) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_2==-0.03125) && ((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_1==3690927442) && (((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_1==116) && ((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_1==126408480784384) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_2==70) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_3==2502906064) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_4==53) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_5==-1.66796875) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_6==0.3203125)) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_3==425223464) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_4==E_2_1)) && ((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_1==116) && ((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_1==122683318730752) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_2==37) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_3==3331048268) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_4==79) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_5==-2.58984375) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_6==-3.03125)) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_3==234747400) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_4==E_2_1))) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_3==236050942525440) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_4==0.5625) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_3.field_5==115)) && ((a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_4.field_1==237) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_2.field_6.field_4.field_2==1.265625)))) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_3==237145589940224) && (a6.field_1.field_1.field_1.field_2.field_2.field_1.field_4==0.125)) && (a6.field_1.field_1.field_1.field_2.field_2.field_2==-2.48046875) && (a6.field_1.field_1.field_1.field_2.field_2.field_3==177709856587776)) && (a6.field_1.field_1.field_1.field_2.field_3==1727895586) && (a6.field_1.field_1.field_1.field_2.field_4==0.40625)) && ((a6.field_1.field_1.field_1.field_3.field_1==-2.9609375)) && (a6.field_1.field_1.field_1.field_4==-1.86328125) && ((a6.field_1.field_1.field_1.field_5.field_1==-1.3125)) && (((a6.field_1.field_1.field_1.field_6.field_1.field_1==160533698838528) && ((a6.field_1.field_1.field_1.field_6.field_1.field_2.field_1==137) && (a6.field_1.field_1.field_1.field_6.field_1.field_2.field_2==0.53125)) && (a6.field_1.field_1.field_1.field_6.field_1.field_3==219195279015936) && ((a6.field_1.field_1.field_1.field_6.field_1.field_4.field_1==1.015625) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_2==58457369870336) && (((a6.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_1==224) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_2==3.4765625) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_3==169) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_4==88271065972736) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_5==E_2_1) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_1.field_6==1881912782)) && ((a6.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_2.field_1==0.98046875) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_2.field_2==73571505274880) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_2.field_3==154864035561472)) && ((a6.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_3.field_1==0.5625) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_3.field_3.field_2==E_2_2))) && (((a6.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_1.field_1==1669921896) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_1.field_2==-0.4375) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_1.field_3==0.765625) && ((a6.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_1.field_4.field_1==-0.578125) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_1.field_4.field_2==E_2_2))) && (a6.field_1.field_1.field_1.field_6.field_1.field_4.field_4.field_2==149)))) && (a6.field_1.field_1.field_1.field_6.field_2==1.046875) && (a6.field_1.field_1.field_1.field_6.field_3==126107861778432) && (a6.field_1.field_1.field_1.field_6.field_4==55))) && (a6.field_1.field_1.field_2==1011521230) && (a6.field_1.field_1.field_3==334865810)) && (a6.field_1.field_2==-1.265625) && (a6.field_1.field_3==139944064581632) && (a6.field_1.field_4==-2.64453125) && (a6.field_1.field_5==232)) && (a6.field_2==9370746880000) && (a6.field_3==2.56640625) && (a6.field_4==1.46484375) && ((a6.field_5.field_1==E_19_7) && (a6.field_5.field_2==155644616)))) {
+ goto bad;
+ }
+
+ if (!(a7==E_82_5)) {
+ goto bad;
+ }
+
+ if (!((a8.field_1==588421914) && (a8.field_2==2163719396) && (a8.field_3==664040668))) {
+ goto bad;
+ }
+
+ if (!(a9==E_19_4)) {
+ goto bad;
+ }
+
+ return 139;
+
+bad:
+ return 48;
+}
+
+int
+const check_c_to_myr_fns(void)
+{
+ uint32_t a_1_1 = 3331313618;
+ t3 a_1_2 = (t3) {.field_1=163,.field_2=(t1) {.field_1=112669747445760,.field_2=68,.field_3=2961163238,.field_4=144,.field_5=3.1171875,.field_6=-0.77734375},.field_3=2638767956,.field_4=E_2_3};
+ t2 a_1_3 = E_2_1;
+ float a_1_4 = 0.875;
+ uint8_t a_1_5 = 63;
+ t7 ret_1 = fn_1_myr(a_1_1, a_1_2, a_1_3, a_1_4, a_1_5);
+ if (!(((ret_1.field_1.field_1==156) && (ret_1.field_1.field_2==2.83203125) && (ret_1.field_1.field_3==67) && (ret_1.field_1.field_4==143760266887168) && (ret_1.field_1.field_5==E_2_6) && (ret_1.field_1.field_6==2927029180)) && ((ret_1.field_2.field_1==-2.55078125) && (ret_1.field_2.field_2==159665344872448) && (ret_1.field_2.field_3==199843724394496)) && ((ret_1.field_3.field_1==-0.625) && (ret_1.field_3.field_2==E_2_6)))) {
+ return -1;
+ }
+
+ t7 a_2_1 = (t7) {.field_1=(t4) {.field_1=195,.field_2=-2.625,.field_3=107,.field_4=250193960632320,.field_5=E_2_1,.field_6=3277066896},.field_2=(t5) {.field_1=0.01171875,.field_2=271113481355264,.field_3=7202154348544},.field_3=(t6) {.field_1=-1.53125,.field_2=E_2_6}};
+ t8 a_2_2 = (t8) {.field_1=(t3) {.field_1=75,.field_2=(t1) {.field_1=149688830001152,.field_2=166,.field_3=4203656652,.field_4=184,.field_5=1.6796875,.field_6=-2.66015625},.field_3=2647535284,.field_4=E_2_3},.field_2=(t3) {.field_1=60,.field_2=(t1) {.field_1=234959706259456,.field_2=30,.field_3=3070502934,.field_4=195,.field_5=2.9921875,.field_6=2.96484375},.field_3=803402210,.field_4=E_2_5}};
+ t12 a_2_3 = (t12) {.field_1=0.203125,.field_2=(t9) {.field_1=(t6) {.field_1=-0.140625,.field_2=E_2_2},.field_2=151793905303552,.field_3=(t6) {.field_1=0.75,.field_2=E_2_1},.field_4=-0.875,.field_5=59595538169856,.field_6=(t5) {.field_1=-0.51171875,.field_2=90586118225920,.field_3=47799910137856}},.field_3=(t10) {.field_1=-3.4140625,.field_2=0.671875,.field_3=185693112107008},.field_4=-1.23828125,.field_5=E_11_1,.field_6=2.890625};
+ double a_2_4 = 0.94921875;
+ t15 a_2_5 = (t15) {.field_1=(t5) {.field_1=2.03515625,.field_2=29216526696448,.field_3=236353793556480},.field_2=1.09375,.field_3=(t13) {.field_1=4181791332,.field_2=(t8) {.field_1=(t3) {.field_1=44,.field_2=(t1) {.field_1=132595126632448,.field_2=171,.field_3=3948447728,.field_4=220,.field_5=-3.69140625,.field_6=-2.40625},.field_3=3172323970,.field_4=E_2_5},.field_2=(t3) {.field_1=224,.field_2=(t1) {.field_1=275519312887808,.field_2=53,.field_3=3186715686,.field_4=144,.field_5=-2.5703125,.field_6=-3.41015625},.field_3=1867717394,.field_4=E_2_5}},.field_3=35551921045504,.field_4=-0.203125,.field_5=101},.field_4=(t14) {.field_1=102,.field_2=1.15625}};
+ t13 a_2_6 = (t13) {.field_1=1580005156,.field_2=(t8) {.field_1=(t3) {.field_1=51,.field_2=(t1) {.field_1=266965320073216,.field_2=53,.field_3=212878900,.field_4=236,.field_5=-0.921875,.field_6=0.16015625},.field_3=2543329268,.field_4=E_2_2},.field_2=(t3) {.field_1=98,.field_2=(t1) {.field_1=174501380489216,.field_2=126,.field_3=522689612,.field_4=110,.field_5=-1.0234375,.field_6=-3.12109375},.field_3=2756676114,.field_4=E_2_1}},.field_3=186819725099008,.field_4=0.984375,.field_5=44};
+ uint32_t a_2_7 = 2083878374;
+ float ret_2 = fn_2_myr(a_2_1, a_2_2, a_2_3, a_2_4, a_2_5, a_2_6, a_2_7);
+ if (!(ret_2==0.109375)) {
+ return -1;
+ }
+
+ t5 a_3_1 = (t5) {.field_1=0.36328125,.field_2=217080895242240,.field_3=146180381081600};
+ t15 a_3_2 = (t15) {.field_1=(t5) {.field_1=0.5390625,.field_2=117399373217792,.field_3=101569454014464},.field_2=-1.296875,.field_3=(t13) {.field_1=39734246,.field_2=(t8) {.field_1=(t3) {.field_1=169,.field_2=(t1) {.field_1=133031533740032,.field_2=161,.field_3=668802928,.field_4=152,.field_5=-3.4296875,.field_6=0.1953125},.field_3=2984403120,.field_4=E_2_5},.field_2=(t3) {.field_1=162,.field_2=(t1) {.field_1=100930591260672,.field_2=132,.field_3=3484222870,.field_4=117,.field_5=-3.8984375,.field_6=-3.02734375},.field_3=4255148568,.field_4=E_2_6}},.field_3=229240590827520,.field_4=-0.328125,.field_5=51},.field_4=(t14) {.field_1=92,.field_2=-1.046875}};
+ t16 a_3_3 = (t16) {.field_1=1212401592,.field_2=-1.046875,.field_3=1.109375,.field_4=(t6) {.field_1=1.296875,.field_2=E_2_2}};
+ t16 a_3_4 = (t16) {.field_1=3641606114,.field_2=-1.125,.field_3=0.546875,.field_4=(t6) {.field_1=-0.046875,.field_2=E_2_3}};
+ uint64_t a_3_5 = 83130758201344;
+ t17 a_3_6 = (t17) {.field_1=(t16) {.field_1=954818626,.field_2=-0.5,.field_3=-0.703125,.field_4=(t6) {.field_1=0.265625,.field_2=E_2_4}},.field_2=254};
+ t12 a_3_7 = (t12) {.field_1=-0.671875,.field_2=(t9) {.field_1=(t6) {.field_1=0.671875,.field_2=E_2_1},.field_2=186559912869888,.field_3=(t6) {.field_1=1.546875,.field_2=E_2_2},.field_4=0.046875,.field_5=255023204139008,.field_6=(t5) {.field_1=1.13671875,.field_2=270028714934272,.field_3=247333204000768}},.field_3=(t10) {.field_1=-0.0546875,.field_2=-1.25,.field_3=156053374763008},.field_4=3.73046875,.field_5=E_11_4,.field_6=1.92578125};
+ float ret_3 = fn_3_myr(a_3_1, a_3_2, a_3_3, a_3_4, a_3_5, a_3_6, a_3_7);
+ if (!(ret_3==0.171875)) {
+ return -1;
+ }
+
+ t1 a_4_1 = (t1) {.field_1=254108937224192,.field_2=215,.field_3=1243252406,.field_4=124,.field_5=-1.1875,.field_6=-1.68359375};
+ t21 a_4_2 = (t21) {.field_1=E_18_8,.field_2=4113752024,.field_3=0.5,.field_4=E_19_5,.field_5=(t20) {.field_1=-0.3203125,.field_2=1.33984375,.field_3=(t12) {.field_1=-0.171875,.field_2=(t9) {.field_1=(t6) {.field_1=-0.625,.field_2=E_2_6},.field_2=262778588495872,.field_3=(t6) {.field_1=0.46875,.field_2=E_2_2},.field_4=1.125,.field_5=182381629145088,.field_6=(t5) {.field_1=2.4609375,.field_2=139713139179520,.field_3=225645534511104}},.field_3=(t10) {.field_1=-3.54296875,.field_2=-1.171875,.field_3=78173635870720},.field_4=2.28515625,.field_5=E_11_4,.field_6=-0.7890625}},.field_6=(t15) {.field_1=(t5) {.field_1=-0.01953125,.field_2=23439019999232,.field_3=3807452332032},.field_2=-0.625,.field_3=(t13) {.field_1=233931326,.field_2=(t8) {.field_1=(t3) {.field_1=154,.field_2=(t1) {.field_1=198616597528576,.field_2=197,.field_3=2016579036,.field_4=169,.field_5=-0.5546875,.field_6=-3.796875},.field_3=526208716,.field_4=E_2_1},.field_2=(t3) {.field_1=118,.field_2=(t1) {.field_1=119263763103744,.field_2=15,.field_3=1698145536,.field_4=18,.field_5=-1.51171875,.field_6=-1.921875},.field_3=3097128252,.field_4=E_2_1}},.field_3=211270742966272,.field_4=0.078125,.field_5=42},.field_4=(t14) {.field_1=225,.field_2=0.9375}}};
+ t23 a_4_3 = (t23) {.field_1=190020550524928,.field_2=(t14) {.field_1=11,.field_2=-1.0625},.field_3=210612318502912,.field_4=(t22) {.field_1=-0.46875,.field_2=116393468362752,.field_3=(t7) {.field_1=(t4) {.field_1=120,.field_2=-0.21484375,.field_3=42,.field_4=279254693969921,.field_5=E_2_4,.field_6=185092378},.field_2=(t5) {.field_1=2.28515625,.field_2=168886583296000,.field_3=165671684931584},.field_3=(t6) {.field_1=1.546875,.field_2=E_2_1}},.field_4=(t17) {.field_1=(t16) {.field_1=933489974,.field_2=-0.921875,.field_3=1.0,.field_4=(t6) {.field_1=1.265625,.field_2=E_2_1}},.field_2=72}}};
+ double a_4_4 = -1.47265625;
+ t6 a_4_5 = (t6) {.field_1=0.359375,.field_2=E_2_4};
+ uint64_t a_4_6 = 106223398289408;
+ double a_4_7 = -1.80078125;
+ t2 ret_4 = fn_4_myr(a_4_1, a_4_2, a_4_3, a_4_4, a_4_5, a_4_6, a_4_7);
+ if (!(ret_4==E_2_4)) {
+ return -1;
+ }
+
+ uint32_t a_5_1 = 490829306;
+ t24 a_5_2 = E_24_2;
+ double a_5_3 = -1.296875;
+ t25 a_5_4 = (t25) {.field_1=E_24_8,.field_2=(t6) {.field_1=0.1875,.field_2=E_2_3}};
+ uint64_t a_5_5 = 245616036151296;
+ t28 a_5_6 = (t28) {.field_1=(t15) {.field_1=(t5) {.field_1=2.08203125,.field_2=35857928683520,.field_3=93232914235392},.field_2=-0.609375,.field_3=(t13) {.field_1=1442943954,.field_2=(t8) {.field_1=(t3) {.field_1=49,.field_2=(t1) {.field_1=243496050229248,.field_2=211,.field_3=1781303846,.field_4=188,.field_5=1.796875,.field_6=2.92578125},.field_3=961004516,.field_4=E_2_2},.field_2=(t3) {.field_1=142,.field_2=(t1) {.field_1=24547072671744,.field_2=51,.field_3=2197818536,.field_4=124,.field_5=-2.42578125,.field_6=-3.234375},.field_3=3597667158,.field_4=E_2_5}},.field_3=212450688237568,.field_4=-0.625,.field_5=212},.field_4=(t14) {.field_1=40,.field_2=1.328125}},.field_2=E_26_3,.field_3=(t27) {.field_1=(t15) {.field_1=(t5) {.field_1=3.07421875,.field_2=82227144294400,.field_3=7948002787328},.field_2=-1.5,.field_3=(t13) {.field_1=2677308022,.field_2=(t8) {.field_1=(t3) {.field_1=85,.field_2=(t1) {.field_1=100333243203584,.field_2=209,.field_3=846728032,.field_4=47,.field_5=-2.0859375,.field_6=3.3984375},.field_3=3924268624,.field_4=E_2_1},.field_2=(t3) {.field_1=40,.field_2=(t1) {.field_1=58951057276928,.field_2=170,.field_3=1055614716,.field_4=104,.field_5=-2.51953125,.field_6=1.8203125},.field_3=2570174796,.field_4=E_2_2}},.field_3=160655520563200,.field_4=-0.515625,.field_5=4},.field_4=(t14) {.field_1=223,.field_2=-1.0625}},.field_2=-1.015625,.field_3=0.9375,.field_4=119362880667648,.field_5=-1.359375,.field_6=25145455280128}};
+ t3 ret_5 = fn_5_myr(a_5_1, a_5_2, a_5_3, a_5_4, a_5_5, a_5_6);
+ if (!((ret_5.field_1==182) && ((ret_5.field_2.field_1==220780978372608) && (ret_5.field_2.field_2==114) && (ret_5.field_2.field_3==2281314962) && (ret_5.field_2.field_4==251) && (ret_5.field_2.field_5==1.01171875) && (ret_5.field_2.field_6==2.06640625)) && (ret_5.field_3==3935630006) && (ret_5.field_4==E_2_4))) {
+ return -1;
+ }
+
+ t29 a_6_1 = E_29_6;
+ t8 a_6_2 = (t8) {.field_1=(t3) {.field_1=44,.field_2=(t1) {.field_1=82970538278912,.field_2=173,.field_3=1039620306,.field_4=98,.field_5=-2.87890625,.field_6=-1.3203125},.field_3=415749068,.field_4=E_2_6},.field_2=(t3) {.field_1=198,.field_2=(t1) {.field_1=176754788270080,.field_2=229,.field_3=1745396264,.field_4=100,.field_5=2.453125,.field_6=3.51171875},.field_3=1134845604,.field_4=E_2_6}};
+ t33 a_6_3 = (t33) {.field_1=45346413608960,.field_2=(t30) {.field_1=1.5546875,.field_2=(t21) {.field_1=E_18_1,.field_2=3388995392,.field_3=0.296875,.field_4=E_19_4,.field_5=(t20) {.field_1=-2.4921875,.field_2=-0.69921875,.field_3=(t12) {.field_1=-0.390625,.field_2=(t9) {.field_1=(t6) {.field_1=-0.171875,.field_2=E_2_2},.field_2=21150251483136,.field_3=(t6) {.field_1=-0.796875,.field_2=E_2_4},.field_4=1.375,.field_5=215200983941120,.field_6=(t5) {.field_1=2.125,.field_2=158112869384192,.field_3=73351684030464}},.field_3=(t10) {.field_1=1.25,.field_2=-0.703125,.field_3=212315222310912},.field_4=-3.5546875,.field_5=E_11_2,.field_6=-0.61328125}},.field_6=(t15) {.field_1=(t5) {.field_1=1.76171875,.field_2=253745235361792,.field_3=92984779997184},.field_2=0.90625,.field_3=(t13) {.field_1=2939679992,.field_2=(t8) {.field_1=(t3) {.field_1=146,.field_2=(t1) {.field_1=267681124188160,.field_2=98,.field_3=2525744200,.field_4=189,.field_5=3.75390625,.field_6=-3.81640625},.field_3=3957579288,.field_4=E_2_3},.field_2=(t3) {.field_1=98,.field_2=(t1) {.field_1=103318747742208,.field_2=176,.field_3=1976332274,.field_4=157,.field_5=-2.35546875,.field_6=-0.79296875},.field_3=1628294370,.field_4=E_2_6}},.field_3=270327169941504,.field_4=0.4375,.field_5=161},.field_4=(t14) {.field_1=61,.field_2=-0.328125}}},.field_3=190305229078528,.field_4=-0.0859375},.field_3=E_31_8,.field_4=(t32) {.field_1=1725236208}};
+ t5 a_6_4 = (t5) {.field_1=-2.41015625,.field_2=21064454635520,.field_3=201636834967552};
+ uint32_t a_6_5 = 1968388378;
+ float a_6_6 = 1.203125;
+ t11 a_6_7 = E_11_5;
+ t36 a_6_8 = (t36) {.field_1=165571080617984,.field_2=(t6) {.field_1=0.671875,.field_2=E_2_6},.field_3=(t34) {.field_1=3138764072,.field_2=-1.03125,.field_3=50747094728704,.field_4=2634664560},.field_4=(t35) {.field_1=171685942525952,.field_2=2132603492}};
+ t16 a_6_9 = (t16) {.field_1=849505522,.field_2=0.28125,.field_3=1.4375,.field_4=(t6) {.field_1=-0.4375,.field_2=E_2_3}};
+ t37 a_6_10 = E_37_6;
+ double ret_6 = fn_6_myr(a_6_1, a_6_2, a_6_3, a_6_4, a_6_5, a_6_6, a_6_7, a_6_8, a_6_9, a_6_10);
+ if (!(ret_6==-0.47265625)) {
+ return -1;
+ }
+
+ uint64_t a_7_1 = 152633167446016;
+ t38 a_7_2 = E_38_5;
+ uint8_t a_7_3 = 21;
+ t40 a_7_4 = (t40) {.field_1=(t39) {.field_1=(t30) {.field_1=3.7265625,.field_2=(t21) {.field_1=E_18_8,.field_2=1660321984,.field_3=0.46875,.field_4=E_19_6,.field_5=(t20) {.field_1=3.328125,.field_2=-3.79296875,.field_3=(t12) {.field_1=-0.984375,.field_2=(t9) {.field_1=(t6) {.field_1=-0.71875,.field_2=E_2_5},.field_2=107860547076096,.field_3=(t6) {.field_1=0.984375,.field_2=E_2_3},.field_4=1.03125,.field_5=103537434427392,.field_6=(t5) {.field_1=-0.41015625,.field_2=257720167301120,.field_3=23490682028032}},.field_3=(t10) {.field_1=-3.0546875,.field_2=0.671875,.field_3=189976970788864},.field_4=0.015625,.field_5=E_11_5,.field_6=-0.41796875}},.field_6=(t15) {.field_1=(t5) {.field_1=0.0625,.field_2=74574491418624,.field_3=201256086929408},.field_2=1.359375,.field_3=(t13) {.field_1=1220073662,.field_2=(t8) {.field_1=(t3) {.field_1=46,.field_2=(t1) {.field_1=265659814641664,.field_2=66,.field_3=27449604,.field_4=84,.field_5=3.22265625,.field_6=1.9609375},.field_3=1100098150,.field_4=E_2_6},.field_2=(t3) {.field_1=239,.field_2=(t1) {.field_1=147943258062848,.field_2=159,.field_3=1367706340,.field_4=86,.field_5=3.89453125,.field_6=-2.74609375},.field_3=3028657672,.field_4=E_2_3}},.field_3=18076800647168,.field_4=0.90625,.field_5=142},.field_4=(t14) {.field_1=199,.field_2=-0.109375}}},.field_3=15997300899840,.field_4=-0.2890625},.field_2=3.20703125,.field_3=158990308868096},.field_2=186,.field_3=(t1) {.field_1=175995273347072,.field_2=127,.field_3=52543290,.field_4=206,.field_5=-0.46875,.field_6=-1.7734375}};
+ t42 a_7_5 = (t42) {.field_1=207514518814720,.field_2=E_41_5,.field_3=3821234462,.field_4=(t23) {.field_1=206987958681600,.field_2=(t14) {.field_1=247,.field_2=0.296875},.field_3=50935557783552,.field_4=(t22) {.field_1=-1.46875,.field_2=107941368692736,.field_3=(t7) {.field_1=(t4) {.field_1=188,.field_2=2.4140625,.field_3=216,.field_4=223121033003008,.field_5=E_2_2,.field_6=3252553412},.field_2=(t5) {.field_1=-1.11328125,.field_2=48622469120,.field_3=107679637045248},.field_3=(t6) {.field_1=1.109375,.field_2=E_2_1}},.field_4=(t17) {.field_1=(t16) {.field_1=811385302,.field_2=-0.640625,.field_3=-0.671875,.field_4=(t6) {.field_1=-1.5625,.field_2=E_2_1}},.field_2=120}}}};
+ t43 a_7_6 = E_43_4;
+ uint8_t a_7_7 = 164;
+ double ret_7 = fn_7_myr(a_7_1, a_7_2, a_7_3, a_7_4, a_7_5, a_7_6, a_7_7);
+ if (!(ret_7==2.984375)) {
+ return -1;
+ }
+
+ t44 ret_8 = fn_8_myr();
+ if (!((ret_8.field_1==1.1875))) {
+ return -1;
+ }
+
+ t45 a_9_1 = E_45_6;
+ t46 a_9_2 = (t46) {.field_1=4118535730};
+ t45 a_9_3 = E_45_7;
+ t47 a_9_4 = E_47_2;
+ t48 a_9_5 = E_48_6;
+ float a_9_6 = -0.21875;
+ double a_9_7 = -1.4140625;
+ uint8_t a_9_8 = 162;
+ uint64_t a_9_9 = 170573566967808;
+ t49 a_9_10 = E_49_5;
+ t53 ret_9 = fn_9_myr(a_9_1, a_9_2, a_9_3, a_9_4, a_9_5, a_9_6, a_9_7, a_9_8, a_9_9, a_9_10);
+ if (!((ret_9.field_1==-0.46875) && ((ret_9.field_2.field_1==-0.28125) && (((ret_9.field_2.field_2.field_1.field_1==3.50390625) && ((ret_9.field_2.field_2.field_1.field_2.field_1==E_18_9) && (ret_9.field_2.field_2.field_1.field_2.field_2==298590436) && (ret_9.field_2.field_2.field_1.field_2.field_3==0.359375) && (ret_9.field_2.field_2.field_1.field_2.field_4==E_19_5) && ((ret_9.field_2.field_2.field_1.field_2.field_5.field_1==2.28125) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_2==-0.7421875) && ((ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_1==-1.359375) && (((ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_1==-1.53125) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_2==E_2_2)) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_2==159748598530048) && ((ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_1==1.328125) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_2==E_2_2)) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_4==-0.546875) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_5==146401660239872) && ((ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_1==0.6875) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_2==228983429529600) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_3==105127852507136))) && ((ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_1==-0.84375) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_2==0.359375) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_3==153705986129920)) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_4==-1.80859375) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_5==E_11_1) && (ret_9.field_2.field_2.field_1.field_2.field_5.field_3.field_6==3.28125))) && (((ret_9.field_2.field_2.field_1.field_2.field_6.field_1.field_1==1.96484375) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_1.field_2==46322522914816) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_1.field_3==96194539421696)) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_2==1.46875) && ((ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_1==912869840) && (((ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_1==176) && ((ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_1==121643541069824) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_2==41) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_3==2802989848) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_4==128) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_5==2.15625) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_6==-2.44921875)) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_3==1259853458) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_4==E_2_2)) && ((ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_1==64) && ((ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_1==86146197356544) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_2==90) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_3==3519983450) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_4==58) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_5==0.50390625) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_6==-2.765625)) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_3==3211917080) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_4==E_2_1))) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_3==270136525455360) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_4==-1.1875) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_3.field_5==139)) && ((ret_9.field_2.field_2.field_1.field_2.field_6.field_4.field_1==146) && (ret_9.field_2.field_2.field_1.field_2.field_6.field_4.field_2==0.53125)))) && (ret_9.field_2.field_2.field_1.field_3==228868406378496) && (ret_9.field_2.field_2.field_1.field_4==0.90234375)) && (ret_9.field_2.field_2.field_2==0.6796875) && (ret_9.field_2.field_2.field_3==158843979956224)) && (ret_9.field_2.field_3==3350000678) && (ret_9.field_2.field_4==1.34375)) && ((ret_9.field_3.field_1==0.25390625)) && (ret_9.field_4==3.8515625) && ((ret_9.field_5.field_1==0.375)) && (((ret_9.field_6.field_1.field_1==271586366193664) && ((ret_9.field_6.field_1.field_2.field_1==39) && (ret_9.field_6.field_1.field_2.field_2==-0.71875)) && (ret_9.field_6.field_1.field_3==131323353497600) && ((ret_9.field_6.field_1.field_4.field_1==1.34375) && (ret_9.field_6.field_1.field_4.field_2==129109365489664) && (((ret_9.field_6.field_1.field_4.field_3.field_1.field_1==194) && (ret_9.field_6.field_1.field_4.field_3.field_1.field_2==-3.05078125) && (ret_9.field_6.field_1.field_4.field_3.field_1.field_3==181) && (ret_9.field_6.field_1.field_4.field_3.field_1.field_4==18560330366976) && (ret_9.field_6.field_1.field_4.field_3.field_1.field_5==E_2_3) && (ret_9.field_6.field_1.field_4.field_3.field_1.field_6==2277482010)) && ((ret_9.field_6.field_1.field_4.field_3.field_2.field_1==-1.61328125) && (ret_9.field_6.field_1.field_4.field_3.field_2.field_2==7613576773632) && (ret_9.field_6.field_1.field_4.field_3.field_2.field_3==190410156933120)) && ((ret_9.field_6.field_1.field_4.field_3.field_3.field_1==-1.4375) && (ret_9.field_6.field_1.field_4.field_3.field_3.field_2==E_2_2))) && (((ret_9.field_6.field_1.field_4.field_4.field_1.field_1==2732417384) && (ret_9.field_6.field_1.field_4.field_4.field_1.field_2==-1.0625) && (ret_9.field_6.field_1.field_4.field_4.field_1.field_3==0.703125) && ((ret_9.field_6.field_1.field_4.field_4.field_1.field_4.field_1==-0.921875) && (ret_9.field_6.field_1.field_4.field_4.field_1.field_4.field_2==E_2_5))) && (ret_9.field_6.field_1.field_4.field_4.field_2==137)))) && (ret_9.field_6.field_2==1.015625) && (ret_9.field_6.field_3==117426174033920) && (ret_9.field_6.field_4==25)))) {
+ return -1;
+ }
+
+ float a_10_1 = -1.4375;
+ t55 a_10_2 = (t55) {.field_1=(t30) {.field_1=3.2734375,.field_2=(t21) {.field_1=E_18_8,.field_2=298655464,.field_3=-1.21875,.field_4=E_19_6,.field_5=(t20) {.field_1=-2.87109375,.field_2=3.77734375,.field_3=(t12) {.field_1=0.15625,.field_2=(t9) {.field_1=(t6) {.field_1=1.03125,.field_2=E_2_5},.field_2=4317979738112,.field_3=(t6) {.field_1=-0.375,.field_2=E_2_1},.field_4=-0.625,.field_5=119942540689408,.field_6=(t5) {.field_1=1.90234375,.field_2=84070773030912,.field_3=265295537897472}},.field_3=(t10) {.field_1=-1.5078125,.field_2=-0.046875,.field_3=247680725286912},.field_4=2.1484375,.field_5=E_11_1,.field_6=-0.6015625}},.field_6=(t15) {.field_1=(t5) {.field_1=-1.84765625,.field_2=4068918427648,.field_3=127361585905664},.field_2=0.6875,.field_3=(t13) {.field_1=4144444706,.field_2=(t8) {.field_1=(t3) {.field_1=65,.field_2=(t1) {.field_1=272708430856192,.field_2=226,.field_3=232384220,.field_4=9,.field_5=3.86328125,.field_6=1.4609375},.field_3=735172550,.field_4=E_2_6},.field_2=(t3) {.field_1=61,.field_2=(t1) {.field_1=558452178944,.field_2=178,.field_3=1092184810,.field_4=98,.field_5=1.76953125,.field_6=0.4453125},.field_3=3483926918,.field_4=E_2_3}},.field_3=240867814670336,.field_4=0.796875,.field_5=198},.field_4=(t14) {.field_1=86,.field_2=0.421875}}},.field_3=155213721894912,.field_4=-0.5859375},.field_2=15967994380288,.field_3=(t54) {.field_1=0.984375,.field_2=E_2_3,.field_3=E_43_4},.field_4=0.09375};
+ t43 a_10_3 = E_43_4;
+ float ret_10 = fn_10_myr(a_10_1, a_10_2, a_10_3);
+ if (!(ret_10==1.0)) {
+ return -1;
+ }
+
+ t40 a_11_1 = (t40) {.field_1=(t39) {.field_1=(t30) {.field_1=-1.875,.field_2=(t21) {.field_1=E_18_7,.field_2=3060119432,.field_3=1.4375,.field_4=E_19_8,.field_5=(t20) {.field_1=-3.14453125,.field_2=1.421875,.field_3=(t12) {.field_1=0.171875,.field_2=(t9) {.field_1=(t6) {.field_1=1.28125,.field_2=E_2_1},.field_2=115694040645632,.field_3=(t6) {.field_1=0.515625,.field_2=E_2_6},.field_4=0.78125,.field_5=83317925609472,.field_6=(t5) {.field_1=-0.16015625,.field_2=49194524213248,.field_3=99285919989760}},.field_3=(t10) {.field_1=-1.60546875,.field_2=0.359375,.field_3=242615500275712},.field_4=2.5546875,.field_5=E_11_1,.field_6=0.984375}},.field_6=(t15) {.field_1=(t5) {.field_1=-1.34375,.field_2=86155678318592,.field_3=125076719534080},.field_2=1.15625,.field_3=(t13) {.field_1=2526692668,.field_2=(t8) {.field_1=(t3) {.field_1=243,.field_2=(t1) {.field_1=162605589856256,.field_2=217,.field_3=2977687486,.field_4=74,.field_5=2.37109375,.field_6=1.49609375},.field_3=1665217660,.field_4=E_2_3},.field_2=(t3) {.field_1=63,.field_2=(t1) {.field_1=83432466808832,.field_2=163,.field_3=2825472336,.field_4=245,.field_5=0.5078125,.field_6=-0.71875},.field_3=1094350794,.field_4=E_2_1}},.field_3=163990210084864,.field_4=0.34375,.field_5=86},.field_4=(t14) {.field_1=50,.field_2=-0.09375}}},.field_3=46874424901632,.field_4=-2.23046875},.field_2=-3.16015625,.field_3=139156190003200},.field_2=133,.field_3=(t1) {.field_1=151978903994368,.field_2=92,.field_3=469183736,.field_4=125,.field_5=3.43359375,.field_6=3.57421875}};
+ uint64_t a_11_2 = 64581458329600;
+ t59 a_11_3 = (t59) {.field_1=E_56_6,.field_2=2175957910,.field_3=(t57) {.field_1=E_26_6,.field_2=168,.field_3=(t42) {.field_1=80343449468928,.field_2=E_41_3,.field_3=458518304,.field_4=(t23) {.field_1=132879007088640,.field_2=(t14) {.field_1=141,.field_2=0.3125},.field_3=67929798082560,.field_4=(t22) {.field_1=-0.65625,.field_2=121657342951424,.field_3=(t7) {.field_1=(t4) {.field_1=53,.field_2=-0.0546875,.field_3=110,.field_4=109205112356864,.field_5=E_2_5,.field_6=3971726706},.field_2=(t5) {.field_1=-3.20703125,.field_2=177956855611392,.field_3=219483313799168},.field_3=(t6) {.field_1=1.265625,.field_2=E_2_6}},.field_4=(t17) {.field_1=(t16) {.field_1=2465490790,.field_2=0.53125,.field_3=-0.078125,.field_4=(t6) {.field_1=0.3125,.field_2=E_2_2}},.field_2=219}}}},.field_4=(t12) {.field_1=-0.828125,.field_2=(t9) {.field_1=(t6) {.field_1=1.484375,.field_2=E_2_3},.field_2=223230053711872,.field_3=(t6) {.field_1=0.421875,.field_2=E_2_4},.field_4=-0.875,.field_5=208129902903296,.field_6=(t5) {.field_1=-2.94921875,.field_2=217811484278784,.field_3=95447919886336}},.field_3=(t10) {.field_1=-1.0625,.field_2=-1.375,.field_3=217105262837760},.field_4=0.5546875,.field_5=E_11_4,.field_6=-2.32421875},.field_5=4119368836,.field_6=-0.484375},.field_4=(t58) {.field_1=E_19_2,.field_2=(t30) {.field_1=-3.52734375,.field_2=(t21) {.field_1=E_18_9,.field_2=3895962858,.field_3=1.40625,.field_4=E_19_8,.field_5=(t20) {.field_1=-0.1484375,.field_2=0.92578125,.field_3=(t12) {.field_1=-0.265625,.field_2=(t9) {.field_1=(t6) {.field_1=-1.328125,.field_2=E_2_5},.field_2=76685686865920,.field_3=(t6) {.field_1=-0.578125,.field_2=E_2_5},.field_4=0.4375,.field_5=31133991829504,.field_6=(t5) {.field_1=-0.59765625,.field_2=81066773446656,.field_3=93021535076352}},.field_3=(t10) {.field_1=-2.6328125,.field_2=-0.28125,.field_3=29358042644480},.field_4=0.015625,.field_5=E_11_5,.field_6=-2.60546875}},.field_6=(t15) {.field_1=(t5) {.field_1=-1.7734375,.field_2=97291012014080,.field_3=203235864870912},.field_2=-0.078125,.field_3=(t13) {.field_1=1308944570,.field_2=(t8) {.field_1=(t3) {.field_1=17,.field_2=(t1) {.field_1=169812367376384,.field_2=90,.field_3=214389768,.field_4=130,.field_5=-1.5390625,.field_6=3.83984375},.field_3=4258613008,.field_4=E_2_6},.field_2=(t3) {.field_1=103,.field_2=(t1) {.field_1=19826711592960,.field_2=188,.field_3=2910355046,.field_4=99,.field_5=0.2265625,.field_6=-1.4453125},.field_3=2141412632,.field_4=E_2_6}},.field_3=169766818938880,.field_4=1.03125,.field_5=29},.field_4=(t14) {.field_1=3,.field_2=1.359375}}},.field_3=173832218083328,.field_4=2.25390625},.field_3=-1.25,.field_4=3.0546875}};
+ uint32_t ret_11 = fn_11_myr(a_11_1, a_11_2, a_11_3);
+ if (!(ret_11==3531194568)) {
+ return -1;
+ }
+
+ t63 a_12_1 = (t63) {.field_1=(t60) {.field_1=1,.field_2=-0.953125,.field_3=28380691169280,.field_4=(t1) {.field_1=266791176896512,.field_2=173,.field_3=841702660,.field_4=225,.field_5=-2.734375,.field_6=-2.24609375}},.field_2=(t61) {.field_1=-0.875,.field_2=(t16) {.field_1=2975373622,.field_2=1.46875,.field_3=-0.828125,.field_4=(t6) {.field_1=0.390625,.field_2=E_2_2}}},.field_3=0.515625,.field_4=(t62) {.field_1=E_18_1,.field_2=(t7) {.field_1=(t4) {.field_1=124,.field_2=0.00390625,.field_3=79,.field_4=236261015289856,.field_5=E_2_3,.field_6=2156655358},.field_2=(t5) {.field_1=2.4140625,.field_2=51905146388480,.field_3=223439089434624},.field_3=(t6) {.field_1=0.53125,.field_2=E_2_1}}},.field_5=255485003694080,.field_6=3.1015625};
+ double a_12_2 = 3.234375;
+ uint32_t a_12_3 = 1992315490;
+ t68 a_12_4 = (t68) {.field_1=E_64_6,.field_2=(t65) {.field_1=-1.48828125,.field_2=1219436194,.field_3=50,.field_4=41975805771776,.field_5=2064448724,.field_6=122353563467776},.field_3=(t66) {.field_1=(t59) {.field_1=E_56_2,.field_2=1046332580,.field_3=(t57) {.field_1=E_26_8,.field_2=209,.field_3=(t42) {.field_1=142694099582976,.field_2=E_41_2,.field_3=1010741440,.field_4=(t23) {.field_1=61520011984896,.field_2=(t14) {.field_1=110,.field_2=-0.125},.field_3=32251070906368,.field_4=(t22) {.field_1=-0.546875,.field_2=100567390355456,.field_3=(t7) {.field_1=(t4) {.field_1=16,.field_2=-2.8671875,.field_3=38,.field_4=106528154320896,.field_5=E_2_6,.field_6=154283124},.field_2=(t5) {.field_1=-2.69140625,.field_2=121530523058176,.field_3=195491981033472},.field_3=(t6) {.field_1=0.296875,.field_2=E_2_5}},.field_4=(t17) {.field_1=(t16) {.field_1=1183512522,.field_2=1.265625,.field_3=-1.453125,.field_4=(t6) {.field_1=-0.09375,.field_2=E_2_1}},.field_2=132}}}},.field_4=(t12) {.field_1=1.28125,.field_2=(t9) {.field_1=(t6) {.field_1=-0.65625,.field_2=E_2_5},.field_2=177899132157952,.field_3=(t6) {.field_1=-1.234375,.field_2=E_2_2},.field_4=1.4375,.field_5=97002546921472,.field_6=(t5) {.field_1=-0.09375,.field_2=109686219472896,.field_3=226948153081856}},.field_3=(t10) {.field_1=0.80078125,.field_2=0.6875,.field_3=46040566726656},.field_4=1.30859375,.field_5=E_11_6,.field_6=-1.4609375},.field_5=197005372,.field_6=0.640625},.field_4=(t58) {.field_1=E_19_3,.field_2=(t30) {.field_1=-2.33203125,.field_2=(t21) {.field_1=E_18_2,.field_2=187071608,.field_3=0.921875,.field_4=E_19_8,.field_5=(t20) {.field_1=-1.4140625,.field_2=1.54296875,.field_3=(t12) {.field_1=1.34375,.field_2=(t9) {.field_1=(t6) {.field_1=0.90625,.field_2=E_2_5},.field_2=125311720620032,.field_3=(t6) {.field_1=0.625,.field_2=E_2_1},.field_4=-0.921875,.field_5=92709840093184,.field_6=(t5) {.field_1=-2.73828125,.field_2=134199459708928,.field_3=81184594198528}},.field_3=(t10) {.field_1=-0.046875,.field_2=1.453125,.field_3=190870813671424},.field_4=-1.55859375,.field_5=E_11_4,.field_6=-0.8125}},.field_6=(t15) {.field_1=(t5) {.field_1=-0.28125,.field_2=65980206415872,.field_3=69437640933376},.field_2=0.875,.field_3=(t13) {.field_1=1203783426,.field_2=(t8) {.field_1=(t3) {.field_1=243,.field_2=(t1) {.field_1=35503180218368,.field_2=123,.field_3=359364016,.field_4=43,.field_5=-1.74609375,.field_6=3.69140625},.field_3=2099391278,.field_4=E_2_6},.field_2=(t3) {.field_1=230,.field_2=(t1) {.field_1=78725579800576,.field_2=184,.field_3=1476808480,.field_4=250,.field_5=2.0546875,.field_6=0.40234375},.field_3=1316011470,.field_4=E_2_6}},.field_3=7917143982080,.field_4=0.296875,.field_5=104},.field_4=(t14) {.field_1=254,.field_2=-0.71875}}},.field_3=198977607696384,.field_4=0.46875},.field_3=0.53125,.field_4=-2.57421875}},.field_2=(t53) {.field_1=0.921875,.field_2=(t50) {.field_1=3.24609375,.field_2=(t39) {.field_1=(t30) {.field_1=3.5,.field_2=(t21) {.field_1=E_18_1,.field_2=3714170846,.field_3=-1.34375,.field_4=E_19_5,.field_5=(t20) {.field_1=3.50390625,.field_2=-2.00390625,.field_3=(t12) {.field_1=1.046875,.field_2=(t9) {.field_1=(t6) {.field_1=1.328125,.field_2=E_2_5},.field_2=227074820669440,.field_3=(t6) {.field_1=1.0,.field_2=E_2_1},.field_4=0.09375,.field_5=45904748347392,.field_6=(t5) {.field_1=3.82421875,.field_2=82226218532864,.field_3=201097409331200}},.field_3=(t10) {.field_1=-1.59765625,.field_2=-0.921875,.field_3=209014553313280},.field_4=3.0546875,.field_5=E_11_4,.field_6=1.83984375}},.field_6=(t15) {.field_1=(t5) {.field_1=-2.62890625,.field_2=89468697313280,.field_3=83042110013440},.field_2=1.046875,.field_3=(t13) {.field_1=2099223986,.field_2=(t8) {.field_1=(t3) {.field_1=22,.field_2=(t1) {.field_1=210486406021120,.field_2=111,.field_3=702570652,.field_4=156,.field_5=0.0859375,.field_6=1.71875},.field_3=2409538788,.field_4=E_2_5},.field_2=(t3) {.field_1=141,.field_2=(t1) {.field_1=135559761887232,.field_2=124,.field_3=1544636438,.field_4=77,.field_5=-0.00390625,.field_6=3.0390625},.field_3=1992571074,.field_4=E_2_3}},.field_3=50968790564864,.field_4=-1.015625,.field_5=200},.field_4=(t14) {.field_1=98,.field_2=1.328125}}},.field_3=190118914424832,.field_4=3.87890625},.field_2=1.22265625,.field_3=236152535121920},.field_3=1350095886,.field_4=1.421875},.field_3=(t51) {.field_1=1.33984375},.field_4=2.37109375,.field_5=(t44) {.field_1=-1.4375},.field_6=(t52) {.field_1=(t23) {.field_1=117967668903936,.field_2=(t14) {.field_1=61,.field_2=-0.921875},.field_3=8916022067200,.field_4=(t22) {.field_1=0.78125,.field_2=260068453384192,.field_3=(t7) {.field_1=(t4) {.field_1=151,.field_2=0.04296875,.field_3=122,.field_4=20912341385216,.field_5=E_2_6,.field_6=3592715758},.field_2=(t5) {.field_1=-0.9765625,.field_2=138666200793088,.field_3=204194791948288},.field_3=(t6) {.field_1=1.0625,.field_2=E_2_6}},.field_4=(t17) {.field_1=(t16) {.field_1=3893487284,.field_2=-1.515625,.field_3=0.84375,.field_4=(t6) {.field_1=-0.65625,.field_2=E_2_6}},.field_2=113}}},.field_2=-0.671875,.field_3=167371868864512,.field_4=71}}},.field_4=(t67) {.field_1=(t52) {.field_1=(t23) {.field_1=169699773906944,.field_2=(t14) {.field_1=139,.field_2=1.421875},.field_3=114279424327680,.field_4=(t22) {.field_1=0.265625,.field_2=104534041427968,.field_3=(t7) {.field_1=(t4) {.field_1=165,.field_2=2.26953125,.field_3=103,.field_4=111656380792832,.field_5=E_2_5,.field_6=4276697078},.field_2=(t5) {.field_1=3.14453125,.field_2=53795771645952,.field_3=19714984378368},.field_3=(t6) {.field_1=1.234375,.field_2=E_2_1}},.field_4=(t17) {.field_1=(t16) {.field_1=1912043998,.field_2=-0.359375,.field_3=0.796875,.field_4=(t6) {.field_1=-0.671875,.field_2=E_2_3}},.field_2=168}}},.field_2=-0.625,.field_3=38298238189568,.field_4=243},.field_2=-2.03125},.field_5=(t22) {.field_1=0.25,.field_2=67610029064192,.field_3=(t7) {.field_1=(t4) {.field_1=213,.field_2=2.8046875,.field_3=215,.field_4=107128833966080,.field_5=E_2_5,.field_6=1069858560},.field_2=(t5) {.field_1=3.6484375,.field_2=51416336302080,.field_3=251914374217728},.field_3=(t6) {.field_1=0.8125,.field_2=E_2_4}},.field_4=(t17) {.field_1=(t16) {.field_1=1252682164,.field_2=-0.09375,.field_3=0.25,.field_4=(t6) {.field_1=-0.96875,.field_2=E_2_4}},.field_2=166}}};
+ uint32_t ret_12 = fn_12_myr(a_12_1, a_12_2, a_12_3, a_12_4);
+ if (!(ret_12==2964505044)) {
+ return -1;
+ }
+
+ t26 a_13_1 = E_26_9;
+ uint32_t a_13_2 = 2931952582;
+ t70 a_13_3 = (t70) {.field_1=(t69) {.field_1=E_29_2,.field_2=220,.field_3=281245651828737,.field_4=161440489930752}};
+ double a_13_4 = 0.62890625;
+ t73 a_13_5 = (t73) {.field_1=0.90625,.field_2=(t71) {.field_1=109360486285312,.field_2=-2.51953125,.field_3=3374314812,.field_4=4132094974,.field_5=143973346836480},.field_3=(t72) {.field_1=93,.field_2=3133286358,.field_3=129},.field_4=0.76953125};
+ t74 ret_13 = fn_13_myr(a_13_1, a_13_2, a_13_3, a_13_4, a_13_5);
+ if (!(ret_13==E_74_6)) {
+ return -1;
+ }
+
+ uint32_t a_14_1 = 2391308062;
+ uint8_t a_14_2 = 66;
+ t78 a_14_3 = (t78) {.field_1=(t75) {.field_1=85,.field_2=-2.80859375,.field_3=155146548},.field_2=(t76) {.field_1=235,.field_2=-1.2890625},.field_3=E_77_8};
+ t81 a_14_4 = (t81) {.field_1=E_79_1,.field_2=274420389904384,.field_3=E_80_2};
+ t32 a_14_5 = (t32) {.field_1=1325686188};
+ t82 a_14_6 = E_82_5;
+ t85 a_14_7 = (t85) {.field_1=558424532,.field_2=(t8) {.field_1=(t3) {.field_1=206,.field_2=(t1) {.field_1=150202022100992,.field_2=157,.field_3=860064444,.field_4=215,.field_5=-1.9765625,.field_6=-2.18359375},.field_3=2792603168,.field_4=E_2_1},.field_2=(t3) {.field_1=47,.field_2=(t1) {.field_1=209371989409792,.field_2=167,.field_3=1162519188,.field_4=232,.field_5=2.2109375,.field_6=3.82421875},.field_3=2196829234,.field_4=E_2_2}},.field_3=239020664553472,.field_4=645390774,.field_5=(t83) {.field_1=(t53) {.field_1=0.375,.field_2=(t50) {.field_1=-3.5625,.field_2=(t39) {.field_1=(t30) {.field_1=1.97265625,.field_2=(t21) {.field_1=E_18_8,.field_2=3857006490,.field_3=1.4375,.field_4=E_19_8,.field_5=(t20) {.field_1=3.66015625,.field_2=2.25390625,.field_3=(t12) {.field_1=-0.5,.field_2=(t9) {.field_1=(t6) {.field_1=-1.265625,.field_2=E_2_4},.field_2=246081152876544,.field_3=(t6) {.field_1=0.671875,.field_2=E_2_5},.field_4=0.6875,.field_5=270577423351808,.field_6=(t5) {.field_1=-3.7734375,.field_2=103229432922112,.field_3=25981307060224}},.field_3=(t10) {.field_1=-2.328125,.field_2=-1.21875,.field_3=210485456797696},.field_4=-0.21484375,.field_5=E_11_1,.field_6=0.23828125}},.field_6=(t15) {.field_1=(t5) {.field_1=-0.296875,.field_2=149437025615872,.field_3=217610901782528},.field_2=-0.59375,.field_3=(t13) {.field_1=2925618826,.field_2=(t8) {.field_1=(t3) {.field_1=100,.field_2=(t1) {.field_1=100015436857344,.field_2=111,.field_3=988840590,.field_4=64,.field_5=-0.8671875,.field_6=-2.19140625},.field_3=951054362,.field_4=E_2_2},.field_2=(t3) {.field_1=143,.field_2=(t1) {.field_1=89940269858816,.field_2=197,.field_3=1866268236,.field_4=8,.field_5=0.546875,.field_6=-2.7265625},.field_3=4272545584,.field_4=E_2_4}},.field_3=145750579740672,.field_4=-1.296875,.field_5=201},.field_4=(t14) {.field_1=160,.field_2=1.046875}}},.field_3=73607486504960,.field_4=1.15625},.field_2=-1.05078125,.field_3=203696970924032},.field_3=767588794,.field_4=-1.140625},.field_3=(t51) {.field_1=-3.6328125},.field_4=2.8125,.field_5=(t44) {.field_1=0.09375},.field_6=(t52) {.field_1=(t23) {.field_1=109872603332608,.field_2=(t14) {.field_1=75,.field_2=0.828125},.field_3=181185840939008,.field_4=(t22) {.field_1=0.578125,.field_2=276458107961344,.field_3=(t7) {.field_1=(t4) {.field_1=221,.field_2=2.8125,.field_3=138,.field_4=51979432886272,.field_5=E_2_4,.field_6=4196052024},.field_2=(t5) {.field_1=-2.203125,.field_2=57078884073472,.field_3=36038635683840},.field_3=(t6) {.field_1=-0.90625,.field_2=E_2_5}},.field_4=(t17) {.field_1=(t16) {.field_1=2773883292,.field_2=-0.625,.field_3=0.25,.field_4=(t6) {.field_1=-0.703125,.field_2=E_2_1}},.field_2=215}}},.field_2=1.328125,.field_3=140846684569600,.field_4=144}},.field_2=432794756,.field_3=2744398968},.field_6=(t84) {.field_1=153,.field_2=270401691844608}};
+ uint64_t ret_14 = fn_14_myr(a_14_1, a_14_2, a_14_3, a_14_4, a_14_5, a_14_6, a_14_7);
+ if (!(ret_14==278379121082369)) {
+ return -1;
+ }
+
+ t86 a_15_1 = E_86_10;
+ t69 a_15_2 = (t69) {.field_1=E_29_3,.field_2=174,.field_3=120887724867584,.field_4=122558970331136};
+ t88 a_15_3 = (t88) {.field_1=E_87_6,.field_2=E_19_4,.field_3=(t1) {.field_1=13773365706752,.field_2=103,.field_3=2174769352,.field_4=176,.field_5=-3.88671875,.field_6=-0.2578125},.field_4=E_48_7};
+ t93 a_15_4 = (t93) {.field_1=(t89) {.field_1=2.3515625,.field_2=0.375,.field_3=(t78) {.field_1=(t75) {.field_1=225,.field_2=3.30859375,.field_3=307894648},.field_2=(t76) {.field_1=11,.field_2=1.78125},.field_3=E_77_8}},.field_2=E_90_6,.field_3=(t15) {.field_1=(t5) {.field_1=-0.5234375,.field_2=132763972009984,.field_3=229659410694144},.field_2=-0.78125,.field_3=(t13) {.field_1=1759559384,.field_2=(t8) {.field_1=(t3) {.field_1=49,.field_2=(t1) {.field_1=136392379072512,.field_2=89,.field_3=217892376,.field_4=68,.field_5=-2.91796875,.field_6=-1.44140625},.field_3=411030898,.field_4=E_2_2},.field_2=(t3) {.field_1=22,.field_2=(t1) {.field_1=172726771253248,.field_2=126,.field_3=1394729466,.field_4=253,.field_5=1.3359375,.field_6=-1.6875},.field_3=691362998,.field_4=E_2_3}},.field_3=253720887820288,.field_4=-1.4375,.field_5=101},.field_4=(t14) {.field_1=249,.field_2=-1.296875}},.field_4=(t91) {.field_1=528531976,.field_2=(t71) {.field_1=261386844897280,.field_2=1.84765625,.field_3=2388631154,.field_4=1719296880,.field_5=155468073926656},.field_3=3470986990,.field_4=3478856264},.field_5=(t92) {.field_1=3194978670,.field_2=1257202236,.field_3=678627422}};
+ t95 a_15_5 = (t95) {.field_1=-0.953125,.field_2=1149891486,.field_3=E_94_1};
+ t25 a_15_6 = (t25) {.field_1=E_24_7,.field_2=(t6) {.field_1=0.953125,.field_2=E_2_3}};
+ float a_15_7 = 0.65625;
+ t60 a_15_8 = (t60) {.field_1=174,.field_2=0.140625,.field_3=211052441108480,.field_4=(t1) {.field_1=171324051947520,.field_2=72,.field_3=1314068538,.field_4=2,.field_5=2.62109375,.field_6=-3.015625}};
+ t97 a_15_9 = (t97) {.field_1=(t93) {.field_1=(t89) {.field_1=3.0234375,.field_2=1.390625,.field_3=(t78) {.field_1=(t75) {.field_1=51,.field_2=-2.76953125,.field_3=3019798602},.field_2=(t76) {.field_1=1,.field_2=0.5078125},.field_3=E_77_8}},.field_2=E_90_7,.field_3=(t15) {.field_1=(t5) {.field_1=-3.71484375,.field_2=157999771287552,.field_3=111072570245120},.field_2=0.21875,.field_3=(t13) {.field_1=1336322566,.field_2=(t8) {.field_1=(t3) {.field_1=0,.field_2=(t1) {.field_1=240426317512704,.field_2=157,.field_3=52590348,.field_4=176,.field_5=1.80859375,.field_6=2.58984375},.field_3=1153624366,.field_4=E_2_1},.field_2=(t3) {.field_1=206,.field_2=(t1) {.field_1=180814220492800,.field_2=26,.field_3=299703506,.field_4=32,.field_5=1.73828125,.field_6=3.32421875},.field_3=3465599182,.field_4=E_2_4}},.field_3=244610903965696,.field_4=-1.546875,.field_5=193},.field_4=(t14) {.field_1=146,.field_2=-1.515625}},.field_4=(t91) {.field_1=1374840658,.field_2=(t71) {.field_1=142626650193920,.field_2=1.80859375,.field_3=1480961136,.field_4=292227856,.field_5=35406836006912},.field_3=3934363586,.field_4=1628550422},.field_5=(t92) {.field_1=554328638,.field_2=3308010754,.field_3=4278941526}},.field_2=-2.8046875,.field_3=(t96) {.field_1=-0.31640625,.field_2=1.77734375}};
+ t100 a_15_10 = (t100) {.field_1=(t98) {.field_1=(t83) {.field_1=(t53) {.field_1=-0.578125,.field_2=(t50) {.field_1=-0.7265625,.field_2=(t39) {.field_1=(t30) {.field_1=-2.6015625,.field_2=(t21) {.field_1=E_18_5,.field_2=3722140840,.field_3=1.234375,.field_4=E_19_4,.field_5=(t20) {.field_1=0.7421875,.field_2=2.03125,.field_3=(t12) {.field_1=-0.90625,.field_2=(t9) {.field_1=(t6) {.field_1=1.46875,.field_2=E_2_5},.field_2=16987441070080,.field_3=(t6) {.field_1=-0.125,.field_2=E_2_3},.field_4=1.0625,.field_5=215665831968768,.field_6=(t5) {.field_1=1.7265625,.field_2=135345495736320,.field_3=22229593620480}},.field_3=(t10) {.field_1=2.16015625,.field_2=0.625,.field_3=114942210998272},.field_4=-2.71484375,.field_5=E_11_3,.field_6=-0.2421875}},.field_6=(t15) {.field_1=(t5) {.field_1=2.91796875,.field_2=59953140727808,.field_3=184442813546496},.field_2=0.03125,.field_3=(t13) {.field_1=1648496868,.field_2=(t8) {.field_1=(t3) {.field_1=248,.field_2=(t1) {.field_1=258110700650496,.field_2=141,.field_3=1835743428,.field_4=200,.field_5=-0.42578125,.field_6=2.7890625},.field_3=1625618080,.field_4=E_2_2},.field_2=(t3) {.field_1=17,.field_2=(t1) {.field_1=96824602525696,.field_2=239,.field_3=545066032,.field_4=206,.field_5=-1.140625,.field_6=3.6171875},.field_3=2459246160,.field_4=E_2_1}},.field_3=124927959629824,.field_4=0.46875,.field_5=218},.field_4=(t14) {.field_1=36,.field_2=-1.375}}},.field_3=1156421255168,.field_4=0.4921875},.field_2=0.2265625,.field_3=246949201182720},.field_3=3332544584,.field_4=-0.984375},.field_3=(t51) {.field_1=-0.87890625},.field_4=-2.66015625,.field_5=(t44) {.field_1=-1.078125},.field_6=(t52) {.field_1=(t23) {.field_1=85664792313856,.field_2=(t14) {.field_1=181,.field_2=0.265625},.field_3=24759761633280,.field_4=(t22) {.field_1=-1.078125,.field_2=123531649613824,.field_3=(t7) {.field_1=(t4) {.field_1=119,.field_2=-1.08203125,.field_3=129,.field_4=228120870649856,.field_5=E_2_2,.field_6=2715867670},.field_2=(t5) {.field_1=0.9140625,.field_2=183028377845760,.field_3=167569567645696},.field_3=(t6) {.field_1=-0.96875,.field_2=E_2_5}},.field_4=(t17) {.field_1=(t16) {.field_1=168190774,.field_2=1.078125,.field_3=0.234375,.field_4=(t6) {.field_1=-1.0,.field_2=E_2_6}},.field_2=148}}},.field_2=0.765625,.field_3=120963210805248,.field_4=117}},.field_2=2231554362,.field_3=2636507052},.field_2=2.703125,.field_3=191209702686720,.field_4=2.1015625,.field_5=38},.field_2=109765657755648,.field_3=-1.1640625,.field_4=-2.046875,.field_5=(t99) {.field_1=E_19_5,.field_2=3391967572}};
+ t102 ret_15 = fn_15_myr(a_15_1, a_15_2, a_15_3, a_15_4, a_15_5, a_15_6, a_15_7, a_15_8, a_15_9, a_15_10);
+ if (!((ret_15.field_1==0.25) && ((ret_15.field_2.field_1==E_18_6) && (ret_15.field_2.field_2==696503716) && (ret_15.field_2.field_3==-1.078125) && (ret_15.field_2.field_4==E_19_6) && ((ret_15.field_2.field_5.field_1==-3.4140625) && (ret_15.field_2.field_5.field_2==1.85546875) && ((ret_15.field_2.field_5.field_3.field_1==-0.046875) && (((ret_15.field_2.field_5.field_3.field_2.field_1.field_1==-0.015625) && (ret_15.field_2.field_5.field_3.field_2.field_1.field_2==E_2_2)) && (ret_15.field_2.field_5.field_3.field_2.field_2==1680566779904) && ((ret_15.field_2.field_5.field_3.field_2.field_3.field_1==-1.234375) && (ret_15.field_2.field_5.field_3.field_2.field_3.field_2==E_2_1)) && (ret_15.field_2.field_5.field_3.field_2.field_4==0.578125) && (ret_15.field_2.field_5.field_3.field_2.field_5==246387639451648) && ((ret_15.field_2.field_5.field_3.field_2.field_6.field_1==-2.4140625) && (ret_15.field_2.field_5.field_3.field_2.field_6.field_2==21180950511616) && (ret_15.field_2.field_5.field_3.field_2.field_6.field_3==63676999925760))) && ((ret_15.field_2.field_5.field_3.field_3.field_1==-0.5546875) && (ret_15.field_2.field_5.field_3.field_3.field_2==0.375) && (ret_15.field_2.field_5.field_3.field_3.field_3==4498010144768)) && (ret_15.field_2.field_5.field_3.field_4==-2.86328125) && (ret_15.field_2.field_5.field_3.field_5==E_11_4) && (ret_15.field_2.field_5.field_3.field_6==-1.4765625))) && (((ret_15.field_2.field_6.field_1.field_1==1.16015625) && (ret_15.field_2.field_6.field_1.field_2==206263158308864) && (ret_15.field_2.field_6.field_1.field_3==67183469658112)) && (ret_15.field_2.field_6.field_2==0.875) && ((ret_15.field_2.field_6.field_3.field_1==2520041722) && (((ret_15.field_2.field_6.field_3.field_2.field_1.field_1==194) && ((ret_15.field_2.field_6.field_3.field_2.field_1.field_2.field_1==28598144729088) && (ret_15.field_2.field_6.field_3.field_2.field_1.field_2.field_2==42) && (ret_15.field_2.field_6.field_3.field_2.field_1.field_2.field_3==1389583824) && (ret_15.field_2.field_6.field_3.field_2.field_1.field_2.field_4==67) && (ret_15.field_2.field_6.field_3.field_2.field_1.field_2.field_5==-1.390625) && (ret_15.field_2.field_6.field_3.field_2.field_1.field_2.field_6==-3.390625)) && (ret_15.field_2.field_6.field_3.field_2.field_1.field_3==1403784366) && (ret_15.field_2.field_6.field_3.field_2.field_1.field_4==E_2_1)) && ((ret_15.field_2.field_6.field_3.field_2.field_2.field_1==141) && ((ret_15.field_2.field_6.field_3.field_2.field_2.field_2.field_1==230715822833664) && (ret_15.field_2.field_6.field_3.field_2.field_2.field_2.field_2==65) && (ret_15.field_2.field_6.field_3.field_2.field_2.field_2.field_3==2399362858) && (ret_15.field_2.field_6.field_3.field_2.field_2.field_2.field_4==237) && (ret_15.field_2.field_6.field_3.field_2.field_2.field_2.field_5==-1.59375) && (ret_15.field_2.field_6.field_3.field_2.field_2.field_2.field_6==-2.0)) && (ret_15.field_2.field_6.field_3.field_2.field_2.field_3==3443253262) && (ret_15.field_2.field_6.field_3.field_2.field_2.field_4==E_2_3))) && (ret_15.field_2.field_6.field_3.field_3==89840887529472) && (ret_15.field_2.field_6.field_3.field_4==-1.484375) && (ret_15.field_2.field_6.field_3.field_5==234)) && ((ret_15.field_2.field_6.field_4.field_1==240) && (ret_15.field_2.field_6.field_4.field_2==-1.4375)))) && ((ret_15.field_3.field_1==-1.40625)) && (ret_15.field_4==-0.23828125))) {
+ return -1;
+ }
+
+ uint64_t a_16_1 = 138813818142720;
+ t57 a_16_2 = (t57) {.field_1=E_26_3,.field_2=224,.field_3=(t42) {.field_1=107786496507904,.field_2=E_41_3,.field_3=3940023518,.field_4=(t23) {.field_1=116812990251008,.field_2=(t14) {.field_1=43,.field_2=-0.203125},.field_3=66490954678272,.field_4=(t22) {.field_1=-0.734375,.field_2=151595749212160,.field_3=(t7) {.field_1=(t4) {.field_1=3,.field_2=-3.59765625,.field_3=124,.field_4=18634915053568,.field_5=E_2_4,.field_6=2585846002},.field_2=(t5) {.field_1=-0.33984375,.field_2=105850133544960,.field_3=200111611576320},.field_3=(t6) {.field_1=-0.1875,.field_2=E_2_1}},.field_4=(t17) {.field_1=(t16) {.field_1=3167428002,.field_2=-0.609375,.field_3=1.015625,.field_4=(t6) {.field_1=-0.046875,.field_2=E_2_4}},.field_2=4}}}},.field_4=(t12) {.field_1=1.5,.field_2=(t9) {.field_1=(t6) {.field_1=-1.296875,.field_2=E_2_4},.field_2=73429141815296,.field_3=(t6) {.field_1=1.453125,.field_2=E_2_6},.field_4=0.59375,.field_5=247630766538752,.field_6=(t5) {.field_1=-1.03515625,.field_2=242640090824704,.field_3=89287634190336}},.field_3=(t10) {.field_1=0.8125,.field_2=-1.171875,.field_3=240883383402496},.field_4=0.91015625,.field_5=E_11_2,.field_6=-1.25},.field_5=2931638482,.field_6=0.71875};
+ t15 ret_16 = fn_16_myr(a_16_1, a_16_2);
+ if (!(((ret_16.field_1.field_1==-3.1015625) && (ret_16.field_1.field_2==183885376782336) && (ret_16.field_1.field_3==162392907317248)) && (ret_16.field_2==-1.09375) && ((ret_16.field_3.field_1==1678328882) && (((ret_16.field_3.field_2.field_1.field_1==226) && ((ret_16.field_3.field_2.field_1.field_2.field_1==274580443365376) && (ret_16.field_3.field_2.field_1.field_2.field_2==223) && (ret_16.field_3.field_2.field_1.field_2.field_3==1866442708) && (ret_16.field_3.field_2.field_1.field_2.field_4==253) && (ret_16.field_3.field_2.field_1.field_2.field_5==2.7421875) && (ret_16.field_3.field_2.field_1.field_2.field_6==0.16015625)) && (ret_16.field_3.field_2.field_1.field_3==2411587072) && (ret_16.field_3.field_2.field_1.field_4==E_2_1)) && ((ret_16.field_3.field_2.field_2.field_1==123) && ((ret_16.field_3.field_2.field_2.field_2.field_1==144693939929088) && (ret_16.field_3.field_2.field_2.field_2.field_2==205) && (ret_16.field_3.field_2.field_2.field_2.field_3==1556663324) && (ret_16.field_3.field_2.field_2.field_2.field_4==225) && (ret_16.field_3.field_2.field_2.field_2.field_5==1.2890625) && (ret_16.field_3.field_2.field_2.field_2.field_6==1.40234375)) && (ret_16.field_3.field_2.field_2.field_3==2084842492) && (ret_16.field_3.field_2.field_2.field_4==E_2_5))) && (ret_16.field_3.field_3==150713528483840) && (ret_16.field_3.field_4==-1.25) && (ret_16.field_3.field_5==245)) && ((ret_16.field_4.field_1==224) && (ret_16.field_4.field_2==0.890625)))) {
+ return -1;
+ }
+
+ float a_17_1 = -0.8125;
+ t10 a_17_2 = (t10) {.field_1=-2.640625,.field_2=-0.3125,.field_3=158864030433280};
+ t35 a_17_3 = (t35) {.field_1=120060447424512,.field_2=200994178};
+ float a_17_4 = -1.0625;
+ t18 a_17_5 = E_18_7;
+ uint64_t a_17_6 = 180628077543424;
+ t3 a_17_7 = (t3) {.field_1=160,.field_2=(t1) {.field_1=267308015419392,.field_2=53,.field_3=2126242378,.field_4=29,.field_5=-3.328125,.field_6=2.71875},.field_3=324345820,.field_4=E_2_3};
+ float a_17_8 = 1.5625;
+ t56 a_17_9 = E_56_5;
+ t72 a_17_10 = (t72) {.field_1=0,.field_2=1742227568,.field_3=93};
+ double ret_17 = fn_17_myr(a_17_1, a_17_2, a_17_3, a_17_4, a_17_5, a_17_6, a_17_7, a_17_8, a_17_9, a_17_10);
+ if (!(ret_17==2.59765625)) {
+ return -1;
+ }
+
+ t29 a_18_1 = E_29_5;
+ t50 a_18_2 = (t50) {.field_1=-0.671875,.field_2=(t39) {.field_1=(t30) {.field_1=-2.3984375,.field_2=(t21) {.field_1=E_18_5,.field_2=178101928,.field_3=-1.125,.field_4=E_19_6,.field_5=(t20) {.field_1=0.28515625,.field_2=-1.88671875,.field_3=(t12) {.field_1=0.921875,.field_2=(t9) {.field_1=(t6) {.field_1=-0.359375,.field_2=E_2_3},.field_2=75260795158528,.field_3=(t6) {.field_1=0.59375,.field_2=E_2_2},.field_4=-1.515625,.field_5=64393391505408,.field_6=(t5) {.field_1=3.38671875,.field_2=241181364584448,.field_3=262564167811072}},.field_3=(t10) {.field_1=3.3984375,.field_2=-0.75,.field_3=84301476790272},.field_4=-1.7421875,.field_5=E_11_1,.field_6=1.6640625}},.field_6=(t15) {.field_1=(t5) {.field_1=2.96484375,.field_2=25240979636224,.field_3=279218169577473},.field_2=0.46875,.field_3=(t13) {.field_1=3583795084,.field_2=(t8) {.field_1=(t3) {.field_1=121,.field_2=(t1) {.field_1=18449750163456,.field_2=7,.field_3=4231471828,.field_4=27,.field_5=-2.578125,.field_6=1.60546875},.field_3=2763967082,.field_4=E_2_3},.field_2=(t3) {.field_1=127,.field_2=(t1) {.field_1=7883293065216,.field_2=195,.field_3=3293015804,.field_4=183,.field_5=-3.18359375,.field_6=2.20703125},.field_3=4053927584,.field_4=E_2_1}},.field_3=179909264015360,.field_4=1.1875,.field_5=245},.field_4=(t14) {.field_1=230,.field_2=-1.015625}}},.field_3=66953411952640,.field_4=3.87890625},.field_2=3.04296875,.field_3=33030485442560},.field_3=369406000,.field_4=1.203125};
+ t94 a_18_3 = E_94_3;
+ t97 a_18_4 = (t97) {.field_1=(t93) {.field_1=(t89) {.field_1=-1.234375,.field_2=1.390625,.field_3=(t78) {.field_1=(t75) {.field_1=30,.field_2=-3.5390625,.field_3=2512982078},.field_2=(t76) {.field_1=139,.field_2=0.36328125},.field_3=E_77_5}},.field_2=E_90_3,.field_3=(t15) {.field_1=(t5) {.field_1=-1.4609375,.field_2=92383916457984,.field_3=113307733983232},.field_2=-1.265625,.field_3=(t13) {.field_1=1168626982,.field_2=(t8) {.field_1=(t3) {.field_1=109,.field_2=(t1) {.field_1=206784518291456,.field_2=38,.field_3=1671741250,.field_4=162,.field_5=-1.3671875,.field_6=0.9921875},.field_3=2717166618,.field_4=E_2_2},.field_2=(t3) {.field_1=190,.field_2=(t1) {.field_1=202281623093248,.field_2=24,.field_3=2205245826,.field_4=163,.field_5=-0.375,.field_6=-1.1875},.field_3=2520606304,.field_4=E_2_5}},.field_3=81504045891584,.field_4=0.640625,.field_5=215},.field_4=(t14) {.field_1=223,.field_2=-0.78125}},.field_4=(t91) {.field_1=1663866964,.field_2=(t71) {.field_1=137293949304832,.field_2=0.4765625,.field_3=3008888856,.field_4=3504606106,.field_5=271175374602240},.field_3=3418972692,.field_4=378265792},.field_5=(t92) {.field_1=1683646014,.field_2=2279286742,.field_3=1017297018}},.field_2=2.19921875,.field_3=(t96) {.field_1=-2.6015625,.field_2=0.484375}};
+ t82 a_18_5 = E_82_5;
+ uint32_t a_18_6 = 2225998788;
+ t68 ret_18 = fn_18_myr(a_18_1, a_18_2, a_18_3, a_18_4, a_18_5, a_18_6);
+ if (!((ret_18.field_1==E_64_2) && ((ret_18.field_2.field_1==-1.3828125) && (ret_18.field_2.field_2==61112946) && (ret_18.field_2.field_3==190) && (ret_18.field_2.field_4==32961124368384) && (ret_18.field_2.field_5==1304765990) && (ret_18.field_2.field_6==126354513723392)) && (((ret_18.field_3.field_1.field_1==E_56_7) && (ret_18.field_3.field_1.field_2==766433818) && ((ret_18.field_3.field_1.field_3.field_1==E_26_8) && (ret_18.field_3.field_1.field_3.field_2==88) && ((ret_18.field_3.field_1.field_3.field_3.field_1==187522956001280) && (ret_18.field_3.field_1.field_3.field_3.field_2==E_41_2) && (ret_18.field_3.field_1.field_3.field_3.field_3==197628948) && ((ret_18.field_3.field_1.field_3.field_3.field_4.field_1==135725845053440) && ((ret_18.field_3.field_1.field_3.field_3.field_4.field_2.field_1==57) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_2.field_2==1.078125)) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_3==160515871997952) && ((ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_1==0.359375) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_2==104917964292096) && (((ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_1==206) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_2==-0.80078125) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_3==138) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_4==103853490044928) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_5==E_2_5) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_1.field_6==1457574106)) && ((ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_2.field_1==-2.7734375) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_2.field_2==269868276908032) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_2.field_3==241406633312256)) && ((ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_3.field_1==-1.515625) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_3.field_3.field_2==E_2_4))) && (((ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_1.field_1==64443498) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_1.field_2==-0.5) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_1.field_3==0.4375) && ((ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_1.field_4.field_1==0.8125) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_1.field_4.field_2==E_2_3))) && (ret_18.field_3.field_1.field_3.field_3.field_4.field_4.field_4.field_2==241))))) && ((ret_18.field_3.field_1.field_3.field_4.field_1==-0.921875) && (((ret_18.field_3.field_1.field_3.field_4.field_2.field_1.field_1==-0.265625) && (ret_18.field_3.field_1.field_3.field_4.field_2.field_1.field_2==E_2_1)) && (ret_18.field_3.field_1.field_3.field_4.field_2.field_2==255656365260800) && ((ret_18.field_3.field_1.field_3.field_4.field_2.field_3.field_1==0.8125) && (ret_18.field_3.field_1.field_3.field_4.field_2.field_3.field_2==E_2_5)) && (ret_18.field_3.field_1.field_3.field_4.field_2.field_4==-1.03125) && (ret_18.field_3.field_1.field_3.field_4.field_2.field_5==226905594134528) && ((ret_18.field_3.field_1.field_3.field_4.field_2.field_6.field_1==-1.796875) && (ret_18.field_3.field_1.field_3.field_4.field_2.field_6.field_2==110809697746944) && (ret_18.field_3.field_1.field_3.field_4.field_2.field_6.field_3==182448222502912))) && ((ret_18.field_3.field_1.field_3.field_4.field_3.field_1==2.66015625) && (ret_18.field_3.field_1.field_3.field_4.field_3.field_2==-1.53125) && (ret_18.field_3.field_1.field_3.field_4.field_3.field_3==5891210215424)) && (ret_18.field_3.field_1.field_3.field_4.field_4==1.15234375) && (ret_18.field_3.field_1.field_3.field_4.field_5==E_11_3) && (ret_18.field_3.field_1.field_3.field_4.field_6==0.47265625)) && (ret_18.field_3.field_1.field_3.field_5==69698034) && (ret_18.field_3.field_1.field_3.field_6==-0.90625)) && ((ret_18.field_3.field_1.field_4.field_1==E_19_8) && ((ret_18.field_3.field_1.field_4.field_2.field_1==-2.6484375) && ((ret_18.field_3.field_1.field_4.field_2.field_2.field_1==E_18_2) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_2==3254220376) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_3==-1.015625) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_4==E_19_7) && ((ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_1==2.1328125) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_2==0.1328125) && ((ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_1==-0.203125) && (((ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_1.field_1==0.09375) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_1.field_2==E_2_6)) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_2==106879791398912) && ((ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_3.field_1==0.75) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_3.field_2==E_2_3)) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_4==0.0) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_5==182488977768448) && ((ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_6.field_1==-2.75) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_6.field_2==81305866600448) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_2.field_6.field_3==230134322036736))) && ((ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_3.field_1==3.55078125) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_3.field_2==0.1875) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_3.field_3==59469043073024)) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_4==0.80078125) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_5==E_11_3) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_5.field_3.field_6==-2.1796875))) && (((ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_1.field_1==0.96484375) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_1.field_2==12986746798080) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_1.field_3==177073504780288)) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_2==-0.984375) && ((ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_1==267860066) && (((ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_1==215) && ((ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_1==23720503803904) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_2==57) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_3==65633880) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_4==215) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_5==-0.7734375) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_2.field_6==2.4453125)) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_3==2639863120) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_1.field_4==E_2_6)) && ((ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_1==63) && ((ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_1==41253608357888) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_2==228) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_3==2702252196) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_4==226) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_5==-1.72265625) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_2.field_6==-2.890625)) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_3==2297595192) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_2.field_2.field_4==E_2_3))) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_3==117994529226752) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_4==-0.46875) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_3.field_5==97)) && ((ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_4.field_1==250) && (ret_18.field_3.field_1.field_4.field_2.field_2.field_6.field_4.field_2==0.203125)))) && (ret_18.field_3.field_1.field_4.field_2.field_3==277277376118785) && (ret_18.field_3.field_1.field_4.field_2.field_4==-0.96484375)) && (ret_18.field_3.field_1.field_4.field_3==0.890625) && (ret_18.field_3.field_1.field_4.field_4==0.84765625))) && ((ret_18.field_3.field_2.field_1==-0.234375) && ((ret_18.field_3.field_2.field_2.field_1==-0.671875) && (((ret_18.field_3.field_2.field_2.field_2.field_1.field_1==2.2890625) && ((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_1==E_18_5) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_2==1104171190) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_3==1.1875) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_4==E_19_6) && ((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_1==-1.77734375) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_2==1.7109375) && ((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_1==-1.21875) && (((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_1==-1.296875) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_1.field_2==E_2_3)) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_2==7804846080000) && ((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_1==-0.515625) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_3.field_2==E_2_3)) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_4==1.3125) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_5==271269411815424) && ((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_1==-1.0390625) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_2==55968624803840) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_2.field_6.field_3==26483097731072))) && ((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_1==3.140625) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_2==0.390625) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_3.field_3==144477626957824)) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_4==-1.91796875) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_5==E_11_1) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_5.field_3.field_6==-0.0703125))) && (((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_1.field_1==2.48828125) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_1.field_2==279887108243457) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_1.field_3==244326716669952)) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_2==0.328125) && ((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_1==2589946058) && (((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_1==74) && ((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_1==4995850829824) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_2==101) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_3==3334065356) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_4==70) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_5==-1.7734375) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_2.field_6==-0.1171875)) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_3==2350206898) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_1.field_4==E_2_6)) && ((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_1==152) && ((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_1==177982762647552) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_2==83) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_3==2674374442) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_4==247) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_5==2.39453125) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_2.field_6==0.328125)) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_3==3997067408) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_2.field_2.field_4==E_2_2))) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_3==208487505199104) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_4==-1.5) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_3.field_5==19)) && ((ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_4.field_1==94) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_2.field_6.field_4.field_2==0.125)))) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_3==92775544913920) && (ret_18.field_3.field_2.field_2.field_2.field_1.field_4==-0.96484375)) && (ret_18.field_3.field_2.field_2.field_2.field_2==-3.6796875) && (ret_18.field_3.field_2.field_2.field_2.field_3==41625584271360)) && (ret_18.field_3.field_2.field_2.field_3==1594096200) && (ret_18.field_3.field_2.field_2.field_4==1.25)) && ((ret_18.field_3.field_2.field_3.field_1==1.96484375)) && (ret_18.field_3.field_2.field_4==3.70703125) && ((ret_18.field_3.field_2.field_5.field_1==-0.984375)) && (((ret_18.field_3.field_2.field_6.field_1.field_1==216482604515328) && ((ret_18.field_3.field_2.field_6.field_1.field_2.field_1==94) && (ret_18.field_3.field_2.field_6.field_1.field_2.field_2==1.453125)) && (ret_18.field_3.field_2.field_6.field_1.field_3==12366441873408) && ((ret_18.field_3.field_2.field_6.field_1.field_4.field_1==0.453125) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_2==126556415852544) && (((ret_18.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_1==151) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_2==1.05859375) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_3==11) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_4==62897387208704) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_5==E_2_6) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_3.field_1.field_6==2865786744)) && ((ret_18.field_3.field_2.field_6.field_1.field_4.field_3.field_2.field_1==-2.421875) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_3.field_2.field_2==216082708430848) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_3.field_2.field_3==58856103739392)) && ((ret_18.field_3.field_2.field_6.field_1.field_4.field_3.field_3.field_1==-1.1875) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_3.field_3.field_2==E_2_6))) && (((ret_18.field_3.field_2.field_6.field_1.field_4.field_4.field_1.field_1==4079339738) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_4.field_1.field_2==-1.109375) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_4.field_1.field_3==-1.515625) && ((ret_18.field_3.field_2.field_6.field_1.field_4.field_4.field_1.field_4.field_1==-0.578125) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_4.field_1.field_4.field_2==E_2_5))) && (ret_18.field_3.field_2.field_6.field_1.field_4.field_4.field_2==88)))) && (ret_18.field_3.field_2.field_6.field_2==0.609375) && (ret_18.field_3.field_2.field_6.field_3==200682606166016) && (ret_18.field_3.field_2.field_6.field_4==126)))) && ((((ret_18.field_4.field_1.field_1.field_1==18371726016512) && ((ret_18.field_4.field_1.field_1.field_2.field_1==156) && (ret_18.field_4.field_1.field_1.field_2.field_2==-0.796875)) && (ret_18.field_4.field_1.field_1.field_3==11102142726144) && ((ret_18.field_4.field_1.field_1.field_4.field_1==0.9375) && (ret_18.field_4.field_1.field_1.field_4.field_2==3949612367872) && (((ret_18.field_4.field_1.field_1.field_4.field_3.field_1.field_1==104) && (ret_18.field_4.field_1.field_1.field_4.field_3.field_1.field_2==2.0546875) && (ret_18.field_4.field_1.field_1.field_4.field_3.field_1.field_3==14) && (ret_18.field_4.field_1.field_1.field_4.field_3.field_1.field_4==14837206614016) && (ret_18.field_4.field_1.field_1.field_4.field_3.field_1.field_5==E_2_2) && (ret_18.field_4.field_1.field_1.field_4.field_3.field_1.field_6==2787867058)) && ((ret_18.field_4.field_1.field_1.field_4.field_3.field_2.field_1==1.46875) && (ret_18.field_4.field_1.field_1.field_4.field_3.field_2.field_2==72374060974080) && (ret_18.field_4.field_1.field_1.field_4.field_3.field_2.field_3==245603042721792)) && ((ret_18.field_4.field_1.field_1.field_4.field_3.field_3.field_1==0.46875) && (ret_18.field_4.field_1.field_1.field_4.field_3.field_3.field_2==E_2_6))) && (((ret_18.field_4.field_1.field_1.field_4.field_4.field_1.field_1==270200364) && (ret_18.field_4.field_1.field_1.field_4.field_4.field_1.field_2==-0.265625) && (ret_18.field_4.field_1.field_1.field_4.field_4.field_1.field_3==-1.15625) && ((ret_18.field_4.field_1.field_1.field_4.field_4.field_1.field_4.field_1==-1.0) && (ret_18.field_4.field_1.field_1.field_4.field_4.field_1.field_4.field_2==E_2_3))) && (ret_18.field_4.field_1.field_1.field_4.field_4.field_2==21)))) && (ret_18.field_4.field_1.field_2==-0.53125) && (ret_18.field_4.field_1.field_3==105323182686208) && (ret_18.field_4.field_1.field_4==102)) && (ret_18.field_4.field_2==-3.8046875)) && ((ret_18.field_5.field_1==0.6875) && (ret_18.field_5.field_2==26654515134464) && (((ret_18.field_5.field_3.field_1.field_1==185) && (ret_18.field_5.field_3.field_1.field_2==-2.23828125) && (ret_18.field_5.field_3.field_1.field_3==40) && (ret_18.field_5.field_3.field_1.field_4==94730623254528) && (ret_18.field_5.field_3.field_1.field_5==E_2_3) && (ret_18.field_5.field_3.field_1.field_6==856451172)) && ((ret_18.field_5.field_3.field_2.field_1==-2.8515625) && (ret_18.field_5.field_3.field_2.field_2==132974633549824) && (ret_18.field_5.field_3.field_2.field_3==171401795600384)) && ((ret_18.field_5.field_3.field_3.field_1==1.25) && (ret_18.field_5.field_3.field_3.field_2==E_2_4))) && (((ret_18.field_5.field_4.field_1.field_1==2841781650) && (ret_18.field_5.field_4.field_1.field_2==-1.21875) && (ret_18.field_5.field_4.field_1.field_3==-1.0) && ((ret_18.field_5.field_4.field_1.field_4.field_1==-0.46875) && (ret_18.field_5.field_4.field_1.field_4.field_2==E_2_3))) && (ret_18.field_5.field_4.field_2==13))))) {
+ return -1;
+ }
+
+ uint64_t a_19_1 = 158887773995008;
+ uint8_t a_19_2 = 186;
+ uint8_t ret_19 = fn_19_myr(a_19_1, a_19_2);
+ if (!(ret_19==113)) {
+ return -1;
+ }
+
+ t72 a_20_1 = (t72) {.field_1=31,.field_2=784492568,.field_3=176};
+ t54 a_20_2 = (t54) {.field_1=-0.03125,.field_2=E_2_6,.field_3=E_43_2};
+ t102 a_20_3 = (t102) {.field_1=-0.953125,.field_2=(t21) {.field_1=E_18_1,.field_2=3892333532,.field_3=0.921875,.field_4=E_19_3,.field_5=(t20) {.field_1=2.6015625,.field_2=-0.328125,.field_3=(t12) {.field_1=0.3125,.field_2=(t9) {.field_1=(t6) {.field_1=0.34375,.field_2=E_2_3},.field_2=231543623516160,.field_3=(t6) {.field_1=1.046875,.field_2=E_2_1},.field_4=1.078125,.field_5=158249674997760,.field_6=(t5) {.field_1=-3.65234375,.field_2=81418480910336,.field_3=142554027130880}},.field_3=(t10) {.field_1=3.359375,.field_2=1.21875,.field_3=57638369755136},.field_4=-3.484375,.field_5=E_11_1,.field_6=3.09765625}},.field_6=(t15) {.field_1=(t5) {.field_1=0.51171875,.field_2=165765595136000,.field_3=108768946552832},.field_2=-0.25,.field_3=(t13) {.field_1=3389738472,.field_2=(t8) {.field_1=(t3) {.field_1=18,.field_2=(t1) {.field_1=117849701351424,.field_2=251,.field_3=595888978,.field_4=83,.field_5=2.171875,.field_6=-0.47265625},.field_3=678334346,.field_4=E_2_2},.field_2=(t3) {.field_1=10,.field_2=(t1) {.field_1=215416273371136,.field_2=175,.field_3=3712234320,.field_4=153,.field_5=1.58203125,.field_6=1.640625},.field_3=691527554,.field_4=E_2_5}},.field_3=281208706433025,.field_4=0.53125,.field_5=170},.field_4=(t14) {.field_1=226,.field_2=1.171875}}},.field_3=(t101) {.field_1=0.6875},.field_4=3.54296875};
+ t30 a_20_4 = (t30) {.field_1=0.328125,.field_2=(t21) {.field_1=E_18_2,.field_2=3038599074,.field_3=-0.53125,.field_4=E_19_2,.field_5=(t20) {.field_1=-2.921875,.field_2=-1.4453125,.field_3=(t12) {.field_1=-0.421875,.field_2=(t9) {.field_1=(t6) {.field_1=-0.15625,.field_2=E_2_1},.field_2=226740145750016,.field_3=(t6) {.field_1=0.34375,.field_2=E_2_2},.field_4=1.09375,.field_5=105371665039360,.field_6=(t5) {.field_1=-3.7890625,.field_2=200291522183168,.field_3=273916916662272}},.field_3=(t10) {.field_1=1.69921875,.field_2=-0.25,.field_3=37761889730560},.field_4=-0.37109375,.field_5=E_11_3,.field_6=2.359375}},.field_6=(t15) {.field_1=(t5) {.field_1=-2.98828125,.field_2=85889758134272,.field_3=189673236725760},.field_2=1.0625,.field_3=(t13) {.field_1=1108811158,.field_2=(t8) {.field_1=(t3) {.field_1=113,.field_2=(t1) {.field_1=34340434870272,.field_2=204,.field_3=2563547796,.field_4=212,.field_5=-2.8828125,.field_6=2.53125},.field_3=4104468038,.field_4=E_2_3},.field_2=(t3) {.field_1=48,.field_2=(t1) {.field_1=114490489438208,.field_2=137,.field_3=4274611490,.field_4=4,.field_5=2.87109375,.field_6=2.67578125},.field_3=1675682774,.field_4=E_2_6}},.field_3=155964017999872,.field_4=-0.421875,.field_5=153},.field_4=(t14) {.field_1=249,.field_2=-0.015625}}},.field_3=14699609849856,.field_4=-0.8125};
+ float a_20_5 = -1.03125;
+ t100 a_20_6 = (t100) {.field_1=(t98) {.field_1=(t83) {.field_1=(t53) {.field_1=-1.546875,.field_2=(t50) {.field_1=3.58984375,.field_2=(t39) {.field_1=(t30) {.field_1=-0.6640625,.field_2=(t21) {.field_1=E_18_2,.field_2=3261231628,.field_3=-1.53125,.field_4=E_19_8,.field_5=(t20) {.field_1=3.0546875,.field_2=2.625,.field_3=(t12) {.field_1=1.296875,.field_2=(t9) {.field_1=(t6) {.field_1=-0.515625,.field_2=E_2_1},.field_2=90256515661824,.field_3=(t6) {.field_1=1.1875,.field_2=E_2_1},.field_4=-0.515625,.field_5=209147190050816,.field_6=(t5) {.field_1=2.83984375,.field_2=204519943045120,.field_3=176046915452928}},.field_3=(t10) {.field_1=-0.64453125,.field_2=-1.28125,.field_3=63390518214656},.field_4=-0.8359375,.field_5=E_11_4,.field_6=-1.73828125}},.field_6=(t15) {.field_1=(t5) {.field_1=2.2578125,.field_2=249508094672896,.field_3=125875889766400},.field_2=-0.03125,.field_3=(t13) {.field_1=3690927442,.field_2=(t8) {.field_1=(t3) {.field_1=116,.field_2=(t1) {.field_1=126408480784384,.field_2=70,.field_3=2502906064,.field_4=53,.field_5=-1.66796875,.field_6=0.3203125},.field_3=425223464,.field_4=E_2_1},.field_2=(t3) {.field_1=116,.field_2=(t1) {.field_1=122683318730752,.field_2=37,.field_3=3331048268,.field_4=79,.field_5=-2.58984375,.field_6=-3.03125},.field_3=234747400,.field_4=E_2_1}},.field_3=236050942525440,.field_4=0.5625,.field_5=115},.field_4=(t14) {.field_1=237,.field_2=1.265625}}},.field_3=237145589940224,.field_4=0.125},.field_2=-2.48046875,.field_3=177709856587776},.field_3=1727895586,.field_4=0.40625},.field_3=(t51) {.field_1=-2.9609375},.field_4=-1.86328125,.field_5=(t44) {.field_1=-1.3125},.field_6=(t52) {.field_1=(t23) {.field_1=160533698838528,.field_2=(t14) {.field_1=137,.field_2=0.53125},.field_3=219195279015936,.field_4=(t22) {.field_1=1.015625,.field_2=58457369870336,.field_3=(t7) {.field_1=(t4) {.field_1=224,.field_2=3.4765625,.field_3=169,.field_4=88271065972736,.field_5=E_2_1,.field_6=1881912782},.field_2=(t5) {.field_1=0.98046875,.field_2=73571505274880,.field_3=154864035561472},.field_3=(t6) {.field_1=0.5625,.field_2=E_2_2}},.field_4=(t17) {.field_1=(t16) {.field_1=1669921896,.field_2=-0.4375,.field_3=0.765625,.field_4=(t6) {.field_1=-0.578125,.field_2=E_2_2}},.field_2=149}}},.field_2=1.046875,.field_3=126107861778432,.field_4=55}},.field_2=1011521230,.field_3=334865810},.field_2=-1.265625,.field_3=139944064581632,.field_4=-2.64453125,.field_5=232},.field_2=9370746880000,.field_3=2.56640625,.field_4=1.46484375,.field_5=(t99) {.field_1=E_19_7,.field_2=155644616}};
+ t82 a_20_7 = E_82_5;
+ t92 a_20_8 = (t92) {.field_1=588421914,.field_2=2163719396,.field_3=664040668};
+ t19 a_20_9 = E_19_4;
+ uint8_t ret_20 = fn_20_myr(a_20_1, a_20_2, a_20_3, a_20_4, a_20_5, a_20_6, a_20_7, a_20_8, a_20_9);
+ if (!(ret_20==139)) {
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/test/abi/006_in-c.myr b/test/abi/006_in-c.myr
new file mode 100644
index 0000000..751509f
--- /dev/null
+++ b/test/abi/006_in-c.myr
@@ -0,0 +1,26 @@
+use std
+use "006_types"
+
+pkg =
+ extern const fn_1_c : (a1 : uint32, a2 : (uint8,t1,uint32,t2), a3 : t2, a4 : flt32, a5 : uint8 -> t7)
+ extern const fn_2_c : (a1 : t7, a2 : ((uint8,t1,uint32,t2),(uint8,t1,uint32,t2)), a3 : t12, a4 : flt64, a5 : ((flt64,uint64,uint64),flt32,t13,(uint8,flt32)), a6 : t13, a7 : uint32 -> flt32)
+ extern const fn_3_c : (a1 : (flt64,uint64,uint64), a2 : ((flt64,uint64,uint64),flt32,t13,(uint8,flt32)), a3 : (uint32,flt32,flt32,(flt32,t2)), a4 : (uint32,flt32,flt32,(flt32,t2)), a5 : uint64, a6 : t17, a7 : t12 -> flt32)
+ extern const fn_4_c : (a1 : t1, a2 : t21, a3 : t23, a4 : flt64, a5 : (flt32,t2), a6 : uint64, a7 : flt64 -> t2)
+ extern const fn_5_c : (a1 : uint32, a2 : t24, a3 : flt64, a4 : (t24,(flt32,t2)), a5 : uint64, a6 : t28 -> (uint8,t1,uint32,t2))
+ extern const fn_6_c : (a1 : t29, a2 : ((uint8,t1,uint32,t2),(uint8,t1,uint32,t2)), a3 : (uint64,t30,t31,t32), a4 : (flt64,uint64,uint64), a5 : uint32, a6 : flt32, a7 : t11, a8 : (uint64,(flt32,t2),(uint32,flt32,uint64,uint32),t35), a9 : (uint32,flt32,flt32,(flt32,t2)), a10 : t37 -> flt64)
+ extern const fn_7_c : (a1 : uint64, a2 : t38, a3 : uint8, a4 : ((t30,flt64,uint64),uint8,t1), a5 : (uint64,t41,uint32,t23), a6 : t43, a7 : uint8 -> flt64)
+ extern const fn_8_c : ( -> t44)
+ extern const fn_9_c : (a1 : t45, a2 : t46, a3 : t45, a4 : t47, a5 : t48, a6 : flt32, a7 : flt64, a8 : uint8, a9 : uint64, a10 : t49 -> t53)
+ extern const fn_10_c : (a1 : flt32, a2 : (t30,uint64,t54,flt32), a3 : t43 -> flt32)
+ extern const fn_11_c : (a1 : ((t30,flt64,uint64),uint8,t1), a2 : uint64, a3 : (t56,uint32,t57,(t19,t30,flt32,flt64)) -> uint32)
+ extern const fn_12_c : (a1 : t63, a2 : flt64, a3 : uint32, a4 : t68 -> uint32)
+ extern const fn_13_c : (a1 : t26, a2 : uint32, a3 : t70, a4 : flt64, a5 : (flt32,t71,(uint8,uint32,uint8),flt64) -> t74)
+ extern const fn_14_c : (a1 : uint32, a2 : uint8, a3 : (t75,t76,t77), a4 : (t79,uint64,t80), a5 : t32, a6 : t82, a7 : t85 -> uint64)
+ extern const fn_15_c : (a1 : t86, a2 : t69, a3 : t88, a4 : t93, a5 : (flt32,uint32,t94), a6 : (t24,(flt32,t2)), a7 : flt32, a8 : (uint8,flt32,uint64,t1), a9 : (t93,flt64,t96), a10 : t100 -> (flt32,t21,t101,flt64))
+ extern const fn_16_c : (a1 : uint64, a2 : t57 -> ((flt64,uint64,uint64),flt32,t13,(uint8,flt32)))
+ extern const fn_17_c : (a1 : flt32, a2 : (flt64,flt32,uint64), a3 : t35, a4 : flt32, a5 : t18, a6 : uint64, a7 : (uint8,t1,uint32,t2), a8 : flt32, a9 : t56, a10 : (uint8,uint32,uint8) -> flt64)
+ extern const fn_18_c : (a1 : t29, a2 : t50, a3 : t94, a4 : (t93,flt64,t96), a5 : t82, a6 : uint32 -> t68)
+ extern const fn_19_c : (a1 : uint64, a2 : uint8 -> uint8)
+ extern const fn_20_c : (a1 : (uint8,uint32,uint8), a2 : t54, a3 : (flt32,t21,t101,flt64), a4 : t30, a5 : flt32, a6 : t100, a7 : t82, a8 : (uint32,uint32,uint32), a9 : t19 -> uint8)
+ extern const check_c_to_myr_fns : (-> int)
+;;
diff --git a/test/abi/006_in-myr.myr b/test/abi/006_in-myr.myr
new file mode 100644
index 0000000..f23f482
--- /dev/null
+++ b/test/abi/006_in-myr.myr
@@ -0,0 +1,646 @@
+use std
+use "006_types"
+
+pkg =
+ const fn_1_myr : (a1 : uint32, a2 : (uint8,t1,uint32,t2), a3 : t2, a4 : flt32, a5 : uint8 -> t7)
+ const fn_2_myr : (a1 : t7, a2 : ((uint8,t1,uint32,t2),(uint8,t1,uint32,t2)), a3 : t12, a4 : flt64, a5 : ((flt64,uint64,uint64),flt32,t13,(uint8,flt32)), a6 : t13, a7 : uint32 -> flt32)
+ const fn_3_myr : (a1 : (flt64,uint64,uint64), a2 : ((flt64,uint64,uint64),flt32,t13,(uint8,flt32)), a3 : (uint32,flt32,flt32,(flt32,t2)), a4 : (uint32,flt32,flt32,(flt32,t2)), a5 : uint64, a6 : t17, a7 : t12 -> flt32)
+ const fn_4_myr : (a1 : t1, a2 : t21, a3 : t23, a4 : flt64, a5 : (flt32,t2), a6 : uint64, a7 : flt64 -> t2)
+ const fn_5_myr : (a1 : uint32, a2 : t24, a3 : flt64, a4 : (t24,(flt32,t2)), a5 : uint64, a6 : t28 -> (uint8,t1,uint32,t2))
+ const fn_6_myr : (a1 : t29, a2 : ((uint8,t1,uint32,t2),(uint8,t1,uint32,t2)), a3 : (uint64,t30,t31,t32), a4 : (flt64,uint64,uint64), a5 : uint32, a6 : flt32, a7 : t11, a8 : (uint64,(flt32,t2),(uint32,flt32,uint64,uint32),t35), a9 : (uint32,flt32,flt32,(flt32,t2)), a10 : t37 -> flt64)
+ const fn_7_myr : (a1 : uint64, a2 : t38, a3 : uint8, a4 : ((t30,flt64,uint64),uint8,t1), a5 : (uint64,t41,uint32,t23), a6 : t43, a7 : uint8 -> flt64)
+ const fn_8_myr : ( -> t44)
+ const fn_9_myr : (a1 : t45, a2 : t46, a3 : t45, a4 : t47, a5 : t48, a6 : flt32, a7 : flt64, a8 : uint8, a9 : uint64, a10 : t49 -> t53)
+ const fn_10_myr : (a1 : flt32, a2 : (t30,uint64,t54,flt32), a3 : t43 -> flt32)
+ const fn_11_myr : (a1 : ((t30,flt64,uint64),uint8,t1), a2 : uint64, a3 : (t56,uint32,t57,(t19,t30,flt32,flt64)) -> uint32)
+ const fn_12_myr : (a1 : t63, a2 : flt64, a3 : uint32, a4 : t68 -> uint32)
+ const fn_13_myr : (a1 : t26, a2 : uint32, a3 : t70, a4 : flt64, a5 : (flt32,t71,(uint8,uint32,uint8),flt64) -> t74)
+ const fn_14_myr : (a1 : uint32, a2 : uint8, a3 : (t75,t76,t77), a4 : (t79,uint64,t80), a5 : t32, a6 : t82, a7 : t85 -> uint64)
+ const fn_15_myr : (a1 : t86, a2 : t69, a3 : t88, a4 : t93, a5 : (flt32,uint32,t94), a6 : (t24,(flt32,t2)), a7 : flt32, a8 : (uint8,flt32,uint64,t1), a9 : (t93,flt64,t96), a10 : t100 -> (flt32,t21,t101,flt64))
+ const fn_16_myr : (a1 : uint64, a2 : t57 -> ((flt64,uint64,uint64),flt32,t13,(uint8,flt32)))
+ const fn_17_myr : (a1 : flt32, a2 : (flt64,flt32,uint64), a3 : t35, a4 : flt32, a5 : t18, a6 : uint64, a7 : (uint8,t1,uint32,t2), a8 : flt32, a9 : t56, a10 : (uint8,uint32,uint8) -> flt64)
+ const fn_18_myr : (a1 : t29, a2 : t50, a3 : t94, a4 : (t93,flt64,t96), a5 : t82, a6 : uint32 -> t68)
+ const fn_19_myr : (a1 : uint64, a2 : uint8 -> uint8)
+ const fn_20_myr : (a1 : (uint8,uint32,uint8), a2 : t54, a3 : (flt32,t21,t101,flt64), a4 : t30, a5 : flt32, a6 : t100, a7 : t82, a8 : (uint32,uint32,uint32), a9 : t19 -> uint8)
+;;
+
+const fn_1_myr = { a1 : uint32, a2 : (uint8,t1,uint32,t2), a3 : t2, a4 : flt32, a5 : uint8
+ if !(a1==3331313618)
+ goto bad
+ ;;
+
+ if !((a2.0==163) && ((a2.1.field_1==112669747445760) && (a2.1.field_2==68) && (a2.1.field_3==2961163238) && (a2.1.field_4==144) && (a2.1.field_5==3.1171875) && (a2.1.field_6==-0.77734375)) && (a2.2==2638767956) && (a2.3==`E_2_3))
+ goto bad
+ ;;
+
+ if !(a3==`E_2_1)
+ goto bad
+ ;;
+
+ if !(a4==0.875)
+ goto bad
+ ;;
+
+ if !(a5==63)
+ goto bad
+ ;;
+
+ -> [.field_1=[.field_1=156,.field_2=2.83203125,.field_3=67,.field_4=143760266887168,.field_5=`E_2_6,.field_6=2927029180],.field_2=(-2.55078125,159665344872448,199843724394496),.field_3=(-0.625,`E_2_6)]
+
+:bad
+ -> [.field_1=[.field_1=224,.field_2=-3.55859375,.field_3=83,.field_4=192626519703552,.field_5=`E_2_2,.field_6=280197342],.field_2=(-2.49609375,252253836541952,197595307704320),.field_3=(-1.328125,`E_2_2)]
+}
+
+const fn_2_myr = { a1 : t7, a2 : ((uint8,t1,uint32,t2),(uint8,t1,uint32,t2)), a3 : t12, a4 : flt64, a5 : ((flt64,uint64,uint64),flt32,t13,(uint8,flt32)), a6 : t13, a7 : uint32
+ if !(((a1.field_1.field_1==195) && (a1.field_1.field_2==-2.625) && (a1.field_1.field_3==107) && (a1.field_1.field_4==250193960632320) && (a1.field_1.field_5==`E_2_1) && (a1.field_1.field_6==3277066896)) && ((a1.field_2.0==0.01171875) && (a1.field_2.1==271113481355264) && (a1.field_2.2==7202154348544)) && ((a1.field_3.0==-1.53125) && (a1.field_3.1==`E_2_6)))
+ goto bad
+ ;;
+
+ if !(((a2.0.0==75) && ((a2.0.1.field_1==149688830001152) && (a2.0.1.field_2==166) && (a2.0.1.field_3==4203656652) && (a2.0.1.field_4==184) && (a2.0.1.field_5==1.6796875) && (a2.0.1.field_6==-2.66015625)) && (a2.0.2==2647535284) && (a2.0.3==`E_2_3)) && ((a2.1.0==60) && ((a2.1.1.field_1==234959706259456) && (a2.1.1.field_2==30) && (a2.1.1.field_3==3070502934) && (a2.1.1.field_4==195) && (a2.1.1.field_5==2.9921875) && (a2.1.1.field_6==2.96484375)) && (a2.1.2==803402210) && (a2.1.3==`E_2_5)))
+ goto bad
+ ;;
+
+ if !((a3.field_1==0.203125) && (((a3.field_2.field_1.0==-0.140625) && (a3.field_2.field_1.1==`E_2_2)) && (a3.field_2.field_2==151793905303552) && ((a3.field_2.field_3.0==0.75) && (a3.field_2.field_3.1==`E_2_1)) && (a3.field_2.field_4==-0.875) && (a3.field_2.field_5==59595538169856) && ((a3.field_2.field_6.0==-0.51171875) && (a3.field_2.field_6.1==90586118225920) && (a3.field_2.field_6.2==47799910137856))) && ((a3.field_3.0==-3.4140625) && (a3.field_3.1==0.671875) && (a3.field_3.2==185693112107008)) && (a3.field_4==-1.23828125) && (a3.field_5==`E_11_1) && (a3.field_6==2.890625))
+ goto bad
+ ;;
+
+ if !(a4==0.94921875)
+ goto bad
+ ;;
+
+ if !(((a5.0.0==2.03515625) && (a5.0.1==29216526696448) && (a5.0.2==236353793556480)) && (a5.1==1.09375) && ((a5.2.field_1==4181791332) && (((a5.2.field_2.0.0==44) && ((a5.2.field_2.0.1.field_1==132595126632448) && (a5.2.field_2.0.1.field_2==171) && (a5.2.field_2.0.1.field_3==3948447728) && (a5.2.field_2.0.1.field_4==220) && (a5.2.field_2.0.1.field_5==-3.69140625) && (a5.2.field_2.0.1.field_6==-2.40625)) && (a5.2.field_2.0.2==3172323970) && (a5.2.field_2.0.3==`E_2_5)) && ((a5.2.field_2.1.0==224) && ((a5.2.field_2.1.1.field_1==275519312887808) && (a5.2.field_2.1.1.field_2==53) && (a5.2.field_2.1.1.field_3==3186715686) && (a5.2.field_2.1.1.field_4==144) && (a5.2.field_2.1.1.field_5==-2.5703125) && (a5.2.field_2.1.1.field_6==-3.41015625)) && (a5.2.field_2.1.2==1867717394) && (a5.2.field_2.1.3==`E_2_5))) && (a5.2.field_3==35551921045504) && (a5.2.field_4==-0.203125) && (a5.2.field_5==101)) && ((a5.3.0==102) && (a5.3.1==1.15625)))
+ goto bad
+ ;;
+
+ if !((a6.field_1==1580005156) && (((a6.field_2.0.0==51) && ((a6.field_2.0.1.field_1==266965320073216) && (a6.field_2.0.1.field_2==53) && (a6.field_2.0.1.field_3==212878900) && (a6.field_2.0.1.field_4==236) && (a6.field_2.0.1.field_5==-0.921875) && (a6.field_2.0.1.field_6==0.16015625)) && (a6.field_2.0.2==2543329268) && (a6.field_2.0.3==`E_2_2)) && ((a6.field_2.1.0==98) && ((a6.field_2.1.1.field_1==174501380489216) && (a6.field_2.1.1.field_2==126) && (a6.field_2.1.1.field_3==522689612) && (a6.field_2.1.1.field_4==110) && (a6.field_2.1.1.field_5==-1.0234375) && (a6.field_2.1.1.field_6==-3.12109375)) && (a6.field_2.1.2==2756676114) && (a6.field_2.1.3==`E_2_1))) && (a6.field_3==186819725099008) && (a6.field_4==0.984375) && (a6.field_5==44))
+ goto bad
+ ;;
+
+ if !(a7==2083878374)
+ goto bad
+ ;;
+
+ -> 0.109375
+
+:bad
+ -> 1.1875
+}
+
+const fn_3_myr = { a1 : (flt64,uint64,uint64), a2 : ((flt64,uint64,uint64),flt32,t13,(uint8,flt32)), a3 : (uint32,flt32,flt32,(flt32,t2)), a4 : (uint32,flt32,flt32,(flt32,t2)), a5 : uint64, a6 : t17, a7 : t12
+ if !((a1.0==0.36328125) && (a1.1==217080895242240) && (a1.2==146180381081600))
+ goto bad
+ ;;
+
+ if !(((a2.0.0==0.5390625) && (a2.0.1==117399373217792) && (a2.0.2==101569454014464)) && (a2.1==-1.296875) && ((a2.2.field_1==39734246) && (((a2.2.field_2.0.0==169) && ((a2.2.field_2.0.1.field_1==133031533740032) && (a2.2.field_2.0.1.field_2==161) && (a2.2.field_2.0.1.field_3==668802928) && (a2.2.field_2.0.1.field_4==152) && (a2.2.field_2.0.1.field_5==-3.4296875) && (a2.2.field_2.0.1.field_6==0.1953125)) && (a2.2.field_2.0.2==2984403120) && (a2.2.field_2.0.3==`E_2_5)) && ((a2.2.field_2.1.0==162) && ((a2.2.field_2.1.1.field_1==100930591260672) && (a2.2.field_2.1.1.field_2==132) && (a2.2.field_2.1.1.field_3==3484222870) && (a2.2.field_2.1.1.field_4==117) && (a2.2.field_2.1.1.field_5==-3.8984375) && (a2.2.field_2.1.1.field_6==-3.02734375)) && (a2.2.field_2.1.2==4255148568) && (a2.2.field_2.1.3==`E_2_6))) && (a2.2.field_3==229240590827520) && (a2.2.field_4==-0.328125) && (a2.2.field_5==51)) && ((a2.3.0==92) && (a2.3.1==-1.046875)))
+ goto bad
+ ;;
+
+ if !((a3.0==1212401592) && (a3.1==-1.046875) && (a3.2==1.109375) && ((a3.3.0==1.296875) && (a3.3.1==`E_2_2)))
+ goto bad
+ ;;
+
+ if !((a4.0==3641606114) && (a4.1==-1.125) && (a4.2==0.546875) && ((a4.3.0==-0.046875) && (a4.3.1==`E_2_3)))
+ goto bad
+ ;;
+
+ if !(a5==83130758201344)
+ goto bad
+ ;;
+
+ if !(((a6.field_1.0==954818626) && (a6.field_1.1==-0.5) && (a6.field_1.2==-0.703125) && ((a6.field_1.3.0==0.265625) && (a6.field_1.3.1==`E_2_4))) && (a6.field_2==254))
+ goto bad
+ ;;
+
+ if !((a7.field_1==-0.671875) && (((a7.field_2.field_1.0==0.671875) && (a7.field_2.field_1.1==`E_2_1)) && (a7.field_2.field_2==186559912869888) && ((a7.field_2.field_3.0==1.546875) && (a7.field_2.field_3.1==`E_2_2)) && (a7.field_2.field_4==0.046875) && (a7.field_2.field_5==255023204139008) && ((a7.field_2.field_6.0==1.13671875) && (a7.field_2.field_6.1==270028714934272) && (a7.field_2.field_6.2==247333204000768))) && ((a7.field_3.0==-0.0546875) && (a7.field_3.1==-1.25) && (a7.field_3.2==156053374763008)) && (a7.field_4==3.73046875) && (a7.field_5==`E_11_4) && (a7.field_6==1.92578125))
+ goto bad
+ ;;
+
+ -> 0.171875
+
+:bad
+ -> 1.375
+}
+
+const fn_4_myr = { a1 : t1, a2 : t21, a3 : t23, a4 : flt64, a5 : (flt32,t2), a6 : uint64, a7 : flt64
+ if !((a1.field_1==254108937224192) && (a1.field_2==215) && (a1.field_3==1243252406) && (a1.field_4==124) && (a1.field_5==-1.1875) && (a1.field_6==-1.68359375))
+ goto bad
+ ;;
+
+ if !((a2.field_1==`E_18_8) && (a2.field_2==4113752024) && (a2.field_3==0.5) && (a2.field_4==`E_19_5) && ((a2.field_5.0==-0.3203125) && (a2.field_5.1==1.33984375) && ((a2.field_5.2.field_1==-0.171875) && (((a2.field_5.2.field_2.field_1.0==-0.625) && (a2.field_5.2.field_2.field_1.1==`E_2_6)) && (a2.field_5.2.field_2.field_2==262778588495872) && ((a2.field_5.2.field_2.field_3.0==0.46875) && (a2.field_5.2.field_2.field_3.1==`E_2_2)) && (a2.field_5.2.field_2.field_4==1.125) && (a2.field_5.2.field_2.field_5==182381629145088) && ((a2.field_5.2.field_2.field_6.0==2.4609375) && (a2.field_5.2.field_2.field_6.1==139713139179520) && (a2.field_5.2.field_2.field_6.2==225645534511104))) && ((a2.field_5.2.field_3.0==-3.54296875) && (a2.field_5.2.field_3.1==-1.171875) && (a2.field_5.2.field_3.2==78173635870720)) && (a2.field_5.2.field_4==2.28515625) && (a2.field_5.2.field_5==`E_11_4) && (a2.field_5.2.field_6==-0.7890625))) && (((a2.field_6.0.0==-0.01953125) && (a2.field_6.0.1==23439019999232) && (a2.field_6.0.2==3807452332032)) && (a2.field_6.1==-0.625) && ((a2.field_6.2.field_1==233931326) && (((a2.field_6.2.field_2.0.0==154) && ((a2.field_6.2.field_2.0.1.field_1==198616597528576) && (a2.field_6.2.field_2.0.1.field_2==197) && (a2.field_6.2.field_2.0.1.field_3==2016579036) && (a2.field_6.2.field_2.0.1.field_4==169) && (a2.field_6.2.field_2.0.1.field_5==-0.5546875) && (a2.field_6.2.field_2.0.1.field_6==-3.796875)) && (a2.field_6.2.field_2.0.2==526208716) && (a2.field_6.2.field_2.0.3==`E_2_1)) && ((a2.field_6.2.field_2.1.0==118) && ((a2.field_6.2.field_2.1.1.field_1==119263763103744) && (a2.field_6.2.field_2.1.1.field_2==15) && (a2.field_6.2.field_2.1.1.field_3==1698145536) && (a2.field_6.2.field_2.1.1.field_4==18) && (a2.field_6.2.field_2.1.1.field_5==-1.51171875) && (a2.field_6.2.field_2.1.1.field_6==-1.921875)) && (a2.field_6.2.field_2.1.2==3097128252) && (a2.field_6.2.field_2.1.3==`E_2_1))) && (a2.field_6.2.field_3==211270742966272) && (a2.field_6.2.field_4==0.078125) && (a2.field_6.2.field_5==42)) && ((a2.field_6.3.0==225) && (a2.field_6.3.1==0.9375))))
+ goto bad
+ ;;
+
+ if !((a3.field_1==190020550524928) && ((a3.field_2.0==11) && (a3.field_2.1==-1.0625)) && (a3.field_3==210612318502912) && ((a3.field_4.0==-0.46875) && (a3.field_4.1==116393468362752) && (((a3.field_4.2.field_1.field_1==120) && (a3.field_4.2.field_1.field_2==-0.21484375) && (a3.field_4.2.field_1.field_3==42) && (a3.field_4.2.field_1.field_4==279254693969921) && (a3.field_4.2.field_1.field_5==`E_2_4) && (a3.field_4.2.field_1.field_6==185092378)) && ((a3.field_4.2.field_2.0==2.28515625) && (a3.field_4.2.field_2.1==168886583296000) && (a3.field_4.2.field_2.2==165671684931584)) && ((a3.field_4.2.field_3.0==1.546875) && (a3.field_4.2.field_3.1==`E_2_1))) && (((a3.field_4.3.field_1.0==933489974) && (a3.field_4.3.field_1.1==-0.921875) && (a3.field_4.3.field_1.2==1.0) && ((a3.field_4.3.field_1.3.0==1.265625) && (a3.field_4.3.field_1.3.1==`E_2_1))) && (a3.field_4.3.field_2==72))))
+ goto bad
+ ;;
+
+ if !(a4==-1.47265625)
+ goto bad
+ ;;
+
+ if !((a5.0==0.359375) && (a5.1==`E_2_4))
+ goto bad
+ ;;
+
+ if !(a6==106223398289408)
+ goto bad
+ ;;
+
+ if !(a7==-1.80078125)
+ goto bad
+ ;;
+
+ -> `E_2_4
+
+:bad
+ -> `E_2_6
+}
+
+const fn_5_myr = { a1 : uint32, a2 : t24, a3 : flt64, a4 : (t24,(flt32,t2)), a5 : uint64, a6 : t28
+ if !(a1==490829306)
+ goto bad
+ ;;
+
+ if !(a2==`E_24_2)
+ goto bad
+ ;;
+
+ if !(a3==-1.296875)
+ goto bad
+ ;;
+
+ if !((a4.0==`E_24_8) && ((a4.1.0==0.1875) && (a4.1.1==`E_2_3)))
+ goto bad
+ ;;
+
+ if !(a5==245616036151296)
+ goto bad
+ ;;
+
+ if !((((a6.field_1.0.0==2.08203125) && (a6.field_1.0.1==35857928683520) && (a6.field_1.0.2==93232914235392)) && (a6.field_1.1==-0.609375) && ((a6.field_1.2.field_1==1442943954) && (((a6.field_1.2.field_2.0.0==49) && ((a6.field_1.2.field_2.0.1.field_1==243496050229248) && (a6.field_1.2.field_2.0.1.field_2==211) && (a6.field_1.2.field_2.0.1.field_3==1781303846) && (a6.field_1.2.field_2.0.1.field_4==188) && (a6.field_1.2.field_2.0.1.field_5==1.796875) && (a6.field_1.2.field_2.0.1.field_6==2.92578125)) && (a6.field_1.2.field_2.0.2==961004516) && (a6.field_1.2.field_2.0.3==`E_2_2)) && ((a6.field_1.2.field_2.1.0==142) && ((a6.field_1.2.field_2.1.1.field_1==24547072671744) && (a6.field_1.2.field_2.1.1.field_2==51) && (a6.field_1.2.field_2.1.1.field_3==2197818536) && (a6.field_1.2.field_2.1.1.field_4==124) && (a6.field_1.2.field_2.1.1.field_5==-2.42578125) && (a6.field_1.2.field_2.1.1.field_6==-3.234375)) && (a6.field_1.2.field_2.1.2==3597667158) && (a6.field_1.2.field_2.1.3==`E_2_5))) && (a6.field_1.2.field_3==212450688237568) && (a6.field_1.2.field_4==-0.625) && (a6.field_1.2.field_5==212)) && ((a6.field_1.3.0==40) && (a6.field_1.3.1==1.328125))) && (a6.field_2==`E_26_3) && ((((a6.field_3.field_1.0.0==3.07421875) && (a6.field_3.field_1.0.1==82227144294400) && (a6.field_3.field_1.0.2==7948002787328)) && (a6.field_3.field_1.1==-1.5) && ((a6.field_3.field_1.2.field_1==2677308022) && (((a6.field_3.field_1.2.field_2.0.0==85) && ((a6.field_3.field_1.2.field_2.0.1.field_1==100333243203584) && (a6.field_3.field_1.2.field_2.0.1.field_2==209) && (a6.field_3.field_1.2.field_2.0.1.field_3==846728032) && (a6.field_3.field_1.2.field_2.0.1.field_4==47) && (a6.field_3.field_1.2.field_2.0.1.field_5==-2.0859375) && (a6.field_3.field_1.2.field_2.0.1.field_6==3.3984375)) && (a6.field_3.field_1.2.field_2.0.2==3924268624) && (a6.field_3.field_1.2.field_2.0.3==`E_2_1)) && ((a6.field_3.field_1.2.field_2.1.0==40) && ((a6.field_3.field_1.2.field_2.1.1.field_1==58951057276928) && (a6.field_3.field_1.2.field_2.1.1.field_2==170) && (a6.field_3.field_1.2.field_2.1.1.field_3==1055614716) && (a6.field_3.field_1.2.field_2.1.1.field_4==104) && (a6.field_3.field_1.2.field_2.1.1.field_5==-2.51953125) && (a6.field_3.field_1.2.field_2.1.1.field_6==1.8203125)) && (a6.field_3.field_1.2.field_2.1.2==2570174796) && (a6.field_3.field_1.2.field_2.1.3==`E_2_2))) && (a6.field_3.field_1.2.field_3==160655520563200) && (a6.field_3.field_1.2.field_4==-0.515625) && (a6.field_3.field_1.2.field_5==4)) && ((a6.field_3.field_1.3.0==223) && (a6.field_3.field_1.3.1==-1.0625))) && (a6.field_3.field_2==-1.015625) && (a6.field_3.field_3==0.9375) && (a6.field_3.field_4==119362880667648) && (a6.field_3.field_5==-1.359375) && (a6.field_3.field_6==25145455280128)))
+ goto bad
+ ;;
+
+ -> (182,[.field_1=220780978372608,.field_2=114,.field_3=2281314962,.field_4=251,.field_5=1.01171875,.field_6=2.06640625],3935630006,`E_2_4)
+
+:bad
+ -> (223,[.field_1=21084164849664,.field_2=192,.field_3=2309250974,.field_4=82,.field_5=-2.64453125,.field_6=1.68359375],231075084,`E_2_5)
+}
+
+const fn_6_myr = { a1 : t29, a2 : ((uint8,t1,uint32,t2),(uint8,t1,uint32,t2)), a3 : (uint64,t30,t31,t32), a4 : (flt64,uint64,uint64), a5 : uint32, a6 : flt32, a7 : t11, a8 : (uint64,(flt32,t2),(uint32,flt32,uint64,uint32),t35), a9 : (uint32,flt32,flt32,(flt32,t2)), a10 : t37
+ if !(a1==`E_29_6)
+ goto bad
+ ;;
+
+ if !(((a2.0.0==44) && ((a2.0.1.field_1==82970538278912) && (a2.0.1.field_2==173) && (a2.0.1.field_3==1039620306) && (a2.0.1.field_4==98) && (a2.0.1.field_5==-2.87890625) && (a2.0.1.field_6==-1.3203125)) && (a2.0.2==415749068) && (a2.0.3==`E_2_6)) && ((a2.1.0==198) && ((a2.1.1.field_1==176754788270080) && (a2.1.1.field_2==229) && (a2.1.1.field_3==1745396264) && (a2.1.1.field_4==100) && (a2.1.1.field_5==2.453125) && (a2.1.1.field_6==3.51171875)) && (a2.1.2==1134845604) && (a2.1.3==`E_2_6)))
+ goto bad
+ ;;
+
+ if !((a3.0==45346413608960) && ((a3.1.field_1==1.5546875) && ((a3.1.field_2.field_1==`E_18_1) && (a3.1.field_2.field_2==3388995392) && (a3.1.field_2.field_3==0.296875) && (a3.1.field_2.field_4==`E_19_4) && ((a3.1.field_2.field_5.0==-2.4921875) && (a3.1.field_2.field_5.1==-0.69921875) && ((a3.1.field_2.field_5.2.field_1==-0.390625) && (((a3.1.field_2.field_5.2.field_2.field_1.0==-0.171875) && (a3.1.field_2.field_5.2.field_2.field_1.1==`E_2_2)) && (a3.1.field_2.field_5.2.field_2.field_2==21150251483136) && ((a3.1.field_2.field_5.2.field_2.field_3.0==-0.796875) && (a3.1.field_2.field_5.2.field_2.field_3.1==`E_2_4)) && (a3.1.field_2.field_5.2.field_2.field_4==1.375) && (a3.1.field_2.field_5.2.field_2.field_5==215200983941120) && ((a3.1.field_2.field_5.2.field_2.field_6.0==2.125) && (a3.1.field_2.field_5.2.field_2.field_6.1==158112869384192) && (a3.1.field_2.field_5.2.field_2.field_6.2==73351684030464))) && ((a3.1.field_2.field_5.2.field_3.0==1.25) && (a3.1.field_2.field_5.2.field_3.1==-0.703125) && (a3.1.field_2.field_5.2.field_3.2==212315222310912)) && (a3.1.field_2.field_5.2.field_4==-3.5546875) && (a3.1.field_2.field_5.2.field_5==`E_11_2) && (a3.1.field_2.field_5.2.field_6==-0.61328125))) && (((a3.1.field_2.field_6.0.0==1.76171875) && (a3.1.field_2.field_6.0.1==253745235361792) && (a3.1.field_2.field_6.0.2==92984779997184)) && (a3.1.field_2.field_6.1==0.90625) && ((a3.1.field_2.field_6.2.field_1==2939679992) && (((a3.1.field_2.field_6.2.field_2.0.0==146) && ((a3.1.field_2.field_6.2.field_2.0.1.field_1==267681124188160) && (a3.1.field_2.field_6.2.field_2.0.1.field_2==98) && (a3.1.field_2.field_6.2.field_2.0.1.field_3==2525744200) && (a3.1.field_2.field_6.2.field_2.0.1.field_4==189) && (a3.1.field_2.field_6.2.field_2.0.1.field_5==3.75390625) && (a3.1.field_2.field_6.2.field_2.0.1.field_6==-3.81640625)) && (a3.1.field_2.field_6.2.field_2.0.2==3957579288) && (a3.1.field_2.field_6.2.field_2.0.3==`E_2_3)) && ((a3.1.field_2.field_6.2.field_2.1.0==98) && ((a3.1.field_2.field_6.2.field_2.1.1.field_1==103318747742208) && (a3.1.field_2.field_6.2.field_2.1.1.field_2==176) && (a3.1.field_2.field_6.2.field_2.1.1.field_3==1976332274) && (a3.1.field_2.field_6.2.field_2.1.1.field_4==157) && (a3.1.field_2.field_6.2.field_2.1.1.field_5==-2.35546875) && (a3.1.field_2.field_6.2.field_2.1.1.field_6==-0.79296875)) && (a3.1.field_2.field_6.2.field_2.1.2==1628294370) && (a3.1.field_2.field_6.2.field_2.1.3==`E_2_6))) && (a3.1.field_2.field_6.2.field_3==270327169941504) && (a3.1.field_2.field_6.2.field_4==0.4375) && (a3.1.field_2.field_6.2.field_5==161)) && ((a3.1.field_2.field_6.3.0==61) && (a3.1.field_2.field_6.3.1==-0.328125)))) && (a3.1.field_3==190305229078528) && (a3.1.field_4==-0.0859375)) && (a3.2==`E_31_8) && ((a3.3.field_1==1725236208)))
+ goto bad
+ ;;
+
+ if !((a4.0==-2.41015625) && (a4.1==21064454635520) && (a4.2==201636834967552))
+ goto bad
+ ;;
+
+ if !(a5==1968388378)
+ goto bad
+ ;;
+
+ if !(a6==1.203125)
+ goto bad
+ ;;
+
+ if !(a7==`E_11_5)
+ goto bad
+ ;;
+
+ if !((a8.0==165571080617984) && ((a8.1.0==0.671875) && (a8.1.1==`E_2_6)) && ((a8.2.0==3138764072) && (a8.2.1==-1.03125) && (a8.2.2==50747094728704) && (a8.2.3==2634664560)) && ((a8.3.field_1==171685942525952) && (a8.3.field_2==2132603492)))
+ goto bad
+ ;;
+
+ if !((a9.0==849505522) && (a9.1==0.28125) && (a9.2==1.4375) && ((a9.3.0==-0.4375) && (a9.3.1==`E_2_3)))
+ goto bad
+ ;;
+
+ if !(a10==`E_37_6)
+ goto bad
+ ;;
+
+ -> -0.47265625
+
+:bad
+ -> -1.22265625
+}
+
+const fn_7_myr = { a1 : uint64, a2 : t38, a3 : uint8, a4 : ((t30,flt64,uint64),uint8,t1), a5 : (uint64,t41,uint32,t23), a6 : t43, a7 : uint8
+ if !(a1==152633167446016)
+ goto bad
+ ;;
+
+ if !(a2==`E_38_5)
+ goto bad
+ ;;
+
+ if !(a3==21)
+ goto bad
+ ;;
+
+ if !((((a4.0.0.field_1==3.7265625) && ((a4.0.0.field_2.field_1==`E_18_8) && (a4.0.0.field_2.field_2==1660321984) && (a4.0.0.field_2.field_3==0.46875) && (a4.0.0.field_2.field_4==`E_19_6) && ((a4.0.0.field_2.field_5.0==3.328125) && (a4.0.0.field_2.field_5.1==-3.79296875) && ((a4.0.0.field_2.field_5.2.field_1==-0.984375) && (((a4.0.0.field_2.field_5.2.field_2.field_1.0==-0.71875) && (a4.0.0.field_2.field_5.2.field_2.field_1.1==`E_2_5)) && (a4.0.0.field_2.field_5.2.field_2.field_2==107860547076096) && ((a4.0.0.field_2.field_5.2.field_2.field_3.0==0.984375) && (a4.0.0.field_2.field_5.2.field_2.field_3.1==`E_2_3)) && (a4.0.0.field_2.field_5.2.field_2.field_4==1.03125) && (a4.0.0.field_2.field_5.2.field_2.field_5==103537434427392) && ((a4.0.0.field_2.field_5.2.field_2.field_6.0==-0.41015625) && (a4.0.0.field_2.field_5.2.field_2.field_6.1==257720167301120) && (a4.0.0.field_2.field_5.2.field_2.field_6.2==23490682028032))) && ((a4.0.0.field_2.field_5.2.field_3.0==-3.0546875) && (a4.0.0.field_2.field_5.2.field_3.1==0.671875) && (a4.0.0.field_2.field_5.2.field_3.2==189976970788864)) && (a4.0.0.field_2.field_5.2.field_4==0.015625) && (a4.0.0.field_2.field_5.2.field_5==`E_11_5) && (a4.0.0.field_2.field_5.2.field_6==-0.41796875))) && (((a4.0.0.field_2.field_6.0.0==0.0625) && (a4.0.0.field_2.field_6.0.1==74574491418624) && (a4.0.0.field_2.field_6.0.2==201256086929408)) && (a4.0.0.field_2.field_6.1==1.359375) && ((a4.0.0.field_2.field_6.2.field_1==1220073662) && (((a4.0.0.field_2.field_6.2.field_2.0.0==46) && ((a4.0.0.field_2.field_6.2.field_2.0.1.field_1==265659814641664) && (a4.0.0.field_2.field_6.2.field_2.0.1.field_2==66) && (a4.0.0.field_2.field_6.2.field_2.0.1.field_3==27449604) && (a4.0.0.field_2.field_6.2.field_2.0.1.field_4==84) && (a4.0.0.field_2.field_6.2.field_2.0.1.field_5==3.22265625) && (a4.0.0.field_2.field_6.2.field_2.0.1.field_6==1.9609375)) && (a4.0.0.field_2.field_6.2.field_2.0.2==1100098150) && (a4.0.0.field_2.field_6.2.field_2.0.3==`E_2_6)) && ((a4.0.0.field_2.field_6.2.field_2.1.0==239) && ((a4.0.0.field_2.field_6.2.field_2.1.1.field_1==147943258062848) && (a4.0.0.field_2.field_6.2.field_2.1.1.field_2==159) && (a4.0.0.field_2.field_6.2.field_2.1.1.field_3==1367706340) && (a4.0.0.field_2.field_6.2.field_2.1.1.field_4==86) && (a4.0.0.field_2.field_6.2.field_2.1.1.field_5==3.89453125) && (a4.0.0.field_2.field_6.2.field_2.1.1.field_6==-2.74609375)) && (a4.0.0.field_2.field_6.2.field_2.1.2==3028657672) && (a4.0.0.field_2.field_6.2.field_2.1.3==`E_2_3))) && (a4.0.0.field_2.field_6.2.field_3==18076800647168) && (a4.0.0.field_2.field_6.2.field_4==0.90625) && (a4.0.0.field_2.field_6.2.field_5==142)) && ((a4.0.0.field_2.field_6.3.0==199) && (a4.0.0.field_2.field_6.3.1==-0.109375)))) && (a4.0.0.field_3==15997300899840) && (a4.0.0.field_4==-0.2890625)) && (a4.0.1==3.20703125) && (a4.0.2==158990308868096)) && (a4.1==186) && ((a4.2.field_1==175995273347072) && (a4.2.field_2==127) && (a4.2.field_3==52543290) && (a4.2.field_4==206) && (a4.2.field_5==-0.46875) && (a4.2.field_6==-1.7734375)))
+ goto bad
+ ;;
+
+ if !((a5.0==207514518814720) && (a5.1==`E_41_5) && (a5.2==3821234462) && ((a5.3.field_1==206987958681600) && ((a5.3.field_2.0==247) && (a5.3.field_2.1==0.296875)) && (a5.3.field_3==50935557783552) && ((a5.3.field_4.0==-1.46875) && (a5.3.field_4.1==107941368692736) && (((a5.3.field_4.2.field_1.field_1==188) && (a5.3.field_4.2.field_1.field_2==2.4140625) && (a5.3.field_4.2.field_1.field_3==216) && (a5.3.field_4.2.field_1.field_4==223121033003008) && (a5.3.field_4.2.field_1.field_5==`E_2_2) && (a5.3.field_4.2.field_1.field_6==3252553412)) && ((a5.3.field_4.2.field_2.0==-1.11328125) && (a5.3.field_4.2.field_2.1==48622469120) && (a5.3.field_4.2.field_2.2==107679637045248)) && ((a5.3.field_4.2.field_3.0==1.109375) && (a5.3.field_4.2.field_3.1==`E_2_1))) && (((a5.3.field_4.3.field_1.0==811385302) && (a5.3.field_4.3.field_1.1==-0.640625) && (a5.3.field_4.3.field_1.2==-0.671875) && ((a5.3.field_4.3.field_1.3.0==-1.5625) && (a5.3.field_4.3.field_1.3.1==`E_2_1))) && (a5.3.field_4.3.field_2==120)))))
+ goto bad
+ ;;
+
+ if !(a6==`E_43_4)
+ goto bad
+ ;;
+
+ if !(a7==164)
+ goto bad
+ ;;
+
+ -> 2.984375
+
+:bad
+ -> 0.26171875
+}
+
+const fn_8_myr = {
+ -> [.field_1=1.1875]
+
+:bad
+ -> [.field_1=0.03125]
+}
+
+const fn_9_myr = { a1 : t45, a2 : t46, a3 : t45, a4 : t47, a5 : t48, a6 : flt32, a7 : flt64, a8 : uint8, a9 : uint64, a10 : t49
+ if !(a1==`E_45_6)
+ goto bad
+ ;;
+
+ if !((a2.field_1==4118535730))
+ goto bad
+ ;;
+
+ if !(a3==`E_45_7)
+ goto bad
+ ;;
+
+ if !(a4==`E_47_2)
+ goto bad
+ ;;
+
+ if !(a5==`E_48_6)
+ goto bad
+ ;;
+
+ if !(a6==-0.21875)
+ goto bad
+ ;;
+
+ if !(a7==-1.4140625)
+ goto bad
+ ;;
+
+ if !(a8==162)
+ goto bad
+ ;;
+
+ if !(a9==170573566967808)
+ goto bad
+ ;;
+
+ if !(a10==`E_49_5)
+ goto bad
+ ;;
+
+ -> [.field_1=-0.46875,.field_2=[.field_1=-0.28125,.field_2=([.field_1=3.50390625,.field_2=[.field_1=`E_18_9,.field_2=298590436,.field_3=0.359375,.field_4=`E_19_5,.field_5=(2.28125,-0.7421875,[.field_1=-1.359375,.field_2=[.field_1=(-1.53125,`E_2_2),.field_2=159748598530048,.field_3=(1.328125,`E_2_2),.field_4=-0.546875,.field_5=146401660239872,.field_6=(0.6875,228983429529600,105127852507136)],.field_3=(-0.84375,0.359375,153705986129920),.field_4=-1.80859375,.field_5=`E_11_1,.field_6=3.28125]),.field_6=((1.96484375,46322522914816,96194539421696),1.46875,[.field_1=912869840,.field_2=((176,[.field_1=121643541069824,.field_2=41,.field_3=2802989848,.field_4=128,.field_5=2.15625,.field_6=-2.44921875],1259853458,`E_2_2),(64,[.field_1=86146197356544,.field_2=90,.field_3=3519983450,.field_4=58,.field_5=0.50390625,.field_6=-2.765625],3211917080,`E_2_1)),.field_3=270136525455360,.field_4=-1.1875,.field_5=139],(146,0.53125))],.field_3=228868406378496,.field_4=0.90234375],0.6796875,158843979956224),.field_3=3350000678,.field_4=1.34375],.field_3=[.field_1=0.25390625],.field_4=3.8515625,.field_5=[.field_1=0.375],.field_6=([.field_1=271586366193664,.field_2=(39,-0.71875),.field_3=131323353497600,.field_4=(1.34375,129109365489664,[.field_1=[.field_1=194,.field_2=-3.05078125,.field_3=181,.field_4=18560330366976,.field_5=`E_2_3,.field_6=2277482010],.field_2=(-1.61328125,7613576773632,190410156933120),.field_3=(-1.4375,`E_2_2)],[.field_1=(2732417384,-1.0625,0.703125,(-0.921875,`E_2_5)),.field_2=137])],1.015625,117426174033920,25)]
+
+:bad
+ -> [.field_1=0.328125,.field_2=[.field_1=-1.203125,.field_2=([.field_1=1.046875,.field_2=[.field_1=`E_18_6,.field_2=4145360800,.field_3=0.3125,.field_4=`E_19_6,.field_5=(-2.0546875,-3.3984375,[.field_1=0.5625,.field_2=[.field_1=(0.609375,`E_2_5),.field_2=221801050013696,.field_3=(-0.296875,`E_2_6),.field_4=-0.78125,.field_5=263658707091456,.field_6=(-2.4609375,78100894187520,172593887444992)],.field_3=(-2.13671875,-0.140625,70190616412160),.field_4=-0.8671875,.field_5=`E_11_2,.field_6=-0.33203125]),.field_6=((-2.19140625,202050438168576,79035918319616),0.421875,[.field_1=3518277532,.field_2=((226,[.field_1=276554656776192,.field_2=116,.field_3=2062106064,.field_4=242,.field_5=-3.5,.field_6=-2.11328125],793394830,`E_2_1),(232,[.field_1=247826144034816,.field_2=241,.field_3=2988853828,.field_4=73,.field_5=2.61328125,.field_6=3.48828125],960335446,`E_2_1)),.field_3=62990759493632,.field_4=1.0625,.field_5=62],(174,-1.296875))],.field_3=178677585936384,.field_4=2.82421875],0.33984375,240439403347968),.field_3=2488286120,.field_4=1.015625],.field_3=[.field_1=-0.0703125],.field_4=-0.79296875,.field_5=[.field_1=0.65625],.field_6=([.field_1=133232098148352,.field_2=(218,-0.984375),.field_3=118507166892032,.field_4=(1.265625,117681019027456,[.field_1=[.field_1=155,.field_2=-3.7421875,.field_3=83,.field_4=136854257926144,.field_5=`E_2_6,.field_6=93994772],.field_2=(2.1328125,224765803364352,272524883394560),.field_3=(1.5625,`E_2_5)],[.field_1=(824595126,1.046875,-1.375,(1.171875,`E_2_6)),.field_2=178])],0.734375,130355430162432,141)]
+}
+
+const fn_10_myr = { a1 : flt32, a2 : (t30,uint64,t54,flt32), a3 : t43
+ if !(a1==-1.4375)
+ goto bad
+ ;;
+
+ if !(((a2.0.field_1==3.2734375) && ((a2.0.field_2.field_1==`E_18_8) && (a2.0.field_2.field_2==298655464) && (a2.0.field_2.field_3==-1.21875) && (a2.0.field_2.field_4==`E_19_6) && ((a2.0.field_2.field_5.0==-2.87109375) && (a2.0.field_2.field_5.1==3.77734375) && ((a2.0.field_2.field_5.2.field_1==0.15625) && (((a2.0.field_2.field_5.2.field_2.field_1.0==1.03125) && (a2.0.field_2.field_5.2.field_2.field_1.1==`E_2_5)) && (a2.0.field_2.field_5.2.field_2.field_2==4317979738112) && ((a2.0.field_2.field_5.2.field_2.field_3.0==-0.375) && (a2.0.field_2.field_5.2.field_2.field_3.1==`E_2_1)) && (a2.0.field_2.field_5.2.field_2.field_4==-0.625) && (a2.0.field_2.field_5.2.field_2.field_5==119942540689408) && ((a2.0.field_2.field_5.2.field_2.field_6.0==1.90234375) && (a2.0.field_2.field_5.2.field_2.field_6.1==84070773030912) && (a2.0.field_2.field_5.2.field_2.field_6.2==265295537897472))) && ((a2.0.field_2.field_5.2.field_3.0==-1.5078125) && (a2.0.field_2.field_5.2.field_3.1==-0.046875) && (a2.0.field_2.field_5.2.field_3.2==247680725286912)) && (a2.0.field_2.field_5.2.field_4==2.1484375) && (a2.0.field_2.field_5.2.field_5==`E_11_1) && (a2.0.field_2.field_5.2.field_6==-0.6015625))) && (((a2.0.field_2.field_6.0.0==-1.84765625) && (a2.0.field_2.field_6.0.1==4068918427648) && (a2.0.field_2.field_6.0.2==127361585905664)) && (a2.0.field_2.field_6.1==0.6875) && ((a2.0.field_2.field_6.2.field_1==4144444706) && (((a2.0.field_2.field_6.2.field_2.0.0==65) && ((a2.0.field_2.field_6.2.field_2.0.1.field_1==272708430856192) && (a2.0.field_2.field_6.2.field_2.0.1.field_2==226) && (a2.0.field_2.field_6.2.field_2.0.1.field_3==232384220) && (a2.0.field_2.field_6.2.field_2.0.1.field_4==9) && (a2.0.field_2.field_6.2.field_2.0.1.field_5==3.86328125) && (a2.0.field_2.field_6.2.field_2.0.1.field_6==1.4609375)) && (a2.0.field_2.field_6.2.field_2.0.2==735172550) && (a2.0.field_2.field_6.2.field_2.0.3==`E_2_6)) && ((a2.0.field_2.field_6.2.field_2.1.0==61) && ((a2.0.field_2.field_6.2.field_2.1.1.field_1==558452178944) && (a2.0.field_2.field_6.2.field_2.1.1.field_2==178) && (a2.0.field_2.field_6.2.field_2.1.1.field_3==1092184810) && (a2.0.field_2.field_6.2.field_2.1.1.field_4==98) && (a2.0.field_2.field_6.2.field_2.1.1.field_5==1.76953125) && (a2.0.field_2.field_6.2.field_2.1.1.field_6==0.4453125)) && (a2.0.field_2.field_6.2.field_2.1.2==3483926918) && (a2.0.field_2.field_6.2.field_2.1.3==`E_2_3))) && (a2.0.field_2.field_6.2.field_3==240867814670336) && (a2.0.field_2.field_6.2.field_4==0.796875) && (a2.0.field_2.field_6.2.field_5==198)) && ((a2.0.field_2.field_6.3.0==86) && (a2.0.field_2.field_6.3.1==0.421875)))) && (a2.0.field_3==155213721894912) && (a2.0.field_4==-0.5859375)) && (a2.1==15967994380288) && ((a2.2.field_1==0.984375) && (a2.2.field_2==`E_2_3) && (a2.2.field_3==`E_43_4)) && (a2.3==0.09375))
+ goto bad
+ ;;
+
+ if !(a3==`E_43_4)
+ goto bad
+ ;;
+
+ -> 1.0
+
+:bad
+ -> 0.125
+}
+
+const fn_11_myr = { a1 : ((t30,flt64,uint64),uint8,t1), a2 : uint64, a3 : (t56,uint32,t57,(t19,t30,flt32,flt64))
+ if !((((a1.0.0.field_1==-1.875) && ((a1.0.0.field_2.field_1==`E_18_7) && (a1.0.0.field_2.field_2==3060119432) && (a1.0.0.field_2.field_3==1.4375) && (a1.0.0.field_2.field_4==`E_19_8) && ((a1.0.0.field_2.field_5.0==-3.14453125) && (a1.0.0.field_2.field_5.1==1.421875) && ((a1.0.0.field_2.field_5.2.field_1==0.171875) && (((a1.0.0.field_2.field_5.2.field_2.field_1.0==1.28125) && (a1.0.0.field_2.field_5.2.field_2.field_1.1==`E_2_1)) && (a1.0.0.field_2.field_5.2.field_2.field_2==115694040645632) && ((a1.0.0.field_2.field_5.2.field_2.field_3.0==0.515625) && (a1.0.0.field_2.field_5.2.field_2.field_3.1==`E_2_6)) && (a1.0.0.field_2.field_5.2.field_2.field_4==0.78125) && (a1.0.0.field_2.field_5.2.field_2.field_5==83317925609472) && ((a1.0.0.field_2.field_5.2.field_2.field_6.0==-0.16015625) && (a1.0.0.field_2.field_5.2.field_2.field_6.1==49194524213248) && (a1.0.0.field_2.field_5.2.field_2.field_6.2==99285919989760))) && ((a1.0.0.field_2.field_5.2.field_3.0==-1.60546875) && (a1.0.0.field_2.field_5.2.field_3.1==0.359375) && (a1.0.0.field_2.field_5.2.field_3.2==242615500275712)) && (a1.0.0.field_2.field_5.2.field_4==2.5546875) && (a1.0.0.field_2.field_5.2.field_5==`E_11_1) && (a1.0.0.field_2.field_5.2.field_6==0.984375))) && (((a1.0.0.field_2.field_6.0.0==-1.34375) && (a1.0.0.field_2.field_6.0.1==86155678318592) && (a1.0.0.field_2.field_6.0.2==125076719534080)) && (a1.0.0.field_2.field_6.1==1.15625) && ((a1.0.0.field_2.field_6.2.field_1==2526692668) && (((a1.0.0.field_2.field_6.2.field_2.0.0==243) && ((a1.0.0.field_2.field_6.2.field_2.0.1.field_1==162605589856256) && (a1.0.0.field_2.field_6.2.field_2.0.1.field_2==217) && (a1.0.0.field_2.field_6.2.field_2.0.1.field_3==2977687486) && (a1.0.0.field_2.field_6.2.field_2.0.1.field_4==74) && (a1.0.0.field_2.field_6.2.field_2.0.1.field_5==2.37109375) && (a1.0.0.field_2.field_6.2.field_2.0.1.field_6==1.49609375)) && (a1.0.0.field_2.field_6.2.field_2.0.2==1665217660) && (a1.0.0.field_2.field_6.2.field_2.0.3==`E_2_3)) && ((a1.0.0.field_2.field_6.2.field_2.1.0==63) && ((a1.0.0.field_2.field_6.2.field_2.1.1.field_1==83432466808832) && (a1.0.0.field_2.field_6.2.field_2.1.1.field_2==163) && (a1.0.0.field_2.field_6.2.field_2.1.1.field_3==2825472336) && (a1.0.0.field_2.field_6.2.field_2.1.1.field_4==245) && (a1.0.0.field_2.field_6.2.field_2.1.1.field_5==0.5078125) && (a1.0.0.field_2.field_6.2.field_2.1.1.field_6==-0.71875)) && (a1.0.0.field_2.field_6.2.field_2.1.2==1094350794) && (a1.0.0.field_2.field_6.2.field_2.1.3==`E_2_1))) && (a1.0.0.field_2.field_6.2.field_3==163990210084864) && (a1.0.0.field_2.field_6.2.field_4==0.34375) && (a1.0.0.field_2.field_6.2.field_5==86)) && ((a1.0.0.field_2.field_6.3.0==50) && (a1.0.0.field_2.field_6.3.1==-0.09375)))) && (a1.0.0.field_3==46874424901632) && (a1.0.0.field_4==-2.23046875)) && (a1.0.1==-3.16015625) && (a1.0.2==139156190003200)) && (a1.1==133) && ((a1.2.field_1==151978903994368) && (a1.2.field_2==92) && (a1.2.field_3==469183736) && (a1.2.field_4==125) && (a1.2.field_5==3.43359375) && (a1.2.field_6==3.57421875)))
+ goto bad
+ ;;
+
+ if !(a2==64581458329600)
+ goto bad
+ ;;
+
+ if !((a3.0==`E_56_6) && (a3.1==2175957910) && ((a3.2.field_1==`E_26_6) && (a3.2.field_2==168) && ((a3.2.field_3.0==80343449468928) && (a3.2.field_3.1==`E_41_3) && (a3.2.field_3.2==458518304) && ((a3.2.field_3.3.field_1==132879007088640) && ((a3.2.field_3.3.field_2.0==141) && (a3.2.field_3.3.field_2.1==0.3125)) && (a3.2.field_3.3.field_3==67929798082560) && ((a3.2.field_3.3.field_4.0==-0.65625) && (a3.2.field_3.3.field_4.1==121657342951424) && (((a3.2.field_3.3.field_4.2.field_1.field_1==53) && (a3.2.field_3.3.field_4.2.field_1.field_2==-0.0546875) && (a3.2.field_3.3.field_4.2.field_1.field_3==110) && (a3.2.field_3.3.field_4.2.field_1.field_4==109205112356864) && (a3.2.field_3.3.field_4.2.field_1.field_5==`E_2_5) && (a3.2.field_3.3.field_4.2.field_1.field_6==3971726706)) && ((a3.2.field_3.3.field_4.2.field_2.0==-3.20703125) && (a3.2.field_3.3.field_4.2.field_2.1==177956855611392) && (a3.2.field_3.3.field_4.2.field_2.2==219483313799168)) && ((a3.2.field_3.3.field_4.2.field_3.0==1.265625) && (a3.2.field_3.3.field_4.2.field_3.1==`E_2_6))) && (((a3.2.field_3.3.field_4.3.field_1.0==2465490790) && (a3.2.field_3.3.field_4.3.field_1.1==0.53125) && (a3.2.field_3.3.field_4.3.field_1.2==-0.078125) && ((a3.2.field_3.3.field_4.3.field_1.3.0==0.3125) && (a3.2.field_3.3.field_4.3.field_1.3.1==`E_2_2))) && (a3.2.field_3.3.field_4.3.field_2==219))))) && ((a3.2.field_4.field_1==-0.828125) && (((a3.2.field_4.field_2.field_1.0==1.484375) && (a3.2.field_4.field_2.field_1.1==`E_2_3)) && (a3.2.field_4.field_2.field_2==223230053711872) && ((a3.2.field_4.field_2.field_3.0==0.421875) && (a3.2.field_4.field_2.field_3.1==`E_2_4)) && (a3.2.field_4.field_2.field_4==-0.875) && (a3.2.field_4.field_2.field_5==208129902903296) && ((a3.2.field_4.field_2.field_6.0==-2.94921875) && (a3.2.field_4.field_2.field_6.1==217811484278784) && (a3.2.field_4.field_2.field_6.2==95447919886336))) && ((a3.2.field_4.field_3.0==-1.0625) && (a3.2.field_4.field_3.1==-1.375) && (a3.2.field_4.field_3.2==217105262837760)) && (a3.2.field_4.field_4==0.5546875) && (a3.2.field_4.field_5==`E_11_4) && (a3.2.field_4.field_6==-2.32421875)) && (a3.2.field_5==4119368836) && (a3.2.field_6==-0.484375)) && ((a3.3.0==`E_19_2) && ((a3.3.1.field_1==-3.52734375) && ((a3.3.1.field_2.field_1==`E_18_9) && (a3.3.1.field_2.field_2==3895962858) && (a3.3.1.field_2.field_3==1.40625) && (a3.3.1.field_2.field_4==`E_19_8) && ((a3.3.1.field_2.field_5.0==-0.1484375) && (a3.3.1.field_2.field_5.1==0.92578125) && ((a3.3.1.field_2.field_5.2.field_1==-0.265625) && (((a3.3.1.field_2.field_5.2.field_2.field_1.0==-1.328125) && (a3.3.1.field_2.field_5.2.field_2.field_1.1==`E_2_5)) && (a3.3.1.field_2.field_5.2.field_2.field_2==76685686865920) && ((a3.3.1.field_2.field_5.2.field_2.field_3.0==-0.578125) && (a3.3.1.field_2.field_5.2.field_2.field_3.1==`E_2_5)) && (a3.3.1.field_2.field_5.2.field_2.field_4==0.4375) && (a3.3.1.field_2.field_5.2.field_2.field_5==31133991829504) && ((a3.3.1.field_2.field_5.2.field_2.field_6.0==-0.59765625) && (a3.3.1.field_2.field_5.2.field_2.field_6.1==81066773446656) && (a3.3.1.field_2.field_5.2.field_2.field_6.2==93021535076352))) && ((a3.3.1.field_2.field_5.2.field_3.0==-2.6328125) && (a3.3.1.field_2.field_5.2.field_3.1==-0.28125) && (a3.3.1.field_2.field_5.2.field_3.2==29358042644480)) && (a3.3.1.field_2.field_5.2.field_4==0.015625) && (a3.3.1.field_2.field_5.2.field_5==`E_11_5) && (a3.3.1.field_2.field_5.2.field_6==-2.60546875))) && (((a3.3.1.field_2.field_6.0.0==-1.7734375) && (a3.3.1.field_2.field_6.0.1==97291012014080) && (a3.3.1.field_2.field_6.0.2==203235864870912)) && (a3.3.1.field_2.field_6.1==-0.078125) && ((a3.3.1.field_2.field_6.2.field_1==1308944570) && (((a3.3.1.field_2.field_6.2.field_2.0.0==17) && ((a3.3.1.field_2.field_6.2.field_2.0.1.field_1==169812367376384) && (a3.3.1.field_2.field_6.2.field_2.0.1.field_2==90) && (a3.3.1.field_2.field_6.2.field_2.0.1.field_3==214389768) && (a3.3.1.field_2.field_6.2.field_2.0.1.field_4==130) && (a3.3.1.field_2.field_6.2.field_2.0.1.field_5==-1.5390625) && (a3.3.1.field_2.field_6.2.field_2.0.1.field_6==3.83984375)) && (a3.3.1.field_2.field_6.2.field_2.0.2==4258613008) && (a3.3.1.field_2.field_6.2.field_2.0.3==`E_2_6)) && ((a3.3.1.field_2.field_6.2.field_2.1.0==103) && ((a3.3.1.field_2.field_6.2.field_2.1.1.field_1==19826711592960) && (a3.3.1.field_2.field_6.2.field_2.1.1.field_2==188) && (a3.3.1.field_2.field_6.2.field_2.1.1.field_3==2910355046) && (a3.3.1.field_2.field_6.2.field_2.1.1.field_4==99) && (a3.3.1.field_2.field_6.2.field_2.1.1.field_5==0.2265625) && (a3.3.1.field_2.field_6.2.field_2.1.1.field_6==-1.4453125)) && (a3.3.1.field_2.field_6.2.field_2.1.2==2141412632) && (a3.3.1.field_2.field_6.2.field_2.1.3==`E_2_6))) && (a3.3.1.field_2.field_6.2.field_3==169766818938880) && (a3.3.1.field_2.field_6.2.field_4==1.03125) && (a3.3.1.field_2.field_6.2.field_5==29)) && ((a3.3.1.field_2.field_6.3.0==3) && (a3.3.1.field_2.field_6.3.1==1.359375)))) && (a3.3.1.field_3==173832218083328) && (a3.3.1.field_4==2.25390625)) && (a3.3.2==-1.25) && (a3.3.3==3.0546875)))
+ goto bad
+ ;;
+
+ -> 3531194568
+
+:bad
+ -> 1575783646
+}
+
+const fn_12_myr = { a1 : t63, a2 : flt64, a3 : uint32, a4 : t68
+ if !(((a1.field_1.0==1) && (a1.field_1.1==-0.953125) && (a1.field_1.2==28380691169280) && ((a1.field_1.3.field_1==266791176896512) && (a1.field_1.3.field_2==173) && (a1.field_1.3.field_3==841702660) && (a1.field_1.3.field_4==225) && (a1.field_1.3.field_5==-2.734375) && (a1.field_1.3.field_6==-2.24609375))) && ((a1.field_2.field_1==-0.875) && ((a1.field_2.field_2.0==2975373622) && (a1.field_2.field_2.1==1.46875) && (a1.field_2.field_2.2==-0.828125) && ((a1.field_2.field_2.3.0==0.390625) && (a1.field_2.field_2.3.1==`E_2_2)))) && (a1.field_3==0.515625) && ((a1.field_4.field_1==`E_18_1) && (((a1.field_4.field_2.field_1.field_1==124) && (a1.field_4.field_2.field_1.field_2==0.00390625) && (a1.field_4.field_2.field_1.field_3==79) && (a1.field_4.field_2.field_1.field_4==236261015289856) && (a1.field_4.field_2.field_1.field_5==`E_2_3) && (a1.field_4.field_2.field_1.field_6==2156655358)) && ((a1.field_4.field_2.field_2.0==2.4140625) && (a1.field_4.field_2.field_2.1==51905146388480) && (a1.field_4.field_2.field_2.2==223439089434624)) && ((a1.field_4.field_2.field_3.0==0.53125) && (a1.field_4.field_2.field_3.1==`E_2_1)))) && (a1.field_5==255485003694080) && (a1.field_6==3.1015625))
+ goto bad
+ ;;
+
+ if !(a2==3.234375)
+ goto bad
+ ;;
+
+ if !(a3==1992315490)
+ goto bad
+ ;;
+
+ if !((a4.field_1==`E_64_6) && ((a4.field_2.field_1==-1.48828125) && (a4.field_2.field_2==1219436194) && (a4.field_2.field_3==50) && (a4.field_2.field_4==41975805771776) && (a4.field_2.field_5==2064448724) && (a4.field_2.field_6==122353563467776)) && (((a4.field_3.0.0==`E_56_2) && (a4.field_3.0.1==1046332580) && ((a4.field_3.0.2.field_1==`E_26_8) && (a4.field_3.0.2.field_2==209) && ((a4.field_3.0.2.field_3.0==142694099582976) && (a4.field_3.0.2.field_3.1==`E_41_2) && (a4.field_3.0.2.field_3.2==1010741440) && ((a4.field_3.0.2.field_3.3.field_1==61520011984896) && ((a4.field_3.0.2.field_3.3.field_2.0==110) && (a4.field_3.0.2.field_3.3.field_2.1==-0.125)) && (a4.field_3.0.2.field_3.3.field_3==32251070906368) && ((a4.field_3.0.2.field_3.3.field_4.0==-0.546875) && (a4.field_3.0.2.field_3.3.field_4.1==100567390355456) && (((a4.field_3.0.2.field_3.3.field_4.2.field_1.field_1==16) && (a4.field_3.0.2.field_3.3.field_4.2.field_1.field_2==-2.8671875) && (a4.field_3.0.2.field_3.3.field_4.2.field_1.field_3==38) && (a4.field_3.0.2.field_3.3.field_4.2.field_1.field_4==106528154320896) && (a4.field_3.0.2.field_3.3.field_4.2.field_1.field_5==`E_2_6) && (a4.field_3.0.2.field_3.3.field_4.2.field_1.field_6==154283124)) && ((a4.field_3.0.2.field_3.3.field_4.2.field_2.0==-2.69140625) && (a4.field_3.0.2.field_3.3.field_4.2.field_2.1==121530523058176) && (a4.field_3.0.2.field_3.3.field_4.2.field_2.2==195491981033472)) && ((a4.field_3.0.2.field_3.3.field_4.2.field_3.0==0.296875) && (a4.field_3.0.2.field_3.3.field_4.2.field_3.1==`E_2_5))) && (((a4.field_3.0.2.field_3.3.field_4.3.field_1.0==1183512522) && (a4.field_3.0.2.field_3.3.field_4.3.field_1.1==1.265625) && (a4.field_3.0.2.field_3.3.field_4.3.field_1.2==-1.453125) && ((a4.field_3.0.2.field_3.3.field_4.3.field_1.3.0==-0.09375) && (a4.field_3.0.2.field_3.3.field_4.3.field_1.3.1==`E_2_1))) && (a4.field_3.0.2.field_3.3.field_4.3.field_2==132))))) && ((a4.field_3.0.2.field_4.field_1==1.28125) && (((a4.field_3.0.2.field_4.field_2.field_1.0==-0.65625) && (a4.field_3.0.2.field_4.field_2.field_1.1==`E_2_5)) && (a4.field_3.0.2.field_4.field_2.field_2==177899132157952) && ((a4.field_3.0.2.field_4.field_2.field_3.0==-1.234375) && (a4.field_3.0.2.field_4.field_2.field_3.1==`E_2_2)) && (a4.field_3.0.2.field_4.field_2.field_4==1.4375) && (a4.field_3.0.2.field_4.field_2.field_5==97002546921472) && ((a4.field_3.0.2.field_4.field_2.field_6.0==-0.09375) && (a4.field_3.0.2.field_4.field_2.field_6.1==109686219472896) && (a4.field_3.0.2.field_4.field_2.field_6.2==226948153081856))) && ((a4.field_3.0.2.field_4.field_3.0==0.80078125) && (a4.field_3.0.2.field_4.field_3.1==0.6875) && (a4.field_3.0.2.field_4.field_3.2==46040566726656)) && (a4.field_3.0.2.field_4.field_4==1.30859375) && (a4.field_3.0.2.field_4.field_5==`E_11_6) && (a4.field_3.0.2.field_4.field_6==-1.4609375)) && (a4.field_3.0.2.field_5==197005372) && (a4.field_3.0.2.field_6==0.640625)) && ((a4.field_3.0.3.0==`E_19_3) && ((a4.field_3.0.3.1.field_1==-2.33203125) && ((a4.field_3.0.3.1.field_2.field_1==`E_18_2) && (a4.field_3.0.3.1.field_2.field_2==187071608) && (a4.field_3.0.3.1.field_2.field_3==0.921875) && (a4.field_3.0.3.1.field_2.field_4==`E_19_8) && ((a4.field_3.0.3.1.field_2.field_5.0==-1.4140625) && (a4.field_3.0.3.1.field_2.field_5.1==1.54296875) && ((a4.field_3.0.3.1.field_2.field_5.2.field_1==1.34375) && (((a4.field_3.0.3.1.field_2.field_5.2.field_2.field_1.0==0.90625) && (a4.field_3.0.3.1.field_2.field_5.2.field_2.field_1.1==`E_2_5)) && (a4.field_3.0.3.1.field_2.field_5.2.field_2.field_2==125311720620032) && ((a4.field_3.0.3.1.field_2.field_5.2.field_2.field_3.0==0.625) && (a4.field_3.0.3.1.field_2.field_5.2.field_2.field_3.1==`E_2_1)) && (a4.field_3.0.3.1.field_2.field_5.2.field_2.field_4==-0.921875) && (a4.field_3.0.3.1.field_2.field_5.2.field_2.field_5==92709840093184) && ((a4.field_3.0.3.1.field_2.field_5.2.field_2.field_6.0==-2.73828125) && (a4.field_3.0.3.1.field_2.field_5.2.field_2.field_6.1==134199459708928) && (a4.field_3.0.3.1.field_2.field_5.2.field_2.field_6.2==81184594198528))) && ((a4.field_3.0.3.1.field_2.field_5.2.field_3.0==-0.046875) && (a4.field_3.0.3.1.field_2.field_5.2.field_3.1==1.453125) && (a4.field_3.0.3.1.field_2.field_5.2.field_3.2==190870813671424)) && (a4.field_3.0.3.1.field_2.field_5.2.field_4==-1.55859375) && (a4.field_3.0.3.1.field_2.field_5.2.field_5==`E_11_4) && (a4.field_3.0.3.1.field_2.field_5.2.field_6==-0.8125))) && (((a4.field_3.0.3.1.field_2.field_6.0.0==-0.28125) && (a4.field_3.0.3.1.field_2.field_6.0.1==65980206415872) && (a4.field_3.0.3.1.field_2.field_6.0.2==69437640933376)) && (a4.field_3.0.3.1.field_2.field_6.1==0.875) && ((a4.field_3.0.3.1.field_2.field_6.2.field_1==1203783426) && (((a4.field_3.0.3.1.field_2.field_6.2.field_2.0.0==243) && ((a4.field_3.0.3.1.field_2.field_6.2.field_2.0.1.field_1==35503180218368) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.0.1.field_2==123) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.0.1.field_3==359364016) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.0.1.field_4==43) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.0.1.field_5==-1.74609375) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.0.1.field_6==3.69140625)) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.0.2==2099391278) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.0.3==`E_2_6)) && ((a4.field_3.0.3.1.field_2.field_6.2.field_2.1.0==230) && ((a4.field_3.0.3.1.field_2.field_6.2.field_2.1.1.field_1==78725579800576) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.1.1.field_2==184) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.1.1.field_3==1476808480) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.1.1.field_4==250) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.1.1.field_5==2.0546875) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.1.1.field_6==0.40234375)) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.1.2==1316011470) && (a4.field_3.0.3.1.field_2.field_6.2.field_2.1.3==`E_2_6))) && (a4.field_3.0.3.1.field_2.field_6.2.field_3==7917143982080) && (a4.field_3.0.3.1.field_2.field_6.2.field_4==0.296875) && (a4.field_3.0.3.1.field_2.field_6.2.field_5==104)) && ((a4.field_3.0.3.1.field_2.field_6.3.0==254) && (a4.field_3.0.3.1.field_2.field_6.3.1==-0.71875)))) && (a4.field_3.0.3.1.field_3==198977607696384) && (a4.field_3.0.3.1.field_4==0.46875)) && (a4.field_3.0.3.2==0.53125) && (a4.field_3.0.3.3==-2.57421875))) && ((a4.field_3.1.field_1==0.921875) && ((a4.field_3.1.field_2.field_1==3.24609375) && (((a4.field_3.1.field_2.field_2.0.field_1==3.5) && ((a4.field_3.1.field_2.field_2.0.field_2.field_1==`E_18_1) && (a4.field_3.1.field_2.field_2.0.field_2.field_2==3714170846) && (a4.field_3.1.field_2.field_2.0.field_2.field_3==-1.34375) && (a4.field_3.1.field_2.field_2.0.field_2.field_4==`E_19_5) && ((a4.field_3.1.field_2.field_2.0.field_2.field_5.0==3.50390625) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.1==-2.00390625) && ((a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_1==1.046875) && (((a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_2.field_1.0==1.328125) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_2.field_1.1==`E_2_5)) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_2.field_2==227074820669440) && ((a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_2.field_3.0==1.0) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_2.field_3.1==`E_2_1)) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_2.field_4==0.09375) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_2.field_5==45904748347392) && ((a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_2.field_6.0==3.82421875) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_2.field_6.1==82226218532864) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_2.field_6.2==201097409331200))) && ((a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_3.0==-1.59765625) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_3.1==-0.921875) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_3.2==209014553313280)) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_4==3.0546875) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_5==`E_11_4) && (a4.field_3.1.field_2.field_2.0.field_2.field_5.2.field_6==1.83984375))) && (((a4.field_3.1.field_2.field_2.0.field_2.field_6.0.0==-2.62890625) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.0.1==89468697313280) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.0.2==83042110013440)) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.1==1.046875) && ((a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_1==2099223986) && (((a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.0.0==22) && ((a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_1==210486406021120) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_2==111) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_3==702570652) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_4==156) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_5==0.0859375) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_6==1.71875)) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.0.2==2409538788) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.0.3==`E_2_5)) && ((a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.1.0==141) && ((a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_1==135559761887232) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_2==124) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_3==1544636438) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_4==77) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_5==-0.00390625) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_6==3.0390625)) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.1.2==1992571074) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_2.1.3==`E_2_3))) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_3==50968790564864) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_4==-1.015625) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.2.field_5==200)) && ((a4.field_3.1.field_2.field_2.0.field_2.field_6.3.0==98) && (a4.field_3.1.field_2.field_2.0.field_2.field_6.3.1==1.328125)))) && (a4.field_3.1.field_2.field_2.0.field_3==190118914424832) && (a4.field_3.1.field_2.field_2.0.field_4==3.87890625)) && (a4.field_3.1.field_2.field_2.1==1.22265625) && (a4.field_3.1.field_2.field_2.2==236152535121920)) && (a4.field_3.1.field_2.field_3==1350095886) && (a4.field_3.1.field_2.field_4==1.421875)) && ((a4.field_3.1.field_3.field_1==1.33984375)) && (a4.field_3.1.field_4==2.37109375) && ((a4.field_3.1.field_5.field_1==-1.4375)) && (((a4.field_3.1.field_6.0.field_1==117967668903936) && ((a4.field_3.1.field_6.0.field_2.0==61) && (a4.field_3.1.field_6.0.field_2.1==-0.921875)) && (a4.field_3.1.field_6.0.field_3==8916022067200) && ((a4.field_3.1.field_6.0.field_4.0==0.78125) && (a4.field_3.1.field_6.0.field_4.1==260068453384192) && (((a4.field_3.1.field_6.0.field_4.2.field_1.field_1==151) && (a4.field_3.1.field_6.0.field_4.2.field_1.field_2==0.04296875) && (a4.field_3.1.field_6.0.field_4.2.field_1.field_3==122) && (a4.field_3.1.field_6.0.field_4.2.field_1.field_4==20912341385216) && (a4.field_3.1.field_6.0.field_4.2.field_1.field_5==`E_2_6) && (a4.field_3.1.field_6.0.field_4.2.field_1.field_6==3592715758)) && ((a4.field_3.1.field_6.0.field_4.2.field_2.0==-0.9765625) && (a4.field_3.1.field_6.0.field_4.2.field_2.1==138666200793088) && (a4.field_3.1.field_6.0.field_4.2.field_2.2==204194791948288)) && ((a4.field_3.1.field_6.0.field_4.2.field_3.0==1.0625) && (a4.field_3.1.field_6.0.field_4.2.field_3.1==`E_2_6))) && (((a4.field_3.1.field_6.0.field_4.3.field_1.0==3893487284) && (a4.field_3.1.field_6.0.field_4.3.field_1.1==-1.515625) && (a4.field_3.1.field_6.0.field_4.3.field_1.2==0.84375) && ((a4.field_3.1.field_6.0.field_4.3.field_1.3.0==-0.65625) && (a4.field_3.1.field_6.0.field_4.3.field_1.3.1==`E_2_6))) && (a4.field_3.1.field_6.0.field_4.3.field_2==113)))) && (a4.field_3.1.field_6.1==-0.671875) && (a4.field_3.1.field_6.2==167371868864512) && (a4.field_3.1.field_6.3==71)))) && ((((a4.field_4.0.0.field_1==169699773906944) && ((a4.field_4.0.0.field_2.0==139) && (a4.field_4.0.0.field_2.1==1.421875)) && (a4.field_4.0.0.field_3==114279424327680) && ((a4.field_4.0.0.field_4.0==0.265625) && (a4.field_4.0.0.field_4.1==104534041427968) && (((a4.field_4.0.0.field_4.2.field_1.field_1==165) && (a4.field_4.0.0.field_4.2.field_1.field_2==2.26953125) && (a4.field_4.0.0.field_4.2.field_1.field_3==103) && (a4.field_4.0.0.field_4.2.field_1.field_4==111656380792832) && (a4.field_4.0.0.field_4.2.field_1.field_5==`E_2_5) && (a4.field_4.0.0.field_4.2.field_1.field_6==4276697078)) && ((a4.field_4.0.0.field_4.2.field_2.0==3.14453125) && (a4.field_4.0.0.field_4.2.field_2.1==53795771645952) && (a4.field_4.0.0.field_4.2.field_2.2==19714984378368)) && ((a4.field_4.0.0.field_4.2.field_3.0==1.234375) && (a4.field_4.0.0.field_4.2.field_3.1==`E_2_1))) && (((a4.field_4.0.0.field_4.3.field_1.0==1912043998) && (a4.field_4.0.0.field_4.3.field_1.1==-0.359375) && (a4.field_4.0.0.field_4.3.field_1.2==0.796875) && ((a4.field_4.0.0.field_4.3.field_1.3.0==-0.671875) && (a4.field_4.0.0.field_4.3.field_1.3.1==`E_2_3))) && (a4.field_4.0.0.field_4.3.field_2==168)))) && (a4.field_4.0.1==-0.625) && (a4.field_4.0.2==38298238189568) && (a4.field_4.0.3==243)) && (a4.field_4.1==-2.03125)) && ((a4.field_5.0==0.25) && (a4.field_5.1==67610029064192) && (((a4.field_5.2.field_1.field_1==213) && (a4.field_5.2.field_1.field_2==2.8046875) && (a4.field_5.2.field_1.field_3==215) && (a4.field_5.2.field_1.field_4==107128833966080) && (a4.field_5.2.field_1.field_5==`E_2_5) && (a4.field_5.2.field_1.field_6==1069858560)) && ((a4.field_5.2.field_2.0==3.6484375) && (a4.field_5.2.field_2.1==51416336302080) && (a4.field_5.2.field_2.2==251914374217728)) && ((a4.field_5.2.field_3.0==0.8125) && (a4.field_5.2.field_3.1==`E_2_4))) && (((a4.field_5.3.field_1.0==1252682164) && (a4.field_5.3.field_1.1==-0.09375) && (a4.field_5.3.field_1.2==0.25) && ((a4.field_5.3.field_1.3.0==-0.96875) && (a4.field_5.3.field_1.3.1==`E_2_4))) && (a4.field_5.3.field_2==166))))
+ goto bad
+ ;;
+
+ -> 2964505044
+
+:bad
+ -> 415294892
+}
+
+const fn_13_myr = { a1 : t26, a2 : uint32, a3 : t70, a4 : flt64, a5 : (flt32,t71,(uint8,uint32,uint8),flt64)
+ if !(a1==`E_26_9)
+ goto bad
+ ;;
+
+ if !(a2==2931952582)
+ goto bad
+ ;;
+
+ if !(((a3.field_1.field_1==`E_29_2) && (a3.field_1.field_2==220) && (a3.field_1.field_3==281245651828737) && (a3.field_1.field_4==161440489930752)))
+ goto bad
+ ;;
+
+ if !(a4==0.62890625)
+ goto bad
+ ;;
+
+ if !((a5.0==0.90625) && ((a5.1.field_1==109360486285312) && (a5.1.field_2==-2.51953125) && (a5.1.field_3==3374314812) && (a5.1.field_4==4132094974) && (a5.1.field_5==143973346836480)) && ((a5.2.0==93) && (a5.2.1==3133286358) && (a5.2.2==129)) && (a5.3==0.76953125))
+ goto bad
+ ;;
+
+ -> `E_74_6
+
+:bad
+ -> `E_74_2
+}
+
+const fn_14_myr = { a1 : uint32, a2 : uint8, a3 : (t75,t76,t77), a4 : (t79,uint64,t80), a5 : t32, a6 : t82, a7 : t85
+ if !(a1==2391308062)
+ goto bad
+ ;;
+
+ if !(a2==66)
+ goto bad
+ ;;
+
+ if !(((a3.0.field_1==85) && (a3.0.field_2==-2.80859375) && (a3.0.field_3==155146548)) && ((a3.1.field_1==235) && (a3.1.field_2==-1.2890625)) && (a3.2==`E_77_8))
+ goto bad
+ ;;
+
+ if !((a4.0==`E_79_1) && (a4.1==274420389904384) && (a4.2==`E_80_2))
+ goto bad
+ ;;
+
+ if !((a5.field_1==1325686188))
+ goto bad
+ ;;
+
+ if !(a6==`E_82_5)
+ goto bad
+ ;;
+
+ if !((a7.field_1==558424532) && (((a7.field_2.0.0==206) && ((a7.field_2.0.1.field_1==150202022100992) && (a7.field_2.0.1.field_2==157) && (a7.field_2.0.1.field_3==860064444) && (a7.field_2.0.1.field_4==215) && (a7.field_2.0.1.field_5==-1.9765625) && (a7.field_2.0.1.field_6==-2.18359375)) && (a7.field_2.0.2==2792603168) && (a7.field_2.0.3==`E_2_1)) && ((a7.field_2.1.0==47) && ((a7.field_2.1.1.field_1==209371989409792) && (a7.field_2.1.1.field_2==167) && (a7.field_2.1.1.field_3==1162519188) && (a7.field_2.1.1.field_4==232) && (a7.field_2.1.1.field_5==2.2109375) && (a7.field_2.1.1.field_6==3.82421875)) && (a7.field_2.1.2==2196829234) && (a7.field_2.1.3==`E_2_2))) && (a7.field_3==239020664553472) && (a7.field_4==645390774) && (((a7.field_5.0.field_1==0.375) && ((a7.field_5.0.field_2.field_1==-3.5625) && (((a7.field_5.0.field_2.field_2.0.field_1==1.97265625) && ((a7.field_5.0.field_2.field_2.0.field_2.field_1==`E_18_8) && (a7.field_5.0.field_2.field_2.0.field_2.field_2==3857006490) && (a7.field_5.0.field_2.field_2.0.field_2.field_3==1.4375) && (a7.field_5.0.field_2.field_2.0.field_2.field_4==`E_19_8) && ((a7.field_5.0.field_2.field_2.0.field_2.field_5.0==3.66015625) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.1==2.25390625) && ((a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_1==-0.5) && (((a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_2.field_1.0==-1.265625) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_2.field_1.1==`E_2_4)) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_2.field_2==246081152876544) && ((a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_2.field_3.0==0.671875) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_2.field_3.1==`E_2_5)) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_2.field_4==0.6875) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_2.field_5==270577423351808) && ((a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_2.field_6.0==-3.7734375) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_2.field_6.1==103229432922112) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_2.field_6.2==25981307060224))) && ((a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_3.0==-2.328125) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_3.1==-1.21875) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_3.2==210485456797696)) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_4==-0.21484375) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_5==`E_11_1) && (a7.field_5.0.field_2.field_2.0.field_2.field_5.2.field_6==0.23828125))) && (((a7.field_5.0.field_2.field_2.0.field_2.field_6.0.0==-0.296875) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.0.1==149437025615872) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.0.2==217610901782528)) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.1==-0.59375) && ((a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_1==2925618826) && (((a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.0.0==100) && ((a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_1==100015436857344) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_2==111) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_3==988840590) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_4==64) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_5==-0.8671875) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_6==-2.19140625)) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.0.2==951054362) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.0.3==`E_2_2)) && ((a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.1.0==143) && ((a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_1==89940269858816) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_2==197) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_3==1866268236) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_4==8) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_5==0.546875) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_6==-2.7265625)) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.1.2==4272545584) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_2.1.3==`E_2_4))) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_3==145750579740672) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_4==-1.296875) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.2.field_5==201)) && ((a7.field_5.0.field_2.field_2.0.field_2.field_6.3.0==160) && (a7.field_5.0.field_2.field_2.0.field_2.field_6.3.1==1.046875)))) && (a7.field_5.0.field_2.field_2.0.field_3==73607486504960) && (a7.field_5.0.field_2.field_2.0.field_4==1.15625)) && (a7.field_5.0.field_2.field_2.1==-1.05078125) && (a7.field_5.0.field_2.field_2.2==203696970924032)) && (a7.field_5.0.field_2.field_3==767588794) && (a7.field_5.0.field_2.field_4==-1.140625)) && ((a7.field_5.0.field_3.field_1==-3.6328125)) && (a7.field_5.0.field_4==2.8125) && ((a7.field_5.0.field_5.field_1==0.09375)) && (((a7.field_5.0.field_6.0.field_1==109872603332608) && ((a7.field_5.0.field_6.0.field_2.0==75) && (a7.field_5.0.field_6.0.field_2.1==0.828125)) && (a7.field_5.0.field_6.0.field_3==181185840939008) && ((a7.field_5.0.field_6.0.field_4.0==0.578125) && (a7.field_5.0.field_6.0.field_4.1==276458107961344) && (((a7.field_5.0.field_6.0.field_4.2.field_1.field_1==221) && (a7.field_5.0.field_6.0.field_4.2.field_1.field_2==2.8125) && (a7.field_5.0.field_6.0.field_4.2.field_1.field_3==138) && (a7.field_5.0.field_6.0.field_4.2.field_1.field_4==51979432886272) && (a7.field_5.0.field_6.0.field_4.2.field_1.field_5==`E_2_4) && (a7.field_5.0.field_6.0.field_4.2.field_1.field_6==4196052024)) && ((a7.field_5.0.field_6.0.field_4.2.field_2.0==-2.203125) && (a7.field_5.0.field_6.0.field_4.2.field_2.1==57078884073472) && (a7.field_5.0.field_6.0.field_4.2.field_2.2==36038635683840)) && ((a7.field_5.0.field_6.0.field_4.2.field_3.0==-0.90625) && (a7.field_5.0.field_6.0.field_4.2.field_3.1==`E_2_5))) && (((a7.field_5.0.field_6.0.field_4.3.field_1.0==2773883292) && (a7.field_5.0.field_6.0.field_4.3.field_1.1==-0.625) && (a7.field_5.0.field_6.0.field_4.3.field_1.2==0.25) && ((a7.field_5.0.field_6.0.field_4.3.field_1.3.0==-0.703125) && (a7.field_5.0.field_6.0.field_4.3.field_1.3.1==`E_2_1))) && (a7.field_5.0.field_6.0.field_4.3.field_2==215)))) && (a7.field_5.0.field_6.1==1.328125) && (a7.field_5.0.field_6.2==140846684569600) && (a7.field_5.0.field_6.3==144))) && (a7.field_5.1==432794756) && (a7.field_5.2==2744398968)) && ((a7.field_6.field_1==153) && (a7.field_6.field_2==270401691844608)))
+ goto bad
+ ;;
+
+ -> 278379121082369
+
+:bad
+ -> 71555255238656
+}
+
+const fn_15_myr = { a1 : t86, a2 : t69, a3 : t88, a4 : t93, a5 : (flt32,uint32,t94), a6 : (t24,(flt32,t2)), a7 : flt32, a8 : (uint8,flt32,uint64,t1), a9 : (t93,flt64,t96), a10 : t100
+ if !(a1==`E_86_10)
+ goto bad
+ ;;
+
+ if !((a2.field_1==`E_29_3) && (a2.field_2==174) && (a2.field_3==120887724867584) && (a2.field_4==122558970331136))
+ goto bad
+ ;;
+
+ if !((a3.field_1==`E_87_6) && (a3.field_2==`E_19_4) && ((a3.field_3.field_1==13773365706752) && (a3.field_3.field_2==103) && (a3.field_3.field_3==2174769352) && (a3.field_3.field_4==176) && (a3.field_3.field_5==-3.88671875) && (a3.field_3.field_6==-0.2578125)) && (a3.field_4==`E_48_7))
+ goto bad
+ ;;
+
+ if !(((a4.field_1.0==2.3515625) && (a4.field_1.1==0.375) && (((a4.field_1.2.0.field_1==225) && (a4.field_1.2.0.field_2==3.30859375) && (a4.field_1.2.0.field_3==307894648)) && ((a4.field_1.2.1.field_1==11) && (a4.field_1.2.1.field_2==1.78125)) && (a4.field_1.2.2==`E_77_8))) && (a4.field_2==`E_90_6) && (((a4.field_3.0.0==-0.5234375) && (a4.field_3.0.1==132763972009984) && (a4.field_3.0.2==229659410694144)) && (a4.field_3.1==-0.78125) && ((a4.field_3.2.field_1==1759559384) && (((a4.field_3.2.field_2.0.0==49) && ((a4.field_3.2.field_2.0.1.field_1==136392379072512) && (a4.field_3.2.field_2.0.1.field_2==89) && (a4.field_3.2.field_2.0.1.field_3==217892376) && (a4.field_3.2.field_2.0.1.field_4==68) && (a4.field_3.2.field_2.0.1.field_5==-2.91796875) && (a4.field_3.2.field_2.0.1.field_6==-1.44140625)) && (a4.field_3.2.field_2.0.2==411030898) && (a4.field_3.2.field_2.0.3==`E_2_2)) && ((a4.field_3.2.field_2.1.0==22) && ((a4.field_3.2.field_2.1.1.field_1==172726771253248) && (a4.field_3.2.field_2.1.1.field_2==126) && (a4.field_3.2.field_2.1.1.field_3==1394729466) && (a4.field_3.2.field_2.1.1.field_4==253) && (a4.field_3.2.field_2.1.1.field_5==1.3359375) && (a4.field_3.2.field_2.1.1.field_6==-1.6875)) && (a4.field_3.2.field_2.1.2==691362998) && (a4.field_3.2.field_2.1.3==`E_2_3))) && (a4.field_3.2.field_3==253720887820288) && (a4.field_3.2.field_4==-1.4375) && (a4.field_3.2.field_5==101)) && ((a4.field_3.3.0==249) && (a4.field_3.3.1==-1.296875))) && ((a4.field_4.0==528531976) && ((a4.field_4.1.field_1==261386844897280) && (a4.field_4.1.field_2==1.84765625) && (a4.field_4.1.field_3==2388631154) && (a4.field_4.1.field_4==1719296880) && (a4.field_4.1.field_5==155468073926656)) && (a4.field_4.2==3470986990) && (a4.field_4.3==3478856264)) && ((a4.field_5.0==3194978670) && (a4.field_5.1==1257202236) && (a4.field_5.2==678627422)))
+ goto bad
+ ;;
+
+ if !((a5.0==-0.953125) && (a5.1==1149891486) && (a5.2==`E_94_1))
+ goto bad
+ ;;
+
+ if !((a6.0==`E_24_7) && ((a6.1.0==0.953125) && (a6.1.1==`E_2_3)))
+ goto bad
+ ;;
+
+ if !(a7==0.65625)
+ goto bad
+ ;;
+
+ if !((a8.0==174) && (a8.1==0.140625) && (a8.2==211052441108480) && ((a8.3.field_1==171324051947520) && (a8.3.field_2==72) && (a8.3.field_3==1314068538) && (a8.3.field_4==2) && (a8.3.field_5==2.62109375) && (a8.3.field_6==-3.015625)))
+ goto bad
+ ;;
+
+ if !((((a9.0.field_1.0==3.0234375) && (a9.0.field_1.1==1.390625) && (((a9.0.field_1.2.0.field_1==51) && (a9.0.field_1.2.0.field_2==-2.76953125) && (a9.0.field_1.2.0.field_3==3019798602)) && ((a9.0.field_1.2.1.field_1==1) && (a9.0.field_1.2.1.field_2==0.5078125)) && (a9.0.field_1.2.2==`E_77_8))) && (a9.0.field_2==`E_90_7) && (((a9.0.field_3.0.0==-3.71484375) && (a9.0.field_3.0.1==157999771287552) && (a9.0.field_3.0.2==111072570245120)) && (a9.0.field_3.1==0.21875) && ((a9.0.field_3.2.field_1==1336322566) && (((a9.0.field_3.2.field_2.0.0==0) && ((a9.0.field_3.2.field_2.0.1.field_1==240426317512704) && (a9.0.field_3.2.field_2.0.1.field_2==157) && (a9.0.field_3.2.field_2.0.1.field_3==52590348) && (a9.0.field_3.2.field_2.0.1.field_4==176) && (a9.0.field_3.2.field_2.0.1.field_5==1.80859375) && (a9.0.field_3.2.field_2.0.1.field_6==2.58984375)) && (a9.0.field_3.2.field_2.0.2==1153624366) && (a9.0.field_3.2.field_2.0.3==`E_2_1)) && ((a9.0.field_3.2.field_2.1.0==206) && ((a9.0.field_3.2.field_2.1.1.field_1==180814220492800) && (a9.0.field_3.2.field_2.1.1.field_2==26) && (a9.0.field_3.2.field_2.1.1.field_3==299703506) && (a9.0.field_3.2.field_2.1.1.field_4==32) && (a9.0.field_3.2.field_2.1.1.field_5==1.73828125) && (a9.0.field_3.2.field_2.1.1.field_6==3.32421875)) && (a9.0.field_3.2.field_2.1.2==3465599182) && (a9.0.field_3.2.field_2.1.3==`E_2_4))) && (a9.0.field_3.2.field_3==244610903965696) && (a9.0.field_3.2.field_4==-1.546875) && (a9.0.field_3.2.field_5==193)) && ((a9.0.field_3.3.0==146) && (a9.0.field_3.3.1==-1.515625))) && ((a9.0.field_4.0==1374840658) && ((a9.0.field_4.1.field_1==142626650193920) && (a9.0.field_4.1.field_2==1.80859375) && (a9.0.field_4.1.field_3==1480961136) && (a9.0.field_4.1.field_4==292227856) && (a9.0.field_4.1.field_5==35406836006912)) && (a9.0.field_4.2==3934363586) && (a9.0.field_4.3==1628550422)) && ((a9.0.field_5.0==554328638) && (a9.0.field_5.1==3308010754) && (a9.0.field_5.2==4278941526))) && (a9.1==-2.8046875) && ((a9.2.field_1==-0.31640625) && (a9.2.field_2==1.77734375)))
+ goto bad
+ ;;
+
+ if !(((((a10.field_1.field_1.0.field_1==-0.578125) && ((a10.field_1.field_1.0.field_2.field_1==-0.7265625) && (((a10.field_1.field_1.0.field_2.field_2.0.field_1==-2.6015625) && ((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_1==`E_18_5) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_2==3722140840) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_3==1.234375) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_4==`E_19_4) && ((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.0==0.7421875) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.1==2.03125) && ((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_1==-0.90625) && (((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_1.0==1.46875) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_1.1==`E_2_5)) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_2==16987441070080) && ((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_3.0==-0.125) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_3.1==`E_2_3)) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_4==1.0625) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_5==215665831968768) && ((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_6.0==1.7265625) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_6.1==135345495736320) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_6.2==22229593620480))) && ((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_3.0==2.16015625) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_3.1==0.625) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_3.2==114942210998272)) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_4==-2.71484375) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_5==`E_11_3) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_6==-0.2421875))) && (((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.0.0==2.91796875) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.0.1==59953140727808) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.0.2==184442813546496)) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.1==0.03125) && ((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_1==1648496868) && (((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.0==248) && ((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_1==258110700650496) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_2==141) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_3==1835743428) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_4==200) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_5==-0.42578125) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_6==2.7890625)) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.2==1625618080) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.3==`E_2_2)) && ((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.0==17) && ((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_1==96824602525696) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_2==239) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_3==545066032) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_4==206) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_5==-1.140625) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_6==3.6171875)) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.2==2459246160) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.3==`E_2_1))) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_3==124927959629824) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_4==0.46875) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_5==218)) && ((a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.3.0==36) && (a10.field_1.field_1.0.field_2.field_2.0.field_2.field_6.3.1==-1.375)))) && (a10.field_1.field_1.0.field_2.field_2.0.field_3==1156421255168) && (a10.field_1.field_1.0.field_2.field_2.0.field_4==0.4921875)) && (a10.field_1.field_1.0.field_2.field_2.1==0.2265625) && (a10.field_1.field_1.0.field_2.field_2.2==246949201182720)) && (a10.field_1.field_1.0.field_2.field_3==3332544584) && (a10.field_1.field_1.0.field_2.field_4==-0.984375)) && ((a10.field_1.field_1.0.field_3.field_1==-0.87890625)) && (a10.field_1.field_1.0.field_4==-2.66015625) && ((a10.field_1.field_1.0.field_5.field_1==-1.078125)) && (((a10.field_1.field_1.0.field_6.0.field_1==85664792313856) && ((a10.field_1.field_1.0.field_6.0.field_2.0==181) && (a10.field_1.field_1.0.field_6.0.field_2.1==0.265625)) && (a10.field_1.field_1.0.field_6.0.field_3==24759761633280) && ((a10.field_1.field_1.0.field_6.0.field_4.0==-1.078125) && (a10.field_1.field_1.0.field_6.0.field_4.1==123531649613824) && (((a10.field_1.field_1.0.field_6.0.field_4.2.field_1.field_1==119) && (a10.field_1.field_1.0.field_6.0.field_4.2.field_1.field_2==-1.08203125) && (a10.field_1.field_1.0.field_6.0.field_4.2.field_1.field_3==129) && (a10.field_1.field_1.0.field_6.0.field_4.2.field_1.field_4==228120870649856) && (a10.field_1.field_1.0.field_6.0.field_4.2.field_1.field_5==`E_2_2) && (a10.field_1.field_1.0.field_6.0.field_4.2.field_1.field_6==2715867670)) && ((a10.field_1.field_1.0.field_6.0.field_4.2.field_2.0==0.9140625) && (a10.field_1.field_1.0.field_6.0.field_4.2.field_2.1==183028377845760) && (a10.field_1.field_1.0.field_6.0.field_4.2.field_2.2==167569567645696)) && ((a10.field_1.field_1.0.field_6.0.field_4.2.field_3.0==-0.96875) && (a10.field_1.field_1.0.field_6.0.field_4.2.field_3.1==`E_2_5))) && (((a10.field_1.field_1.0.field_6.0.field_4.3.field_1.0==168190774) && (a10.field_1.field_1.0.field_6.0.field_4.3.field_1.1==1.078125) && (a10.field_1.field_1.0.field_6.0.field_4.3.field_1.2==0.234375) && ((a10.field_1.field_1.0.field_6.0.field_4.3.field_1.3.0==-1.0) && (a10.field_1.field_1.0.field_6.0.field_4.3.field_1.3.1==`E_2_6))) && (a10.field_1.field_1.0.field_6.0.field_4.3.field_2==148)))) && (a10.field_1.field_1.0.field_6.1==0.765625) && (a10.field_1.field_1.0.field_6.2==120963210805248) && (a10.field_1.field_1.0.field_6.3==117))) && (a10.field_1.field_1.1==2231554362) && (a10.field_1.field_1.2==2636507052)) && (a10.field_1.field_2==2.703125) && (a10.field_1.field_3==191209702686720) && (a10.field_1.field_4==2.1015625) && (a10.field_1.field_5==38)) && (a10.field_2==109765657755648) && (a10.field_3==-1.1640625) && (a10.field_4==-2.046875) && ((a10.field_5.0==`E_19_5) && (a10.field_5.1==3391967572)))
+ goto bad
+ ;;
+
+ -> (0.25,[.field_1=`E_18_6,.field_2=696503716,.field_3=-1.078125,.field_4=`E_19_6,.field_5=(-3.4140625,1.85546875,[.field_1=-0.046875,.field_2=[.field_1=(-0.015625,`E_2_2),.field_2=1680566779904,.field_3=(-1.234375,`E_2_1),.field_4=0.578125,.field_5=246387639451648,.field_6=(-2.4140625,21180950511616,63676999925760)],.field_3=(-0.5546875,0.375,4498010144768),.field_4=-2.86328125,.field_5=`E_11_4,.field_6=-1.4765625]),.field_6=((1.16015625,206263158308864,67183469658112),0.875,[.field_1=2520041722,.field_2=((194,[.field_1=28598144729088,.field_2=42,.field_3=1389583824,.field_4=67,.field_5=-1.390625,.field_6=-3.390625],1403784366,`E_2_1),(141,[.field_1=230715822833664,.field_2=65,.field_3=2399362858,.field_4=237,.field_5=-1.59375,.field_6=-2.0],3443253262,`E_2_3)),.field_3=89840887529472,.field_4=-1.484375,.field_5=234],(240,-1.4375))],[.field_1=-1.40625],-0.23828125)
+
+:bad
+ -> (-0.453125,[.field_1=`E_18_7,.field_2=869338882,.field_3=0.296875,.field_4=`E_19_4,.field_5=(2.26171875,-1.1328125,[.field_1=0.25,.field_2=[.field_1=(1.421875,`E_2_5),.field_2=237789654155264,.field_3=(-0.703125,`E_2_5),.field_4=-1.03125,.field_5=94734685962240,.field_6=(-1.58203125,279028912488449,166458857750528)],.field_3=(2.78515625,1.3125,249786336149504),.field_4=-3.125,.field_5=`E_11_5,.field_6=-0.98046875]),.field_6=((-0.62890625,210339456876544,81998632321024),-0.4375,[.field_1=3398079470,.field_2=((87,[.field_1=233528477483008,.field_2=37,.field_3=174654276,.field_4=8,.field_5=1.875,.field_6=0.15625],3527113970,`E_2_1),(25,[.field_1=218524851896320,.field_2=198,.field_3=4062706894,.field_4=13,.field_5=0.1484375,.field_6=-2.98828125],1675854050,`E_2_5)),.field_3=30645607858176,.field_4=1.515625,.field_5=172],(6,1.15625))],[.field_1=0.859375],1.921875)
+}
+
+const fn_16_myr = { a1 : uint64, a2 : t57
+ if !(a1==138813818142720)
+ goto bad
+ ;;
+
+ if !((a2.field_1==`E_26_3) && (a2.field_2==224) && ((a2.field_3.0==107786496507904) && (a2.field_3.1==`E_41_3) && (a2.field_3.2==3940023518) && ((a2.field_3.3.field_1==116812990251008) && ((a2.field_3.3.field_2.0==43) && (a2.field_3.3.field_2.1==-0.203125)) && (a2.field_3.3.field_3==66490954678272) && ((a2.field_3.3.field_4.0==-0.734375) && (a2.field_3.3.field_4.1==151595749212160) && (((a2.field_3.3.field_4.2.field_1.field_1==3) && (a2.field_3.3.field_4.2.field_1.field_2==-3.59765625) && (a2.field_3.3.field_4.2.field_1.field_3==124) && (a2.field_3.3.field_4.2.field_1.field_4==18634915053568) && (a2.field_3.3.field_4.2.field_1.field_5==`E_2_4) && (a2.field_3.3.field_4.2.field_1.field_6==2585846002)) && ((a2.field_3.3.field_4.2.field_2.0==-0.33984375) && (a2.field_3.3.field_4.2.field_2.1==105850133544960) && (a2.field_3.3.field_4.2.field_2.2==200111611576320)) && ((a2.field_3.3.field_4.2.field_3.0==-0.1875) && (a2.field_3.3.field_4.2.field_3.1==`E_2_1))) && (((a2.field_3.3.field_4.3.field_1.0==3167428002) && (a2.field_3.3.field_4.3.field_1.1==-0.609375) && (a2.field_3.3.field_4.3.field_1.2==1.015625) && ((a2.field_3.3.field_4.3.field_1.3.0==-0.046875) && (a2.field_3.3.field_4.3.field_1.3.1==`E_2_4))) && (a2.field_3.3.field_4.3.field_2==4))))) && ((a2.field_4.field_1==1.5) && (((a2.field_4.field_2.field_1.0==-1.296875) && (a2.field_4.field_2.field_1.1==`E_2_4)) && (a2.field_4.field_2.field_2==73429141815296) && ((a2.field_4.field_2.field_3.0==1.453125) && (a2.field_4.field_2.field_3.1==`E_2_6)) && (a2.field_4.field_2.field_4==0.59375) && (a2.field_4.field_2.field_5==247630766538752) && ((a2.field_4.field_2.field_6.0==-1.03515625) && (a2.field_4.field_2.field_6.1==242640090824704) && (a2.field_4.field_2.field_6.2==89287634190336))) && ((a2.field_4.field_3.0==0.8125) && (a2.field_4.field_3.1==-1.171875) && (a2.field_4.field_3.2==240883383402496)) && (a2.field_4.field_4==0.91015625) && (a2.field_4.field_5==`E_11_2) && (a2.field_4.field_6==-1.25)) && (a2.field_5==2931638482) && (a2.field_6==0.71875))
+ goto bad
+ ;;
+
+ -> ((-3.1015625,183885376782336,162392907317248),-1.09375,[.field_1=1678328882,.field_2=((226,[.field_1=274580443365376,.field_2=223,.field_3=1866442708,.field_4=253,.field_5=2.7421875,.field_6=0.16015625],2411587072,`E_2_1),(123,[.field_1=144693939929088,.field_2=205,.field_3=1556663324,.field_4=225,.field_5=1.2890625,.field_6=1.40234375],2084842492,`E_2_5)),.field_3=150713528483840,.field_4=-1.25,.field_5=245],(224,0.890625))
+
+:bad
+ -> ((1.46484375,230270032019456,259894633955328),0.90625,[.field_1=2024542726,.field_2=((128,[.field_1=265414265667584,.field_2=220,.field_3=1649945756,.field_4=235,.field_5=1.84765625,.field_6=2.4921875],3909742020,`E_2_4),(86,[.field_1=132799646662656,.field_2=178,.field_3=3529069034,.field_4=252,.field_5=0.01171875,.field_6=-2.46875],3725795130,`E_2_1)),.field_3=243128701026304,.field_4=-0.46875,.field_5=245],(102,-0.140625))
+}
+
+const fn_17_myr = { a1 : flt32, a2 : (flt64,flt32,uint64), a3 : t35, a4 : flt32, a5 : t18, a6 : uint64, a7 : (uint8,t1,uint32,t2), a8 : flt32, a9 : t56, a10 : (uint8,uint32,uint8)
+ if !(a1==-0.8125)
+ goto bad
+ ;;
+
+ if !((a2.0==-2.640625) && (a2.1==-0.3125) && (a2.2==158864030433280))
+ goto bad
+ ;;
+
+ if !((a3.field_1==120060447424512) && (a3.field_2==200994178))
+ goto bad
+ ;;
+
+ if !(a4==-1.0625)
+ goto bad
+ ;;
+
+ if !(a5==`E_18_7)
+ goto bad
+ ;;
+
+ if !(a6==180628077543424)
+ goto bad
+ ;;
+
+ if !((a7.0==160) && ((a7.1.field_1==267308015419392) && (a7.1.field_2==53) && (a7.1.field_3==2126242378) && (a7.1.field_4==29) && (a7.1.field_5==-3.328125) && (a7.1.field_6==2.71875)) && (a7.2==324345820) && (a7.3==`E_2_3))
+ goto bad
+ ;;
+
+ if !(a8==1.5625)
+ goto bad
+ ;;
+
+ if !(a9==`E_56_5)
+ goto bad
+ ;;
+
+ if !((a10.0==0) && (a10.1==1742227568) && (a10.2==93))
+ goto bad
+ ;;
+
+ -> 2.59765625
+
+:bad
+ -> -0.67578125
+}
+
+const fn_18_myr = { a1 : t29, a2 : t50, a3 : t94, a4 : (t93,flt64,t96), a5 : t82, a6 : uint32
+ if !(a1==`E_29_5)
+ goto bad
+ ;;
+
+ if !((a2.field_1==-0.671875) && (((a2.field_2.0.field_1==-2.3984375) && ((a2.field_2.0.field_2.field_1==`E_18_5) && (a2.field_2.0.field_2.field_2==178101928) && (a2.field_2.0.field_2.field_3==-1.125) && (a2.field_2.0.field_2.field_4==`E_19_6) && ((a2.field_2.0.field_2.field_5.0==0.28515625) && (a2.field_2.0.field_2.field_5.1==-1.88671875) && ((a2.field_2.0.field_2.field_5.2.field_1==0.921875) && (((a2.field_2.0.field_2.field_5.2.field_2.field_1.0==-0.359375) && (a2.field_2.0.field_2.field_5.2.field_2.field_1.1==`E_2_3)) && (a2.field_2.0.field_2.field_5.2.field_2.field_2==75260795158528) && ((a2.field_2.0.field_2.field_5.2.field_2.field_3.0==0.59375) && (a2.field_2.0.field_2.field_5.2.field_2.field_3.1==`E_2_2)) && (a2.field_2.0.field_2.field_5.2.field_2.field_4==-1.515625) && (a2.field_2.0.field_2.field_5.2.field_2.field_5==64393391505408) && ((a2.field_2.0.field_2.field_5.2.field_2.field_6.0==3.38671875) && (a2.field_2.0.field_2.field_5.2.field_2.field_6.1==241181364584448) && (a2.field_2.0.field_2.field_5.2.field_2.field_6.2==262564167811072))) && ((a2.field_2.0.field_2.field_5.2.field_3.0==3.3984375) && (a2.field_2.0.field_2.field_5.2.field_3.1==-0.75) && (a2.field_2.0.field_2.field_5.2.field_3.2==84301476790272)) && (a2.field_2.0.field_2.field_5.2.field_4==-1.7421875) && (a2.field_2.0.field_2.field_5.2.field_5==`E_11_1) && (a2.field_2.0.field_2.field_5.2.field_6==1.6640625))) && (((a2.field_2.0.field_2.field_6.0.0==2.96484375) && (a2.field_2.0.field_2.field_6.0.1==25240979636224) && (a2.field_2.0.field_2.field_6.0.2==279218169577473)) && (a2.field_2.0.field_2.field_6.1==0.46875) && ((a2.field_2.0.field_2.field_6.2.field_1==3583795084) && (((a2.field_2.0.field_2.field_6.2.field_2.0.0==121) && ((a2.field_2.0.field_2.field_6.2.field_2.0.1.field_1==18449750163456) && (a2.field_2.0.field_2.field_6.2.field_2.0.1.field_2==7) && (a2.field_2.0.field_2.field_6.2.field_2.0.1.field_3==4231471828) && (a2.field_2.0.field_2.field_6.2.field_2.0.1.field_4==27) && (a2.field_2.0.field_2.field_6.2.field_2.0.1.field_5==-2.578125) && (a2.field_2.0.field_2.field_6.2.field_2.0.1.field_6==1.60546875)) && (a2.field_2.0.field_2.field_6.2.field_2.0.2==2763967082) && (a2.field_2.0.field_2.field_6.2.field_2.0.3==`E_2_3)) && ((a2.field_2.0.field_2.field_6.2.field_2.1.0==127) && ((a2.field_2.0.field_2.field_6.2.field_2.1.1.field_1==7883293065216) && (a2.field_2.0.field_2.field_6.2.field_2.1.1.field_2==195) && (a2.field_2.0.field_2.field_6.2.field_2.1.1.field_3==3293015804) && (a2.field_2.0.field_2.field_6.2.field_2.1.1.field_4==183) && (a2.field_2.0.field_2.field_6.2.field_2.1.1.field_5==-3.18359375) && (a2.field_2.0.field_2.field_6.2.field_2.1.1.field_6==2.20703125)) && (a2.field_2.0.field_2.field_6.2.field_2.1.2==4053927584) && (a2.field_2.0.field_2.field_6.2.field_2.1.3==`E_2_1))) && (a2.field_2.0.field_2.field_6.2.field_3==179909264015360) && (a2.field_2.0.field_2.field_6.2.field_4==1.1875) && (a2.field_2.0.field_2.field_6.2.field_5==245)) && ((a2.field_2.0.field_2.field_6.3.0==230) && (a2.field_2.0.field_2.field_6.3.1==-1.015625)))) && (a2.field_2.0.field_3==66953411952640) && (a2.field_2.0.field_4==3.87890625)) && (a2.field_2.1==3.04296875) && (a2.field_2.2==33030485442560)) && (a2.field_3==369406000) && (a2.field_4==1.203125))
+ goto bad
+ ;;
+
+ if !(a3==`E_94_3)
+ goto bad
+ ;;
+
+ if !((((a4.0.field_1.0==-1.234375) && (a4.0.field_1.1==1.390625) && (((a4.0.field_1.2.0.field_1==30) && (a4.0.field_1.2.0.field_2==-3.5390625) && (a4.0.field_1.2.0.field_3==2512982078)) && ((a4.0.field_1.2.1.field_1==139) && (a4.0.field_1.2.1.field_2==0.36328125)) && (a4.0.field_1.2.2==`E_77_5))) && (a4.0.field_2==`E_90_3) && (((a4.0.field_3.0.0==-1.4609375) && (a4.0.field_3.0.1==92383916457984) && (a4.0.field_3.0.2==113307733983232)) && (a4.0.field_3.1==-1.265625) && ((a4.0.field_3.2.field_1==1168626982) && (((a4.0.field_3.2.field_2.0.0==109) && ((a4.0.field_3.2.field_2.0.1.field_1==206784518291456) && (a4.0.field_3.2.field_2.0.1.field_2==38) && (a4.0.field_3.2.field_2.0.1.field_3==1671741250) && (a4.0.field_3.2.field_2.0.1.field_4==162) && (a4.0.field_3.2.field_2.0.1.field_5==-1.3671875) && (a4.0.field_3.2.field_2.0.1.field_6==0.9921875)) && (a4.0.field_3.2.field_2.0.2==2717166618) && (a4.0.field_3.2.field_2.0.3==`E_2_2)) && ((a4.0.field_3.2.field_2.1.0==190) && ((a4.0.field_3.2.field_2.1.1.field_1==202281623093248) && (a4.0.field_3.2.field_2.1.1.field_2==24) && (a4.0.field_3.2.field_2.1.1.field_3==2205245826) && (a4.0.field_3.2.field_2.1.1.field_4==163) && (a4.0.field_3.2.field_2.1.1.field_5==-0.375) && (a4.0.field_3.2.field_2.1.1.field_6==-1.1875)) && (a4.0.field_3.2.field_2.1.2==2520606304) && (a4.0.field_3.2.field_2.1.3==`E_2_5))) && (a4.0.field_3.2.field_3==81504045891584) && (a4.0.field_3.2.field_4==0.640625) && (a4.0.field_3.2.field_5==215)) && ((a4.0.field_3.3.0==223) && (a4.0.field_3.3.1==-0.78125))) && ((a4.0.field_4.0==1663866964) && ((a4.0.field_4.1.field_1==137293949304832) && (a4.0.field_4.1.field_2==0.4765625) && (a4.0.field_4.1.field_3==3008888856) && (a4.0.field_4.1.field_4==3504606106) && (a4.0.field_4.1.field_5==271175374602240)) && (a4.0.field_4.2==3418972692) && (a4.0.field_4.3==378265792)) && ((a4.0.field_5.0==1683646014) && (a4.0.field_5.1==2279286742) && (a4.0.field_5.2==1017297018))) && (a4.1==2.19921875) && ((a4.2.field_1==-2.6015625) && (a4.2.field_2==0.484375)))
+ goto bad
+ ;;
+
+ if !(a5==`E_82_5)
+ goto bad
+ ;;
+
+ if !(a6==2225998788)
+ goto bad
+ ;;
+
+ -> [.field_1=`E_64_2,.field_2=[.field_1=-1.3828125,.field_2=61112946,.field_3=190,.field_4=32961124368384,.field_5=1304765990,.field_6=126354513723392],.field_3=((`E_56_7,766433818,[.field_1=`E_26_8,.field_2=88,.field_3=(187522956001280,`E_41_2,197628948,[.field_1=135725845053440,.field_2=(57,1.078125),.field_3=160515871997952,.field_4=(0.359375,104917964292096,[.field_1=[.field_1=206,.field_2=-0.80078125,.field_3=138,.field_4=103853490044928,.field_5=`E_2_5,.field_6=1457574106],.field_2=(-2.7734375,269868276908032,241406633312256),.field_3=(-1.515625,`E_2_4)],[.field_1=(64443498,-0.5,0.4375,(0.8125,`E_2_3)),.field_2=241])]),.field_4=[.field_1=-0.921875,.field_2=[.field_1=(-0.265625,`E_2_1),.field_2=255656365260800,.field_3=(0.8125,`E_2_5),.field_4=-1.03125,.field_5=226905594134528,.field_6=(-1.796875,110809697746944,182448222502912)],.field_3=(2.66015625,-1.53125,5891210215424),.field_4=1.15234375,.field_5=`E_11_3,.field_6=0.47265625],.field_5=69698034,.field_6=-0.90625],(`E_19_8,[.field_1=-2.6484375,.field_2=[.field_1=`E_18_2,.field_2=3254220376,.field_3=-1.015625,.field_4=`E_19_7,.field_5=(2.1328125,0.1328125,[.field_1=-0.203125,.field_2=[.field_1=(0.09375,`E_2_6),.field_2=106879791398912,.field_3=(0.75,`E_2_3),.field_4=0.0,.field_5=182488977768448,.field_6=(-2.75,81305866600448,230134322036736)],.field_3=(3.55078125,0.1875,59469043073024),.field_4=0.80078125,.field_5=`E_11_3,.field_6=-2.1796875]),.field_6=((0.96484375,12986746798080,177073504780288),-0.984375,[.field_1=267860066,.field_2=((215,[.field_1=23720503803904,.field_2=57,.field_3=65633880,.field_4=215,.field_5=-0.7734375,.field_6=2.4453125],2639863120,`E_2_6),(63,[.field_1=41253608357888,.field_2=228,.field_3=2702252196,.field_4=226,.field_5=-1.72265625,.field_6=-2.890625],2297595192,`E_2_3)),.field_3=117994529226752,.field_4=-0.46875,.field_5=97],(250,0.203125))],.field_3=277277376118785,.field_4=-0.96484375],0.890625,0.84765625)),[.field_1=-0.234375,.field_2=[.field_1=-0.671875,.field_2=([.field_1=2.2890625,.field_2=[.field_1=`E_18_5,.field_2=1104171190,.field_3=1.1875,.field_4=`E_19_6,.field_5=(-1.77734375,1.7109375,[.field_1=-1.21875,.field_2=[.field_1=(-1.296875,`E_2_3),.field_2=7804846080000,.field_3=(-0.515625,`E_2_3),.field_4=1.3125,.field_5=271269411815424,.field_6=(-1.0390625,55968624803840,26483097731072)],.field_3=(3.140625,0.390625,144477626957824),.field_4=-1.91796875,.field_5=`E_11_1,.field_6=-0.0703125]),.field_6=((2.48828125,279887108243457,244326716669952),0.328125,[.field_1=2589946058,.field_2=((74,[.field_1=4995850829824,.field_2=101,.field_3=3334065356,.field_4=70,.field_5=-1.7734375,.field_6=-0.1171875],2350206898,`E_2_6),(152,[.field_1=177982762647552,.field_2=83,.field_3=2674374442,.field_4=247,.field_5=2.39453125,.field_6=0.328125],3997067408,`E_2_2)),.field_3=208487505199104,.field_4=-1.5,.field_5=19],(94,0.125))],.field_3=92775544913920,.field_4=-0.96484375],-3.6796875,41625584271360),.field_3=1594096200,.field_4=1.25],.field_3=[.field_1=1.96484375],.field_4=3.70703125,.field_5=[.field_1=-0.984375],.field_6=([.field_1=216482604515328,.field_2=(94,1.453125),.field_3=12366441873408,.field_4=(0.453125,126556415852544,[.field_1=[.field_1=151,.field_2=1.05859375,.field_3=11,.field_4=62897387208704,.field_5=`E_2_6,.field_6=2865786744],.field_2=(-2.421875,216082708430848,58856103739392),.field_3=(-1.1875,`E_2_6)],[.field_1=(4079339738,-1.109375,-1.515625,(-0.578125,`E_2_5)),.field_2=88])],0.609375,200682606166016,126)]),.field_4=(([.field_1=18371726016512,.field_2=(156,-0.796875),.field_3=11102142726144,.field_4=(0.9375,3949612367872,[.field_1=[.field_1=104,.field_2=2.0546875,.field_3=14,.field_4=14837206614016,.field_5=`E_2_2,.field_6=2787867058],.field_2=(1.46875,72374060974080,245603042721792),.field_3=(0.46875,`E_2_6)],[.field_1=(270200364,-0.265625,-1.15625,(-1.0,`E_2_3)),.field_2=21])],-0.53125,105323182686208,102),-3.8046875),.field_5=(0.6875,26654515134464,[.field_1=[.field_1=185,.field_2=-2.23828125,.field_3=40,.field_4=94730623254528,.field_5=`E_2_3,.field_6=856451172],.field_2=(-2.8515625,132974633549824,171401795600384),.field_3=(1.25,`E_2_4)],[.field_1=(2841781650,-1.21875,-1.0,(-0.46875,`E_2_3)),.field_2=13])]
+
+:bad
+ -> [.field_1=`E_64_9,.field_2=[.field_1=-1.625,.field_2=493732968,.field_3=106,.field_4=119753663578112,.field_5=1283596086,.field_6=217997951107072],.field_3=((`E_56_4,2699322070,[.field_1=`E_26_2,.field_2=232,.field_3=(180662919102464,`E_41_6,17131048,[.field_1=103630696611840,.field_2=(20,-1.0625),.field_3=198361319997440,.field_4=(0.125,102277325520896,[.field_1=[.field_1=214,.field_2=-3.80859375,.field_3=248,.field_4=207630602338304,.field_5=`E_2_4,.field_6=2722826334],.field_2=(2.72265625,203418755792896,276891418099712),.field_3=(-0.890625,`E_2_5)],[.field_1=(4221742598,0.03125,1.21875,(-0.3125,`E_2_6)),.field_2=48])]),.field_4=[.field_1=-1.03125,.field_2=[.field_1=(-0.1875,`E_2_5),.field_2=90774124494848,.field_3=(-0.46875,`E_2_3),.field_4=-0.96875,.field_5=99977078505472,.field_6=(2.5546875,76855133863936,146126020149248)],.field_3=(0.25,0.984375,248403345670144),.field_4=-1.00390625,.field_5=`E_11_5,.field_6=2.7734375],.field_5=468749822,.field_6=-0.40625],(`E_19_4,[.field_1=3.57421875,.field_2=[.field_1=`E_18_1,.field_2=2029298424,.field_3=-1.03125,.field_4=`E_19_7,.field_5=(-0.34765625,1.4140625,[.field_1=0.8125,.field_2=[.field_1=(1.109375,`E_2_4),.field_2=266026004119552,.field_3=(-1.484375,`E_2_1),.field_4=0.828125,.field_5=98825356050432,.field_6=(-0.7265625,62214033113088,152598466789376)],.field_3=(2.05078125,-1.421875,229453600653312),.field_4=-1.70703125,.field_5=`E_11_4,.field_6=1.00390625]),.field_6=((-2.625,267777080688640,128034704850944),-1.515625,[.field_1=259736516,.field_2=((211,[.field_1=142852680843264,.field_2=4,.field_3=3936173516,.field_4=250,.field_5=-2.41796875,.field_6=2.21484375],1870163782,`E_2_6),(138,[.field_1=81686317760512,.field_2=124,.field_3=2083117010,.field_4=81,.field_5=0.32421875,.field_6=-1.9765625],2877241598,`E_2_6)),.field_3=131784260321280,.field_4=-0.90625,.field_5=181],(132,-1.484375))],.field_3=279307994923009,.field_4=-3.15625],0.484375,-2.6875)),[.field_1=-1.421875,.field_2=[.field_1=-3.04296875,.field_2=([.field_1=-2.5390625,.field_2=[.field_1=`E_18_1,.field_2=4015984290,.field_3=0.578125,.field_4=`E_19_2,.field_5=(2.74609375,1.26953125,[.field_1=-0.578125,.field_2=[.field_1=(0.421875,`E_2_1),.field_2=52941939802112,.field_3=(-1.015625,`E_2_3),.field_4=0.546875,.field_5=185704319811584,.field_6=(1.6171875,60560770203648,255274547019776)],.field_3=(-0.9609375,-1.0625,105583830630400),.field_4=0.6953125,.field_5=`E_11_6,.field_6=3.05859375]),.field_6=((0.90625,244012407324672,277955523772417),-0.71875,[.field_1=99410342,.field_2=((8,[.field_1=107724715327488,.field_2=50,.field_3=613651762,.field_4=81,.field_5=2.9765625,.field_6=-1.80859375],726988920,`E_2_4),(149,[.field_1=226335956926464,.field_2=164,.field_3=3320618414,.field_4=250,.field_5=-3.6796875,.field_6=-0.4140625],2742774408,`E_2_5)),.field_3=186327866408960,.field_4=0.140625,.field_5=28],(211,1.328125))],.field_3=197574553108480,.field_4=1.56640625],2.4375,89527896899584),.field_3=2436176174,.field_4=0.9375],.field_3=[.field_1=0.703125],.field_4=0.70703125,.field_5=[.field_1=1.046875],.field_6=([.field_1=273811777912832,.field_2=(201,1.5),.field_3=81778086379520,.field_4=(0.53125,69212746940416,[.field_1=[.field_1=117,.field_2=-2.25,.field_3=212,.field_4=74283012456448,.field_5=`E_2_6,.field_6=2594542348],.field_2=(-2.01171875,248411503984640,14328046682112),.field_3=(1.203125,`E_2_4)],[.field_1=(3061766252,-0.234375,0.734375,(0.125,`E_2_3)),.field_2=111])],-0.8125,44898282504192,192)]),.field_4=(([.field_1=226898411388928,.field_2=(245,-0.5),.field_3=111595632590848,.field_4=(0.921875,88533462941696,[.field_1=[.field_1=47,.field_2=2.1171875,.field_3=154,.field_4=240405809463296,.field_5=`E_2_1,.field_6=278604200],.field_2=(-3.390625,238588698165248,92541617307648),.field_3=(1.3125,`E_2_3)],[.field_1=(2454693200,0.953125,0.015625,(-0.140625,`E_2_3)),.field_2=55])],1.1875,42958779449344,193),-2.1328125),.field_5=(0.265625,279496136720385,[.field_1=[.field_1=99,.field_2=-1.265625,.field_3=204,.field_4=97330511872000,.field_5=`E_2_5,.field_6=839847220],.field_2=(-2.8203125,279855182249985,107102583652352),.field_3=(1.28125,`E_2_4)],[.field_1=(1007589972,1.34375,0.515625,(-0.625,`E_2_5)),.field_2=254])]
+}
+
+const fn_19_myr = { a1 : uint64, a2 : uint8
+ if !(a1==158887773995008)
+ goto bad
+ ;;
+
+ if !(a2==186)
+ goto bad
+ ;;
+
+ -> 113
+
+:bad
+ -> 241
+}
+
+const fn_20_myr = { a1 : (uint8,uint32,uint8), a2 : t54, a3 : (flt32,t21,t101,flt64), a4 : t30, a5 : flt32, a6 : t100, a7 : t82, a8 : (uint32,uint32,uint32), a9 : t19
+ if !((a1.0==31) && (a1.1==784492568) && (a1.2==176))
+ goto bad
+ ;;
+
+ if !((a2.field_1==-0.03125) && (a2.field_2==`E_2_6) && (a2.field_3==`E_43_2))
+ goto bad
+ ;;
+
+ if !((a3.0==-0.953125) && ((a3.1.field_1==`E_18_1) && (a3.1.field_2==3892333532) && (a3.1.field_3==0.921875) && (a3.1.field_4==`E_19_3) && ((a3.1.field_5.0==2.6015625) && (a3.1.field_5.1==-0.328125) && ((a3.1.field_5.2.field_1==0.3125) && (((a3.1.field_5.2.field_2.field_1.0==0.34375) && (a3.1.field_5.2.field_2.field_1.1==`E_2_3)) && (a3.1.field_5.2.field_2.field_2==231543623516160) && ((a3.1.field_5.2.field_2.field_3.0==1.046875) && (a3.1.field_5.2.field_2.field_3.1==`E_2_1)) && (a3.1.field_5.2.field_2.field_4==1.078125) && (a3.1.field_5.2.field_2.field_5==158249674997760) && ((a3.1.field_5.2.field_2.field_6.0==-3.65234375) && (a3.1.field_5.2.field_2.field_6.1==81418480910336) && (a3.1.field_5.2.field_2.field_6.2==142554027130880))) && ((a3.1.field_5.2.field_3.0==3.359375) && (a3.1.field_5.2.field_3.1==1.21875) && (a3.1.field_5.2.field_3.2==57638369755136)) && (a3.1.field_5.2.field_4==-3.484375) && (a3.1.field_5.2.field_5==`E_11_1) && (a3.1.field_5.2.field_6==3.09765625))) && (((a3.1.field_6.0.0==0.51171875) && (a3.1.field_6.0.1==165765595136000) && (a3.1.field_6.0.2==108768946552832)) && (a3.1.field_6.1==-0.25) && ((a3.1.field_6.2.field_1==3389738472) && (((a3.1.field_6.2.field_2.0.0==18) && ((a3.1.field_6.2.field_2.0.1.field_1==117849701351424) && (a3.1.field_6.2.field_2.0.1.field_2==251) && (a3.1.field_6.2.field_2.0.1.field_3==595888978) && (a3.1.field_6.2.field_2.0.1.field_4==83) && (a3.1.field_6.2.field_2.0.1.field_5==2.171875) && (a3.1.field_6.2.field_2.0.1.field_6==-0.47265625)) && (a3.1.field_6.2.field_2.0.2==678334346) && (a3.1.field_6.2.field_2.0.3==`E_2_2)) && ((a3.1.field_6.2.field_2.1.0==10) && ((a3.1.field_6.2.field_2.1.1.field_1==215416273371136) && (a3.1.field_6.2.field_2.1.1.field_2==175) && (a3.1.field_6.2.field_2.1.1.field_3==3712234320) && (a3.1.field_6.2.field_2.1.1.field_4==153) && (a3.1.field_6.2.field_2.1.1.field_5==1.58203125) && (a3.1.field_6.2.field_2.1.1.field_6==1.640625)) && (a3.1.field_6.2.field_2.1.2==691527554) && (a3.1.field_6.2.field_2.1.3==`E_2_5))) && (a3.1.field_6.2.field_3==281208706433025) && (a3.1.field_6.2.field_4==0.53125) && (a3.1.field_6.2.field_5==170)) && ((a3.1.field_6.3.0==226) && (a3.1.field_6.3.1==1.171875)))) && ((a3.2.field_1==0.6875)) && (a3.3==3.54296875))
+ goto bad
+ ;;
+
+ if !((a4.field_1==0.328125) && ((a4.field_2.field_1==`E_18_2) && (a4.field_2.field_2==3038599074) && (a4.field_2.field_3==-0.53125) && (a4.field_2.field_4==`E_19_2) && ((a4.field_2.field_5.0==-2.921875) && (a4.field_2.field_5.1==-1.4453125) && ((a4.field_2.field_5.2.field_1==-0.421875) && (((a4.field_2.field_5.2.field_2.field_1.0==-0.15625) && (a4.field_2.field_5.2.field_2.field_1.1==`E_2_1)) && (a4.field_2.field_5.2.field_2.field_2==226740145750016) && ((a4.field_2.field_5.2.field_2.field_3.0==0.34375) && (a4.field_2.field_5.2.field_2.field_3.1==`E_2_2)) && (a4.field_2.field_5.2.field_2.field_4==1.09375) && (a4.field_2.field_5.2.field_2.field_5==105371665039360) && ((a4.field_2.field_5.2.field_2.field_6.0==-3.7890625) && (a4.field_2.field_5.2.field_2.field_6.1==200291522183168) && (a4.field_2.field_5.2.field_2.field_6.2==273916916662272))) && ((a4.field_2.field_5.2.field_3.0==1.69921875) && (a4.field_2.field_5.2.field_3.1==-0.25) && (a4.field_2.field_5.2.field_3.2==37761889730560)) && (a4.field_2.field_5.2.field_4==-0.37109375) && (a4.field_2.field_5.2.field_5==`E_11_3) && (a4.field_2.field_5.2.field_6==2.359375))) && (((a4.field_2.field_6.0.0==-2.98828125) && (a4.field_2.field_6.0.1==85889758134272) && (a4.field_2.field_6.0.2==189673236725760)) && (a4.field_2.field_6.1==1.0625) && ((a4.field_2.field_6.2.field_1==1108811158) && (((a4.field_2.field_6.2.field_2.0.0==113) && ((a4.field_2.field_6.2.field_2.0.1.field_1==34340434870272) && (a4.field_2.field_6.2.field_2.0.1.field_2==204) && (a4.field_2.field_6.2.field_2.0.1.field_3==2563547796) && (a4.field_2.field_6.2.field_2.0.1.field_4==212) && (a4.field_2.field_6.2.field_2.0.1.field_5==-2.8828125) && (a4.field_2.field_6.2.field_2.0.1.field_6==2.53125)) && (a4.field_2.field_6.2.field_2.0.2==4104468038) && (a4.field_2.field_6.2.field_2.0.3==`E_2_3)) && ((a4.field_2.field_6.2.field_2.1.0==48) && ((a4.field_2.field_6.2.field_2.1.1.field_1==114490489438208) && (a4.field_2.field_6.2.field_2.1.1.field_2==137) && (a4.field_2.field_6.2.field_2.1.1.field_3==4274611490) && (a4.field_2.field_6.2.field_2.1.1.field_4==4) && (a4.field_2.field_6.2.field_2.1.1.field_5==2.87109375) && (a4.field_2.field_6.2.field_2.1.1.field_6==2.67578125)) && (a4.field_2.field_6.2.field_2.1.2==1675682774) && (a4.field_2.field_6.2.field_2.1.3==`E_2_6))) && (a4.field_2.field_6.2.field_3==155964017999872) && (a4.field_2.field_6.2.field_4==-0.421875) && (a4.field_2.field_6.2.field_5==153)) && ((a4.field_2.field_6.3.0==249) && (a4.field_2.field_6.3.1==-0.015625)))) && (a4.field_3==14699609849856) && (a4.field_4==-0.8125))
+ goto bad
+ ;;
+
+ if !(a5==-1.03125)
+ goto bad
+ ;;
+
+ if !(((((a6.field_1.field_1.0.field_1==-1.546875) && ((a6.field_1.field_1.0.field_2.field_1==3.58984375) && (((a6.field_1.field_1.0.field_2.field_2.0.field_1==-0.6640625) && ((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_1==`E_18_2) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_2==3261231628) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_3==-1.53125) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_4==`E_19_8) && ((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.0==3.0546875) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.1==2.625) && ((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_1==1.296875) && (((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_1.0==-0.515625) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_1.1==`E_2_1)) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_2==90256515661824) && ((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_3.0==1.1875) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_3.1==`E_2_1)) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_4==-0.515625) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_5==209147190050816) && ((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_6.0==2.83984375) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_6.1==204519943045120) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_2.field_6.2==176046915452928))) && ((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_3.0==-0.64453125) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_3.1==-1.28125) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_3.2==63390518214656)) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_4==-0.8359375) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_5==`E_11_4) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_5.2.field_6==-1.73828125))) && (((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.0.0==2.2578125) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.0.1==249508094672896) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.0.2==125875889766400)) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.1==-0.03125) && ((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_1==3690927442) && (((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.0==116) && ((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_1==126408480784384) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_2==70) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_3==2502906064) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_4==53) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_5==-1.66796875) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_6==0.3203125)) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.2==425223464) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.0.3==`E_2_1)) && ((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.0==116) && ((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_1==122683318730752) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_2==37) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_3==3331048268) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_4==79) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_5==-2.58984375) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_6==-3.03125)) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.2==234747400) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_2.1.3==`E_2_1))) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_3==236050942525440) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_4==0.5625) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.2.field_5==115)) && ((a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.3.0==237) && (a6.field_1.field_1.0.field_2.field_2.0.field_2.field_6.3.1==1.265625)))) && (a6.field_1.field_1.0.field_2.field_2.0.field_3==237145589940224) && (a6.field_1.field_1.0.field_2.field_2.0.field_4==0.125)) && (a6.field_1.field_1.0.field_2.field_2.1==-2.48046875) && (a6.field_1.field_1.0.field_2.field_2.2==177709856587776)) && (a6.field_1.field_1.0.field_2.field_3==1727895586) && (a6.field_1.field_1.0.field_2.field_4==0.40625)) && ((a6.field_1.field_1.0.field_3.field_1==-2.9609375)) && (a6.field_1.field_1.0.field_4==-1.86328125) && ((a6.field_1.field_1.0.field_5.field_1==-1.3125)) && (((a6.field_1.field_1.0.field_6.0.field_1==160533698838528) && ((a6.field_1.field_1.0.field_6.0.field_2.0==137) && (a6.field_1.field_1.0.field_6.0.field_2.1==0.53125)) && (a6.field_1.field_1.0.field_6.0.field_3==219195279015936) && ((a6.field_1.field_1.0.field_6.0.field_4.0==1.015625) && (a6.field_1.field_1.0.field_6.0.field_4.1==58457369870336) && (((a6.field_1.field_1.0.field_6.0.field_4.2.field_1.field_1==224) && (a6.field_1.field_1.0.field_6.0.field_4.2.field_1.field_2==3.4765625) && (a6.field_1.field_1.0.field_6.0.field_4.2.field_1.field_3==169) && (a6.field_1.field_1.0.field_6.0.field_4.2.field_1.field_4==88271065972736) && (a6.field_1.field_1.0.field_6.0.field_4.2.field_1.field_5==`E_2_1) && (a6.field_1.field_1.0.field_6.0.field_4.2.field_1.field_6==1881912782)) && ((a6.field_1.field_1.0.field_6.0.field_4.2.field_2.0==0.98046875) && (a6.field_1.field_1.0.field_6.0.field_4.2.field_2.1==73571505274880) && (a6.field_1.field_1.0.field_6.0.field_4.2.field_2.2==154864035561472)) && ((a6.field_1.field_1.0.field_6.0.field_4.2.field_3.0==0.5625) && (a6.field_1.field_1.0.field_6.0.field_4.2.field_3.1==`E_2_2))) && (((a6.field_1.field_1.0.field_6.0.field_4.3.field_1.0==1669921896) && (a6.field_1.field_1.0.field_6.0.field_4.3.field_1.1==-0.4375) && (a6.field_1.field_1.0.field_6.0.field_4.3.field_1.2==0.765625) && ((a6.field_1.field_1.0.field_6.0.field_4.3.field_1.3.0==-0.578125) && (a6.field_1.field_1.0.field_6.0.field_4.3.field_1.3.1==`E_2_2))) && (a6.field_1.field_1.0.field_6.0.field_4.3.field_2==149)))) && (a6.field_1.field_1.0.field_6.1==1.046875) && (a6.field_1.field_1.0.field_6.2==126107861778432) && (a6.field_1.field_1.0.field_6.3==55))) && (a6.field_1.field_1.1==1011521230) && (a6.field_1.field_1.2==334865810)) && (a6.field_1.field_2==-1.265625) && (a6.field_1.field_3==139944064581632) && (a6.field_1.field_4==-2.64453125) && (a6.field_1.field_5==232)) && (a6.field_2==9370746880000) && (a6.field_3==2.56640625) && (a6.field_4==1.46484375) && ((a6.field_5.0==`E_19_7) && (a6.field_5.1==155644616)))
+ goto bad
+ ;;
+
+ if !(a7==`E_82_5)
+ goto bad
+ ;;
+
+ if !((a8.0==588421914) && (a8.1==2163719396) && (a8.2==664040668))
+ goto bad
+ ;;
+
+ if !(a9==`E_19_4)
+ goto bad
+ ;;
+
+ -> 139
+
+:bad
+ -> 48
+}
+
diff --git a/test/abi/006_main.myr b/test/abi/006_main.myr
new file mode 100644
index 0000000..0e7dffb
--- /dev/null
+++ b/test/abi/006_main.myr
@@ -0,0 +1,339 @@
+/* seed = 1591565643 */
+use std
+use "006_types"
+use "006_in-myr"
+use "006_in-c"
+
+const main = {
+ /* myr calling myr */
+ var a_1_1 : uint32 = 3331313618
+ var a_1_2 : (uint8,t1,uint32,t2) = (163,[.field_1=112669747445760,.field_2=68,.field_3=2961163238,.field_4=144,.field_5=3.1171875,.field_6=-0.77734375],2638767956,`E_2_3)
+ var a_1_3 : t2 = `E_2_1
+ var a_1_4 : flt32 = 0.875
+ var a_1_5 : uint8 = 63
+ var ret_1 : t7 = fn_1_myr(a_1_1, a_1_2, a_1_3, a_1_4, a_1_5)
+ if !(((ret_1.field_1.field_1==156) && (ret_1.field_1.field_2==2.83203125) && (ret_1.field_1.field_3==67) && (ret_1.field_1.field_4==143760266887168) && (ret_1.field_1.field_5==`E_2_6) && (ret_1.field_1.field_6==2927029180)) && ((ret_1.field_2.0==-2.55078125) && (ret_1.field_2.1==159665344872448) && (ret_1.field_2.2==199843724394496)) && ((ret_1.field_3.0==-0.625) && (ret_1.field_3.1==`E_2_6)))
+ std.put("myr_to_myr 1 failed\n")
+ std.exit(1)
+ ;;
+ var a_2_1 : t7 = [.field_1=[.field_1=195,.field_2=-2.625,.field_3=107,.field_4=250193960632320,.field_5=`E_2_1,.field_6=3277066896],.field_2=(0.01171875,271113481355264,7202154348544),.field_3=(-1.53125,`E_2_6)]
+ var a_2_2 : ((uint8,t1,uint32,t2),(uint8,t1,uint32,t2)) = ((75,[.field_1=149688830001152,.field_2=166,.field_3=4203656652,.field_4=184,.field_5=1.6796875,.field_6=-2.66015625],2647535284,`E_2_3),(60,[.field_1=234959706259456,.field_2=30,.field_3=3070502934,.field_4=195,.field_5=2.9921875,.field_6=2.96484375],803402210,`E_2_5))
+ var a_2_3 : t12 = [.field_1=0.203125,.field_2=[.field_1=(-0.140625,`E_2_2),.field_2=151793905303552,.field_3=(0.75,`E_2_1),.field_4=-0.875,.field_5=59595538169856,.field_6=(-0.51171875,90586118225920,47799910137856)],.field_3=(-3.4140625,0.671875,185693112107008),.field_4=-1.23828125,.field_5=`E_11_1,.field_6=2.890625]
+ var a_2_4 : flt64 = 0.94921875
+ var a_2_5 : ((flt64,uint64,uint64),flt32,t13,(uint8,flt32)) = ((2.03515625,29216526696448,236353793556480),1.09375,[.field_1=4181791332,.field_2=((44,[.field_1=132595126632448,.field_2=171,.field_3=3948447728,.field_4=220,.field_5=-3.69140625,.field_6=-2.40625],3172323970,`E_2_5),(224,[.field_1=275519312887808,.field_2=53,.field_3=3186715686,.field_4=144,.field_5=-2.5703125,.field_6=-3.41015625],1867717394,`E_2_5)),.field_3=35551921045504,.field_4=-0.203125,.field_5=101],(102,1.15625))
+ var a_2_6 : t13 = [.field_1=1580005156,.field_2=((51,[.field_1=266965320073216,.field_2=53,.field_3=212878900,.field_4=236,.field_5=-0.921875,.field_6=0.16015625],2543329268,`E_2_2),(98,[.field_1=174501380489216,.field_2=126,.field_3=522689612,.field_4=110,.field_5=-1.0234375,.field_6=-3.12109375],2756676114,`E_2_1)),.field_3=186819725099008,.field_4=0.984375,.field_5=44]
+ var a_2_7 : uint32 = 2083878374
+ var ret_2 : flt32 = fn_2_myr(a_2_1, a_2_2, a_2_3, a_2_4, a_2_5, a_2_6, a_2_7)
+ if !(ret_2==0.109375)
+ std.put("myr_to_myr 2 failed\n")
+ std.exit(1)
+ ;;
+ var a_3_1 : (flt64,uint64,uint64) = (0.36328125,217080895242240,146180381081600)
+ var a_3_2 : ((flt64,uint64,uint64),flt32,t13,(uint8,flt32)) = ((0.5390625,117399373217792,101569454014464),-1.296875,[.field_1=39734246,.field_2=((169,[.field_1=133031533740032,.field_2=161,.field_3=668802928,.field_4=152,.field_5=-3.4296875,.field_6=0.1953125],2984403120,`E_2_5),(162,[.field_1=100930591260672,.field_2=132,.field_3=3484222870,.field_4=117,.field_5=-3.8984375,.field_6=-3.02734375],4255148568,`E_2_6)),.field_3=229240590827520,.field_4=-0.328125,.field_5=51],(92,-1.046875))
+ var a_3_3 : (uint32,flt32,flt32,(flt32,t2)) = (1212401592,-1.046875,1.109375,(1.296875,`E_2_2))
+ var a_3_4 : (uint32,flt32,flt32,(flt32,t2)) = (3641606114,-1.125,0.546875,(-0.046875,`E_2_3))
+ var a_3_5 : uint64 = 83130758201344
+ var a_3_6 : t17 = [.field_1=(954818626,-0.5,-0.703125,(0.265625,`E_2_4)),.field_2=254]
+ var a_3_7 : t12 = [.field_1=-0.671875,.field_2=[.field_1=(0.671875,`E_2_1),.field_2=186559912869888,.field_3=(1.546875,`E_2_2),.field_4=0.046875,.field_5=255023204139008,.field_6=(1.13671875,270028714934272,247333204000768)],.field_3=(-0.0546875,-1.25,156053374763008),.field_4=3.73046875,.field_5=`E_11_4,.field_6=1.92578125]
+ var ret_3 : flt32 = fn_3_myr(a_3_1, a_3_2, a_3_3, a_3_4, a_3_5, a_3_6, a_3_7)
+ if !(ret_3==0.171875)
+ std.put("myr_to_myr 3 failed\n")
+ std.exit(1)
+ ;;
+ var a_4_1 : t1 = [.field_1=254108937224192,.field_2=215,.field_3=1243252406,.field_4=124,.field_5=-1.1875,.field_6=-1.68359375]
+ var a_4_2 : t21 = [.field_1=`E_18_8,.field_2=4113752024,.field_3=0.5,.field_4=`E_19_5,.field_5=(-0.3203125,1.33984375,[.field_1=-0.171875,.field_2=[.field_1=(-0.625,`E_2_6),.field_2=262778588495872,.field_3=(0.46875,`E_2_2),.field_4=1.125,.field_5=182381629145088,.field_6=(2.4609375,139713139179520,225645534511104)],.field_3=(-3.54296875,-1.171875,78173635870720),.field_4=2.28515625,.field_5=`E_11_4,.field_6=-0.7890625]),.field_6=((-0.01953125,23439019999232,3807452332032),-0.625,[.field_1=233931326,.field_2=((154,[.field_1=198616597528576,.field_2=197,.field_3=2016579036,.field_4=169,.field_5=-0.5546875,.field_6=-3.796875],526208716,`E_2_1),(118,[.field_1=119263763103744,.field_2=15,.field_3=1698145536,.field_4=18,.field_5=-1.51171875,.field_6=-1.921875],3097128252,`E_2_1)),.field_3=211270742966272,.field_4=0.078125,.field_5=42],(225,0.9375))]
+ var a_4_3 : t23 = [.field_1=190020550524928,.field_2=(11,-1.0625),.field_3=210612318502912,.field_4=(-0.46875,116393468362752,[.field_1=[.field_1=120,.field_2=-0.21484375,.field_3=42,.field_4=279254693969921,.field_5=`E_2_4,.field_6=185092378],.field_2=(2.28515625,168886583296000,165671684931584),.field_3=(1.546875,`E_2_1)],[.field_1=(933489974,-0.921875,1.0,(1.265625,`E_2_1)),.field_2=72])]
+ var a_4_4 : flt64 = -1.47265625
+ var a_4_5 : (flt32,t2) = (0.359375,`E_2_4)
+ var a_4_6 : uint64 = 106223398289408
+ var a_4_7 : flt64 = -1.80078125
+ var ret_4 : t2 = fn_4_myr(a_4_1, a_4_2, a_4_3, a_4_4, a_4_5, a_4_6, a_4_7)
+ if !(ret_4==`E_2_4)
+ std.put("myr_to_myr 4 failed\n")
+ std.exit(1)
+ ;;
+ var a_5_1 : uint32 = 490829306
+ var a_5_2 : t24 = `E_24_2
+ var a_5_3 : flt64 = -1.296875
+ var a_5_4 : (t24,(flt32,t2)) = (`E_24_8,(0.1875,`E_2_3))
+ var a_5_5 : uint64 = 245616036151296
+ var a_5_6 : t28 = [.field_1=((2.08203125,35857928683520,93232914235392),-0.609375,[.field_1=1442943954,.field_2=((49,[.field_1=243496050229248,.field_2=211,.field_3=1781303846,.field_4=188,.field_5=1.796875,.field_6=2.92578125],961004516,`E_2_2),(142,[.field_1=24547072671744,.field_2=51,.field_3=2197818536,.field_4=124,.field_5=-2.42578125,.field_6=-3.234375],3597667158,`E_2_5)),.field_3=212450688237568,.field_4=-0.625,.field_5=212],(40,1.328125)),.field_2=`E_26_3,.field_3=[.field_1=((3.07421875,82227144294400,7948002787328),-1.5,[.field_1=2677308022,.field_2=((85,[.field_1=100333243203584,.field_2=209,.field_3=846728032,.field_4=47,.field_5=-2.0859375,.field_6=3.3984375],3924268624,`E_2_1),(40,[.field_1=58951057276928,.field_2=170,.field_3=1055614716,.field_4=104,.field_5=-2.51953125,.field_6=1.8203125],2570174796,`E_2_2)),.field_3=160655520563200,.field_4=-0.515625,.field_5=4],(223,-1.0625)),.field_2=-1.015625,.field_3=0.9375,.field_4=119362880667648,.field_5=-1.359375,.field_6=25145455280128]]
+ var ret_5 : (uint8,t1,uint32,t2) = fn_5_myr(a_5_1, a_5_2, a_5_3, a_5_4, a_5_5, a_5_6)
+ if !((ret_5.0==182) && ((ret_5.1.field_1==220780978372608) && (ret_5.1.field_2==114) && (ret_5.1.field_3==2281314962) && (ret_5.1.field_4==251) && (ret_5.1.field_5==1.01171875) && (ret_5.1.field_6==2.06640625)) && (ret_5.2==3935630006) && (ret_5.3==`E_2_4))
+ std.put("myr_to_myr 5 failed\n")
+ std.exit(1)
+ ;;
+ var a_6_1 : t29 = `E_29_6
+ var a_6_2 : ((uint8,t1,uint32,t2),(uint8,t1,uint32,t2)) = ((44,[.field_1=82970538278912,.field_2=173,.field_3=1039620306,.field_4=98,.field_5=-2.87890625,.field_6=-1.3203125],415749068,`E_2_6),(198,[.field_1=176754788270080,.field_2=229,.field_3=1745396264,.field_4=100,.field_5=2.453125,.field_6=3.51171875],1134845604,`E_2_6))
+ var a_6_3 : (uint64,t30,t31,t32) = (45346413608960,[.field_1=1.5546875,.field_2=[.field_1=`E_18_1,.field_2=3388995392,.field_3=0.296875,.field_4=`E_19_4,.field_5=(-2.4921875,-0.69921875,[.field_1=-0.390625,.field_2=[.field_1=(-0.171875,`E_2_2),.field_2=21150251483136,.field_3=(-0.796875,`E_2_4),.field_4=1.375,.field_5=215200983941120,.field_6=(2.125,158112869384192,73351684030464)],.field_3=(1.25,-0.703125,212315222310912),.field_4=-3.5546875,.field_5=`E_11_2,.field_6=-0.61328125]),.field_6=((1.76171875,253745235361792,92984779997184),0.90625,[.field_1=2939679992,.field_2=((146,[.field_1=267681124188160,.field_2=98,.field_3=2525744200,.field_4=189,.field_5=3.75390625,.field_6=-3.81640625],3957579288,`E_2_3),(98,[.field_1=103318747742208,.field_2=176,.field_3=1976332274,.field_4=157,.field_5=-2.35546875,.field_6=-0.79296875],1628294370,`E_2_6)),.field_3=270327169941504,.field_4=0.4375,.field_5=161],(61,-0.328125))],.field_3=190305229078528,.field_4=-0.0859375],`E_31_8,[.field_1=1725236208])
+ var a_6_4 : (flt64,uint64,uint64) = (-2.41015625,21064454635520,201636834967552)
+ var a_6_5 : uint32 = 1968388378
+ var a_6_6 : flt32 = 1.203125
+ var a_6_7 : t11 = `E_11_5
+ var a_6_8 : (uint64,(flt32,t2),(uint32,flt32,uint64,uint32),t35) = (165571080617984,(0.671875,`E_2_6),(3138764072,-1.03125,50747094728704,2634664560),[.field_1=171685942525952,.field_2=2132603492])
+ var a_6_9 : (uint32,flt32,flt32,(flt32,t2)) = (849505522,0.28125,1.4375,(-0.4375,`E_2_3))
+ var a_6_10 : t37 = `E_37_6
+ var ret_6 : flt64 = fn_6_myr(a_6_1, a_6_2, a_6_3, a_6_4, a_6_5, a_6_6, a_6_7, a_6_8, a_6_9, a_6_10)
+ if !(ret_6==-0.47265625)
+ std.put("myr_to_myr 6 failed\n")
+ std.exit(1)
+ ;;
+ var a_7_1 : uint64 = 152633167446016
+ var a_7_2 : t38 = `E_38_5
+ var a_7_3 : uint8 = 21
+ var a_7_4 : ((t30,flt64,uint64),uint8,t1) = (([.field_1=3.7265625,.field_2=[.field_1=`E_18_8,.field_2=1660321984,.field_3=0.46875,.field_4=`E_19_6,.field_5=(3.328125,-3.79296875,[.field_1=-0.984375,.field_2=[.field_1=(-0.71875,`E_2_5),.field_2=107860547076096,.field_3=(0.984375,`E_2_3),.field_4=1.03125,.field_5=103537434427392,.field_6=(-0.41015625,257720167301120,23490682028032)],.field_3=(-3.0546875,0.671875,189976970788864),.field_4=0.015625,.field_5=`E_11_5,.field_6=-0.41796875]),.field_6=((0.0625,74574491418624,201256086929408),1.359375,[.field_1=1220073662,.field_2=((46,[.field_1=265659814641664,.field_2=66,.field_3=27449604,.field_4=84,.field_5=3.22265625,.field_6=1.9609375],1100098150,`E_2_6),(239,[.field_1=147943258062848,.field_2=159,.field_3=1367706340,.field_4=86,.field_5=3.89453125,.field_6=-2.74609375],3028657672,`E_2_3)),.field_3=18076800647168,.field_4=0.90625,.field_5=142],(199,-0.109375))],.field_3=15997300899840,.field_4=-0.2890625],3.20703125,158990308868096),186,[.field_1=175995273347072,.field_2=127,.field_3=52543290,.field_4=206,.field_5=-0.46875,.field_6=-1.7734375])
+ var a_7_5 : (uint64,t41,uint32,t23) = (207514518814720,`E_41_5,3821234462,[.field_1=206987958681600,.field_2=(247,0.296875),.field_3=50935557783552,.field_4=(-1.46875,107941368692736,[.field_1=[.field_1=188,.field_2=2.4140625,.field_3=216,.field_4=223121033003008,.field_5=`E_2_2,.field_6=3252553412],.field_2=(-1.11328125,48622469120,107679637045248),.field_3=(1.109375,`E_2_1)],[.field_1=(811385302,-0.640625,-0.671875,(-1.5625,`E_2_1)),.field_2=120])])
+ var a_7_6 : t43 = `E_43_4
+ var a_7_7 : uint8 = 164
+ var ret_7 : flt64 = fn_7_myr(a_7_1, a_7_2, a_7_3, a_7_4, a_7_5, a_7_6, a_7_7)
+ if !(ret_7==2.984375)
+ std.put("myr_to_myr 7 failed\n")
+ std.exit(1)
+ ;;
+ var ret_8 : t44 = fn_8_myr()
+ if !((ret_8.field_1==1.1875))
+ std.put("myr_to_myr 8 failed\n")
+ std.exit(1)
+ ;;
+ var a_9_1 : t45 = `E_45_6
+ var a_9_2 : t46 = [.field_1=4118535730]
+ var a_9_3 : t45 = `E_45_7
+ var a_9_4 : t47 = `E_47_2
+ var a_9_5 : t48 = `E_48_6
+ var a_9_6 : flt32 = -0.21875
+ var a_9_7 : flt64 = -1.4140625
+ var a_9_8 : uint8 = 162
+ var a_9_9 : uint64 = 170573566967808
+ var a_9_10 : t49 = `E_49_5
+ var ret_9 : t53 = fn_9_myr(a_9_1, a_9_2, a_9_3, a_9_4, a_9_5, a_9_6, a_9_7, a_9_8, a_9_9, a_9_10)
+ if !((ret_9.field_1==-0.46875) && ((ret_9.field_2.field_1==-0.28125) && (((ret_9.field_2.field_2.0.field_1==3.50390625) && ((ret_9.field_2.field_2.0.field_2.field_1==`E_18_9) && (ret_9.field_2.field_2.0.field_2.field_2==298590436) && (ret_9.field_2.field_2.0.field_2.field_3==0.359375) && (ret_9.field_2.field_2.0.field_2.field_4==`E_19_5) && ((ret_9.field_2.field_2.0.field_2.field_5.0==2.28125) && (ret_9.field_2.field_2.0.field_2.field_5.1==-0.7421875) && ((ret_9.field_2.field_2.0.field_2.field_5.2.field_1==-1.359375) && (((ret_9.field_2.field_2.0.field_2.field_5.2.field_2.field_1.0==-1.53125) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_2.field_1.1==`E_2_2)) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_2.field_2==159748598530048) && ((ret_9.field_2.field_2.0.field_2.field_5.2.field_2.field_3.0==1.328125) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_2.field_3.1==`E_2_2)) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_2.field_4==-0.546875) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_2.field_5==146401660239872) && ((ret_9.field_2.field_2.0.field_2.field_5.2.field_2.field_6.0==0.6875) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_2.field_6.1==228983429529600) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_2.field_6.2==105127852507136))) && ((ret_9.field_2.field_2.0.field_2.field_5.2.field_3.0==-0.84375) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_3.1==0.359375) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_3.2==153705986129920)) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_4==-1.80859375) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_5==`E_11_1) && (ret_9.field_2.field_2.0.field_2.field_5.2.field_6==3.28125))) && (((ret_9.field_2.field_2.0.field_2.field_6.0.0==1.96484375) && (ret_9.field_2.field_2.0.field_2.field_6.0.1==46322522914816) && (ret_9.field_2.field_2.0.field_2.field_6.0.2==96194539421696)) && (ret_9.field_2.field_2.0.field_2.field_6.1==1.46875) && ((ret_9.field_2.field_2.0.field_2.field_6.2.field_1==912869840) && (((ret_9.field_2.field_2.0.field_2.field_6.2.field_2.0.0==176) && ((ret_9.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_1==121643541069824) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_2==41) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_3==2802989848) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_4==128) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_5==2.15625) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.0.1.field_6==-2.44921875)) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.0.2==1259853458) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.0.3==`E_2_2)) && ((ret_9.field_2.field_2.0.field_2.field_6.2.field_2.1.0==64) && ((ret_9.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_1==86146197356544) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_2==90) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_3==3519983450) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_4==58) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_5==0.50390625) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.1.1.field_6==-2.765625)) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.1.2==3211917080) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_2.1.3==`E_2_1))) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_3==270136525455360) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_4==-1.1875) && (ret_9.field_2.field_2.0.field_2.field_6.2.field_5==139)) && ((ret_9.field_2.field_2.0.field_2.field_6.3.0==146) && (ret_9.field_2.field_2.0.field_2.field_6.3.1==0.53125)))) && (ret_9.field_2.field_2.0.field_3==228868406378496) && (ret_9.field_2.field_2.0.field_4==0.90234375)) && (ret_9.field_2.field_2.1==0.6796875) && (ret_9.field_2.field_2.2==158843979956224)) && (ret_9.field_2.field_3==3350000678) && (ret_9.field_2.field_4==1.34375)) && ((ret_9.field_3.field_1==0.25390625)) && (ret_9.field_4==3.8515625) && ((ret_9.field_5.field_1==0.375)) && (((ret_9.field_6.0.field_1==271586366193664) && ((ret_9.field_6.0.field_2.0==39) && (ret_9.field_6.0.field_2.1==-0.71875)) && (ret_9.field_6.0.field_3==131323353497600) && ((ret_9.field_6.0.field_4.0==1.34375) && (ret_9.field_6.0.field_4.1==129109365489664) && (((ret_9.field_6.0.field_4.2.field_1.field_1==194) && (ret_9.field_6.0.field_4.2.field_1.field_2==-3.05078125) && (ret_9.field_6.0.field_4.2.field_1.field_3==181) && (ret_9.field_6.0.field_4.2.field_1.field_4==18560330366976) && (ret_9.field_6.0.field_4.2.field_1.field_5==`E_2_3) && (ret_9.field_6.0.field_4.2.field_1.field_6==2277482010)) && ((ret_9.field_6.0.field_4.2.field_2.0==-1.61328125) && (ret_9.field_6.0.field_4.2.field_2.1==7613576773632) && (ret_9.field_6.0.field_4.2.field_2.2==190410156933120)) && ((ret_9.field_6.0.field_4.2.field_3.0==-1.4375) && (ret_9.field_6.0.field_4.2.field_3.1==`E_2_2))) && (((ret_9.field_6.0.field_4.3.field_1.0==2732417384) && (ret_9.field_6.0.field_4.3.field_1.1==-1.0625) && (ret_9.field_6.0.field_4.3.field_1.2==0.703125) && ((ret_9.field_6.0.field_4.3.field_1.3.0==-0.921875) && (ret_9.field_6.0.field_4.3.field_1.3.1==`E_2_5))) && (ret_9.field_6.0.field_4.3.field_2==137)))) && (ret_9.field_6.1==1.015625) && (ret_9.field_6.2==117426174033920) && (ret_9.field_6.3==25)))
+ std.put("myr_to_myr 9 failed\n")
+ std.exit(1)
+ ;;
+ var a_10_1 : flt32 = -1.4375
+ var a_10_2 : (t30,uint64,t54,flt32) = ([.field_1=3.2734375,.field_2=[.field_1=`E_18_8,.field_2=298655464,.field_3=-1.21875,.field_4=`E_19_6,.field_5=(-2.87109375,3.77734375,[.field_1=0.15625,.field_2=[.field_1=(1.03125,`E_2_5),.field_2=4317979738112,.field_3=(-0.375,`E_2_1),.field_4=-0.625,.field_5=119942540689408,.field_6=(1.90234375,84070773030912,265295537897472)],.field_3=(-1.5078125,-0.046875,247680725286912),.field_4=2.1484375,.field_5=`E_11_1,.field_6=-0.6015625]),.field_6=((-1.84765625,4068918427648,127361585905664),0.6875,[.field_1=4144444706,.field_2=((65,[.field_1=272708430856192,.field_2=226,.field_3=232384220,.field_4=9,.field_5=3.86328125,.field_6=1.4609375],735172550,`E_2_6),(61,[.field_1=558452178944,.field_2=178,.field_3=1092184810,.field_4=98,.field_5=1.76953125,.field_6=0.4453125],3483926918,`E_2_3)),.field_3=240867814670336,.field_4=0.796875,.field_5=198],(86,0.421875))],.field_3=155213721894912,.field_4=-0.5859375],15967994380288,[.field_1=0.984375,.field_2=`E_2_3,.field_3=`E_43_4],0.09375)
+ var a_10_3 : t43 = `E_43_4
+ var ret_10 : flt32 = fn_10_myr(a_10_1, a_10_2, a_10_3)
+ if !(ret_10==1.0)
+ std.put("myr_to_myr 10 failed\n")
+ std.exit(1)
+ ;;
+ var a_11_1 : ((t30,flt64,uint64),uint8,t1) = (([.field_1=-1.875,.field_2=[.field_1=`E_18_7,.field_2=3060119432,.field_3=1.4375,.field_4=`E_19_8,.field_5=(-3.14453125,1.421875,[.field_1=0.171875,.field_2=[.field_1=(1.28125,`E_2_1),.field_2=115694040645632,.field_3=(0.515625,`E_2_6),.field_4=0.78125,.field_5=83317925609472,.field_6=(-0.16015625,49194524213248,99285919989760)],.field_3=(-1.60546875,0.359375,242615500275712),.field_4=2.5546875,.field_5=`E_11_1,.field_6=0.984375]),.field_6=((-1.34375,86155678318592,125076719534080),1.15625,[.field_1=2526692668,.field_2=((243,[.field_1=162605589856256,.field_2=217,.field_3=2977687486,.field_4=74,.field_5=2.37109375,.field_6=1.49609375],1665217660,`E_2_3),(63,[.field_1=83432466808832,.field_2=163,.field_3=2825472336,.field_4=245,.field_5=0.5078125,.field_6=-0.71875],1094350794,`E_2_1)),.field_3=163990210084864,.field_4=0.34375,.field_5=86],(50,-0.09375))],.field_3=46874424901632,.field_4=-2.23046875],-3.16015625,139156190003200),133,[.field_1=151978903994368,.field_2=92,.field_3=469183736,.field_4=125,.field_5=3.43359375,.field_6=3.57421875])
+ var a_11_2 : uint64 = 64581458329600
+ var a_11_3 : (t56,uint32,t57,(t19,t30,flt32,flt64)) = (`E_56_6,2175957910,[.field_1=`E_26_6,.field_2=168,.field_3=(80343449468928,`E_41_3,458518304,[.field_1=132879007088640,.field_2=(141,0.3125),.field_3=67929798082560,.field_4=(-0.65625,121657342951424,[.field_1=[.field_1=53,.field_2=-0.0546875,.field_3=110,.field_4=109205112356864,.field_5=`E_2_5,.field_6=3971726706],.field_2=(-3.20703125,177956855611392,219483313799168),.field_3=(1.265625,`E_2_6)],[.field_1=(2465490790,0.53125,-0.078125,(0.3125,`E_2_2)),.field_2=219])]),.field_4=[.field_1=-0.828125,.field_2=[.field_1=(1.484375,`E_2_3),.field_2=223230053711872,.field_3=(0.421875,`E_2_4),.field_4=-0.875,.field_5=208129902903296,.field_6=(-2.94921875,217811484278784,95447919886336)],.field_3=(-1.0625,-1.375,217105262837760),.field_4=0.5546875,.field_5=`E_11_4,.field_6=-2.32421875],.field_5=4119368836,.field_6=-0.484375],(`E_19_2,[.field_1=-3.52734375,.field_2=[.field_1=`E_18_9,.field_2=3895962858,.field_3=1.40625,.field_4=`E_19_8,.field_5=(-0.1484375,0.92578125,[.field_1=-0.265625,.field_2=[.field_1=(-1.328125,`E_2_5),.field_2=76685686865920,.field_3=(-0.578125,`E_2_5),.field_4=0.4375,.field_5=31133991829504,.field_6=(-0.59765625,81066773446656,93021535076352)],.field_3=(-2.6328125,-0.28125,29358042644480),.field_4=0.015625,.field_5=`E_11_5,.field_6=-2.60546875]),.field_6=((-1.7734375,97291012014080,203235864870912),-0.078125,[.field_1=1308944570,.field_2=((17,[.field_1=169812367376384,.field_2=90,.field_3=214389768,.field_4=130,.field_5=-1.5390625,.field_6=3.83984375],4258613008,`E_2_6),(103,[.field_1=19826711592960,.field_2=188,.field_3=2910355046,.field_4=99,.field_5=0.2265625,.field_6=-1.4453125],2141412632,`E_2_6)),.field_3=169766818938880,.field_4=1.03125,.field_5=29],(3,1.359375))],.field_3=173832218083328,.field_4=2.25390625],-1.25,3.0546875))
+ var ret_11 : uint32 = fn_11_myr(a_11_1, a_11_2, a_11_3)
+ if !(ret_11==3531194568)
+ std.put("myr_to_myr 11 failed\n")
+ std.exit(1)
+ ;;
+ var a_12_1 : t63 = [.field_1=(1,-0.953125,28380691169280,[.field_1=266791176896512,.field_2=173,.field_3=841702660,.field_4=225,.field_5=-2.734375,.field_6=-2.24609375]),.field_2=[.field_1=-0.875,.field_2=(2975373622,1.46875,-0.828125,(0.390625,`E_2_2))],.field_3=0.515625,.field_4=[.field_1=`E_18_1,.field_2=[.field_1=[.field_1=124,.field_2=0.00390625,.field_3=79,.field_4=236261015289856,.field_5=`E_2_3,.field_6=2156655358],.field_2=(2.4140625,51905146388480,223439089434624),.field_3=(0.53125,`E_2_1)]],.field_5=255485003694080,.field_6=3.1015625]
+ var a_12_2 : flt64 = 3.234375
+ var a_12_3 : uint32 = 1992315490
+ var a_12_4 : t68 = [.field_1=`E_64_6,.field_2=[.field_1=-1.48828125,.field_2=1219436194,.field_3=50,.field_4=41975805771776,.field_5=2064448724,.field_6=122353563467776],.field_3=((`E_56_2,1046332580,[.field_1=`E_26_8,.field_2=209,.field_3=(142694099582976,`E_41_2,1010741440,[.field_1=61520011984896,.field_2=(110,-0.125),.field_3=32251070906368,.field_4=(-0.546875,100567390355456,[.field_1=[.field_1=16,.field_2=-2.8671875,.field_3=38,.field_4=106528154320896,.field_5=`E_2_6,.field_6=154283124],.field_2=(-2.69140625,121530523058176,195491981033472),.field_3=(0.296875,`E_2_5)],[.field_1=(1183512522,1.265625,-1.453125,(-0.09375,`E_2_1)),.field_2=132])]),.field_4=[.field_1=1.28125,.field_2=[.field_1=(-0.65625,`E_2_5),.field_2=177899132157952,.field_3=(-1.234375,`E_2_2),.field_4=1.4375,.field_5=97002546921472,.field_6=(-0.09375,109686219472896,226948153081856)],.field_3=(0.80078125,0.6875,46040566726656),.field_4=1.30859375,.field_5=`E_11_6,.field_6=-1.4609375],.field_5=197005372,.field_6=0.640625],(`E_19_3,[.field_1=-2.33203125,.field_2=[.field_1=`E_18_2,.field_2=187071608,.field_3=0.921875,.field_4=`E_19_8,.field_5=(-1.4140625,1.54296875,[.field_1=1.34375,.field_2=[.field_1=(0.90625,`E_2_5),.field_2=125311720620032,.field_3=(0.625,`E_2_1),.field_4=-0.921875,.field_5=92709840093184,.field_6=(-2.73828125,134199459708928,81184594198528)],.field_3=(-0.046875,1.453125,190870813671424),.field_4=-1.55859375,.field_5=`E_11_4,.field_6=-0.8125]),.field_6=((-0.28125,65980206415872,69437640933376),0.875,[.field_1=1203783426,.field_2=((243,[.field_1=35503180218368,.field_2=123,.field_3=359364016,.field_4=43,.field_5=-1.74609375,.field_6=3.69140625],2099391278,`E_2_6),(230,[.field_1=78725579800576,.field_2=184,.field_3=1476808480,.field_4=250,.field_5=2.0546875,.field_6=0.40234375],1316011470,`E_2_6)),.field_3=7917143982080,.field_4=0.296875,.field_5=104],(254,-0.71875))],.field_3=198977607696384,.field_4=0.46875],0.53125,-2.57421875)),[.field_1=0.921875,.field_2=[.field_1=3.24609375,.field_2=([.field_1=3.5,.field_2=[.field_1=`E_18_1,.field_2=3714170846,.field_3=-1.34375,.field_4=`E_19_5,.field_5=(3.50390625,-2.00390625,[.field_1=1.046875,.field_2=[.field_1=(1.328125,`E_2_5),.field_2=227074820669440,.field_3=(1.0,`E_2_1),.field_4=0.09375,.field_5=45904748347392,.field_6=(3.82421875,82226218532864,201097409331200)],.field_3=(-1.59765625,-0.921875,209014553313280),.field_4=3.0546875,.field_5=`E_11_4,.field_6=1.83984375]),.field_6=((-2.62890625,89468697313280,83042110013440),1.046875,[.field_1=2099223986,.field_2=((22,[.field_1=210486406021120,.field_2=111,.field_3=702570652,.field_4=156,.field_5=0.0859375,.field_6=1.71875],2409538788,`E_2_5),(141,[.field_1=135559761887232,.field_2=124,.field_3=1544636438,.field_4=77,.field_5=-0.00390625,.field_6=3.0390625],1992571074,`E_2_3)),.field_3=50968790564864,.field_4=-1.015625,.field_5=200],(98,1.328125))],.field_3=190118914424832,.field_4=3.87890625],1.22265625,236152535121920),.field_3=1350095886,.field_4=1.421875],.field_3=[.field_1=1.33984375],.field_4=2.37109375,.field_5=[.field_1=-1.4375],.field_6=([.field_1=117967668903936,.field_2=(61,-0.921875),.field_3=8916022067200,.field_4=(0.78125,260068453384192,[.field_1=[.field_1=151,.field_2=0.04296875,.field_3=122,.field_4=20912341385216,.field_5=`E_2_6,.field_6=3592715758],.field_2=(-0.9765625,138666200793088,204194791948288),.field_3=(1.0625,`E_2_6)],[.field_1=(3893487284,-1.515625,0.84375,(-0.65625,`E_2_6)),.field_2=113])],-0.671875,167371868864512,71)]),.field_4=(([.field_1=169699773906944,.field_2=(139,1.421875),.field_3=114279424327680,.field_4=(0.265625,104534041427968,[.field_1=[.field_1=165,.field_2=2.26953125,.field_3=103,.field_4=111656380792832,.field_5=`E_2_5,.field_6=4276697078],.field_2=(3.14453125,53795771645952,19714984378368),.field_3=(1.234375,`E_2_1)],[.field_1=(1912043998,-0.359375,0.796875,(-0.671875,`E_2_3)),.field_2=168])],-0.625,38298238189568,243),-2.03125),.field_5=(0.25,67610029064192,[.field_1=[.field_1=213,.field_2=2.8046875,.field_3=215,.field_4=107128833966080,.field_5=`E_2_5,.field_6=1069858560],.field_2=(3.6484375,51416336302080,251914374217728),.field_3=(0.8125,`E_2_4)],[.field_1=(1252682164,-0.09375,0.25,(-0.96875,`E_2_4)),.field_2=166])]
+ var ret_12 : uint32 = fn_12_myr(a_12_1, a_12_2, a_12_3, a_12_4)
+ if !(ret_12==2964505044)
+ std.put("myr_to_myr 12 failed\n")
+ std.exit(1)
+ ;;
+ var a_13_1 : t26 = `E_26_9
+ var a_13_2 : uint32 = 2931952582
+ var a_13_3 : t70 = [.field_1=[.field_1=`E_29_2,.field_2=220,.field_3=281245651828737,.field_4=161440489930752]]
+ var a_13_4 : flt64 = 0.62890625
+ var a_13_5 : (flt32,t71,(uint8,uint32,uint8),flt64) = (0.90625,[.field_1=109360486285312,.field_2=-2.51953125,.field_3=3374314812,.field_4=4132094974,.field_5=143973346836480],(93,3133286358,129),0.76953125)
+ var ret_13 : t74 = fn_13_myr(a_13_1, a_13_2, a_13_3, a_13_4, a_13_5)
+ if !(ret_13==`E_74_6)
+ std.put("myr_to_myr 13 failed\n")
+ std.exit(1)
+ ;;
+ var a_14_1 : uint32 = 2391308062
+ var a_14_2 : uint8 = 66
+ var a_14_3 : (t75,t76,t77) = ([.field_1=85,.field_2=-2.80859375,.field_3=155146548],[.field_1=235,.field_2=-1.2890625],`E_77_8)
+ var a_14_4 : (t79,uint64,t80) = (`E_79_1,274420389904384,`E_80_2)
+ var a_14_5 : t32 = [.field_1=1325686188]
+ var a_14_6 : t82 = `E_82_5
+ var a_14_7 : t85 = [.field_1=558424532,.field_2=((206,[.field_1=150202022100992,.field_2=157,.field_3=860064444,.field_4=215,.field_5=-1.9765625,.field_6=-2.18359375],2792603168,`E_2_1),(47,[.field_1=209371989409792,.field_2=167,.field_3=1162519188,.field_4=232,.field_5=2.2109375,.field_6=3.82421875],2196829234,`E_2_2)),.field_3=239020664553472,.field_4=645390774,.field_5=([.field_1=0.375,.field_2=[.field_1=-3.5625,.field_2=([.field_1=1.97265625,.field_2=[.field_1=`E_18_8,.field_2=3857006490,.field_3=1.4375,.field_4=`E_19_8,.field_5=(3.66015625,2.25390625,[.field_1=-0.5,.field_2=[.field_1=(-1.265625,`E_2_4),.field_2=246081152876544,.field_3=(0.671875,`E_2_5),.field_4=0.6875,.field_5=270577423351808,.field_6=(-3.7734375,103229432922112,25981307060224)],.field_3=(-2.328125,-1.21875,210485456797696),.field_4=-0.21484375,.field_5=`E_11_1,.field_6=0.23828125]),.field_6=((-0.296875,149437025615872,217610901782528),-0.59375,[.field_1=2925618826,.field_2=((100,[.field_1=100015436857344,.field_2=111,.field_3=988840590,.field_4=64,.field_5=-0.8671875,.field_6=-2.19140625],951054362,`E_2_2),(143,[.field_1=89940269858816,.field_2=197,.field_3=1866268236,.field_4=8,.field_5=0.546875,.field_6=-2.7265625],4272545584,`E_2_4)),.field_3=145750579740672,.field_4=-1.296875,.field_5=201],(160,1.046875))],.field_3=73607486504960,.field_4=1.15625],-1.05078125,203696970924032),.field_3=767588794,.field_4=-1.140625],.field_3=[.field_1=-3.6328125],.field_4=2.8125,.field_5=[.field_1=0.09375],.field_6=([.field_1=109872603332608,.field_2=(75,0.828125),.field_3=181185840939008,.field_4=(0.578125,276458107961344,[.field_1=[.field_1=221,.field_2=2.8125,.field_3=138,.field_4=51979432886272,.field_5=`E_2_4,.field_6=4196052024],.field_2=(-2.203125,57078884073472,36038635683840),.field_3=(-0.90625,`E_2_5)],[.field_1=(2773883292,-0.625,0.25,(-0.703125,`E_2_1)),.field_2=215])],1.328125,140846684569600,144)],432794756,2744398968),.field_6=[.field_1=153,.field_2=270401691844608]]
+ var ret_14 : uint64 = fn_14_myr(a_14_1, a_14_2, a_14_3, a_14_4, a_14_5, a_14_6, a_14_7)
+ if !(ret_14==278379121082369)
+ std.put("myr_to_myr 14 failed\n")
+ std.exit(1)
+ ;;
+ var a_15_1 : t86 = `E_86_10
+ var a_15_2 : t69 = [.field_1=`E_29_3,.field_2=174,.field_3=120887724867584,.field_4=122558970331136]
+ var a_15_3 : t88 = [.field_1=`E_87_6,.field_2=`E_19_4,.field_3=[.field_1=13773365706752,.field_2=103,.field_3=2174769352,.field_4=176,.field_5=-3.88671875,.field_6=-0.2578125],.field_4=`E_48_7]
+ var a_15_4 : t93 = [.field_1=(2.3515625,0.375,([.field_1=225,.field_2=3.30859375,.field_3=307894648],[.field_1=11,.field_2=1.78125],`E_77_8)),.field_2=`E_90_6,.field_3=((-0.5234375,132763972009984,229659410694144),-0.78125,[.field_1=1759559384,.field_2=((49,[.field_1=136392379072512,.field_2=89,.field_3=217892376,.field_4=68,.field_5=-2.91796875,.field_6=-1.44140625],411030898,`E_2_2),(22,[.field_1=172726771253248,.field_2=126,.field_3=1394729466,.field_4=253,.field_5=1.3359375,.field_6=-1.6875],691362998,`E_2_3)),.field_3=253720887820288,.field_4=-1.4375,.field_5=101],(249,-1.296875)),.field_4=(528531976,[.field_1=261386844897280,.field_2=1.84765625,.field_3=2388631154,.field_4=1719296880,.field_5=155468073926656],3470986990,3478856264),.field_5=(3194978670,1257202236,678627422)]
+ var a_15_5 : (flt32,uint32,t94) = (-0.953125,1149891486,`E_94_1)
+ var a_15_6 : (t24,(flt32,t2)) = (`E_24_7,(0.953125,`E_2_3))
+ var a_15_7 : flt32 = 0.65625
+ var a_15_8 : (uint8,flt32,uint64,t1) = (174,0.140625,211052441108480,[.field_1=171324051947520,.field_2=72,.field_3=1314068538,.field_4=2,.field_5=2.62109375,.field_6=-3.015625])
+ var a_15_9 : (t93,flt64,t96) = ([.field_1=(3.0234375,1.390625,([.field_1=51,.field_2=-2.76953125,.field_3=3019798602],[.field_1=1,.field_2=0.5078125],`E_77_8)),.field_2=`E_90_7,.field_3=((-3.71484375,157999771287552,111072570245120),0.21875,[.field_1=1336322566,.field_2=((0,[.field_1=240426317512704,.field_2=157,.field_3=52590348,.field_4=176,.field_5=1.80859375,.field_6=2.58984375],1153624366,`E_2_1),(206,[.field_1=180814220492800,.field_2=26,.field_3=299703506,.field_4=32,.field_5=1.73828125,.field_6=3.32421875],3465599182,`E_2_4)),.field_3=244610903965696,.field_4=-1.546875,.field_5=193],(146,-1.515625)),.field_4=(1374840658,[.field_1=142626650193920,.field_2=1.80859375,.field_3=1480961136,.field_4=292227856,.field_5=35406836006912],3934363586,1628550422),.field_5=(554328638,3308010754,4278941526)],-2.8046875,[.field_1=-0.31640625,.field_2=1.77734375])
+ var a_15_10 : t100 = [.field_1=[.field_1=([.field_1=-0.578125,.field_2=[.field_1=-0.7265625,.field_2=([.field_1=-2.6015625,.field_2=[.field_1=`E_18_5,.field_2=3722140840,.field_3=1.234375,.field_4=`E_19_4,.field_5=(0.7421875,2.03125,[.field_1=-0.90625,.field_2=[.field_1=(1.46875,`E_2_5),.field_2=16987441070080,.field_3=(-0.125,`E_2_3),.field_4=1.0625,.field_5=215665831968768,.field_6=(1.7265625,135345495736320,22229593620480)],.field_3=(2.16015625,0.625,114942210998272),.field_4=-2.71484375,.field_5=`E_11_3,.field_6=-0.2421875]),.field_6=((2.91796875,59953140727808,184442813546496),0.03125,[.field_1=1648496868,.field_2=((248,[.field_1=258110700650496,.field_2=141,.field_3=1835743428,.field_4=200,.field_5=-0.42578125,.field_6=2.7890625],1625618080,`E_2_2),(17,[.field_1=96824602525696,.field_2=239,.field_3=545066032,.field_4=206,.field_5=-1.140625,.field_6=3.6171875],2459246160,`E_2_1)),.field_3=124927959629824,.field_4=0.46875,.field_5=218],(36,-1.375))],.field_3=1156421255168,.field_4=0.4921875],0.2265625,246949201182720),.field_3=3332544584,.field_4=-0.984375],.field_3=[.field_1=-0.87890625],.field_4=-2.66015625,.field_5=[.field_1=-1.078125],.field_6=([.field_1=85664792313856,.field_2=(181,0.265625),.field_3=24759761633280,.field_4=(-1.078125,123531649613824,[.field_1=[.field_1=119,.field_2=-1.08203125,.field_3=129,.field_4=228120870649856,.field_5=`E_2_2,.field_6=2715867670],.field_2=(0.9140625,183028377845760,167569567645696),.field_3=(-0.96875,`E_2_5)],[.field_1=(168190774,1.078125,0.234375,(-1.0,`E_2_6)),.field_2=148])],0.765625,120963210805248,117)],2231554362,2636507052),.field_2=2.703125,.field_3=19120