1 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | \
2 ; RUN: grep eqv | wc -l | grep 3
3 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 -mcpu=g5 | \
4 ; RUN: grep andc | wc -l | grep 3
5 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | \
6 ; RUN: grep orc | wc -l | grep 2
7 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 -mcpu=g5 | \
8 ; RUN: grep nor | wc -l | grep 3
9 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | \
10 ; RUN: grep nand | wc -l | grep 1
12 int %EQV1(int %X, int %Y) {
18 int %EQV2(int %X, int %Y) {
24 int %EQV3(int %X, int %Y) {
30 int %ANDC1(int %X, int %Y) {
36 int %ANDC2(int %X, int %Y) {
42 int %ORC1(int %X, int %Y) {
48 int %ORC2(int %X, int %Y) {
59 int %NOR2(int %X, int %Y) {
65 int %NAND1(int %X, int %Y) {
71 void %VNOR(<4 x float>* %P, <4 x float>* %Q) {
72 %tmp = load <4 x float>* %P
73 %tmp = cast <4 x float> %tmp to <4 x int>
74 %tmp2 = load <4 x float>* %Q
75 %tmp2 = cast <4 x float> %tmp2 to <4 x int>
76 %tmp3 = or <4 x int> %tmp, %tmp2
77 %tmp4 = xor <4 x int> %tmp3, < int -1, int -1, int -1, int -1 >
78 %tmp4 = cast <4 x int> %tmp4 to <4 x float>
79 store <4 x float> %tmp4, <4 x float>* %P
83 void %VANDC(<4 x float>* %P, <4 x float>* %Q) {
84 %tmp = load <4 x float>* %P
85 %tmp = cast <4 x float> %tmp to <4 x int>
86 %tmp2 = load <4 x float>* %Q
87 %tmp2 = cast <4 x float> %tmp2 to <4 x int>
88 %tmp4 = xor <4 x int> %tmp2, < int -1, int -1, int -1, int -1 >
89 %tmp3 = and <4 x int> %tmp, %tmp4
90 %tmp4 = cast <4 x int> %tmp3 to <4 x float>
91 store <4 x float> %tmp4, <4 x float>* %P