From adedf8771bc4de3113041ca21bd4d0d1c0014b6a Mon Sep 17 00:00:00 2001 From: Christian Krinitsin Date: Thu, 26 Jun 2025 11:32:28 +0200 Subject: filter for semantic-user-mode bugs --- .../classifier/semantic-bugs-usermode/test/1245543 | 43 ++ .../classifier/semantic-bugs-usermode/test/1267955 | 187 ++++++ .../classifier/semantic-bugs-usermode/test/1328996 | 25 + .../classifier/semantic-bugs-usermode/test/1370 | 26 + .../classifier/semantic-bugs-usermode/test/1371 | 32 + .../classifier/semantic-bugs-usermode/test/1372 | 33 + .../classifier/semantic-bugs-usermode/test/1373 | 33 + .../classifier/semantic-bugs-usermode/test/1374 | 35 + .../classifier/semantic-bugs-usermode/test/1375 | 32 + .../classifier/semantic-bugs-usermode/test/1376 | 28 + .../classifier/semantic-bugs-usermode/test/1377 | 27 + .../classifier/semantic-bugs-usermode/test/1574346 | 41 ++ .../classifier/semantic-bugs-usermode/test/1612 | 64 ++ .../classifier/semantic-bugs-usermode/test/1620 | 107 +++ .../classifier/semantic-bugs-usermode/test/1637 | 14 + .../classifier/semantic-bugs-usermode/test/1641637 | 743 +++++++++++++++++++++ .../classifier/semantic-bugs-usermode/test/1719984 | 27 + .../classifier/semantic-bugs-usermode/test/1722 | 100 +++ .../classifier/semantic-bugs-usermode/test/1737 | 62 ++ .../classifier/semantic-bugs-usermode/test/1748296 | 95 +++ .../classifier/semantic-bugs-usermode/test/1751422 | 71 ++ .../classifier/semantic-bugs-usermode/test/1771 | 46 ++ .../classifier/semantic-bugs-usermode/test/1780 | 30 + .../classifier/semantic-bugs-usermode/test/1785734 | 129 ++++ .../classifier/semantic-bugs-usermode/test/1790 | 42 ++ .../classifier/semantic-bugs-usermode/test/1793608 | 49 ++ .../classifier/semantic-bugs-usermode/test/1818075 | 133 ++++ .../classifier/semantic-bugs-usermode/test/1820686 | 25 + .../classifier/semantic-bugs-usermode/test/1824344 | 71 ++ .../classifier/semantic-bugs-usermode/test/1824778 | 30 + .../classifier/semantic-bugs-usermode/test/1828867 | 48 ++ .../classifier/semantic-bugs-usermode/test/1832422 | 33 + .../classifier/semantic-bugs-usermode/test/1861404 | 223 +++++++ .../classifier/semantic-bugs-usermode/test/1863247 | 33 + .../classifier/semantic-bugs-usermode/test/1901 | 32 + .../classifier/semantic-bugs-usermode/test/1912934 | 78 +++ .../classifier/semantic-bugs-usermode/test/1915027 | 27 + .../classifier/semantic-bugs-usermode/test/1916269 | 70 ++ .../classifier/semantic-bugs-usermode/test/1926759 | 73 ++ .../classifier/semantic-bugs-usermode/test/1955 | 39 ++ .../classifier/semantic-bugs-usermode/test/2089 | 40 ++ .../classifier/semantic-bugs-usermode/test/2175 | 51 ++ .../classifier/semantic-bugs-usermode/test/2248 | 49 ++ .../classifier/semantic-bugs-usermode/test/2302 | 38 ++ .../classifier/semantic-bugs-usermode/test/2317 | 51 ++ .../classifier/semantic-bugs-usermode/test/2318 | 47 ++ .../classifier/semantic-bugs-usermode/test/2371 | 65 ++ .../classifier/semantic-bugs-usermode/test/2372 | 122 ++++ .../classifier/semantic-bugs-usermode/test/2374 | 124 ++++ .../classifier/semantic-bugs-usermode/test/2386 | 56 ++ .../classifier/semantic-bugs-usermode/test/2497 | 16 + .../classifier/semantic-bugs-usermode/test/2500 | 17 + .../classifier/semantic-bugs-usermode/test/2595 | 148 ++++ results/classifier/semantic-bugs-usermode/test/266 | 14 + .../classifier/semantic-bugs-usermode/test/2865 | 65 ++ .../classifier/semantic-bugs-usermode/test/2971 | 57 ++ results/classifier/semantic-bugs-usermode/test/361 | 14 + results/classifier/semantic-bugs-usermode/test/390 | 14 + results/classifier/semantic-bugs-usermode/test/427 | 14 + results/classifier/semantic-bugs-usermode/test/508 | 14 + .../classifier/semantic-bugs-usermode/test/904308 | 201 ++++++ results/classifier/semantic-bugs-usermode/test/984 | 36 + 62 files changed, 4289 insertions(+) create mode 100644 results/classifier/semantic-bugs-usermode/test/1245543 create mode 100644 results/classifier/semantic-bugs-usermode/test/1267955 create mode 100644 results/classifier/semantic-bugs-usermode/test/1328996 create mode 100644 results/classifier/semantic-bugs-usermode/test/1370 create mode 100644 results/classifier/semantic-bugs-usermode/test/1371 create mode 100644 results/classifier/semantic-bugs-usermode/test/1372 create mode 100644 results/classifier/semantic-bugs-usermode/test/1373 create mode 100644 results/classifier/semantic-bugs-usermode/test/1374 create mode 100644 results/classifier/semantic-bugs-usermode/test/1375 create mode 100644 results/classifier/semantic-bugs-usermode/test/1376 create mode 100644 results/classifier/semantic-bugs-usermode/test/1377 create mode 100644 results/classifier/semantic-bugs-usermode/test/1574346 create mode 100644 results/classifier/semantic-bugs-usermode/test/1612 create mode 100644 results/classifier/semantic-bugs-usermode/test/1620 create mode 100644 results/classifier/semantic-bugs-usermode/test/1637 create mode 100644 results/classifier/semantic-bugs-usermode/test/1641637 create mode 100644 results/classifier/semantic-bugs-usermode/test/1719984 create mode 100644 results/classifier/semantic-bugs-usermode/test/1722 create mode 100644 results/classifier/semantic-bugs-usermode/test/1737 create mode 100644 results/classifier/semantic-bugs-usermode/test/1748296 create mode 100644 results/classifier/semantic-bugs-usermode/test/1751422 create mode 100644 results/classifier/semantic-bugs-usermode/test/1771 create mode 100644 results/classifier/semantic-bugs-usermode/test/1780 create mode 100644 results/classifier/semantic-bugs-usermode/test/1785734 create mode 100644 results/classifier/semantic-bugs-usermode/test/1790 create mode 100644 results/classifier/semantic-bugs-usermode/test/1793608 create mode 100644 results/classifier/semantic-bugs-usermode/test/1818075 create mode 100644 results/classifier/semantic-bugs-usermode/test/1820686 create mode 100644 results/classifier/semantic-bugs-usermode/test/1824344 create mode 100644 results/classifier/semantic-bugs-usermode/test/1824778 create mode 100644 results/classifier/semantic-bugs-usermode/test/1828867 create mode 100644 results/classifier/semantic-bugs-usermode/test/1832422 create mode 100644 results/classifier/semantic-bugs-usermode/test/1861404 create mode 100644 results/classifier/semantic-bugs-usermode/test/1863247 create mode 100644 results/classifier/semantic-bugs-usermode/test/1901 create mode 100644 results/classifier/semantic-bugs-usermode/test/1912934 create mode 100644 results/classifier/semantic-bugs-usermode/test/1915027 create mode 100644 results/classifier/semantic-bugs-usermode/test/1916269 create mode 100644 results/classifier/semantic-bugs-usermode/test/1926759 create mode 100644 results/classifier/semantic-bugs-usermode/test/1955 create mode 100644 results/classifier/semantic-bugs-usermode/test/2089 create mode 100644 results/classifier/semantic-bugs-usermode/test/2175 create mode 100644 results/classifier/semantic-bugs-usermode/test/2248 create mode 100644 results/classifier/semantic-bugs-usermode/test/2302 create mode 100644 results/classifier/semantic-bugs-usermode/test/2317 create mode 100644 results/classifier/semantic-bugs-usermode/test/2318 create mode 100644 results/classifier/semantic-bugs-usermode/test/2371 create mode 100644 results/classifier/semantic-bugs-usermode/test/2372 create mode 100644 results/classifier/semantic-bugs-usermode/test/2374 create mode 100644 results/classifier/semantic-bugs-usermode/test/2386 create mode 100644 results/classifier/semantic-bugs-usermode/test/2497 create mode 100644 results/classifier/semantic-bugs-usermode/test/2500 create mode 100644 results/classifier/semantic-bugs-usermode/test/2595 create mode 100644 results/classifier/semantic-bugs-usermode/test/266 create mode 100644 results/classifier/semantic-bugs-usermode/test/2865 create mode 100644 results/classifier/semantic-bugs-usermode/test/2971 create mode 100644 results/classifier/semantic-bugs-usermode/test/361 create mode 100644 results/classifier/semantic-bugs-usermode/test/390 create mode 100644 results/classifier/semantic-bugs-usermode/test/427 create mode 100644 results/classifier/semantic-bugs-usermode/test/508 create mode 100644 results/classifier/semantic-bugs-usermode/test/904308 create mode 100644 results/classifier/semantic-bugs-usermode/test/984 (limited to 'results/classifier/semantic-bugs-usermode') diff --git a/results/classifier/semantic-bugs-usermode/test/1245543 b/results/classifier/semantic-bugs-usermode/test/1245543 new file mode 100644 index 000000000..99966ab81 --- /dev/null +++ b/results/classifier/semantic-bugs-usermode/test/1245543 @@ -0,0 +1,43 @@ +instruction: 0.966 +other: 0.798 +device: 0.770 +semantic: 0.629 +socket: 0.619 +network: 0.548 +vnc: 0.529 +graphic: 0.455 +boot: 0.437 +mistranslation: 0.417 +assembly: 0.269 +KVM: 0.262 + +Wrong implementation of SSE4.1 pmovzxbw and similar instructions + +QEMU 1.5.0 (and git version, as far as I can tell from the source code) has incorrect implementation of pmovzxbw and similar SSE4.1 instructions. The instruction zero-extends the first 8 8-bit elements of a vector to 16bit vector and puts them to another vector. The current implementation applies this operation only to the first element and zeros out the rest. + +To verify, compile the attached program for SSE4.1 (g++ -msse4.1 cvtint.cc). On real hardware, it produces the following output: + +$ ./a.out +1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 + +On QEMU, the output is as follows: + +$ ./a.out +1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +QEMU is invoked as: + +qemu-system-x86_64 \ + -M pc -cpu Haswell,+sse4.1,+avx,+avx2,+fma,enforce -m 512 \ + -serial stdio -no-reboot \ + -kernel vmlinuz -initrd initrd.img \ + -netdev user,id=user.0 -device rtl8139,netdev=user.0 -redir tcp:2222::22 \ + -hda ubuntu-amd64.ext3 \ + --append "rw console=tty root=/dev/sda" + + + +Looking through old bug tickets... is this still an issue with the latest version of QEMU? Or could we close this ticket nowadays? + +[Expired for QEMU because there has been no activity for 60 days.] + diff --git a/results/classifier/semantic-bugs-usermode/test/1267955 b/results/classifier/semantic-bugs-usermode/test/1267955 new file mode 100644 index 000000000..fe1635901 --- /dev/null +++ b/results/classifier/semantic-bugs-usermode/test/1267955 @@ -0,0 +1,187 @@ +other: 0.979 +assembly: 0.959 +device: 0.954 +KVM: 0.953 +vnc: 0.950 +instruction: 0.947 +semantic: 0.945 +graphic: 0.944 +network: 0.942 +mistranslation: 0.913 +socket: 0.912 +boot: 0.895 + +[i386] Parity Flag Not Set On xor %eax,%eax + +Tested against qemu-1.7.0 as well as qemu-1.7.50 on Debian Sid + +Steps To Reproduce + +$ cat > prog.hex << EOF + +7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 +02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00 +00 00 00 00 00 00 00 00 34 00 20 00 01 00 28 00 +00 00 00 00 01 00 00 00 00 00 00 00 00 80 04 08 +00 80 04 08 76 00 00 00 76 00 00 00 05 00 00 00 +00 10 00 00 + +31 c0 +9c + +b8 04 00 00 00 +bb 01 00 00 00 +89 e1 +ba 04 00 00 00 +cd 80 + +b8 01 00 00 00 +bb 00 00 00 00 +cd 80 + +EOF + +$ xxd -p -r prog.hex > prog +$ chmod 700 prog + +$ ./prog | hexdump -vC +00000000 46 02 00 00 |F...| +00000004 + +$ qemu-i386 ./prog | hexdump -vC +00000000 42 02 00 00 |B...| +00000004 + +On the other hand if [xor %eax, %eax] (31 c0) is replaced with sub %eax,%eax (29 c0), then the parity flag is set correctly. + +Parity should be set for a zero result. + +Signed-off-by: Richard Henderson