Bug 339416

Summary: unhandled instruction bytes 0xC5 0xF1 0xEF 0xC9 [AVX]
Product: [Developer tools] valgrind Reporter: Pedro Ferreira <arkangath>
Component: vexAssignee: Julian Seward <jseward>
Status: REOPENED ---    
Severity: normal CC: pjfloyd, sam, tom
Priority: NOR    
Version: 3.9.0   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Pedro Ferreira 2014-09-26 10:37:41 UTC
This is against version 3.10 which doesn't show on the "Version" field.

The relevant log is:
vex x86->IR: unhandled instruction bytes: 0xC5 0xF1 0xEF 0xC9
==16952== valgrind: Unrecognised instruction at address 0x41b220b5.
==16952==    at 0x41B220B5: _mm_unpacklo_epi8 (emmintrin.h:968)
==16952==    by 0x41B220B5: fromLatin1_helper (qstring.cpp:3848)
==16952==    by 0x41B220B5: QString::fromLatin1_helper(char const*, int) (qstring.cpp:3815)
==16952==    by 0x41ACA677: QString (qstring.h:694)
==16952==    by 0x41ACA677: QLibraryInfoPrivate::findConfiguration() (qlibraryinfo.cpp:111)
==16952==    by 0x41ACA892: QLibrarySettings::QLibrarySettings() (qlibraryinfo.cpp:102)
==16952==    by 0x41ACA93E: qt_library_settings() (qlibraryinfo.cpp:82)
==16952==    by 0x41ACAC1F: configuration (qlibraryinfo.cpp:96)
==16952==    by 0x41ACAC1F: QLibraryInfo::location(QLibraryInfo::LibraryLocation) (qlibraryinfo.cpp:242)
==16952==    by 0x41BE9BE1: QCoreApplication::libraryPaths() (qcoreapplication.cpp:2502)
==16952==    by 0x41BEA45B: QCoreApplication::init() (qcoreapplication.cpp:778)
==16952==    by 0x41BEA658: QCoreApplication::QCoreApplication(QCoreApplicationPrivate&) (qcoreapplication.cpp:667)
==16952==    by 0x425CD91F: QApplication::QApplication(int&, char**, int) (qapplication.cpp:740)

GDB disassembly says:
1: x/i 0x41B220B5
   0x41b220b5 <QString::fromLatin1_helper(char const*, int)+117>:       vpxor  %xmm1,%xmm1,%xmm1

Reproducible: Always

Steps to Reproduce:
1. Build a Qt4 app
2. Call the Qt function using the unhandled instruction
3. Valgrind returns an error and kills the application with SIGILL

Actual Results:  
Valgrind returns an error and kills the application with SIGILL
Comment 1 Tom Hughes 2023-05-09 09:02:58 UTC
That is an AVX512 instruction, or at least uses EVEX encoding, which means it is dependent on AVX512 support being added.

*** This bug has been marked as a duplicate of bug 383010 ***
Comment 2 Tom Hughes 2023-05-09 09:03:29 UTC
Scratch that I'm talking nonsense - that is VEX encoding.