summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/example/c-api-kitchen-sink.c72
-rw-r--r--test/example/c-api-kitchen-sink.txt32
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)