summaryrefslogtreecommitdiff
path: root/src/passes/Print.cpp
diff options
context:
space:
mode:
authorBrendan Dahl <brendan.dahl@gmail.com>2024-09-26 15:35:47 -0700
committerGitHub <noreply@github.com>2024-09-26 15:35:47 -0700
commitc3a71ff46d8f38e29896c321d89b6d0c3b90fbc1 (patch)
tree04c4751da10f8e548e0ff94945d2635939b34f58 /src/passes/Print.cpp
parent3856a2dc909b3c713497ef311fe4051078ee74b9 (diff)
downloadbinaryen-c3a71ff46d8f38e29896c321d89b6d0c3b90fbc1.tar.gz
binaryen-c3a71ff46d8f38e29896c321d89b6d0c3b90fbc1.tar.bz2
binaryen-c3a71ff46d8f38e29896c321d89b6d0c3b90fbc1.zip
[FP16] Implement conversion operations. (#6974)
Note: FP16 is a little different from F32/F64 since it can't represent the full 2^16 integer range. 65504 is the max whole integer. This leads to some slightly strange behavior when converting integers greater than 65504 since they become infinity. Specified at https://github.com/WebAssembly/half-precision/blob/main/proposals/half-precision/Overview.md
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r--src/passes/Print.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index 427bff329..854934204 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -1368,6 +1368,18 @@ struct PrintExpressionContents
case RelaxedTruncZeroUVecF64x2ToVecI32x4:
o << "i32x4.relaxed_trunc_f64x2_u_zero";
break;
+ case TruncSatSVecF16x8ToVecI16x8:
+ o << "i16x8.trunc_sat_f16x8_s";
+ break;
+ case TruncSatUVecF16x8ToVecI16x8:
+ o << "i16x8.trunc_sat_f16x8_u";
+ break;
+ case ConvertSVecI16x8ToVecF16x8:
+ o << "f16x8.convert_i16x8_s";
+ break;
+ case ConvertUVecI16x8ToVecF16x8:
+ o << "f16x8.convert_i16x8_u";
+ break;
case InvalidUnary:
WASM_UNREACHABLE("unvalid unary operator");
}