summaryrefslogtreecommitdiff
path: root/test/example
diff options
context:
space:
mode:
Diffstat (limited to 'test/example')
-rw-r--r--test/example/c-api-kitchen-sink.c65
-rw-r--r--test/example/c-api-kitchen-sink.txt303
-rw-r--r--test/example/c-api-kitchen-sink.txt.txt28
3 files changed, 274 insertions, 122 deletions
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index 95bc398b5..ad61ca528 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -109,11 +109,11 @@ BinaryenExpressionRef makeSIMDShuffle(BinaryenModuleRef module) {
return BinaryenSIMDShuffle(module, left, right, (uint8_t[16]) {});
}
-BinaryenExpressionRef makeSIMDBitselect(BinaryenModuleRef module) {
- BinaryenExpressionRef left = makeVec128(module, v128_bytes);
- BinaryenExpressionRef right = makeVec128(module, v128_bytes);
- BinaryenExpressionRef cond = makeVec128(module, v128_bytes);
- return BinaryenSIMDBitselect(module, left, right, cond);
+BinaryenExpressionRef makeSIMDTernary(BinaryenModuleRef module, BinaryenOp op) {
+ BinaryenExpressionRef a = makeVec128(module, v128_bytes);
+ BinaryenExpressionRef b = makeVec128(module, v128_bytes);
+ BinaryenExpressionRef c = makeVec128(module, v128_bytes);
+ return BinaryenSIMDTernary(module, op, a, b, c);
}
BinaryenExpressionRef makeSIMDShift(BinaryenModuleRef module, BinaryenOp op) {
@@ -472,7 +472,11 @@ void test_core() {
makeSIMDShift(module, BinaryenShrUVecI64x2()),
// Other SIMD
makeSIMDShuffle(module),
- makeSIMDBitselect(module),
+ makeSIMDTernary(module, BinaryenBitselectVec128()),
+ makeSIMDTernary(module, BinaryenQFMAVecF32x4()),
+ makeSIMDTernary(module, BinaryenQFMSVecF32x4()),
+ makeSIMDTernary(module, BinaryenQFMAVecF64x2()),
+ makeSIMDTernary(module, BinaryenQFMSVecF64x2()),
// Bulk memory
makeMemoryInit(module),
makeDataDrop(module),
@@ -489,19 +493,27 @@ void test_core() {
BinaryenBreak(module, "the-value", NULL, makeInt32(module, 3)),
BinaryenBreak(module, "the-nothing", NULL, NULL),
BinaryenSwitch(module, switchValueNames, 1, "the-value", temp8, temp9),
- BinaryenSwitch(module, switchBodyNames, 1, "the-nothing", makeInt32(module, 2), NULL),
- BinaryenUnary(module, BinaryenEqZInt32(), // check the output type of the call node
- BinaryenCall(module, "kitchen()sinker", callOperands4, 4, BinaryenTypeInt32())
- ),
- BinaryenUnary(module, BinaryenEqZInt32(), // check the output type of the call node
- BinaryenUnary(module,
- BinaryenTruncSFloat32ToInt32(),
- BinaryenCall(module, "an-imported", callOperands2, 2, BinaryenTypeFloat32())
- )
- ),
- BinaryenUnary(module, BinaryenEqZInt32(), // check the output type of the call node
- BinaryenCallIndirect(module, makeInt32(module, 2449), callOperands4b, 4, "iiIfF")
- ),
+ BinaryenSwitch(
+ module, switchBodyNames, 1, "the-nothing", makeInt32(module, 2), NULL),
+ BinaryenUnary(
+ module,
+ BinaryenEqZInt32(), // check the output type of the call node
+ BinaryenCall(
+ module, "kitchen()sinker", callOperands4, 4, BinaryenTypeInt32())),
+ BinaryenUnary(module,
+ BinaryenEqZInt32(), // check the output type of the call node
+ BinaryenUnary(module,
+ BinaryenTruncSFloat32ToInt32(),
+ BinaryenCall(module,
+ "an-imported",
+ callOperands2,
+ 2,
+ BinaryenTypeFloat32()))),
+ BinaryenUnary(
+ module,
+ BinaryenEqZInt32(), // check the output type of the call node
+ BinaryenCallIndirect(
+ module, makeInt32(module, 2449), callOperands4b, 4, "iiIfF")),
BinaryenDrop(module, BinaryenLocalGet(module, 0, BinaryenTypeInt32())),
BinaryenLocalSet(module, 0, makeInt32(module, 101)),
BinaryenDrop(module, BinaryenLocalTee(module, 0, makeInt32(module, 102))),
@@ -523,13 +535,16 @@ void test_core() {
// Exception handling
BinaryenTry(module, tryBody, catchBody),
// Atomics
- BinaryenAtomicStore(module, 4, 0, temp6,
+ BinaryenAtomicStore(
+ module,
+ 4,
+ 0,
+ temp6,
BinaryenAtomicLoad(module, 4, 0, BinaryenTypeInt32(), temp6),
- BinaryenTypeInt32()
- ),
- BinaryenDrop(module,
- BinaryenAtomicWait(module, temp6, temp6, temp16, BinaryenTypeInt32())
- ),
+ BinaryenTypeInt32()),
+ BinaryenDrop(
+ module,
+ BinaryenAtomicWait(module, temp6, temp6, temp16, BinaryenTypeInt32())),
BinaryenDrop(module, BinaryenAtomicNotify(module, temp6, temp6)),
BinaryenAtomicFence(module),
diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt
index 7f9266207..68c75fee5 100644
--- a/test/example/c-api-kitchen-sink.txt
+++ b/test/example/c-api-kitchen-sink.txt
@@ -1241,6 +1241,34 @@ BinaryenFeatureAll: 511
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
+ (drop
+ (f32x4.qfma
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.qfms
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.qfma
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.qfms
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
(memory.init 0
(i32.const 1024)
(i32.const 0)
@@ -3246,101 +3274,153 @@ int main() {
uint8_t t210[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
expressions[597] = BinaryenConst(the_module, BinaryenLiteralVec128(t210));
}
- expressions[598] = BinaryenSIMDBitselect(the_module, expressions[595], expressions[596], expressions[597]);
- expressions[599] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
- expressions[600] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[601] = BinaryenConst(the_module, BinaryenLiteralInt32(12));
- expressions[602] = BinaryenMemoryInit(the_module, 0, expressions[599], expressions[600], expressions[601]);
- expressions[603] = BinaryenDataDrop(the_module, 0);
- expressions[604] = BinaryenConst(the_module, BinaryenLiteralInt32(2048));
- expressions[605] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
- expressions[606] = BinaryenConst(the_module, BinaryenLiteralInt32(12));
- expressions[607] = BinaryenMemoryCopy(the_module, expressions[604], expressions[605], expressions[606]);
- expressions[608] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[609] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
- expressions[610] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
- expressions[611] = BinaryenMemoryFill(the_module, expressions[608], expressions[609], expressions[610]);
+ expressions[598] = BinaryenSIMDTernary(the_module, 0, expressions[595], expressions[596], expressions[597]);
+ {
+ uint8_t t211[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+ expressions[599] = BinaryenConst(the_module, BinaryenLiteralVec128(t211));
+ }
+ {
+ uint8_t t212[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+ expressions[600] = BinaryenConst(the_module, BinaryenLiteralVec128(t212));
+ }
+ {
+ uint8_t t213[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+ expressions[601] = BinaryenConst(the_module, BinaryenLiteralVec128(t213));
+ }
+ expressions[602] = BinaryenSIMDTernary(the_module, 1, expressions[599], expressions[600], expressions[601]);
+ {
+ uint8_t t214[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+ expressions[603] = BinaryenConst(the_module, BinaryenLiteralVec128(t214));
+ }
+ {
+ uint8_t t215[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+ expressions[604] = BinaryenConst(the_module, BinaryenLiteralVec128(t215));
+ }
+ {
+ uint8_t t216[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+ expressions[605] = BinaryenConst(the_module, BinaryenLiteralVec128(t216));
+ }
+ expressions[606] = BinaryenSIMDTernary(the_module, 2, expressions[603], expressions[604], expressions[605]);
+ {
+ uint8_t t217[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+ expressions[607] = BinaryenConst(the_module, BinaryenLiteralVec128(t217));
+ }
+ {
+ uint8_t t218[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+ expressions[608] = BinaryenConst(the_module, BinaryenLiteralVec128(t218));
+ }
+ {
+ uint8_t t219[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+ expressions[609] = BinaryenConst(the_module, BinaryenLiteralVec128(t219));
+ }
+ expressions[610] = BinaryenSIMDTernary(the_module, 3, expressions[607], expressions[608], expressions[609]);
+ {
+ uint8_t t220[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+ expressions[611] = BinaryenConst(the_module, BinaryenLiteralVec128(t220));
+ }
+ {
+ uint8_t t221[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
+ expressions[612] = 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[613] = BinaryenConst(the_module, BinaryenLiteralVec128(t222));
+ }
+ expressions[614] = BinaryenSIMDTernary(the_module, 4, expressions[611], expressions[612], expressions[613]);
+ expressions[615] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
+ expressions[616] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[617] = BinaryenConst(the_module, BinaryenLiteralInt32(12));
+ expressions[618] = BinaryenMemoryInit(the_module, 0, expressions[615], expressions[616], expressions[617]);
+ expressions[619] = BinaryenDataDrop(the_module, 0);
+ expressions[620] = BinaryenConst(the_module, BinaryenLiteralInt32(2048));
+ expressions[621] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
+ expressions[622] = BinaryenConst(the_module, BinaryenLiteralInt32(12));
+ expressions[623] = BinaryenMemoryCopy(the_module, expressions[620], expressions[621], expressions[622]);
+ expressions[624] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[625] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
+ expressions[626] = BinaryenConst(the_module, BinaryenLiteralInt32(1024));
+ expressions[627] = BinaryenMemoryFill(the_module, expressions[624], expressions[625], expressions[626]);
{
BinaryenExpressionRef children[] = { 0 };
- expressions[612] = BinaryenBlock(the_module, NULL, children, 0, BinaryenTypeAuto());
- }
- expressions[613] = BinaryenIf(the_module, expressions[18], expressions[19], expressions[20]);
- expressions[614] = BinaryenIf(the_module, expressions[21], expressions[22], expressions[0]);
- expressions[615] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[616] = BinaryenLoop(the_module, "in", expressions[615]);
- expressions[617] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[618] = BinaryenLoop(the_module, NULL, expressions[617]);
- expressions[619] = BinaryenBreak(the_module, "the-value", expressions[23], expressions[24]);
- expressions[620] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
- expressions[621] = BinaryenBreak(the_module, "the-nothing", expressions[620], expressions[0]);
- expressions[622] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
- expressions[623] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[622]);
- expressions[624] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]);
+ expressions[628] = BinaryenBlock(the_module, NULL, children, 0, BinaryenTypeAuto());
+ }
+ expressions[629] = BinaryenIf(the_module, expressions[18], expressions[19], expressions[20]);
+ expressions[630] = BinaryenIf(the_module, expressions[21], expressions[22], expressions[0]);
+ expressions[631] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[632] = BinaryenLoop(the_module, "in", expressions[631]);
+ expressions[633] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[634] = BinaryenLoop(the_module, NULL, expressions[633]);
+ expressions[635] = BinaryenBreak(the_module, "the-value", expressions[23], expressions[24]);
+ expressions[636] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ expressions[637] = BinaryenBreak(the_module, "the-nothing", expressions[636], expressions[0]);
+ expressions[638] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
+ expressions[639] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[638]);
+ expressions[640] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]);
{
const char* names[] = { "the-value" };
- expressions[625] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[25], expressions[26]);
+ expressions[641] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[25], expressions[26]);
}
- expressions[626] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ expressions[642] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
{
const char* names[] = { "the-nothing" };
- expressions[627] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[626], expressions[0]);
+ expressions[643] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[642], expressions[0]);
}
{
BinaryenExpressionRef operands[] = { expressions[10], expressions[11], expressions[12], expressions[13] };
- expressions[628] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1);
+ expressions[644] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1);
}
- expressions[629] = BinaryenUnary(the_module, 20, expressions[628]);
+ expressions[645] = BinaryenUnary(the_module, 20, expressions[644]);
{
BinaryenExpressionRef operands[] = { expressions[8], expressions[9] };
- expressions[630] = BinaryenCall(the_module, "an-imported", operands, 2, 3);
+ expressions[646] = BinaryenCall(the_module, "an-imported", operands, 2, 3);
}
- expressions[631] = BinaryenUnary(the_module, 25, expressions[630]);
- expressions[632] = BinaryenUnary(the_module, 20, expressions[631]);
- expressions[633] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
+ expressions[647] = BinaryenUnary(the_module, 25, expressions[646]);
+ expressions[648] = BinaryenUnary(the_module, 20, expressions[647]);
+ expressions[649] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
{
BinaryenExpressionRef operands[] = { expressions[14], expressions[15], expressions[16], expressions[17] };
- expressions[634] = BinaryenCallIndirect(the_module, expressions[633], operands, 4, "iiIfF");
- }
- expressions[635] = BinaryenUnary(the_module, 20, expressions[634]);
- expressions[636] = BinaryenLocalGet(the_module, 0, 1);
- expressions[637] = BinaryenDrop(the_module, expressions[636]);
- expressions[638] = BinaryenConst(the_module, BinaryenLiteralInt32(101));
- expressions[639] = BinaryenLocalSet(the_module, 0, expressions[638]);
- expressions[640] = BinaryenConst(the_module, BinaryenLiteralInt32(102));
- expressions[641] = BinaryenLocalTee(the_module, 0, expressions[640]);
- expressions[642] = BinaryenDrop(the_module, expressions[641]);
- expressions[643] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
- expressions[644] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[643]);
- expressions[645] = BinaryenConst(the_module, BinaryenLiteralInt32(8));
- expressions[646] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[645]);
- expressions[647] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
- expressions[648] = BinaryenLoad(the_module, 4, 0, 0, 0, 3, expressions[647]);
- expressions[649] = BinaryenConst(the_module, BinaryenLiteralInt32(9));
- expressions[650] = BinaryenLoad(the_module, 8, 0, 2, 8, 4, expressions[649]);
- expressions[651] = BinaryenStore(the_module, 4, 0, 0, expressions[30], expressions[31], 1);
- expressions[652] = BinaryenStore(the_module, 8, 2, 4, expressions[32], expressions[33], 2);
- expressions[653] = BinaryenSelect(the_module, expressions[27], expressions[28], expressions[29]);
- expressions[654] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
- expressions[655] = BinaryenReturn(the_module, expressions[654]);
+ expressions[650] = BinaryenCallIndirect(the_module, expressions[649], operands, 4, "iiIfF");
+ }
+ expressions[651] = BinaryenUnary(the_module, 20, expressions[650]);
+ expressions[652] = BinaryenLocalGet(the_module, 0, 1);
+ expressions[653] = BinaryenDrop(the_module, expressions[652]);
+ expressions[654] = BinaryenConst(the_module, BinaryenLiteralInt32(101));
+ expressions[655] = BinaryenLocalSet(the_module, 0, expressions[654]);
+ expressions[656] = BinaryenConst(the_module, BinaryenLiteralInt32(102));
+ expressions[657] = BinaryenLocalTee(the_module, 0, expressions[656]);
+ expressions[658] = BinaryenDrop(the_module, expressions[657]);
+ expressions[659] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ expressions[660] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[659]);
+ expressions[661] = BinaryenConst(the_module, BinaryenLiteralInt32(8));
+ expressions[662] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[661]);
+ expressions[663] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ expressions[664] = BinaryenLoad(the_module, 4, 0, 0, 0, 3, expressions[663]);
+ expressions[665] = BinaryenConst(the_module, BinaryenLiteralInt32(9));
+ expressions[666] = BinaryenLoad(the_module, 8, 0, 2, 8, 4, expressions[665]);
+ expressions[667] = BinaryenStore(the_module, 4, 0, 0, expressions[30], expressions[31], 1);
+ expressions[668] = BinaryenStore(the_module, 8, 2, 4, expressions[32], expressions[33], 2);
+ expressions[669] = BinaryenSelect(the_module, expressions[27], expressions[28], expressions[29]);
+ expressions[670] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
+ expressions[671] = BinaryenReturn(the_module, expressions[670]);
{
BinaryenExpressionRef operands[] = { expressions[10], expressions[11], expressions[12], expressions[13] };
- expressions[656] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1);
+ expressions[672] = BinaryenReturnCall(the_module, "kitchen()sinker", operands, 4, 1);
}
- expressions[657] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
+ expressions[673] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
{
BinaryenExpressionRef operands[] = { expressions[14], expressions[15], expressions[16], expressions[17] };
- expressions[658] = BinaryenReturnCallIndirect(the_module, expressions[657], operands, 4, "iiIfF");
- }
- expressions[659] = BinaryenTry(the_module, expressions[35], expressions[43]);
- expressions[660] = BinaryenAtomicLoad(the_module, 4, 0, 1, expressions[23]);
- expressions[661] = BinaryenAtomicStore(the_module, 4, 0, expressions[23], expressions[660], 1);
- expressions[662] = BinaryenAtomicWait(the_module, expressions[23], expressions[23], expressions[33], 1);
- expressions[663] = BinaryenDrop(the_module, expressions[662]);
- expressions[664] = BinaryenAtomicNotify(the_module, expressions[23], expressions[23]);
- expressions[665] = BinaryenDrop(the_module, expressions[664]);
- expressions[666] = BinaryenAtomicFence(the_module);
- expressions[667] = BinaryenNop(the_module);
- expressions[668] = BinaryenUnreachable(the_module);
+ expressions[674] = BinaryenReturnCallIndirect(the_module, expressions[673], operands, 4, "iiIfF");
+ }
+ expressions[675] = BinaryenTry(the_module, expressions[35], expressions[43]);
+ expressions[676] = BinaryenAtomicLoad(the_module, 4, 0, 1, expressions[23]);
+ expressions[677] = BinaryenAtomicStore(the_module, 4, 0, expressions[23], expressions[676], 1);
+ expressions[678] = BinaryenAtomicWait(the_module, expressions[23], expressions[23], expressions[33], 1);
+ expressions[679] = BinaryenDrop(the_module, expressions[678]);
+ expressions[680] = BinaryenAtomicNotify(the_module, expressions[23], expressions[23]);
+ expressions[681] = BinaryenDrop(the_module, expressions[680]);
+ expressions[682] = BinaryenAtomicFence(the_module);
+ expressions[683] = BinaryenNop(the_module);
+ expressions[684] = BinaryenUnreachable(the_module);
BinaryenExpressionPrint(expressions[51]);
(f32.neg
(f32.const -33.61199951171875)
@@ -3381,33 +3461,34 @@ int main() {
expressions[535], expressions[537], expressions[540], expressions[543], expressions[546], expressions[549],
expressions[552], expressions[555], expressions[558], expressions[561], expressions[564], expressions[567],
expressions[570], expressions[573], expressions[576], expressions[579], expressions[582], expressions[585],
- expressions[588], expressions[591], expressions[594], expressions[598], expressions[602], expressions[603],
- expressions[607], expressions[611], expressions[612], expressions[613], expressions[614], expressions[616],
- expressions[618], expressions[619], expressions[621], expressions[623], expressions[624], expressions[625],
- expressions[627], expressions[629], expressions[632], expressions[635], expressions[637], expressions[639],
- expressions[642], expressions[644], expressions[646], expressions[648], expressions[650], expressions[651],
- expressions[652], expressions[653], expressions[655], expressions[656], expressions[658], expressions[659],
- expressions[661], expressions[663], expressions[665], expressions[666], expressions[667], expressions[668] };
- expressions[669] = BinaryenBlock(the_module, "the-value", children, 251, BinaryenTypeAuto());
+ expressions[588], expressions[591], expressions[594], expressions[598], expressions[602], expressions[606],
+ expressions[610], expressions[614], expressions[618], expressions[619], expressions[623], expressions[627],
+ expressions[628], expressions[629], expressions[630], expressions[632], expressions[634], expressions[635],
+ expressions[637], expressions[639], expressions[640], expressions[641], expressions[643], expressions[645],
+ expressions[648], expressions[651], expressions[653], expressions[655], expressions[658], expressions[660],
+ expressions[662], expressions[664], expressions[666], expressions[667], expressions[668], expressions[669],
+ expressions[671], expressions[672], expressions[674], expressions[675], expressions[677], expressions[679],
+ expressions[681], expressions[682], expressions[683], expressions[684] };
+ expressions[685] = BinaryenBlock(the_module, "the-value", children, 255, BinaryenTypeAuto());
}
- expressions[670] = BinaryenDrop(the_module, expressions[669]);
+ expressions[686] = BinaryenDrop(the_module, expressions[685]);
{
- BinaryenExpressionRef children[] = { expressions[670] };
- expressions[671] = BinaryenBlock(the_module, "the-nothing", children, 1, BinaryenTypeAuto());
+ BinaryenExpressionRef children[] = { expressions[686] };
+ expressions[687] = BinaryenBlock(the_module, "the-nothing", children, 1, BinaryenTypeAuto());
}
- expressions[672] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
+ expressions[688] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
{
- BinaryenExpressionRef children[] = { expressions[671], expressions[672] };
- expressions[673] = BinaryenBlock(the_module, "the-body", children, 2, BinaryenTypeAuto());
+ BinaryenExpressionRef children[] = { expressions[687], expressions[688] };
+ expressions[689] = BinaryenBlock(the_module, "the-body", children, 2, BinaryenTypeAuto());
}
{
BinaryenType varTypes[] = { 1, 7 };
- functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 2, expressions[673]);
+ functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 2, expressions[689]);
}
- expressions[674] = BinaryenConst(the_module, BinaryenLiteralInt32(7));
- globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[674]);
- expressions[675] = BinaryenConst(the_module, BinaryenLiteralFloat32(7.5));
- globals[1] = BinaryenAddGlobal(the_module, "a-mutable-global", 3, 1, expressions[675]);
+ expressions[690] = BinaryenConst(the_module, BinaryenLiteralInt32(7));
+ globals[0] = BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[690]);
+ expressions[691] = BinaryenConst(the_module, BinaryenLiteralFloat32(7.5));
+ globals[1] = BinaryenAddGlobal(the_module, "a-mutable-global", 3, 1, expressions[691]);
{
BinaryenType paramTypes[] = { 1, 4 };
functionTypes[2] = BinaryenAddFunctionType(the_module, "fiF", 3, paramTypes, 2);
@@ -3419,13 +3500,13 @@ int main() {
const char* funcNames[] = { "kitchen()sinker" };
BinaryenSetFunctionTable(the_module, 1, 1, funcNames, 1);
}
- expressions[676] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
+ expressions[692] = 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[676], expressions[0] };
+ BinaryenExpressionRef segmentOffsets[] = { expressions[692], expressions[0] };
BinaryenIndex segmentSizes[] = { 12, 12 };
BinaryenSetMemory(the_module, 1, 256, "mem", segments, segmentPassive, segmentOffsets, segmentSizes, 2, 1);
}
@@ -3433,10 +3514,10 @@ int main() {
BinaryenType paramTypes[] = { 0 };
functionTypes[3] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0);
}
- expressions[677] = BinaryenNop(the_module);
+ expressions[693] = BinaryenNop(the_module);
{
BinaryenType varTypes[] = { 0 };
- functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[677]);
+ functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[3], varTypes, 0, expressions[693]);
}
BinaryenSetStart(the_module, functions[1]);
{
@@ -4667,6 +4748,34 @@ int main() {
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
+ (drop
+ (f32x4.qfma
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.qfms
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.qfma
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.qfms
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
(memory.init 0
(i32.const 1024)
(i32.const 0)
diff --git a/test/example/c-api-kitchen-sink.txt.txt b/test/example/c-api-kitchen-sink.txt.txt
index 792656d96..4a9660ea1 100644
--- a/test/example/c-api-kitchen-sink.txt.txt
+++ b/test/example/c-api-kitchen-sink.txt.txt
@@ -1220,6 +1220,34 @@
(v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
)
)
+ (drop
+ (f32x4.qfma
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f32x4.qfms
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.qfma
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
+ (drop
+ (f64x2.qfms
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ (v128.const i32x4 0x04030201 0x08070605 0x0c0b0a09 0x100f0e0d)
+ )
+ )
(memory.init 0
(i32.const 1024)
(i32.const 0)