blob: bc60baea38eda3bcb454a401df940c4cb3ef07bc [file] [log] [blame]
Reid Spencer6e87ec42007-04-16 17:36:08 +00001; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 -mcpu=g5 -o %t -f
2; RUN: grep vcmpeqfp. %t
3; RUN: not grep mfcr %t
Chris Lattner11a9ac52006-04-18 17:56:30 +00004
5; A predicate compare used immediately by a branch should not generate an mfcr.
6
7void %test(<4 x float>* %A, <4 x float>* %B) {
8 %tmp = load <4 x float>* %A
9 %tmp3 = load <4 x float>* %B
10 %tmp = tail call int %llvm.ppc.altivec.vcmpeqfp.p( int 1, <4 x float> %tmp, <4 x float> %tmp3 )
11 %tmp = seteq int %tmp, 0
12 br bool %tmp, label %cond_true, label %UnifiedReturnBlock
13
14cond_true:
15 store <4 x float> zeroinitializer, <4 x float>* %B
16 ret void
17
18UnifiedReturnBlock:
19 ret void
20}
21
22declare int %llvm.ppc.altivec.vcmpeqfp.p(int, <4 x float>, <4 x float>)
23