[llvm-commits] [llvm] r53807 - in /llvm/trunk: lib/Target/X86/X86ISelLowering.cpp test/CodeGen/X86/mmx-pinsrw.ll

Bill Wendling isanbard at gmail.com
Sat Jul 19 19:32:23 PDT 2008


Author: void
Date: Sat Jul 19 21:32:23 2008
New Revision: 53807

URL: http://llvm.org/viewvc/llvm-project?rev=53807&view=rev
Log:
Fix for first part of PR2562. Generate the "pinsrw" instruction for inserts
into v4i16 vectors.

Added:
    llvm/trunk/test/CodeGen/X86/mmx-pinsrw.ll
Modified:
    llvm/trunk/lib/Target/X86/X86ISelLowering.cpp

Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=53807&r1=53806&r2=53807&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Sat Jul 19 21:32:23 2008
@@ -604,6 +604,8 @@
     setOperationAction(ISD::SCALAR_TO_VECTOR,   MVT::v8i8,  Custom);
     setOperationAction(ISD::SCALAR_TO_VECTOR,   MVT::v4i16, Custom);
     setOperationAction(ISD::SCALAR_TO_VECTOR,   MVT::v1i64, Custom);
+
+    setOperationAction(ISD::INSERT_VECTOR_ELT,  MVT::v4i16, Custom);
   }
 
   if (Subtarget->hasSSE1()) {

Added: llvm/trunk/test/CodeGen/X86/mmx-pinsrw.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mmx-pinsrw.ll?rev=53807&view=auto

==============================================================================
--- llvm/trunk/test/CodeGen/X86/mmx-pinsrw.ll (added)
+++ llvm/trunk/test/CodeGen/X86/mmx-pinsrw.ll Sat Jul 19 21:32:23 2008
@@ -0,0 +1,15 @@
+; RUN: llvm-as < %s | llc -march=x86 -mattr=+mmx | grep pinsrw | count 1
+; PR2562
+
+external global i16		; <i16*>:0 [#uses=1]
+external global <4 x i16>		; <<4 x i16>*>:1 [#uses=2]
+
+declare void @abort()
+
+define void @""() {
+	load i16* @0		; <i16>:1 [#uses=1]
+	load <4 x i16>* @1		; <<4 x i16>>:2 [#uses=1]
+	insertelement <4 x i16> %2, i16 %1, i32 0		; <<4 x i16>>:3 [#uses=1]
+	store <4 x i16> %3, <4 x i16>* @1
+	ret void
+}





More information about the llvm-commits mailing list