188cdbeabSAlbion Fung; Test the quadword comparison instructions that were added in POWER10. 288cdbeabSAlbion Fung; 388cdbeabSAlbion Fung; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \ 488cdbeabSAlbion Fung; RUN: -mcpu=pwr10 < %s | FileCheck %s 588cdbeabSAlbion Fung; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \ 688cdbeabSAlbion Fung; RUN: -mcpu=pwr10 -mattr=-vsx < %s | FileCheck %s 788cdbeabSAlbion Fung; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \ 888cdbeabSAlbion Fung; RUN: -mcpu=pwr10 < %s | FileCheck %s 988cdbeabSAlbion Fungdefine <1 x i128> @v1si128_cmp(<1 x i128> %x, <1 x i128> %y) nounwind readnone { 1088cdbeabSAlbion Fung %cmp = icmp eq <1 x i128> %x, %y 1188cdbeabSAlbion Fung %result = sext <1 x i1> %cmp to <1 x i128> 1288cdbeabSAlbion Fung ret <1 x i128> %result 1388cdbeabSAlbion Fung; CHECK-LABEL: v1si128_cmp: 1488cdbeabSAlbion Fung; CHECK: vcmpequq 2, 2, 3 1588cdbeabSAlbion Fung} 1688cdbeabSAlbion Fung 1788cdbeabSAlbion Fungdefine <2 x i128> @v2si128_cmp(<2 x i128> %x, <2 x i128> %y) nounwind readnone { 1888cdbeabSAlbion Fung %cmp = icmp eq <2 x i128> %x, %y 1988cdbeabSAlbion Fung %result = sext <2 x i1> %cmp to <2 x i128> 2088cdbeabSAlbion Fung ret <2 x i128> %result 2188cdbeabSAlbion Fung; CHECK-LABEL: v2si128_cmp 2288cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 2388cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 2488cdbeabSAlbion Fung; CHECK: blr 2588cdbeabSAlbion Fung} 2688cdbeabSAlbion Fung 2788cdbeabSAlbion Fungdefine <4 x i128> @v4si128_cmp(<4 x i128> %x, <4 x i128> %y) nounwind readnone { 2888cdbeabSAlbion Fung %cmp = icmp eq <4 x i128> %x, %y 2988cdbeabSAlbion Fung %result = sext <4 x i1> %cmp to <4 x i128> 3088cdbeabSAlbion Fung ret <4 x i128> %result 3188cdbeabSAlbion Fung; CHECK-LABEL: v4si128_cmp 3288cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 3388cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 3488cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 3588cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 3688cdbeabSAlbion Fung; CHECK: blr 3788cdbeabSAlbion Fung} 3888cdbeabSAlbion Fung 3988cdbeabSAlbion Fungdefine <8 x i128> @v8si128_cmp(<8 x i128> %x, <8 x i128> %y) nounwind readnone { 4088cdbeabSAlbion Fung %cmp = icmp eq <8 x i128> %x, %y 4188cdbeabSAlbion Fung %result = sext <8 x i1> %cmp to <8 x i128> 4288cdbeabSAlbion Fung ret <8 x i128> %result 4388cdbeabSAlbion Fung; CHECK-LABEL: v8si128_cmp 4488cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 4588cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 4688cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 4788cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 4888cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 4988cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 5088cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 5188cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 5288cdbeabSAlbion Fung; CHECK: blr 5388cdbeabSAlbion Fung} 5488cdbeabSAlbion Fung 5588cdbeabSAlbion Fungdefine <16 x i128> @v16si128_cmp(<16 x i128> %x, <16 x i128> %y) nounwind readnone { 5688cdbeabSAlbion Fung %cmp = icmp eq <16 x i128> %x, %y 5788cdbeabSAlbion Fung %result = sext <16 x i1> %cmp to <16 x i128> 5888cdbeabSAlbion Fung ret <16 x i128> %result 5988cdbeabSAlbion Fung; CHECK-LABEL: v16si128_cmp 6088cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 6188cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 6288cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 6388cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 6488cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 6588cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 6688cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 6788cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 6888cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 6988cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 7088cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 7188cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 7288cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 7388cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 7488cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 7588cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 7688cdbeabSAlbion Fung; CHECK: blr 7788cdbeabSAlbion Fung} 7888cdbeabSAlbion Fung 7988cdbeabSAlbion Fung; Greater than signed 8088cdbeabSAlbion Fungdefine <1 x i128> @v1si128_cmp_gt(<1 x i128> %x, <1 x i128> %y) nounwind readnone { 8188cdbeabSAlbion Fung %cmp = icmp sgt <1 x i128> %x, %y 8288cdbeabSAlbion Fung %result = sext <1 x i1> %cmp to <1 x i128> 8388cdbeabSAlbion Fung ret <1 x i128> %result 8488cdbeabSAlbion Fung; CHECK-LABEL: v1si128_cmp_gt 8588cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 8688cdbeabSAlbion Fung; CHECK: blr 8788cdbeabSAlbion Fung} 8888cdbeabSAlbion Fung 8988cdbeabSAlbion Fungdefine <2 x i128> @v2si128_cmp_gt(<2 x i128> %x, <2 x i128> %y) nounwind readnone { 9088cdbeabSAlbion Fung %cmp = icmp sgt <2 x i128> %x, %y 9188cdbeabSAlbion Fung %result = sext <2 x i1> %cmp to <2 x i128> 9288cdbeabSAlbion Fung ret <2 x i128> %result 9388cdbeabSAlbion Fung; CHECK-LABEL: v2si128_cmp_gt 9488cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 9588cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 9688cdbeabSAlbion Fung; CHECK: blr 9788cdbeabSAlbion Fung} 9888cdbeabSAlbion Fung 9988cdbeabSAlbion Fungdefine <4 x i128> @v4si128_cmp_gt(<4 x i128> %x, <4 x i128> %y) nounwind readnone { 10088cdbeabSAlbion Fung %cmp = icmp sgt <4 x i128> %x, %y 10188cdbeabSAlbion Fung %result = sext <4 x i1> %cmp to <4 x i128> 10288cdbeabSAlbion Fung ret <4 x i128> %result 10388cdbeabSAlbion Fung; CHECK-LABEL: v4si128_cmp_gt 10488cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 10588cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 10688cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 10788cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 10888cdbeabSAlbion Fung; CHECK: blr 10988cdbeabSAlbion Fung} 11088cdbeabSAlbion Fung 11188cdbeabSAlbion Fungdefine <8 x i128> @v8si128_cmp_gt(<8 x i128> %x, <8 x i128> %y) nounwind readnone { 11288cdbeabSAlbion Fung %cmp = icmp sgt <8 x i128> %x, %y 11388cdbeabSAlbion Fung %result = sext <8 x i1> %cmp to <8 x i128> 11488cdbeabSAlbion Fung ret <8 x i128> %result 11588cdbeabSAlbion Fung; CHECK-LABEL: v8si128_cmp_gt 11688cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 11788cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 11888cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 11988cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 12088cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 12188cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 12288cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 12388cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 12488cdbeabSAlbion Fung; CHECK: blr 12588cdbeabSAlbion Fung} 12688cdbeabSAlbion Fung 12788cdbeabSAlbion Fungdefine <16 x i128> @v16si128_cmp_gt(<16 x i128> %x, <16 x i128> %y) nounwind readnone { 12888cdbeabSAlbion Fung %cmp = icmp sgt <16 x i128> %x, %y 12988cdbeabSAlbion Fung %result = sext <16 x i1> %cmp to <16 x i128> 13088cdbeabSAlbion Fung ret <16 x i128> %result 13188cdbeabSAlbion Fung; CHECK-LABEL: v16si128_cmp_gt 13288cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 13388cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 13488cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 13588cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 13688cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 13788cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 13888cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 13988cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 14088cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 14188cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 14288cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 14388cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 14488cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 14588cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 14688cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 14788cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 14888cdbeabSAlbion Fung; CHECK: blr 14988cdbeabSAlbion Fung} 15088cdbeabSAlbion Fung 15188cdbeabSAlbion Fung; Greater than unsigned 15288cdbeabSAlbion Fungdefine <1 x i128> @v1ui128_cmp_gt(<1 x i128> %x, <1 x i128> %y) nounwind readnone { 15388cdbeabSAlbion Fung %cmp = icmp ugt <1 x i128> %x, %y 15488cdbeabSAlbion Fung %result = sext <1 x i1> %cmp to <1 x i128> 15588cdbeabSAlbion Fung ret <1 x i128> %result 15688cdbeabSAlbion Fung; CHECK-LABEL: v1ui128_cmp_gt 15788cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 15888cdbeabSAlbion Fung; CHECK: blr 15988cdbeabSAlbion Fung} 16088cdbeabSAlbion Fung 16188cdbeabSAlbion Fungdefine <2 x i128> @v2ui128_cmp_gt(<2 x i128> %x, <2 x i128> %y) nounwind readnone { 16288cdbeabSAlbion Fung %cmp = icmp ugt <2 x i128> %x, %y 16388cdbeabSAlbion Fung %result = sext <2 x i1> %cmp to <2 x i128> 16488cdbeabSAlbion Fung ret <2 x i128> %result 16588cdbeabSAlbion Fung; CHECK-LABEL: v2ui128_cmp_gt 16688cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 16788cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 16888cdbeabSAlbion Fung; CHECK: blr 16988cdbeabSAlbion Fung} 17088cdbeabSAlbion Fung 17188cdbeabSAlbion Fungdefine <4 x i128> @v4ui128_cmp_gt(<4 x i128> %x, <4 x i128> %y) nounwind readnone { 17288cdbeabSAlbion Fung %cmp = icmp ugt <4 x i128> %x, %y 17388cdbeabSAlbion Fung %result = sext <4 x i1> %cmp to <4 x i128> 17488cdbeabSAlbion Fung ret <4 x i128> %result 17588cdbeabSAlbion Fung; CHECK-LABEL: v4ui128_cmp_gt 17688cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 17788cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 17888cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 17988cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 18088cdbeabSAlbion Fung; CHECK: blr 18188cdbeabSAlbion Fung} 18288cdbeabSAlbion Fung 18388cdbeabSAlbion Fungdefine <8 x i128> @v8ui128_cmp_gt(<8 x i128> %x, <8 x i128> %y) nounwind readnone { 18488cdbeabSAlbion Fung %cmp = icmp ugt <8 x i128> %x, %y 18588cdbeabSAlbion Fung %result = sext <8 x i1> %cmp to <8 x i128> 18688cdbeabSAlbion Fung ret <8 x i128> %result 18788cdbeabSAlbion Fung; CHECK-LABEL: v8ui128_cmp_gt 18888cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 18988cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 19088cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 19188cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 19288cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 19388cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 19488cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 19588cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 19688cdbeabSAlbion Fung; CHECK: blr 19788cdbeabSAlbion Fung} 19888cdbeabSAlbion Fung 19988cdbeabSAlbion Fungdefine <16 x i128> @v16ui128_cmp_gt(<16 x i128> %x, <16 x i128> %y) nounwind readnone { 20088cdbeabSAlbion Fung %cmp = icmp ugt <16 x i128> %x, %y 20188cdbeabSAlbion Fung %result = sext <16 x i1> %cmp to <16 x i128> 20288cdbeabSAlbion Fung ret <16 x i128> %result 20388cdbeabSAlbion Fung; CHECK-LABEL: v16ui128_cmp_gt 20488cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 20588cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 20688cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 20788cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 20888cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 20988cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 21088cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 21188cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 21288cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 21388cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 21488cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 21588cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 21688cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 21788cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 21888cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 21988cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 22088cdbeabSAlbion Fung; CHECK: blr 22188cdbeabSAlbion Fung} 22288cdbeabSAlbion Fung 22388cdbeabSAlbion Fung; Check the intrinsics also 22488cdbeabSAlbion Fungdeclare <1 x i128> @llvm.ppc.altivec.vcmpequq(<1 x i128>, <1 x i128>) nounwind readnone 22588cdbeabSAlbion Fungdeclare <1 x i128> @llvm.ppc.altivec.vcmpgtsq(<1 x i128>, <1 x i128>) nounwind readnone 22688cdbeabSAlbion Fungdeclare <1 x i128> @llvm.ppc.altivec.vcmpgtuq(<1 x i128>, <1 x i128>) nounwind readnone 22788cdbeabSAlbion Fung 22888cdbeabSAlbion Fungdefine <1 x i128> @test_vcmpequq(<1 x i128> %x, <1 x i128> %y) { 22988cdbeabSAlbion Fung %tmp = tail call <1 x i128> @llvm.ppc.altivec.vcmpequq(<1 x i128> %x, <1 x i128> %y) 23088cdbeabSAlbion Fung ret <1 x i128> %tmp 23188cdbeabSAlbion Fung; CHECK-LABEL: test_vcmpequq: 23288cdbeabSAlbion Fung; CHECK: vcmpequq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 23388cdbeabSAlbion Fung; CHECK: blr 23488cdbeabSAlbion Fung} 23588cdbeabSAlbion Fung 23688cdbeabSAlbion Fungdefine <1 x i128> @test_vcmpgtsq(<1 x i128> %x, <1 x i128> %y) { 23788cdbeabSAlbion Fung %tmp = tail call <1 x i128> @llvm.ppc.altivec.vcmpgtsq(<1 x i128> %x, <1 x i128> %y) 23888cdbeabSAlbion Fung ret <1 x i128> %tmp 23988cdbeabSAlbion Fung; CHECK-LABEL: test_vcmpgtsq 24088cdbeabSAlbion Fung; CHECK: vcmpgtsq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 24188cdbeabSAlbion Fung; CHECK: blr 24288cdbeabSAlbion Fung} 24388cdbeabSAlbion Fung 24488cdbeabSAlbion Fungdefine <1 x i128> @test_vcmpgtuq(<1 x i128> %x, <1 x i128> %y) { 24588cdbeabSAlbion Fung %tmp = tail call <1 x i128> @llvm.ppc.altivec.vcmpgtuq(<1 x i128> %x, <1 x i128> %y) 24688cdbeabSAlbion Fung ret <1 x i128> %tmp 24788cdbeabSAlbion Fung; CHECK-LABEL: test_vcmpgtuq 24888cdbeabSAlbion Fung; CHECK: vcmpgtuq {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 24988cdbeabSAlbion Fung; CHECK: blr 25088cdbeabSAlbion Fung} 251*2e7117f8SAmy Kwan 252*2e7117f8SAmy Kwandeclare i32 @llvm.ppc.altivec.vcmpequq.p(i32, <1 x i128>, <1 x i128>) nounwind readnone 253*2e7117f8SAmy Kwandeclare i32 @llvm.ppc.altivec.vcmpgtsq.p(i32, <1 x i128>, <1 x i128>) nounwind readnone 254*2e7117f8SAmy Kwandeclare i32 @llvm.ppc.altivec.vcmpgtuq.p(i32, <1 x i128>, <1 x i128>) nounwind readnone 255*2e7117f8SAmy Kwan 256*2e7117f8SAmy Kwandefine i32 @test_vcmpequq_p(<1 x i128> %x, <1 x i128> %y) { 257*2e7117f8SAmy Kwan %tmp = tail call i32 @llvm.ppc.altivec.vcmpequq.p(i32 2, <1 x i128> %x, <1 x i128> %y) 258*2e7117f8SAmy Kwan ret i32 %tmp 259*2e7117f8SAmy Kwan; CHECK-LABEL: test_vcmpequq_p: 260*2e7117f8SAmy Kwan; CHECK: vcmpequq. {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 261*2e7117f8SAmy Kwan; CHECK: blr 262*2e7117f8SAmy Kwan} 263*2e7117f8SAmy Kwan 264*2e7117f8SAmy Kwandefine i32 @test_vcmpgtsq_p(<1 x i128> %x, <1 x i128> %y) { 265*2e7117f8SAmy Kwan %tmp = tail call i32 @llvm.ppc.altivec.vcmpgtsq.p(i32 2, <1 x i128> %x, <1 x i128> %y) 266*2e7117f8SAmy Kwan ret i32 %tmp 267*2e7117f8SAmy Kwan; CHECK-LABEL: test_vcmpgtsq_p 268*2e7117f8SAmy Kwan; CHECK: vcmpgtsq. {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 269*2e7117f8SAmy Kwan; CHECK: blr 270*2e7117f8SAmy Kwan} 271*2e7117f8SAmy Kwan 272*2e7117f8SAmy Kwandefine i32 @test_vcmpgtuq_p(<1 x i128> %x, <1 x i128> %y) { 273*2e7117f8SAmy Kwan %tmp = tail call i32 @llvm.ppc.altivec.vcmpgtuq.p(i32 2, <1 x i128> %x, <1 x i128> %y) 274*2e7117f8SAmy Kwan ret i32 %tmp 275*2e7117f8SAmy Kwan; CHECK-LABEL: test_vcmpgtuq_p 276*2e7117f8SAmy Kwan; CHECK: vcmpgtuq. {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 277*2e7117f8SAmy Kwan; CHECK: blr 278*2e7117f8SAmy Kwan} 279