ref: d68cb921e334d6fd802d6ae93398d6324cb784ff
parent: 2b398fd1053b03888f400011dda46d4e36986876
author: S. Gilles <sgilles@umd.edu>
date: Sat Jun 20 17:55:49 EDT 2020
Add tests for abi conformity. Tests 001 through 003 are specific errors, and 004 through 006 are batches of blanket fuzzing that uncovered at least one error each. The blanket fuzzers test function calls between all combinations of {myrddin, c} and {myrddin, c}, except for c functions calling c functions.
--- /dev/null
+++ b/test/abi/001_in-c.glue.c
@@ -1,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;
+}
--- /dev/null
+++ b/test/abi/001_in-c.myr
@@ -1,0 +1,7 @@
+use std
+use "001_types"
+
+pkg =
+ extern const fn_1_c : ( -> t1)
+ extern const check_c_to_myr_fns : (-> int)
+;;
--- /dev/null
+++ b/test/abi/001_in-myr.myr
@@ -1,0 +1,11 @@
+use std
+use "001_types"
+
+pkg =
+ const fn_1_myr : ( -> t1)
+;;
+
+const fn_1_myr = {
+ -> [.field_1=(249229305184256,3.36328125)]
+}
+
--- /dev/null
+++ b/test/abi/001_main.myr
@@ -1,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)
+}
--- /dev/null
+++ b/test/abi/001_types.h
@@ -1,0 +1,2 @@
+typedef struct {uint64_t field_1;double field_2;} t2;
+typedef struct {t2 field_1;} t1;
--- /dev/null
+++ b/test/abi/001_types.myr
@@ -1,0 +1,5 @@
+pkg =
+ type t1 = struct
+ field_1 : (uint64,flt64)
+ ;;
+;;
--- /dev/null
+++ b/test/abi/002_main.myr
@@ -1,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
+}
--- /dev/null
+++ b/test/abi/003_main.myr
@@ -1,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]
+}
--- /dev/null
+++ b/test/abi/004_in-c.glue.c
@@ -1,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==32
\ No newline at end of file
+ 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;
+}
--- /dev/null
+++ b/test/abi/004_in-c.myr
@@ -1,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)
+;;
--- /dev/null
+++ b/test/abi/004_in-myr.myr
@@ -1,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]
+}
+
--- /dev/null
+++ b/test/abi/004_main.myr
@@ -1,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)
+}
--- /dev/null
+++ b/test/abi/004_types.h
@@ -1,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;
--- /dev/null
+++ b/test/abi/004_types.myr
@@ -1,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
+;;
+;;
--- /dev/null
+++ b/test/abi/005_in-c.glue.c
@@ -1,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)
\ No newline at end of file
+ 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_
\ No newline at end of file
+ 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_
\ No newline at end of file
+ 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.fie
\ No newline at end of file
+ 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.
\ No newline at end of file
+ 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;
+}
--- /dev/null
+++ b/test/abi/005_in-c.myr
@@ -1,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)
+;;
--- /dev/null
+++ b/test/abi/005_in-myr.myr
@@ -1,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) &&
\ No newline at end of file
+ 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.f
\ No newline at end of file
+ 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==763
\ No newline at end of file
+ goto bad
+ ;;
+
+ if !(a6==`E_79_2)
+ goto bad
+ ;;
+
+ -> -1.515625
+
+:bad
+ -> -1.28125
+}
+
--- /dev/null
+++ b/test/abi/005_main.myr
@@ -1,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)
+}
--- /dev/null
+++ b/test/abi/005_types.h
@@ -1,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;
--- /dev/null
+++ b/test/abi/005_types.myr
@@ -1,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
+;;
+;;
--- /dev/null
+++ b/test/abi/006_in-c.glue.c
@@ -1,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==158
\ No newline at end of file
+ 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==13915619000
\ No newline at end of file
+ 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