diff options
| author | Rafael Auler <rafaelauler@fb.com> | 2018-02-15 21:20:31 +0000 |
|---|---|---|
| committer | Rafael Auler <rafaelauler@fb.com> | 2018-02-15 21:20:31 +0000 |
| commit | de9ad4ba848729f0826131a947fdbaae98df6d05 (patch) | |
| tree | 235da52f857bfe603877b4767a9494b868cb6ab7 /llvm/test/MC | |
| parent | 775c7af4f9ff934a85d4b6d521fffc7f5ac26cc0 (diff) | |
| download | bcm5719-llvm-de9ad4ba848729f0826131a947fdbaae98df6d05.tar.gz bcm5719-llvm-de9ad4ba848729f0826131a947fdbaae98df6d05.zip | |
[X86][3DNOW] Teach decoder about AMD 3DNow! instrs
Summary:
This patch makes the decoder understand old AMD 3DNow!
instructions that have never been properly supported in the X86
disassembler, despite being supported in other subsystems. Hopefully
this should make the X86 decoder more complete with respect to binaries
containing legacy code.
Reviewers: craig.topper
Reviewed By: craig.topper
Subscribers: llvm-commits, maksfb, bruno
Differential Revision: https://reviews.llvm.org/D43311
llvm-svn: 325295
Diffstat (limited to 'llvm/test/MC')
| -rw-r--r-- | llvm/test/MC/Disassembler/X86/amd3dnow.txt | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/llvm/test/MC/Disassembler/X86/amd3dnow.txt b/llvm/test/MC/Disassembler/X86/amd3dnow.txt new file mode 100644 index 00000000000..50a24f5f7fc --- /dev/null +++ b/llvm/test/MC/Disassembler/X86/amd3dnow.txt @@ -0,0 +1,76 @@ +# RUN: llvm-mc --disassemble %s -triple=x86_64-unknown-linux-gnu | FileCheck %s + +# Reference: AMD64 Architecture Programmer's Manual Vol.3 +# Pub no. 24594 - Rev. 3.25 - Dec 2017 - pgs.468-469 + +# CHECK: pfcmpge %mm0, %mm1 +0x0f 0x0f 0xc8 0x90 + +# CHECK: pfcmpgt %mm2, %mm0 +0x0f 0x0f 0xc2 0xa0 + +# CHECK: pfcmpeq %mm5, %mm2 +0x0f 0x0f 0xd5 0xb0 + +# CHECK: pfmin %mm1, %mm0 +0x0f 0x0f 0xc1 0x94 + +# CHECK: pfmax (%rax), %mm0 +0x0f 0x0f 0x00 0xa4 + +# CHECK: pfmul %mm6, %mm0 +0x0f 0x0f 0xc6 0xb4 + +# CHECK: pfrcp (%rbx), %mm1 +0x0f 0x0f 0x0b 0x96 + +# CHECK: pfrcpit1 %mm0, %mm2 +0x0f 0x0f 0xd0 0xa6 + +# CHECK: pfrcpit2 %mm0, %mm1 +0x0f 0x0f 0xc8 0xb6 + +# CHECK: pfrsqrt (%eax), %mm1 +0x67 0x0f 0x0f 0x08 0x97 + +# CHECK: pfrsqit1 (%ebx), %mm4 +0x67 0x0f 0x0f 0x23 0xa7 + +# CHECK: pmulhrw %mm3, %mm0 +0x0f 0x0f 0xc3 0xb7 + +# CHECK: pi2fw %mm1, %mm3 +0x0f 0x0f 0xd9 0x0c + +# CHECK: pf2iw %mm2, %mm4 +0x0f 0x0f 0xe2 0x1c + +# CHECK: pi2fd %mm3, %mm1 +0x0f 0x0f 0xcb 0x0d + +# CHECK: pf2id (%rdi,%r8), %mm1 +0x42 0x0f 0x0f 0x0c 0x07 0x1d + +# CHECK: pfnacc 16(%eax,%ebx,4), %mm0 +0x67 0x0f 0x0f 0x44 0x98 0x10 0x8a + +# CHECK: pfsub %mm1, %mm0 +0x0f 0x0f 0xc1 0x9a + +# CHECK: pfsubr %mm2, %mm1 +0x0f 0x0f 0xca 0xaa + +# CHECK: pswapd %mm1, %mm3 +0x0f 0x0f 0xd9 0xbb + +# CHECK: pfpnacc %mm0, %mm2 +0x0f 0x0f 0xd0 0x8e + +# CHECK: pfadd %mm4, %mm3 +0x0f 0x0f 0xdc 0x9e + +# CHECK: pfacc %mm1, %mm2 +0x0f 0x0f 0xd1 0xae + +# CHECK: pavgusb %mm1, %mm3 +0x0f 0x0f 0xd9 0xbf |

