summary refs log tree commit diff stats
path: root/results/classifier/accel-gemma3:12b/tcg/1821444
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/accel-gemma3:12b/tcg/1821444')
-rw-r--r--results/classifier/accel-gemma3:12b/tcg/182144430
1 files changed, 30 insertions, 0 deletions
diff --git a/results/classifier/accel-gemma3:12b/tcg/1821444 b/results/classifier/accel-gemma3:12b/tcg/1821444
new file mode 100644
index 000000000..67509821c
--- /dev/null
+++ b/results/classifier/accel-gemma3:12b/tcg/1821444
@@ -0,0 +1,30 @@
+
+qemu-ppc (user) incorrectly translates float32 arithmetics
+
+I'm using qemu-3.1.0 (Gentoo).
+
+When I was running regression test suite via qemu-ppc for GHC I noticed a few uint32_t<->float32 failures I did not expect to encounter.
+
+Here is an example
+
+$ cat a.c
+#include <stdio.h>
+#include <stdint.h>
+
+int main() {
+    volatile uint32_t i = 1;
+    printf("0x1 = %e\n", *(volatile float*)&i);
+}
+
+$ powerpc-unknown-linux-gnu-gcc -O2 a.c -Wall -o a -fno-strict-aliasing -fno-stack-protector -static && ./a
+0x1 = 2.802597e-45
+
+$ scp a timberdoodle.ppc64.dev.gentoo.org:~/
+a                                                                                                       100%  826KB 102.0KB/s   00:08    
+
+$ ssh timberdoodle.ppc64.dev.gentoo.org ./a
+0x1 = 1.401298e-45
+$ qemu-ppc ./a
+0x1 = 2.802597e-45
+
+Looks like off-by-one bit somewhere. I'm not sure if it's FPU instruction or some internals of printf() that are emulated incorrectly.
\ No newline at end of file