Extend the statepoint intrinsic to allow statepoints to be marked as transitions...
[oota-llvm.git] / test / CodeGen / X86 / vec_insert-2.ll
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
4 define <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
13 define <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
22 define <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
35 define <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 }