[hjl@gnu-skx-1 valgrind-1]$ cat m.c #include <x86intrin.h> extern void foo (__m512 *); __m512 x; int main () { foo (&x); return 0; } [hjl@gnu-skx-1 valgrind-1]$ cat x.S .text .globl foo foo: vmovdqu8 (%rdi), %zmm0 nop 1: ret .section .note.GNU-stack,"",@progbits [hjl@gnu-skx-1 valgrind-1]$ gcc -mavx512f m.c x.S -g [hjl@gnu-skx-1 valgrind-1]$ valgrind ./a.out ==2885282== Memcheck, a memory error detector ==2885282== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. ==2885282== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info ==2885282== Command: ./a.out ==2885282== vex amd64->IR: unhandled instruction bytes: 0x62 0xF1 0x7F 0x48 0x6F 0x7 0x90 0xC3 0x0 0xF3 vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0 vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 ==2885282== valgrind: Unrecognised instruction at address 0x40111b. ==2885282== at 0x40111B: ??? (x.S:4) ==2885282== by 0x489C109: (below main) (in /usr/lib64/libc.so.6) ==2885282== Your program just tried to execute an instruction that Valgrind ==2885282== did not recognise. There are two possible reasons for this. ==2885282== 1. Your program has a bug and erroneously jumped to a non-code ==2885282== location. If you are running Memcheck and you just saw a ==2885282== warning about a bad jump, it's probably your program's fault. ==2885282== 2. The instruction is legitimate but Valgrind doesn't handle it, ==2885282== i.e. it's Valgrind's fault. If you think this is the case or ==2885282== you are not sure, please let us know and we'll try to fix it. ==2885282== Either way, Valgrind will now raise a SIGILL signal which will ==2885282== probably kill your program. ==2885282== ==2885282== Process terminating with default action of signal 4 (SIGILL) ==2885282== Illegal opcode at address 0x40111B ==2885282== at 0x40111B: ??? (x.S:4) ==2885282== by 0x489C109: (below main) (in /usr/lib64/libc.so.6) ==2885282== ==2885282== HEAP SUMMARY: ==2885282== in use at exit: 0 bytes in 0 blocks ==2885282== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==2885282== ==2885282== All heap blocks were freed -- no leaks are possible ==2885282== ==2885282== For lists of detected and suppressed errors, rerun with: -s ==2885282== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Illegal instruction (core dumped) [hjl@gnu-skx-1 valgrind-1]$
*** This bug has been marked as a duplicate of bug 383010 ***