From f29792a0195c4941f4c6442340d6dfb4e05b3cca Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 2 Mar 2019 16:34:11 +0200 Subject: [PATCH 1/9] init min/max for SIMD integers --- src/builtins.ts | 80 ++++++++++++++++++++++++++++++++++++++++++ tests/compiler/simd.ts | 14 ++++++++ 2 files changed, 94 insertions(+) diff --git a/src/builtins.ts b/src/builtins.ts index e18d8ac52d..0729e0fd9f 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -340,6 +340,8 @@ export namespace BuiltinSymbols { export const i8x16_shr_u = "~lib/builtins/i8x16.shr_u"; export const i8x16_any_true = "~lib/builtins/i8x16.any_true"; export const i8x16_all_true = "~lib/builtins/i8x16.all_true"; + export const i8x16_min = "~lib/builtins/i8x16.min"; + export const i8x16_max = "~lib/builtins/i8x16.max"; export const i8x16_eq = "~lib/builtins/i8x16.eq"; export const i8x16_ne = "~lib/builtins/i8x16.ne"; export const i8x16_lt_s = "~lib/builtins/i8x16.lt_s"; @@ -368,6 +370,8 @@ export namespace BuiltinSymbols { export const i16x8_shr_u = "~lib/builtins/i16x8.shr_u"; export const i16x8_any_true = "~lib/builtins/i16x8.any_true"; export const i16x8_all_true = "~lib/builtins/i16x8.all_true"; + export const i16x8_min = "~lib/builtins/i16x8.min"; + export const i16x8_max = "~lib/builtins/i16x8.max"; export const i16x8_eq = "~lib/builtins/i16x8.eq"; export const i16x8_ne = "~lib/builtins/i16x8.ne"; export const i16x8_lt_s = "~lib/builtins/i16x8.lt_s"; @@ -391,6 +395,8 @@ export namespace BuiltinSymbols { export const i32x4_shr_u = "~lib/builtins/i32x4.shr_u"; export const i32x4_any_true = "~lib/builtins/i32x4.any_true"; export const i32x4_all_true = "~lib/builtins/i32x4.all_true"; + export const i32x4_min = "~lib/builtins/i32x4.min"; + export const i32x4_max = "~lib/builtins/i32x4.max"; export const i32x4_eq = "~lib/builtins/i32x4.eq"; export const i32x4_ne = "~lib/builtins/i32x4.ne"; export const i32x4_lt_s = "~lib/builtins/i32x4.lt_s"; @@ -415,6 +421,8 @@ export namespace BuiltinSymbols { export const i64x2_shr_u = "~lib/builtins/i64x2.shr_u"; export const i64x2_any_true = "~lib/builtins/i64x2.any_true"; export const i64x2_all_true = "~lib/builtins/i64x2.all_true"; // i64x2 has no .eq etc. + export const i64x2_min = "~lib/builtins/i64x2.min"; + export const i64x2_max = "~lib/builtins/i64x2.max"; export const i64x2_trunc_s_f64x2_sat = "~lib/builtins/i64x2.trunc_s_f64x2_sat"; export const i64x2_trunc_u_f64x2_sat = "~lib/builtins/i64x2.trunc_u_f64x2_sat"; @@ -4840,6 +4848,42 @@ export function compileCall( } let op: BinaryOp; switch (type.kind) { + case TypeKind.I8: + case TypeKind.U8: + case TypeKind.I16: + case TypeKind.U16: + case TypeKind.I32: + case TypeKind.U32: { + // case TypeKind.I64: + // case TypeKind.U64: { + let flow = compiler.currentFlow; + arg0 = compiler.compileExpression(operands[0], Type.v128, ConversionKind.IMPLICIT, WrapMode.NONE); + arg1 = compiler.compileExpression(operands[1], Type.v128, ConversionKind.IMPLICIT, WrapMode.NONE); + let tempLocal0 = flow.getTempLocal(Type.v128); + let tempLocal1 = flow.getTempLocal(Type.v128); + flow.freeTempLocal(tempLocal0); + op = BinaryOp.LtSVecI8x16; + switch (type.kind) { + case TypeKind.I8: { op = BinaryOp.LtSVecI8x16; break; } + case TypeKind.U8: { op = BinaryOp.LtUVecI8x16; break; } + case TypeKind.I16: { op = BinaryOp.LtSVecI16x8; break; } + case TypeKind.U16: { op = BinaryOp.LtUVecI16x8; break; } + case TypeKind.I32: { op = BinaryOp.LtSVecI32x4; break; } + case TypeKind.U32: { op = BinaryOp.LtUVecI32x4; break; } + // case TypeKind.I64: { op = BinaryOp.LtSVecI64x2; break; } + // case TypeKind.U64: { op = BinaryOp.LtUVecI64x2; break; } + default: break; + } + + return module.createSIMDBitselect( + module.createTeeLocal(tempLocal0.index, arg0), + module.createTeeLocal(tempLocal1.index, arg1), + module.createBinary(op, + module.createGetLocal(tempLocal0.index, NativeType.V128), + module.createGetLocal(tempLocal1.index, NativeType.V128) + ) + ); + } case TypeKind.F32: { op = BinaryOp.MinVecF32x4; break; } case TypeKind.F64: { op = BinaryOp.MinVecF64x2; break; } default: { @@ -4882,6 +4926,42 @@ export function compileCall( } let op: BinaryOp; switch (type.kind) { + case TypeKind.I8: + case TypeKind.U8: + case TypeKind.I16: + case TypeKind.U16: + case TypeKind.I32: + case TypeKind.U32: { + // case TypeKind.I64: + // case TypeKind.U64: { + let flow = compiler.currentFlow; + arg0 = compiler.compileExpression(operands[0], Type.v128, ConversionKind.IMPLICIT, WrapMode.NONE); + arg1 = compiler.compileExpression(operands[1], Type.v128, ConversionKind.IMPLICIT, WrapMode.NONE); + let tempLocal0 = flow.getTempLocal(Type.v128); + let tempLocal1 = flow.getTempLocal(Type.v128); + flow.freeTempLocal(tempLocal0); + op = BinaryOp.GtSVecI8x16; + switch (type.kind) { + case TypeKind.I8: { op = BinaryOp.GtSVecI8x16; break; } + case TypeKind.U8: { op = BinaryOp.GtUVecI8x16; break; } + case TypeKind.I16: { op = BinaryOp.GtSVecI16x8; break; } + case TypeKind.U16: { op = BinaryOp.GtUVecI16x8; break; } + case TypeKind.I32: { op = BinaryOp.GtSVecI32x4; break; } + case TypeKind.U32: { op = BinaryOp.GtUVecI32x4; break; } + // case TypeKind.I64: { op = BinaryOp.GtSVecI64x2; break; } + // case TypeKind.U64: { op = BinaryOp.GtUVecI64x2; break; } + default: break; + } + + return module.createSIMDBitselect( + module.createTeeLocal(tempLocal0.index, arg0), + module.createTeeLocal(tempLocal1.index, arg1), + module.createBinary(op, + module.createGetLocal(tempLocal0.index, NativeType.V128), + module.createGetLocal(tempLocal1.index, NativeType.V128) + ) + ); + } case TypeKind.F32: { op = BinaryOp.MaxVecF32x4; break; } case TypeKind.F64: { op = BinaryOp.MaxVecF64x2; break; } default: { diff --git a/tests/compiler/simd.ts b/tests/compiler/simd.ts index 677f95852b..f08fa6c137 100644 --- a/tests/compiler/simd.ts +++ b/tests/compiler/simd.ts @@ -50,6 +50,20 @@ function test_v128(): void { ) == v128(16, 2, 14, 4, 12, 6, 10, 8, 8, 10, 6, 12, 4, 14, 2, 16), ); + assert( + v128.max( + v128(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0), + v128(0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2), + ) == + v128(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2), + ); + assert( + v128.min( + v128(-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0), + v128( 0,-2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2), + ) == + v128(-1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2), + ); // generic operations are tested by the aliases below already // FIXME: node/nightly currently fails to validate this. works in node/v8-canary. From 9e1f0370af7d82c5ef536bf47b4b9495d671fab5 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 2 Mar 2019 16:59:48 +0200 Subject: [PATCH 2/9] rebuild --- tests/compiler/simd.optimized.wat | 27 ++- tests/compiler/simd.untouched.wat | 351 +++++++++++++++++------------- 2 files changed, 224 insertions(+), 154 deletions(-) diff --git a/tests/compiler/simd.optimized.wat b/tests/compiler/simd.optimized.wat index 2505ac86a0..6da8b925b7 100644 --- a/tests/compiler/simd.optimized.wat +++ b/tests/compiler/simd.optimized.wat @@ -9,13 +9,36 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start (; 0 ;) (type $FUNCSIG$v) + (func $start:simd (; 0 ;) (type $FUNCSIG$v) + (local $0 v128) + (local $1 v128) i32.const 32 global.set $~lib/allocator/arena/startOffset global.get $~lib/allocator/arena/startOffset global.set $~lib/allocator/arena/offset + v128.const i32 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 + local.tee $0 + v128.const i32 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 + local.tee $1 + local.get $0 + local.get $1 + i8x16.gt_u + v128.bitselect + drop + v128.const i32 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 + local.tee $0 + v128.const i32 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe + local.tee $1 + local.get $0 + local.get $1 + i8x16.lt_s + v128.bitselect + drop ) - (func $null (; 1 ;) (type $FUNCSIG$v) + (func $start (; 1 ;) (type $FUNCSIG$v) + call $start:simd + ) + (func $null (; 2 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/simd.untouched.wat b/tests/compiler/simd.untouched.wat index 4919d16fe2..56af830eec 100644 --- a/tests/compiler/simd.untouched.wat +++ b/tests/compiler/simd.untouched.wat @@ -26,6 +26,9 @@ global.set $~lib/allocator/arena/offset ) (func $simd/test_v128 (; 2 ;) (type $FUNCSIG$v) + (local $0 v128) + (local $1 v128) + (local $2 v128) v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 i8x16.eq @@ -141,6 +144,50 @@ call $~lib/env/abort unreachable end + v128.const i32 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 + local.tee $0 + v128.const i32 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 + local.tee $1 + local.get $0 + local.get $1 + i8x16.gt_u + v128.bitselect + v128.const i32 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 53 + i32.const 2 + call $~lib/env/abort + unreachable + end + v128.const i32 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 + local.tee $0 + v128.const i32 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe + local.tee $2 + local.get $0 + local.get $2 + i8x16.lt_s + v128.bitselect + v128.const i32 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe + i8x16.eq + i8x16.all_true + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 8 + i32.const 60 + i32.const 2 + call $~lib/env/abort + unreachable + end ) (func $simd/test_i8x16 (; 3 ;) (type $FUNCSIG$v) (local $0 v128) @@ -162,7 +209,7 @@ if i32.const 0 i32.const 8 - i32.const 62 + i32.const 76 i32.const 2 call $~lib/env/abort unreachable @@ -180,7 +227,7 @@ if i32.const 0 i32.const 8 - i32.const 64 + i32.const 78 i32.const 2 call $~lib/env/abort unreachable @@ -199,7 +246,7 @@ if i32.const 0 i32.const 8 - i32.const 66 + i32.const 80 i32.const 2 call $~lib/env/abort unreachable @@ -216,7 +263,7 @@ if i32.const 0 i32.const 8 - i32.const 67 + i32.const 81 i32.const 2 call $~lib/env/abort unreachable @@ -233,7 +280,7 @@ if i32.const 0 i32.const 8 - i32.const 68 + i32.const 82 i32.const 2 call $~lib/env/abort unreachable @@ -249,7 +296,7 @@ if i32.const 0 i32.const 8 - i32.const 69 + i32.const 83 i32.const 2 call $~lib/env/abort unreachable @@ -266,7 +313,7 @@ if i32.const 0 i32.const 8 - i32.const 74 + i32.const 88 i32.const 2 call $~lib/env/abort unreachable @@ -283,7 +330,7 @@ if i32.const 0 i32.const 8 - i32.const 75 + i32.const 89 i32.const 2 call $~lib/env/abort unreachable @@ -298,7 +345,7 @@ if i32.const 0 i32.const 8 - i32.const 76 + i32.const 90 i32.const 2 call $~lib/env/abort unreachable @@ -315,7 +362,7 @@ if i32.const 0 i32.const 8 - i32.const 77 + i32.const 91 i32.const 2 call $~lib/env/abort unreachable @@ -332,7 +379,7 @@ if i32.const 0 i32.const 8 - i32.const 82 + i32.const 96 i32.const 2 call $~lib/env/abort unreachable @@ -351,7 +398,7 @@ if i32.const 0 i32.const 8 - i32.const 87 + i32.const 101 i32.const 2 call $~lib/env/abort unreachable @@ -370,7 +417,7 @@ if i32.const 0 i32.const 8 - i32.const 93 + i32.const 107 i32.const 2 call $~lib/env/abort unreachable @@ -389,7 +436,7 @@ if i32.const 0 i32.const 8 - i32.const 99 + i32.const 113 i32.const 2 call $~lib/env/abort unreachable @@ -408,7 +455,7 @@ if i32.const 0 i32.const 8 - i32.const 105 + i32.const 119 i32.const 2 call $~lib/env/abort unreachable @@ -427,7 +474,7 @@ if i32.const 0 i32.const 8 - i32.const 111 + i32.const 125 i32.const 2 call $~lib/env/abort unreachable @@ -446,7 +493,7 @@ if i32.const 0 i32.const 8 - i32.const 112 + i32.const 126 i32.const 2 call $~lib/env/abort unreachable @@ -465,7 +512,7 @@ if i32.const 0 i32.const 8 - i32.const 113 + i32.const 127 i32.const 2 call $~lib/env/abort unreachable @@ -480,7 +527,7 @@ if i32.const 0 i32.const 8 - i32.const 114 + i32.const 128 i32.const 2 call $~lib/env/abort unreachable @@ -496,7 +543,7 @@ if i32.const 0 i32.const 8 - i32.const 115 + i32.const 129 i32.const 2 call $~lib/env/abort unreachable @@ -528,7 +575,7 @@ if i32.const 0 i32.const 8 - i32.const 120 + i32.const 134 i32.const 2 call $~lib/env/abort unreachable @@ -545,7 +592,7 @@ if i32.const 0 i32.const 8 - i32.const 121 + i32.const 135 i32.const 2 call $~lib/env/abort unreachable @@ -562,7 +609,7 @@ if i32.const 0 i32.const 8 - i32.const 122 + i32.const 136 i32.const 2 call $~lib/env/abort unreachable @@ -579,7 +626,7 @@ if i32.const 0 i32.const 8 - i32.const 123 + i32.const 137 i32.const 2 call $~lib/env/abort unreachable @@ -596,7 +643,7 @@ if i32.const 0 i32.const 8 - i32.const 124 + i32.const 138 i32.const 2 call $~lib/env/abort unreachable @@ -613,7 +660,7 @@ if i32.const 0 i32.const 8 - i32.const 125 + i32.const 139 i32.const 2 call $~lib/env/abort unreachable @@ -630,7 +677,7 @@ if i32.const 0 i32.const 8 - i32.const 126 + i32.const 140 i32.const 2 call $~lib/env/abort unreachable @@ -647,7 +694,7 @@ if i32.const 0 i32.const 8 - i32.const 127 + i32.const 141 i32.const 2 call $~lib/env/abort unreachable @@ -664,7 +711,7 @@ if i32.const 0 i32.const 8 - i32.const 128 + i32.const 142 i32.const 2 call $~lib/env/abort unreachable @@ -681,7 +728,7 @@ if i32.const 0 i32.const 8 - i32.const 129 + i32.const 143 i32.const 2 call $~lib/env/abort unreachable @@ -707,7 +754,7 @@ if i32.const 0 i32.const 8 - i32.const 134 + i32.const 148 i32.const 2 call $~lib/env/abort unreachable @@ -725,7 +772,7 @@ if i32.const 0 i32.const 8 - i32.const 136 + i32.const 150 i32.const 2 call $~lib/env/abort unreachable @@ -744,7 +791,7 @@ if i32.const 0 i32.const 8 - i32.const 138 + i32.const 152 i32.const 2 call $~lib/env/abort unreachable @@ -761,7 +808,7 @@ if i32.const 0 i32.const 8 - i32.const 139 + i32.const 153 i32.const 2 call $~lib/env/abort unreachable @@ -778,7 +825,7 @@ if i32.const 0 i32.const 8 - i32.const 140 + i32.const 154 i32.const 2 call $~lib/env/abort unreachable @@ -794,7 +841,7 @@ if i32.const 0 i32.const 8 - i32.const 141 + i32.const 155 i32.const 2 call $~lib/env/abort unreachable @@ -811,7 +858,7 @@ if i32.const 0 i32.const 8 - i32.const 146 + i32.const 160 i32.const 2 call $~lib/env/abort unreachable @@ -828,7 +875,7 @@ if i32.const 0 i32.const 8 - i32.const 147 + i32.const 161 i32.const 2 call $~lib/env/abort unreachable @@ -843,7 +890,7 @@ if i32.const 0 i32.const 8 - i32.const 148 + i32.const 162 i32.const 2 call $~lib/env/abort unreachable @@ -860,7 +907,7 @@ if i32.const 0 i32.const 8 - i32.const 149 + i32.const 163 i32.const 2 call $~lib/env/abort unreachable @@ -877,7 +924,7 @@ if i32.const 0 i32.const 8 - i32.const 154 + i32.const 168 i32.const 2 call $~lib/env/abort unreachable @@ -896,7 +943,7 @@ if i32.const 0 i32.const 8 - i32.const 159 + i32.const 173 i32.const 2 call $~lib/env/abort unreachable @@ -915,7 +962,7 @@ if i32.const 0 i32.const 8 - i32.const 165 + i32.const 179 i32.const 2 call $~lib/env/abort unreachable @@ -934,7 +981,7 @@ if i32.const 0 i32.const 8 - i32.const 171 + i32.const 185 i32.const 2 call $~lib/env/abort unreachable @@ -953,7 +1000,7 @@ if i32.const 0 i32.const 8 - i32.const 177 + i32.const 191 i32.const 2 call $~lib/env/abort unreachable @@ -972,7 +1019,7 @@ if i32.const 0 i32.const 8 - i32.const 183 + i32.const 197 i32.const 2 call $~lib/env/abort unreachable @@ -991,7 +1038,7 @@ if i32.const 0 i32.const 8 - i32.const 184 + i32.const 198 i32.const 2 call $~lib/env/abort unreachable @@ -1010,7 +1057,7 @@ if i32.const 0 i32.const 8 - i32.const 185 + i32.const 199 i32.const 2 call $~lib/env/abort unreachable @@ -1025,7 +1072,7 @@ if i32.const 0 i32.const 8 - i32.const 186 + i32.const 200 i32.const 2 call $~lib/env/abort unreachable @@ -1041,7 +1088,7 @@ if i32.const 0 i32.const 8 - i32.const 187 + i32.const 201 i32.const 2 call $~lib/env/abort unreachable @@ -1073,7 +1120,7 @@ if i32.const 0 i32.const 8 - i32.const 192 + i32.const 206 i32.const 2 call $~lib/env/abort unreachable @@ -1090,7 +1137,7 @@ if i32.const 0 i32.const 8 - i32.const 193 + i32.const 207 i32.const 2 call $~lib/env/abort unreachable @@ -1107,7 +1154,7 @@ if i32.const 0 i32.const 8 - i32.const 194 + i32.const 208 i32.const 2 call $~lib/env/abort unreachable @@ -1124,7 +1171,7 @@ if i32.const 0 i32.const 8 - i32.const 195 + i32.const 209 i32.const 2 call $~lib/env/abort unreachable @@ -1141,7 +1188,7 @@ if i32.const 0 i32.const 8 - i32.const 196 + i32.const 210 i32.const 2 call $~lib/env/abort unreachable @@ -1158,7 +1205,7 @@ if i32.const 0 i32.const 8 - i32.const 197 + i32.const 211 i32.const 2 call $~lib/env/abort unreachable @@ -1175,7 +1222,7 @@ if i32.const 0 i32.const 8 - i32.const 198 + i32.const 212 i32.const 2 call $~lib/env/abort unreachable @@ -1192,7 +1239,7 @@ if i32.const 0 i32.const 8 - i32.const 199 + i32.const 213 i32.const 2 call $~lib/env/abort unreachable @@ -1209,7 +1256,7 @@ if i32.const 0 i32.const 8 - i32.const 200 + i32.const 214 i32.const 2 call $~lib/env/abort unreachable @@ -1226,7 +1273,7 @@ if i32.const 0 i32.const 8 - i32.const 201 + i32.const 215 i32.const 2 call $~lib/env/abort unreachable @@ -1252,7 +1299,7 @@ if i32.const 0 i32.const 8 - i32.const 206 + i32.const 220 i32.const 2 call $~lib/env/abort unreachable @@ -1270,7 +1317,7 @@ if i32.const 0 i32.const 8 - i32.const 208 + i32.const 222 i32.const 2 call $~lib/env/abort unreachable @@ -1289,7 +1336,7 @@ if i32.const 0 i32.const 8 - i32.const 210 + i32.const 224 i32.const 2 call $~lib/env/abort unreachable @@ -1306,7 +1353,7 @@ if i32.const 0 i32.const 8 - i32.const 211 + i32.const 225 i32.const 2 call $~lib/env/abort unreachable @@ -1323,7 +1370,7 @@ if i32.const 0 i32.const 8 - i32.const 212 + i32.const 226 i32.const 2 call $~lib/env/abort unreachable @@ -1339,7 +1386,7 @@ if i32.const 0 i32.const 8 - i32.const 213 + i32.const 227 i32.const 2 call $~lib/env/abort unreachable @@ -1352,7 +1399,7 @@ if i32.const 0 i32.const 8 - i32.const 218 + i32.const 232 i32.const 2 call $~lib/env/abort unreachable @@ -1365,7 +1412,7 @@ if i32.const 0 i32.const 8 - i32.const 219 + i32.const 233 i32.const 2 call $~lib/env/abort unreachable @@ -1382,7 +1429,7 @@ if i32.const 0 i32.const 8 - i32.const 220 + i32.const 234 i32.const 2 call $~lib/env/abort unreachable @@ -1399,7 +1446,7 @@ if i32.const 0 i32.const 8 - i32.const 225 + i32.const 239 i32.const 2 call $~lib/env/abort unreachable @@ -1418,7 +1465,7 @@ if i32.const 0 i32.const 8 - i32.const 230 + i32.const 244 i32.const 2 call $~lib/env/abort unreachable @@ -1437,7 +1484,7 @@ if i32.const 0 i32.const 8 - i32.const 231 + i32.const 245 i32.const 2 call $~lib/env/abort unreachable @@ -1456,7 +1503,7 @@ if i32.const 0 i32.const 8 - i32.const 232 + i32.const 246 i32.const 2 call $~lib/env/abort unreachable @@ -1471,7 +1518,7 @@ if i32.const 0 i32.const 8 - i32.const 233 + i32.const 247 i32.const 2 call $~lib/env/abort unreachable @@ -1487,7 +1534,7 @@ if i32.const 0 i32.const 8 - i32.const 234 + i32.const 248 i32.const 2 call $~lib/env/abort unreachable @@ -1519,7 +1566,7 @@ if i32.const 0 i32.const 8 - i32.const 239 + i32.const 253 i32.const 2 call $~lib/env/abort unreachable @@ -1536,7 +1583,7 @@ if i32.const 0 i32.const 8 - i32.const 240 + i32.const 254 i32.const 2 call $~lib/env/abort unreachable @@ -1553,7 +1600,7 @@ if i32.const 0 i32.const 8 - i32.const 241 + i32.const 255 i32.const 2 call $~lib/env/abort unreachable @@ -1570,7 +1617,7 @@ if i32.const 0 i32.const 8 - i32.const 242 + i32.const 256 i32.const 2 call $~lib/env/abort unreachable @@ -1587,7 +1634,7 @@ if i32.const 0 i32.const 8 - i32.const 243 + i32.const 257 i32.const 2 call $~lib/env/abort unreachable @@ -1604,7 +1651,7 @@ if i32.const 0 i32.const 8 - i32.const 244 + i32.const 258 i32.const 2 call $~lib/env/abort unreachable @@ -1621,7 +1668,7 @@ if i32.const 0 i32.const 8 - i32.const 245 + i32.const 259 i32.const 2 call $~lib/env/abort unreachable @@ -1638,7 +1685,7 @@ if i32.const 0 i32.const 8 - i32.const 246 + i32.const 260 i32.const 2 call $~lib/env/abort unreachable @@ -1655,7 +1702,7 @@ if i32.const 0 i32.const 8 - i32.const 247 + i32.const 261 i32.const 2 call $~lib/env/abort unreachable @@ -1672,7 +1719,7 @@ if i32.const 0 i32.const 8 - i32.const 248 + i32.const 262 i32.const 2 call $~lib/env/abort unreachable @@ -1690,7 +1737,7 @@ if i32.const 0 i32.const 8 - i32.const 249 + i32.const 263 i32.const 2 call $~lib/env/abort unreachable @@ -1708,7 +1755,7 @@ if i32.const 0 i32.const 8 - i32.const 254 + i32.const 268 i32.const 2 call $~lib/env/abort unreachable @@ -1730,7 +1777,7 @@ if i32.const 0 i32.const 8 - i32.const 263 + i32.const 277 i32.const 2 call $~lib/env/abort unreachable @@ -1748,7 +1795,7 @@ if i32.const 0 i32.const 8 - i32.const 265 + i32.const 279 i32.const 2 call $~lib/env/abort unreachable @@ -1767,7 +1814,7 @@ if i32.const 0 i32.const 8 - i32.const 267 + i32.const 281 i32.const 2 call $~lib/env/abort unreachable @@ -1784,7 +1831,7 @@ if i32.const 0 i32.const 8 - i32.const 268 + i32.const 282 i32.const 2 call $~lib/env/abort unreachable @@ -1800,7 +1847,7 @@ if i32.const 0 i32.const 8 - i32.const 269 + i32.const 283 i32.const 2 call $~lib/env/abort unreachable @@ -1813,7 +1860,7 @@ if i32.const 0 i32.const 8 - i32.const 274 + i32.const 288 i32.const 2 call $~lib/env/abort unreachable @@ -1826,7 +1873,7 @@ if i32.const 0 i32.const 8 - i32.const 275 + i32.const 289 i32.const 2 call $~lib/env/abort unreachable @@ -1843,7 +1890,7 @@ if i32.const 0 i32.const 8 - i32.const 276 + i32.const 290 i32.const 2 call $~lib/env/abort unreachable @@ -1860,7 +1907,7 @@ if i32.const 0 i32.const 8 - i32.const 281 + i32.const 295 i32.const 2 call $~lib/env/abort unreachable @@ -1879,7 +1926,7 @@ if i32.const 0 i32.const 8 - i32.const 286 + i32.const 300 i32.const 2 call $~lib/env/abort unreachable @@ -1898,7 +1945,7 @@ if i32.const 0 i32.const 8 - i32.const 287 + i32.const 301 i32.const 2 call $~lib/env/abort unreachable @@ -1917,7 +1964,7 @@ if i32.const 0 i32.const 8 - i32.const 288 + i32.const 302 i32.const 2 call $~lib/env/abort unreachable @@ -1932,7 +1979,7 @@ if i32.const 0 i32.const 8 - i32.const 289 + i32.const 303 i32.const 2 call $~lib/env/abort unreachable @@ -1948,7 +1995,7 @@ if i32.const 0 i32.const 8 - i32.const 290 + i32.const 304 i32.const 2 call $~lib/env/abort unreachable @@ -1966,7 +2013,7 @@ if i32.const 0 i32.const 8 - i32.const 291 + i32.const 305 i32.const 2 call $~lib/env/abort unreachable @@ -1984,7 +2031,7 @@ if i32.const 0 i32.const 8 - i32.const 296 + i32.const 310 i32.const 2 call $~lib/env/abort unreachable @@ -2011,7 +2058,7 @@ if i32.const 0 i32.const 8 - i32.const 305 + i32.const 319 i32.const 2 call $~lib/env/abort unreachable @@ -2029,7 +2076,7 @@ if i32.const 0 i32.const 8 - i32.const 307 + i32.const 321 i32.const 2 call $~lib/env/abort unreachable @@ -2048,7 +2095,7 @@ if i32.const 0 i32.const 8 - i32.const 309 + i32.const 323 i32.const 2 call $~lib/env/abort unreachable @@ -2065,7 +2112,7 @@ if i32.const 0 i32.const 8 - i32.const 310 + i32.const 324 i32.const 2 call $~lib/env/abort unreachable @@ -2082,7 +2129,7 @@ if i32.const 0 i32.const 8 - i32.const 311 + i32.const 325 i32.const 2 call $~lib/env/abort unreachable @@ -2103,7 +2150,7 @@ if i32.const 0 i32.const 8 - i32.const 313 + i32.const 327 i32.const 2 call $~lib/env/abort unreachable @@ -2120,7 +2167,7 @@ if i32.const 0 i32.const 8 - i32.const 314 + i32.const 328 i32.const 2 call $~lib/env/abort unreachable @@ -2136,7 +2183,7 @@ if i32.const 0 i32.const 8 - i32.const 315 + i32.const 329 i32.const 2 call $~lib/env/abort unreachable @@ -2149,7 +2196,7 @@ if i32.const 0 i32.const 8 - i32.const 316 + i32.const 330 i32.const 2 call $~lib/env/abort unreachable @@ -2162,7 +2209,7 @@ if i32.const 0 i32.const 8 - i32.const 317 + i32.const 331 i32.const 2 call $~lib/env/abort unreachable @@ -2179,7 +2226,7 @@ if i32.const 0 i32.const 8 - i32.const 318 + i32.const 332 i32.const 2 call $~lib/env/abort unreachable @@ -2196,7 +2243,7 @@ if i32.const 0 i32.const 8 - i32.const 323 + i32.const 337 i32.const 2 call $~lib/env/abort unreachable @@ -2227,7 +2274,7 @@ if i32.const 0 i32.const 8 - i32.const 332 + i32.const 346 i32.const 2 call $~lib/env/abort unreachable @@ -2244,7 +2291,7 @@ if i32.const 0 i32.const 8 - i32.const 333 + i32.const 347 i32.const 2 call $~lib/env/abort unreachable @@ -2261,7 +2308,7 @@ if i32.const 0 i32.const 8 - i32.const 334 + i32.const 348 i32.const 2 call $~lib/env/abort unreachable @@ -2278,7 +2325,7 @@ if i32.const 0 i32.const 8 - i32.const 335 + i32.const 349 i32.const 2 call $~lib/env/abort unreachable @@ -2295,7 +2342,7 @@ if i32.const 0 i32.const 8 - i32.const 336 + i32.const 350 i32.const 2 call $~lib/env/abort unreachable @@ -2312,7 +2359,7 @@ if i32.const 0 i32.const 8 - i32.const 337 + i32.const 351 i32.const 2 call $~lib/env/abort unreachable @@ -2329,7 +2376,7 @@ if i32.const 0 i32.const 8 - i32.const 338 + i32.const 352 i32.const 2 call $~lib/env/abort unreachable @@ -2346,7 +2393,7 @@ if i32.const 0 i32.const 8 - i32.const 339 + i32.const 353 i32.const 2 call $~lib/env/abort unreachable @@ -2362,7 +2409,7 @@ if i32.const 0 i32.const 8 - i32.const 340 + i32.const 354 i32.const 2 call $~lib/env/abort unreachable @@ -2378,7 +2425,7 @@ if i32.const 0 i32.const 8 - i32.const 341 + i32.const 355 i32.const 2 call $~lib/env/abort unreachable @@ -2396,7 +2443,7 @@ if i32.const 0 i32.const 8 - i32.const 342 + i32.const 356 i32.const 2 call $~lib/env/abort unreachable @@ -2414,7 +2461,7 @@ if i32.const 0 i32.const 8 - i32.const 347 + i32.const 361 i32.const 2 call $~lib/env/abort unreachable @@ -2441,7 +2488,7 @@ if i32.const 0 i32.const 8 - i32.const 356 + i32.const 370 i32.const 2 call $~lib/env/abort unreachable @@ -2459,7 +2506,7 @@ if i32.const 0 i32.const 8 - i32.const 358 + i32.const 372 i32.const 2 call $~lib/env/abort unreachable @@ -2478,7 +2525,7 @@ if i32.const 0 i32.const 8 - i32.const 360 + i32.const 374 i32.const 2 call $~lib/env/abort unreachable @@ -2495,7 +2542,7 @@ if i32.const 0 i32.const 8 - i32.const 361 + i32.const 375 i32.const 2 call $~lib/env/abort unreachable @@ -2512,7 +2559,7 @@ if i32.const 0 i32.const 8 - i32.const 362 + i32.const 376 i32.const 2 call $~lib/env/abort unreachable @@ -2533,7 +2580,7 @@ if i32.const 0 i32.const 8 - i32.const 364 + i32.const 378 i32.const 2 call $~lib/env/abort unreachable @@ -2550,7 +2597,7 @@ if i32.const 0 i32.const 8 - i32.const 365 + i32.const 379 i32.const 2 call $~lib/env/abort unreachable @@ -2566,7 +2613,7 @@ if i32.const 0 i32.const 8 - i32.const 366 + i32.const 380 i32.const 2 call $~lib/env/abort unreachable @@ -2579,7 +2626,7 @@ if i32.const 0 i32.const 8 - i32.const 367 + i32.const 381 i32.const 2 call $~lib/env/abort unreachable @@ -2592,7 +2639,7 @@ if i32.const 0 i32.const 8 - i32.const 368 + i32.const 382 i32.const 2 call $~lib/env/abort unreachable @@ -2609,7 +2656,7 @@ if i32.const 0 i32.const 8 - i32.const 369 + i32.const 383 i32.const 2 call $~lib/env/abort unreachable @@ -2626,7 +2673,7 @@ if i32.const 0 i32.const 8 - i32.const 374 + i32.const 388 i32.const 2 call $~lib/env/abort unreachable @@ -2657,7 +2704,7 @@ if i32.const 0 i32.const 8 - i32.const 383 + i32.const 397 i32.const 2 call $~lib/env/abort unreachable @@ -2674,7 +2721,7 @@ if i32.const 0 i32.const 8 - i32.const 384 + i32.const 398 i32.const 2 call $~lib/env/abort unreachable @@ -2691,7 +2738,7 @@ if i32.const 0 i32.const 8 - i32.const 385 + i32.const 399 i32.const 2 call $~lib/env/abort unreachable @@ -2708,7 +2755,7 @@ if i32.const 0 i32.const 8 - i32.const 386 + i32.const 400 i32.const 2 call $~lib/env/abort unreachable @@ -2725,7 +2772,7 @@ if i32.const 0 i32.const 8 - i32.const 387 + i32.const 401 i32.const 2 call $~lib/env/abort unreachable @@ -2742,7 +2789,7 @@ if i32.const 0 i32.const 8 - i32.const 388 + i32.const 402 i32.const 2 call $~lib/env/abort unreachable @@ -2759,7 +2806,7 @@ if i32.const 0 i32.const 8 - i32.const 389 + i32.const 403 i32.const 2 call $~lib/env/abort unreachable @@ -2776,7 +2823,7 @@ if i32.const 0 i32.const 8 - i32.const 390 + i32.const 404 i32.const 2 call $~lib/env/abort unreachable @@ -2792,7 +2839,7 @@ if i32.const 0 i32.const 8 - i32.const 391 + i32.const 405 i32.const 2 call $~lib/env/abort unreachable @@ -2808,7 +2855,7 @@ if i32.const 0 i32.const 8 - i32.const 392 + i32.const 406 i32.const 2 call $~lib/env/abort unreachable @@ -2826,7 +2873,7 @@ if i32.const 0 i32.const 8 - i32.const 393 + i32.const 407 i32.const 2 call $~lib/env/abort unreachable @@ -2844,7 +2891,7 @@ if i32.const 0 i32.const 8 - i32.const 398 + i32.const 412 i32.const 2 call $~lib/env/abort unreachable @@ -2869,7 +2916,7 @@ if i32.const 0 i32.const 8 - i32.const 408 + i32.const 422 i32.const 2 call $~lib/env/abort unreachable From a6db805fa92fc9bf549408c5c25ac19d97a88159 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 2 Mar 2019 17:55:13 +0200 Subject: [PATCH 3/9] work? --- src/builtins.ts | 12 ++++-------- tests/compiler/simd.untouched.wat | 5 ++--- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/builtins.ts b/src/builtins.ts index 0729e0fd9f..a82400a444 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -340,8 +340,6 @@ export namespace BuiltinSymbols { export const i8x16_shr_u = "~lib/builtins/i8x16.shr_u"; export const i8x16_any_true = "~lib/builtins/i8x16.any_true"; export const i8x16_all_true = "~lib/builtins/i8x16.all_true"; - export const i8x16_min = "~lib/builtins/i8x16.min"; - export const i8x16_max = "~lib/builtins/i8x16.max"; export const i8x16_eq = "~lib/builtins/i8x16.eq"; export const i8x16_ne = "~lib/builtins/i8x16.ne"; export const i8x16_lt_s = "~lib/builtins/i8x16.lt_s"; @@ -4860,9 +4858,8 @@ export function compileCall( arg0 = compiler.compileExpression(operands[0], Type.v128, ConversionKind.IMPLICIT, WrapMode.NONE); arg1 = compiler.compileExpression(operands[1], Type.v128, ConversionKind.IMPLICIT, WrapMode.NONE); let tempLocal0 = flow.getTempLocal(Type.v128); - let tempLocal1 = flow.getTempLocal(Type.v128); + let tempLocal1 = flow.getAndFreeTempLocal(Type.v128, false); flow.freeTempLocal(tempLocal0); - op = BinaryOp.LtSVecI8x16; switch (type.kind) { case TypeKind.I8: { op = BinaryOp.LtSVecI8x16; break; } case TypeKind.U8: { op = BinaryOp.LtUVecI8x16; break; } @@ -4872,7 +4869,7 @@ export function compileCall( case TypeKind.U32: { op = BinaryOp.LtUVecI32x4; break; } // case TypeKind.I64: { op = BinaryOp.LtSVecI64x2; break; } // case TypeKind.U64: { op = BinaryOp.LtUVecI64x2; break; } - default: break; + default: { op = BinaryOp.LtSVecI8x16; break; } } return module.createSIMDBitselect( @@ -4938,9 +4935,8 @@ export function compileCall( arg0 = compiler.compileExpression(operands[0], Type.v128, ConversionKind.IMPLICIT, WrapMode.NONE); arg1 = compiler.compileExpression(operands[1], Type.v128, ConversionKind.IMPLICIT, WrapMode.NONE); let tempLocal0 = flow.getTempLocal(Type.v128); - let tempLocal1 = flow.getTempLocal(Type.v128); + let tempLocal1 = flow.getAndFreeTempLocal(Type.v128, false); flow.freeTempLocal(tempLocal0); - op = BinaryOp.GtSVecI8x16; switch (type.kind) { case TypeKind.I8: { op = BinaryOp.GtSVecI8x16; break; } case TypeKind.U8: { op = BinaryOp.GtUVecI8x16; break; } @@ -4950,7 +4946,7 @@ export function compileCall( case TypeKind.U32: { op = BinaryOp.GtUVecI32x4; break; } // case TypeKind.I64: { op = BinaryOp.GtSVecI64x2; break; } // case TypeKind.U64: { op = BinaryOp.GtUVecI64x2; break; } - default: break; + default: { op = BinaryOp.GtSVecI8x16; break; } } return module.createSIMDBitselect( diff --git a/tests/compiler/simd.untouched.wat b/tests/compiler/simd.untouched.wat index 56af830eec..59b3bdef79 100644 --- a/tests/compiler/simd.untouched.wat +++ b/tests/compiler/simd.untouched.wat @@ -28,7 +28,6 @@ (func $simd/test_v128 (; 2 ;) (type $FUNCSIG$v) (local $0 v128) (local $1 v128) - (local $2 v128) v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 i8x16.eq @@ -169,9 +168,9 @@ v128.const i32 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 local.tee $0 v128.const i32 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe - local.tee $2 + local.tee $1 local.get $0 - local.get $2 + local.get $1 i8x16.lt_s v128.bitselect v128.const i32 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe From e20a2e76ad91940ad3dc3bb1420d28e76ad35a46 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 2 Mar 2019 19:13:06 +0200 Subject: [PATCH 4/9] try create manually --- tests/compiler/simd.optimized.wat | 24 ++- tests/compiler/simd.ts | 15 ++ tests/compiler/simd.untouched.wat | 322 +++++++++++++++--------------- 3 files changed, 194 insertions(+), 167 deletions(-) diff --git a/tests/compiler/simd.optimized.wat b/tests/compiler/simd.optimized.wat index 6da8b925b7..180764f098 100644 --- a/tests/compiler/simd.optimized.wat +++ b/tests/compiler/simd.optimized.wat @@ -1,5 +1,7 @@ (module (type $FUNCSIG$v (func)) + (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\07\00\00\00s\00i\00m\00d\00.\00t\00s") (table $0 1 funcref) @@ -9,13 +11,9 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start:simd (; 0 ;) (type $FUNCSIG$v) + (func $simd/test_v128 (; 1 ;) (type $FUNCSIG$v) (local $0 v128) (local $1 v128) - i32.const 32 - global.set $~lib/allocator/arena/startOffset - global.get $~lib/allocator/arena/startOffset - global.set $~lib/allocator/arena/offset v128.const i32 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 local.tee $0 v128.const i32 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 @@ -34,11 +32,21 @@ i8x16.lt_s v128.bitselect drop + i32.const 0 + i32.const 8 + i32.const 78 + i32.const 2 + call $~lib/env/abort + unreachable ) - (func $start (; 1 ;) (type $FUNCSIG$v) - call $start:simd + (func $start (; 2 ;) (type $FUNCSIG$v) + i32.const 32 + global.set $~lib/allocator/arena/startOffset + global.get $~lib/allocator/arena/startOffset + global.set $~lib/allocator/arena/offset + call $simd/test_v128 ) - (func $null (; 2 ;) (type $FUNCSIG$v) + (func $null (; 3 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/simd.ts b/tests/compiler/simd.ts index f08fa6c137..1f4ce76000 100644 --- a/tests/compiler/simd.ts +++ b/tests/compiler/simd.ts @@ -50,6 +50,7 @@ function test_v128(): void { ) == v128(16, 2, 14, 4, 12, 6, 10, 8, 8, 10, 6, 12, 4, 14, 2, 16), ); + /* assert( v128.max( v128(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0), @@ -64,6 +65,20 @@ function test_v128(): void { ) == v128(-1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2), ); + */ + var t0 = v128(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0); + var t1 = v128(0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2); + assert( + v128.bitselect(t0, t1, i8x16.gt_u(t0, t1)) == + v128(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2) + ); + + t0 = v128(-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0); + t1 = v128( 0,-2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2); + assert( + v128.bitselect(t0, t1, i8x16.lt_s(t0, t1)) == + v128(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2) + ); // generic operations are tested by the aliases below already // FIXME: node/nightly currently fails to validate this. works in node/v8-canary. diff --git a/tests/compiler/simd.untouched.wat b/tests/compiler/simd.untouched.wat index 59b3bdef79..d99e6585a9 100644 --- a/tests/compiler/simd.untouched.wat +++ b/tests/compiler/simd.untouched.wat @@ -144,9 +144,11 @@ unreachable end v128.const i32 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 - local.tee $0 + local.set $0 v128.const i32 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 - local.tee $1 + local.set $1 + local.get $0 + local.get $1 local.get $0 local.get $1 i8x16.gt_u @@ -160,20 +162,22 @@ if i32.const 0 i32.const 8 - i32.const 53 + i32.const 71 i32.const 2 call $~lib/env/abort unreachable end v128.const i32 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 - local.tee $0 + local.set $0 v128.const i32 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe - local.tee $1 + local.set $1 + local.get $0 + local.get $1 local.get $0 local.get $1 i8x16.lt_s v128.bitselect - v128.const i32 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe + v128.const i32 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 i8x16.eq i8x16.all_true i32.const 0 @@ -182,7 +186,7 @@ if i32.const 0 i32.const 8 - i32.const 60 + i32.const 78 i32.const 2 call $~lib/env/abort unreachable @@ -208,7 +212,7 @@ if i32.const 0 i32.const 8 - i32.const 76 + i32.const 91 i32.const 2 call $~lib/env/abort unreachable @@ -226,7 +230,7 @@ if i32.const 0 i32.const 8 - i32.const 78 + i32.const 93 i32.const 2 call $~lib/env/abort unreachable @@ -245,7 +249,7 @@ if i32.const 0 i32.const 8 - i32.const 80 + i32.const 95 i32.const 2 call $~lib/env/abort unreachable @@ -262,7 +266,7 @@ if i32.const 0 i32.const 8 - i32.const 81 + i32.const 96 i32.const 2 call $~lib/env/abort unreachable @@ -279,7 +283,7 @@ if i32.const 0 i32.const 8 - i32.const 82 + i32.const 97 i32.const 2 call $~lib/env/abort unreachable @@ -295,7 +299,7 @@ if i32.const 0 i32.const 8 - i32.const 83 + i32.const 98 i32.const 2 call $~lib/env/abort unreachable @@ -312,7 +316,7 @@ if i32.const 0 i32.const 8 - i32.const 88 + i32.const 103 i32.const 2 call $~lib/env/abort unreachable @@ -329,7 +333,7 @@ if i32.const 0 i32.const 8 - i32.const 89 + i32.const 104 i32.const 2 call $~lib/env/abort unreachable @@ -344,7 +348,7 @@ if i32.const 0 i32.const 8 - i32.const 90 + i32.const 105 i32.const 2 call $~lib/env/abort unreachable @@ -361,7 +365,7 @@ if i32.const 0 i32.const 8 - i32.const 91 + i32.const 106 i32.const 2 call $~lib/env/abort unreachable @@ -378,7 +382,7 @@ if i32.const 0 i32.const 8 - i32.const 96 + i32.const 111 i32.const 2 call $~lib/env/abort unreachable @@ -397,7 +401,7 @@ if i32.const 0 i32.const 8 - i32.const 101 + i32.const 116 i32.const 2 call $~lib/env/abort unreachable @@ -416,7 +420,7 @@ if i32.const 0 i32.const 8 - i32.const 107 + i32.const 122 i32.const 2 call $~lib/env/abort unreachable @@ -435,7 +439,7 @@ if i32.const 0 i32.const 8 - i32.const 113 + i32.const 128 i32.const 2 call $~lib/env/abort unreachable @@ -454,7 +458,7 @@ if i32.const 0 i32.const 8 - i32.const 119 + i32.const 134 i32.const 2 call $~lib/env/abort unreachable @@ -473,7 +477,7 @@ if i32.const 0 i32.const 8 - i32.const 125 + i32.const 140 i32.const 2 call $~lib/env/abort unreachable @@ -492,7 +496,7 @@ if i32.const 0 i32.const 8 - i32.const 126 + i32.const 141 i32.const 2 call $~lib/env/abort unreachable @@ -511,7 +515,7 @@ if i32.const 0 i32.const 8 - i32.const 127 + i32.const 142 i32.const 2 call $~lib/env/abort unreachable @@ -526,7 +530,7 @@ if i32.const 0 i32.const 8 - i32.const 128 + i32.const 143 i32.const 2 call $~lib/env/abort unreachable @@ -542,7 +546,7 @@ if i32.const 0 i32.const 8 - i32.const 129 + i32.const 144 i32.const 2 call $~lib/env/abort unreachable @@ -574,7 +578,7 @@ if i32.const 0 i32.const 8 - i32.const 134 + i32.const 149 i32.const 2 call $~lib/env/abort unreachable @@ -591,7 +595,7 @@ if i32.const 0 i32.const 8 - i32.const 135 + i32.const 150 i32.const 2 call $~lib/env/abort unreachable @@ -608,7 +612,7 @@ if i32.const 0 i32.const 8 - i32.const 136 + i32.const 151 i32.const 2 call $~lib/env/abort unreachable @@ -625,7 +629,7 @@ if i32.const 0 i32.const 8 - i32.const 137 + i32.const 152 i32.const 2 call $~lib/env/abort unreachable @@ -642,7 +646,7 @@ if i32.const 0 i32.const 8 - i32.const 138 + i32.const 153 i32.const 2 call $~lib/env/abort unreachable @@ -659,7 +663,7 @@ if i32.const 0 i32.const 8 - i32.const 139 + i32.const 154 i32.const 2 call $~lib/env/abort unreachable @@ -676,7 +680,7 @@ if i32.const 0 i32.const 8 - i32.const 140 + i32.const 155 i32.const 2 call $~lib/env/abort unreachable @@ -693,7 +697,7 @@ if i32.const 0 i32.const 8 - i32.const 141 + i32.const 156 i32.const 2 call $~lib/env/abort unreachable @@ -710,7 +714,7 @@ if i32.const 0 i32.const 8 - i32.const 142 + i32.const 157 i32.const 2 call $~lib/env/abort unreachable @@ -727,7 +731,7 @@ if i32.const 0 i32.const 8 - i32.const 143 + i32.const 158 i32.const 2 call $~lib/env/abort unreachable @@ -753,7 +757,7 @@ if i32.const 0 i32.const 8 - i32.const 148 + i32.const 163 i32.const 2 call $~lib/env/abort unreachable @@ -771,7 +775,7 @@ if i32.const 0 i32.const 8 - i32.const 150 + i32.const 165 i32.const 2 call $~lib/env/abort unreachable @@ -790,7 +794,7 @@ if i32.const 0 i32.const 8 - i32.const 152 + i32.const 167 i32.const 2 call $~lib/env/abort unreachable @@ -807,7 +811,7 @@ if i32.const 0 i32.const 8 - i32.const 153 + i32.const 168 i32.const 2 call $~lib/env/abort unreachable @@ -824,7 +828,7 @@ if i32.const 0 i32.const 8 - i32.const 154 + i32.const 169 i32.const 2 call $~lib/env/abort unreachable @@ -840,7 +844,7 @@ if i32.const 0 i32.const 8 - i32.const 155 + i32.const 170 i32.const 2 call $~lib/env/abort unreachable @@ -857,7 +861,7 @@ if i32.const 0 i32.const 8 - i32.const 160 + i32.const 175 i32.const 2 call $~lib/env/abort unreachable @@ -874,7 +878,7 @@ if i32.const 0 i32.const 8 - i32.const 161 + i32.const 176 i32.const 2 call $~lib/env/abort unreachable @@ -889,7 +893,7 @@ if i32.const 0 i32.const 8 - i32.const 162 + i32.const 177 i32.const 2 call $~lib/env/abort unreachable @@ -906,7 +910,7 @@ if i32.const 0 i32.const 8 - i32.const 163 + i32.const 178 i32.const 2 call $~lib/env/abort unreachable @@ -923,7 +927,7 @@ if i32.const 0 i32.const 8 - i32.const 168 + i32.const 183 i32.const 2 call $~lib/env/abort unreachable @@ -942,7 +946,7 @@ if i32.const 0 i32.const 8 - i32.const 173 + i32.const 188 i32.const 2 call $~lib/env/abort unreachable @@ -961,7 +965,7 @@ if i32.const 0 i32.const 8 - i32.const 179 + i32.const 194 i32.const 2 call $~lib/env/abort unreachable @@ -980,7 +984,7 @@ if i32.const 0 i32.const 8 - i32.const 185 + i32.const 200 i32.const 2 call $~lib/env/abort unreachable @@ -999,7 +1003,7 @@ if i32.const 0 i32.const 8 - i32.const 191 + i32.const 206 i32.const 2 call $~lib/env/abort unreachable @@ -1018,7 +1022,7 @@ if i32.const 0 i32.const 8 - i32.const 197 + i32.const 212 i32.const 2 call $~lib/env/abort unreachable @@ -1037,7 +1041,7 @@ if i32.const 0 i32.const 8 - i32.const 198 + i32.const 213 i32.const 2 call $~lib/env/abort unreachable @@ -1056,7 +1060,7 @@ if i32.const 0 i32.const 8 - i32.const 199 + i32.const 214 i32.const 2 call $~lib/env/abort unreachable @@ -1071,7 +1075,7 @@ if i32.const 0 i32.const 8 - i32.const 200 + i32.const 215 i32.const 2 call $~lib/env/abort unreachable @@ -1087,7 +1091,7 @@ if i32.const 0 i32.const 8 - i32.const 201 + i32.const 216 i32.const 2 call $~lib/env/abort unreachable @@ -1119,7 +1123,7 @@ if i32.const 0 i32.const 8 - i32.const 206 + i32.const 221 i32.const 2 call $~lib/env/abort unreachable @@ -1136,7 +1140,7 @@ if i32.const 0 i32.const 8 - i32.const 207 + i32.const 222 i32.const 2 call $~lib/env/abort unreachable @@ -1153,7 +1157,7 @@ if i32.const 0 i32.const 8 - i32.const 208 + i32.const 223 i32.const 2 call $~lib/env/abort unreachable @@ -1170,7 +1174,7 @@ if i32.const 0 i32.const 8 - i32.const 209 + i32.const 224 i32.const 2 call $~lib/env/abort unreachable @@ -1187,7 +1191,7 @@ if i32.const 0 i32.const 8 - i32.const 210 + i32.const 225 i32.const 2 call $~lib/env/abort unreachable @@ -1204,7 +1208,7 @@ if i32.const 0 i32.const 8 - i32.const 211 + i32.const 226 i32.const 2 call $~lib/env/abort unreachable @@ -1221,7 +1225,7 @@ if i32.const 0 i32.const 8 - i32.const 212 + i32.const 227 i32.const 2 call $~lib/env/abort unreachable @@ -1238,7 +1242,7 @@ if i32.const 0 i32.const 8 - i32.const 213 + i32.const 228 i32.const 2 call $~lib/env/abort unreachable @@ -1255,7 +1259,7 @@ if i32.const 0 i32.const 8 - i32.const 214 + i32.const 229 i32.const 2 call $~lib/env/abort unreachable @@ -1272,7 +1276,7 @@ if i32.const 0 i32.const 8 - i32.const 215 + i32.const 230 i32.const 2 call $~lib/env/abort unreachable @@ -1298,7 +1302,7 @@ if i32.const 0 i32.const 8 - i32.const 220 + i32.const 235 i32.const 2 call $~lib/env/abort unreachable @@ -1316,7 +1320,7 @@ if i32.const 0 i32.const 8 - i32.const 222 + i32.const 237 i32.const 2 call $~lib/env/abort unreachable @@ -1335,7 +1339,7 @@ if i32.const 0 i32.const 8 - i32.const 224 + i32.const 239 i32.const 2 call $~lib/env/abort unreachable @@ -1352,7 +1356,7 @@ if i32.const 0 i32.const 8 - i32.const 225 + i32.const 240 i32.const 2 call $~lib/env/abort unreachable @@ -1369,7 +1373,7 @@ if i32.const 0 i32.const 8 - i32.const 226 + i32.const 241 i32.const 2 call $~lib/env/abort unreachable @@ -1385,7 +1389,7 @@ if i32.const 0 i32.const 8 - i32.const 227 + i32.const 242 i32.const 2 call $~lib/env/abort unreachable @@ -1398,7 +1402,7 @@ if i32.const 0 i32.const 8 - i32.const 232 + i32.const 247 i32.const 2 call $~lib/env/abort unreachable @@ -1411,7 +1415,7 @@ if i32.const 0 i32.const 8 - i32.const 233 + i32.const 248 i32.const 2 call $~lib/env/abort unreachable @@ -1428,7 +1432,7 @@ if i32.const 0 i32.const 8 - i32.const 234 + i32.const 249 i32.const 2 call $~lib/env/abort unreachable @@ -1445,7 +1449,7 @@ if i32.const 0 i32.const 8 - i32.const 239 + i32.const 254 i32.const 2 call $~lib/env/abort unreachable @@ -1464,7 +1468,7 @@ if i32.const 0 i32.const 8 - i32.const 244 + i32.const 259 i32.const 2 call $~lib/env/abort unreachable @@ -1483,7 +1487,7 @@ if i32.const 0 i32.const 8 - i32.const 245 + i32.const 260 i32.const 2 call $~lib/env/abort unreachable @@ -1502,7 +1506,7 @@ if i32.const 0 i32.const 8 - i32.const 246 + i32.const 261 i32.const 2 call $~lib/env/abort unreachable @@ -1517,7 +1521,7 @@ if i32.const 0 i32.const 8 - i32.const 247 + i32.const 262 i32.const 2 call $~lib/env/abort unreachable @@ -1533,7 +1537,7 @@ if i32.const 0 i32.const 8 - i32.const 248 + i32.const 263 i32.const 2 call $~lib/env/abort unreachable @@ -1565,7 +1569,7 @@ if i32.const 0 i32.const 8 - i32.const 253 + i32.const 268 i32.const 2 call $~lib/env/abort unreachable @@ -1582,7 +1586,7 @@ if i32.const 0 i32.const 8 - i32.const 254 + i32.const 269 i32.const 2 call $~lib/env/abort unreachable @@ -1599,7 +1603,7 @@ if i32.const 0 i32.const 8 - i32.const 255 + i32.const 270 i32.const 2 call $~lib/env/abort unreachable @@ -1616,7 +1620,7 @@ if i32.const 0 i32.const 8 - i32.const 256 + i32.const 271 i32.const 2 call $~lib/env/abort unreachable @@ -1633,7 +1637,7 @@ if i32.const 0 i32.const 8 - i32.const 257 + i32.const 272 i32.const 2 call $~lib/env/abort unreachable @@ -1650,7 +1654,7 @@ if i32.const 0 i32.const 8 - i32.const 258 + i32.const 273 i32.const 2 call $~lib/env/abort unreachable @@ -1667,7 +1671,7 @@ if i32.const 0 i32.const 8 - i32.const 259 + i32.const 274 i32.const 2 call $~lib/env/abort unreachable @@ -1684,7 +1688,7 @@ if i32.const 0 i32.const 8 - i32.const 260 + i32.const 275 i32.const 2 call $~lib/env/abort unreachable @@ -1701,7 +1705,7 @@ if i32.const 0 i32.const 8 - i32.const 261 + i32.const 276 i32.const 2 call $~lib/env/abort unreachable @@ -1718,7 +1722,7 @@ if i32.const 0 i32.const 8 - i32.const 262 + i32.const 277 i32.const 2 call $~lib/env/abort unreachable @@ -1736,7 +1740,7 @@ if i32.const 0 i32.const 8 - i32.const 263 + i32.const 278 i32.const 2 call $~lib/env/abort unreachable @@ -1754,7 +1758,7 @@ if i32.const 0 i32.const 8 - i32.const 268 + i32.const 283 i32.const 2 call $~lib/env/abort unreachable @@ -1776,7 +1780,7 @@ if i32.const 0 i32.const 8 - i32.const 277 + i32.const 292 i32.const 2 call $~lib/env/abort unreachable @@ -1794,7 +1798,7 @@ if i32.const 0 i32.const 8 - i32.const 279 + i32.const 294 i32.const 2 call $~lib/env/abort unreachable @@ -1813,7 +1817,7 @@ if i32.const 0 i32.const 8 - i32.const 281 + i32.const 296 i32.const 2 call $~lib/env/abort unreachable @@ -1830,7 +1834,7 @@ if i32.const 0 i32.const 8 - i32.const 282 + i32.const 297 i32.const 2 call $~lib/env/abort unreachable @@ -1846,7 +1850,7 @@ if i32.const 0 i32.const 8 - i32.const 283 + i32.const 298 i32.const 2 call $~lib/env/abort unreachable @@ -1859,7 +1863,7 @@ if i32.const 0 i32.const 8 - i32.const 288 + i32.const 303 i32.const 2 call $~lib/env/abort unreachable @@ -1872,7 +1876,7 @@ if i32.const 0 i32.const 8 - i32.const 289 + i32.const 304 i32.const 2 call $~lib/env/abort unreachable @@ -1889,7 +1893,7 @@ if i32.const 0 i32.const 8 - i32.const 290 + i32.const 305 i32.const 2 call $~lib/env/abort unreachable @@ -1906,7 +1910,7 @@ if i32.const 0 i32.const 8 - i32.const 295 + i32.const 310 i32.const 2 call $~lib/env/abort unreachable @@ -1925,7 +1929,7 @@ if i32.const 0 i32.const 8 - i32.const 300 + i32.const 315 i32.const 2 call $~lib/env/abort unreachable @@ -1944,7 +1948,7 @@ if i32.const 0 i32.const 8 - i32.const 301 + i32.const 316 i32.const 2 call $~lib/env/abort unreachable @@ -1963,7 +1967,7 @@ if i32.const 0 i32.const 8 - i32.const 302 + i32.const 317 i32.const 2 call $~lib/env/abort unreachable @@ -1978,7 +1982,7 @@ if i32.const 0 i32.const 8 - i32.const 303 + i32.const 318 i32.const 2 call $~lib/env/abort unreachable @@ -1994,7 +1998,7 @@ if i32.const 0 i32.const 8 - i32.const 304 + i32.const 319 i32.const 2 call $~lib/env/abort unreachable @@ -2012,7 +2016,7 @@ if i32.const 0 i32.const 8 - i32.const 305 + i32.const 320 i32.const 2 call $~lib/env/abort unreachable @@ -2030,7 +2034,7 @@ if i32.const 0 i32.const 8 - i32.const 310 + i32.const 325 i32.const 2 call $~lib/env/abort unreachable @@ -2057,7 +2061,7 @@ if i32.const 0 i32.const 8 - i32.const 319 + i32.const 334 i32.const 2 call $~lib/env/abort unreachable @@ -2075,7 +2079,7 @@ if i32.const 0 i32.const 8 - i32.const 321 + i32.const 336 i32.const 2 call $~lib/env/abort unreachable @@ -2094,7 +2098,7 @@ if i32.const 0 i32.const 8 - i32.const 323 + i32.const 338 i32.const 2 call $~lib/env/abort unreachable @@ -2111,7 +2115,7 @@ if i32.const 0 i32.const 8 - i32.const 324 + i32.const 339 i32.const 2 call $~lib/env/abort unreachable @@ -2128,7 +2132,7 @@ if i32.const 0 i32.const 8 - i32.const 325 + i32.const 340 i32.const 2 call $~lib/env/abort unreachable @@ -2149,7 +2153,7 @@ if i32.const 0 i32.const 8 - i32.const 327 + i32.const 342 i32.const 2 call $~lib/env/abort unreachable @@ -2166,7 +2170,7 @@ if i32.const 0 i32.const 8 - i32.const 328 + i32.const 343 i32.const 2 call $~lib/env/abort unreachable @@ -2182,7 +2186,7 @@ if i32.const 0 i32.const 8 - i32.const 329 + i32.const 344 i32.const 2 call $~lib/env/abort unreachable @@ -2195,7 +2199,7 @@ if i32.const 0 i32.const 8 - i32.const 330 + i32.const 345 i32.const 2 call $~lib/env/abort unreachable @@ -2208,7 +2212,7 @@ if i32.const 0 i32.const 8 - i32.const 331 + i32.const 346 i32.const 2 call $~lib/env/abort unreachable @@ -2225,7 +2229,7 @@ if i32.const 0 i32.const 8 - i32.const 332 + i32.const 347 i32.const 2 call $~lib/env/abort unreachable @@ -2242,7 +2246,7 @@ if i32.const 0 i32.const 8 - i32.const 337 + i32.const 352 i32.const 2 call $~lib/env/abort unreachable @@ -2273,7 +2277,7 @@ if i32.const 0 i32.const 8 - i32.const 346 + i32.const 361 i32.const 2 call $~lib/env/abort unreachable @@ -2290,7 +2294,7 @@ if i32.const 0 i32.const 8 - i32.const 347 + i32.const 362 i32.const 2 call $~lib/env/abort unreachable @@ -2307,7 +2311,7 @@ if i32.const 0 i32.const 8 - i32.const 348 + i32.const 363 i32.const 2 call $~lib/env/abort unreachable @@ -2324,7 +2328,7 @@ if i32.const 0 i32.const 8 - i32.const 349 + i32.const 364 i32.const 2 call $~lib/env/abort unreachable @@ -2341,7 +2345,7 @@ if i32.const 0 i32.const 8 - i32.const 350 + i32.const 365 i32.const 2 call $~lib/env/abort unreachable @@ -2358,7 +2362,7 @@ if i32.const 0 i32.const 8 - i32.const 351 + i32.const 366 i32.const 2 call $~lib/env/abort unreachable @@ -2375,7 +2379,7 @@ if i32.const 0 i32.const 8 - i32.const 352 + i32.const 367 i32.const 2 call $~lib/env/abort unreachable @@ -2392,7 +2396,7 @@ if i32.const 0 i32.const 8 - i32.const 353 + i32.const 368 i32.const 2 call $~lib/env/abort unreachable @@ -2408,7 +2412,7 @@ if i32.const 0 i32.const 8 - i32.const 354 + i32.const 369 i32.const 2 call $~lib/env/abort unreachable @@ -2424,7 +2428,7 @@ if i32.const 0 i32.const 8 - i32.const 355 + i32.const 370 i32.const 2 call $~lib/env/abort unreachable @@ -2442,7 +2446,7 @@ if i32.const 0 i32.const 8 - i32.const 356 + i32.const 371 i32.const 2 call $~lib/env/abort unreachable @@ -2460,7 +2464,7 @@ if i32.const 0 i32.const 8 - i32.const 361 + i32.const 376 i32.const 2 call $~lib/env/abort unreachable @@ -2487,7 +2491,7 @@ if i32.const 0 i32.const 8 - i32.const 370 + i32.const 385 i32.const 2 call $~lib/env/abort unreachable @@ -2505,7 +2509,7 @@ if i32.const 0 i32.const 8 - i32.const 372 + i32.const 387 i32.const 2 call $~lib/env/abort unreachable @@ -2524,7 +2528,7 @@ if i32.const 0 i32.const 8 - i32.const 374 + i32.const 389 i32.const 2 call $~lib/env/abort unreachable @@ -2541,7 +2545,7 @@ if i32.const 0 i32.const 8 - i32.const 375 + i32.const 390 i32.const 2 call $~lib/env/abort unreachable @@ -2558,7 +2562,7 @@ if i32.const 0 i32.const 8 - i32.const 376 + i32.const 391 i32.const 2 call $~lib/env/abort unreachable @@ -2579,7 +2583,7 @@ if i32.const 0 i32.const 8 - i32.const 378 + i32.const 393 i32.const 2 call $~lib/env/abort unreachable @@ -2596,7 +2600,7 @@ if i32.const 0 i32.const 8 - i32.const 379 + i32.const 394 i32.const 2 call $~lib/env/abort unreachable @@ -2612,7 +2616,7 @@ if i32.const 0 i32.const 8 - i32.const 380 + i32.const 395 i32.const 2 call $~lib/env/abort unreachable @@ -2625,7 +2629,7 @@ if i32.const 0 i32.const 8 - i32.const 381 + i32.const 396 i32.const 2 call $~lib/env/abort unreachable @@ -2638,7 +2642,7 @@ if i32.const 0 i32.const 8 - i32.const 382 + i32.const 397 i32.const 2 call $~lib/env/abort unreachable @@ -2655,7 +2659,7 @@ if i32.const 0 i32.const 8 - i32.const 383 + i32.const 398 i32.const 2 call $~lib/env/abort unreachable @@ -2672,7 +2676,7 @@ if i32.const 0 i32.const 8 - i32.const 388 + i32.const 403 i32.const 2 call $~lib/env/abort unreachable @@ -2703,7 +2707,7 @@ if i32.const 0 i32.const 8 - i32.const 397 + i32.const 412 i32.const 2 call $~lib/env/abort unreachable @@ -2720,7 +2724,7 @@ if i32.const 0 i32.const 8 - i32.const 398 + i32.const 413 i32.const 2 call $~lib/env/abort unreachable @@ -2737,7 +2741,7 @@ if i32.const 0 i32.const 8 - i32.const 399 + i32.const 414 i32.const 2 call $~lib/env/abort unreachable @@ -2754,7 +2758,7 @@ if i32.const 0 i32.const 8 - i32.const 400 + i32.const 415 i32.const 2 call $~lib/env/abort unreachable @@ -2771,7 +2775,7 @@ if i32.const 0 i32.const 8 - i32.const 401 + i32.const 416 i32.const 2 call $~lib/env/abort unreachable @@ -2788,7 +2792,7 @@ if i32.const 0 i32.const 8 - i32.const 402 + i32.const 417 i32.const 2 call $~lib/env/abort unreachable @@ -2805,7 +2809,7 @@ if i32.const 0 i32.const 8 - i32.const 403 + i32.const 418 i32.const 2 call $~lib/env/abort unreachable @@ -2822,7 +2826,7 @@ if i32.const 0 i32.const 8 - i32.const 404 + i32.const 419 i32.const 2 call $~lib/env/abort unreachable @@ -2838,7 +2842,7 @@ if i32.const 0 i32.const 8 - i32.const 405 + i32.const 420 i32.const 2 call $~lib/env/abort unreachable @@ -2854,7 +2858,7 @@ if i32.const 0 i32.const 8 - i32.const 406 + i32.const 421 i32.const 2 call $~lib/env/abort unreachable @@ -2872,7 +2876,7 @@ if i32.const 0 i32.const 8 - i32.const 407 + i32.const 422 i32.const 2 call $~lib/env/abort unreachable @@ -2890,7 +2894,7 @@ if i32.const 0 i32.const 8 - i32.const 412 + i32.const 427 i32.const 2 call $~lib/env/abort unreachable @@ -2915,7 +2919,7 @@ if i32.const 0 i32.const 8 - i32.const 422 + i32.const 437 i32.const 2 call $~lib/env/abort unreachable From 942f83d2aaba9b3456f320368a37844334c4c29a Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 2 Mar 2019 19:32:21 +0200 Subject: [PATCH 5/9] works? --- tests/compiler/simd.optimized.wat | 37 +--- tests/compiler/simd.ts | 30 ++- tests/compiler/simd.untouched.wat | 324 +++++++++++++++--------------- 3 files changed, 186 insertions(+), 205 deletions(-) diff --git a/tests/compiler/simd.optimized.wat b/tests/compiler/simd.optimized.wat index 180764f098..be5c5192a8 100644 --- a/tests/compiler/simd.optimized.wat +++ b/tests/compiler/simd.optimized.wat @@ -11,42 +11,19 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $simd/test_v128 (; 1 ;) (type $FUNCSIG$v) - (local $0 v128) - (local $1 v128) - v128.const i32 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 - local.tee $0 - v128.const i32 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 - local.tee $1 - local.get $0 - local.get $1 - i8x16.gt_u - v128.bitselect - drop - v128.const i32 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 - local.tee $0 - v128.const i32 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe - local.tee $1 - local.get $0 - local.get $1 - i8x16.lt_s - v128.bitselect - drop + (func $start (; 1 ;) (type $FUNCSIG$v) + i32.const 32 + global.set $~lib/allocator/arena/startOffset + global.get $~lib/allocator/arena/startOffset + global.set $~lib/allocator/arena/offset i32.const 0 i32.const 8 - i32.const 78 + i32.const 85 i32.const 2 call $~lib/env/abort unreachable ) - (func $start (; 2 ;) (type $FUNCSIG$v) - i32.const 32 - global.set $~lib/allocator/arena/startOffset - global.get $~lib/allocator/arena/startOffset - global.set $~lib/allocator/arena/offset - call $simd/test_v128 - ) - (func $null (; 3 ;) (type $FUNCSIG$v) + (func $null (; 2 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/simd.ts b/tests/compiler/simd.ts index 1f4ce76000..d45240337d 100644 --- a/tests/compiler/simd.ts +++ b/tests/compiler/simd.ts @@ -66,18 +66,32 @@ function test_v128(): void { v128(-1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2), ); */ - var t0 = v128(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0); - var t1 = v128(0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2); + // var t0 = v128(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0); + // var t1 = v128(0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2); assert( - v128.bitselect(t0, t1, i8x16.gt_u(t0, t1)) == - v128(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2) + v128.bitselect( + v128(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0), + v128(0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2), + i8x16.gt_u( + v128(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0), + v128(0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2) + ) + ) == + v128(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2) ); - t0 = v128(-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0); - t1 = v128( 0,-2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2); + // t0 = v128(-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0); + // t1 = v128( 0,-2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2); assert( - v128.bitselect(t0, t1, i8x16.lt_s(t0, t1)) == - v128(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2) + v128.bitselect( + v128(-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0), + v128( 0,-2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2), + i8x16.lt_s( + v128(-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0), + v128( 0,-2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2) + ) + ) == + v128(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2) ); // generic operations are tested by the aliases below already diff --git a/tests/compiler/simd.untouched.wat b/tests/compiler/simd.untouched.wat index d99e6585a9..8a87c9c1a6 100644 --- a/tests/compiler/simd.untouched.wat +++ b/tests/compiler/simd.untouched.wat @@ -26,8 +26,6 @@ global.set $~lib/allocator/arena/offset ) (func $simd/test_v128 (; 2 ;) (type $FUNCSIG$v) - (local $0 v128) - (local $1 v128) v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 i8x16.eq @@ -144,13 +142,9 @@ unreachable end v128.const i32 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 - local.set $0 v128.const i32 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 - local.set $1 - local.get $0 - local.get $1 - local.get $0 - local.get $1 + v128.const i32 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 + v128.const i32 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 i8x16.gt_u v128.bitselect v128.const i32 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 @@ -168,13 +162,9 @@ unreachable end v128.const i32 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 - local.set $0 v128.const i32 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe - local.set $1 - local.get $0 - local.get $1 - local.get $0 - local.get $1 + v128.const i32 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 + v128.const i32 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe i8x16.lt_s v128.bitselect v128.const i32 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 @@ -186,7 +176,7 @@ if i32.const 0 i32.const 8 - i32.const 78 + i32.const 85 i32.const 2 call $~lib/env/abort unreachable @@ -212,7 +202,7 @@ if i32.const 0 i32.const 8 - i32.const 91 + i32.const 105 i32.const 2 call $~lib/env/abort unreachable @@ -230,7 +220,7 @@ if i32.const 0 i32.const 8 - i32.const 93 + i32.const 107 i32.const 2 call $~lib/env/abort unreachable @@ -249,7 +239,7 @@ if i32.const 0 i32.const 8 - i32.const 95 + i32.const 109 i32.const 2 call $~lib/env/abort unreachable @@ -266,7 +256,7 @@ if i32.const 0 i32.const 8 - i32.const 96 + i32.const 110 i32.const 2 call $~lib/env/abort unreachable @@ -283,7 +273,7 @@ if i32.const 0 i32.const 8 - i32.const 97 + i32.const 111 i32.const 2 call $~lib/env/abort unreachable @@ -299,7 +289,7 @@ if i32.const 0 i32.const 8 - i32.const 98 + i32.const 112 i32.const 2 call $~lib/env/abort unreachable @@ -316,7 +306,7 @@ if i32.const 0 i32.const 8 - i32.const 103 + i32.const 117 i32.const 2 call $~lib/env/abort unreachable @@ -333,7 +323,7 @@ if i32.const 0 i32.const 8 - i32.const 104 + i32.const 118 i32.const 2 call $~lib/env/abort unreachable @@ -348,7 +338,7 @@ if i32.const 0 i32.const 8 - i32.const 105 + i32.const 119 i32.const 2 call $~lib/env/abort unreachable @@ -365,7 +355,7 @@ if i32.const 0 i32.const 8 - i32.const 106 + i32.const 120 i32.const 2 call $~lib/env/abort unreachable @@ -382,7 +372,7 @@ if i32.const 0 i32.const 8 - i32.const 111 + i32.const 125 i32.const 2 call $~lib/env/abort unreachable @@ -401,7 +391,7 @@ if i32.const 0 i32.const 8 - i32.const 116 + i32.const 130 i32.const 2 call $~lib/env/abort unreachable @@ -420,7 +410,7 @@ if i32.const 0 i32.const 8 - i32.const 122 + i32.const 136 i32.const 2 call $~lib/env/abort unreachable @@ -439,7 +429,7 @@ if i32.const 0 i32.const 8 - i32.const 128 + i32.const 142 i32.const 2 call $~lib/env/abort unreachable @@ -458,7 +448,7 @@ if i32.const 0 i32.const 8 - i32.const 134 + i32.const 148 i32.const 2 call $~lib/env/abort unreachable @@ -477,7 +467,7 @@ if i32.const 0 i32.const 8 - i32.const 140 + i32.const 154 i32.const 2 call $~lib/env/abort unreachable @@ -496,7 +486,7 @@ if i32.const 0 i32.const 8 - i32.const 141 + i32.const 155 i32.const 2 call $~lib/env/abort unreachable @@ -515,7 +505,7 @@ if i32.const 0 i32.const 8 - i32.const 142 + i32.const 156 i32.const 2 call $~lib/env/abort unreachable @@ -530,7 +520,7 @@ if i32.const 0 i32.const 8 - i32.const 143 + i32.const 157 i32.const 2 call $~lib/env/abort unreachable @@ -546,7 +536,7 @@ if i32.const 0 i32.const 8 - i32.const 144 + i32.const 158 i32.const 2 call $~lib/env/abort unreachable @@ -578,7 +568,7 @@ if i32.const 0 i32.const 8 - i32.const 149 + i32.const 163 i32.const 2 call $~lib/env/abort unreachable @@ -595,7 +585,7 @@ if i32.const 0 i32.const 8 - i32.const 150 + i32.const 164 i32.const 2 call $~lib/env/abort unreachable @@ -612,7 +602,7 @@ if i32.const 0 i32.const 8 - i32.const 151 + i32.const 165 i32.const 2 call $~lib/env/abort unreachable @@ -629,7 +619,7 @@ if i32.const 0 i32.const 8 - i32.const 152 + i32.const 166 i32.const 2 call $~lib/env/abort unreachable @@ -646,7 +636,7 @@ if i32.const 0 i32.const 8 - i32.const 153 + i32.const 167 i32.const 2 call $~lib/env/abort unreachable @@ -663,7 +653,7 @@ if i32.const 0 i32.const 8 - i32.const 154 + i32.const 168 i32.const 2 call $~lib/env/abort unreachable @@ -680,7 +670,7 @@ if i32.const 0 i32.const 8 - i32.const 155 + i32.const 169 i32.const 2 call $~lib/env/abort unreachable @@ -697,7 +687,7 @@ if i32.const 0 i32.const 8 - i32.const 156 + i32.const 170 i32.const 2 call $~lib/env/abort unreachable @@ -714,7 +704,7 @@ if i32.const 0 i32.const 8 - i32.const 157 + i32.const 171 i32.const 2 call $~lib/env/abort unreachable @@ -731,7 +721,7 @@ if i32.const 0 i32.const 8 - i32.const 158 + i32.const 172 i32.const 2 call $~lib/env/abort unreachable @@ -757,7 +747,7 @@ if i32.const 0 i32.const 8 - i32.const 163 + i32.const 177 i32.const 2 call $~lib/env/abort unreachable @@ -775,7 +765,7 @@ if i32.const 0 i32.const 8 - i32.const 165 + i32.const 179 i32.const 2 call $~lib/env/abort unreachable @@ -794,7 +784,7 @@ if i32.const 0 i32.const 8 - i32.const 167 + i32.const 181 i32.const 2 call $~lib/env/abort unreachable @@ -811,7 +801,7 @@ if i32.const 0 i32.const 8 - i32.const 168 + i32.const 182 i32.const 2 call $~lib/env/abort unreachable @@ -828,7 +818,7 @@ if i32.const 0 i32.const 8 - i32.const 169 + i32.const 183 i32.const 2 call $~lib/env/abort unreachable @@ -844,7 +834,7 @@ if i32.const 0 i32.const 8 - i32.const 170 + i32.const 184 i32.const 2 call $~lib/env/abort unreachable @@ -861,7 +851,7 @@ if i32.const 0 i32.const 8 - i32.const 175 + i32.const 189 i32.const 2 call $~lib/env/abort unreachable @@ -878,7 +868,7 @@ if i32.const 0 i32.const 8 - i32.const 176 + i32.const 190 i32.const 2 call $~lib/env/abort unreachable @@ -893,7 +883,7 @@ if i32.const 0 i32.const 8 - i32.const 177 + i32.const 191 i32.const 2 call $~lib/env/abort unreachable @@ -910,7 +900,7 @@ if i32.const 0 i32.const 8 - i32.const 178 + i32.const 192 i32.const 2 call $~lib/env/abort unreachable @@ -927,7 +917,7 @@ if i32.const 0 i32.const 8 - i32.const 183 + i32.const 197 i32.const 2 call $~lib/env/abort unreachable @@ -946,7 +936,7 @@ if i32.const 0 i32.const 8 - i32.const 188 + i32.const 202 i32.const 2 call $~lib/env/abort unreachable @@ -965,7 +955,7 @@ if i32.const 0 i32.const 8 - i32.const 194 + i32.const 208 i32.const 2 call $~lib/env/abort unreachable @@ -984,7 +974,7 @@ if i32.const 0 i32.const 8 - i32.const 200 + i32.const 214 i32.const 2 call $~lib/env/abort unreachable @@ -1003,7 +993,7 @@ if i32.const 0 i32.const 8 - i32.const 206 + i32.const 220 i32.const 2 call $~lib/env/abort unreachable @@ -1022,7 +1012,7 @@ if i32.const 0 i32.const 8 - i32.const 212 + i32.const 226 i32.const 2 call $~lib/env/abort unreachable @@ -1041,7 +1031,7 @@ if i32.const 0 i32.const 8 - i32.const 213 + i32.const 227 i32.const 2 call $~lib/env/abort unreachable @@ -1060,7 +1050,7 @@ if i32.const 0 i32.const 8 - i32.const 214 + i32.const 228 i32.const 2 call $~lib/env/abort unreachable @@ -1075,7 +1065,7 @@ if i32.const 0 i32.const 8 - i32.const 215 + i32.const 229 i32.const 2 call $~lib/env/abort unreachable @@ -1091,7 +1081,7 @@ if i32.const 0 i32.const 8 - i32.const 216 + i32.const 230 i32.const 2 call $~lib/env/abort unreachable @@ -1123,7 +1113,7 @@ if i32.const 0 i32.const 8 - i32.const 221 + i32.const 235 i32.const 2 call $~lib/env/abort unreachable @@ -1140,7 +1130,7 @@ if i32.const 0 i32.const 8 - i32.const 222 + i32.const 236 i32.const 2 call $~lib/env/abort unreachable @@ -1157,7 +1147,7 @@ if i32.const 0 i32.const 8 - i32.const 223 + i32.const 237 i32.const 2 call $~lib/env/abort unreachable @@ -1174,7 +1164,7 @@ if i32.const 0 i32.const 8 - i32.const 224 + i32.const 238 i32.const 2 call $~lib/env/abort unreachable @@ -1191,7 +1181,7 @@ if i32.const 0 i32.const 8 - i32.const 225 + i32.const 239 i32.const 2 call $~lib/env/abort unreachable @@ -1208,7 +1198,7 @@ if i32.const 0 i32.const 8 - i32.const 226 + i32.const 240 i32.const 2 call $~lib/env/abort unreachable @@ -1225,7 +1215,7 @@ if i32.const 0 i32.const 8 - i32.const 227 + i32.const 241 i32.const 2 call $~lib/env/abort unreachable @@ -1242,7 +1232,7 @@ if i32.const 0 i32.const 8 - i32.const 228 + i32.const 242 i32.const 2 call $~lib/env/abort unreachable @@ -1259,7 +1249,7 @@ if i32.const 0 i32.const 8 - i32.const 229 + i32.const 243 i32.const 2 call $~lib/env/abort unreachable @@ -1276,7 +1266,7 @@ if i32.const 0 i32.const 8 - i32.const 230 + i32.const 244 i32.const 2 call $~lib/env/abort unreachable @@ -1302,7 +1292,7 @@ if i32.const 0 i32.const 8 - i32.const 235 + i32.const 249 i32.const 2 call $~lib/env/abort unreachable @@ -1320,7 +1310,7 @@ if i32.const 0 i32.const 8 - i32.const 237 + i32.const 251 i32.const 2 call $~lib/env/abort unreachable @@ -1339,7 +1329,7 @@ if i32.const 0 i32.const 8 - i32.const 239 + i32.const 253 i32.const 2 call $~lib/env/abort unreachable @@ -1356,7 +1346,7 @@ if i32.const 0 i32.const 8 - i32.const 240 + i32.const 254 i32.const 2 call $~lib/env/abort unreachable @@ -1373,7 +1363,7 @@ if i32.const 0 i32.const 8 - i32.const 241 + i32.const 255 i32.const 2 call $~lib/env/abort unreachable @@ -1389,7 +1379,7 @@ if i32.const 0 i32.const 8 - i32.const 242 + i32.const 256 i32.const 2 call $~lib/env/abort unreachable @@ -1402,7 +1392,7 @@ if i32.const 0 i32.const 8 - i32.const 247 + i32.const 261 i32.const 2 call $~lib/env/abort unreachable @@ -1415,7 +1405,7 @@ if i32.const 0 i32.const 8 - i32.const 248 + i32.const 262 i32.const 2 call $~lib/env/abort unreachable @@ -1432,7 +1422,7 @@ if i32.const 0 i32.const 8 - i32.const 249 + i32.const 263 i32.const 2 call $~lib/env/abort unreachable @@ -1449,7 +1439,7 @@ if i32.const 0 i32.const 8 - i32.const 254 + i32.const 268 i32.const 2 call $~lib/env/abort unreachable @@ -1468,7 +1458,7 @@ if i32.const 0 i32.const 8 - i32.const 259 + i32.const 273 i32.const 2 call $~lib/env/abort unreachable @@ -1487,7 +1477,7 @@ if i32.const 0 i32.const 8 - i32.const 260 + i32.const 274 i32.const 2 call $~lib/env/abort unreachable @@ -1506,7 +1496,7 @@ if i32.const 0 i32.const 8 - i32.const 261 + i32.const 275 i32.const 2 call $~lib/env/abort unreachable @@ -1521,7 +1511,7 @@ if i32.const 0 i32.const 8 - i32.const 262 + i32.const 276 i32.const 2 call $~lib/env/abort unreachable @@ -1537,7 +1527,7 @@ if i32.const 0 i32.const 8 - i32.const 263 + i32.const 277 i32.const 2 call $~lib/env/abort unreachable @@ -1569,7 +1559,7 @@ if i32.const 0 i32.const 8 - i32.const 268 + i32.const 282 i32.const 2 call $~lib/env/abort unreachable @@ -1586,7 +1576,7 @@ if i32.const 0 i32.const 8 - i32.const 269 + i32.const 283 i32.const 2 call $~lib/env/abort unreachable @@ -1603,7 +1593,7 @@ if i32.const 0 i32.const 8 - i32.const 270 + i32.const 284 i32.const 2 call $~lib/env/abort unreachable @@ -1620,7 +1610,7 @@ if i32.const 0 i32.const 8 - i32.const 271 + i32.const 285 i32.const 2 call $~lib/env/abort unreachable @@ -1637,7 +1627,7 @@ if i32.const 0 i32.const 8 - i32.const 272 + i32.const 286 i32.const 2 call $~lib/env/abort unreachable @@ -1654,7 +1644,7 @@ if i32.const 0 i32.const 8 - i32.const 273 + i32.const 287 i32.const 2 call $~lib/env/abort unreachable @@ -1671,7 +1661,7 @@ if i32.const 0 i32.const 8 - i32.const 274 + i32.const 288 i32.const 2 call $~lib/env/abort unreachable @@ -1688,7 +1678,7 @@ if i32.const 0 i32.const 8 - i32.const 275 + i32.const 289 i32.const 2 call $~lib/env/abort unreachable @@ -1705,7 +1695,7 @@ if i32.const 0 i32.const 8 - i32.const 276 + i32.const 290 i32.const 2 call $~lib/env/abort unreachable @@ -1722,7 +1712,7 @@ if i32.const 0 i32.const 8 - i32.const 277 + i32.const 291 i32.const 2 call $~lib/env/abort unreachable @@ -1740,7 +1730,7 @@ if i32.const 0 i32.const 8 - i32.const 278 + i32.const 292 i32.const 2 call $~lib/env/abort unreachable @@ -1758,7 +1748,7 @@ if i32.const 0 i32.const 8 - i32.const 283 + i32.const 297 i32.const 2 call $~lib/env/abort unreachable @@ -1780,7 +1770,7 @@ if i32.const 0 i32.const 8 - i32.const 292 + i32.const 306 i32.const 2 call $~lib/env/abort unreachable @@ -1798,7 +1788,7 @@ if i32.const 0 i32.const 8 - i32.const 294 + i32.const 308 i32.const 2 call $~lib/env/abort unreachable @@ -1817,7 +1807,7 @@ if i32.const 0 i32.const 8 - i32.const 296 + i32.const 310 i32.const 2 call $~lib/env/abort unreachable @@ -1834,7 +1824,7 @@ if i32.const 0 i32.const 8 - i32.const 297 + i32.const 311 i32.const 2 call $~lib/env/abort unreachable @@ -1850,7 +1840,7 @@ if i32.const 0 i32.const 8 - i32.const 298 + i32.const 312 i32.const 2 call $~lib/env/abort unreachable @@ -1863,7 +1853,7 @@ if i32.const 0 i32.const 8 - i32.const 303 + i32.const 317 i32.const 2 call $~lib/env/abort unreachable @@ -1876,7 +1866,7 @@ if i32.const 0 i32.const 8 - i32.const 304 + i32.const 318 i32.const 2 call $~lib/env/abort unreachable @@ -1893,7 +1883,7 @@ if i32.const 0 i32.const 8 - i32.const 305 + i32.const 319 i32.const 2 call $~lib/env/abort unreachable @@ -1910,7 +1900,7 @@ if i32.const 0 i32.const 8 - i32.const 310 + i32.const 324 i32.const 2 call $~lib/env/abort unreachable @@ -1929,7 +1919,7 @@ if i32.const 0 i32.const 8 - i32.const 315 + i32.const 329 i32.const 2 call $~lib/env/abort unreachable @@ -1948,7 +1938,7 @@ if i32.const 0 i32.const 8 - i32.const 316 + i32.const 330 i32.const 2 call $~lib/env/abort unreachable @@ -1967,7 +1957,7 @@ if i32.const 0 i32.const 8 - i32.const 317 + i32.const 331 i32.const 2 call $~lib/env/abort unreachable @@ -1982,7 +1972,7 @@ if i32.const 0 i32.const 8 - i32.const 318 + i32.const 332 i32.const 2 call $~lib/env/abort unreachable @@ -1998,7 +1988,7 @@ if i32.const 0 i32.const 8 - i32.const 319 + i32.const 333 i32.const 2 call $~lib/env/abort unreachable @@ -2016,7 +2006,7 @@ if i32.const 0 i32.const 8 - i32.const 320 + i32.const 334 i32.const 2 call $~lib/env/abort unreachable @@ -2034,7 +2024,7 @@ if i32.const 0 i32.const 8 - i32.const 325 + i32.const 339 i32.const 2 call $~lib/env/abort unreachable @@ -2061,7 +2051,7 @@ if i32.const 0 i32.const 8 - i32.const 334 + i32.const 348 i32.const 2 call $~lib/env/abort unreachable @@ -2079,7 +2069,7 @@ if i32.const 0 i32.const 8 - i32.const 336 + i32.const 350 i32.const 2 call $~lib/env/abort unreachable @@ -2098,7 +2088,7 @@ if i32.const 0 i32.const 8 - i32.const 338 + i32.const 352 i32.const 2 call $~lib/env/abort unreachable @@ -2115,7 +2105,7 @@ if i32.const 0 i32.const 8 - i32.const 339 + i32.const 353 i32.const 2 call $~lib/env/abort unreachable @@ -2132,7 +2122,7 @@ if i32.const 0 i32.const 8 - i32.const 340 + i32.const 354 i32.const 2 call $~lib/env/abort unreachable @@ -2153,7 +2143,7 @@ if i32.const 0 i32.const 8 - i32.const 342 + i32.const 356 i32.const 2 call $~lib/env/abort unreachable @@ -2170,7 +2160,7 @@ if i32.const 0 i32.const 8 - i32.const 343 + i32.const 357 i32.const 2 call $~lib/env/abort unreachable @@ -2186,7 +2176,7 @@ if i32.const 0 i32.const 8 - i32.const 344 + i32.const 358 i32.const 2 call $~lib/env/abort unreachable @@ -2199,7 +2189,7 @@ if i32.const 0 i32.const 8 - i32.const 345 + i32.const 359 i32.const 2 call $~lib/env/abort unreachable @@ -2212,7 +2202,7 @@ if i32.const 0 i32.const 8 - i32.const 346 + i32.const 360 i32.const 2 call $~lib/env/abort unreachable @@ -2229,7 +2219,7 @@ if i32.const 0 i32.const 8 - i32.const 347 + i32.const 361 i32.const 2 call $~lib/env/abort unreachable @@ -2246,7 +2236,7 @@ if i32.const 0 i32.const 8 - i32.const 352 + i32.const 366 i32.const 2 call $~lib/env/abort unreachable @@ -2277,7 +2267,7 @@ if i32.const 0 i32.const 8 - i32.const 361 + i32.const 375 i32.const 2 call $~lib/env/abort unreachable @@ -2294,7 +2284,7 @@ if i32.const 0 i32.const 8 - i32.const 362 + i32.const 376 i32.const 2 call $~lib/env/abort unreachable @@ -2311,7 +2301,7 @@ if i32.const 0 i32.const 8 - i32.const 363 + i32.const 377 i32.const 2 call $~lib/env/abort unreachable @@ -2328,7 +2318,7 @@ if i32.const 0 i32.const 8 - i32.const 364 + i32.const 378 i32.const 2 call $~lib/env/abort unreachable @@ -2345,7 +2335,7 @@ if i32.const 0 i32.const 8 - i32.const 365 + i32.const 379 i32.const 2 call $~lib/env/abort unreachable @@ -2362,7 +2352,7 @@ if i32.const 0 i32.const 8 - i32.const 366 + i32.const 380 i32.const 2 call $~lib/env/abort unreachable @@ -2379,7 +2369,7 @@ if i32.const 0 i32.const 8 - i32.const 367 + i32.const 381 i32.const 2 call $~lib/env/abort unreachable @@ -2396,7 +2386,7 @@ if i32.const 0 i32.const 8 - i32.const 368 + i32.const 382 i32.const 2 call $~lib/env/abort unreachable @@ -2412,7 +2402,7 @@ if i32.const 0 i32.const 8 - i32.const 369 + i32.const 383 i32.const 2 call $~lib/env/abort unreachable @@ -2428,7 +2418,7 @@ if i32.const 0 i32.const 8 - i32.const 370 + i32.const 384 i32.const 2 call $~lib/env/abort unreachable @@ -2446,7 +2436,7 @@ if i32.const 0 i32.const 8 - i32.const 371 + i32.const 385 i32.const 2 call $~lib/env/abort unreachable @@ -2464,7 +2454,7 @@ if i32.const 0 i32.const 8 - i32.const 376 + i32.const 390 i32.const 2 call $~lib/env/abort unreachable @@ -2491,7 +2481,7 @@ if i32.const 0 i32.const 8 - i32.const 385 + i32.const 399 i32.const 2 call $~lib/env/abort unreachable @@ -2509,7 +2499,7 @@ if i32.const 0 i32.const 8 - i32.const 387 + i32.const 401 i32.const 2 call $~lib/env/abort unreachable @@ -2528,7 +2518,7 @@ if i32.const 0 i32.const 8 - i32.const 389 + i32.const 403 i32.const 2 call $~lib/env/abort unreachable @@ -2545,7 +2535,7 @@ if i32.const 0 i32.const 8 - i32.const 390 + i32.const 404 i32.const 2 call $~lib/env/abort unreachable @@ -2562,7 +2552,7 @@ if i32.const 0 i32.const 8 - i32.const 391 + i32.const 405 i32.const 2 call $~lib/env/abort unreachable @@ -2583,7 +2573,7 @@ if i32.const 0 i32.const 8 - i32.const 393 + i32.const 407 i32.const 2 call $~lib/env/abort unreachable @@ -2600,7 +2590,7 @@ if i32.const 0 i32.const 8 - i32.const 394 + i32.const 408 i32.const 2 call $~lib/env/abort unreachable @@ -2616,7 +2606,7 @@ if i32.const 0 i32.const 8 - i32.const 395 + i32.const 409 i32.const 2 call $~lib/env/abort unreachable @@ -2629,7 +2619,7 @@ if i32.const 0 i32.const 8 - i32.const 396 + i32.const 410 i32.const 2 call $~lib/env/abort unreachable @@ -2642,7 +2632,7 @@ if i32.const 0 i32.const 8 - i32.const 397 + i32.const 411 i32.const 2 call $~lib/env/abort unreachable @@ -2659,7 +2649,7 @@ if i32.const 0 i32.const 8 - i32.const 398 + i32.const 412 i32.const 2 call $~lib/env/abort unreachable @@ -2676,7 +2666,7 @@ if i32.const 0 i32.const 8 - i32.const 403 + i32.const 417 i32.const 2 call $~lib/env/abort unreachable @@ -2707,7 +2697,7 @@ if i32.const 0 i32.const 8 - i32.const 412 + i32.const 426 i32.const 2 call $~lib/env/abort unreachable @@ -2724,7 +2714,7 @@ if i32.const 0 i32.const 8 - i32.const 413 + i32.const 427 i32.const 2 call $~lib/env/abort unreachable @@ -2741,7 +2731,7 @@ if i32.const 0 i32.const 8 - i32.const 414 + i32.const 428 i32.const 2 call $~lib/env/abort unreachable @@ -2758,7 +2748,7 @@ if i32.const 0 i32.const 8 - i32.const 415 + i32.const 429 i32.const 2 call $~lib/env/abort unreachable @@ -2775,7 +2765,7 @@ if i32.const 0 i32.const 8 - i32.const 416 + i32.const 430 i32.const 2 call $~lib/env/abort unreachable @@ -2792,7 +2782,7 @@ if i32.const 0 i32.const 8 - i32.const 417 + i32.const 431 i32.const 2 call $~lib/env/abort unreachable @@ -2809,7 +2799,7 @@ if i32.const 0 i32.const 8 - i32.const 418 + i32.const 432 i32.const 2 call $~lib/env/abort unreachable @@ -2826,7 +2816,7 @@ if i32.const 0 i32.const 8 - i32.const 419 + i32.const 433 i32.const 2 call $~lib/env/abort unreachable @@ -2842,7 +2832,7 @@ if i32.const 0 i32.const 8 - i32.const 420 + i32.const 434 i32.const 2 call $~lib/env/abort unreachable @@ -2858,7 +2848,7 @@ if i32.const 0 i32.const 8 - i32.const 421 + i32.const 435 i32.const 2 call $~lib/env/abort unreachable @@ -2876,7 +2866,7 @@ if i32.const 0 i32.const 8 - i32.const 422 + i32.const 436 i32.const 2 call $~lib/env/abort unreachable @@ -2894,7 +2884,7 @@ if i32.const 0 i32.const 8 - i32.const 427 + i32.const 441 i32.const 2 call $~lib/env/abort unreachable @@ -2919,7 +2909,7 @@ if i32.const 0 i32.const 8 - i32.const 437 + i32.const 451 i32.const 2 call $~lib/env/abort unreachable From b3ea04d169dcdbf5e43d0f538831ada1182c8438 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 2 Mar 2019 19:47:59 +0200 Subject: [PATCH 6/9] should work --- tests/compiler/simd.optimized.wat | 12 ++---------- tests/compiler/simd.ts | 2 +- tests/compiler/simd.untouched.wat | 2 +- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/tests/compiler/simd.optimized.wat b/tests/compiler/simd.optimized.wat index be5c5192a8..2505ac86a0 100644 --- a/tests/compiler/simd.optimized.wat +++ b/tests/compiler/simd.optimized.wat @@ -1,7 +1,5 @@ (module (type $FUNCSIG$v (func)) - (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) - (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\07\00\00\00s\00i\00m\00d\00.\00t\00s") (table $0 1 funcref) @@ -11,19 +9,13 @@ (export "memory" (memory $0)) (export "table" (table $0)) (start $start) - (func $start (; 1 ;) (type $FUNCSIG$v) + (func $start (; 0 ;) (type $FUNCSIG$v) i32.const 32 global.set $~lib/allocator/arena/startOffset global.get $~lib/allocator/arena/startOffset global.set $~lib/allocator/arena/offset - i32.const 0 - i32.const 8 - i32.const 85 - i32.const 2 - call $~lib/env/abort - unreachable ) - (func $null (; 2 ;) (type $FUNCSIG$v) + (func $null (; 1 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/simd.ts b/tests/compiler/simd.ts index d45240337d..1de91591ce 100644 --- a/tests/compiler/simd.ts +++ b/tests/compiler/simd.ts @@ -91,7 +91,7 @@ function test_v128(): void { v128( 0,-2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2) ) ) == - v128(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2) + v128(-1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2) ); // generic operations are tested by the aliases below already diff --git a/tests/compiler/simd.untouched.wat b/tests/compiler/simd.untouched.wat index 8a87c9c1a6..126e9c5537 100644 --- a/tests/compiler/simd.untouched.wat +++ b/tests/compiler/simd.untouched.wat @@ -167,7 +167,7 @@ v128.const i32 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe i8x16.lt_s v128.bitselect - v128.const i32 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 + v128.const i32 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe i8x16.eq i8x16.all_true i32.const 0 From c51dbb294a20318ac12ad5454af339ae5cec5882 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sun, 3 Mar 2019 02:33:47 +0200 Subject: [PATCH 7/9] update --- src/module.ts | 8 ++++++-- tests/compiler/simd.ts | 17 ++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/module.ts b/src/module.ts index cced32165f..9c9a92e895 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1178,7 +1178,7 @@ export class Module { var nested1: ExpressionRef, nested2: ExpressionRef; - switch (_BinaryenExpressionGetId(expr)) { + switch (_BinaryenExpressionGetId(expr)) { case ExpressionId.Const: { switch (_BinaryenExpressionGetType(expr)) { case NativeType.I32: { @@ -1196,6 +1196,9 @@ export class Module { case NativeType.F64: { return this.createF64(_BinaryenConstGetValueF64(expr)); } + /*case NativeType.V128: { + return this.createV128(_BinaryenConstGetValueV128(expr)); + }*/ default: { throw new Error("concrete type expected"); } @@ -1751,7 +1754,8 @@ export function needsExplicitUnreachable(expr: ExpressionRef): bool { case NativeType.I32: case NativeType.I64: case NativeType.F32: - case NativeType.F64: return false; + case NativeType.F64: + case NativeType.V128: return false; } switch (_BinaryenExpressionGetId(expr)) { case ExpressionId.Unreachable: diff --git a/tests/compiler/simd.ts b/tests/compiler/simd.ts index 1de91591ce..44cea1c05c 100644 --- a/tests/compiler/simd.ts +++ b/tests/compiler/simd.ts @@ -66,9 +66,20 @@ function test_v128(): void { v128(-1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2), ); */ - // var t0 = v128(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0); - // var t1 = v128(0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2); + var t0 = v128(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0); + var t1 = v128(0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2); assert( + v128.bitselect( + t0, + t1, + i8x16.gt_u( + t0, + t1 + ) + ) == + v128(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2) + ); + /*assert( v128.bitselect( v128(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0), v128(0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2), @@ -78,7 +89,7 @@ function test_v128(): void { ) ) == v128(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2) - ); + );*/ // t0 = v128(-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0); // t1 = v128( 0,-2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2); From 5f1927335f868dc7fc4667bce83234078c5a6f1c Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 22 Mar 2019 01:21:31 +0200 Subject: [PATCH 8/9] try again --- tests/compiler/simd.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tests/compiler/simd.ts b/tests/compiler/simd.ts index 44cea1c05c..0562a13709 100644 --- a/tests/compiler/simd.ts +++ b/tests/compiler/simd.ts @@ -91,9 +91,14 @@ function test_v128(): void { v128(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2) );*/ - // t0 = v128(-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0); - // t1 = v128( 0,-2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2); + t0 = v128(-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0); + t1 = v128( 0,-2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2); assert( + v128.bitselect(t0, t1, i8x16.lt_s(t0, t1)) + == + v128(-1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2) + ); + /*assert( v128.bitselect( v128(-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0), v128( 0,-2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2, 0, -2), @@ -103,7 +108,7 @@ function test_v128(): void { ) ) == v128(-1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2) - ); + );*/ // generic operations are tested by the aliases below already // FIXME: node/nightly currently fails to validate this. works in node/v8-canary. From 038add8feec70154585a57369456d0b259978628 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 22 Mar 2019 01:30:20 +0200 Subject: [PATCH 9/9] update test --- tests/compiler/simd.untouched.wat | 504 +++++++++++++++--------------- 1 file changed, 257 insertions(+), 247 deletions(-) diff --git a/tests/compiler/simd.untouched.wat b/tests/compiler/simd.untouched.wat index 126e9c5537..549a455991 100644 --- a/tests/compiler/simd.untouched.wat +++ b/tests/compiler/simd.untouched.wat @@ -26,8 +26,10 @@ global.set $~lib/allocator/arena/offset ) (func $simd/test_v128 (; 2 ;) (type $FUNCSIG$v) - v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 - v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 + (local $0 v128) + (local $1 v128) + v128.const i32 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d i8x16.eq i8x16.all_true i32.const 0 @@ -41,8 +43,8 @@ call $~lib/env/abort unreachable end - v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 - v128.const i32 0x2 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 + v128.const i32 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32 0x04030202 0x08070605 0x0c0b0a09 0x100f0e0d i8x16.ne i8x16.any_true i32.const 0 @@ -56,10 +58,10 @@ call $~lib/env/abort unreachable end - v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 - v128.const i32 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 + v128.const i32 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32 0x01010101 0x01010101 0x01010101 0x01010101 v128.and - v128.const i32 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 + v128.const i32 0x00010001 0x00010001 0x00010001 0x00010001 i8x16.eq i8x16.all_true i32.const 0 @@ -73,10 +75,10 @@ call $~lib/env/abort unreachable end - v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 - v128.const i32 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 + v128.const i32 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32 0x01010101 0x01010101 0x01010101 0x01010101 v128.or - v128.const i32 0x1 0x3 0x3 0x5 0x5 0x7 0x7 0x9 0x9 0xb 0xb 0xd 0xd 0xf 0xf 0x11 + v128.const i32 0x05030301 0x09070705 0x0d0b0b09 0x110f0f0d i8x16.eq i8x16.all_true i32.const 0 @@ -90,10 +92,10 @@ call $~lib/env/abort unreachable end - v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 - v128.const i32 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 + v128.const i32 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32 0x01010101 0x01010101 0x01010101 0x01010101 v128.xor - v128.const i32 0x0 0x3 0x2 0x5 0x4 0x7 0x6 0x9 0x8 0xb 0xa 0xd 0xc 0xf 0xe 0x11 + v128.const i32 0x05020300 0x09060704 0x0d0a0b08 0x110e0f0c i8x16.eq i8x16.all_true i32.const 0 @@ -107,9 +109,9 @@ call $~lib/env/abort unreachable end - v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 + v128.const i32 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d v128.not - v128.const i32 0xfe 0xfd 0xfc 0xfb 0xfa 0xf9 0xf8 0xf7 0xf6 0xf5 0xf4 0xf3 0xf2 0xf1 0xf0 0xef + v128.const i32 0xfbfcfdfe 0xf7f8f9fa 0xf3f4f5f6 0xeff0f1f2 i8x16.eq i8x16.all_true i32.const 0 @@ -123,11 +125,11 @@ call $~lib/env/abort unreachable end - v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 - v128.const i32 0x10 0xf 0xe 0xd 0xc 0xb 0xa 0x9 0x8 0x7 0x6 0x5 0x4 0x3 0x2 0x1 - v128.const i32 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff + v128.const i32 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d + v128.const i32 0x0d0e0f10 0x090a0b0c 0x05060708 0x01020304 + v128.const i32 0xff00ff00 0xff00ff00 0xff00ff00 0xff00ff00 v128.bitselect - v128.const i32 0x10 0x2 0xe 0x4 0xc 0x6 0xa 0x8 0x8 0xa 0x6 0xc 0x4 0xe 0x2 0x10 + v128.const i32 0x040e0210 0x080a060c 0x0c060a08 0x10020e04 i8x16.eq i8x16.all_true i32.const 0 @@ -141,13 +143,17 @@ call $~lib/env/abort unreachable end - v128.const i32 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 - v128.const i32 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 - v128.const i32 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 - v128.const i32 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 + v128.const i32 0x00010001 0x00010001 0x00010001 0x00010001 + local.set $0 + v128.const i32 0x02000200 0x02000200 0x02000200 0x02000200 + local.set $1 + local.get $0 + local.get $1 + local.get $0 + local.get $1 i8x16.gt_u v128.bitselect - v128.const i32 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 0x1 0x2 + v128.const i32 0x02010201 0x02010201 0x02010201 0x02010201 i8x16.eq i8x16.all_true i32.const 0 @@ -161,13 +167,17 @@ call $~lib/env/abort unreachable end - v128.const i32 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 - v128.const i32 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe - v128.const i32 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 0xff 0x0 - v128.const i32 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe 0x0 0xfe + v128.const i32 0x00ff00ff 0x00ff00ff 0x00ff00ff 0x00ff00ff + local.set $0 + v128.const i32 0xfe00fe00 0xfe00fe00 0xfe00fe00 0xfe00fe00 + local.set $1 + local.get $0 + local.get $1 + local.get $0 + local.get $1 i8x16.lt_s v128.bitselect - v128.const i32 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe 0xff 0xfe + v128.const i32 0xfefffeff 0xfefffeff 0xfefffeff 0xfefffeff i8x16.eq i8x16.all_true i32.const 0 @@ -176,7 +186,7 @@ if i32.const 0 i32.const 8 - i32.const 85 + i32.const 96 i32.const 2 call $~lib/env/abort unreachable @@ -190,10 +200,10 @@ (local $4 v128) (local $5 v128) (local $6 v128) - v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x7f + v128.const i32 0x04030201 0x08070605 0x0c0b0a09 0x7f0f0e0d local.set $0 local.get $0 - v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x7f + v128.const i32 0x04030201 0x08070605 0x0c0b0a09 0x7f0f0e0d i8x16.eq i8x16.all_true i32.const 0 @@ -202,7 +212,7 @@ if i32.const 0 i32.const 8 - i32.const 105 + i32.const 121 i32.const 2 call $~lib/env/abort unreachable @@ -211,7 +221,7 @@ i8x16.splat local.set $1 local.get $1 - v128.const i32 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 + v128.const i32 0x01010101 0x01010101 0x01010101 0x01010101 i8x16.eq i8x16.all_true i32.const 0 @@ -220,7 +230,7 @@ if i32.const 0 i32.const 8 - i32.const 107 + i32.const 123 i32.const 2 call $~lib/env/abort unreachable @@ -230,7 +240,7 @@ i8x16.add local.set $2 local.get $2 - v128.const i32 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x80 + v128.const i32 0x05040302 0x09080706 0x0d0c0b0a 0x80100f0e i8x16.eq i8x16.all_true i32.const 0 @@ -239,7 +249,7 @@ if i32.const 0 i32.const 8 - i32.const 109 + i32.const 125 i32.const 2 call $~lib/env/abort unreachable @@ -256,7 +266,7 @@ if i32.const 0 i32.const 8 - i32.const 110 + i32.const 126 i32.const 2 call $~lib/env/abort unreachable @@ -273,14 +283,14 @@ if i32.const 0 i32.const 8 - i32.const 111 + i32.const 127 i32.const 2 call $~lib/env/abort unreachable end local.get $0 i8x16.neg - v128.const i32 0xff 0xfe 0xfd 0xfc 0xfb 0xfa 0xf9 0xf8 0xf7 0xf6 0xf5 0xf4 0xf3 0xf2 0xf1 0x81 + v128.const i32 0xfcfdfeff 0xf8f9fafb 0xf4f5f6f7 0x81f1f2f3 i8x16.eq i8x16.all_true i32.const 0 @@ -289,7 +299,7 @@ if i32.const 0 i32.const 8 - i32.const 112 + i32.const 128 i32.const 2 call $~lib/env/abort unreachable @@ -306,7 +316,7 @@ if i32.const 0 i32.const 8 - i32.const 117 + i32.const 133 i32.const 2 call $~lib/env/abort unreachable @@ -323,7 +333,7 @@ if i32.const 0 i32.const 8 - i32.const 118 + i32.const 134 i32.const 2 call $~lib/env/abort unreachable @@ -338,7 +348,7 @@ if i32.const 0 i32.const 8 - i32.const 119 + i32.const 135 i32.const 2 call $~lib/env/abort unreachable @@ -346,7 +356,7 @@ local.get $2 i32.const 17 i8x16.replace_lane 15 - v128.const i32 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 + v128.const i32 0x05040302 0x09080706 0x0d0c0b0a 0x11100f0e i8x16.eq i8x16.all_true i32.const 0 @@ -355,7 +365,7 @@ if i32.const 0 i32.const 8 - i32.const 120 + i32.const 136 i32.const 2 call $~lib/env/abort unreachable @@ -363,7 +373,7 @@ local.get $0 local.get $1 v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 - v128.const i32 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 + v128.const i32 0x04030201 0x08070605 0x01010101 0x01010101 i8x16.eq i8x16.all_true i32.const 0 @@ -372,12 +382,12 @@ if i32.const 0 i32.const 8 - i32.const 125 + i32.const 141 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f + v128.const i32 0x7f7f7f7e 0x7f7f7f7f 0x7f7f7f7f 0x7f7f7f7f i32.const 2 i8x16.splat i8x16.add_saturate_s @@ -391,12 +401,12 @@ if i32.const 0 i32.const 8 - i32.const 130 + i32.const 146 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0xfe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff + v128.const i32 0xfffffffe 0xffffffff 0xffffffff 0xffffffff i32.const 2 i8x16.splat i8x16.add_saturate_u @@ -410,12 +420,12 @@ if i32.const 0 i32.const 8 - i32.const 136 + i32.const 152 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0x81 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 + v128.const i32 0x80808081 0x80808080 0x80808080 0x80808080 i32.const 2 i8x16.splat i8x16.sub_saturate_s @@ -429,12 +439,12 @@ if i32.const 0 i32.const 8 - i32.const 142 + i32.const 158 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + v128.const i32 0x00000001 0x00000000 0x00000000 0x00000000 i32.const 2 i8x16.splat i8x16.sub_saturate_u @@ -448,7 +458,7 @@ if i32.const 0 i32.const 8 - i32.const 148 + i32.const 164 i32.const 2 call $~lib/env/abort unreachable @@ -467,7 +477,7 @@ if i32.const 0 i32.const 8 - i32.const 154 + i32.const 170 i32.const 2 call $~lib/env/abort unreachable @@ -486,7 +496,7 @@ if i32.const 0 i32.const 8 - i32.const 155 + i32.const 171 i32.const 2 call $~lib/env/abort unreachable @@ -505,12 +515,12 @@ if i32.const 0 i32.const 8 - i32.const 156 + i32.const 172 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + v128.const i32 0x00000001 0x00000000 0x00000000 0x00000000 i8x16.any_true i32.const 0 i32.ne @@ -520,7 +530,7 @@ if i32.const 0 i32.const 8 - i32.const 157 + i32.const 173 i32.const 2 call $~lib/env/abort unreachable @@ -536,7 +546,7 @@ if i32.const 0 i32.const 8 - i32.const 158 + i32.const 174 i32.const 2 call $~lib/env/abort unreachable @@ -568,7 +578,7 @@ if i32.const 0 i32.const 8 - i32.const 163 + i32.const 179 i32.const 2 call $~lib/env/abort unreachable @@ -585,7 +595,7 @@ if i32.const 0 i32.const 8 - i32.const 164 + i32.const 180 i32.const 2 call $~lib/env/abort unreachable @@ -602,7 +612,7 @@ if i32.const 0 i32.const 8 - i32.const 165 + i32.const 181 i32.const 2 call $~lib/env/abort unreachable @@ -619,7 +629,7 @@ if i32.const 0 i32.const 8 - i32.const 166 + i32.const 182 i32.const 2 call $~lib/env/abort unreachable @@ -636,7 +646,7 @@ if i32.const 0 i32.const 8 - i32.const 167 + i32.const 183 i32.const 2 call $~lib/env/abort unreachable @@ -653,7 +663,7 @@ if i32.const 0 i32.const 8 - i32.const 168 + i32.const 184 i32.const 2 call $~lib/env/abort unreachable @@ -670,7 +680,7 @@ if i32.const 0 i32.const 8 - i32.const 169 + i32.const 185 i32.const 2 call $~lib/env/abort unreachable @@ -687,7 +697,7 @@ if i32.const 0 i32.const 8 - i32.const 170 + i32.const 186 i32.const 2 call $~lib/env/abort unreachable @@ -704,7 +714,7 @@ if i32.const 0 i32.const 8 - i32.const 171 + i32.const 187 i32.const 2 call $~lib/env/abort unreachable @@ -721,7 +731,7 @@ if i32.const 0 i32.const 8 - i32.const 172 + i32.const 188 i32.const 2 call $~lib/env/abort unreachable @@ -735,10 +745,10 @@ (local $4 v128) (local $5 v128) (local $6 v128) - v128.const i32 0x1 0x0 0x2 0x0 0x3 0x0 0x4 0x0 0x5 0x0 0x6 0x0 0x7 0x0 0xff 0x7f + v128.const i32 0x00020001 0x00040003 0x00060005 0x7fff0007 local.set $0 local.get $0 - v128.const i32 0x1 0x0 0x2 0x0 0x3 0x0 0x4 0x0 0x5 0x0 0x6 0x0 0x7 0x0 0xff 0x7f + v128.const i32 0x00020001 0x00040003 0x00060005 0x7fff0007 i8x16.eq i8x16.all_true i32.const 0 @@ -747,7 +757,7 @@ if i32.const 0 i32.const 8 - i32.const 177 + i32.const 193 i32.const 2 call $~lib/env/abort unreachable @@ -756,7 +766,7 @@ i16x8.splat local.set $1 local.get $1 - v128.const i32 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 + v128.const i32 0x00010001 0x00010001 0x00010001 0x00010001 i8x16.eq i8x16.all_true i32.const 0 @@ -765,7 +775,7 @@ if i32.const 0 i32.const 8 - i32.const 179 + i32.const 195 i32.const 2 call $~lib/env/abort unreachable @@ -775,7 +785,7 @@ i16x8.add local.set $2 local.get $2 - v128.const i32 0x2 0x0 0x3 0x0 0x4 0x0 0x5 0x0 0x6 0x0 0x7 0x0 0x8 0x0 0x0 0x80 + v128.const i32 0x00030002 0x00050004 0x00070006 0x80000008 i8x16.eq i8x16.all_true i32.const 0 @@ -784,7 +794,7 @@ if i32.const 0 i32.const 8 - i32.const 181 + i32.const 197 i32.const 2 call $~lib/env/abort unreachable @@ -801,7 +811,7 @@ if i32.const 0 i32.const 8 - i32.const 182 + i32.const 198 i32.const 2 call $~lib/env/abort unreachable @@ -818,14 +828,14 @@ if i32.const 0 i32.const 8 - i32.const 183 + i32.const 199 i32.const 2 call $~lib/env/abort unreachable end local.get $0 i16x8.neg - v128.const i32 0xff 0xff 0xfe 0xff 0xfd 0xff 0xfc 0xff 0xfb 0xff 0xfa 0xff 0xf9 0xff 0x1 0x80 + v128.const i32 0xfffeffff 0xfffcfffd 0xfffafffb 0x8001fff9 i8x16.eq i8x16.all_true i32.const 0 @@ -834,7 +844,7 @@ if i32.const 0 i32.const 8 - i32.const 184 + i32.const 200 i32.const 2 call $~lib/env/abort unreachable @@ -851,7 +861,7 @@ if i32.const 0 i32.const 8 - i32.const 189 + i32.const 205 i32.const 2 call $~lib/env/abort unreachable @@ -868,7 +878,7 @@ if i32.const 0 i32.const 8 - i32.const 190 + i32.const 206 i32.const 2 call $~lib/env/abort unreachable @@ -883,7 +893,7 @@ if i32.const 0 i32.const 8 - i32.const 191 + i32.const 207 i32.const 2 call $~lib/env/abort unreachable @@ -891,7 +901,7 @@ local.get $2 i32.const 9 i16x8.replace_lane 7 - v128.const i32 0x2 0x0 0x3 0x0 0x4 0x0 0x5 0x0 0x6 0x0 0x7 0x0 0x8 0x0 0x9 0x0 + v128.const i32 0x00030002 0x00050004 0x00070006 0x00090008 i8x16.eq i8x16.all_true i32.const 0 @@ -900,7 +910,7 @@ if i32.const 0 i32.const 8 - i32.const 192 + i32.const 208 i32.const 2 call $~lib/env/abort unreachable @@ -908,7 +918,7 @@ local.get $0 local.get $1 v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 - v128.const i32 0x1 0x0 0x2 0x0 0x3 0x0 0x4 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 + v128.const i32 0x00020001 0x00040003 0x00010001 0x00010001 i8x16.eq i8x16.all_true i32.const 0 @@ -917,12 +927,12 @@ if i32.const 0 i32.const 8 - i32.const 197 + i32.const 213 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0xfe 0x7f 0xff 0x7f 0xff 0x7f 0xff 0x7f 0xff 0x7f 0xff 0x7f 0xff 0x7f 0xff 0x7f + v128.const i32 0x7fff7ffe 0x7fff7fff 0x7fff7fff 0x7fff7fff i32.const 2 i16x8.splat i16x8.add_saturate_s @@ -936,12 +946,12 @@ if i32.const 0 i32.const 8 - i32.const 202 + i32.const 218 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0xfe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff + v128.const i32 0xfffffffe 0xffffffff 0xffffffff 0xffffffff i32.const 2 i16x8.splat i16x8.add_saturate_u @@ -955,12 +965,12 @@ if i32.const 0 i32.const 8 - i32.const 208 + i32.const 224 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0x1 0x80 0x0 0x80 0x0 0x80 0x0 0x80 0x0 0x80 0x0 0x80 0x0 0x80 0x0 0x80 + v128.const i32 0x80008001 0x80008000 0x80008000 0x80008000 i32.const 2 i16x8.splat i16x8.sub_saturate_s @@ -974,12 +984,12 @@ if i32.const 0 i32.const 8 - i32.const 214 + i32.const 230 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + v128.const i32 0x00000001 0x00000000 0x00000000 0x00000000 i32.const 2 i16x8.splat i16x8.sub_saturate_u @@ -993,7 +1003,7 @@ if i32.const 0 i32.const 8 - i32.const 220 + i32.const 236 i32.const 2 call $~lib/env/abort unreachable @@ -1012,7 +1022,7 @@ if i32.const 0 i32.const 8 - i32.const 226 + i32.const 242 i32.const 2 call $~lib/env/abort unreachable @@ -1031,7 +1041,7 @@ if i32.const 0 i32.const 8 - i32.const 227 + i32.const 243 i32.const 2 call $~lib/env/abort unreachable @@ -1050,12 +1060,12 @@ if i32.const 0 i32.const 8 - i32.const 228 + i32.const 244 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + v128.const i32 0x00000001 0x00000000 0x00000000 0x00000000 i16x8.any_true i32.const 0 i32.ne @@ -1065,7 +1075,7 @@ if i32.const 0 i32.const 8 - i32.const 229 + i32.const 245 i32.const 2 call $~lib/env/abort unreachable @@ -1081,7 +1091,7 @@ if i32.const 0 i32.const 8 - i32.const 230 + i32.const 246 i32.const 2 call $~lib/env/abort unreachable @@ -1113,7 +1123,7 @@ if i32.const 0 i32.const 8 - i32.const 235 + i32.const 251 i32.const 2 call $~lib/env/abort unreachable @@ -1130,7 +1140,7 @@ if i32.const 0 i32.const 8 - i32.const 236 + i32.const 252 i32.const 2 call $~lib/env/abort unreachable @@ -1147,7 +1157,7 @@ if i32.const 0 i32.const 8 - i32.const 237 + i32.const 253 i32.const 2 call $~lib/env/abort unreachable @@ -1164,7 +1174,7 @@ if i32.const 0 i32.const 8 - i32.const 238 + i32.const 254 i32.const 2 call $~lib/env/abort unreachable @@ -1181,7 +1191,7 @@ if i32.const 0 i32.const 8 - i32.const 239 + i32.const 255 i32.const 2 call $~lib/env/abort unreachable @@ -1198,7 +1208,7 @@ if i32.const 0 i32.const 8 - i32.const 240 + i32.const 256 i32.const 2 call $~lib/env/abort unreachable @@ -1215,7 +1225,7 @@ if i32.const 0 i32.const 8 - i32.const 241 + i32.const 257 i32.const 2 call $~lib/env/abort unreachable @@ -1232,7 +1242,7 @@ if i32.const 0 i32.const 8 - i32.const 242 + i32.const 258 i32.const 2 call $~lib/env/abort unreachable @@ -1249,7 +1259,7 @@ if i32.const 0 i32.const 8 - i32.const 243 + i32.const 259 i32.const 2 call $~lib/env/abort unreachable @@ -1266,7 +1276,7 @@ if i32.const 0 i32.const 8 - i32.const 244 + i32.const 260 i32.const 2 call $~lib/env/abort unreachable @@ -1280,10 +1290,10 @@ (local $4 v128) (local $5 v128) (local $6 v128) - v128.const i32 0x1 0x0 0x0 0x0 0x2 0x0 0x0 0x0 0x3 0x0 0x0 0x0 0xff 0xff 0xff 0x7f + v128.const i32 0x00000001 0x00000002 0x00000003 0x7fffffff local.set $0 local.get $0 - v128.const i32 0x1 0x0 0x0 0x0 0x2 0x0 0x0 0x0 0x3 0x0 0x0 0x0 0xff 0xff 0xff 0x7f + v128.const i32 0x00000001 0x00000002 0x00000003 0x7fffffff i8x16.eq i8x16.all_true i32.const 0 @@ -1292,7 +1302,7 @@ if i32.const 0 i32.const 8 - i32.const 249 + i32.const 265 i32.const 2 call $~lib/env/abort unreachable @@ -1301,7 +1311,7 @@ i32x4.splat local.set $1 local.get $1 - v128.const i32 0x1 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x1 0x0 0x0 0x0 + v128.const i32 0x00000001 0x00000001 0x00000001 0x00000001 i8x16.eq i8x16.all_true i32.const 0 @@ -1310,7 +1320,7 @@ if i32.const 0 i32.const 8 - i32.const 251 + i32.const 267 i32.const 2 call $~lib/env/abort unreachable @@ -1320,7 +1330,7 @@ i32x4.add local.set $2 local.get $2 - v128.const i32 0x2 0x0 0x0 0x0 0x3 0x0 0x0 0x0 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0x80 + v128.const i32 0x00000002 0x00000003 0x00000004 0x80000000 i8x16.eq i8x16.all_true i32.const 0 @@ -1329,7 +1339,7 @@ if i32.const 0 i32.const 8 - i32.const 253 + i32.const 269 i32.const 2 call $~lib/env/abort unreachable @@ -1346,7 +1356,7 @@ if i32.const 0 i32.const 8 - i32.const 254 + i32.const 270 i32.const 2 call $~lib/env/abort unreachable @@ -1363,14 +1373,14 @@ if i32.const 0 i32.const 8 - i32.const 255 + i32.const 271 i32.const 2 call $~lib/env/abort unreachable end local.get $0 i32x4.neg - v128.const i32 0xff 0xff 0xff 0xff 0xfe 0xff 0xff 0xff 0xfd 0xff 0xff 0xff 0x1 0x0 0x0 0x80 + v128.const i32 0xffffffff 0xfffffffe 0xfffffffd 0x80000001 i8x16.eq i8x16.all_true i32.const 0 @@ -1379,7 +1389,7 @@ if i32.const 0 i32.const 8 - i32.const 256 + i32.const 272 i32.const 2 call $~lib/env/abort unreachable @@ -1392,7 +1402,7 @@ if i32.const 0 i32.const 8 - i32.const 261 + i32.const 277 i32.const 2 call $~lib/env/abort unreachable @@ -1405,7 +1415,7 @@ if i32.const 0 i32.const 8 - i32.const 262 + i32.const 278 i32.const 2 call $~lib/env/abort unreachable @@ -1413,7 +1423,7 @@ local.get $2 i32.const 5 i32x4.replace_lane 3 - v128.const i32 0x2 0x0 0x0 0x0 0x3 0x0 0x0 0x0 0x4 0x0 0x0 0x0 0x5 0x0 0x0 0x0 + v128.const i32 0x00000002 0x00000003 0x00000004 0x00000005 i8x16.eq i8x16.all_true i32.const 0 @@ -1422,7 +1432,7 @@ if i32.const 0 i32.const 8 - i32.const 263 + i32.const 279 i32.const 2 call $~lib/env/abort unreachable @@ -1430,7 +1440,7 @@ local.get $0 local.get $1 v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 - v128.const i32 0x1 0x0 0x0 0x0 0x2 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x1 0x0 0x0 0x0 + v128.const i32 0x00000001 0x00000002 0x00000001 0x00000001 i8x16.eq i8x16.all_true i32.const 0 @@ -1439,7 +1449,7 @@ if i32.const 0 i32.const 8 - i32.const 268 + i32.const 284 i32.const 2 call $~lib/env/abort unreachable @@ -1458,7 +1468,7 @@ if i32.const 0 i32.const 8 - i32.const 273 + i32.const 289 i32.const 2 call $~lib/env/abort unreachable @@ -1477,7 +1487,7 @@ if i32.const 0 i32.const 8 - i32.const 274 + i32.const 290 i32.const 2 call $~lib/env/abort unreachable @@ -1496,12 +1506,12 @@ if i32.const 0 i32.const 8 - i32.const 275 + i32.const 291 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + v128.const i32 0x00000001 0x00000000 0x00000000 0x00000000 i32x4.any_true i32.const 0 i32.ne @@ -1511,7 +1521,7 @@ if i32.const 0 i32.const 8 - i32.const 276 + i32.const 292 i32.const 2 call $~lib/env/abort unreachable @@ -1527,7 +1537,7 @@ if i32.const 0 i32.const 8 - i32.const 277 + i32.const 293 i32.const 2 call $~lib/env/abort unreachable @@ -1559,7 +1569,7 @@ if i32.const 0 i32.const 8 - i32.const 282 + i32.const 298 i32.const 2 call $~lib/env/abort unreachable @@ -1576,7 +1586,7 @@ if i32.const 0 i32.const 8 - i32.const 283 + i32.const 299 i32.const 2 call $~lib/env/abort unreachable @@ -1593,7 +1603,7 @@ if i32.const 0 i32.const 8 - i32.const 284 + i32.const 300 i32.const 2 call $~lib/env/abort unreachable @@ -1610,7 +1620,7 @@ if i32.const 0 i32.const 8 - i32.const 285 + i32.const 301 i32.const 2 call $~lib/env/abort unreachable @@ -1627,7 +1637,7 @@ if i32.const 0 i32.const 8 - i32.const 286 + i32.const 302 i32.const 2 call $~lib/env/abort unreachable @@ -1644,7 +1654,7 @@ if i32.const 0 i32.const 8 - i32.const 287 + i32.const 303 i32.const 2 call $~lib/env/abort unreachable @@ -1661,7 +1671,7 @@ if i32.const 0 i32.const 8 - i32.const 288 + i32.const 304 i32.const 2 call $~lib/env/abort unreachable @@ -1678,7 +1688,7 @@ if i32.const 0 i32.const 8 - i32.const 289 + i32.const 305 i32.const 2 call $~lib/env/abort unreachable @@ -1695,7 +1705,7 @@ if i32.const 0 i32.const 8 - i32.const 290 + i32.const 306 i32.const 2 call $~lib/env/abort unreachable @@ -1712,7 +1722,7 @@ if i32.const 0 i32.const 8 - i32.const 291 + i32.const 307 i32.const 2 call $~lib/env/abort unreachable @@ -1730,7 +1740,7 @@ if i32.const 0 i32.const 8 - i32.const 292 + i32.const 308 i32.const 2 call $~lib/env/abort unreachable @@ -1748,7 +1758,7 @@ if i32.const 0 i32.const 8 - i32.const 297 + i32.const 313 i32.const 2 call $~lib/env/abort unreachable @@ -1758,10 +1768,10 @@ (local $0 v128) (local $1 v128) (local $2 v128) - v128.const i32 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f + v128.const i32 0x00000001 0x00000000 0xffffffff 0x7fffffff local.set $0 local.get $0 - v128.const i32 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f + v128.const i32 0x00000001 0x00000000 0xffffffff 0x7fffffff i8x16.eq i8x16.all_true i32.const 0 @@ -1770,7 +1780,7 @@ if i32.const 0 i32.const 8 - i32.const 306 + i32.const 322 i32.const 2 call $~lib/env/abort unreachable @@ -1779,7 +1789,7 @@ i64x2.splat local.set $1 local.get $1 - v128.const i32 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + v128.const i32 0x00000001 0x00000000 0x00000001 0x00000000 i8x16.eq i8x16.all_true i32.const 0 @@ -1788,7 +1798,7 @@ if i32.const 0 i32.const 8 - i32.const 308 + i32.const 324 i32.const 2 call $~lib/env/abort unreachable @@ -1798,7 +1808,7 @@ i64x2.add local.set $2 local.get $2 - v128.const i32 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x80 + v128.const i32 0x00000002 0x00000000 0x00000000 0x80000000 i8x16.eq i8x16.all_true i32.const 0 @@ -1807,7 +1817,7 @@ if i32.const 0 i32.const 8 - i32.const 310 + i32.const 326 i32.const 2 call $~lib/env/abort unreachable @@ -1824,14 +1834,14 @@ if i32.const 0 i32.const 8 - i32.const 311 + i32.const 327 i32.const 2 call $~lib/env/abort unreachable end local.get $0 i64x2.neg - v128.const i32 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x80 + v128.const i32 0xffffffff 0xffffffff 0x00000001 0x80000000 i8x16.eq i8x16.all_true i32.const 0 @@ -1840,7 +1850,7 @@ if i32.const 0 i32.const 8 - i32.const 312 + i32.const 328 i32.const 2 call $~lib/env/abort unreachable @@ -1853,7 +1863,7 @@ if i32.const 0 i32.const 8 - i32.const 317 + i32.const 333 i32.const 2 call $~lib/env/abort unreachable @@ -1866,7 +1876,7 @@ if i32.const 0 i32.const 8 - i32.const 318 + i32.const 334 i32.const 2 call $~lib/env/abort unreachable @@ -1874,7 +1884,7 @@ local.get $2 i64.const 3 i64x2.replace_lane 1 - v128.const i32 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x3 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + v128.const i32 0x00000002 0x00000000 0x00000003 0x00000000 i8x16.eq i8x16.all_true i32.const 0 @@ -1883,7 +1893,7 @@ if i32.const 0 i32.const 8 - i32.const 319 + i32.const 335 i32.const 2 call $~lib/env/abort unreachable @@ -1891,7 +1901,7 @@ local.get $0 local.get $1 v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 - v128.const i32 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + v128.const i32 0x00000001 0x00000000 0x00000001 0x00000000 i8x16.eq i8x16.all_true i32.const 0 @@ -1900,7 +1910,7 @@ if i32.const 0 i32.const 8 - i32.const 324 + i32.const 340 i32.const 2 call $~lib/env/abort unreachable @@ -1919,7 +1929,7 @@ if i32.const 0 i32.const 8 - i32.const 329 + i32.const 345 i32.const 2 call $~lib/env/abort unreachable @@ -1938,7 +1948,7 @@ if i32.const 0 i32.const 8 - i32.const 330 + i32.const 346 i32.const 2 call $~lib/env/abort unreachable @@ -1957,12 +1967,12 @@ if i32.const 0 i32.const 8 - i32.const 331 + i32.const 347 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + v128.const i32 0x00000001 0x00000000 0x00000000 0x00000000 i64x2.any_true i32.const 0 i32.ne @@ -1972,7 +1982,7 @@ if i32.const 0 i32.const 8 - i32.const 332 + i32.const 348 i32.const 2 call $~lib/env/abort unreachable @@ -1988,7 +1998,7 @@ if i32.const 0 i32.const 8 - i32.const 333 + i32.const 349 i32.const 2 call $~lib/env/abort unreachable @@ -2006,7 +2016,7 @@ if i32.const 0 i32.const 8 - i32.const 334 + i32.const 350 i32.const 2 call $~lib/env/abort unreachable @@ -2024,7 +2034,7 @@ if i32.const 0 i32.const 8 - i32.const 339 + i32.const 355 i32.const 2 call $~lib/env/abort unreachable @@ -2039,10 +2049,10 @@ (local $5 v128) (local $6 v128) (local $7 v128) - v128.const i32 0x0 0x0 0xc0 0x3f 0x0 0x0 0x20 0x40 0x0 0x0 0x60 0x40 0x0 0x0 0x90 0x40 + v128.const i32 0x3fc00000 0x40200000 0x40600000 0x40900000 local.set $0 local.get $0 - v128.const i32 0x0 0x0 0xc0 0x3f 0x0 0x0 0x20 0x40 0x0 0x0 0x60 0x40 0x0 0x0 0x90 0x40 + v128.const i32 0x3fc00000 0x40200000 0x40600000 0x40900000 i8x16.eq i8x16.all_true i32.const 0 @@ -2051,7 +2061,7 @@ if i32.const 0 i32.const 8 - i32.const 348 + i32.const 364 i32.const 2 call $~lib/env/abort unreachable @@ -2060,7 +2070,7 @@ f32x4.splat local.set $1 local.get $1 - v128.const i32 0x0 0x0 0x80 0x3f 0x0 0x0 0x80 0x3f 0x0 0x0 0x80 0x3f 0x0 0x0 0x80 0x3f + v128.const i32 0x3f800000 0x3f800000 0x3f800000 0x3f800000 i8x16.eq i8x16.all_true i32.const 0 @@ -2069,7 +2079,7 @@ if i32.const 0 i32.const 8 - i32.const 350 + i32.const 366 i32.const 2 call $~lib/env/abort unreachable @@ -2079,7 +2089,7 @@ f32x4.add local.set $2 local.get $2 - v128.const i32 0x0 0x0 0x20 0x40 0x0 0x0 0x60 0x40 0x0 0x0 0x90 0x40 0x0 0x0 0xb0 0x40 + v128.const i32 0x40200000 0x40600000 0x40900000 0x40b00000 i8x16.eq i8x16.all_true i32.const 0 @@ -2088,7 +2098,7 @@ if i32.const 0 i32.const 8 - i32.const 352 + i32.const 368 i32.const 2 call $~lib/env/abort unreachable @@ -2105,7 +2115,7 @@ if i32.const 0 i32.const 8 - i32.const 353 + i32.const 369 i32.const 2 call $~lib/env/abort unreachable @@ -2122,7 +2132,7 @@ if i32.const 0 i32.const 8 - i32.const 354 + i32.const 370 i32.const 2 call $~lib/env/abort unreachable @@ -2143,7 +2153,7 @@ if i32.const 0 i32.const 8 - i32.const 356 + i32.const 372 i32.const 2 call $~lib/env/abort unreachable @@ -2160,14 +2170,14 @@ if i32.const 0 i32.const 8 - i32.const 357 + i32.const 373 i32.const 2 call $~lib/env/abort unreachable end local.get $0 f32x4.neg - v128.const i32 0x0 0x0 0xc0 0xbf 0x0 0x0 0x20 0xc0 0x0 0x0 0x60 0xc0 0x0 0x0 0x90 0xc0 + v128.const i32 0xbfc00000 0xc0200000 0xc0600000 0xc0900000 i8x16.eq i8x16.all_true i32.const 0 @@ -2176,7 +2186,7 @@ if i32.const 0 i32.const 8 - i32.const 358 + i32.const 374 i32.const 2 call $~lib/env/abort unreachable @@ -2189,7 +2199,7 @@ if i32.const 0 i32.const 8 - i32.const 359 + i32.const 375 i32.const 2 call $~lib/env/abort unreachable @@ -2202,7 +2212,7 @@ if i32.const 0 i32.const 8 - i32.const 360 + i32.const 376 i32.const 2 call $~lib/env/abort unreachable @@ -2210,7 +2220,7 @@ local.get $2 f32.const 6.5 f32x4.replace_lane 3 - v128.const i32 0x0 0x0 0x20 0x40 0x0 0x0 0x60 0x40 0x0 0x0 0x90 0x40 0x0 0x0 0xd0 0x40 + v128.const i32 0x40200000 0x40600000 0x40900000 0x40d00000 i8x16.eq i8x16.all_true i32.const 0 @@ -2219,7 +2229,7 @@ if i32.const 0 i32.const 8 - i32.const 361 + i32.const 377 i32.const 2 call $~lib/env/abort unreachable @@ -2227,7 +2237,7 @@ local.get $0 local.get $1 v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 - v128.const i32 0x0 0x0 0xc0 0x3f 0x0 0x0 0x20 0x40 0x0 0x0 0x80 0x3f 0x0 0x0 0x80 0x3f + v128.const i32 0x3fc00000 0x40200000 0x3f800000 0x3f800000 i8x16.eq i8x16.all_true i32.const 0 @@ -2236,7 +2246,7 @@ if i32.const 0 i32.const 8 - i32.const 366 + i32.const 382 i32.const 2 call $~lib/env/abort unreachable @@ -2251,9 +2261,9 @@ f32.const -1 f32x4.replace_lane 0 local.set $5 - v128.const i32 0xff 0xff 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + v128.const i32 0xffffffff 0x00000000 0x00000000 0x00000000 local.set $6 - v128.const i32 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff + v128.const i32 0x00000000 0xffffffff 0xffffffff 0xffffffff local.set $7 local.get $5 local.get $4 @@ -2267,7 +2277,7 @@ if i32.const 0 i32.const 8 - i32.const 375 + i32.const 391 i32.const 2 call $~lib/env/abort unreachable @@ -2284,7 +2294,7 @@ if i32.const 0 i32.const 8 - i32.const 376 + i32.const 392 i32.const 2 call $~lib/env/abort unreachable @@ -2301,7 +2311,7 @@ if i32.const 0 i32.const 8 - i32.const 377 + i32.const 393 i32.const 2 call $~lib/env/abort unreachable @@ -2318,7 +2328,7 @@ if i32.const 0 i32.const 8 - i32.const 378 + i32.const 394 i32.const 2 call $~lib/env/abort unreachable @@ -2335,7 +2345,7 @@ if i32.const 0 i32.const 8 - i32.const 379 + i32.const 395 i32.const 2 call $~lib/env/abort unreachable @@ -2352,7 +2362,7 @@ if i32.const 0 i32.const 8 - i32.const 380 + i32.const 396 i32.const 2 call $~lib/env/abort unreachable @@ -2369,7 +2379,7 @@ if i32.const 0 i32.const 8 - i32.const 381 + i32.const 397 i32.const 2 call $~lib/env/abort unreachable @@ -2386,7 +2396,7 @@ if i32.const 0 i32.const 8 - i32.const 382 + i32.const 398 i32.const 2 call $~lib/env/abort unreachable @@ -2402,14 +2412,14 @@ if i32.const 0 i32.const 8 - i32.const 383 + i32.const 399 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0x0 0x0 0x80 0x40 0x0 0x0 0x10 0x41 0x0 0x0 0x80 0x41 0x0 0x0 0xc8 0x41 + v128.const i32 0x40800000 0x41100000 0x41800000 0x41c80000 f32x4.sqrt - v128.const i32 0x0 0x0 0x0 0x40 0x0 0x0 0x40 0x40 0x0 0x0 0x80 0x40 0x0 0x0 0xa0 0x40 + v128.const i32 0x40000000 0x40400000 0x40800000 0x40a00000 i8x16.eq i8x16.all_true i32.const 0 @@ -2418,7 +2428,7 @@ if i32.const 0 i32.const 8 - i32.const 384 + i32.const 400 i32.const 2 call $~lib/env/abort unreachable @@ -2436,7 +2446,7 @@ if i32.const 0 i32.const 8 - i32.const 385 + i32.const 401 i32.const 2 call $~lib/env/abort unreachable @@ -2454,7 +2464,7 @@ if i32.const 0 i32.const 8 - i32.const 390 + i32.const 406 i32.const 2 call $~lib/env/abort unreachable @@ -2469,10 +2479,10 @@ (local $5 v128) (local $6 v128) (local $7 v128) - v128.const i32 0x0 0x0 0x0 0x0 0x0 0x0 0xf8 0x3f 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x40 + v128.const i32 0x00000000 0x3ff80000 0x00000000 0x40040000 local.set $0 local.get $0 - v128.const i32 0x0 0x0 0x0 0x0 0x0 0x0 0xf8 0x3f 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x40 + v128.const i32 0x00000000 0x3ff80000 0x00000000 0x40040000 i8x16.eq i8x16.all_true i32.const 0 @@ -2481,7 +2491,7 @@ if i32.const 0 i32.const 8 - i32.const 399 + i32.const 415 i32.const 2 call $~lib/env/abort unreachable @@ -2490,7 +2500,7 @@ f64x2.splat local.set $1 local.get $1 - v128.const i32 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x3f 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x3f + v128.const i32 0x00000000 0x3ff00000 0x00000000 0x3ff00000 i8x16.eq i8x16.all_true i32.const 0 @@ -2499,7 +2509,7 @@ if i32.const 0 i32.const 8 - i32.const 401 + i32.const 417 i32.const 2 call $~lib/env/abort unreachable @@ -2509,7 +2519,7 @@ f64x2.add local.set $2 local.get $2 - v128.const i32 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x40 0x0 0x0 0x0 0x0 0x0 0x0 0xc 0x40 + v128.const i32 0x00000000 0x40040000 0x00000000 0x400c0000 i8x16.eq i8x16.all_true i32.const 0 @@ -2518,7 +2528,7 @@ if i32.const 0 i32.const 8 - i32.const 403 + i32.const 419 i32.const 2 call $~lib/env/abort unreachable @@ -2535,7 +2545,7 @@ if i32.const 0 i32.const 8 - i32.const 404 + i32.const 420 i32.const 2 call $~lib/env/abort unreachable @@ -2552,7 +2562,7 @@ if i32.const 0 i32.const 8 - i32.const 405 + i32.const 421 i32.const 2 call $~lib/env/abort unreachable @@ -2573,7 +2583,7 @@ if i32.const 0 i32.const 8 - i32.const 407 + i32.const 423 i32.const 2 call $~lib/env/abort unreachable @@ -2590,14 +2600,14 @@ if i32.const 0 i32.const 8 - i32.const 408 + i32.const 424 i32.const 2 call $~lib/env/abort unreachable end local.get $0 f64x2.neg - v128.const i32 0x0 0x0 0x0 0x0 0x0 0x0 0xf8 0xbf 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0xc0 + v128.const i32 0x00000000 0xbff80000 0x00000000 0xc0040000 i8x16.eq i8x16.all_true i32.const 0 @@ -2606,7 +2616,7 @@ if i32.const 0 i32.const 8 - i32.const 409 + i32.const 425 i32.const 2 call $~lib/env/abort unreachable @@ -2619,7 +2629,7 @@ if i32.const 0 i32.const 8 - i32.const 410 + i32.const 426 i32.const 2 call $~lib/env/abort unreachable @@ -2632,7 +2642,7 @@ if i32.const 0 i32.const 8 - i32.const 411 + i32.const 427 i32.const 2 call $~lib/env/abort unreachable @@ -2640,7 +2650,7 @@ local.get $2 f64.const 4.5 f64x2.replace_lane 1 - v128.const i32 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x40 0x0 0x0 0x0 0x0 0x0 0x0 0x12 0x40 + v128.const i32 0x00000000 0x40040000 0x00000000 0x40120000 i8x16.eq i8x16.all_true i32.const 0 @@ -2649,7 +2659,7 @@ if i32.const 0 i32.const 8 - i32.const 412 + i32.const 428 i32.const 2 call $~lib/env/abort unreachable @@ -2657,7 +2667,7 @@ local.get $0 local.get $1 v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 - v128.const i32 0x0 0x0 0x0 0x0 0x0 0x0 0xf8 0x3f 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x3f + v128.const i32 0x00000000 0x3ff80000 0x00000000 0x3ff00000 i8x16.eq i8x16.all_true i32.const 0 @@ -2666,7 +2676,7 @@ if i32.const 0 i32.const 8 - i32.const 417 + i32.const 433 i32.const 2 call $~lib/env/abort unreachable @@ -2681,9 +2691,9 @@ f64.const -1 f64x2.replace_lane 0 local.set $5 - v128.const i32 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 + v128.const i32 0xffffffff 0xffffffff 0x00000000 0x00000000 local.set $6 - v128.const i32 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff + v128.const i32 0x00000000 0x00000000 0xffffffff 0xffffffff local.set $7 local.get $5 local.get $4 @@ -2697,7 +2707,7 @@ if i32.const 0 i32.const 8 - i32.const 426 + i32.const 442 i32.const 2 call $~lib/env/abort unreachable @@ -2714,7 +2724,7 @@ if i32.const 0 i32.const 8 - i32.const 427 + i32.const 443 i32.const 2 call $~lib/env/abort unreachable @@ -2731,7 +2741,7 @@ if i32.const 0 i32.const 8 - i32.const 428 + i32.const 444 i32.const 2 call $~lib/env/abort unreachable @@ -2748,7 +2758,7 @@ if i32.const 0 i32.const 8 - i32.const 429 + i32.const 445 i32.const 2 call $~lib/env/abort unreachable @@ -2765,7 +2775,7 @@ if i32.const 0 i32.const 8 - i32.const 430 + i32.const 446 i32.const 2 call $~lib/env/abort unreachable @@ -2782,7 +2792,7 @@ if i32.const 0 i32.const 8 - i32.const 431 + i32.const 447 i32.const 2 call $~lib/env/abort unreachable @@ -2799,7 +2809,7 @@ if i32.const 0 i32.const 8 - i32.const 432 + i32.const 448 i32.const 2 call $~lib/env/abort unreachable @@ -2816,7 +2826,7 @@ if i32.const 0 i32.const 8 - i32.const 433 + i32.const 449 i32.const 2 call $~lib/env/abort unreachable @@ -2832,14 +2842,14 @@ if i32.const 0 i32.const 8 - i32.const 434 + i32.const 450 i32.const 2 call $~lib/env/abort unreachable end - v128.const i32 0x0 0x0 0x0 0x0 0x0 0x0 0x10 0x40 0x0 0x0 0x0 0x0 0x0 0x0 0x22 0x40 + v128.const i32 0x00000000 0x40100000 0x00000000 0x40220000 f64x2.sqrt - v128.const i32 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x40 0x0 0x0 0x0 0x0 0x0 0x0 0x8 0x40 + v128.const i32 0x00000000 0x40000000 0x00000000 0x40080000 i8x16.eq i8x16.all_true i32.const 0 @@ -2848,7 +2858,7 @@ if i32.const 0 i32.const 8 - i32.const 435 + i32.const 451 i32.const 2 call $~lib/env/abort unreachable @@ -2866,7 +2876,7 @@ if i32.const 0 i32.const 8 - i32.const 436 + i32.const 452 i32.const 2 call $~lib/env/abort unreachable @@ -2884,7 +2894,7 @@ if i32.const 0 i32.const 8 - i32.const 441 + i32.const 457 i32.const 2 call $~lib/env/abort unreachable @@ -2893,14 +2903,14 @@ (func $simd/test_v8x16 (; 9 ;) (type $FUNCSIG$v) (local $0 v128) (local $1 v128) - v128.const i32 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf + v128.const i32 0x03020100 0x07060504 0x0b0a0908 0x0f0e0d0c local.set $0 - v128.const i32 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f + v128.const i32 0x13121110 0x17161514 0x1b1a1918 0x1f1e1d1c local.set $1 local.get $0 local.get $1 v8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31 - v128.const i32 0x0 0x11 0x2 0x13 0x4 0x15 0x6 0x17 0x8 0x19 0xa 0x1b 0xc 0x1d 0xe 0x1f + v128.const i32 0x13021100 0x17061504 0x1b0a1908 0x1f0e1d0c i8x16.eq i8x16.all_true i32.const 0 @@ -2909,7 +2919,7 @@ if i32.const 0 i32.const 8 - i32.const 451 + i32.const 467 i32.const 2 call $~lib/env/abort unreachable