summaryrefslogtreecommitdiff
path: root/test/binaryen.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/binaryen.js')
-rw-r--r--test/binaryen.js/exception-handling.js.txt8
-rw-r--r--test/binaryen.js/kitchen-sink.js8
-rw-r--r--test/binaryen.js/kitchen-sink.js.txt506
-rw-r--r--test/binaryen.js/push-pop.js.txt14
4 files changed, 316 insertions, 220 deletions
diff --git a/test/binaryen.js/exception-handling.js.txt b/test/binaryen.js/exception-handling.js.txt
index 463743ff6..dd395a25a 100644
--- a/test/binaryen.js/exception-handling.js.txt
+++ b/test/binaryen.js/exception-handling.js.txt
@@ -26,7 +26,7 @@
)
)
-getExpressionInfo(throw) = {"id":40,"type":8,"event":"e"}
-getExpressionInfo(br_on_exn) = {"id":42,"type":7,"name":"l","event":"e"}
-getExpressionInfo(rethrow) = {"id":41,"type":8}
-getExpressionInfo(try) = {"id":39,"type":0}
+getExpressionInfo(throw) = {"id":41,"type":8,"event":"e"}
+getExpressionInfo(br_on_exn) = {"id":43,"type":7,"name":"l","event":"e"}
+getExpressionInfo(rethrow) = {"id":42,"type":8}
+getExpressionInfo(try) = {"id":40,"type":0}
diff --git a/test/binaryen.js/kitchen-sink.js b/test/binaryen.js/kitchen-sink.js
index 4ec06b415..037d92b99 100644
--- a/test/binaryen.js/kitchen-sink.js
+++ b/test/binaryen.js/kitchen-sink.js
@@ -110,6 +110,7 @@ function test_ids() {
console.log("BinaryenSIMDShuffleId: " + Binaryen.SIMDShuffleId);
console.log("BinaryenSIMDTernaryId: " + Binaryen.SIMDTernaryId);
console.log("BinaryenSIMDShiftId: " + Binaryen.SIMDShiftId);
+ console.log("BinaryenSIMDLoadId: " + Binaryen.SIMDLoadId);
console.log("MemoryInitId: " + Binaryen.MemoryInitId);
console.log("DataDropId: " + Binaryen.DataDropId);
console.log("MemoryCopyId: " + Binaryen.MemoryCopyId);
@@ -366,7 +367,7 @@ function test_core() {
module.i64x2.replace_lane(module.v128.const(v128_bytes), 1, module.i64.const(42, 43)),
module.f32x4.replace_lane(module.v128.const(v128_bytes), 1, module.f32.const(42)),
module.f64x2.replace_lane(module.v128.const(v128_bytes), 1, module.f64.const(42)),
- // // SIMD shift
+ // SIMD shift
module.i8x16.shl(module.v128.const(v128_bytes), module.i32.const(1)),
module.i8x16.shr_s(module.v128.const(v128_bytes), module.i32.const(1)),
module.i8x16.shr_u(module.v128.const(v128_bytes), module.i32.const(1)),
@@ -379,6 +380,11 @@ function test_core() {
module.i64x2.shl(module.v128.const(v128_bytes), module.i32.const(1)),
module.i64x2.shr_s(module.v128.const(v128_bytes), module.i32.const(1)),
module.i64x2.shr_u(module.v128.const(v128_bytes), module.i32.const(1)),
+ // SIMD load
+ module.v8x16.load_splat(0, 1, module.i32.const(128)),
+ module.v16x8.load_splat(16, 1, module.i32.const(128)),
+ module.v32x4.load_splat(16, 4, module.i32.const(128)),
+ module.v64x2.load_splat(0, 4, module.i32.const(128)),
// Other SIMD
module.v8x16.shuffle(module.v128.const(v128_bytes), module.v128.const(v128_bytes), v128_bytes),
module.v128.bitselect(module.v128.const(v128_bytes), module.v128.const(v128_bytes), module.v128.const(v128_bytes)),
diff --git a/test/binaryen.js/kitchen-sink.js.txt b/test/binaryen.js/kitchen-sink.js.txt
index 450ab252b..25202788b 100644
--- a/test/binaryen.js/kitchen-sink.js.txt
+++ b/test/binaryen.js/kitchen-sink.js.txt
@@ -51,16 +51,17 @@ BinaryenSIMDReplaceId: 29
BinaryenSIMDShuffleId: 30
BinaryenSIMDTernaryId: 31
BinaryenSIMDShiftId: 32
-MemoryInitId: 33
-DataDropId: 34
-MemoryCopyId: 35
-MemoryFillId: 36
-TryId: 39
-ThrowId: 40
-RethrowId: 41
-BrOnExnId: 42
-PushId: 37
-PopId: 38
+BinaryenSIMDLoadId: 33
+MemoryInitId: 34
+DataDropId: 35
+MemoryCopyId: 36
+MemoryFillId: 37
+TryId: 40
+ThrowId: 41
+RethrowId: 42
+BrOnExnId: 43
+PushId: 38
+PopId: 39
getExpressionInfo={"id":15,"type":3,"op":6}
(f32.neg
(f32.const -33.61199951171875)
@@ -1336,6 +1337,26 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
)
)
(drop
+ (v8x16.load_splat
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v16x8.load_splat offset=16 align=1
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v32x4.load_splat offset=16
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v64x2.load_splat align=4
+ (i32.const 128)
+ )
+ )
+ (drop
(v8x16.shuffle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
@@ -2868,6 +2889,26 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
)
)
(drop
+ (v8x16.load_splat
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v16x8.load_splat offset=16 align=1
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v32x4.load_splat offset=16
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v64x2.load_splat align=4
+ (i32.const 128)
+ )
+ )
+ (drop
(v8x16.shuffle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
@@ -4932,233 +4973,241 @@ int main() {
}
expressions[597] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
expressions[598] = BinaryenSIMDShift(the_module, 11, expressions[596], expressions[597]);
+ expressions[599] = BinaryenConst(the_module, BinaryenLiteralInt32(128));
+ expressions[600] = BinaryenSIMDLoad(the_module, 0, 0, 1, expressions[599]);
+ expressions[601] = BinaryenConst(the_module, BinaryenLiteralInt32(128));
+ expressions[602] = BinaryenSIMDLoad(the_module, 1, 16, 1, expressions[601]);
+ expressions[603] = BinaryenConst(the_module, BinaryenLiteralInt32(128));
+ expressions[604] = BinaryenSIMDLoad(the_module, 2, 16, 4, expressions[603]);
+ expressions[605] = BinaryenConst(the_module, BinaryenLiteralInt32(128));
+ expressions[606] = BinaryenSIMDLoad(the_module, 3, 0, 4, expressions[605]);
{
uint8_t t221[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[599] = BinaryenConst(the_module, BinaryenLiteralVec128(t221));
+ expressions[607] = BinaryenConst(the_module, BinaryenLiteralVec128(t221));
}
{
uint8_t t222[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[600] = BinaryenConst(the_module, BinaryenLiteralVec128(t222));
+ expressions[608] = BinaryenConst(the_module, BinaryenLiteralVec128(t222));
}
{
uint8_t mask[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[601] = BinaryenSIMDShuffle(the_module, expressions[599], expressions[600], mask);
+ expressions[609] = BinaryenSIMDShuffle(the_module, expressions[607], expressions[608], mask);
}
{
uint8_t t223[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[602] = BinaryenConst(the_module, BinaryenLiteralVec128(t223));
+ expressions[610] = BinaryenConst(the_module, BinaryenLiteralVec128(t223));
}
{
uint8_t t224[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[603] = BinaryenConst(the_module, BinaryenLiteralVec128(t224));
+ expressions[611] = BinaryenConst(the_module, BinaryenLiteralVec128(t224));
}
{
uint8_t t225[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[604] = BinaryenConst(the_module, BinaryenLiteralVec128(t225));
+ expressions[612] = BinaryenConst(the_module, BinaryenLiteralVec128(t225));
}
- expressions[605] = BinaryenSIMDTernary(the_module, 0, expressions[602], expressions[603], expressions[604]);
+ expressions[613] = BinaryenSIMDTernary(the_module, 0, expressions[610], expressions[611], expressions[612]);
{
uint8_t t226[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[606] = BinaryenConst(the_module, BinaryenLiteralVec128(t226));
+ expressions[614] = BinaryenConst(the_module, BinaryenLiteralVec128(t226));
}
{
uint8_t t227[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[607] = BinaryenConst(the_module, BinaryenLiteralVec128(t227));
+ expressions[615] = BinaryenConst(the_module, BinaryenLiteralVec128(t227));
}
{
uint8_t t228[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[608] = BinaryenConst(the_module, BinaryenLiteralVec128(t228));
+ expressions[616] = BinaryenConst(the_module, BinaryenLiteralVec128(t228));
}
- expressions[609] = BinaryenSIMDTernary(the_module, 1, expressions[606], expressions[607], expressions[608]);
+ expressions[617] = BinaryenSIMDTernary(the_module, 1, expressions[614], expressions[615], expressions[616]);
{
uint8_t t229[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[610] = BinaryenConst(the_module, BinaryenLiteralVec128(t229));
+ expressions[618] = BinaryenConst(the_module, BinaryenLiteralVec128(t229));
}
{
uint8_t t230[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[611] = BinaryenConst(the_module, BinaryenLiteralVec128(t230));
+ expressions[619] = BinaryenConst(the_module, BinaryenLiteralVec128(t230));
}
{
uint8_t t231[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[612] = BinaryenConst(the_module, BinaryenLiteralVec128(t231));
+ expressions[620] = BinaryenConst(the_module, BinaryenLiteralVec128(t231));
}
- expressions[613] = BinaryenSIMDTernary(the_module, 2, expressions[610], expressions[611], expressions[612]);
+ expressions[621] = BinaryenSIMDTernary(the_module, 2, expressions[618], expressions[619], expressions[620]);
{
uint8_t t232[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[614] = BinaryenConst(the_module, BinaryenLiteralVec128(t232));
+ expressions[622] = BinaryenConst(the_module, BinaryenLiteralVec128(t232));
}
{
uint8_t t233[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[615] = BinaryenConst(the_module, BinaryenLiteralVec128(t233));
+ expressions[623] = BinaryenConst(the_module, BinaryenLiteralVec128(t233));
}
{
uint8_t t234[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[616] = BinaryenConst(the_module, BinaryenLiteralVec128(t234));
+ expressions[624] = BinaryenConst(the_module, BinaryenLiteralVec128(t234));
}
- expressions[617] = BinaryenSIMDTernary(the_module, 3, expressions[614], expressions[615], expressions[616]);
+ expressions[625] = BinaryenSIMDTernary(the_module, 3, expressions[622], expressions[623], expressions[624]);
{
uint8_t t235[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[618] = BinaryenConst(the_module, BinaryenLiteralVec128(t235));
+ expressions[626] = BinaryenConst(the_module, BinaryenLiteralVec128(t235));
}
{
uint8_t t236[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[619] = BinaryenConst(the_module, BinaryenLiteralVec128(t236));
+ expressions[627] = BinaryenConst(the_module, BinaryenLiteralVec128(t236));
}
{
uint8_t t237[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
- expressions[620] = BinaryenConst(the_module, BinaryenLiteralVec128(t237));
- }
- expressions[621] = BinaryenSIMDTernary(the_module, 4, expressions[618], expressions[619], expressions[620]);
- expressions[622] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
- expressions[623] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[624] = BinaryenConst(the_module, BinaryenLiteralInt32(12));
- expressions[625] = BinaryenMemoryInit(the_module, 0, expressions[622], expressions[623], expressions[624]);
- expressions[626] = BinaryenDataDrop(the_module, 0);
- expressions[627] = BinaryenConst(the_module, BinaryenLiteralInt32(2048));
- expressions[628] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
- expressions[629] = BinaryenConst(the_module, BinaryenLiteralInt32(12));
- expressions[630] = BinaryenMemoryCopy(the_module, expressions[627], expressions[628], expressions[629]);
+ expressions[628] = BinaryenConst(the_module, BinaryenLiteralVec128(t237));
+ }
+ expressions[629] = BinaryenSIMDTernary(the_module, 4, expressions[626], expressions[627], expressions[628]);
+ expressions[630] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
expressions[631] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[632] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
- expressions[633] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
- expressions[634] = BinaryenMemoryFill(the_module, expressions[631], expressions[632], expressions[633]);
+ expressions[632] = BinaryenConst(the_module, BinaryenLiteralInt32(12));
+ expressions[633] = BinaryenMemoryInit(the_module, 0, expressions[630], expressions[631], expressions[632]);
+ expressions[634] = BinaryenDataDrop(the_module, 0);
+ expressions[635] = BinaryenConst(the_module, BinaryenLiteralInt32(2048));
+ expressions[636] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
+ expressions[637] = BinaryenConst(the_module, BinaryenLiteralInt32(12));
+ expressions[638] = BinaryenMemoryCopy(the_module, expressions[635], expressions[636], expressions[637]);
+ expressions[639] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[640] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
+ expressions[641] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
+ expressions[642] = BinaryenMemoryFill(the_module, expressions[639], expressions[640], expressions[641]);
{
BinaryenExpressionRef children[] = { 0 };
- expressions[635] = BinaryenBlock(the_module, NULL, children, 0, 0);
- }
- expressions[636] = BinaryenIf(the_module, expressions[7], expressions[8], expressions[9]);
- expressions[637] = BinaryenIf(the_module, expressions[10], expressions[11], expressions[0]);
- expressions[638] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[639] = BinaryenLoop(the_module, "in", expressions[638]);
- expressions[640] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[641] = BinaryenLoop(the_module, NULL, expressions[640]);
- expressions[642] = BinaryenBreak(the_module, "the-value", expressions[12], expressions[13]);
- expressions[643] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
- expressions[644] = BinaryenBreak(the_module, "the-nothing", expressions[643], expressions[0]);
- expressions[645] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
- expressions[646] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[645]);
- expressions[647] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]);
+ expressions[643] = BinaryenBlock(the_module, NULL, children, 0, 0);
+ }
+ expressions[644] = BinaryenIf(the_module, expressions[7], expressions[8], expressions[9]);
+ expressions[645] = BinaryenIf(the_module, expressions[10], expressions[11], expressions[0]);
+ expressions[646] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[647] = BinaryenLoop(the_module, "in", expressions[646]);
+ expressions[648] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[649] = BinaryenLoop(the_module, NULL, expressions[648]);
+ expressions[650] = BinaryenBreak(the_module, "the-value", expressions[12], expressions[13]);
+ expressions[651] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ expressions[652] = BinaryenBreak(the_module, "the-nothing", expressions[651], expressions[0]);
+ expressions[653] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
+ expressions[654] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[653]);
+ expressions[655] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]);
{
const char* names[] = { "the-value" };
- expressions[648] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[14], expressions[15]);
+ expressions[656] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[14], expressions[15]);
}
- expressions[649] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ expressions[657] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
{
const char* names[] = { "the-nothing" };
- expressions[650] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[649], expressions[0]);
+ expressions[658] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[657], expressions[0]);
}
- expressions[651] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
- expressions[652] = BinaryenConst(the_module, BinaryenLiteralInt64(37));
- expressions[653] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3));
- expressions[654] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
+ expressions[659] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
+ expressions[660] = BinaryenConst(the_module, BinaryenLiteralInt64(37));
+ expressions[661] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3));
+ expressions[662] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
{
- BinaryenExpressionRef operands[] = { expressions[651], expressions[652], expressions[653], expressions[654] };
- expressions[655] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1);
+ BinaryenExpressionRef operands[] = { expressions[659], expressions[660], expressions[661], expressions[662] };
+ expressions[663] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1);
}
- expressions[656] = BinaryenUnary(the_module, 20, expressions[655]);
- expressions[657] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
- expressions[658] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
- {
- BinaryenExpressionRef operands[] = { expressions[657], expressions[658] };
- expressions[659] = BinaryenCall(the_module, "an-imported", operands, 2, 3);
- }
- expressions[660] = BinaryenUnary(the_module, 25, expressions[659]);
- expressions[661] = BinaryenUnary(the_module, 20, expressions[660]);
- expressions[662] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
- expressions[663] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
- expressions[664] = BinaryenConst(the_module, BinaryenLiteralInt64(37));
- expressions[665] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3));
+ expressions[664] = BinaryenUnary(the_module, 20, expressions[663]);
+ expressions[665] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
expressions[666] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
{
- BinaryenExpressionRef operands[] = { expressions[663], expressions[664], expressions[665], expressions[666] };
- expressions[667] = BinaryenCallIndirect(the_module, expressions[662], operands, 4, "iiIfF");
- }
- expressions[668] = BinaryenUnary(the_module, 20, expressions[667]);
- expressions[669] = BinaryenLocalGet(the_module, 0, 1);
- expressions[670] = BinaryenDrop(the_module, expressions[669]);
- expressions[671] = BinaryenConst(the_module, BinaryenLiteralInt32(101));
- expressions[672] = BinaryenLocalSet(the_module, 0, expressions[671]);
- expressions[673] = BinaryenConst(the_module, BinaryenLiteralInt32(102));
- expressions[674] = BinaryenLocalTee(the_module, 0, expressions[673]);
- expressions[675] = BinaryenDrop(the_module, expressions[674]);
- expressions[676] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
- expressions[677] = BinaryenLoad(the_module, 4, 1, 0, 0, 1, expressions[676]);
- expressions[678] = BinaryenConst(the_module, BinaryenLiteralInt32(8));
- expressions[679] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[678]);
- expressions[680] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
- expressions[681] = BinaryenLoad(the_module, 4, 1, 0, 0, 3, expressions[680]);
- expressions[682] = BinaryenConst(the_module, BinaryenLiteralInt32(9));
- expressions[683] = BinaryenLoad(the_module, 8, 1, 2, 8, 4, expressions[682]);
- expressions[684] = BinaryenStore(the_module, 4, 0, 0, expressions[19], expressions[20], 1);
- expressions[685] = BinaryenStore(the_module, 8, 2, 4, expressions[21], expressions[22], 2);
- expressions[686] = BinaryenSelect(the_module, expressions[16], expressions[17], expressions[18]);
- expressions[687] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
- expressions[688] = BinaryenReturn(the_module, expressions[687]);
- expressions[689] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
- expressions[690] = BinaryenConst(the_module, BinaryenLiteralInt64(37));
- expressions[691] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3));
- expressions[692] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
- {
- BinaryenExpressionRef operands[] = { expressions[689], expressions[690], expressions[691], expressions[692] };
- expressions[693] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1);
- }
- expressions[694] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
- expressions[695] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
- expressions[696] = BinaryenConst(the_module, BinaryenLiteralInt64(37));
- expressions[697] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3));
- expressions[698] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
- {
- BinaryenExpressionRef operands[] = { expressions[695], expressions[696], expressions[697], expressions[698] };
- expressions[699] = BinaryenReturnCallIndirect(the_module, expressions[694], operands, 4, "iiIfF");
- }
- expressions[700] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- {
- BinaryenExpressionRef operands[] = { expressions[700] };
- expressions[701] = BinaryenThrow(the_module, "a-event", operands, 1);
- }
- expressions[702] = BinaryenPop(the_module, 7);
- expressions[703] = BinaryenLocalSet(the_module, 5, expressions[702]);
- expressions[704] = BinaryenLocalGet(the_module, 5, 7);
- expressions[705] = BinaryenBrOnExn(the_module, "try-block", "a-event", expressions[704]);
- expressions[706] = BinaryenRethrow(the_module, expressions[705]);
- {
- BinaryenExpressionRef children[] = { expressions[706] };
- expressions[707] = BinaryenBlock(the_module, "try-block", children, 1, 1);
- }
- expressions[708] = BinaryenDrop(the_module, expressions[707]);
- {
- BinaryenExpressionRef children[] = { expressions[703], expressions[708] };
- expressions[709] = BinaryenBlock(the_module, NULL, children, 2, 0);
- }
- expressions[710] = BinaryenTry(the_module, expressions[701], expressions[709]);
- expressions[711] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[712] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[713] = BinaryenAtomicLoad(the_module, 4, 0, 1, expressions[712]);
- expressions[714] = BinaryenAtomicStore(the_module, 4, 0, expressions[711], expressions[713], 1);
- expressions[715] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[716] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[717] = BinaryenConst(the_module, BinaryenLiteralInt64(0));
- expressions[718] = BinaryenAtomicWait(the_module, expressions[715], expressions[716], expressions[717], 1);
- expressions[719] = BinaryenDrop(the_module, expressions[718]);
+ BinaryenExpressionRef operands[] = { expressions[665], expressions[666] };
+ expressions[667] = BinaryenCall(the_module, "an-imported", operands, 2, 3);
+ }
+ expressions[668] = BinaryenUnary(the_module, 25, expressions[667]);
+ expressions[669] = BinaryenUnary(the_module, 20, expressions[668]);
+ expressions[670] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
+ expressions[671] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
+ expressions[672] = BinaryenConst(the_module, BinaryenLiteralInt64(37));
+ expressions[673] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3));
+ expressions[674] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
+ {
+ BinaryenExpressionRef operands[] = { expressions[671], expressions[672], expressions[673], expressions[674] };
+ expressions[675] = BinaryenCallIndirect(the_module, expressions[670], operands, 4, "iiIfF");
+ }
+ expressions[676] = BinaryenUnary(the_module, 20, expressions[675]);
+ expressions[677] = BinaryenLocalGet(the_module, 0, 1);
+ expressions[678] = BinaryenDrop(the_module, expressions[677]);
+ expressions[679] = BinaryenConst(the_module, BinaryenLiteralInt32(101));
+ expressions[680] = BinaryenLocalSet(the_module, 0, expressions[679]);
+ expressions[681] = BinaryenConst(the_module, BinaryenLiteralInt32(102));
+ expressions[682] = BinaryenLocalTee(the_module, 0, expressions[681]);
+ expressions[683] = BinaryenDrop(the_module, expressions[682]);
+ expressions[684] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ expressions[685] = BinaryenLoad(the_module, 4, 1, 0, 0, 1, expressions[684]);
+ expressions[686] = BinaryenConst(the_module, BinaryenLiteralInt32(8));
+ expressions[687] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[686]);
+ expressions[688] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ expressions[689] = BinaryenLoad(the_module, 4, 1, 0, 0, 3, expressions[688]);
+ expressions[690] = BinaryenConst(the_module, BinaryenLiteralInt32(9));
+ expressions[691] = BinaryenLoad(the_module, 8, 1, 2, 8, 4, expressions[690]);
+ expressions[692] = BinaryenStore(the_module, 4, 0, 0, expressions[19], expressions[20], 1);
+ expressions[693] = BinaryenStore(the_module, 8, 2, 4, expressions[21], expressions[22], 2);
+ expressions[694] = BinaryenSelect(the_module, expressions[16], expressions[17], expressions[18]);
+ expressions[695] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
+ expressions[696] = BinaryenReturn(the_module, expressions[695]);
+ expressions[697] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
+ expressions[698] = BinaryenConst(the_module, BinaryenLiteralInt64(37));
+ expressions[699] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3));
+ expressions[700] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
+ {
+ BinaryenExpressionRef operands[] = { expressions[697], expressions[698], expressions[699], expressions[700] };
+ expressions[701] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1);
+ }
+ expressions[702] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
+ expressions[703] = BinaryenConst(the_module, BinaryenLiteralInt32(13));
+ expressions[704] = BinaryenConst(the_module, BinaryenLiteralInt64(37));
+ expressions[705] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3));
+ expressions[706] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7));
+ {
+ BinaryenExpressionRef operands[] = { expressions[703], expressions[704], expressions[705], expressions[706] };
+ expressions[707] = BinaryenReturnCallIndirect(the_module, expressions[702], operands, 4, "iiIfF");
+ }
+ expressions[708] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ {
+ BinaryenExpressionRef operands[] = { expressions[708] };
+ expressions[709] = BinaryenThrow(the_module, "a-event", operands, 1);
+ }
+ expressions[710] = BinaryenPop(the_module, 7);
+ expressions[711] = BinaryenLocalSet(the_module, 5, expressions[710]);
+ expressions[712] = BinaryenLocalGet(the_module, 5, 7);
+ expressions[713] = BinaryenBrOnExn(the_module, "try-block", "a-event", expressions[712]);
+ expressions[714] = BinaryenRethrow(the_module, expressions[713]);
+ {
+ BinaryenExpressionRef children[] = { expressions[714] };
+ expressions[715] = BinaryenBlock(the_module, "try-block", children, 1, 1);
+ }
+ expressions[716] = BinaryenDrop(the_module, expressions[715]);
+ {
+ BinaryenExpressionRef children[] = { expressions[711], expressions[716] };
+ expressions[717] = BinaryenBlock(the_module, NULL, children, 2, 0);
+ }
+ expressions[718] = BinaryenTry(the_module, expressions[709], expressions[717]);
+ expressions[719] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
expressions[720] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[721] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[722] = BinaryenAtomicNotify(the_module, expressions[720], expressions[721]);
- expressions[723] = BinaryenDrop(the_module, expressions[722]);
- expressions[724] = BinaryenAtomicFence(the_module);
- expressions[725] = BinaryenPop(the_module, 1);
- expressions[726] = BinaryenPush(the_module, expressions[725]);
- expressions[727] = BinaryenPop(the_module, 2);
- expressions[728] = BinaryenPush(the_module, expressions[727]);
- expressions[729] = BinaryenPop(the_module, 3);
- expressions[730] = BinaryenPush(the_module, expressions[729]);
- expressions[731] = BinaryenPop(the_module, 4);
- expressions[732] = BinaryenPush(the_module, expressions[731]);
- expressions[733] = BinaryenPop(the_module, 5);
+ expressions[721] = BinaryenAtomicLoad(the_module, 4, 0, 1, expressions[720]);
+ expressions[722] = BinaryenAtomicStore(the_module, 4, 0, expressions[719], expressions[721], 1);
+ expressions[723] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[724] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[725] = BinaryenConst(the_module, BinaryenLiteralInt64(0));
+ expressions[726] = BinaryenAtomicWait(the_module, expressions[723], expressions[724], expressions[725], 1);
+ expressions[727] = BinaryenDrop(the_module, expressions[726]);
+ expressions[728] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[729] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[730] = BinaryenAtomicNotify(the_module, expressions[728], expressions[729]);
+ expressions[731] = BinaryenDrop(the_module, expressions[730]);
+ expressions[732] = BinaryenAtomicFence(the_module);
+ expressions[733] = BinaryenPop(the_module, 1);
expressions[734] = BinaryenPush(the_module, expressions[733]);
- expressions[735] = BinaryenPop(the_module, 7);
+ expressions[735] = BinaryenPop(the_module, 2);
expressions[736] = BinaryenPush(the_module, expressions[735]);
- expressions[737] = BinaryenNop(the_module);
- expressions[738] = BinaryenUnreachable(the_module);
+ expressions[737] = BinaryenPop(the_module, 3);
+ expressions[738] = BinaryenPush(the_module, expressions[737]);
+ expressions[739] = BinaryenPop(the_module, 4);
+ expressions[740] = BinaryenPush(the_module, expressions[739]);
+ expressions[741] = BinaryenPop(the_module, 5);
+ expressions[742] = BinaryenPush(the_module, expressions[741]);
+ expressions[743] = BinaryenPop(the_module, 7);
+ expressions[744] = BinaryenPush(the_module, expressions[743]);
+ expressions[745] = BinaryenNop(the_module);
+ expressions[746] = BinaryenUnreachable(the_module);
BinaryenExpressionGetId(expressions[30]);
BinaryenExpressionGetType(expressions[30]);
BinaryenUnaryGetOp(expressions[30]);
@@ -5169,26 +5218,26 @@ getExpressionInfo={"id":15,"type":3,"op":6}
(f32.const -33.61199951171875)
)
- expressions[739] = BinaryenConst(the_module, BinaryenLiteralInt32(5));
- BinaryenExpressionGetId(expressions[739]);
- BinaryenExpressionGetType(expressions[739]);
- BinaryenConstGetValueI32(expressions[739]);
+ expressions[747] = BinaryenConst(the_module, BinaryenLiteralInt32(5));
+ BinaryenExpressionGetId(expressions[747]);
+ BinaryenExpressionGetType(expressions[747]);
+ BinaryenConstGetValueI32(expressions[747]);
getExpressionInfo(i32.const)={"id":14,"type":1,"value":5}
- expressions[740] = BinaryenConst(the_module, BinaryenLiteralInt64(30064771078));
- BinaryenExpressionGetId(expressions[740]);
- BinaryenExpressionGetType(expressions[740]);
- BinaryenConstGetValueI64Low(expressions[740]);
- BinaryenConstGetValueI64High(expressions[740]);
+ expressions[748] = BinaryenConst(the_module, BinaryenLiteralInt64(30064771078));
+ BinaryenExpressionGetId(expressions[748]);
+ BinaryenExpressionGetType(expressions[748]);
+ BinaryenConstGetValueI64Low(expressions[748]);
+ BinaryenConstGetValueI64High(expressions[748]);
getExpressionInfo(i64.const)={"id":14,"type":2,"value":{"low":6,"high":7}}
- expressions[741] = BinaryenConst(the_module, BinaryenLiteralFloat32(8.5));
- BinaryenExpressionGetId(expressions[741]);
- BinaryenExpressionGetType(expressions[741]);
- BinaryenConstGetValueF32(expressions[741]);
+ expressions[749] = BinaryenConst(the_module, BinaryenLiteralFloat32(8.5));
+ BinaryenExpressionGetId(expressions[749]);
+ BinaryenExpressionGetType(expressions[749]);
+ BinaryenConstGetValueF32(expressions[749]);
getExpressionInfo(f32.const)={"id":14,"type":3,"value":8.5}
- expressions[742] = BinaryenConst(the_module, BinaryenLiteralFloat64(9.5));
- BinaryenExpressionGetId(expressions[742]);
- BinaryenExpressionGetType(expressions[742]);
- BinaryenConstGetValueF64(expressions[742]);
+ expressions[750] = BinaryenConst(the_module, BinaryenLiteralFloat64(9.5));
+ BinaryenExpressionGetId(expressions[750]);
+ BinaryenExpressionGetType(expressions[750]);
+ BinaryenConstGetValueF64(expressions[750]);
getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
{
BinaryenExpressionRef children[] = { expressions[24], expressions[26], expressions[28], expressions[30], expressions[32],
@@ -5228,33 +5277,34 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
expressions[542], expressions[544], expressions[547], expressions[550], expressions[553], expressions[556],
expressions[559], expressions[562], expressions[565], expressions[568], expressions[571], expressions[574],
expressions[577], expressions[580], expressions[583], expressions[586], expressions[589], expressions[592],
- expressions[595], expressions[598], expressions[601], expressions[605], expressions[609], expressions[613],
- expressions[617], expressions[621], expressions[625], expressions[626], expressions[630], expressions[634],
- expressions[635], expressions[636], expressions[637], expressions[639], expressions[641], expressions[642],
- expressions[644], expressions[646], expressions[647], expressions[648], expressions[650], expressions[656],
- expressions[661], expressions[668], expressions[670], expressions[672], expressions[675], expressions[677],
- expressions[679], expressions[681], expressions[683], expressions[684], expressions[685], expressions[686],
- expressions[688], expressions[693], expressions[699], expressions[710], expressions[714], expressions[719],
- expressions[723], expressions[724], expressions[726], expressions[728], expressions[730], expressions[732],
- expressions[734], expressions[736], expressions[737], expressions[738] };
- expressions[743] = BinaryenBlock(the_module, "the-value", children, 273, 0);
+ expressions[595], expressions[598], expressions[600], expressions[602], expressions[604], expressions[606],
+ expressions[609], expressions[613], expressions[617], expressions[621], expressions[625], expressions[629],
+ expressions[633], expressions[634], expressions[638], expressions[642], expressions[643], expressions[644],
+ expressions[645], expressions[647], expressions[649], expressions[650], expressions[652], expressions[654],
+ expressions[655], expressions[656], expressions[658], expressions[664], expressions[669], expressions[676],
+ expressions[678], expressions[680], expressions[683], expressions[685], expressions[687], expressions[689],
+ expressions[691], expressions[692], expressions[693], expressions[694], expressions[696], expressions[701],
+ expressions[707], expressions[718], expressions[722], expressions[727], expressions[731], expressions[732],
+ expressions[734], expressions[736], expressions[738], expressions[740], expressions[742], expressions[744],
+ expressions[745], expressions[746] };
+ expressions[751] = BinaryenBlock(the_module, "the-value", children, 277, 0);
}
- expressions[744] = BinaryenDrop(the_module, expressions[743]);
+ expressions[752] = BinaryenDrop(the_module, expressions[751]);
{
- BinaryenExpressionRef children[] = { expressions[744] };
- expressions[745] = BinaryenBlock(the_module, "the-nothing", children, 1, 0);
+ BinaryenExpressionRef children[] = { expressions[752] };
+ expressions[753] = BinaryenBlock(the_module, "the-nothing", children, 1, 0);
}
- expressions[746] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
+ expressions[754] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
{
- BinaryenExpressionRef children[] = { expressions[745], expressions[746] };
- expressions[747] = BinaryenBlock(the_module, "the-body", children, 2, 0);
+ BinaryenExpressionRef children[] = { expressions[753], expressions[754] };
+ expressions[755] = BinaryenBlock(the_module, "the-body", children, 2, 0);
}
{
BinaryenType varTypes[] = { 1, 7 };
- functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[1], varTypes, 2, expressions[747]);
+ functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[1], varTypes, 2, expressions[755]);
}
- expressions[748] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
- globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[748]);
+ expressions[756] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[756]);
{
BinaryenType paramTypes[] = { 1, 4 };
functionTypes[2] = BinaryenAddFunctionType(the_module, "fiF", 3, paramTypes, 2);
@@ -5284,13 +5334,13 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
const char* funcNames[] = { "kitchen()sinker" };
BinaryenSetFunctionTable(the_module, 1, 4294967295, funcNames, 1);
}
- expressions[749] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
+ expressions[757] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
{
const char segment0[] = { 104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100 };
const char segment1[] = { 73, 32, 97, 109, 32, 112, 97, 115, 115, 105, 118, 101 };
const char* segments[] = { segment0, segment1 };
int8_t segmentPassive[] = { 0, 1 };
- BinaryenExpressionRef segmentOffsets[] = { expressions[749], expressions[0] };
+ BinaryenExpressionRef segmentOffsets[] = { expressions[757], expressions[0] };
BinaryenIndex segmentSizes[] = { 12, 12 };
BinaryenSetMemory(the_module, 1, 256, "mem", segments, segmentPassive, segmentOffsets, segmentSizes, 2, 1);
}
@@ -5298,10 +5348,10 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
BinaryenType paramTypes[] = { 0 };
functionTypes[3] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0);
}
- expressions[750] = BinaryenNop(the_module);
+ expressions[758] = BinaryenNop(the_module);
{
BinaryenType varTypes[] = { 0 };
- functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[750]);
+ functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[758]);
}
BinaryenSetStart(the_module, functions[1]);
{
@@ -6578,6 +6628,26 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
)
)
(drop
+ (v8x16.load_splat
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v16x8.load_splat offset=16 align=1
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v32x4.load_splat offset=16
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v64x2.load_splat align=4
+ (i32.const 128)
+ )
+ )
+ (drop
(v8x16.shuffle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
@@ -8112,6 +8182,26 @@ getExpressionInfo(f64.const)={"id":14,"type":4,"value":9.5}
)
)
(drop
+ (v8x16.load_splat
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v16x8.load_splat offset=16 align=1
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v32x4.load_splat offset=16
+ (i32.const 128)
+ )
+ )
+ (drop
+ (v64x2.load_splat align=4
+ (i32.const 128)
+ )
+ )
+ (drop
(v8x16.shuffle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
diff --git a/test/binaryen.js/push-pop.js.txt b/test/binaryen.js/push-pop.js.txt
index 80166906a..2b895ed4f 100644
--- a/test/binaryen.js/push-pop.js.txt
+++ b/test/binaryen.js/push-pop.js.txt
@@ -22,10 +22,10 @@
)
)
-getExpressionInfo(i32.pop) = {"id":38,"type":1}
-getExpressionInfo(i64.pop) = {"id":38,"type":2}
-getExpressionInfo(f32.pop) = {"id":38,"type":3}
-getExpressionInfo(f64.pop) = {"id":38,"type":4}
-getExpressionInfo(v128.pop) = {"id":38,"type":5}
-getExpressionInfo(exnref.pop) = {"id":38,"type":7}
-getExpressionInfo(push) = {"id":37}
+getExpressionInfo(i32.pop) = {"id":39,"type":1}
+getExpressionInfo(i64.pop) = {"id":39,"type":2}
+getExpressionInfo(f32.pop) = {"id":39,"type":3}
+getExpressionInfo(f64.pop) = {"id":39,"type":4}
+getExpressionInfo(v128.pop) = {"id":39,"type":5}
+getExpressionInfo(exnref.pop) = {"id":39,"type":7}
+getExpressionInfo(push) = {"id":38}