the immediate field of pshufw is actually an 8-bit field, not a 8-bit field that...
authorChris Lattner <sabre@nondot.org>
Sun, 3 Oct 2010 19:09:13 +0000 (19:09 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 3 Oct 2010 19:09:13 +0000 (19:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115473 91177308-0d34-0410-b5e6-96231b3b80d8

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

index 8650bbc8c7ab645d28e7b8a5ba0432c1ff21ca35..2b18e7fa4be2e3f8f8f9f6a52338cf69df4abd51 100644 (file)
@@ -631,7 +631,7 @@ let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
               Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty,
                          llvm_v16i8_ty], [IntrNoMem]>;
   def int_x86_ssse3_pshuf_w         : GCCBuiltin<"__builtin_ia32_pshufw">,
-              Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i32_ty],
+              Intrinsic<[llvm_x86mmx_ty], [llvm_x86mmx_ty, llvm_i8_ty],
                          [IntrNoMem]>;
 }
 
index 99e749a58e6bcfc7e8a6af8efb57e47efa9ba0dc..c78099eca416008c5e32d3d26419c18657f57dd5 100644 (file)
@@ -339,12 +339,12 @@ defm MMX_PACKUSWB : MMXI_binop_rm_int<0x67, "packuswb", int_x86_mmx_packuswb>;
 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),
+                          (outs VR64:$dst), (ins VR64:$src1, i8imm:$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),
+                          (outs VR64:$dst), (ins i64mem:$src1, i8imm:$src2),
                           "pshufw\t{$src2, $src1, $dst|$dst, $src1, $src2}",
                           [(set VR64:$dst,
                              (int_x86_ssse3_pshuf_w (load_mmx addr:$src1),
index b2422847b2af1eea1e2baba29dbae340ba830591..2391028feeefdf3b7d16397ad6e0fceccfc3c98f 100644 (file)
@@ -585,3 +585,8 @@ ljmp        $0x7ace,$0x7ace
 
 // CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
 pshufw $14, %mm4, %mm0
+
+// CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a]
+// PR8288
+pshufw $90, %mm4, %mm0
+