1; RUN: llc < %s -march=x86 -mattr=+sse2,-sse4.1 | FileCheck --check-prefix=X32 %s
2; RUN: llc < %s -march=x86-64 -mattr=+sse2,-sse4.1 | FileCheck --check-prefix=X64 %s
3
4define <4 x float> @t1(float %s, <4 x float> %tmp) nounwind {
5; X32-LABEL: t1:
6; X32: shufps $36
7; X32: ret
8
9  %tmp1 = insertelement <4 x float> %tmp, float %s, i32 3
10  ret <4 x float> %tmp1
11}
12
13define <4 x i32> @t2(i32 %s, <4 x i32> %tmp) nounwind {
14; X32-LABEL: t2:
15; X32: shufps $36
16; X32: ret
17
18  %tmp1 = insertelement <4 x i32> %tmp, i32 %s, i32 3
19  ret <4 x i32> %tmp1
20}
21
22define <2 x double> @t3(double %s, <2 x double> %tmp) nounwind {
23; X32-LABEL: t3:
24; X32: movhpd
25; X32: ret
26
27; X64-LABEL: t3:
28; X64: unpcklpd
29; X64: ret
30
31  %tmp1 = insertelement <2 x double> %tmp, double %s, i32 1
32  ret <2 x double> %tmp1
33}
34
35define <8 x i16> @t4(i16 %s, <8 x i16> %tmp) nounwind {
36; X32-LABEL: t4:
37; X32: pinsrw
38; X32: ret
39
40  %tmp1 = insertelement <8 x i16> %tmp, i16 %s, i32 5
41  ret <8 x i16> %tmp1
42}
43