about summary refs log tree commit diff
path: root/library/stdarch/crates/intrinsic-test/src/main.rs
diff options
context:
space:
mode:
authorKajetan Puchalski <kajetan.puchalski@arm.com>2025-02-05 15:24:53 +0000
committerAmanieu d'Antras <amanieu@gmail.com>2025-02-24 14:22:42 +0000
commit3b583400734faeaf5e7e13e0bfbc7fddec0f9a00 (patch)
treef41ded04ad25dbb2d0a9b32d9ec56a92385128f0 /library/stdarch/crates/intrinsic-test/src/main.rs
parentf4a31fd6096054d7ee6ac5cd1485d81837987423 (diff)
downloadrust-3b583400734faeaf5e7e13e0bfbc7fddec0f9a00.tar.gz
rust-3b583400734faeaf5e7e13e0bfbc7fddec0f9a00.zip
intrinsic-test: Print C++ float16_t in hex
Upstream Rust currently does not support printing f16s in decimal.
For the intrinsics tests to work, make C++ print float16_t in the same
format.

Can be droppen once https://github.com/rust-lang/rust/pull/127013
is merged.
Diffstat (limited to 'library/stdarch/crates/intrinsic-test/src/main.rs')
-rw-r--r--library/stdarch/crates/intrinsic-test/src/main.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/library/stdarch/crates/intrinsic-test/src/main.rs b/library/stdarch/crates/intrinsic-test/src/main.rs
index 57df40bb2fd..a64e264d8b1 100644
--- a/library/stdarch/crates/intrinsic-test/src/main.rs
+++ b/library/stdarch/crates/intrinsic-test/src/main.rs
@@ -114,6 +114,15 @@ std::ostream& operator<<(std::ostream& os, poly128_t value) {{
 }}
 #endif
 
+std::ostream& operator<<(std::ostream& os, float16_t value) {{
+    uint16_t temp = 0;
+    memcpy(&temp, &value, sizeof(float16_t));
+    std::stringstream ss;
+    ss << "0x" << std::setfill('0') << std::setw(4) << std::hex << temp;
+    os << ss.str();
+    return os;
+}}
+
 {arglists}
 
 int main(int argc, char **argv) {{