xref: /aosp_15_r20/external/llvm/test/CodeGen/PowerPC/vec_cmpd.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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