1*9880d681SAndroid Build Coastguard Worker; Test the doubleword comparison instructions that were added in POWER8 2*9880d681SAndroid Build Coastguard Worker; 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 < %s | FileCheck %s 4*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 -mattr=-vsx < %s | FileCheck %s 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @v2si64_cmp(<2 x i64> %x, <2 x i64> %y) nounwind readnone { 7*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq <2 x i64> %x, %y 8*9880d681SAndroid Build Coastguard Worker %result = sext <2 x i1> %cmp to <2 x i64> 9*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %result 10*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v2si64_cmp: 11*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd 2, 2, 3 12*9880d681SAndroid Build Coastguard Worker} 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @v4si64_cmp(<4 x i64> %x, <4 x i64> %y) nounwind readnone { 15*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq <4 x i64> %x, %y 16*9880d681SAndroid Build Coastguard Worker %result = sext <4 x i1> %cmp to <4 x i64> 17*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %result 18*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v4si64_cmp 19*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 20*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 21*9880d681SAndroid Build Coastguard Worker} 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @v8si64_cmp(<8 x i64> %x, <8 x i64> %y) nounwind readnone { 24*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq <8 x i64> %x, %y 25*9880d681SAndroid Build Coastguard Worker %result = sext <8 x i1> %cmp to <8 x i64> 26*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %result 27*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v8si64_cmp 28*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 29*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 30*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 31*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 32*9880d681SAndroid Build Coastguard Worker} 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerdefine <16 x i64> @v16si64_cmp(<16 x i64> %x, <16 x i64> %y) nounwind readnone { 35*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq <16 x i64> %x, %y 36*9880d681SAndroid Build Coastguard Worker %result = sext <16 x i1> %cmp to <16 x i64> 37*9880d681SAndroid Build Coastguard Worker ret <16 x i64> %result 38*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v16si64_cmp 39*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 40*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 41*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 42*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 43*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 44*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 45*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 46*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 47*9880d681SAndroid Build Coastguard Worker} 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Workerdefine <32 x i64> @v32si64_cmp(<32 x i64> %x, <32 x i64> %y) nounwind readnone { 50*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq <32 x i64> %x, %y 51*9880d681SAndroid Build Coastguard Worker %result = sext <32 x i1> %cmp to <32 x i64> 52*9880d681SAndroid Build Coastguard Worker ret <32 x i64> %result 53*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v32si64_cmp 54*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 55*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 56*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 57*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 58*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 59*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 60*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 61*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 62*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 63*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 64*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 65*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 66*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 67*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 68*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 69*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 70*9880d681SAndroid Build Coastguard Worker} 71*9880d681SAndroid Build Coastguard Worker 72*9880d681SAndroid Build Coastguard Worker; Greater than signed 73*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @v2si64_cmp_gt(<2 x i64> %x, <2 x i64> %y) nounwind readnone { 74*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <2 x i64> %x, %y 75*9880d681SAndroid Build Coastguard Worker %result = sext <2 x i1> %cmp to <2 x i64> 76*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %result 77*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v2si64_cmp_gt 78*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 79*9880d681SAndroid Build Coastguard Worker} 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @v4si64_cmp_gt(<4 x i64> %x, <4 x i64> %y) nounwind readnone { 82*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <4 x i64> %x, %y 83*9880d681SAndroid Build Coastguard Worker %result = sext <4 x i1> %cmp to <4 x i64> 84*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %result 85*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v4si64_cmp_gt 86*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 87*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 88*9880d681SAndroid Build Coastguard Worker} 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @v8si64_cmp_gt(<8 x i64> %x, <8 x i64> %y) nounwind readnone { 91*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <8 x i64> %x, %y 92*9880d681SAndroid Build Coastguard Worker %result = sext <8 x i1> %cmp to <8 x i64> 93*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %result 94*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v8si64_cmp_gt 95*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 96*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 97*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 98*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 99*9880d681SAndroid Build Coastguard Worker} 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Workerdefine <16 x i64> @v16si64_cmp_gt(<16 x i64> %x, <16 x i64> %y) nounwind readnone { 102*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <16 x i64> %x, %y 103*9880d681SAndroid Build Coastguard Worker %result = sext <16 x i1> %cmp to <16 x i64> 104*9880d681SAndroid Build Coastguard Worker ret <16 x i64> %result 105*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v16si64_cmp_gt 106*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 107*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 108*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 109*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 110*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 111*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 112*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 113*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 114*9880d681SAndroid Build Coastguard Worker} 115*9880d681SAndroid Build Coastguard Worker 116*9880d681SAndroid Build Coastguard Workerdefine <32 x i64> @v32si64_cmp_gt(<32 x i64> %x, <32 x i64> %y) nounwind readnone { 117*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt <32 x i64> %x, %y 118*9880d681SAndroid Build Coastguard Worker %result = sext <32 x i1> %cmp to <32 x i64> 119*9880d681SAndroid Build Coastguard Worker ret <32 x i64> %result 120*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v32si64_cmp_gt 121*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 122*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 123*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 124*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 125*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 126*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 127*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 128*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 129*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 130*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 131*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 132*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 133*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 134*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 135*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 136*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 137*9880d681SAndroid Build Coastguard Worker} 138*9880d681SAndroid Build Coastguard Worker 139*9880d681SAndroid Build Coastguard Worker; Greater than unsigned 140*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @v2ui64_cmp_gt(<2 x i64> %x, <2 x i64> %y) nounwind readnone { 141*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <2 x i64> %x, %y 142*9880d681SAndroid Build Coastguard Worker %result = sext <2 x i1> %cmp to <2 x i64> 143*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %result 144*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v2ui64_cmp_gt 145*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 146*9880d681SAndroid Build Coastguard Worker} 147*9880d681SAndroid Build Coastguard Worker 148*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @v4ui64_cmp_gt(<4 x i64> %x, <4 x i64> %y) nounwind readnone { 149*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <4 x i64> %x, %y 150*9880d681SAndroid Build Coastguard Worker %result = sext <4 x i1> %cmp to <4 x i64> 151*9880d681SAndroid Build Coastguard Worker ret <4 x i64> %result 152*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v4ui64_cmp_gt 153*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 154*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 155*9880d681SAndroid Build Coastguard Worker} 156*9880d681SAndroid Build Coastguard Worker 157*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @v8ui64_cmp_gt(<8 x i64> %x, <8 x i64> %y) nounwind readnone { 158*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <8 x i64> %x, %y 159*9880d681SAndroid Build Coastguard Worker %result = sext <8 x i1> %cmp to <8 x i64> 160*9880d681SAndroid Build Coastguard Worker ret <8 x i64> %result 161*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v8ui64_cmp_gt 162*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 163*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 164*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 165*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 166*9880d681SAndroid Build Coastguard Worker} 167*9880d681SAndroid Build Coastguard Worker 168*9880d681SAndroid Build Coastguard Workerdefine <16 x i64> @v16ui64_cmp_gt(<16 x i64> %x, <16 x i64> %y) nounwind readnone { 169*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <16 x i64> %x, %y 170*9880d681SAndroid Build Coastguard Worker %result = sext <16 x i1> %cmp to <16 x i64> 171*9880d681SAndroid Build Coastguard Worker ret <16 x i64> %result 172*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v16ui64_cmp_gt 173*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 174*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 175*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 176*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 177*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 178*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 179*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 180*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 181*9880d681SAndroid Build Coastguard Worker} 182*9880d681SAndroid Build Coastguard Worker 183*9880d681SAndroid Build Coastguard Workerdefine <32 x i64> @v32ui64_cmp_gt(<32 x i64> %x, <32 x i64> %y) nounwind readnone { 184*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt <32 x i64> %x, %y 185*9880d681SAndroid Build Coastguard Worker %result = sext <32 x i1> %cmp to <32 x i64> 186*9880d681SAndroid Build Coastguard Worker ret <32 x i64> %result 187*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: v32ui64_cmp_gt 188*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 189*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 190*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 191*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 192*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 193*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 194*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 195*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 196*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 197*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 198*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 199*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 200*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 201*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 202*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 203*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 204*9880d681SAndroid Build Coastguard Worker} 205*9880d681SAndroid Build Coastguard Worker 206*9880d681SAndroid Build Coastguard Worker; Check the intrinsics also 207*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.ppc.altivec.vcmpequd(<2 x i64>, <2 x i64>) nounwind readnone 208*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.ppc.altivec.vcmpequd.p(i32, <2 x i64>, <2 x i64>) nounwind readnone 209*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.ppc.altivec.vcmpgtsd(<2 x i64>, <2 x i64>) nounwind readnone 210*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.ppc.altivec.vcmpgtsd.p(i32, <2 x i64>, <2 x i64>) nounwind readnone 211*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.ppc.altivec.vcmpgtud(<2 x i64>, <2 x i64>) nounwind readnone 212*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.ppc.altivec.vcmpgtud.p(i32, <2 x i64>, <2 x i64>) nounwind readnone 213*9880d681SAndroid Build Coastguard Worker 214*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vcmpequd(<2 x i64> %x, <2 x i64> %y) { 215*9880d681SAndroid Build Coastguard Worker %tmp = tail call <2 x i64> @llvm.ppc.altivec.vcmpequd(<2 x i64> %x, <2 x i64> %y) 216*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp 217*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vcmpequd: 218*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 219*9880d681SAndroid Build Coastguard Worker} 220*9880d681SAndroid Build Coastguard Worker 221*9880d681SAndroid Build Coastguard Workerdefine i32 @test_vcmpequd_p(<2 x i64> %x, <2 x i64> %y) { 222*9880d681SAndroid Build Coastguard Worker %tmp = tail call i32 @llvm.ppc.altivec.vcmpequd.p(i32 2, <2 x i64> %x, <2 x i64> %y) 223*9880d681SAndroid Build Coastguard Worker ret i32 %tmp 224*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vcmpequd_p: 225*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpequd. {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 226*9880d681SAndroid Build Coastguard Worker} 227*9880d681SAndroid Build Coastguard Worker 228*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vcmpgtsd(<2 x i64> %x, <2 x i64> %y) { 229*9880d681SAndroid Build Coastguard Worker %tmp = tail call <2 x i64> @llvm.ppc.altivec.vcmpgtsd(<2 x i64> %x, <2 x i64> %y) 230*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp 231*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vcmpgtsd 232*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 233*9880d681SAndroid Build Coastguard Worker} 234*9880d681SAndroid Build Coastguard Worker 235*9880d681SAndroid Build Coastguard Workerdefine i32 @test_vcmpgtsd_p(<2 x i64> %x, <2 x i64> %y) { 236*9880d681SAndroid Build Coastguard Worker %tmp = tail call i32 @llvm.ppc.altivec.vcmpgtsd.p(i32 2, <2 x i64> %x, <2 x i64> %y) 237*9880d681SAndroid Build Coastguard Worker ret i32 %tmp 238*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vcmpgtsd_p 239*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtsd. {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 240*9880d681SAndroid Build Coastguard Worker} 241*9880d681SAndroid Build Coastguard Worker 242*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test_vcmpgtud(<2 x i64> %x, <2 x i64> %y) { 243*9880d681SAndroid Build Coastguard Worker %tmp = tail call <2 x i64> @llvm.ppc.altivec.vcmpgtud(<2 x i64> %x, <2 x i64> %y) 244*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp 245*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vcmpgtud 246*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 247*9880d681SAndroid Build Coastguard Worker} 248*9880d681SAndroid Build Coastguard Worker 249*9880d681SAndroid Build Coastguard Workerdefine i32 @test_vcmpgtud_p(<2 x i64> %x, <2 x i64> %y) { 250*9880d681SAndroid Build Coastguard Worker %tmp = tail call i32 @llvm.ppc.altivec.vcmpgtud.p(i32 2, <2 x i64> %x, <2 x i64> %y) 251*9880d681SAndroid Build Coastguard Worker ret i32 %tmp 252*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_vcmpgtud_p 253*9880d681SAndroid Build Coastguard Worker; CHECK: vcmpgtud. {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}} 254*9880d681SAndroid Build Coastguard Worker} 255*9880d681SAndroid Build Coastguard Worker 256*9880d681SAndroid Build Coastguard Worker 257*9880d681SAndroid Build Coastguard Worker 258*9880d681SAndroid Build Coastguard Worker 259