mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-30 07:33:23 +00:00
Fix for first part of PR2562. Generate the "pinsrw" instruction for inserts
into v4i16 vectors. llvm-svn: 53807
This commit is contained in:
parent
73f5ecdbea
commit
98b6e63176
@ -604,6 +604,8 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)
|
||||
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()) {
|
||||
|
15
test/CodeGen/X86/mmx-pinsrw.ll
Normal file
15
test/CodeGen/X86/mmx-pinsrw.ll
Normal file
@ -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
|
||||
}
|
Loading…
Reference in New Issue
Block a user