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