X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FPowerPC%2Fvec_br_cmp.ll;h=c34d850c0ac704df72664252064b0ee47f3749f7;hb=e03aac601f67c80dec7ef776173b768e08d4b1fe;hp=3ce99aa54aae765d8afbe68238168ba5597fbb83;hpb=99590420def002bb6d3c5b864b03e5b4ebd8bbe1;p=oota-llvm.git diff --git a/test/CodeGen/PowerPC/vec_br_cmp.ll b/test/CodeGen/PowerPC/vec_br_cmp.ll index 3ce99aa54aa..c34d850c0ac 100644 --- a/test/CodeGen/PowerPC/vec_br_cmp.ll +++ b/test/CodeGen/PowerPC/vec_br_cmp.ll @@ -1,22 +1,22 @@ -; RUN: llvm-as < %s | llc -march=ppc32 -mcpu=g5 | grep vcmpeqfp. && -; RUN: llvm-as < %s | llc -march=ppc32 -mcpu=g5 | not grep mfcr +; RUN: llc < %s -march=ppc32 -mcpu=g5 -o %t +; RUN: grep vcmpeqfp. %t +; RUN: not grep mfcr %t ; A predicate compare used immediately by a branch should not generate an mfcr. -void %test(<4 x float>* %A, <4 x float>* %B) { - %tmp = load <4 x float>* %A - %tmp3 = load <4 x float>* %B - %tmp = tail call int %llvm.ppc.altivec.vcmpeqfp.p( int 1, <4 x float> %tmp, <4 x float> %tmp3 ) - %tmp = seteq int %tmp, 0 - br bool %tmp, label %cond_true, label %UnifiedReturnBlock +define void @test(<4 x float>* %A, <4 x float>* %B) { + %tmp = load <4 x float>* %A ; <<4 x float>> [#uses=1] + %tmp3 = load <4 x float>* %B ; <<4 x float>> [#uses=1] + %tmp.upgrd.1 = tail call i32 @llvm.ppc.altivec.vcmpeqfp.p( i32 1, <4 x float> %tmp, <4 x float> %tmp3 ) ; [#uses=1] + %tmp.upgrd.2 = icmp eq i32 %tmp.upgrd.1, 0 ; [#uses=1] + br i1 %tmp.upgrd.2, label %cond_true, label %UnifiedReturnBlock -cond_true: - store <4 x float> zeroinitializer, <4 x float>* %B - ret void +cond_true: ; preds = %0 + store <4 x float> zeroinitializer, <4 x float>* %B + ret void -UnifiedReturnBlock: - ret void +UnifiedReturnBlock: ; preds = %0 + ret void } -declare int %llvm.ppc.altivec.vcmpeqfp.p(int, <4 x float>, <4 x float>) - +declare i32 @llvm.ppc.altivec.vcmpeqfp.p(i32, <4 x float>, <4 x float>)