From 96f88bf6b108729c8d30fd9ddf3d4e528b3a99cd Mon Sep 17 00:00:00 2001 From: Oscar Spencer Date: Sun, 20 Mar 2022 18:42:02 -0400 Subject: [PATCH] snapshots --- .../pattern_matching.5b6ff2d3.0.snapshot | 401 ++++++++++++++++++ .../pattern_matching.7f7fe4ef.0.snapshot | 19 + .../pattern_matching.8614dff3.0.snapshot | 36 ++ .../pattern_matching.af0ac1b8.0.snapshot | 81 ++++ .../pattern_matching.c9582b6d.0.snapshot | 306 +++++++++++++ 5 files changed, 843 insertions(+) create mode 100644 compiler/test/__snapshots__/pattern_matching.5b6ff2d3.0.snapshot create mode 100644 compiler/test/__snapshots__/pattern_matching.7f7fe4ef.0.snapshot create mode 100644 compiler/test/__snapshots__/pattern_matching.8614dff3.0.snapshot create mode 100644 compiler/test/__snapshots__/pattern_matching.af0ac1b8.0.snapshot create mode 100644 compiler/test/__snapshots__/pattern_matching.c9582b6d.0.snapshot diff --git a/compiler/test/__snapshots__/pattern_matching.5b6ff2d3.0.snapshot b/compiler/test/__snapshots__/pattern_matching.5b6ff2d3.0.snapshot new file mode 100644 index 0000000000..8c6e08fe01 --- /dev/null +++ b/compiler/test/__snapshots__/pattern_matching.5b6ff2d3.0.snapshot @@ -0,0 +1,401 @@ +pattern matching › alias_match_5 +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import \"_grainEnv\" \"mem\" (memory $0 0)) + (import \"_grainEnv\" \"tbl\" (table $tbl 0 funcref)) + (import \"_grainEnv\" \"relocBase\" (global $wimport__grainEnv_relocBase i32)) + (import \"GRAIN$MODULE$runtime/gc\" \"GRAIN$EXPORT$incRef\" (global $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef (mut i32))) + (import \"GRAIN$MODULE$runtime/gc\" \"GRAIN$EXPORT$decRef\" (global $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef (mut i32))) + (import \"GRAIN$MODULE$runtime/equal\" \"GRAIN$EXPORT$equal\" (global $wimport_GRAIN$MODULE$runtime/equal_GRAIN$EXPORT$equal (mut i32))) + (import \"GRAIN$MODULE$pervasives\" \"GRAIN$EXPORT$None\" (global $gimport_pervasives_None (mut i32))) + (import \"GRAIN$MODULE$pervasives\" \"GRAIN$EXPORT$Some\" (global $gimport_pervasives_Some (mut i32))) + (import \"GRAIN$MODULE$runtime/gc\" \"incRef\" (func $wimport_GRAIN$MODULE$runtime/gc_incRef (param i32 i32) (result i32))) + (import \"GRAIN$MODULE$runtime/gc\" \"decRef\" (func $wimport_GRAIN$MODULE$runtime/gc_decRef (param i32 i32) (result i32))) + (import \"GRAIN$MODULE$runtime/equal\" \"equal\" (func $wimport_GRAIN$MODULE$runtime/equal_equal (param i32 i32 i32) (result i32))) + (global $global_1 i32 (i32.const 0)) + (export \"memory\" (memory $0)) + (export \"_gmain\" (func $_gmain)) + (export \"_start\" (func $_start)) + (export \"GRAIN$TABLE_SIZE\" (global $global_1)) + (func $_gmain (; has Stack IR ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local.set $3 + (tuple.extract 0 + (tuple.make + (block (result i32) + (local.set $0 + (tuple.extract 0 + (tuple.make + (call_indirect (type $i32_i32_=>_i32) + (local.tee $3 + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (global.get $gimport_pervasives_Some) + ) + (i32.const 0) + ) + ) + ) + (i32.const 11) + (i32.load offset=8 + (local.get $3) + ) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (i32.const 0) + ) + ) + ) + ) + (local.set $1 + (tuple.extract 0 + (tuple.make + (i32.const 0) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (i32.const 0) + ) + ) + ) + ) + (local.set $2 + (tuple.extract 0 + (tuple.make + (i32.const 0) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (i32.const 0) + ) + ) + ) + ) + (block $switch.38_outer (result i32) + (drop + (block $switch.38_branch_1 (result i32) + (drop + (block $switch.38_branch_2 (result i32) + (drop + (block $switch.38_branch_3 (result i32) + (drop + (block $switch.38_default (result i32) + (br_table $switch.38_branch_1 $switch.38_branch_2 $switch.38_branch_3 $switch.38_default + (i32.const 0) + (i32.shr_s + (tuple.extract 0 + (tuple.make + (if (result i32) + (i32.shr_u + (tuple.extract 0 + (tuple.make + (i32.or + (i32.shl + (i32.eq + (local.tee $5 + (tuple.extract 0 + (tuple.make + (i32.load offset=12 + (local.get $0) + ) + (i32.const 0) + ) + ) + ) + (i32.const 3) + ) + (i32.const 31) + ) + (i32.const 2147483646) + ) + (i32.const 0) + ) + ) + (i32.const 31) + ) + (block (result i32) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (block (result i32) + (local.set $2 + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $0) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $2) + ) + ) + ) + ) + (i32.const 1879048190) + ) + ) + ) + (i32.const 3) + ) + (if (result i32) + (i32.shr_u + (local.tee $6 + (tuple.extract 0 + (tuple.make + (i32.or + (i32.shl + (i32.eq + (local.get $5) + (i32.const 1) + ) + (i32.const 31) + ) + (i32.const 2147483646) + ) + (i32.const 0) + ) + ) + ) + (i32.const 31) + ) + (block (result i32) + (local.set $4 + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (i32.load offset=20 + (local.get $0) + ) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (i32.const 0) + ) + ) + ) + ) + (if (result i32) + (i32.shr_u + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/equal_equal + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (global.get $wimport_GRAIN$MODULE$runtime/equal_GRAIN$EXPORT$equal) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $4) + ) + (i32.const 7) + ) + (i32.const 0) + ) + ) + (i32.const 31) + ) + (block (result i32) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (block (result i32) + (local.set $1 + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $0) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $1) + ) + ) + ) + ) + (i32.const 1879048190) + ) + ) + ) + (i32.const 1) + ) + (if (result i32) + (i32.shr_u + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/equal_equal + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (global.get $wimport_GRAIN$MODULE$runtime/equal_GRAIN$EXPORT$equal) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $4) + ) + (i32.const 9) + ) + (i32.const 0) + ) + ) + (i32.const 31) + ) + (block (result i32) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (block (result i32) + (local.set $1 + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $0) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $1) + ) + ) + ) + ) + (i32.const 1879048190) + ) + ) + ) + (i32.const 1) + ) + (if (result i32) + (i32.shr_u + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/equal_equal + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (global.get $wimport_GRAIN$MODULE$runtime/equal_GRAIN$EXPORT$equal) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $4) + ) + (i32.const 11) + ) + (i32.const 0) + ) + ) + (i32.const 31) + ) + (block (result i32) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (block (result i32) + (local.set $2 + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $0) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $2) + ) + ) + ) + ) + (i32.const 1879048190) + ) + ) + ) + (i32.const 3) + ) + (i32.const 5) + ) + ) + ) + ) + (i32.const 5) + ) + ) + (local.get $6) + ) + ) + (i32.const 1) + ) + ) + ) + ) + (unreachable) + ) + ) + (br $switch.38_outer + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (global.get $gimport_pervasives_None) + ) + ) + ) + ) + (br $switch.38_outer + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $2) + ) + ) + ) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $1) + ) + ) + ) + (local.get $3) + ) + ) + ) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $0) + ) + ) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $1) + ) + ) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $2) + ) + ) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $4) + ) + ) + (local.get $3) + ) + (func $_start (; has Stack IR ;) + (drop + (call $_gmain) + ) + ) + ;; custom section \"cmi\", size 245 +) diff --git a/compiler/test/__snapshots__/pattern_matching.7f7fe4ef.0.snapshot b/compiler/test/__snapshots__/pattern_matching.7f7fe4ef.0.snapshot new file mode 100644 index 0000000000..b35e27df87 --- /dev/null +++ b/compiler/test/__snapshots__/pattern_matching.7f7fe4ef.0.snapshot @@ -0,0 +1,19 @@ +pattern matching › alias_match_1 +(module + (type $none_=>_none (func)) + (type $none_=>_i32 (func (result i32))) + (import \"_grainEnv\" \"mem\" (memory $0 0)) + (import \"_grainEnv\" \"relocBase\" (global $wimport__grainEnv_relocBase i32)) + (global $global_1 i32 (i32.const 0)) + (export \"memory\" (memory $0)) + (export \"_gmain\" (func $_gmain)) + (export \"_start\" (func $_start)) + (export \"GRAIN$TABLE_SIZE\" (global $global_1)) + (func $_gmain (; has Stack IR ;) (result i32) + (i32.const -2) + ) + (func $_start (; has Stack IR ;) + (nop) + ) + ;; custom section \"cmi\", size 245 +) diff --git a/compiler/test/__snapshots__/pattern_matching.8614dff3.0.snapshot b/compiler/test/__snapshots__/pattern_matching.8614dff3.0.snapshot new file mode 100644 index 0000000000..162cd3e357 --- /dev/null +++ b/compiler/test/__snapshots__/pattern_matching.8614dff3.0.snapshot @@ -0,0 +1,36 @@ +pattern matching › alias_match_2 +(module + (type $none_=>_none (func)) + (type $none_=>_i32 (func (result i32))) + (import \"_grainEnv\" \"mem\" (memory $0 0)) + (import \"_grainEnv\" \"relocBase\" (global $wimport__grainEnv_relocBase i32)) + (global $global_1 i32 (i32.const 0)) + (export \"memory\" (memory $0)) + (export \"_gmain\" (func $_gmain)) + (export \"_start\" (func $_start)) + (export \"GRAIN$TABLE_SIZE\" (global $global_1)) + (func $_gmain (; has Stack IR ;) (result i32) + (local $0 i32) + (tuple.extract 0 + (tuple.make + (select + (i32.const -2) + (local.tee $0 + (i32.const -2) + ) + (i32.shr_u + (local.get $0) + (i32.const 31) + ) + ) + (i32.const 0) + ) + ) + ) + (func $_start (; has Stack IR ;) + (drop + (call $_gmain) + ) + ) + ;; custom section \"cmi\", size 245 +) diff --git a/compiler/test/__snapshots__/pattern_matching.af0ac1b8.0.snapshot b/compiler/test/__snapshots__/pattern_matching.af0ac1b8.0.snapshot new file mode 100644 index 0000000000..6f512b4579 --- /dev/null +++ b/compiler/test/__snapshots__/pattern_matching.af0ac1b8.0.snapshot @@ -0,0 +1,81 @@ +pattern matching › alias_match_3 +(module + (type $none_=>_none (func)) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (import \"_grainEnv\" \"mem\" (memory $0 0)) + (import \"_grainEnv\" \"relocBase\" (global $wimport__grainEnv_relocBase i32)) + (import \"GRAIN$MODULE$runtime/gc\" \"GRAIN$EXPORT$decRef\" (global $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef (mut i32))) + (import \"GRAIN$MODULE$runtime/gc\" \"decRef\" (func $wimport_GRAIN$MODULE$runtime/gc_decRef (param i32 i32) (result i32))) + (global $global_1 i32 (i32.const 0)) + (export \"memory\" (memory $0)) + (export \"_gmain\" (func $_gmain)) + (export \"_start\" (func $_start)) + (export \"GRAIN$TABLE_SIZE\" (global $global_1)) + (func $_gmain (; has Stack IR ;) (result i32) + (local $0 i32) + (local $1 i32) + (tuple.extract 0 + (tuple.make + (block (result i32) + (drop + (block $switch.15_branch_1 (result i32) + (drop + (block $switch.15_default (result i32) + (br_table $switch.15_branch_1 $switch.15_default + (i32.const 0) + (i32.shr_s + (tuple.extract 0 + (tuple.make + (if (result i32) + (i32.shr_u + (local.tee $1 + (i32.const -2) + ) + (i32.const 31) + ) + (block (result i32) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (block (result i32) + (local.set $0 + (tuple.extract 0 + (tuple.make + (i32.const -2) + (local.get $0) + ) + ) + ) + (i32.const 1879048190) + ) + ) + ) + (i32.const 1) + ) + (unreachable) + ) + (local.get $1) + ) + ) + (i32.const 1) + ) + ) + ) + ) + (unreachable) + ) + ) + (local.get $0) + ) + (i32.const 0) + ) + ) + ) + (func $_start (; has Stack IR ;) + (drop + (call $_gmain) + ) + ) + ;; custom section \"cmi\", size 245 +) diff --git a/compiler/test/__snapshots__/pattern_matching.c9582b6d.0.snapshot b/compiler/test/__snapshots__/pattern_matching.c9582b6d.0.snapshot new file mode 100644 index 0000000000..2d40133e22 --- /dev/null +++ b/compiler/test/__snapshots__/pattern_matching.c9582b6d.0.snapshot @@ -0,0 +1,306 @@ +pattern matching › alias_match_4 +(module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (import \"_grainEnv\" \"mem\" (memory $0 0)) + (import \"_grainEnv\" \"tbl\" (table $tbl 0 funcref)) + (import \"_grainEnv\" \"relocBase\" (global $wimport__grainEnv_relocBase i32)) + (import \"GRAIN$MODULE$runtime/gc\" \"GRAIN$EXPORT$incRef\" (global $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef (mut i32))) + (import \"GRAIN$MODULE$runtime/gc\" \"GRAIN$EXPORT$decRef\" (global $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef (mut i32))) + (import \"GRAIN$MODULE$runtime/equal\" \"GRAIN$EXPORT$equal\" (global $wimport_GRAIN$MODULE$runtime/equal_GRAIN$EXPORT$equal (mut i32))) + (import \"GRAIN$MODULE$pervasives\" \"GRAIN$EXPORT$Some\" (global $gimport_pervasives_Some (mut i32))) + (import \"GRAIN$MODULE$runtime/gc\" \"incRef\" (func $wimport_GRAIN$MODULE$runtime/gc_incRef (param i32 i32) (result i32))) + (import \"GRAIN$MODULE$runtime/gc\" \"decRef\" (func $wimport_GRAIN$MODULE$runtime/gc_decRef (param i32 i32) (result i32))) + (import \"GRAIN$MODULE$runtime/equal\" \"equal\" (func $wimport_GRAIN$MODULE$runtime/equal_equal (param i32 i32 i32) (result i32))) + (global $global_1 i32 (i32.const 0)) + (export \"memory\" (memory $0)) + (export \"_gmain\" (func $_gmain)) + (export \"_start\" (func $_start)) + (export \"GRAIN$TABLE_SIZE\" (global $global_1)) + (func $_gmain (; has Stack IR ;) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local.set $2 + (tuple.extract 0 + (tuple.make + (block (result i32) + (local.set $3 + (tuple.extract 0 + (tuple.make + (call_indirect (type $i32_i32_=>_i32) + (local.tee $2 + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (global.get $gimport_pervasives_Some) + ) + (i32.const 0) + ) + ) + ) + (i32.const 11) + (i32.load offset=8 + (local.get $2) + ) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (i32.const 0) + ) + ) + ) + ) + (local.set $0 + (tuple.extract 0 + (tuple.make + (i32.const 0) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (i32.const 0) + ) + ) + ) + ) + (block $switch.30_outer (result i32) + (drop + (block $switch.30_branch_1 (result i32) + (drop + (block $switch.30_branch_2 (result i32) + (drop + (block $switch.30_branch_3 (result i32) + (drop + (block $switch.30_default (result i32) + (br_table $switch.30_branch_1 $switch.30_branch_2 $switch.30_branch_3 $switch.30_default + (i32.const 0) + (i32.shr_s + (tuple.extract 0 + (tuple.make + (if (result i32) + (i32.shr_u + (tuple.extract 0 + (tuple.make + (i32.or + (i32.shl + (i32.eq + (local.tee $4 + (tuple.extract 0 + (tuple.make + (i32.load offset=12 + (local.get $3) + ) + (i32.const 0) + ) + ) + ) + (i32.const 3) + ) + (i32.const 31) + ) + (i32.const 2147483646) + ) + (i32.const 0) + ) + ) + (i32.const 31) + ) + (i32.const 3) + (if (result i32) + (i32.shr_u + (local.tee $5 + (tuple.extract 0 + (tuple.make + (i32.or + (i32.shl + (i32.eq + (local.get $4) + (i32.const 1) + ) + (i32.const 31) + ) + (i32.const 2147483646) + ) + (i32.const 0) + ) + ) + ) + (i32.const 31) + ) + (block (result i32) + (local.set $1 + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (i32.load offset=20 + (local.get $3) + ) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (i32.const 0) + ) + ) + ) + ) + (if (result i32) + (i32.shr_u + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/equal_equal + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (global.get $wimport_GRAIN$MODULE$runtime/equal_GRAIN$EXPORT$equal) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $1) + ) + (i32.const 7) + ) + (i32.const 0) + ) + ) + (i32.const 31) + ) + (block (result i32) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (block (result i32) + (local.set $0 + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $1) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $0) + ) + ) + ) + ) + (i32.const 1879048190) + ) + ) + ) + (i32.const 1) + ) + (if (result i32) + (i32.shr_u + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/equal_equal + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (global.get $wimport_GRAIN$MODULE$runtime/equal_GRAIN$EXPORT$equal) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $1) + ) + (i32.const 9) + ) + (i32.const 0) + ) + ) + (i32.const 31) + ) + (block (result i32) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (block (result i32) + (local.set $0 + (tuple.extract 0 + (tuple.make + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $1) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $0) + ) + ) + ) + ) + (i32.const 1879048190) + ) + ) + ) + (i32.const 1) + ) + (i32.const 3) + ) + ) + ) + (i32.const 5) + ) + ) + (local.get $5) + ) + ) + (i32.const 1) + ) + ) + ) + ) + (unreachable) + ) + ) + (br $switch.30_outer + (i32.const 13) + ) + ) + ) + (br $switch.30_outer + (i32.const 11) + ) + ) + ) + (call $wimport_GRAIN$MODULE$runtime/gc_incRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$incRef) + (local.get $0) + ) + ) + ) + (local.get $2) + ) + ) + ) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $3) + ) + ) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $0) + ) + ) + (drop + (call $wimport_GRAIN$MODULE$runtime/gc_decRef + (global.get $wimport_GRAIN$MODULE$runtime/gc_GRAIN$EXPORT$decRef) + (local.get $1) + ) + ) + (local.get $2) + ) + (func $_start (; has Stack IR ;) + (drop + (call $_gmain) + ) + ) + ;; custom section \"cmi\", size 245 +)