- PEXTRW cannot take a memory location as its first source operand.
authorEvan Cheng <evan.cheng@apple.com>
Tue, 18 Apr 2006 21:59:43 +0000 (21:59 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 18 Apr 2006 21:59:43 +0000 (21:59 +0000)
- PINSRWrmi encoding bug.

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

lib/Target/X86/X86InstrSSE.td
lib/Target/X86/X86RegisterInfo.cpp

index 99f9b6bffc156514a9d7d5c7c12989898d478252..8195602b122ed11faa8765cffbd638b5d403f26a 100644 (file)
@@ -2007,13 +2007,6 @@ def PEXTRWri : PDIi8<0xC5, MRMSrcReg,
                     "pextrw {$src2, $src1, $dst|$dst, $src1, $src2}",
                     [(set R32:$dst, (X86pextrw (v8i16 VR128:$src1),
                                      (i32 imm:$src2)))]>;
-def PEXTRWmi : PDIi8<0xC5, MRMSrcMem,
-                    (ops R32:$dst, i128mem:$src1, i32i8imm:$src2),
-                    "pextrw {$src2, $src1, $dst|$dst, $src1, $src2}",
-                    [(set R32:$dst, (X86pextrw
-                                     (bc_v8i16 (loadv2i64 addr:$src1)),
-                                     (i32 imm:$src2)))]>;
-
 let isTwoAddress = 1 in {
 def PINSRWrri : PDIi8<0xC4, MRMSrcReg,
                      (ops VR128:$dst, VR128:$src1, R32:$src2, i32i8imm:$src3),
index da468eade44fbeb6b586854781a77415a358bff9..8134033cd5178fc21714f2b1ecb3540442a03179 100644 (file)
@@ -572,8 +572,7 @@ MachineInstr* X86RegisterInfo::foldMemoryOperand(MachineInstr* MI,
     case X86::PUNPCKHWDrr:return MakeRMInst(X86::PUNPCKHWDrm, FrameIndex, MI);
     case X86::PUNPCKHDQrr:return MakeRMInst(X86::PUNPCKHDQrm, FrameIndex, MI);
     case X86::PUNPCKHQDQrr:return MakeRMInst(X86::PUNPCKHQDQrm, FrameIndex, MI);
-    case X86::PEXTRWri:   return MakeRMInst(X86::PEXTRWmi, FrameIndex, MI);
-    case X86::PINSRWrri:  return MakeRMInst(X86::PINSRWrmi, FrameIndex, MI);
+    case X86::PINSRWrri:  return MakeRMIInst(X86::PINSRWrmi, FrameIndex, MI);
     // Alias packed SSE instructions
     case X86::MOVSS2PSrr:return MakeRMInst(X86::MOVSS2PSrm, FrameIndex, MI);
     case X86::MOVSD2PDrr:return MakeRMInst(X86::MOVSD2PDrm, FrameIndex, MI);