From f0d4e3d7c0c4cceaf5667846637f8f4bfd72e0c5 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Tue, 18 Apr 2006 21:59:43 +0000 Subject: [PATCH] - PEXTRW cannot take a memory location as its first source operand. - 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 | 7 ------- lib/Target/X86/X86RegisterInfo.cpp | 3 +-- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td index 99f9b6bffc1..8195602b122 100644 --- a/lib/Target/X86/X86InstrSSE.td +++ b/lib/Target/X86/X86InstrSSE.td @@ -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), diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index da468eade44..8134033cd51 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -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);