diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/example/c-api-kitchen-sink.c | 72 | ||||
-rw-r--r-- | test/example/c-api-kitchen-sink.txt | 32 |
2 files changed, 72 insertions, 32 deletions
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c index f7dc5c341..bfcb1ddea 100644 --- a/test/example/c-api-kitchen-sink.c +++ b/test/example/c-api-kitchen-sink.c @@ -10,11 +10,11 @@ // helpers -BinaryenExpressionRef makeUnary(BinaryenModuleRef module, BinaryenOp op, BinaryenType inputType, BinaryenType outputType) { - if (inputType == BinaryenInt32()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralInt32(-10)), outputType); - if (inputType == BinaryenInt64()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralInt64(-22)), outputType); - if (inputType == BinaryenFloat32()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralFloat32(-33.612)), outputType); - if (inputType == BinaryenFloat64()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralFloat64(-9005.841)), outputType); +BinaryenExpressionRef makeUnary(BinaryenModuleRef module, BinaryenOp op, BinaryenType inputType) { + if (inputType == BinaryenInt32()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralInt32(-10))); + if (inputType == BinaryenInt64()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralInt64(-22))); + if (inputType == BinaryenFloat32()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralFloat32(-33.612))); + if (inputType == BinaryenFloat64()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralFloat64(-9005.841))); abort(); } @@ -81,32 +81,42 @@ int main() { BinaryenExpressionRef bodyList[] = { // Unary - makeUnary(module, BinaryenClz(), 1, 1), - makeUnary(module, BinaryenCtz(), 2, 2), - makeUnary(module, BinaryenPopcnt(), 1, 1), - makeUnary(module, BinaryenNeg(), 3, 3), - makeUnary(module, BinaryenAbs(), 4, 3), - makeUnary(module, BinaryenCeil(), 3, 3), - makeUnary(module, BinaryenFloor(), 4, 4), - makeUnary(module, BinaryenTrunc(), 3, 3), - makeUnary(module, BinaryenNearest(), 3, 3), - makeUnary(module, BinaryenSqrt(), 4, 4), - makeUnary(module, BinaryenEqZ(), 1, 1), - makeUnary(module, BinaryenExtendSInt32(), 1, 2), - makeUnary(module, BinaryenExtentUInt32(), 1, 2), - makeUnary(module, BinaryenWrapInt64(), 2, 1), - makeUnary(module, BinaryenTruncSFloat32(), 3, 1), - makeUnary(module, BinaryenTruncUFloat32(), 3, 2), - makeUnary(module, BinaryenTruncSFloat64(), 4, 2), - makeUnary(module, BinaryenTruncUFloat64(), 4, 1), - makeUnary(module, BinaryenReinterpretFloat(), 3, 1), - makeUnary(module, BinaryenConvertSInt32(), 1, 3), - makeUnary(module, BinaryenConvertUInt32(), 1, 4), - makeUnary(module, BinaryenConvertSInt64(), 2, 3), - makeUnary(module, BinaryenConvertUInt64(), 2, 4), - makeUnary(module, BinaryenPromoteFloat32(), 3, 4), - makeUnary(module, BinaryenDemoteFloat64(), 4, 3), - makeUnary(module, BinaryenReinterpretInt(), 1, 3), + makeUnary(module, BinaryenClz(), 1), + makeUnary(module, BinaryenCtz(), 2), + makeUnary(module, BinaryenPopcnt(), 1), + makeUnary(module, BinaryenNeg(), 3), + makeUnary(module, BinaryenAbs(), 4), + makeUnary(module, BinaryenCeil(), 3), + makeUnary(module, BinaryenFloor(), 4), + makeUnary(module, BinaryenTrunc(), 3), + makeUnary(module, BinaryenNearest(), 3), + makeUnary(module, BinaryenSqrt(), 4), + makeUnary(module, BinaryenEqZ(), 1), + makeUnary(module, BinaryenExtendSInt32(), 1), + makeUnary(module, BinaryenExtentUInt32(), 1), + makeUnary(module, BinaryenWrapInt64(), 2), + makeUnary(module, BinaryenTruncSFloat32ToInt32(), 3), + makeUnary(module, BinaryenTruncSFloat32ToInt64(), 3), + makeUnary(module, BinaryenTruncUFloat32ToInt32(), 3), + makeUnary(module, BinaryenTruncUFloat32ToInt64(), 3), + makeUnary(module, BinaryenTruncSFloat64ToInt32(), 4), + makeUnary(module, BinaryenTruncSFloat64ToInt64(), 4), + makeUnary(module, BinaryenTruncUFloat64ToInt32(), 4), + makeUnary(module, BinaryenTruncUFloat64ToInt64(), 4), + makeUnary(module, BinaryenReinterpretFloat32(), 3), + makeUnary(module, BinaryenReinterpretFloat64(), 4), + makeUnary(module, BinaryenConvertSInt32ToFloat32(), 1), + makeUnary(module, BinaryenConvertSInt32ToFloat64(), 1), + makeUnary(module, BinaryenConvertUInt32ToFloat32(), 1), + makeUnary(module, BinaryenConvertUInt32ToFloat64(), 1), + makeUnary(module, BinaryenConvertSInt64ToFloat32(), 2), + makeUnary(module, BinaryenConvertSInt64ToFloat64(), 2), + makeUnary(module, BinaryenConvertUInt64ToFloat32(), 2), + makeUnary(module, BinaryenConvertUInt64ToFloat64(), 2), + makeUnary(module, BinaryenPromoteFloat32(), 3), + makeUnary(module, BinaryenDemoteFloat64(), 4), + makeUnary(module, BinaryenReinterpretInt32(), 1), + makeUnary(module, BinaryenReinterpretInt64(), 1), // Binary makeBinary(module, BinaryenAdd(), 1), makeBinary(module, BinaryenSub(), 4), diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt index 2c80d8706..573d159ed 100644 --- a/test/example/c-api-kitchen-sink.txt +++ b/test/example/c-api-kitchen-sink.txt @@ -29,7 +29,7 @@ BinaryenFloat64: 4 (f32.neg (f32.const -33.61199951171875) ) - (f32.abs + (f64.abs (f64.const -9005.841) ) (f32.ceil @@ -62,27 +62,54 @@ BinaryenFloat64: 4 (i32.trunc_s/f32 (f32.const -33.61199951171875) ) + (i64.trunc_s/f32 + (f32.const -33.61199951171875) + ) + (i32.trunc_u/f32 + (f32.const -33.61199951171875) + ) (i64.trunc_u/f32 (f32.const -33.61199951171875) ) + (i32.trunc_s/f64 + (f64.const -9005.841) + ) (i64.trunc_s/f64 (f64.const -9005.841) ) (i32.trunc_u/f64 (f64.const -9005.841) ) + (i64.trunc_u/f64 + (f64.const -9005.841) + ) (i32.reinterpret/f32 (f32.const -33.61199951171875) ) + (i64.reinterpret/f64 + (f64.const -9005.841) + ) (f32.convert_s/i32 (i32.const -10) ) + (f64.convert_s/i32 + (i32.const -10) + ) + (f32.convert_u/i32 + (i32.const -10) + ) (f64.convert_u/i32 (i32.const -10) ) (f32.convert_s/i64 (i64.const -22) ) + (f64.convert_s/i64 + (i64.const -22) + ) + (f32.convert_u/i64 + (i64.const -22) + ) (f64.convert_u/i64 (i64.const -22) ) @@ -95,6 +122,9 @@ BinaryenFloat64: 4 (f32.reinterpret/i32 (i32.const -10) ) + (f64.reinterpret/i64 + (i32.const -10) + ) (i32.add (i32.const -10) (i32.const -11) |