Bug 286596 - Lack of support for several SSE instructions
Summary: Lack of support for several SSE instructions
Status: RESOLVED DUPLICATE of bug 273475
Alias: None
Product: valgrind
Classification: Developer tools
Component: memcheck (show other bugs)
Version: 3.7.0
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: Julian Seward
Depends on:
Reported: 2011-11-14 14:09 UTC by david
Modified: 2011-11-14 14:25 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:

Valgrind's log output and disassembly of offending instructions (2.18 KB, text/plain)
2011-11-14 14:09 UTC, david

Note You need to log in before you can comment on or make changes to this bug.
Description david 2011-11-14 14:09:00 UTC
Created attachment 65657 [details]
Valgrind's log output and disassembly of offending instructions

Version:           3.7.0 (using KDE 4.5.5) 
OS:                Linux

valgrind (MemCheck) aborts program execution when it finds SSE instructions like vcvtsi2ss, vcvtsi2sd, or even vxorps complaining about "unhandled instruction bytes" and "Unrecognised instruction".
Instructions are generated by GCC using SSE instead of 387 floating point instructions for simple FP math. Example (in C): (float)sx=((float)((uint16_t)Cfg.sx))/(uint32_t)i; generates 3 operand instruction "vcvtsi2ss %eax,%xmm0,%xmm0", that is unknown to valgrind (integer casts are informative only).
See attached file with valgrind's log, and partial disassembly of a few offending code compiled with GCC 4.5.2

Reproducible: Always

Steps to Reproduce:
Probably compiling any program with a floating point operation using a recent GCC with options like -ggdb -g3 -O0 -Wall -march=native -m64 (here the point is -march=native on a second generation i3, in my case, but probably will do the same on any SSE3+ capable)

Actual Results:  
Simply aborts execution due to lack of support for such instructions.

Expected Results:  
Execute the instruction and continue...
Comment 1 Tom Hughes 2011-11-14 14:25:11 UTC
These are AVX instructions.

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