Summary: | Unhandled instruction 0x66 0x0F 0x38 0x21 [PMOVSXBD] | ||
---|---|---|---|
Product: | [Developer tools] valgrind | Reporter: | kr.stokke |
Component: | general | Assignee: | Julian Seward <jseward> |
Status: | RESOLVED INTENTIONAL | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | 3.7 SVN | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
kr.stokke
2011-09-27 14:37:08 UTC
In 32-bit mode (which is what you appear to be using), Valgrind only supports up to SSSE3 instructions. Your software should query its capabilities using CPUID before trying to issue instructions that its CPUID does not claim are supported. In 64-bit mode though there is almost complete support for SSE4.2, including the two instructions you mention. If you can use 64 bit mode you should be able to run your code. Thank you for your quick response. This was valuable information for us! Do you still consider this a bug, or more of a feature request? (True, we are working on SIMD in 32 bit code, but it's still running perfectly outside of Valgrind..) Well, making SSE4.1 and 4.2 work for 64-bit was quite a lot of work. I (personally) regard 32-bit x86 as more or less "legacy" and did not really want to spend the effort to make 4.1/4.2 work there. Really the next round of SIMD support hacking will be to make AVX work on 64-bit, so realistically the prospect of anything beyond SSSE3 working for 32-bit is pretty small. IOW .. just use 64-bit. If you find any bugs in the 64-bit SSE4.1/4.2 support please let me know. I think it's pretty reliable, but one never really knows. Closed then. |