[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / X86 / 2008-10-07-SSEISelBug.ll
blob258c999d3f383e48cbd372528d61cbe689861697
1 ; RUN: llc < %s -mtriple=i686-- -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, 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>, <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>, <4 x float>* %retval             ; <<4 x float>> [#uses=1]
21         ret <4 x float> %4