aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2011-01-11 17:04:55 +0000
committerChris Lattner <sabre@nondot.org>2011-01-11 17:04:55 +0000
commit3a5004dc3ee789bcbafd5b9733d3302e73e1187d (patch)
treedf1f22bbab5be61b1521bb592bcf0d23b80b932f
parent3771dd041f6a68bef08b6f685a41d1d54f4e8b9d (diff)
Fix PR8946, a missing reg/reg form of movdqu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123242 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/X86InstrSSE.td4
-rw-r--r--test/MC/X86/x86-64.s2
2 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td
index 9c20e84271..e9bfbeb0b6 100644
--- a/lib/Target/X86/X86InstrSSE.td
+++ b/lib/Target/X86/X86InstrSSE.td
@@ -2201,6 +2201,10 @@ let neverHasSideEffects = 1 in
def MOVDQArr : PDI<0x6F, MRMSrcReg, (outs VR128:$dst), (ins VR128:$src),
"movdqa\t{$src, $dst|$dst, $src}", []>;
+def MOVDQUrr : I<0x6F, MRMSrcReg, (outs VR128:$dst), (ins VR128:$src),
+ "movdqu\t{$src, $dst|$dst, $src}",
+ []>, XS, Requires<[HasSSE2]>;
+
let canFoldAsLoad = 1, mayLoad = 1 in {
def MOVDQArm : PDI<0x6F, MRMSrcMem, (outs VR128:$dst), (ins i128mem:$src),
"movdqa\t{$src, $dst|$dst, $src}",
diff --git a/test/MC/X86/x86-64.s b/test/MC/X86/x86-64.s
index 2eb2aded6a..ed3162c0a9 100644
--- a/test/MC/X86/x86-64.s
+++ b/test/MC/X86/x86-64.s
@@ -924,3 +924,5 @@ data16 // CHECK: data16 # encoding: [0x66]
// PR8855
movq 18446744073709551615,%rbx // CHECK: movq -1, %rbx
+// PR8946
+movdqu %xmm0, %xmm1 // CHECK: movdqu %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8]