Bug 427057

Summary: vex amd64->IR: unhandled instruction bytes: 0xC4 0xC2 0x7D 0x13 0x4 0x54 0xC4 0xE3 0x7D 0x19
Product: [Developer tools] valgrind Reporter: goffinet.francois
Component: vexAssignee: Julian Seward <jseward>
Status: RESOLVED DUPLICATE    
Severity: normal CC: mark
Priority: NOR    
Version: 3.13.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description goffinet.francois 2020-09-28 01:42:29 UTC
SUMMARY

vex error in Opencv 3.4.7 (inside contrib modules), the lib has been manually compiled.
valgind is from Ubuntu packages on Ubuntu 18.04 (bionic)


OBSERVED RESULT

vex amd64->IR: unhandled instruction bytes: 0xC4 0xC2 0x7D 0x13 0x4 0x54 0xC4 0xE3 0x7D 0x19
vex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=1
vex amd64->IR:   VEX=1 VEX.L=1 VEX.nVVVV=0x0 ESC=0F38
vex amd64->IR:   PFX.66=1 PFX.F2=0 PFX.F3=0
==30103== valgrind: Unrecognised instruction at address 0x8ea2988.
==30103==    at 0x8EA2988: cv::opt_AVX2::cvt16f32f(unsigned char const*, unsigned long, unsigned char const*, unsigned long, unsigned char*, unsigned long, cv::Size_<int>, void*) (in /usr/local/lib/libopencv_core.so.3.4.7)
==30103==    by 0x8C3082D: cv::convertFp16(cv::_InputArray const&, cv::_OutputArray const&) (in /usr/local/lib/libopencv_core.so.3.4.7)
==30103==    by 0x9F4FA0D: cv::dnn::experimental_dnn_34_v13::(anonymous namespace)::CaffeImporter::populateNet(cv::dnn::experimental_dnn_34_v13::Net) (in /usr/local/lib/libopencv_dnn.so.3.4.7)
==30103==    by 0x9F5222D: cv::dnn::experimental_dnn_34_v13::readNetFromCaffe(cv::String const&, cv::String const&) (in /usr/local/lib/libopencv_dnn.so.3.4.7)
[... personal stack trace removed ...]
==30103== Your program just tried to execute an instruction that Valgrind
==30103== did not recognise.  There are two possible reasons for this.
==30103== 1. Your program has a bug and erroneously jumped to a non-code
==30103==    location.  If you are running Memcheck and you just saw a
==30103==    warning about a bad jump, it's probably your program's fault.
==30103== 2. The instruction is legitimate but Valgrind doesn't handle it,
==30103==    i.e. it's Valgrind's fault.  If you think this is the case or
==30103==    you are not sure, please let us know and we'll try to fix it.
==30103== Either way, Valgrind will now raise a SIGILL signal which will
==30103== probably kill your program.
Comment 1 Mark Wielaard 2021-02-21 00:22:46 UTC
This is VCVTPH2PS there is an open bug about it, but it might already have been fixed. 3.13 is fairly old. Please retry with a newer version (3.16.1 is the latest or if you can, please test against current git trunk).

*** This bug has been marked as a duplicate of bug 356715 ***