Bug 408140

Summary: Missing support for vmovdqu64
Product: [Developer tools] valgrind Reporter: Pedro Ferreira <arkangath>
Component: vexAssignee: Julian Seward <jseward>
Status: RESOLVED DUPLICATE    
Severity: normal CC: gabravier, mark, tom
Priority: NOR    
Version: 3.15 SVN   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Pedro Ferreira 2019-05-31 10:11:57 UTC
Whe running a binary using the "vmovdqu64" instruction, valgrind dies with the usual "unhandled instruction bytes".

vex amd64->IR: unhandled instruction bytes: 0x62 0xD1 0xFE 0x8 0x6F 0x47 0x2C 0x48 0x8B 0x15

This was found initially on Gentoo's Valgrind 3.15.0, but I built from git (sources) and replicated.

I hacked in a C file with
$ cat i.c 
asm(".byte 0x62, 0xD1, 0xFE, 0x8, 0x6F, 0x47, 0x2C, 0x48, 0x8B, 0x15");

Which yields:

0000000000000000 <.text>:
   0:   62 d1 fe 08 6f 47 2c    vmovdqu64 0x2c0(%r15),%xmm0
   7:   48                      rex.W
   8:   8b                      .byte 0x8b
   9:   15                      .byte 0x15

I'm happy to test any candidate patches.
Comment 1 Mark Wielaard 2019-05-31 12:02:06 UTC
I believe vmovdqu64 is part of AVX512 as an EVEX encoded extension of the legacy avx1 instruction vmovdqu
https://en.wikipedia.org/wiki/EVEX_prefix
https://en.wikipedia.org/wiki/AVX-512#Legacy_instructions_upgraded_with_EVEX_encoded_versions

valgrind doesn't support avx512 yet. See https://bugs.kde.org/show_bug.cgi?id=383010
Comment 2 Tom Hughes 2022-06-14 21:30:08 UTC

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