xref: /llvm-project/llvm/test/CodeGen/PowerPC/vec_cmpd.ll (revision a538b0f023e858d0f71a1295bb9084e851ddd361)
10cfa7b7aSKit Barton; Test the doubleword comparison instructions that were added in POWER8
20cfa7b7aSKit Barton;
3*a538b0f0SEhsan Amiri; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 < %s | FileCheck %s
4*a538b0f0SEhsan Amiri; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 -mattr=-vsx < %s | FileCheck %s
50cfa7b7aSKit Barton
60cfa7b7aSKit Bartondefine <2 x i64> @v2si64_cmp(<2 x i64> %x, <2 x i64> %y) nounwind readnone {
70cfa7b7aSKit Barton       %cmp = icmp eq <2 x i64> %x, %y
80cfa7b7aSKit Barton       %result = sext <2 x i1> %cmp to <2 x i64>
90cfa7b7aSKit Barton       ret <2 x i64> %result
100cfa7b7aSKit Barton; CHECK-LABEL: v2si64_cmp:
110cfa7b7aSKit Barton; CHECK: vcmpequd 2, 2, 3
120cfa7b7aSKit Barton}
130cfa7b7aSKit Barton
140cfa7b7aSKit Bartondefine <4 x i64> @v4si64_cmp(<4 x i64> %x, <4 x i64> %y) nounwind readnone {
150cfa7b7aSKit Barton       %cmp = icmp eq <4 x i64> %x, %y
160cfa7b7aSKit Barton       %result = sext <4 x i1> %cmp to <4 x i64>
170cfa7b7aSKit Barton       ret <4 x i64> %result
180cfa7b7aSKit Barton; CHECK-LABEL: v4si64_cmp
190cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
200cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
210cfa7b7aSKit Barton}
220cfa7b7aSKit Barton
230cfa7b7aSKit Bartondefine <8 x i64> @v8si64_cmp(<8 x i64> %x, <8 x i64> %y) nounwind readnone {
240cfa7b7aSKit Barton       %cmp = icmp eq <8 x i64> %x, %y
250cfa7b7aSKit Barton       %result = sext <8 x i1> %cmp to <8 x i64>
260cfa7b7aSKit Barton       ret <8 x i64> %result
270cfa7b7aSKit Barton; CHECK-LABEL: v8si64_cmp
280cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
290cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
300cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
310cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
320cfa7b7aSKit Barton}
330cfa7b7aSKit Barton
340cfa7b7aSKit Bartondefine <16 x i64> @v16si64_cmp(<16 x i64> %x, <16 x i64> %y) nounwind readnone {
350cfa7b7aSKit Barton       %cmp = icmp eq <16 x i64> %x, %y
360cfa7b7aSKit Barton       %result = sext <16 x i1> %cmp to <16 x i64>
370cfa7b7aSKit Barton       ret <16 x i64> %result
380cfa7b7aSKit Barton; CHECK-LABEL: v16si64_cmp
390cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
400cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
410cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
420cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
430cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
440cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
450cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
460cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
470cfa7b7aSKit Barton}
480cfa7b7aSKit Barton
490cfa7b7aSKit Bartondefine <32 x i64> @v32si64_cmp(<32 x i64> %x, <32 x i64> %y) nounwind readnone {
500cfa7b7aSKit Barton       %cmp = icmp eq <32 x i64> %x, %y
510cfa7b7aSKit Barton       %result = sext <32 x i1> %cmp to <32 x i64>
520cfa7b7aSKit Barton       ret <32 x i64> %result
530cfa7b7aSKit Barton; CHECK-LABEL: v32si64_cmp
540cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
550cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
560cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
570cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
580cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
590cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
600cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
610cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
620cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
630cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
640cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
650cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
660cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
670cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
680cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
690cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
700cfa7b7aSKit Barton}
710cfa7b7aSKit Barton
720cfa7b7aSKit Barton; Greater than signed
730cfa7b7aSKit Bartondefine <2 x i64> @v2si64_cmp_gt(<2 x i64> %x, <2 x i64> %y) nounwind readnone {
740cfa7b7aSKit Barton       %cmp = icmp sgt <2 x i64> %x, %y
750cfa7b7aSKit Barton       %result = sext <2 x i1> %cmp to <2 x i64>
760cfa7b7aSKit Barton       ret <2 x i64> %result
770cfa7b7aSKit Barton; CHECK-LABEL: v2si64_cmp_gt
780cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
790cfa7b7aSKit Barton}
800cfa7b7aSKit Barton
810cfa7b7aSKit Bartondefine <4 x i64> @v4si64_cmp_gt(<4 x i64> %x, <4 x i64> %y) nounwind readnone {
820cfa7b7aSKit Barton       %cmp = icmp sgt <4 x i64> %x, %y
830cfa7b7aSKit Barton       %result = sext <4 x i1> %cmp to <4 x i64>
840cfa7b7aSKit Barton       ret <4 x i64> %result
850cfa7b7aSKit Barton; CHECK-LABEL: v4si64_cmp_gt
860cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
870cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
880cfa7b7aSKit Barton}
890cfa7b7aSKit Barton
900cfa7b7aSKit Bartondefine <8 x i64> @v8si64_cmp_gt(<8 x i64> %x, <8 x i64> %y) nounwind readnone {
910cfa7b7aSKit Barton       %cmp = icmp sgt <8 x i64> %x, %y
920cfa7b7aSKit Barton       %result = sext <8 x i1> %cmp to <8 x i64>
930cfa7b7aSKit Barton       ret <8 x i64> %result
940cfa7b7aSKit Barton; CHECK-LABEL: v8si64_cmp_gt
950cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
960cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
970cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
980cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
990cfa7b7aSKit Barton}
1000cfa7b7aSKit Barton
1010cfa7b7aSKit Bartondefine <16 x i64> @v16si64_cmp_gt(<16 x i64> %x, <16 x i64> %y) nounwind readnone {
1020cfa7b7aSKit Barton       %cmp = icmp sgt <16 x i64> %x, %y
1030cfa7b7aSKit Barton       %result = sext <16 x i1> %cmp to <16 x i64>
1040cfa7b7aSKit Barton       ret <16 x i64> %result
1050cfa7b7aSKit Barton; CHECK-LABEL: v16si64_cmp_gt
1060cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1070cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1080cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1090cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1100cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1110cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1120cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1130cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1140cfa7b7aSKit Barton}
1150cfa7b7aSKit Barton
1160cfa7b7aSKit Bartondefine <32 x i64> @v32si64_cmp_gt(<32 x i64> %x, <32 x i64> %y) nounwind readnone {
1170cfa7b7aSKit Barton       %cmp = icmp sgt <32 x i64> %x, %y
1180cfa7b7aSKit Barton       %result = sext <32 x i1> %cmp to <32 x i64>
1190cfa7b7aSKit Barton       ret <32 x i64> %result
1200cfa7b7aSKit Barton; CHECK-LABEL: v32si64_cmp_gt
1210cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1220cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1230cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1240cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1250cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1260cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1270cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1280cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1290cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1300cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1310cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1320cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1330cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1340cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1350cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1360cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1370cfa7b7aSKit Barton}
1380cfa7b7aSKit Barton
1390cfa7b7aSKit Barton; Greater than unsigned
1400cfa7b7aSKit Bartondefine <2 x i64> @v2ui64_cmp_gt(<2 x i64> %x, <2 x i64> %y) nounwind readnone {
1410cfa7b7aSKit Barton       %cmp = icmp ugt <2 x i64> %x, %y
1420cfa7b7aSKit Barton       %result = sext <2 x i1> %cmp to <2 x i64>
1430cfa7b7aSKit Barton       ret <2 x i64> %result
1440cfa7b7aSKit Barton; CHECK-LABEL: v2ui64_cmp_gt
1450cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1460cfa7b7aSKit Barton}
1470cfa7b7aSKit Barton
1480cfa7b7aSKit Bartondefine <4 x i64> @v4ui64_cmp_gt(<4 x i64> %x, <4 x i64> %y) nounwind readnone {
1490cfa7b7aSKit Barton       %cmp = icmp ugt <4 x i64> %x, %y
1500cfa7b7aSKit Barton       %result = sext <4 x i1> %cmp to <4 x i64>
1510cfa7b7aSKit Barton       ret <4 x i64> %result
1520cfa7b7aSKit Barton; CHECK-LABEL: v4ui64_cmp_gt
1530cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1540cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1550cfa7b7aSKit Barton}
1560cfa7b7aSKit Barton
1570cfa7b7aSKit Bartondefine <8 x i64> @v8ui64_cmp_gt(<8 x i64> %x, <8 x i64> %y) nounwind readnone {
1580cfa7b7aSKit Barton       %cmp = icmp ugt <8 x i64> %x, %y
1590cfa7b7aSKit Barton       %result = sext <8 x i1> %cmp to <8 x i64>
1600cfa7b7aSKit Barton       ret <8 x i64> %result
1610cfa7b7aSKit Barton; CHECK-LABEL: v8ui64_cmp_gt
1620cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1630cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1640cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1650cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1660cfa7b7aSKit Barton}
1670cfa7b7aSKit Barton
1680cfa7b7aSKit Bartondefine <16 x i64> @v16ui64_cmp_gt(<16 x i64> %x, <16 x i64> %y) nounwind readnone {
1690cfa7b7aSKit Barton       %cmp = icmp ugt <16 x i64> %x, %y
1700cfa7b7aSKit Barton       %result = sext <16 x i1> %cmp to <16 x i64>
1710cfa7b7aSKit Barton       ret <16 x i64> %result
1720cfa7b7aSKit Barton; CHECK-LABEL: v16ui64_cmp_gt
1730cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1740cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1750cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1760cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1770cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1780cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1790cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1800cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1810cfa7b7aSKit Barton}
1820cfa7b7aSKit Barton
1830cfa7b7aSKit Bartondefine <32 x i64> @v32ui64_cmp_gt(<32 x i64> %x, <32 x i64> %y) nounwind readnone {
1840cfa7b7aSKit Barton       %cmp = icmp ugt <32 x i64> %x, %y
1850cfa7b7aSKit Barton       %result = sext <32 x i1> %cmp to <32 x i64>
1860cfa7b7aSKit Barton       ret <32 x i64> %result
1870cfa7b7aSKit Barton; CHECK-LABEL: v32ui64_cmp_gt
1880cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1890cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1900cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1910cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1920cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1930cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1940cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1950cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1960cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1970cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1980cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
1990cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
2000cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
2010cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
2020cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
2030cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
2040cfa7b7aSKit Barton}
2050cfa7b7aSKit Barton
2060cfa7b7aSKit Barton; Check the intrinsics also
2070cfa7b7aSKit Bartondeclare <2 x i64> @llvm.ppc.altivec.vcmpequd(<2 x i64>, <2 x i64>) nounwind readnone
2080cfa7b7aSKit Bartondeclare i32 @llvm.ppc.altivec.vcmpequd.p(i32, <2 x i64>, <2 x i64>) nounwind readnone
2090cfa7b7aSKit Bartondeclare <2 x i64> @llvm.ppc.altivec.vcmpgtsd(<2 x i64>, <2 x i64>) nounwind readnone
2100cfa7b7aSKit Bartondeclare i32 @llvm.ppc.altivec.vcmpgtsd.p(i32, <2 x i64>, <2 x i64>) nounwind readnone
2110cfa7b7aSKit Bartondeclare <2 x i64> @llvm.ppc.altivec.vcmpgtud(<2 x i64>, <2 x i64>) nounwind readnone
2120cfa7b7aSKit Bartondeclare i32 @llvm.ppc.altivec.vcmpgtud.p(i32, <2 x i64>, <2 x i64>) nounwind readnone
2130cfa7b7aSKit Barton
2140cfa7b7aSKit Bartondefine <2 x i64> @test_vcmpequd(<2 x i64> %x, <2 x i64> %y) {
2150cfa7b7aSKit Barton       %tmp = tail call <2 x i64> @llvm.ppc.altivec.vcmpequd(<2 x i64> %x, <2 x i64> %y)
2160cfa7b7aSKit Barton       ret <2 x i64> %tmp
2170cfa7b7aSKit Barton; CHECK-LABEL: test_vcmpequd:
2180cfa7b7aSKit Barton; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
2190cfa7b7aSKit Barton}
2200cfa7b7aSKit Barton
2210cfa7b7aSKit Bartondefine i32 @test_vcmpequd_p(<2 x i64> %x, <2 x i64> %y) {
2220cfa7b7aSKit Barton       %tmp = tail call i32 @llvm.ppc.altivec.vcmpequd.p(i32 2, <2 x i64> %x, <2 x i64> %y)
2230cfa7b7aSKit Barton       ret i32 %tmp
2240cfa7b7aSKit Barton; CHECK-LABEL: test_vcmpequd_p:
2250cfa7b7aSKit Barton; CHECK: vcmpequd. {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
2260cfa7b7aSKit Barton}
2270cfa7b7aSKit Barton
2280cfa7b7aSKit Bartondefine <2 x i64> @test_vcmpgtsd(<2 x i64> %x, <2 x i64> %y) {
2290cfa7b7aSKit Barton       %tmp = tail call <2 x i64> @llvm.ppc.altivec.vcmpgtsd(<2 x i64> %x, <2 x i64> %y)
2300cfa7b7aSKit Barton       ret <2 x i64> %tmp
2310cfa7b7aSKit Barton; CHECK-LABEL: test_vcmpgtsd
2320cfa7b7aSKit Barton; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
2330cfa7b7aSKit Barton}
2340cfa7b7aSKit Barton
2350cfa7b7aSKit Bartondefine i32 @test_vcmpgtsd_p(<2 x i64> %x, <2 x i64> %y) {
2360cfa7b7aSKit Barton       %tmp = tail call i32 @llvm.ppc.altivec.vcmpgtsd.p(i32 2, <2 x i64> %x, <2 x i64> %y)
2370cfa7b7aSKit Barton       ret i32 %tmp
2380cfa7b7aSKit Barton; CHECK-LABEL: test_vcmpgtsd_p
2390cfa7b7aSKit Barton; CHECK: vcmpgtsd. {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
2400cfa7b7aSKit Barton}
2410cfa7b7aSKit Barton
2420cfa7b7aSKit Bartondefine <2 x i64> @test_vcmpgtud(<2 x i64> %x, <2 x i64> %y) {
2430cfa7b7aSKit Barton       %tmp = tail call <2 x i64> @llvm.ppc.altivec.vcmpgtud(<2 x i64> %x, <2 x i64> %y)
2440cfa7b7aSKit Barton       ret <2 x i64> %tmp
2450cfa7b7aSKit Barton; CHECK-LABEL: test_vcmpgtud
2460cfa7b7aSKit Barton; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
2470cfa7b7aSKit Barton}
2480cfa7b7aSKit Barton
2490cfa7b7aSKit Bartondefine i32 @test_vcmpgtud_p(<2 x i64> %x, <2 x i64> %y) {
2500cfa7b7aSKit Barton       %tmp = tail call i32 @llvm.ppc.altivec.vcmpgtud.p(i32 2, <2 x i64> %x, <2 x i64> %y)
2510cfa7b7aSKit Barton       ret i32 %tmp
2520cfa7b7aSKit Barton; CHECK-LABEL: test_vcmpgtud_p
2530cfa7b7aSKit Barton; CHECK: vcmpgtud. {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}
2540cfa7b7aSKit Barton}
2550cfa7b7aSKit Barton
2560cfa7b7aSKit Barton
2570cfa7b7aSKit Barton
2580cfa7b7aSKit Barton
259