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 } 43