Fixed some bugs in register stack pass.
[llvm/zpu.git] / test / CodeGen / X86 / 2008-10-07-SSEISelBug.ll
blobbc5761288c9b58add083368fea0a95abcc57af32
1 ; RUN: llc < %s -march=x86 -mattr=+sse,-sse2
3 define <4 x float> @f(float %w) nounwind {
4 entry:
5         %retval = alloca <4 x float>            ; <<4 x float>*> [#uses=2]
6         %w.addr = alloca float          ; <float*> [#uses=2]
7         %.compoundliteral = alloca <4 x float>          ; <<4 x float>*> [#uses=2]
8         store float %w, float* %w.addr
9         %tmp = load float* %w.addr              ; <float> [#uses=1]
10         %0 = insertelement <4 x float> undef, float %tmp, i32 0         ; <<4 x float>> [#uses=1]
11         %1 = insertelement <4 x float> %0, float 0.000000e+00, i32 1            ; <<4 x float>> [#uses=1]
12         %2 = insertelement <4 x float> %1, float 0.000000e+00, i32 2            ; <<4 x float>> [#uses=1]
13         %3 = insertelement <4 x float> %2, float 0.000000e+00, i32 3            ; <<4 x float>> [#uses=1]
14         store <4 x float> %3, <4 x float>* %.compoundliteral
15         %tmp1 = load <4 x float>* %.compoundliteral             ; <<4 x float>> [#uses=1]
16         store <4 x float> %tmp1, <4 x float>* %retval
17         br label %return
19 return:         ; preds = %entry
20         %4 = load <4 x float>* %retval          ; <<4 x float>> [#uses=1]
21         ret <4 x float> %4