https://bugs.kde.org/show_bug.cgi?id=521332
--- Comment #1 from [email protected] --- Reproducer: $ cat test.c #include <smmintrin.h> #include <stdio.h> // $ grep -R "cmpgt_epi64" $(gcc -print-file-name=include) | fgrep -v avx // /usr/lib/gcc/x86_64-redhat-linux/16/include/smmintrin.h:_mm_cmpgt_epi64 (__m128i __X, __m128i __Y) // $ int main() { __m128i a = _mm_set_epi64x(3, 7); __m128i b = _mm_set_epi64x(7, 3); __m128i r = _mm_cmpgt_epi64(a, b); unsigned long long x[2]; _mm_storeu_si128((__m128i*)x, r); printf("XXX %016llx, %016llx\n", x[0], x[1]); return 0; } $ $ gcc -msse4.2 -m64 test.c -o a64.out $ gcc -msse4.2 -m32 test.c -o a32.out $ $ ./vg-in-place ./a64.out ==1454953== Memcheck, a memory error detector ==1454953== Copyright (C) 2002-2026, and GNU GPL'd, by Julian Seward et al. ==1454953== Using Valgrind-3.28.0.GIT and LibVEX; rerun with -h for copyright info ==1454953== Command: ./a64.out ==1454953== XXX ffffffffffffffff, 0000000000000000 ==1454953== ==1454953== HEAP SUMMARY: ==1454953== in use at exit: 0 bytes in 0 blocks ==1454953== total heap usage: 1 allocs, 1 frees, 1,024 bytes allocated ==1454953== ==1454953== All heap blocks were freed -- no leaks are possible ==1454953== ==1454953== For lists of detected and suppressed errors, rerun with: -s ==1454953== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) $ $ ./vg-in-place ./a32.out ==1454121== Memcheck, a memory error detector ==1454121== Copyright (C) 2002-2026, and GNU GPL'd, by Julian Seward et al. ==1454121== Using Valgrind-3.28.0.GIT and LibVEX; rerun with -h for copyright info ==1454121== Command: ./a32.out ==1454121== vex x86->IR: unhandled instruction bytes: 0x66 0xF 0x38 0x37 ==1454121== valgrind: Unrecognised instruction at address 0x80483e9. ==1454121== at 0x80483E9: main (in /home/mcermak/WORK/valgrind/valgrind-src/a32.out) ==1454121== Your program just tried to execute an instruction that Valgrind ==1454121== did not recognise. There are two possible reasons for this. ==1454121== 1. Your program has a bug and erroneously jumped to a non-code ==1454121== location. If you are running Memcheck and you just saw a ==1454121== warning about a bad jump, it's probably your program's fault. ==1454121== 2. The instruction is legitimate but Valgrind doesn't handle it, ==1454121== i.e. it's Valgrind's fault. If you think this is the case or ==1454121== you are not sure, please let us know and we'll try to fix it. ==1454121== Either way, Valgrind will now raise a SIGILL signal which will ==1454121== probably kill your program. ==1454121== ==1454121== Process terminating with default action of signal 4 (SIGILL): dumping core ==1454121== Illegal opcode at address 0x80483E9 ==1454121== at 0x80483E9: main (in /home/mcermak/WORK/valgrind/valgrind-src/a32.out) ==1454121== ==1454121== HEAP SUMMARY: ==1454121== in use at exit: 0 bytes in 0 blocks ==1454121== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==1454121== ==1454121== All heap blocks were freed -- no leaks are possible ==1454121== ==1454121== For lists of detected and suppressed errors, rerun with: -s ==1454121== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Illegal instruction (core dumped) ./vg-in-place ./a32.out $ -- You are receiving this mail because: You are watching all bug changes.
