diff options
author | dcode <dcode@dcode.io> | 2023-02-07 23:24:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-07 14:24:53 -0800 |
commit | cfda51c6c87267a7f42a28165bc8cce43f41621e (patch) | |
tree | 64aefefca5b9e0facfbbb205a93198702e88e25f /test/example/c-api-kitchen-sink.c | |
parent | 90c726a606cf8f99307a41d8f889de4e1221c4f8 (diff) | |
download | binaryen-cfda51c6c87267a7f42a28165bc8cce43f41621e.tar.gz binaryen-cfda51c6c87267a7f42a28165bc8cce43f41621e.tar.bz2 binaryen-cfda51c6c87267a7f42a28165bc8cce43f41621e.zip |
[C API] Add relaxed SIMD operations (#5482)
Exposes the constants
**Unary**
* BinaryenRelaxedTruncSVecF32x4ToVecI32x4
* BinaryenRelaxedTruncSVecF32x4ToVecI32x4
* BinaryenRelaxedTruncZeroSVecF64x2ToVecI32x4
* BinaryenRelaxedTruncZeroUVecF64x2ToVecI32x4
**Binary**
* BinaryenRelaxedSwizzleVecI8x16
* BinaryenRelaxedMinVecF32x4
* BinaryenRelaxedMaxVecF32x4
* BinaryenRelaxedMinVecF64x2
* BinaryenRelaxedMaxVecF64x2
* BinaryenRelaxedQ15MulrSVecI16x8
* BinaryenDotI8x16I7x16SToVecI16x8
**SIMDTernary**
* BinaryenRelaxedFmaVecF32x4
* BinaryenRelaxedFmsVecF32x4
* BinaryenRelaxedFmaVecF64x2
* BinaryenRelaxedFmsVecF64x2
* BinaryenLaneselectI8x16
* BinaryenLaneselectI16x8
* BinaryenLaneselectI32x4
* BinaryenLaneselectI64x2
* BinaryenDotI8x16I7x16AddSToVecI32x4
so the respective instructions can be produced and inspected with the C API.
Diffstat (limited to 'test/example/c-api-kitchen-sink.c')
-rw-r--r-- | test/example/c-api-kitchen-sink.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c index 4a1f53e3c..a8d07d717 100644 --- a/test/example/c-api-kitchen-sink.c +++ b/test/example/c-api-kitchen-sink.c @@ -647,6 +647,10 @@ void test_core() { makeUnary(module, BinaryenTruncSatZeroUVecF64x2ToVecI32x4(), v128), makeUnary(module, BinaryenDemoteZeroVecF64x2ToVecF32x4(), v128), makeUnary(module, BinaryenPromoteLowVecF32x4ToVecF64x2(), v128), + makeUnary(module, BinaryenRelaxedTruncSVecF32x4ToVecI32x4(), v128), + makeUnary(module, BinaryenRelaxedTruncUVecF32x4ToVecI32x4(), v128), + makeUnary(module, BinaryenRelaxedTruncZeroSVecF64x2ToVecI32x4(), v128), + makeUnary(module, BinaryenRelaxedTruncZeroUVecF64x2ToVecI32x4(), v128), // Binary makeBinary(module, BinaryenAddInt32(), i32), makeBinary(module, BinaryenSubFloat64(), f64), @@ -812,6 +816,13 @@ void test_core() { makeBinary(module, BinaryenNarrowSVecI32x4ToVecI16x8(), v128), makeBinary(module, BinaryenNarrowUVecI32x4ToVecI16x8(), v128), makeBinary(module, BinaryenSwizzleVecI8x16(), v128), + makeBinary(module, BinaryenRelaxedSwizzleVecI8x16(), v128), + makeBinary(module, BinaryenRelaxedMinVecF32x4(), v128), + makeBinary(module, BinaryenRelaxedMaxVecF32x4(), v128), + makeBinary(module, BinaryenRelaxedMinVecF64x2(), v128), + makeBinary(module, BinaryenRelaxedMaxVecF64x2(), v128), + makeBinary(module, BinaryenRelaxedQ15MulrSVecI16x8(), v128), + makeBinary(module, BinaryenDotI8x16I7x16SToVecI16x8(), v128), // SIMD lane manipulation makeSIMDExtract(module, BinaryenExtractLaneSVecI8x16()), makeSIMDExtract(module, BinaryenExtractLaneUVecI8x16()), @@ -933,6 +944,15 @@ void test_core() { // Other SIMD makeSIMDShuffle(module), makeSIMDTernary(module, BinaryenBitselectVec128()), + makeSIMDTernary(module, BinaryenRelaxedFmaVecF32x4()), + makeSIMDTernary(module, BinaryenRelaxedFmsVecF32x4()), + makeSIMDTernary(module, BinaryenRelaxedFmaVecF64x2()), + makeSIMDTernary(module, BinaryenRelaxedFmsVecF64x2()), + makeSIMDTernary(module, BinaryenLaneselectI8x16()), + makeSIMDTernary(module, BinaryenLaneselectI16x8()), + makeSIMDTernary(module, BinaryenLaneselectI32x4()), + makeSIMDTernary(module, BinaryenLaneselectI64x2()), + makeSIMDTernary(module, BinaryenDotI8x16I7x16AddSToVecI32x4()), // Bulk memory makeMemoryInit(module), makeDataDrop(module), |