X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FX86%2Fvec_ins_extract.ll;h=e92f46dbabb5b6d57d0aa08bf10c8e8c55cccc65;hb=7472456fe973adfd371890fddf16d087569e90a5;hp=86f13069de29736f6a6df951ad33c7efd92a2d49;hpb=33eefffb2b25b5f4a313f08fa7c57ddfcbccf36e;p=oota-llvm.git diff --git a/test/CodeGen/X86/vec_ins_extract.ll b/test/CodeGen/X86/vec_ins_extract.ll index 86f13069de2..e92f46dbabb 100644 --- a/test/CodeGen/X86/vec_ins_extract.ll +++ b/test/CodeGen/X86/vec_ins_extract.ll @@ -1,15 +1,16 @@ -; RUN: llvm-as < %s | opt -scalarrepl -instcombine | \ +; RUN: opt < %s -scalarrepl -instcombine | \ ; RUN: llc -march=x86 -mcpu=yonah | not grep sub.*esp ; This checks that various insert/extract idiom work without going to the ; stack. +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32" define void @test(<4 x float>* %F, float %f) { entry: - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] - %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] + %tmp = load <4 x float>, <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp3 = fadd <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] %tmp10 = insertelement <4 x float> %tmp3, float %f, i32 0 ; <<4 x float>> [#uses=2] - %tmp6 = add <4 x float> %tmp10, %tmp10 ; <<4 x float>> [#uses=1] + %tmp6 = fadd <4 x float> %tmp10, %tmp10 ; <<4 x float>> [#uses=1] store <4 x float> %tmp6, <4 x float>* %F ret void } @@ -17,13 +18,13 @@ entry: define void @test2(<4 x float>* %F, float %f) { entry: %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=3] - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] - %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] + %tmp = load <4 x float>, <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp3 = fadd <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] store <4 x float> %tmp3, <4 x float>* %G - %tmp.upgrd.1 = getelementptr <4 x float>* %G, i32 0, i32 2 ; [#uses=1] + %tmp.upgrd.1 = getelementptr <4 x float>, <4 x float>* %G, i32 0, i32 2 ; [#uses=1] store float %f, float* %tmp.upgrd.1 - %tmp4 = load <4 x float>* %G ; <<4 x float>> [#uses=2] - %tmp6 = add <4 x float> %tmp4, %tmp4 ; <<4 x float>> [#uses=1] + %tmp4 = load <4 x float>, <4 x float>* %G ; <<4 x float>> [#uses=2] + %tmp6 = fadd <4 x float> %tmp4, %tmp4 ; <<4 x float>> [#uses=1] store <4 x float> %tmp6, <4 x float>* %F ret void } @@ -31,21 +32,21 @@ entry: define void @test3(<4 x float>* %F, float* %f) { entry: %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=2] - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] - %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] + %tmp = load <4 x float>, <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp3 = fadd <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] store <4 x float> %tmp3, <4 x float>* %G - %tmp.upgrd.2 = getelementptr <4 x float>* %G, i32 0, i32 2 ; [#uses=1] - %tmp.upgrd.3 = load float* %tmp.upgrd.2 ; [#uses=1] + %tmp.upgrd.2 = getelementptr <4 x float>, <4 x float>* %G, i32 0, i32 2 ; [#uses=1] + %tmp.upgrd.3 = load float, float* %tmp.upgrd.2 ; [#uses=1] store float %tmp.upgrd.3, float* %f ret void } define void @test4(<4 x float>* %F, float* %f) { entry: - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp = load <4 x float>, <4 x float>* %F ; <<4 x float>> [#uses=2] %tmp5.lhs = extractelement <4 x float> %tmp, i32 0 ; [#uses=1] %tmp5.rhs = extractelement <4 x float> %tmp, i32 0 ; [#uses=1] - %tmp5 = add float %tmp5.lhs, %tmp5.rhs ; [#uses=1] + %tmp5 = fadd float %tmp5.lhs, %tmp5.rhs ; [#uses=1] store float %tmp5, float* %f ret void }