Bug 257011 - vex amd64->IR: unhandled instruction bytes: 0x66 0xF 0x3A 0xE 0xFD 0xA0
Summary: vex amd64->IR: unhandled instruction bytes: 0x66 0xF 0x3A 0xE 0xFD 0xA0
Status: RESOLVED FIXED
Alias: None
Product: valgrind
Classification: Developer tools
Component: general (other bugs)
Version First Reported In: 3.6.0
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-15 20:26 UTC by Harry Weppner
Modified: 2011-08-10 13:10 UTC (History)
2 users (show)

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


Attachments
c++ source file that, when compiled with gcc-snapshot's g++, reproduces the illegal instruction crash (1.09 KB, text/x-c++src)
2010-12-11 00:19 UTC, Matt Hargett
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Harry Weppner 2010-11-15 20:26:20 UTC
Version:           3.6.0 (using KDE 1.2) 
OS:                Linux

The application I am attempting to profile is executing a blend packed words (PBLENDW) instruction, which according to http://ref.x86asm.net/coder64.html#x0F3A is part of the sse4.1 instruction set. Valgrind doesn't appear to be handling this instruction and the program runs fine without valgrind.

The valgrind 3.6.0 release notes indicate that sse4.2 (two) is supported so I had assumed sse4.1 would be supported as well!?

Thanks, Harry.

Reproducible: Always




valgrind 3.6.0 compiled from source using gcc 4.1.2. The application itself was built on another machine with gcc 4.3.4 (which supports sse4.x)

I did not see a test against sse4.1 or sse4.2 in config.log - is that expected!?
Comment 1 Matt Hargett 2010-12-11 00:19:12 UTC
Created attachment 54408 [details]
c++ source file that, when compiled with gcc-snapshot's g++, reproduces the illegal instruction crash
Comment 2 Matt Hargett 2010-12-11 00:20:59 UTC
I see a similar issue when trying to use valgrind 3.6.0 on Ubuntu 10.10 (via the natty packaging of it, here: https://launchpad.net/ubuntu/natty/amd64/valgrind/1:3.6.0-0ubuntu1). When I try to valgrind g++ from the gcc-snapshot package (via the natty version of gcc-snapshot, here: https://launchpad.net/ubuntu/natty/amd64/gcc-snapshot/20101206-1):


matt@matt-desktop:~/src/devirt$ valgrind --trace-children=yes -q /usr/lib/gcc-snapshot/bin/g++ -O3 -fwhole-program -flto folding-test.cpp
vex amd64->IR: unhandled instruction bytes: 0x66 0xF 0x3A 0x61 0x7 0x0
==13008== valgrind: Unrecognised instruction at address 0xe0ea54.

I have attached the folding-test.cpp to aid in reproducing the issue. I can't continue testing GCC trunk with valgrind until this is fixed. I would prefer to continue using valgrind 3.6.0, as it is *much* faster in 3.5.x in my typical scenarios.
Comment 3 Julian Seward 2011-01-10 23:33:12 UTC
(In reply to comment #2)
> I see a similar issue when trying to use valgrind 3.6.0 on Ubuntu 10.10 (via
> vex amd64->IR: unhandled instruction bytes: 0x66 0xF 0x3A 0x61 0x7 0x0

Totally unrelated, in fact.  This is a PCMPESTRI instruction.  Should
be a separate bug report.
Comment 4 Julian Seward 2011-01-11 20:57:24 UTC
(In reply to comment #0)
> The application I am attempting to profile is executing a blend packed words
> (PBLENDW) instruction, which according to

Fixed (vex r2075).
Comment 5 Matt Hargett 2011-01-12 23:31:06 UTC
Created a new bug, as requested:
https://bugs.kde.org/show_bug.cgi?id=262995