Bug 441609 - unhandled instruction bytes: 0x62 0xF1 0x7C 0x48 0x57 0xC0 0xC5 0xFA 0x11 0x80
Summary: unhandled instruction bytes: 0x62 0xF1 0x7C 0x48 0x57 0xC0 0xC5 0xFA 0x11 0x80
Status: RESOLVED DUPLICATE of bug 383010
Alias: None
Product: valgrind
Classification: Developer tools
Component: vex (show other bugs)
Version: 3.13.0
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-08-27 14:23 UTC by Matt Sexton
Modified: 2024-02-25 02:10 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Sexton 2021-08-27 14:23:18 UTC
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)
Comment 1 Tanya 2021-11-03 09:19:45 UTC
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 ***