Valgrind reports this unhandled instruction. The program runs fine when not run with valgrind. It also runs fine with address and undefined behavior sanitizers. gdb, objdump, and https://defuse.ca/online-x86-assembler.htm#disassembly2 report the instruction to be "vxorps %zmm0,%zmm0,%zmm0". This is on Ubuntu 18.04.2. g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 The same behavior is seen with both Ubuntu's valgrind 3.13 and with valgrind 3.17 that I downloaded and compiled. Please note that the highest version number that can be selected in the bug reporting interface is 3.15. ==7766== Memcheck, a memory error detector ==7766== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==7766== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info ==7766== Command: /home/sexton/bin/Demultiplex ./parameters_gen.txt ==7766== vex amd64->IR: unhandled instruction bytes: 0x62 0xF1 0x7C 0x48 0x57 0xC0 0xC5 0xFA 0x11 0x80 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 ==7766== valgrind: Unrecognised instruction at address 0x1111fb. ==7766== at 0x1111FB: DemultParams::DemultParams() (DemultDefs.h:99) ==7766== by 0x15BE49: UbamRunWriter::UbamRunWriter() (UbamRunWriter.h:41) ==7766== by 0x15B8A1: __static_initialization_and_destruction_0(int, int) (demultImpl.cpp:24) ==7766== by 0x15B9BE: _GLOBAL__sub_I_ubamWriter (demultImpl.cpp:1677) ==7766== by 0x182C1C: __libc_csu_init (in /home/sexton/Base-Calling/RT/bin/Demultiplex) ==7766== by 0x5BDEB27: (below main) (libc-start.c:266) ==7766== Your program just tried to execute an instruction that Valgrind ==7766== did not recognise. There are two possible reasons for this. ==7766== 1. Your program has a bug and erroneously jumped to a non-code ==7766== location. If you are running Memcheck and you just saw a ==7766== warning about a bad jump, it's probably your program's fault. ==7766== 2. The instruction is legitimate but Valgrind doesn't handle it, ==7766== i.e. it's Valgrind's fault. If you think this is the case or ==7766== you are not sure, please let us know and we'll try to fix it. ==7766== Either way, Valgrind will now raise a SIGILL signal which will ==7766== probably kill your program. ==7766== ==7766== Process terminating with default action of signal 4 (SIGILL) ==7766== Illegal opcode at address 0x1111FB ==7766== at 0x1111FB: DemultParams::DemultParams() (DemultDefs.h:99) ==7766== by 0x15BE49: UbamRunWriter::UbamRunWriter() (UbamRunWriter.h:41) ==7766== by 0x15B8A1: __static_initialization_and_destruction_0(int, int) (demultImpl.cpp:24) ==7766== by 0x15B9BE: _GLOBAL__sub_I_ubamWriter (demultImpl.cpp:1677) ==7766== by 0x182C1C: __libc_csu_init (in /home/sexton/Base-Calling/RT/bin/Demultiplex) ==7766== by 0x5BDEB27: (below main) (libc-start.c:266) ==7766== ==7766== HEAP SUMMARY: ==7766== in use at exit: 0 bytes in 0 blocks ==7766== total heap usage: 1 allocs, 1 frees, 72,704 bytes allocated ==7766== ==7766== All heap blocks were freed -- no leaks are possible ==7766== ==7766== For lists of detected and suppressed errors, rerun with: -s ==7766== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Illegal instruction (core dumped)
The faulty instruction is part of the AVX512 instruction set. It is currently being worked on in scope of https://bugs.kde.org/show_bug.cgi?id=383010. *** This bug has been marked as a duplicate of bug 383010 ***