fix a regression introduced in r115243, in which the instruction
authorChris Lattner <sabre@nondot.org>
Sat, 2 Oct 2010 21:32:15 +0000 (21:32 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 2 Oct 2010 21:32:15 +0000 (21:32 +0000)
backing int_x86_ssse3_pshuf_w got removed.  This caused PR8280.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115422 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrMMX.td
test/MC/X86/x86-32.s

index a92776156b138d62d49433a482984ae994fdcedd..7268af834d87d52c2db4a36188b2f63a560fe8ea 100644 (file)
@@ -340,6 +340,22 @@ defm MMX_PACKUSWB : MMXI_binop_rm_int<0x67, "packuswb", int_x86_mmx_packuswb>;
 // -- Shuffle Instructions
 defm MMX_PSHUFB : SS3I_binop_rm_int_mm<0x00, "pshufb", int_x86_ssse3_pshuf_b>;
 
+def MMX_PSHUFWri : MMXIi8<0x70, MRMSrcReg,
+                          (outs VR64:$dst), (ins VR64:$src1, i32i8imm:$src2),
+                          "pshufw\t{$src2, $src1, $dst|$dst, $src1, $src2}",
+                          [(set VR64:$dst,
+                             (int_x86_ssse3_pshuf_w VR64:$src1, imm:$src2))]>;
+def MMX_PSHUFWmi : MMXIi8<0x70, MRMSrcMem,
+                          (outs VR64:$dst), (ins i64mem:$src1, i32i8imm:$src2),
+                          "pshufw\t{$src2, $src1, $dst|$dst, $src1, $src2}",
+                          [(set VR64:$dst,
+                             (int_x86_ssse3_pshuf_w (load_mmx addr:$src1),
+                                                    imm:$src2))]>;
+
+
+
+
+
 // -- Conversion Instructions
 defm MMX_CVTPS2PI : sse12_cvt_pint<0x2D, VR128, VR64, int_x86_sse_cvtps2pi,
                       f64mem, load, "cvtps2pi\t{$src, $dst|$dst, $src}",
index fd0fd750dfd5f2120fe2aebf1a221c6040e62b88..b2422847b2af1eea1e2baba29dbae340ba830591 100644 (file)
@@ -583,3 +583,5 @@ ljmp        $0x7ace,$0x7ace
 // CHECK:      decl    %eax # encoding: [0x48]
        decl %eax
 
+// CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
+pshufw $14, %mm4, %mm0