Fixed some bugs in register stack pass.
[llvm/zpu.git] / test / CodeGen / X86 / vec_insert.ll
blob4e5d445ff62394a5d83aaec0e61c8a441b4ac50e
1 ; RUN: llc < %s -march=x86 -mattr=+sse2,-sse41 | grep movss | count 1
2 ; RUN: llc < %s -march=x86 -mattr=+sse2,-sse41 | not grep pinsrw
4 define void @test(<4 x float>* %F, i32 %I) nounwind {
5         %tmp = load <4 x float>* %F             ; <<4 x float>> [#uses=1]
6         %f = sitofp i32 %I to float             ; <float> [#uses=1]
7         %tmp1 = insertelement <4 x float> %tmp, float %f, i32 0         ; <<4 x float>> [#uses=2]
8         %tmp18 = fadd <4 x float> %tmp1, %tmp1          ; <<4 x float>> [#uses=1]
9         store <4 x float> %tmp18, <4 x float>* %F
10         ret void
13 define void @test2(<4 x float>* %F, i32 %I, float %g) nounwind {
14         %tmp = load <4 x float>* %F             ; <<4 x float>> [#uses=1]
15         %f = sitofp i32 %I to float             ; <float> [#uses=1]
16         %tmp1 = insertelement <4 x float> %tmp, float %f, i32 2         ; <<4 x float>> [#uses=1]
17         store <4 x float> %tmp1, <4 x float>* %F
18         ret void