summaryrefslogtreecommitdiff
path: root/test/example
diff options
context:
space:
mode:
Diffstat (limited to 'test/example')
-rw-r--r--test/example/c-api-kitchen-sink.c8
-rw-r--r--test/example/c-api-kitchen-sink.txt490
-rw-r--r--test/example/c-api-kitchen-sink.txt.txt40
3 files changed, 342 insertions, 196 deletions
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index 9271e3371..d056d0e75 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -138,6 +138,14 @@ void test_core() {
makeUnary(module, BinaryenTruncSFloat64ToInt64(), 4),
makeUnary(module, BinaryenTruncUFloat64ToInt32(), 4),
makeUnary(module, BinaryenTruncUFloat64ToInt64(), 4),
+ makeUnary(module, BinaryenTruncSatSFloat32ToInt32(), 3),
+ makeUnary(module, BinaryenTruncSatSFloat32ToInt64(), 3),
+ makeUnary(module, BinaryenTruncSatUFloat32ToInt32(), 3),
+ makeUnary(module, BinaryenTruncSatUFloat32ToInt64(), 3),
+ makeUnary(module, BinaryenTruncSatSFloat64ToInt32(), 4),
+ makeUnary(module, BinaryenTruncSatSFloat64ToInt64(), 4),
+ makeUnary(module, BinaryenTruncSatUFloat64ToInt32(), 4),
+ makeUnary(module, BinaryenTruncSatUFloat64ToInt64(), 4),
makeUnary(module, BinaryenReinterpretFloat32(), 3),
makeUnary(module, BinaryenReinterpretFloat64(), 4),
makeUnary(module, BinaryenConvertSInt32ToFloat32(), 1),
diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt
index faf3c336b..786cf5243 100644
--- a/test/example/c-api-kitchen-sink.txt
+++ b/test/example/c-api-kitchen-sink.txt
@@ -141,6 +141,46 @@ BinaryenTypeAuto: -1
)
)
(drop
+ (i32.trunc_s:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_s:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_u:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_u:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_s:sat/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_s:sat/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.trunc_u:sat/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_u:sat/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
(i32.reinterpret/f32
(f32.const -33.61199951171875)
)
@@ -1146,193 +1186,209 @@ int main() {
expressions[75] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
expressions[76] = BinaryenUnary(the_module, 32, expressions[75]);
expressions[77] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
- expressions[78] = BinaryenUnary(the_module, 33, expressions[77]);
- expressions[79] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
- expressions[80] = BinaryenUnary(the_module, 34, expressions[79]);
- expressions[81] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[82] = BinaryenUnary(the_module, 35, expressions[81]);
- expressions[83] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[84] = BinaryenUnary(the_module, 36, expressions[83]);
- expressions[85] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[86] = BinaryenUnary(the_module, 37, expressions[85]);
- expressions[87] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[88] = BinaryenUnary(the_module, 38, expressions[87]);
- expressions[89] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[90] = BinaryenUnary(the_module, 39, expressions[89]);
- expressions[91] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[92] = BinaryenUnary(the_module, 40, expressions[91]);
- expressions[93] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[94] = BinaryenUnary(the_module, 41, expressions[93]);
- expressions[95] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[96] = BinaryenUnary(the_module, 42, expressions[95]);
- expressions[97] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
- expressions[98] = BinaryenUnary(the_module, 43, expressions[97]);
- expressions[99] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
- expressions[100] = BinaryenUnary(the_module, 44, expressions[99]);
+ expressions[78] = BinaryenUnary(the_module, 52, expressions[77]);
+ expressions[79] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
+ expressions[80] = BinaryenUnary(the_module, 56, expressions[79]);
+ expressions[81] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
+ expressions[82] = BinaryenUnary(the_module, 53, expressions[81]);
+ expressions[83] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
+ expressions[84] = BinaryenUnary(the_module, 57, expressions[83]);
+ expressions[85] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
+ expressions[86] = BinaryenUnary(the_module, 54, expressions[85]);
+ expressions[87] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
+ expressions[88] = BinaryenUnary(the_module, 58, expressions[87]);
+ expressions[89] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
+ expressions[90] = BinaryenUnary(the_module, 55, expressions[89]);
+ expressions[91] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
+ expressions[92] = BinaryenUnary(the_module, 59, expressions[91]);
+ expressions[93] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
+ expressions[94] = BinaryenUnary(the_module, 33, expressions[93]);
+ expressions[95] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
+ expressions[96] = BinaryenUnary(the_module, 34, expressions[95]);
+ expressions[97] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[98] = BinaryenUnary(the_module, 35, expressions[97]);
+ expressions[99] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[100] = BinaryenUnary(the_module, 36, expressions[99]);
expressions[101] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[102] = BinaryenUnary(the_module, 45, expressions[101]);
- expressions[103] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[104] = BinaryenUnary(the_module, 46, expressions[103]);
- expressions[105] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[106] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[107] = BinaryenBinary(the_module, 0, expressions[106], expressions[105]);
- expressions[108] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
- expressions[109] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
- expressions[110] = BinaryenBinary(the_module, 64, expressions[109], expressions[108]);
- expressions[111] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[112] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[113] = BinaryenBinary(the_module, 3, expressions[112], expressions[111]);
- expressions[114] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
- expressions[115] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[116] = BinaryenBinary(the_module, 29, expressions[115], expressions[114]);
- expressions[117] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
- expressions[118] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[119] = BinaryenBinary(the_module, 30, expressions[118], expressions[117]);
- expressions[120] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[121] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[122] = BinaryenBinary(the_module, 6, expressions[121], expressions[120]);
- expressions[123] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[124] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[125] = BinaryenBinary(the_module, 7, expressions[124], expressions[123]);
- expressions[126] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
- expressions[127] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[128] = BinaryenBinary(the_module, 33, expressions[127], expressions[126]);
- expressions[129] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[130] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[131] = BinaryenBinary(the_module, 9, expressions[130], expressions[129]);
- expressions[132] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
- expressions[133] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[134] = BinaryenBinary(the_module, 35, expressions[133], expressions[132]);
- expressions[135] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
- expressions[136] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[137] = BinaryenBinary(the_module, 36, expressions[136], expressions[135]);
- expressions[138] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[139] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[140] = BinaryenBinary(the_module, 12, expressions[139], expressions[138]);
- expressions[141] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[142] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[143] = BinaryenBinary(the_module, 13, expressions[142], expressions[141]);
- expressions[144] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
- expressions[145] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[146] = BinaryenBinary(the_module, 39, expressions[145], expressions[144]);
- expressions[147] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
- expressions[148] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
- expressions[149] = BinaryenBinary(the_module, 53, expressions[148], expressions[147]);
- expressions[150] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
- expressions[151] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
- expressions[152] = BinaryenBinary(the_module, 67, expressions[151], expressions[150]);
- expressions[153] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
- expressions[154] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
- expressions[155] = BinaryenBinary(the_module, 55, expressions[154], expressions[153]);
- expressions[156] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
- expressions[157] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
- expressions[158] = BinaryenBinary(the_module, 69, expressions[157], expressions[156]);
- expressions[159] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[160] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[161] = BinaryenBinary(the_module, 15, expressions[160], expressions[159]);
- expressions[162] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
- expressions[163] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
- expressions[164] = BinaryenBinary(the_module, 58, expressions[163], expressions[162]);
- expressions[165] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[166] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[167] = BinaryenBinary(the_module, 17, expressions[166], expressions[165]);
- expressions[168] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
- expressions[169] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[170] = BinaryenBinary(the_module, 43, expressions[169], expressions[168]);
- expressions[171] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
- expressions[172] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[173] = BinaryenBinary(the_module, 44, expressions[172], expressions[171]);
- expressions[174] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[175] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[176] = BinaryenBinary(the_module, 20, expressions[175], expressions[174]);
- expressions[177] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
- expressions[178] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[179] = BinaryenBinary(the_module, 46, expressions[178], expressions[177]);
- expressions[180] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[181] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[182] = BinaryenBinary(the_module, 22, expressions[181], expressions[180]);
- expressions[183] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
- expressions[184] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- expressions[185] = BinaryenBinary(the_module, 23, expressions[184], expressions[183]);
- expressions[186] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
- expressions[187] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
- expressions[188] = BinaryenBinary(the_module, 49, expressions[187], expressions[186]);
- expressions[189] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
- expressions[190] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
- expressions[191] = BinaryenBinary(the_module, 59, expressions[190], expressions[189]);
- expressions[192] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
- expressions[193] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
- expressions[194] = BinaryenBinary(the_module, 73, expressions[193], expressions[192]);
- expressions[195] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
- expressions[196] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
- expressions[197] = BinaryenBinary(the_module, 74, expressions[196], expressions[195]);
- expressions[198] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
- expressions[199] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
- expressions[200] = BinaryenBinary(the_module, 62, expressions[199], expressions[198]);
+ expressions[102] = BinaryenUnary(the_module, 37, expressions[101]);
+ expressions[103] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[104] = BinaryenUnary(the_module, 38, expressions[103]);
+ expressions[105] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[106] = BinaryenUnary(the_module, 39, expressions[105]);
+ expressions[107] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[108] = BinaryenUnary(the_module, 40, expressions[107]);
+ expressions[109] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[110] = BinaryenUnary(the_module, 41, expressions[109]);
+ expressions[111] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[112] = BinaryenUnary(the_module, 42, expressions[111]);
+ expressions[113] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
+ expressions[114] = BinaryenUnary(the_module, 43, expressions[113]);
+ expressions[115] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
+ expressions[116] = BinaryenUnary(the_module, 44, expressions[115]);
+ expressions[117] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[118] = BinaryenUnary(the_module, 45, expressions[117]);
+ expressions[119] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[120] = BinaryenUnary(the_module, 46, expressions[119]);
+ expressions[121] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[122] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[123] = BinaryenBinary(the_module, 0, expressions[122], expressions[121]);
+ expressions[124] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
+ expressions[125] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
+ expressions[126] = BinaryenBinary(the_module, 64, expressions[125], expressions[124]);
+ expressions[127] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[128] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[129] = BinaryenBinary(the_module, 3, expressions[128], expressions[127]);
+ expressions[130] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
+ expressions[131] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[132] = BinaryenBinary(the_module, 29, expressions[131], expressions[130]);
+ expressions[133] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
+ expressions[134] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[135] = BinaryenBinary(the_module, 30, expressions[134], expressions[133]);
+ expressions[136] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[137] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[138] = BinaryenBinary(the_module, 6, expressions[137], expressions[136]);
+ expressions[139] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[140] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[141] = BinaryenBinary(the_module, 7, expressions[140], expressions[139]);
+ expressions[142] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
+ expressions[143] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[144] = BinaryenBinary(the_module, 33, expressions[143], expressions[142]);
+ expressions[145] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[146] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[147] = BinaryenBinary(the_module, 9, expressions[146], expressions[145]);
+ expressions[148] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
+ expressions[149] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[150] = BinaryenBinary(the_module, 35, expressions[149], expressions[148]);
+ expressions[151] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
+ expressions[152] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[153] = BinaryenBinary(the_module, 36, expressions[152], expressions[151]);
+ expressions[154] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[155] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[156] = BinaryenBinary(the_module, 12, expressions[155], expressions[154]);
+ expressions[157] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[158] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[159] = BinaryenBinary(the_module, 13, expressions[158], expressions[157]);
+ expressions[160] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
+ expressions[161] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[162] = BinaryenBinary(the_module, 39, expressions[161], expressions[160]);
+ expressions[163] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
+ expressions[164] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
+ expressions[165] = BinaryenBinary(the_module, 53, expressions[164], expressions[163]);
+ expressions[166] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
+ expressions[167] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
+ expressions[168] = BinaryenBinary(the_module, 67, expressions[167], expressions[166]);
+ expressions[169] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
+ expressions[170] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
+ expressions[171] = BinaryenBinary(the_module, 55, expressions[170], expressions[169]);
+ expressions[172] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
+ expressions[173] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
+ expressions[174] = BinaryenBinary(the_module, 69, expressions[173], expressions[172]);
+ expressions[175] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[176] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[177] = BinaryenBinary(the_module, 15, expressions[176], expressions[175]);
+ expressions[178] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
+ expressions[179] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
+ expressions[180] = BinaryenBinary(the_module, 58, expressions[179], expressions[178]);
+ expressions[181] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[182] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[183] = BinaryenBinary(the_module, 17, expressions[182], expressions[181]);
+ expressions[184] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
+ expressions[185] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[186] = BinaryenBinary(the_module, 43, expressions[185], expressions[184]);
+ expressions[187] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
+ expressions[188] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[189] = BinaryenBinary(the_module, 44, expressions[188], expressions[187]);
+ expressions[190] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[191] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[192] = BinaryenBinary(the_module, 20, expressions[191], expressions[190]);
+ expressions[193] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
+ expressions[194] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[195] = BinaryenBinary(the_module, 46, expressions[194], expressions[193]);
+ expressions[196] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[197] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[198] = BinaryenBinary(the_module, 22, expressions[197], expressions[196]);
+ expressions[199] = BinaryenConst(the_module, BinaryenLiteralInt32(-11));
+ expressions[200] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ expressions[201] = BinaryenBinary(the_module, 23, expressions[200], expressions[199]);
+ expressions[202] = BinaryenConst(the_module, BinaryenLiteralInt64(-23));
+ expressions[203] = BinaryenConst(the_module, BinaryenLiteralInt64(-22));
+ expressions[204] = BinaryenBinary(the_module, 49, expressions[203], expressions[202]);
+ expressions[205] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
+ expressions[206] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
+ expressions[207] = BinaryenBinary(the_module, 59, expressions[206], expressions[205]);
+ expressions[208] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
+ expressions[209] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
+ expressions[210] = BinaryenBinary(the_module, 73, expressions[209], expressions[208]);
+ expressions[211] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33));
+ expressions[212] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84));
+ expressions[213] = BinaryenBinary(the_module, 74, expressions[212], expressions[211]);
+ expressions[214] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5));
+ expressions[215] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612));
+ expressions[216] = BinaryenBinary(the_module, 62, expressions[215], expressions[214]);
{
BinaryenExpressionRef children[] = { 0 };
- expressions[201] = BinaryenBlock(the_module, NULL, children, 0, BinaryenTypeAuto());
- }
- expressions[202] = BinaryenIf(the_module, expressions[17], expressions[18], expressions[19]);
- expressions[203] = BinaryenIf(the_module, expressions[20], expressions[21], expressions[0]);
- expressions[204] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[205] = BinaryenLoop(the_module, "in", expressions[204]);
- expressions[206] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- expressions[207] = BinaryenLoop(the_module, NULL, expressions[206]);
- expressions[208] = BinaryenBreak(the_module, "the-value", expressions[22], expressions[23]);
- expressions[209] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
- expressions[210] = BinaryenBreak(the_module, "the-nothing", expressions[209], expressions[0]);
- expressions[211] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
- expressions[212] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[211]);
- expressions[213] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]);
+ expressions[217] = BinaryenBlock(the_module, NULL, children, 0, BinaryenTypeAuto());
+ }
+ expressions[218] = BinaryenIf(the_module, expressions[17], expressions[18], expressions[19]);
+ expressions[219] = BinaryenIf(the_module, expressions[20], expressions[21], expressions[0]);
+ expressions[220] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[221] = BinaryenLoop(the_module, "in", expressions[220]);
+ expressions[222] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[223] = BinaryenLoop(the_module, NULL, expressions[222]);
+ expressions[224] = BinaryenBreak(the_module, "the-value", expressions[22], expressions[23]);
+ expressions[225] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ expressions[226] = BinaryenBreak(the_module, "the-nothing", expressions[225], expressions[0]);
+ expressions[227] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
+ expressions[228] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[227]);
+ expressions[229] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]);
{
const char* names[] = { "the-value" };
- expressions[214] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[24], expressions[25]);
+ expressions[230] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[24], expressions[25]);
}
- expressions[215] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ expressions[231] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
{
const char* names[] = { "the-nothing" };
- expressions[216] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[215], expressions[0]);
+ expressions[232] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[231], expressions[0]);
}
{
BinaryenExpressionRef operands[] = { expressions[9], expressions[10], expressions[11], expressions[12] };
- expressions[217] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1);
+ expressions[233] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1);
}
- expressions[218] = BinaryenUnary(the_module, 20, expressions[217]);
+ expressions[234] = BinaryenUnary(the_module, 20, expressions[233]);
{
BinaryenExpressionRef operands[] = { expressions[7], expressions[8] };
- expressions[219] = BinaryenCall(the_module, "an-imported", operands, 2, 3);
+ expressions[235] = BinaryenCall(the_module, "an-imported", operands, 2, 3);
}
- expressions[220] = BinaryenUnary(the_module, 25, expressions[219]);
- expressions[221] = BinaryenUnary(the_module, 20, expressions[220]);
- expressions[222] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
+ expressions[236] = BinaryenUnary(the_module, 25, expressions[235]);
+ expressions[237] = BinaryenUnary(the_module, 20, expressions[236]);
+ expressions[238] = BinaryenConst(the_module, BinaryenLiteralInt32(2449));
{
BinaryenExpressionRef operands[] = { expressions[13], expressions[14], expressions[15], expressions[16] };
- expressions[223] = BinaryenCallIndirect(the_module, expressions[222], operands, 4, "iiIfF");
- }
- expressions[224] = BinaryenUnary(the_module, 20, expressions[223]);
- expressions[225] = BinaryenGetLocal(the_module, 0, 1);
- expressions[226] = BinaryenDrop(the_module, expressions[225]);
- expressions[227] = BinaryenConst(the_module, BinaryenLiteralInt32(101));
- expressions[228] = BinaryenSetLocal(the_module, 0, expressions[227]);
- expressions[229] = BinaryenConst(the_module, BinaryenLiteralInt32(102));
- expressions[230] = BinaryenTeeLocal(the_module, 0, expressions[229]);
- expressions[231] = BinaryenDrop(the_module, expressions[230]);
- expressions[232] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
- expressions[233] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[232]);
- expressions[234] = BinaryenConst(the_module, BinaryenLiteralInt32(8));
- expressions[235] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[234]);
- expressions[236] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
- expressions[237] = BinaryenLoad(the_module, 4, 0, 0, 0, 3, expressions[236]);
- expressions[238] = BinaryenConst(the_module, BinaryenLiteralInt32(9));
- expressions[239] = BinaryenLoad(the_module, 8, 0, 2, 8, 4, expressions[238]);
- expressions[240] = BinaryenStore(the_module, 4, 0, 0, expressions[29], expressions[30], 1);
- expressions[241] = BinaryenStore(the_module, 8, 2, 4, expressions[31], expressions[32], 2);
- expressions[242] = BinaryenSelect(the_module, expressions[26], expressions[27], expressions[28]);
- expressions[243] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
- expressions[244] = BinaryenReturn(the_module, expressions[243]);
- expressions[245] = BinaryenNop(the_module);
- expressions[246] = BinaryenUnreachable(the_module);
+ expressions[239] = BinaryenCallIndirect(the_module, expressions[238], operands, 4, "iiIfF");
+ }
+ expressions[240] = BinaryenUnary(the_module, 20, expressions[239]);
+ expressions[241] = BinaryenGetLocal(the_module, 0, 1);
+ expressions[242] = BinaryenDrop(the_module, expressions[241]);
+ expressions[243] = BinaryenConst(the_module, BinaryenLiteralInt32(101));
+ expressions[244] = BinaryenSetLocal(the_module, 0, expressions[243]);
+ expressions[245] = BinaryenConst(the_module, BinaryenLiteralInt32(102));
+ expressions[246] = BinaryenTeeLocal(the_module, 0, expressions[245]);
+ expressions[247] = BinaryenDrop(the_module, expressions[246]);
+ expressions[248] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ expressions[249] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[248]);
+ expressions[250] = BinaryenConst(the_module, BinaryenLiteralInt32(8));
+ expressions[251] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[250]);
+ expressions[252] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ expressions[253] = BinaryenLoad(the_module, 4, 0, 0, 0, 3, expressions[252]);
+ expressions[254] = BinaryenConst(the_module, BinaryenLiteralInt32(9));
+ expressions[255] = BinaryenLoad(the_module, 8, 0, 2, 8, 4, expressions[254]);
+ expressions[256] = BinaryenStore(the_module, 4, 0, 0, expressions[29], expressions[30], 1);
+ expressions[257] = BinaryenStore(the_module, 8, 2, 4, expressions[31], expressions[32], 2);
+ expressions[258] = BinaryenSelect(the_module, expressions[26], expressions[27], expressions[28]);
+ expressions[259] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
+ expressions[260] = BinaryenReturn(the_module, expressions[259]);
+ expressions[261] = BinaryenNop(the_module);
+ expressions[262] = BinaryenUnreachable(the_module);
BinaryenExpressionPrint(expressions[40]);
(f32.neg
(f32.const -33.61199951171875)
@@ -1344,36 +1400,38 @@ int main() {
expressions[68], expressions[70], expressions[72], expressions[74], expressions[76], expressions[78],
expressions[80], expressions[82], expressions[84], expressions[86], expressions[88], expressions[90],
expressions[92], expressions[94], expressions[96], expressions[98], expressions[100], expressions[102],
- expressions[104], expressions[107], expressions[110], expressions[113], expressions[116], expressions[119],
- expressions[122], expressions[125], expressions[128], expressions[131], expressions[134], expressions[137],
- expressions[140], expressions[143], expressions[146], expressions[149], expressions[152], expressions[155],
- expressions[158], expressions[161], expressions[164], expressions[167], expressions[170], expressions[173],
- expressions[176], expressions[179], expressions[182], expressions[185], expressions[188], expressions[191],
- expressions[194], expressions[197], expressions[200], expressions[201], expressions[202], expressions[203],
- expressions[205], expressions[207], expressions[208], expressions[210], expressions[212], expressions[213],
- expressions[214], expressions[216], expressions[218], expressions[221], expressions[224], expressions[226],
- expressions[228], expressions[231], expressions[233], expressions[235], expressions[237], expressions[239],
- expressions[240], expressions[241], expressions[242], expressions[244], expressions[245], expressions[246] };
- expressions[247] = BinaryenBlock(the_module, "the-value", children, 95, BinaryenTypeAuto());
+ expressions[104], expressions[106], expressions[108], expressions[110], expressions[112], expressions[114],
+ expressions[116], expressions[118], expressions[120], expressions[123], expressions[126], expressions[129],
+ expressions[132], expressions[135], expressions[138], expressions[141], expressions[144], expressions[147],
+ expressions[150], expressions[153], expressions[156], expressions[159], expressions[162], expressions[165],
+ expressions[168], expressions[171], expressions[174], expressions[177], expressions[180], expressions[183],
+ expressions[186], expressions[189], expressions[192], expressions[195], expressions[198], expressions[201],
+ expressions[204], expressions[207], expressions[210], expressions[213], expressions[216], expressions[217],
+ expressions[218], expressions[219], expressions[221], expressions[223], expressions[224], expressions[226],
+ expressions[228], expressions[229], expressions[230], expressions[232], expressions[234], expressions[237],
+ expressions[240], expressions[242], expressions[244], expressions[247], expressions[249], expressions[251],
+ expressions[253], expressions[255], expressions[256], expressions[257], expressions[258], expressions[260],
+ expressions[261], expressions[262] };
+ expressions[263] = BinaryenBlock(the_module, "the-value", children, 103, BinaryenTypeAuto());
}
- expressions[248] = BinaryenDrop(the_module, expressions[247]);
+ expressions[264] = BinaryenDrop(the_module, expressions[263]);
{
- BinaryenExpressionRef children[] = { expressions[248] };
- expressions[249] = BinaryenBlock(the_module, "the-nothing", children, 1, BinaryenTypeAuto());
+ BinaryenExpressionRef children[] = { expressions[264] };
+ expressions[265] = BinaryenBlock(the_module, "the-nothing", children, 1, BinaryenTypeAuto());
}
- expressions[250] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
+ expressions[266] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
{
- BinaryenExpressionRef children[] = { expressions[249], expressions[250] };
- expressions[251] = BinaryenBlock(the_module, "the-body", children, 2, BinaryenTypeAuto());
+ BinaryenExpressionRef children[] = { expressions[265], expressions[266] };
+ expressions[267] = BinaryenBlock(the_module, "the-body", children, 2, BinaryenTypeAuto());
}
{
BinaryenType varTypes[] = { 1 };
- functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 1, expressions[251]);
+ functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 1, expressions[267]);
}
- expressions[252] = BinaryenConst(the_module, BinaryenLiteralInt32(7));
- BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[252]);
- expressions[253] = BinaryenConst(the_module, BinaryenLiteralFloat32(7.5));
- BinaryenAddGlobal(the_module, "a-mutable-global", 3, 1, expressions[253]);
+ expressions[268] = BinaryenConst(the_module, BinaryenLiteralInt32(7));
+ BinaryenAddGlobal(the_module, "a-global", 1, 0, expressions[268]);
+ expressions[269] = BinaryenConst(the_module, BinaryenLiteralFloat32(7.5));
+ BinaryenAddGlobal(the_module, "a-mutable-global", 3, 1, expressions[269]);
{
BinaryenType paramTypes[] = { 1, 4 };
functionTypes[1] = BinaryenAddFunctionType(the_module, "fiF", 3, paramTypes, 2);
@@ -1385,11 +1443,11 @@ int main() {
const char* funcNames[] = { "kitchen()sinker" };
BinaryenSetFunctionTable(the_module, 1, 1, funcNames, 1);
}
- expressions[254] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
+ expressions[270] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
{
const char segment0[] = { 104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100 };
const char* segments[] = { segment0 };
- BinaryenExpressionRef segmentOffsets[] = { expressions[254] };
+ BinaryenExpressionRef segmentOffsets[] = { expressions[270] };
BinaryenIndex segmentSizes[] = { 12 };
BinaryenSetMemory(the_module, 1, 256, "mem", segments, segmentOffsets, segmentSizes, 1, 0);
}
@@ -1397,10 +1455,10 @@ int main() {
BinaryenType paramTypes[] = { 0 };
functionTypes[2] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0);
}
- expressions[255] = BinaryenNop(the_module);
+ expressions[271] = BinaryenNop(the_module);
{
BinaryenType varTypes[] = { 0 };
- functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[2], varTypes, 0, expressions[255]);
+ functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[2], varTypes, 0, expressions[271]);
}
BinaryenSetStart(the_module, functions[1]);
{
@@ -1542,6 +1600,46 @@ int main() {
)
)
(drop
+ (i32.trunc_s:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_s:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_u:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_u:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_s:sat/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_s:sat/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.trunc_u:sat/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_u:sat/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
(i32.reinterpret/f32
(f32.const -33.61199951171875)
)
diff --git a/test/example/c-api-kitchen-sink.txt.txt b/test/example/c-api-kitchen-sink.txt.txt
index d23e109b5..4cf98c329 100644
--- a/test/example/c-api-kitchen-sink.txt.txt
+++ b/test/example/c-api-kitchen-sink.txt.txt
@@ -133,6 +133,46 @@
)
)
(drop
+ (i32.trunc_s:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_s:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_u:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_u:sat/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_s:sat/f64
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (i64.trunc_s:sat/f64
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (i32.trunc_u:sat/f64
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (i64.trunc_u:sat/f64
+ (f64.const -9005.84)
+ )
+ )
+ (drop
(i32.reinterpret/f32
(f32.const -33.61199951171875)
)