xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/vselect-minmax.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefix=SSE --check-prefix=SSE2
3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse4.2 | FileCheck %s --check-prefix=SSE --check-prefix=SSE4
4*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefix=AVX --check-prefix=AVX1
5*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 -mattr=+avx2 | FileCheck %s --check-prefix=AVX --check-prefix=AVX2
6*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=knl | FileCheck %s --check-prefix=AVX --check-prefix=AVX512F
7*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=skx | FileCheck %s --check-prefix=AVX --check-prefix=AVX512F --check-prefix=AVX512BW --check-prefix=AVX512VL
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test1(<16 x i8> %a, <16 x i8> %b) {
10*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test1:
11*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
12*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
13*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm0, %xmm2
14*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm0
15*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
16*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm0
17*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
18*9880d681SAndroid Build Coastguard Worker;
19*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test1:
20*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
21*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm1, %xmm0
22*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
23*9880d681SAndroid Build Coastguard Worker;
24*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test1:
25*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
26*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsb %xmm1, %xmm0, %xmm0
27*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
28*9880d681SAndroid Build Coastguard Workerentry:
29*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <16 x i8> %a, %b
30*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b
31*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
32*9880d681SAndroid Build Coastguard Worker}
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test2(<16 x i8> %a, <16 x i8> %b) {
35*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test2:
36*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
37*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm2
38*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm2
39*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm3
40*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
41*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
42*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
43*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
44*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
45*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
46*9880d681SAndroid Build Coastguard Worker;
47*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test2:
48*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
49*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm1, %xmm0
50*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
51*9880d681SAndroid Build Coastguard Worker;
52*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test2:
53*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
54*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsb %xmm1, %xmm0, %xmm0
55*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
56*9880d681SAndroid Build Coastguard Workerentry:
57*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <16 x i8> %a, %b
58*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b
59*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
60*9880d681SAndroid Build Coastguard Worker}
61*9880d681SAndroid Build Coastguard Worker
62*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test3(<16 x i8> %a, <16 x i8> %b) {
63*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test3:
64*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
65*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm2
66*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm2
67*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm0
68*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
69*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm2
70*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
71*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
72*9880d681SAndroid Build Coastguard Worker;
73*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test3:
74*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
75*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm1, %xmm0
76*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
77*9880d681SAndroid Build Coastguard Worker;
78*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test3:
79*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
80*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsb %xmm1, %xmm0, %xmm0
81*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
82*9880d681SAndroid Build Coastguard Workerentry:
83*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <16 x i8> %a, %b
84*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b
85*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
86*9880d681SAndroid Build Coastguard Worker}
87*9880d681SAndroid Build Coastguard Worker
88*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test4(<16 x i8> %a, <16 x i8> %b) {
89*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test4:
90*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
91*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
92*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm0, %xmm3
93*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
94*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
95*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm3
96*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
97*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
98*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
99*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
100*9880d681SAndroid Build Coastguard Worker;
101*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test4:
102*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
103*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm1, %xmm0
104*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
105*9880d681SAndroid Build Coastguard Worker;
106*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test4:
107*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
108*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsb %xmm1, %xmm0, %xmm0
109*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
110*9880d681SAndroid Build Coastguard Workerentry:
111*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <16 x i8> %a, %b
112*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b
113*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
114*9880d681SAndroid Build Coastguard Worker}
115*9880d681SAndroid Build Coastguard Worker
116*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test5(<16 x i8> %a, <16 x i8> %b) {
117*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test5:
118*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
119*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm1, %xmm0
120*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
121*9880d681SAndroid Build Coastguard Worker;
122*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test5:
123*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
124*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminub %xmm1, %xmm0, %xmm0
125*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
126*9880d681SAndroid Build Coastguard Workerentry:
127*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <16 x i8> %a, %b
128*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b
129*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
130*9880d681SAndroid Build Coastguard Worker}
131*9880d681SAndroid Build Coastguard Worker
132*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test6(<16 x i8> %a, <16 x i8> %b) {
133*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test6:
134*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
135*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm1, %xmm0
136*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
137*9880d681SAndroid Build Coastguard Worker;
138*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test6:
139*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
140*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminub %xmm1, %xmm0, %xmm0
141*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
142*9880d681SAndroid Build Coastguard Workerentry:
143*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <16 x i8> %a, %b
144*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b
145*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
146*9880d681SAndroid Build Coastguard Worker}
147*9880d681SAndroid Build Coastguard Worker
148*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test7(<16 x i8> %a, <16 x i8> %b) {
149*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test7:
150*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
151*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm1, %xmm0
152*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
153*9880d681SAndroid Build Coastguard Worker;
154*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test7:
155*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
156*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxub %xmm1, %xmm0, %xmm0
157*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
158*9880d681SAndroid Build Coastguard Workerentry:
159*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <16 x i8> %a, %b
160*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b
161*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
162*9880d681SAndroid Build Coastguard Worker}
163*9880d681SAndroid Build Coastguard Worker
164*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test8(<16 x i8> %a, <16 x i8> %b) {
165*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test8:
166*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
167*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm1, %xmm0
168*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
169*9880d681SAndroid Build Coastguard Worker;
170*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test8:
171*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
172*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxub %xmm1, %xmm0, %xmm0
173*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
174*9880d681SAndroid Build Coastguard Workerentry:
175*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <16 x i8> %a, %b
176*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %a, <16 x i8> %b
177*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
178*9880d681SAndroid Build Coastguard Worker}
179*9880d681SAndroid Build Coastguard Worker
180*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test9(<8 x i16> %a, <8 x i16> %b) {
181*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test9:
182*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
183*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm1, %xmm0
184*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
185*9880d681SAndroid Build Coastguard Worker;
186*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test9:
187*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
188*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsw %xmm1, %xmm0, %xmm0
189*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
190*9880d681SAndroid Build Coastguard Workerentry:
191*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <8 x i16> %a, %b
192*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b
193*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
194*9880d681SAndroid Build Coastguard Worker}
195*9880d681SAndroid Build Coastguard Worker
196*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test10(<8 x i16> %a, <8 x i16> %b) {
197*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test10:
198*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
199*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm1, %xmm0
200*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
201*9880d681SAndroid Build Coastguard Worker;
202*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test10:
203*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
204*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsw %xmm1, %xmm0, %xmm0
205*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
206*9880d681SAndroid Build Coastguard Workerentry:
207*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <8 x i16> %a, %b
208*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b
209*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
210*9880d681SAndroid Build Coastguard Worker}
211*9880d681SAndroid Build Coastguard Worker
212*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test11(<8 x i16> %a, <8 x i16> %b) {
213*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test11:
214*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
215*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm1, %xmm0
216*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
217*9880d681SAndroid Build Coastguard Worker;
218*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test11:
219*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
220*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsw %xmm1, %xmm0, %xmm0
221*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
222*9880d681SAndroid Build Coastguard Workerentry:
223*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <8 x i16> %a, %b
224*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b
225*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
226*9880d681SAndroid Build Coastguard Worker}
227*9880d681SAndroid Build Coastguard Worker
228*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test12(<8 x i16> %a, <8 x i16> %b) {
229*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test12:
230*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
231*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm1, %xmm0
232*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
233*9880d681SAndroid Build Coastguard Worker;
234*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test12:
235*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
236*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsw %xmm1, %xmm0, %xmm0
237*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
238*9880d681SAndroid Build Coastguard Workerentry:
239*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <8 x i16> %a, %b
240*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b
241*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
242*9880d681SAndroid Build Coastguard Worker}
243*9880d681SAndroid Build Coastguard Worker
244*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test13(<8 x i16> %a, <8 x i16> %b) {
245*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test13:
246*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
247*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768]
248*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
249*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
250*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
251*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm3, %xmm2
252*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm0
253*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
254*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm0
255*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
256*9880d681SAndroid Build Coastguard Worker;
257*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test13:
258*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
259*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm1, %xmm0
260*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
261*9880d681SAndroid Build Coastguard Worker;
262*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test13:
263*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
264*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminuw %xmm1, %xmm0, %xmm0
265*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
266*9880d681SAndroid Build Coastguard Workerentry:
267*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <8 x i16> %a, %b
268*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b
269*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
270*9880d681SAndroid Build Coastguard Worker}
271*9880d681SAndroid Build Coastguard Worker
272*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test14(<8 x i16> %a, <8 x i16> %b) {
273*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test14:
274*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
275*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm2
276*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm1, %xmm2
277*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm3
278*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm2, %xmm3
279*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm0
280*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
281*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm0
282*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
283*9880d681SAndroid Build Coastguard Worker;
284*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test14:
285*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
286*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm1, %xmm0
287*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
288*9880d681SAndroid Build Coastguard Worker;
289*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test14:
290*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
291*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminuw %xmm1, %xmm0, %xmm0
292*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
293*9880d681SAndroid Build Coastguard Workerentry:
294*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <8 x i16> %a, %b
295*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b
296*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
297*9880d681SAndroid Build Coastguard Worker}
298*9880d681SAndroid Build Coastguard Worker
299*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test15(<8 x i16> %a, <8 x i16> %b) {
300*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test15:
301*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
302*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768]
303*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
304*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
305*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
306*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm3, %xmm2
307*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm0
308*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
309*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm0
310*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
311*9880d681SAndroid Build Coastguard Worker;
312*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test15:
313*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
314*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm1, %xmm0
315*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
316*9880d681SAndroid Build Coastguard Worker;
317*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test15:
318*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
319*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxuw %xmm1, %xmm0, %xmm0
320*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
321*9880d681SAndroid Build Coastguard Workerentry:
322*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <8 x i16> %a, %b
323*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b
324*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
325*9880d681SAndroid Build Coastguard Worker}
326*9880d681SAndroid Build Coastguard Worker
327*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test16(<8 x i16> %a, <8 x i16> %b) {
328*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test16:
329*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm0, %xmm2
332*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm3
333*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm2, %xmm3
334*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm0
335*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
336*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm0
337*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
338*9880d681SAndroid Build Coastguard Worker;
339*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test16:
340*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
341*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm1, %xmm0
342*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
343*9880d681SAndroid Build Coastguard Worker;
344*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test16:
345*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
346*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxuw %xmm1, %xmm0, %xmm0
347*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
348*9880d681SAndroid Build Coastguard Workerentry:
349*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <8 x i16> %a, %b
350*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %a, <8 x i16> %b
351*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
352*9880d681SAndroid Build Coastguard Worker}
353*9880d681SAndroid Build Coastguard Worker
354*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test17(<4 x i32> %a, <4 x i32> %b) {
355*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test17:
356*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
357*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
358*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm2
359*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm0
360*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
361*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm0
362*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
363*9880d681SAndroid Build Coastguard Worker;
364*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test17:
365*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
366*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm1, %xmm0
367*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
368*9880d681SAndroid Build Coastguard Worker;
369*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test17:
370*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
371*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsd %xmm1, %xmm0, %xmm0
372*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
373*9880d681SAndroid Build Coastguard Workerentry:
374*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <4 x i32> %a, %b
375*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b
376*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
377*9880d681SAndroid Build Coastguard Worker}
378*9880d681SAndroid Build Coastguard Worker
379*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test18(<4 x i32> %a, <4 x i32> %b) {
380*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test18:
381*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
382*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm2
383*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm2
384*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm3
385*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
386*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
387*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
388*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
389*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
390*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
391*9880d681SAndroid Build Coastguard Worker;
392*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test18:
393*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
394*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm1, %xmm0
395*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
396*9880d681SAndroid Build Coastguard Worker;
397*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test18:
398*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
399*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsd %xmm1, %xmm0, %xmm0
400*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
401*9880d681SAndroid Build Coastguard Workerentry:
402*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <4 x i32> %a, %b
403*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b
404*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
405*9880d681SAndroid Build Coastguard Worker}
406*9880d681SAndroid Build Coastguard Worker
407*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test19(<4 x i32> %a, <4 x i32> %b) {
408*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test19:
409*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
410*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm2
411*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm2
412*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm0
413*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
414*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm2
415*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
416*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
417*9880d681SAndroid Build Coastguard Worker;
418*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test19:
419*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
420*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm1, %xmm0
421*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
422*9880d681SAndroid Build Coastguard Worker;
423*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test19:
424*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
425*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsd %xmm1, %xmm0, %xmm0
426*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
427*9880d681SAndroid Build Coastguard Workerentry:
428*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <4 x i32> %a, %b
429*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b
430*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
431*9880d681SAndroid Build Coastguard Worker}
432*9880d681SAndroid Build Coastguard Worker
433*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test20(<4 x i32> %a, <4 x i32> %b) {
434*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test20:
435*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
436*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
437*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm3
438*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
439*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
440*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm3
441*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
442*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
443*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
444*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
445*9880d681SAndroid Build Coastguard Worker;
446*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test20:
447*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
448*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm1, %xmm0
449*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
450*9880d681SAndroid Build Coastguard Worker;
451*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test20:
452*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
453*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsd %xmm1, %xmm0, %xmm0
454*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
455*9880d681SAndroid Build Coastguard Workerentry:
456*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <4 x i32> %a, %b
457*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b
458*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
459*9880d681SAndroid Build Coastguard Worker}
460*9880d681SAndroid Build Coastguard Worker
461*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test21(<4 x i32> %a, <4 x i32> %b) {
462*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test21:
463*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
464*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
465*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
466*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
467*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
468*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm2
469*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm0
470*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
471*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm0
472*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
473*9880d681SAndroid Build Coastguard Worker;
474*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test21:
475*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
476*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm1, %xmm0
477*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
478*9880d681SAndroid Build Coastguard Worker;
479*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test21:
480*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
481*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminud %xmm1, %xmm0, %xmm0
482*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
483*9880d681SAndroid Build Coastguard Workerentry:
484*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <4 x i32> %a, %b
485*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b
486*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
487*9880d681SAndroid Build Coastguard Worker}
488*9880d681SAndroid Build Coastguard Worker
489*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test22(<4 x i32> %a, <4 x i32> %b) {
490*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test22:
491*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm3 = [2147483648,2147483648,2147483648,2147483648]
493*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
494*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
495*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm3
496*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm2, %xmm3
497*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
498*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
499*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm3
500*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
501*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
502*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
503*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
504*9880d681SAndroid Build Coastguard Worker;
505*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test22:
506*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
507*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm1, %xmm0
508*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
509*9880d681SAndroid Build Coastguard Worker;
510*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test22:
511*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
512*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminud %xmm1, %xmm0, %xmm0
513*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
514*9880d681SAndroid Build Coastguard Workerentry:
515*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <4 x i32> %a, %b
516*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b
517*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
518*9880d681SAndroid Build Coastguard Worker}
519*9880d681SAndroid Build Coastguard Worker
520*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test23(<4 x i32> %a, <4 x i32> %b) {
521*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test23:
522*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm2
528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm0
529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm0
531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
532*9880d681SAndroid Build Coastguard Worker;
533*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test23:
534*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
535*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm1, %xmm0
536*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
537*9880d681SAndroid Build Coastguard Worker;
538*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test23:
539*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
540*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxud %xmm1, %xmm0, %xmm0
541*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
542*9880d681SAndroid Build Coastguard Workerentry:
543*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <4 x i32> %a, %b
544*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b
545*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
546*9880d681SAndroid Build Coastguard Worker}
547*9880d681SAndroid Build Coastguard Worker
548*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test24(<4 x i32> %a, <4 x i32> %b) {
549*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test24:
550*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
551*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm3 = [2147483648,2147483648,2147483648,2147483648]
552*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm2
553*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
554*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm3
555*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm2, %xmm3
556*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
557*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
558*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm3
559*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
560*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
561*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
562*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
563*9880d681SAndroid Build Coastguard Worker;
564*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test24:
565*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
566*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm1, %xmm0
567*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
568*9880d681SAndroid Build Coastguard Worker;
569*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test24:
570*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
571*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxud %xmm1, %xmm0, %xmm0
572*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
573*9880d681SAndroid Build Coastguard Workerentry:
574*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <4 x i32> %a, %b
575*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %a, <4 x i32> %b
576*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
577*9880d681SAndroid Build Coastguard Worker}
578*9880d681SAndroid Build Coastguard Worker
579*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test25(<32 x i8> %a, <32 x i8> %b) {
580*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test25:
581*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
582*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
583*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm4
584*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm5
585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm0, %xmm5
586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm0
587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm0
589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm1
590*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm4
591*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm1
592*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
593*9880d681SAndroid Build Coastguard Worker;
594*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test25:
595*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
596*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm2, %xmm0
597*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm3, %xmm1
598*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
599*9880d681SAndroid Build Coastguard Worker;
600*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test25:
601*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
602*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
603*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
604*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm3, %xmm2
605*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm1, %xmm0, %xmm0
606*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
607*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
608*9880d681SAndroid Build Coastguard Worker;
609*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test25:
610*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
611*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm1, %ymm0, %ymm0
612*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
613*9880d681SAndroid Build Coastguard Worker;
614*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test25:
615*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
616*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsb %ymm1, %ymm0, %ymm0
617*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
618*9880d681SAndroid Build Coastguard Workerentry:
619*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <32 x i8> %a, %b
620*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b
621*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
622*9880d681SAndroid Build Coastguard Worker}
623*9880d681SAndroid Build Coastguard Worker
624*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test26(<32 x i8> %a, <32 x i8> %b) {
625*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test26:
626*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
627*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm6
628*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm3, %xmm6
629*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm7, %xmm7
630*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm4
631*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
632*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
633*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm2, %xmm5
634*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm7
635*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
636*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm7
637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm5
638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm6
639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm4
640*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
641*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
642*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
643*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
644*9880d681SAndroid Build Coastguard Worker;
645*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test26:
646*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
647*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm2, %xmm0
648*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm3, %xmm1
649*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
650*9880d681SAndroid Build Coastguard Worker;
651*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test26:
652*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
653*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
654*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
655*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm3, %xmm2
656*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm1, %xmm0, %xmm0
657*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
658*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
659*9880d681SAndroid Build Coastguard Worker;
660*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test26:
661*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
662*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm1, %ymm0, %ymm0
663*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
664*9880d681SAndroid Build Coastguard Worker;
665*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test26:
666*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
667*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsb %ymm1, %ymm0, %ymm0
668*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
669*9880d681SAndroid Build Coastguard Workerentry:
670*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <32 x i8> %a, %b
671*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b
672*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
673*9880d681SAndroid Build Coastguard Worker}
674*9880d681SAndroid Build Coastguard Worker
675*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test27(<32 x i8> %a, <32 x i8> %b) {
676*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test27:
677*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
678*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
679*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm3, %xmm4
680*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
681*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm2, %xmm5
682*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm0
683*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
684*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm5
685*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm1
686*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm4
687*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm4
688*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
689*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
690*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
691*9880d681SAndroid Build Coastguard Worker;
692*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test27:
693*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
694*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm2, %xmm0
695*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm3, %xmm1
696*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
697*9880d681SAndroid Build Coastguard Worker;
698*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test27:
699*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
700*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
701*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
702*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm3, %xmm2
703*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm1, %xmm0, %xmm0
704*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
705*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
706*9880d681SAndroid Build Coastguard Worker;
707*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test27:
708*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
709*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm1, %ymm0, %ymm0
710*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
711*9880d681SAndroid Build Coastguard Worker;
712*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test27:
713*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
714*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsb %ymm1, %ymm0, %ymm0
715*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
716*9880d681SAndroid Build Coastguard Workerentry:
717*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <32 x i8> %a, %b
718*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b
719*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
720*9880d681SAndroid Build Coastguard Worker}
721*9880d681SAndroid Build Coastguard Worker
722*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test28(<32 x i8> %a, <32 x i8> %b) {
723*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test28:
724*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
725*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
726*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm6
727*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
728*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm5
729*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
730*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm7
731*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm0, %xmm7
732*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
733*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm7
734*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm4
735*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm4
736*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm6
737*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm5
738*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
739*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
740*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
741*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
742*9880d681SAndroid Build Coastguard Worker;
743*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test28:
744*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
745*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm2, %xmm0
746*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm3, %xmm1
747*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
748*9880d681SAndroid Build Coastguard Worker;
749*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test28:
750*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
751*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
752*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
753*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm3, %xmm2
754*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm1, %xmm0, %xmm0
755*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
756*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
757*9880d681SAndroid Build Coastguard Worker;
758*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test28:
759*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
760*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm1, %ymm0, %ymm0
761*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
762*9880d681SAndroid Build Coastguard Worker;
763*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test28:
764*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
765*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsb %ymm1, %ymm0, %ymm0
766*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
767*9880d681SAndroid Build Coastguard Workerentry:
768*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <32 x i8> %a, %b
769*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b
770*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
771*9880d681SAndroid Build Coastguard Worker}
772*9880d681SAndroid Build Coastguard Worker
773*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test29(<32 x i8> %a, <32 x i8> %b) {
774*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test29:
775*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
776*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm2, %xmm0
777*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm3, %xmm1
778*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
779*9880d681SAndroid Build Coastguard Worker;
780*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test29:
781*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
782*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
783*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
784*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm3, %xmm2
785*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm1, %xmm0, %xmm0
786*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
787*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
788*9880d681SAndroid Build Coastguard Worker;
789*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test29:
790*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
791*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm1, %ymm0, %ymm0
792*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
793*9880d681SAndroid Build Coastguard Worker;
794*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test29:
795*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
796*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminub %ymm1, %ymm0, %ymm0
797*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
798*9880d681SAndroid Build Coastguard Workerentry:
799*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <32 x i8> %a, %b
800*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b
801*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
802*9880d681SAndroid Build Coastguard Worker}
803*9880d681SAndroid Build Coastguard Worker
804*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test30(<32 x i8> %a, <32 x i8> %b) {
805*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test30:
806*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
807*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm2, %xmm0
808*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm3, %xmm1
809*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
810*9880d681SAndroid Build Coastguard Worker;
811*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test30:
812*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
813*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
814*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
815*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm3, %xmm2
816*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm1, %xmm0, %xmm0
817*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
818*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
819*9880d681SAndroid Build Coastguard Worker;
820*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test30:
821*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
822*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm1, %ymm0, %ymm0
823*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
824*9880d681SAndroid Build Coastguard Worker;
825*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test30:
826*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
827*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminub %ymm1, %ymm0, %ymm0
828*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
829*9880d681SAndroid Build Coastguard Workerentry:
830*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <32 x i8> %a, %b
831*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b
832*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
833*9880d681SAndroid Build Coastguard Worker}
834*9880d681SAndroid Build Coastguard Worker
835*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test31(<32 x i8> %a, <32 x i8> %b) {
836*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test31:
837*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
838*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm2, %xmm0
839*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm3, %xmm1
840*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
841*9880d681SAndroid Build Coastguard Worker;
842*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test31:
843*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
844*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
845*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
846*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm3, %xmm2
847*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm1, %xmm0, %xmm0
848*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
849*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
850*9880d681SAndroid Build Coastguard Worker;
851*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test31:
852*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
853*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm1, %ymm0, %ymm0
854*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
855*9880d681SAndroid Build Coastguard Worker;
856*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test31:
857*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
858*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxub %ymm1, %ymm0, %ymm0
859*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
860*9880d681SAndroid Build Coastguard Workerentry:
861*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <32 x i8> %a, %b
862*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b
863*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
864*9880d681SAndroid Build Coastguard Worker}
865*9880d681SAndroid Build Coastguard Worker
866*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test32(<32 x i8> %a, <32 x i8> %b) {
867*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test32:
868*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
869*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm2, %xmm0
870*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm3, %xmm1
871*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
872*9880d681SAndroid Build Coastguard Worker;
873*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test32:
874*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
875*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
876*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
877*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm3, %xmm2
878*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm1, %xmm0, %xmm0
879*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
880*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
881*9880d681SAndroid Build Coastguard Worker;
882*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test32:
883*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
884*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm1, %ymm0, %ymm0
885*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
886*9880d681SAndroid Build Coastguard Worker;
887*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test32:
888*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
889*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxub %ymm1, %ymm0, %ymm0
890*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
891*9880d681SAndroid Build Coastguard Workerentry:
892*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <32 x i8> %a, %b
893*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %a, <32 x i8> %b
894*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
895*9880d681SAndroid Build Coastguard Worker}
896*9880d681SAndroid Build Coastguard Worker
897*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test33(<16 x i16> %a, <16 x i16> %b) {
898*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test33:
899*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
900*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm2, %xmm0
901*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm3, %xmm1
902*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
903*9880d681SAndroid Build Coastguard Worker;
904*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test33:
905*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
906*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
907*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
908*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm3, %xmm2
909*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm1, %xmm0, %xmm0
910*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
911*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
912*9880d681SAndroid Build Coastguard Worker;
913*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test33:
914*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
915*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm1, %ymm0, %ymm0
916*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
917*9880d681SAndroid Build Coastguard Worker;
918*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test33:
919*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
920*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsw %ymm1, %ymm0, %ymm0
921*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
922*9880d681SAndroid Build Coastguard Workerentry:
923*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <16 x i16> %a, %b
924*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b
925*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
926*9880d681SAndroid Build Coastguard Worker}
927*9880d681SAndroid Build Coastguard Worker
928*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test34(<16 x i16> %a, <16 x i16> %b) {
929*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test34:
930*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
931*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm2, %xmm0
932*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm3, %xmm1
933*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
934*9880d681SAndroid Build Coastguard Worker;
935*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test34:
936*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
937*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
938*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
939*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm3, %xmm2
940*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm1, %xmm0, %xmm0
941*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
942*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
943*9880d681SAndroid Build Coastguard Worker;
944*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test34:
945*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
946*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm1, %ymm0, %ymm0
947*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
948*9880d681SAndroid Build Coastguard Worker;
949*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test34:
950*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
951*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsw %ymm1, %ymm0, %ymm0
952*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
953*9880d681SAndroid Build Coastguard Workerentry:
954*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <16 x i16> %a, %b
955*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b
956*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
957*9880d681SAndroid Build Coastguard Worker}
958*9880d681SAndroid Build Coastguard Worker
959*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test35(<16 x i16> %a, <16 x i16> %b) {
960*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test35:
961*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
962*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm2, %xmm0
963*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm3, %xmm1
964*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
965*9880d681SAndroid Build Coastguard Worker;
966*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test35:
967*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
968*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
969*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
970*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm3, %xmm2
971*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm1, %xmm0, %xmm0
972*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
973*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
974*9880d681SAndroid Build Coastguard Worker;
975*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test35:
976*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
977*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm1, %ymm0, %ymm0
978*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
979*9880d681SAndroid Build Coastguard Worker;
980*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test35:
981*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
982*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsw %ymm1, %ymm0, %ymm0
983*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
984*9880d681SAndroid Build Coastguard Workerentry:
985*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <16 x i16> %a, %b
986*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b
987*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
988*9880d681SAndroid Build Coastguard Worker}
989*9880d681SAndroid Build Coastguard Worker
990*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test36(<16 x i16> %a, <16 x i16> %b) {
991*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test36:
992*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
993*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm2, %xmm0
994*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm3, %xmm1
995*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
996*9880d681SAndroid Build Coastguard Worker;
997*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test36:
998*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
999*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1000*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1001*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm3, %xmm2
1002*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm1, %xmm0, %xmm0
1003*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1004*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1005*9880d681SAndroid Build Coastguard Worker;
1006*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test36:
1007*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1008*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm1, %ymm0, %ymm0
1009*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1010*9880d681SAndroid Build Coastguard Worker;
1011*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test36:
1012*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1013*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsw %ymm1, %ymm0, %ymm0
1014*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1015*9880d681SAndroid Build Coastguard Workerentry:
1016*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <16 x i16> %a, %b
1017*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b
1018*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
1019*9880d681SAndroid Build Coastguard Worker}
1020*9880d681SAndroid Build Coastguard Worker
1021*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test37(<16 x i16> %a, <16 x i16> %b) {
1022*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test37:
1023*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [32768,32768,32768,32768,32768,32768,32768,32768]
1025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm5
1026*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
1027*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
1028*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
1029*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm5, %xmm6
1030*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
1031*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
1032*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm4
1033*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm5, %xmm4
1034*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm0
1035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm4
1036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm0
1037*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm6, %xmm1
1038*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm6
1039*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm1
1040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1041*9880d681SAndroid Build Coastguard Worker;
1042*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test37:
1043*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1044*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm2, %xmm0
1045*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm3, %xmm1
1046*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1047*9880d681SAndroid Build Coastguard Worker;
1048*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test37:
1049*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1050*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1051*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1052*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm3, %xmm2
1053*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm1, %xmm0, %xmm0
1054*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1055*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1056*9880d681SAndroid Build Coastguard Worker;
1057*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test37:
1058*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1059*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm1, %ymm0, %ymm0
1060*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1061*9880d681SAndroid Build Coastguard Worker;
1062*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test37:
1063*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1064*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminuw %ymm1, %ymm0, %ymm0
1065*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1066*9880d681SAndroid Build Coastguard Workerentry:
1067*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <16 x i16> %a, %b
1068*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b
1069*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
1070*9880d681SAndroid Build Coastguard Worker}
1071*9880d681SAndroid Build Coastguard Worker
1072*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test38(<16 x i16> %a, <16 x i16> %b) {
1073*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test38:
1074*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1075*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
1076*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm3, %xmm4
1077*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm6
1078*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm6, %xmm4
1079*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
1080*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm2, %xmm5
1081*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm6, %xmm5
1082*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm0
1083*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
1084*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm5
1085*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm1
1086*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm4
1087*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm4
1088*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
1089*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
1090*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1091*9880d681SAndroid Build Coastguard Worker;
1092*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test38:
1093*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1094*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm2, %xmm0
1095*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm3, %xmm1
1096*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1097*9880d681SAndroid Build Coastguard Worker;
1098*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test38:
1099*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1100*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1101*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1102*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm3, %xmm2
1103*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm1, %xmm0, %xmm0
1104*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1105*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1106*9880d681SAndroid Build Coastguard Worker;
1107*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test38:
1108*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1109*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm1, %ymm0, %ymm0
1110*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1111*9880d681SAndroid Build Coastguard Worker;
1112*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test38:
1113*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1114*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminuw %ymm1, %ymm0, %ymm0
1115*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1116*9880d681SAndroid Build Coastguard Workerentry:
1117*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <16 x i16> %a, %b
1118*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b
1119*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
1120*9880d681SAndroid Build Coastguard Worker}
1121*9880d681SAndroid Build Coastguard Worker
1122*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test39(<16 x i16> %a, <16 x i16> %b) {
1123*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test39:
1124*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1125*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm5 = [32768,32768,32768,32768,32768,32768,32768,32768]
1126*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
1127*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
1128*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
1129*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
1130*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm6, %xmm4
1131*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm6
1132*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
1133*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm5
1134*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm6, %xmm5
1135*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm0
1136*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
1137*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm0
1138*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm1
1139*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm4
1140*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm4
1141*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
1142*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1143*9880d681SAndroid Build Coastguard Worker;
1144*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test39:
1145*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1146*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm2, %xmm0
1147*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm3, %xmm1
1148*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1149*9880d681SAndroid Build Coastguard Worker;
1150*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test39:
1151*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1152*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1153*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1154*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm3, %xmm2
1155*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm1, %xmm0, %xmm0
1156*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1157*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1158*9880d681SAndroid Build Coastguard Worker;
1159*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test39:
1160*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1161*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm1, %ymm0, %ymm0
1162*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1163*9880d681SAndroid Build Coastguard Worker;
1164*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test39:
1165*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1166*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxuw %ymm1, %ymm0, %ymm0
1167*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1168*9880d681SAndroid Build Coastguard Workerentry:
1169*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <16 x i16> %a, %b
1170*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b
1171*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
1172*9880d681SAndroid Build Coastguard Worker}
1173*9880d681SAndroid Build Coastguard Worker
1174*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test40(<16 x i16> %a, <16 x i16> %b) {
1175*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test40:
1176*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
1178*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm1, %xmm4
1179*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm5
1180*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm5, %xmm4
1181*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm6
1182*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm0, %xmm6
1183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm5, %xmm6
1184*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm6, %xmm0
1185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm6
1186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm0
1187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm1
1188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm4
1189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm1
1190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1191*9880d681SAndroid Build Coastguard Worker;
1192*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test40:
1193*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1194*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm2, %xmm0
1195*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm3, %xmm1
1196*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1197*9880d681SAndroid Build Coastguard Worker;
1198*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test40:
1199*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1200*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1201*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1202*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm3, %xmm2
1203*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm1, %xmm0, %xmm0
1204*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1205*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1206*9880d681SAndroid Build Coastguard Worker;
1207*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test40:
1208*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1209*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm1, %ymm0, %ymm0
1210*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1211*9880d681SAndroid Build Coastguard Worker;
1212*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test40:
1213*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1214*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxuw %ymm1, %ymm0, %ymm0
1215*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1216*9880d681SAndroid Build Coastguard Workerentry:
1217*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <16 x i16> %a, %b
1218*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %a, <16 x i16> %b
1219*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
1220*9880d681SAndroid Build Coastguard Worker}
1221*9880d681SAndroid Build Coastguard Worker
1222*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test41(<8 x i32> %a, <8 x i32> %b) {
1223*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test41:
1224*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
1226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm4
1227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm5
1228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm5
1229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm0
1230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
1231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm0
1232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm1
1233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm4
1234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm1
1235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1236*9880d681SAndroid Build Coastguard Worker;
1237*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test41:
1238*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1239*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm2, %xmm0
1240*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm3, %xmm1
1241*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1242*9880d681SAndroid Build Coastguard Worker;
1243*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test41:
1244*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1245*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1246*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1247*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm3, %xmm2
1248*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm1, %xmm0, %xmm0
1249*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1250*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1251*9880d681SAndroid Build Coastguard Worker;
1252*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test41:
1253*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1254*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm1, %ymm0, %ymm0
1255*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1256*9880d681SAndroid Build Coastguard Worker;
1257*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test41:
1258*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1259*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsd %ymm1, %ymm0, %ymm0
1260*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1261*9880d681SAndroid Build Coastguard Workerentry:
1262*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <8 x i32> %a, %b
1263*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b
1264*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
1265*9880d681SAndroid Build Coastguard Worker}
1266*9880d681SAndroid Build Coastguard Worker
1267*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test42(<8 x i32> %a, <8 x i32> %b) {
1268*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test42:
1269*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1270*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm6
1271*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm6
1272*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm7, %xmm7
1273*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm4
1274*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
1275*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
1276*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm2, %xmm5
1277*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm7
1278*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
1279*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm7
1280*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm5
1281*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm6
1282*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm4
1283*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
1284*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
1285*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
1286*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1287*9880d681SAndroid Build Coastguard Worker;
1288*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test42:
1289*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1290*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm2, %xmm0
1291*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm3, %xmm1
1292*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1293*9880d681SAndroid Build Coastguard Worker;
1294*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test42:
1295*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1296*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1297*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1298*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm3, %xmm2
1299*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm1, %xmm0, %xmm0
1300*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1301*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1302*9880d681SAndroid Build Coastguard Worker;
1303*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test42:
1304*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1305*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm1, %ymm0, %ymm0
1306*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1307*9880d681SAndroid Build Coastguard Worker;
1308*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test42:
1309*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1310*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsd %ymm1, %ymm0, %ymm0
1311*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1312*9880d681SAndroid Build Coastguard Workerentry:
1313*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <8 x i32> %a, %b
1314*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b
1315*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
1316*9880d681SAndroid Build Coastguard Worker}
1317*9880d681SAndroid Build Coastguard Worker
1318*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test43(<8 x i32> %a, <8 x i32> %b) {
1319*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test43:
1320*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
1322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
1323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
1324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm2, %xmm5
1325*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm0
1326*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
1327*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm5
1328*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm1
1329*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm4
1330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm4
1331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
1332*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
1333*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1334*9880d681SAndroid Build Coastguard Worker;
1335*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test43:
1336*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1337*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm2, %xmm0
1338*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm3, %xmm1
1339*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1340*9880d681SAndroid Build Coastguard Worker;
1341*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test43:
1342*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1343*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1344*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1345*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm3, %xmm2
1346*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm1, %xmm0, %xmm0
1347*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1348*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1349*9880d681SAndroid Build Coastguard Worker;
1350*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test43:
1351*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1352*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm1, %ymm0, %ymm0
1353*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1354*9880d681SAndroid Build Coastguard Worker;
1355*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test43:
1356*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1357*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsd %ymm1, %ymm0, %ymm0
1358*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1359*9880d681SAndroid Build Coastguard Workerentry:
1360*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <8 x i32> %a, %b
1361*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b
1362*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
1363*9880d681SAndroid Build Coastguard Worker}
1364*9880d681SAndroid Build Coastguard Worker
1365*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test44(<8 x i32> %a, <8 x i32> %b) {
1366*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test44:
1367*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
1369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm6
1370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
1371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm5
1372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
1373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm7
1374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm7
1375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
1376*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm7
1377*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm4
1378*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm4
1379*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm6
1380*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm5
1381*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
1382*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
1383*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
1384*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1385*9880d681SAndroid Build Coastguard Worker;
1386*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test44:
1387*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1388*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm2, %xmm0
1389*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm3, %xmm1
1390*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1391*9880d681SAndroid Build Coastguard Worker;
1392*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test44:
1393*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1394*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1395*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1396*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm3, %xmm2
1397*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm1, %xmm0, %xmm0
1398*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1399*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1400*9880d681SAndroid Build Coastguard Worker;
1401*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test44:
1402*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1403*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm1, %ymm0, %ymm0
1404*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1405*9880d681SAndroid Build Coastguard Worker;
1406*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test44:
1407*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1408*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsd %ymm1, %ymm0, %ymm0
1409*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1410*9880d681SAndroid Build Coastguard Workerentry:
1411*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <8 x i32> %a, %b
1412*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b
1413*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
1414*9880d681SAndroid Build Coastguard Worker}
1415*9880d681SAndroid Build Coastguard Worker
1416*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test45(<8 x i32> %a, <8 x i32> %b) {
1417*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test45:
1418*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1419*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
1420*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm5
1421*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
1422*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
1423*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
1424*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm6
1425*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
1426*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
1427*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm4
1428*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm4
1429*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm0
1430*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm4
1431*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm0
1432*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm6, %xmm1
1433*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm6
1434*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm1
1435*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1436*9880d681SAndroid Build Coastguard Worker;
1437*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test45:
1438*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1439*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm2, %xmm0
1440*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm3, %xmm1
1441*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1442*9880d681SAndroid Build Coastguard Worker;
1443*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test45:
1444*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1445*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1446*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1447*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm3, %xmm2
1448*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm1, %xmm0, %xmm0
1449*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1450*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1451*9880d681SAndroid Build Coastguard Worker;
1452*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test45:
1453*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1454*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm1, %ymm0, %ymm0
1455*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1456*9880d681SAndroid Build Coastguard Worker;
1457*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test45:
1458*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1459*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminud %ymm1, %ymm0, %ymm0
1460*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1461*9880d681SAndroid Build Coastguard Workerentry:
1462*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <8 x i32> %a, %b
1463*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b
1464*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
1465*9880d681SAndroid Build Coastguard Worker}
1466*9880d681SAndroid Build Coastguard Worker
1467*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test46(<8 x i32> %a, <8 x i32> %b) {
1468*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test46:
1469*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1470*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm6 = [2147483648,2147483648,2147483648,2147483648]
1471*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
1472*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm4
1473*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm7
1474*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm7
1475*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm7
1476*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
1477*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
1478*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
1479*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm8
1480*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm8
1481*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm6
1482*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm6
1483*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm4
1484*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm6
1485*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm4
1486*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
1487*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm7
1488*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm5
1489*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm5
1490*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
1491*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
1492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1493*9880d681SAndroid Build Coastguard Worker;
1494*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test46:
1495*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1496*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm2, %xmm0
1497*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm3, %xmm1
1498*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1499*9880d681SAndroid Build Coastguard Worker;
1500*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test46:
1501*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1502*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1503*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1504*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm3, %xmm2
1505*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm1, %xmm0, %xmm0
1506*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1507*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1508*9880d681SAndroid Build Coastguard Worker;
1509*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test46:
1510*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1511*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm1, %ymm0, %ymm0
1512*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1513*9880d681SAndroid Build Coastguard Worker;
1514*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test46:
1515*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1516*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminud %ymm1, %ymm0, %ymm0
1517*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1518*9880d681SAndroid Build Coastguard Workerentry:
1519*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <8 x i32> %a, %b
1520*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b
1521*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
1522*9880d681SAndroid Build Coastguard Worker}
1523*9880d681SAndroid Build Coastguard Worker
1524*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test47(<8 x i32> %a, <8 x i32> %b) {
1525*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test47:
1526*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm5 = [2147483648,2147483648,2147483648,2147483648]
1528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
1529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
1530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
1531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
1532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm4
1533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm6
1534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
1535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm5
1536*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm5
1537*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm0
1538*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
1539*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm0
1540*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm1
1541*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm4
1542*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm4
1543*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
1544*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1545*9880d681SAndroid Build Coastguard Worker;
1546*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test47:
1547*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1548*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm2, %xmm0
1549*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm3, %xmm1
1550*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1551*9880d681SAndroid Build Coastguard Worker;
1552*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test47:
1553*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1554*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1555*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1556*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm3, %xmm2
1557*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm1, %xmm0, %xmm0
1558*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1559*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1560*9880d681SAndroid Build Coastguard Worker;
1561*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test47:
1562*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1563*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm1, %ymm0, %ymm0
1564*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1565*9880d681SAndroid Build Coastguard Worker;
1566*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test47:
1567*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1568*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxud %ymm1, %ymm0, %ymm0
1569*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1570*9880d681SAndroid Build Coastguard Workerentry:
1571*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <8 x i32> %a, %b
1572*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b
1573*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
1574*9880d681SAndroid Build Coastguard Worker}
1575*9880d681SAndroid Build Coastguard Worker
1576*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test48(<8 x i32> %a, <8 x i32> %b) {
1577*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test48:
1578*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1579*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm6 = [2147483648,2147483648,2147483648,2147483648]
1580*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
1581*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm4
1582*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm7
1583*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm7
1584*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm7
1585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
1586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
1587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
1588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm8
1589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm8
1590*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm6
1591*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm6
1592*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm4
1593*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm6
1594*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm4
1595*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
1596*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm7
1597*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm5
1598*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm5
1599*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
1600*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
1601*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1602*9880d681SAndroid Build Coastguard Worker;
1603*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test48:
1604*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1605*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm2, %xmm0
1606*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm3, %xmm1
1607*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1608*9880d681SAndroid Build Coastguard Worker;
1609*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test48:
1610*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
1611*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
1612*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
1613*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm3, %xmm2
1614*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm1, %xmm0, %xmm0
1615*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1616*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
1617*9880d681SAndroid Build Coastguard Worker;
1618*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test48:
1619*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
1620*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm1, %ymm0, %ymm0
1621*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
1622*9880d681SAndroid Build Coastguard Worker;
1623*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test48:
1624*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
1625*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxud %ymm1, %ymm0, %ymm0
1626*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
1627*9880d681SAndroid Build Coastguard Workerentry:
1628*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <8 x i32> %a, %b
1629*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %a, <8 x i32> %b
1630*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
1631*9880d681SAndroid Build Coastguard Worker}
1632*9880d681SAndroid Build Coastguard Worker
1633*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test49(<16 x i8> %a, <16 x i8> %b) {
1634*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test49:
1635*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1636*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
1637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm0, %xmm2
1638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
1639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
1640*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
1641*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
1642*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1643*9880d681SAndroid Build Coastguard Worker;
1644*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test49:
1645*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1646*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm1, %xmm0
1647*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1648*9880d681SAndroid Build Coastguard Worker;
1649*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test49:
1650*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1651*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsb %xmm1, %xmm0, %xmm0
1652*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1653*9880d681SAndroid Build Coastguard Workerentry:
1654*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <16 x i8> %a, %b
1655*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a
1656*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
1657*9880d681SAndroid Build Coastguard Worker}
1658*9880d681SAndroid Build Coastguard Worker
1659*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test50(<16 x i8> %a, <16 x i8> %b) {
1660*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test50:
1661*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm2
1663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm2
1664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm3
1665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
1666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
1667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm3
1668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
1669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
1670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1671*9880d681SAndroid Build Coastguard Worker;
1672*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test50:
1673*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1674*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm1, %xmm0
1675*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1676*9880d681SAndroid Build Coastguard Worker;
1677*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test50:
1678*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1679*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsb %xmm1, %xmm0, %xmm0
1680*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1681*9880d681SAndroid Build Coastguard Workerentry:
1682*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <16 x i8> %a, %b
1683*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a
1684*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
1685*9880d681SAndroid Build Coastguard Worker}
1686*9880d681SAndroid Build Coastguard Worker
1687*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test51(<16 x i8> %a, <16 x i8> %b) {
1688*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test51:
1689*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1690*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm2
1691*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm2
1692*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
1693*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
1694*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
1695*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
1696*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1697*9880d681SAndroid Build Coastguard Worker;
1698*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test51:
1699*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1700*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm1, %xmm0
1701*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1702*9880d681SAndroid Build Coastguard Worker;
1703*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test51:
1704*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1705*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsb %xmm1, %xmm0, %xmm0
1706*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1707*9880d681SAndroid Build Coastguard Workerentry:
1708*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <16 x i8> %a, %b
1709*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a
1710*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
1711*9880d681SAndroid Build Coastguard Worker}
1712*9880d681SAndroid Build Coastguard Worker
1713*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test52(<16 x i8> %a, <16 x i8> %b) {
1714*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test52:
1715*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1716*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
1717*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm0, %xmm3
1718*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
1719*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
1720*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
1721*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
1722*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
1723*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
1724*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1725*9880d681SAndroid Build Coastguard Worker;
1726*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test52:
1727*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1728*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm1, %xmm0
1729*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1730*9880d681SAndroid Build Coastguard Worker;
1731*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test52:
1732*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1733*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsb %xmm1, %xmm0, %xmm0
1734*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1735*9880d681SAndroid Build Coastguard Workerentry:
1736*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <16 x i8> %a, %b
1737*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a
1738*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
1739*9880d681SAndroid Build Coastguard Worker}
1740*9880d681SAndroid Build Coastguard Worker
1741*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test53(<16 x i8> %a, <16 x i8> %b) {
1742*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test53:
1743*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
1744*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm1, %xmm0
1745*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
1746*9880d681SAndroid Build Coastguard Worker;
1747*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test53:
1748*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1749*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxub %xmm1, %xmm0, %xmm0
1750*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1751*9880d681SAndroid Build Coastguard Workerentry:
1752*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <16 x i8> %a, %b
1753*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a
1754*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
1755*9880d681SAndroid Build Coastguard Worker}
1756*9880d681SAndroid Build Coastguard Worker
1757*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test54(<16 x i8> %a, <16 x i8> %b) {
1758*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test54:
1759*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
1760*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm1, %xmm0
1761*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
1762*9880d681SAndroid Build Coastguard Worker;
1763*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test54:
1764*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1765*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxub %xmm1, %xmm0, %xmm0
1766*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1767*9880d681SAndroid Build Coastguard Workerentry:
1768*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <16 x i8> %a, %b
1769*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a
1770*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
1771*9880d681SAndroid Build Coastguard Worker}
1772*9880d681SAndroid Build Coastguard Worker
1773*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test55(<16 x i8> %a, <16 x i8> %b) {
1774*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test55:
1775*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
1776*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm1, %xmm0
1777*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
1778*9880d681SAndroid Build Coastguard Worker;
1779*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test55:
1780*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1781*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminub %xmm1, %xmm0, %xmm0
1782*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1783*9880d681SAndroid Build Coastguard Workerentry:
1784*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <16 x i8> %a, %b
1785*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a
1786*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
1787*9880d681SAndroid Build Coastguard Worker}
1788*9880d681SAndroid Build Coastguard Worker
1789*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @test56(<16 x i8> %a, <16 x i8> %b) {
1790*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test56:
1791*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
1792*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm1, %xmm0
1793*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
1794*9880d681SAndroid Build Coastguard Worker;
1795*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test56:
1796*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1797*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminub %xmm1, %xmm0, %xmm0
1798*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1799*9880d681SAndroid Build Coastguard Workerentry:
1800*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <16 x i8> %a, %b
1801*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i8> %b, <16 x i8> %a
1802*9880d681SAndroid Build Coastguard Worker  ret <16 x i8> %sel
1803*9880d681SAndroid Build Coastguard Worker}
1804*9880d681SAndroid Build Coastguard Worker
1805*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test57(<8 x i16> %a, <8 x i16> %b) {
1806*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test57:
1807*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
1808*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm1, %xmm0
1809*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
1810*9880d681SAndroid Build Coastguard Worker;
1811*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test57:
1812*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1813*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsw %xmm1, %xmm0, %xmm0
1814*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1815*9880d681SAndroid Build Coastguard Workerentry:
1816*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <8 x i16> %a, %b
1817*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a
1818*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
1819*9880d681SAndroid Build Coastguard Worker}
1820*9880d681SAndroid Build Coastguard Worker
1821*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test58(<8 x i16> %a, <8 x i16> %b) {
1822*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test58:
1823*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
1824*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm1, %xmm0
1825*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
1826*9880d681SAndroid Build Coastguard Worker;
1827*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test58:
1828*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1829*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsw %xmm1, %xmm0, %xmm0
1830*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1831*9880d681SAndroid Build Coastguard Workerentry:
1832*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <8 x i16> %a, %b
1833*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a
1834*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
1835*9880d681SAndroid Build Coastguard Worker}
1836*9880d681SAndroid Build Coastguard Worker
1837*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test59(<8 x i16> %a, <8 x i16> %b) {
1838*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test59:
1839*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
1840*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm1, %xmm0
1841*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
1842*9880d681SAndroid Build Coastguard Worker;
1843*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test59:
1844*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1845*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsw %xmm1, %xmm0, %xmm0
1846*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1847*9880d681SAndroid Build Coastguard Workerentry:
1848*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <8 x i16> %a, %b
1849*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a
1850*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
1851*9880d681SAndroid Build Coastguard Worker}
1852*9880d681SAndroid Build Coastguard Worker
1853*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test60(<8 x i16> %a, <8 x i16> %b) {
1854*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test60:
1855*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
1856*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm1, %xmm0
1857*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
1858*9880d681SAndroid Build Coastguard Worker;
1859*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test60:
1860*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1861*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsw %xmm1, %xmm0, %xmm0
1862*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1863*9880d681SAndroid Build Coastguard Workerentry:
1864*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <8 x i16> %a, %b
1865*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a
1866*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
1867*9880d681SAndroid Build Coastguard Worker}
1868*9880d681SAndroid Build Coastguard Worker
1869*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test61(<8 x i16> %a, <8 x i16> %b) {
1870*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test61:
1871*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768]
1873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
1874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
1875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
1876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm3, %xmm2
1877*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
1878*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
1879*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
1880*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
1881*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1882*9880d681SAndroid Build Coastguard Worker;
1883*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test61:
1884*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1885*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm1, %xmm0
1886*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1887*9880d681SAndroid Build Coastguard Worker;
1888*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test61:
1889*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1890*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxuw %xmm1, %xmm0, %xmm0
1891*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1892*9880d681SAndroid Build Coastguard Workerentry:
1893*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <8 x i16> %a, %b
1894*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a
1895*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
1896*9880d681SAndroid Build Coastguard Worker}
1897*9880d681SAndroid Build Coastguard Worker
1898*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test62(<8 x i16> %a, <8 x i16> %b) {
1899*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test62:
1900*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1901*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
1902*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm1, %xmm3
1903*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm2
1904*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm3, %xmm2
1905*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
1906*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
1907*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
1908*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
1909*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1910*9880d681SAndroid Build Coastguard Worker;
1911*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test62:
1912*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1913*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm1, %xmm0
1914*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1915*9880d681SAndroid Build Coastguard Worker;
1916*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test62:
1917*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1918*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxuw %xmm1, %xmm0, %xmm0
1919*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1920*9880d681SAndroid Build Coastguard Workerentry:
1921*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <8 x i16> %a, %b
1922*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a
1923*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
1924*9880d681SAndroid Build Coastguard Worker}
1925*9880d681SAndroid Build Coastguard Worker
1926*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test63(<8 x i16> %a, <8 x i16> %b) {
1927*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test63:
1928*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1929*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [32768,32768,32768,32768,32768,32768,32768,32768]
1930*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
1931*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
1932*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
1933*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm3, %xmm2
1934*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
1935*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
1936*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
1937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
1938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1939*9880d681SAndroid Build Coastguard Worker;
1940*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test63:
1941*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1942*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm1, %xmm0
1943*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1944*9880d681SAndroid Build Coastguard Worker;
1945*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test63:
1946*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1947*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminuw %xmm1, %xmm0, %xmm0
1948*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1949*9880d681SAndroid Build Coastguard Workerentry:
1950*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <8 x i16> %a, %b
1951*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a
1952*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
1953*9880d681SAndroid Build Coastguard Worker}
1954*9880d681SAndroid Build Coastguard Worker
1955*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test64(<8 x i16> %a, <8 x i16> %b) {
1956*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test64:
1957*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
1959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm0, %xmm3
1960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm2
1961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm3, %xmm2
1962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
1963*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
1964*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
1965*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
1966*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1967*9880d681SAndroid Build Coastguard Worker;
1968*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test64:
1969*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1970*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm1, %xmm0
1971*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1972*9880d681SAndroid Build Coastguard Worker;
1973*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test64:
1974*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
1975*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminuw %xmm1, %xmm0, %xmm0
1976*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
1977*9880d681SAndroid Build Coastguard Workerentry:
1978*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <8 x i16> %a, %b
1979*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i16> %b, <8 x i16> %a
1980*9880d681SAndroid Build Coastguard Worker  ret <8 x i16> %sel
1981*9880d681SAndroid Build Coastguard Worker}
1982*9880d681SAndroid Build Coastguard Worker
1983*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test65(<4 x i32> %a, <4 x i32> %b) {
1984*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test65:
1985*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
1986*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
1987*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm2
1988*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
1989*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
1990*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
1991*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
1992*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
1993*9880d681SAndroid Build Coastguard Worker;
1994*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test65:
1995*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
1996*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm1, %xmm0
1997*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
1998*9880d681SAndroid Build Coastguard Worker;
1999*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test65:
2000*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
2001*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsd %xmm1, %xmm0, %xmm0
2002*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
2003*9880d681SAndroid Build Coastguard Workerentry:
2004*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <4 x i32> %a, %b
2005*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a
2006*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
2007*9880d681SAndroid Build Coastguard Worker}
2008*9880d681SAndroid Build Coastguard Worker
2009*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test66(<4 x i32> %a, <4 x i32> %b) {
2010*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test66:
2011*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2012*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm2
2013*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm2
2014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm3
2015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
2016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
2017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm3
2018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
2019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
2020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2021*9880d681SAndroid Build Coastguard Worker;
2022*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test66:
2023*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2024*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm1, %xmm0
2025*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2026*9880d681SAndroid Build Coastguard Worker;
2027*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test66:
2028*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
2029*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxsd %xmm1, %xmm0, %xmm0
2030*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
2031*9880d681SAndroid Build Coastguard Workerentry:
2032*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <4 x i32> %a, %b
2033*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a
2034*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
2035*9880d681SAndroid Build Coastguard Worker}
2036*9880d681SAndroid Build Coastguard Worker
2037*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test67(<4 x i32> %a, <4 x i32> %b) {
2038*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test67:
2039*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm2
2041*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm2
2042*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
2043*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
2044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
2045*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
2046*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2047*9880d681SAndroid Build Coastguard Worker;
2048*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test67:
2049*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2050*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm1, %xmm0
2051*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2052*9880d681SAndroid Build Coastguard Worker;
2053*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test67:
2054*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
2055*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsd %xmm1, %xmm0, %xmm0
2056*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
2057*9880d681SAndroid Build Coastguard Workerentry:
2058*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <4 x i32> %a, %b
2059*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a
2060*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
2061*9880d681SAndroid Build Coastguard Worker}
2062*9880d681SAndroid Build Coastguard Worker
2063*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test68(<4 x i32> %a, <4 x i32> %b) {
2064*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test68:
2065*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2066*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
2067*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm3
2068*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
2069*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
2070*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
2071*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
2072*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
2073*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
2074*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2075*9880d681SAndroid Build Coastguard Worker;
2076*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test68:
2077*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2078*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm1, %xmm0
2079*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2080*9880d681SAndroid Build Coastguard Worker;
2081*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test68:
2082*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
2083*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminsd %xmm1, %xmm0, %xmm0
2084*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
2085*9880d681SAndroid Build Coastguard Workerentry:
2086*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <4 x i32> %a, %b
2087*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a
2088*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
2089*9880d681SAndroid Build Coastguard Worker}
2090*9880d681SAndroid Build Coastguard Worker
2091*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test69(<4 x i32> %a, <4 x i32> %b) {
2092*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test69:
2093*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2094*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
2095*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
2096*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
2097*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
2098*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm2
2099*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
2100*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
2101*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
2102*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
2103*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2104*9880d681SAndroid Build Coastguard Worker;
2105*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test69:
2106*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2107*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm1, %xmm0
2108*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2109*9880d681SAndroid Build Coastguard Worker;
2110*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test69:
2111*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
2112*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxud %xmm1, %xmm0, %xmm0
2113*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
2114*9880d681SAndroid Build Coastguard Workerentry:
2115*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <4 x i32> %a, %b
2116*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a
2117*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
2118*9880d681SAndroid Build Coastguard Worker}
2119*9880d681SAndroid Build Coastguard Worker
2120*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test70(<4 x i32> %a, <4 x i32> %b) {
2121*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test70:
2122*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2123*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm3 = [2147483648,2147483648,2147483648,2147483648]
2124*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
2125*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
2126*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm3
2127*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm2, %xmm3
2128*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
2129*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
2130*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
2131*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
2132*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
2133*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
2134*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2135*9880d681SAndroid Build Coastguard Worker;
2136*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test70:
2137*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2138*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm1, %xmm0
2139*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2140*9880d681SAndroid Build Coastguard Worker;
2141*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test70:
2142*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
2143*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpmaxud %xmm1, %xmm0, %xmm0
2144*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
2145*9880d681SAndroid Build Coastguard Workerentry:
2146*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <4 x i32> %a, %b
2147*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a
2148*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
2149*9880d681SAndroid Build Coastguard Worker}
2150*9880d681SAndroid Build Coastguard Worker
2151*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test71(<4 x i32> %a, <4 x i32> %b) {
2152*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test71:
2153*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2154*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
2155*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
2156*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
2157*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
2158*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm2
2159*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
2160*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
2161*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
2162*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
2163*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2164*9880d681SAndroid Build Coastguard Worker;
2165*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test71:
2166*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2167*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm1, %xmm0
2168*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2169*9880d681SAndroid Build Coastguard Worker;
2170*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test71:
2171*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
2172*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminud %xmm1, %xmm0, %xmm0
2173*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
2174*9880d681SAndroid Build Coastguard Workerentry:
2175*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <4 x i32> %a, %b
2176*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a
2177*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
2178*9880d681SAndroid Build Coastguard Worker}
2179*9880d681SAndroid Build Coastguard Worker
2180*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test72(<4 x i32> %a, <4 x i32> %b) {
2181*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test72:
2182*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm3 = [2147483648,2147483648,2147483648,2147483648]
2184*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm2
2185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
2186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm3
2187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm2, %xmm3
2188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
2189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
2190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
2191*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
2192*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
2193*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
2194*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2195*9880d681SAndroid Build Coastguard Worker;
2196*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test72:
2197*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2198*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm1, %xmm0
2199*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2200*9880d681SAndroid Build Coastguard Worker;
2201*9880d681SAndroid Build Coastguard Worker; AVX-LABEL: test72:
2202*9880d681SAndroid Build Coastguard Worker; AVX:       # BB#0: # %entry
2203*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    vpminud %xmm1, %xmm0, %xmm0
2204*9880d681SAndroid Build Coastguard Worker; AVX-NEXT:    retq
2205*9880d681SAndroid Build Coastguard Workerentry:
2206*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <4 x i32> %a, %b
2207*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i32> %b, <4 x i32> %a
2208*9880d681SAndroid Build Coastguard Worker  ret <4 x i32> %sel
2209*9880d681SAndroid Build Coastguard Worker}
2210*9880d681SAndroid Build Coastguard Worker
2211*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test73(<32 x i8> %a, <32 x i8> %b) {
2212*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test73:
2213*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2214*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
2215*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm4
2216*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm5
2217*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm0, %xmm5
2218*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
2219*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
2220*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm5
2221*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm3
2222*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
2223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm4
2224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
2225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
2226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2227*9880d681SAndroid Build Coastguard Worker;
2228*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test73:
2229*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2230*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm2, %xmm0
2231*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm3, %xmm1
2232*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2233*9880d681SAndroid Build Coastguard Worker;
2234*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test73:
2235*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2236*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2237*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2238*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm3, %xmm2
2239*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm1, %xmm0, %xmm0
2240*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2241*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2242*9880d681SAndroid Build Coastguard Worker;
2243*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test73:
2244*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2245*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm1, %ymm0, %ymm0
2246*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2247*9880d681SAndroid Build Coastguard Worker;
2248*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test73:
2249*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2250*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsb %ymm1, %ymm0, %ymm0
2251*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2252*9880d681SAndroid Build Coastguard Workerentry:
2253*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <32 x i8> %a, %b
2254*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a
2255*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
2256*9880d681SAndroid Build Coastguard Worker}
2257*9880d681SAndroid Build Coastguard Worker
2258*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test74(<32 x i8> %a, <32 x i8> %b) {
2259*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test74:
2260*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2261*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm6
2262*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm3, %xmm6
2263*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm7, %xmm7
2264*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm4
2265*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
2266*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
2267*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm2, %xmm5
2268*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm7
2269*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
2270*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm7
2271*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm5
2272*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm6
2273*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
2274*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
2275*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
2276*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
2277*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2278*9880d681SAndroid Build Coastguard Worker;
2279*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test74:
2280*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2281*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm2, %xmm0
2282*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm3, %xmm1
2283*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2284*9880d681SAndroid Build Coastguard Worker;
2285*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test74:
2286*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2287*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2288*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2289*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm3, %xmm2
2290*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm1, %xmm0, %xmm0
2291*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2292*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2293*9880d681SAndroid Build Coastguard Worker;
2294*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test74:
2295*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2296*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm1, %ymm0, %ymm0
2297*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2298*9880d681SAndroid Build Coastguard Worker;
2299*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test74:
2300*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2301*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsb %ymm1, %ymm0, %ymm0
2302*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2303*9880d681SAndroid Build Coastguard Workerentry:
2304*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <32 x i8> %a, %b
2305*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a
2306*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
2307*9880d681SAndroid Build Coastguard Worker}
2308*9880d681SAndroid Build Coastguard Worker
2309*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test75(<32 x i8> %a, <32 x i8> %b) {
2310*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test75:
2311*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2312*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
2313*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm3, %xmm4
2314*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
2315*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm2, %xmm5
2316*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
2317*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
2318*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm5
2319*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm3
2320*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
2321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm4
2322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
2323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
2324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2325*9880d681SAndroid Build Coastguard Worker;
2326*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test75:
2327*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2328*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm2, %xmm0
2329*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm3, %xmm1
2330*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2331*9880d681SAndroid Build Coastguard Worker;
2332*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test75:
2333*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2334*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2335*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2336*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm3, %xmm2
2337*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm1, %xmm0, %xmm0
2338*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2339*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2340*9880d681SAndroid Build Coastguard Worker;
2341*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test75:
2342*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2343*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm1, %ymm0, %ymm0
2344*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2345*9880d681SAndroid Build Coastguard Worker;
2346*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test75:
2347*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2348*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsb %ymm1, %ymm0, %ymm0
2349*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2350*9880d681SAndroid Build Coastguard Workerentry:
2351*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <32 x i8> %a, %b
2352*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a
2353*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
2354*9880d681SAndroid Build Coastguard Worker}
2355*9880d681SAndroid Build Coastguard Worker
2356*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test76(<32 x i8> %a, <32 x i8> %b) {
2357*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test76:
2358*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2359*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
2360*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm6
2361*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
2362*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm5
2363*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
2364*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm7
2365*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm0, %xmm7
2366*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
2367*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm7
2368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
2369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm4
2370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm6
2371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm5
2372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
2373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
2374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
2375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2376*9880d681SAndroid Build Coastguard Worker;
2377*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test76:
2378*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2379*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm2, %xmm0
2380*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm3, %xmm1
2381*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2382*9880d681SAndroid Build Coastguard Worker;
2383*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test76:
2384*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2385*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2386*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2387*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm3, %xmm2
2388*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm1, %xmm0, %xmm0
2389*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2390*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2391*9880d681SAndroid Build Coastguard Worker;
2392*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test76:
2393*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2394*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm1, %ymm0, %ymm0
2395*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2396*9880d681SAndroid Build Coastguard Worker;
2397*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test76:
2398*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2399*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsb %ymm1, %ymm0, %ymm0
2400*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2401*9880d681SAndroid Build Coastguard Workerentry:
2402*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <32 x i8> %a, %b
2403*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a
2404*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
2405*9880d681SAndroid Build Coastguard Worker}
2406*9880d681SAndroid Build Coastguard Worker
2407*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test77(<32 x i8> %a, <32 x i8> %b) {
2408*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test77:
2409*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
2410*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm2, %xmm0
2411*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm3, %xmm1
2412*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
2413*9880d681SAndroid Build Coastguard Worker;
2414*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test77:
2415*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2416*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2417*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2418*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm3, %xmm2
2419*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm1, %xmm0, %xmm0
2420*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2421*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2422*9880d681SAndroid Build Coastguard Worker;
2423*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test77:
2424*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2425*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm1, %ymm0, %ymm0
2426*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2427*9880d681SAndroid Build Coastguard Worker;
2428*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test77:
2429*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2430*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxub %ymm1, %ymm0, %ymm0
2431*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2432*9880d681SAndroid Build Coastguard Workerentry:
2433*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <32 x i8> %a, %b
2434*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a
2435*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
2436*9880d681SAndroid Build Coastguard Worker}
2437*9880d681SAndroid Build Coastguard Worker
2438*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test78(<32 x i8> %a, <32 x i8> %b) {
2439*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test78:
2440*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
2441*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm2, %xmm0
2442*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm3, %xmm1
2443*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
2444*9880d681SAndroid Build Coastguard Worker;
2445*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test78:
2446*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2447*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2448*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2449*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm3, %xmm2
2450*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm1, %xmm0, %xmm0
2451*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2452*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2453*9880d681SAndroid Build Coastguard Worker;
2454*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test78:
2455*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2456*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm1, %ymm0, %ymm0
2457*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2458*9880d681SAndroid Build Coastguard Worker;
2459*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test78:
2460*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2461*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxub %ymm1, %ymm0, %ymm0
2462*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2463*9880d681SAndroid Build Coastguard Workerentry:
2464*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <32 x i8> %a, %b
2465*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a
2466*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
2467*9880d681SAndroid Build Coastguard Worker}
2468*9880d681SAndroid Build Coastguard Worker
2469*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test79(<32 x i8> %a, <32 x i8> %b) {
2470*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test79:
2471*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
2472*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm2, %xmm0
2473*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm3, %xmm1
2474*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
2475*9880d681SAndroid Build Coastguard Worker;
2476*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test79:
2477*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2478*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2479*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2480*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm3, %xmm2
2481*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm1, %xmm0, %xmm0
2482*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2483*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2484*9880d681SAndroid Build Coastguard Worker;
2485*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test79:
2486*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2487*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm1, %ymm0, %ymm0
2488*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2489*9880d681SAndroid Build Coastguard Worker;
2490*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test79:
2491*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2492*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminub %ymm1, %ymm0, %ymm0
2493*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2494*9880d681SAndroid Build Coastguard Workerentry:
2495*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <32 x i8> %a, %b
2496*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a
2497*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
2498*9880d681SAndroid Build Coastguard Worker}
2499*9880d681SAndroid Build Coastguard Worker
2500*9880d681SAndroid Build Coastguard Workerdefine <32 x i8> @test80(<32 x i8> %a, <32 x i8> %b) {
2501*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test80:
2502*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
2503*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm2, %xmm0
2504*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm3, %xmm1
2505*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
2506*9880d681SAndroid Build Coastguard Worker;
2507*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test80:
2508*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2509*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2510*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2511*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm3, %xmm2
2512*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm1, %xmm0, %xmm0
2513*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2514*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2515*9880d681SAndroid Build Coastguard Worker;
2516*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test80:
2517*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2518*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm1, %ymm0, %ymm0
2519*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2520*9880d681SAndroid Build Coastguard Worker;
2521*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test80:
2522*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2523*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminub %ymm1, %ymm0, %ymm0
2524*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2525*9880d681SAndroid Build Coastguard Workerentry:
2526*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <32 x i8> %a, %b
2527*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i8> %b, <32 x i8> %a
2528*9880d681SAndroid Build Coastguard Worker  ret <32 x i8> %sel
2529*9880d681SAndroid Build Coastguard Worker}
2530*9880d681SAndroid Build Coastguard Worker
2531*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test81(<16 x i16> %a, <16 x i16> %b) {
2532*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test81:
2533*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
2534*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm2, %xmm0
2535*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm3, %xmm1
2536*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
2537*9880d681SAndroid Build Coastguard Worker;
2538*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test81:
2539*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2540*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2541*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2542*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm3, %xmm2
2543*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm1, %xmm0, %xmm0
2544*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2545*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2546*9880d681SAndroid Build Coastguard Worker;
2547*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test81:
2548*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2549*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm1, %ymm0, %ymm0
2550*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2551*9880d681SAndroid Build Coastguard Worker;
2552*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test81:
2553*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2554*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsw %ymm1, %ymm0, %ymm0
2555*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2556*9880d681SAndroid Build Coastguard Workerentry:
2557*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <16 x i16> %a, %b
2558*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a
2559*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
2560*9880d681SAndroid Build Coastguard Worker}
2561*9880d681SAndroid Build Coastguard Worker
2562*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test82(<16 x i16> %a, <16 x i16> %b) {
2563*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test82:
2564*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
2565*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm2, %xmm0
2566*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm3, %xmm1
2567*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
2568*9880d681SAndroid Build Coastguard Worker;
2569*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test82:
2570*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2571*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2572*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2573*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm3, %xmm2
2574*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm1, %xmm0, %xmm0
2575*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2576*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2577*9880d681SAndroid Build Coastguard Worker;
2578*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test82:
2579*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2580*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm1, %ymm0, %ymm0
2581*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2582*9880d681SAndroid Build Coastguard Worker;
2583*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test82:
2584*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2585*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsw %ymm1, %ymm0, %ymm0
2586*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2587*9880d681SAndroid Build Coastguard Workerentry:
2588*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <16 x i16> %a, %b
2589*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a
2590*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
2591*9880d681SAndroid Build Coastguard Worker}
2592*9880d681SAndroid Build Coastguard Worker
2593*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test83(<16 x i16> %a, <16 x i16> %b) {
2594*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test83:
2595*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
2596*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm2, %xmm0
2597*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm3, %xmm1
2598*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
2599*9880d681SAndroid Build Coastguard Worker;
2600*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test83:
2601*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2602*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2603*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2604*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm3, %xmm2
2605*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm1, %xmm0, %xmm0
2606*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2607*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2608*9880d681SAndroid Build Coastguard Worker;
2609*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test83:
2610*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2611*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm1, %ymm0, %ymm0
2612*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2613*9880d681SAndroid Build Coastguard Worker;
2614*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test83:
2615*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2616*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsw %ymm1, %ymm0, %ymm0
2617*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2618*9880d681SAndroid Build Coastguard Workerentry:
2619*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <16 x i16> %a, %b
2620*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a
2621*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
2622*9880d681SAndroid Build Coastguard Worker}
2623*9880d681SAndroid Build Coastguard Worker
2624*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test84(<16 x i16> %a, <16 x i16> %b) {
2625*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test84:
2626*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
2627*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm2, %xmm0
2628*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm3, %xmm1
2629*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
2630*9880d681SAndroid Build Coastguard Worker;
2631*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test84:
2632*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2633*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2634*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2635*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm3, %xmm2
2636*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm1, %xmm0, %xmm0
2637*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2638*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2639*9880d681SAndroid Build Coastguard Worker;
2640*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test84:
2641*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2642*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm1, %ymm0, %ymm0
2643*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2644*9880d681SAndroid Build Coastguard Worker;
2645*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test84:
2646*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2647*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsw %ymm1, %ymm0, %ymm0
2648*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2649*9880d681SAndroid Build Coastguard Workerentry:
2650*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <16 x i16> %a, %b
2651*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a
2652*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
2653*9880d681SAndroid Build Coastguard Worker}
2654*9880d681SAndroid Build Coastguard Worker
2655*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test85(<16 x i16> %a, <16 x i16> %b) {
2656*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test85:
2657*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2658*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [32768,32768,32768,32768,32768,32768,32768,32768]
2659*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm6
2660*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
2661*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm5
2662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
2663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm6, %xmm5
2664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm6
2665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
2666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm4
2667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm6, %xmm4
2668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm2
2669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
2670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm4
2671*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm3
2672*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm5
2673*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm5
2674*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
2675*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
2676*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2677*9880d681SAndroid Build Coastguard Worker;
2678*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test85:
2679*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2680*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm2, %xmm0
2681*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm3, %xmm1
2682*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2683*9880d681SAndroid Build Coastguard Worker;
2684*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test85:
2685*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2686*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2687*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2688*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm3, %xmm2
2689*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm1, %xmm0, %xmm0
2690*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2691*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2692*9880d681SAndroid Build Coastguard Worker;
2693*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test85:
2694*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2695*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm1, %ymm0, %ymm0
2696*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2697*9880d681SAndroid Build Coastguard Worker;
2698*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test85:
2699*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2700*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxuw %ymm1, %ymm0, %ymm0
2701*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2702*9880d681SAndroid Build Coastguard Workerentry:
2703*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <16 x i16> %a, %b
2704*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a
2705*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
2706*9880d681SAndroid Build Coastguard Worker}
2707*9880d681SAndroid Build Coastguard Worker
2708*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test86(<16 x i16> %a, <16 x i16> %b) {
2709*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test86:
2710*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2711*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
2712*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm3, %xmm4
2713*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm6
2714*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm6, %xmm4
2715*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
2716*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm2, %xmm5
2717*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm6, %xmm5
2718*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
2719*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
2720*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm5
2721*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm3
2722*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
2723*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm4
2724*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
2725*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
2726*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2727*9880d681SAndroid Build Coastguard Worker;
2728*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test86:
2729*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2730*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm2, %xmm0
2731*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm3, %xmm1
2732*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2733*9880d681SAndroid Build Coastguard Worker;
2734*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test86:
2735*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2736*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2737*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2738*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm3, %xmm2
2739*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm1, %xmm0, %xmm0
2740*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2741*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2742*9880d681SAndroid Build Coastguard Worker;
2743*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test86:
2744*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2745*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm1, %ymm0, %ymm0
2746*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2747*9880d681SAndroid Build Coastguard Worker;
2748*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test86:
2749*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2750*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxuw %ymm1, %ymm0, %ymm0
2751*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2752*9880d681SAndroid Build Coastguard Workerentry:
2753*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <16 x i16> %a, %b
2754*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a
2755*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
2756*9880d681SAndroid Build Coastguard Worker}
2757*9880d681SAndroid Build Coastguard Worker
2758*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test87(<16 x i16> %a, <16 x i16> %b) {
2759*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test87:
2760*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2761*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [32768,32768,32768,32768,32768,32768,32768,32768]
2762*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
2763*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
2764*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm5
2765*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
2766*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm6, %xmm5
2767*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm6
2768*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
2769*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm4
2770*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm6, %xmm4
2771*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm2
2772*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
2773*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm4
2774*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm3
2775*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm5
2776*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm5
2777*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
2778*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
2779*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2780*9880d681SAndroid Build Coastguard Worker;
2781*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test87:
2782*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2783*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm2, %xmm0
2784*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm3, %xmm1
2785*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2786*9880d681SAndroid Build Coastguard Worker;
2787*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test87:
2788*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2789*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2790*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2791*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm3, %xmm2
2792*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm1, %xmm0, %xmm0
2793*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2794*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2795*9880d681SAndroid Build Coastguard Worker;
2796*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test87:
2797*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2798*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm1, %ymm0, %ymm0
2799*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2800*9880d681SAndroid Build Coastguard Worker;
2801*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test87:
2802*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2803*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminuw %ymm1, %ymm0, %ymm0
2804*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2805*9880d681SAndroid Build Coastguard Workerentry:
2806*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <16 x i16> %a, %b
2807*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a
2808*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
2809*9880d681SAndroid Build Coastguard Worker}
2810*9880d681SAndroid Build Coastguard Worker
2811*9880d681SAndroid Build Coastguard Workerdefine <16 x i16> @test88(<16 x i16> %a, <16 x i16> %b) {
2812*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test88:
2813*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
2815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm1, %xmm4
2816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm6
2817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm6, %xmm4
2818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm5
2819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm0, %xmm5
2820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm6, %xmm5
2821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
2822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
2823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm5
2824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm3
2825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
2826*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm4
2827*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
2828*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
2829*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2830*9880d681SAndroid Build Coastguard Worker;
2831*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test88:
2832*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2833*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm2, %xmm0
2834*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm3, %xmm1
2835*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2836*9880d681SAndroid Build Coastguard Worker;
2837*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test88:
2838*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2839*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2840*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2841*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm3, %xmm2
2842*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm1, %xmm0, %xmm0
2843*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2844*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2845*9880d681SAndroid Build Coastguard Worker;
2846*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test88:
2847*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2848*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm1, %ymm0, %ymm0
2849*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2850*9880d681SAndroid Build Coastguard Worker;
2851*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test88:
2852*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2853*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminuw %ymm1, %ymm0, %ymm0
2854*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2855*9880d681SAndroid Build Coastguard Workerentry:
2856*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <16 x i16> %a, %b
2857*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i16> %b, <16 x i16> %a
2858*9880d681SAndroid Build Coastguard Worker  ret <16 x i16> %sel
2859*9880d681SAndroid Build Coastguard Worker}
2860*9880d681SAndroid Build Coastguard Worker
2861*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test89(<8 x i32> %a, <8 x i32> %b) {
2862*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test89:
2863*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2864*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
2865*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm4
2866*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm5
2867*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm5
2868*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
2869*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
2870*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm5
2871*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm3
2872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
2873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm4
2874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
2875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
2876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2877*9880d681SAndroid Build Coastguard Worker;
2878*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test89:
2879*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2880*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm2, %xmm0
2881*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm3, %xmm1
2882*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2883*9880d681SAndroid Build Coastguard Worker;
2884*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test89:
2885*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2886*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2887*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2888*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm3, %xmm2
2889*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm1, %xmm0, %xmm0
2890*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2891*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2892*9880d681SAndroid Build Coastguard Worker;
2893*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test89:
2894*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2895*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm1, %ymm0, %ymm0
2896*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2897*9880d681SAndroid Build Coastguard Worker;
2898*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test89:
2899*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2900*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsd %ymm1, %ymm0, %ymm0
2901*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2902*9880d681SAndroid Build Coastguard Workerentry:
2903*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <8 x i32> %a, %b
2904*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a
2905*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
2906*9880d681SAndroid Build Coastguard Worker}
2907*9880d681SAndroid Build Coastguard Worker
2908*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test90(<8 x i32> %a, <8 x i32> %b) {
2909*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test90:
2910*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2911*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm6
2912*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm6
2913*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm7, %xmm7
2914*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm4
2915*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
2916*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
2917*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm2, %xmm5
2918*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm7
2919*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
2920*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm7
2921*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm5
2922*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm6
2923*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
2924*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
2925*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
2926*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
2927*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2928*9880d681SAndroid Build Coastguard Worker;
2929*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test90:
2930*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2931*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm2, %xmm0
2932*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm3, %xmm1
2933*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2934*9880d681SAndroid Build Coastguard Worker;
2935*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test90:
2936*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2937*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2938*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2939*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm3, %xmm2
2940*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm1, %xmm0, %xmm0
2941*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2942*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2943*9880d681SAndroid Build Coastguard Worker;
2944*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test90:
2945*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2946*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm1, %ymm0, %ymm0
2947*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2948*9880d681SAndroid Build Coastguard Worker;
2949*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test90:
2950*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2951*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsd %ymm1, %ymm0, %ymm0
2952*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
2953*9880d681SAndroid Build Coastguard Workerentry:
2954*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <8 x i32> %a, %b
2955*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a
2956*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
2957*9880d681SAndroid Build Coastguard Worker}
2958*9880d681SAndroid Build Coastguard Worker
2959*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test91(<8 x i32> %a, <8 x i32> %b) {
2960*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test91:
2961*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
2962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
2963*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
2964*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
2965*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm2, %xmm5
2966*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
2967*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
2968*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm5
2969*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm3
2970*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
2971*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm4
2972*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
2973*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
2974*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
2975*9880d681SAndroid Build Coastguard Worker;
2976*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test91:
2977*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
2978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm2, %xmm0
2979*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm3, %xmm1
2980*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
2981*9880d681SAndroid Build Coastguard Worker;
2982*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test91:
2983*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
2984*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
2985*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
2986*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm3, %xmm2
2987*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm1, %xmm0, %xmm0
2988*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2989*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
2990*9880d681SAndroid Build Coastguard Worker;
2991*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test91:
2992*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
2993*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm1, %ymm0, %ymm0
2994*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
2995*9880d681SAndroid Build Coastguard Worker;
2996*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test91:
2997*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
2998*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsd %ymm1, %ymm0, %ymm0
2999*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
3000*9880d681SAndroid Build Coastguard Workerentry:
3001*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <8 x i32> %a, %b
3002*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a
3003*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
3004*9880d681SAndroid Build Coastguard Worker}
3005*9880d681SAndroid Build Coastguard Worker
3006*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test92(<8 x i32> %a, <8 x i32> %b) {
3007*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test92:
3008*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
3009*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
3010*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm6
3011*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
3012*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm5
3013*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
3014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm7
3015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm7
3016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
3017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm7
3018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
3019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm4
3020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm6
3021*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm5
3022*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
3023*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
3024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
3025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
3026*9880d681SAndroid Build Coastguard Worker;
3027*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test92:
3028*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
3029*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm2, %xmm0
3030*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm3, %xmm1
3031*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
3032*9880d681SAndroid Build Coastguard Worker;
3033*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test92:
3034*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3035*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
3036*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
3037*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm3, %xmm2
3038*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm1, %xmm0, %xmm0
3039*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
3040*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3041*9880d681SAndroid Build Coastguard Worker;
3042*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test92:
3043*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3044*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm1, %ymm0, %ymm0
3045*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3046*9880d681SAndroid Build Coastguard Worker;
3047*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test92:
3048*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
3049*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsd %ymm1, %ymm0, %ymm0
3050*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
3051*9880d681SAndroid Build Coastguard Workerentry:
3052*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <8 x i32> %a, %b
3053*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a
3054*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
3055*9880d681SAndroid Build Coastguard Worker}
3056*9880d681SAndroid Build Coastguard Worker
3057*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test93(<8 x i32> %a, <8 x i32> %b) {
3058*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test93:
3059*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
3060*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
3061*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm6
3062*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
3063*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm5
3064*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
3065*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm5
3066*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm6
3067*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
3068*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm4
3069*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm4
3070*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm2
3071*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
3072*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm4
3073*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm3
3074*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm5
3075*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm5
3076*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
3077*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
3078*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
3079*9880d681SAndroid Build Coastguard Worker;
3080*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test93:
3081*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
3082*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm2, %xmm0
3083*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm3, %xmm1
3084*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
3085*9880d681SAndroid Build Coastguard Worker;
3086*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test93:
3087*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3088*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
3089*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
3090*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm3, %xmm2
3091*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm1, %xmm0, %xmm0
3092*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
3093*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3094*9880d681SAndroid Build Coastguard Worker;
3095*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test93:
3096*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3097*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm1, %ymm0, %ymm0
3098*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3099*9880d681SAndroid Build Coastguard Worker;
3100*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test93:
3101*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
3102*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxud %ymm1, %ymm0, %ymm0
3103*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
3104*9880d681SAndroid Build Coastguard Workerentry:
3105*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <8 x i32> %a, %b
3106*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a
3107*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
3108*9880d681SAndroid Build Coastguard Worker}
3109*9880d681SAndroid Build Coastguard Worker
3110*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test94(<8 x i32> %a, <8 x i32> %b) {
3111*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test94:
3112*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
3113*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm6 = [2147483648,2147483648,2147483648,2147483648]
3114*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
3115*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm4
3116*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm7
3117*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm7
3118*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm7
3119*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
3120*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
3121*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
3122*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm8
3123*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm8
3124*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm6
3125*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm6
3126*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm4
3127*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm6
3128*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
3129*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
3130*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm7
3131*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm5
3132*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm5
3133*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
3134*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
3135*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
3136*9880d681SAndroid Build Coastguard Worker;
3137*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test94:
3138*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
3139*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm2, %xmm0
3140*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm3, %xmm1
3141*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
3142*9880d681SAndroid Build Coastguard Worker;
3143*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test94:
3144*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3145*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
3146*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
3147*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm3, %xmm2
3148*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm1, %xmm0, %xmm0
3149*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
3150*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3151*9880d681SAndroid Build Coastguard Worker;
3152*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test94:
3153*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3154*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm1, %ymm0, %ymm0
3155*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3156*9880d681SAndroid Build Coastguard Worker;
3157*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test94:
3158*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
3159*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxud %ymm1, %ymm0, %ymm0
3160*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
3161*9880d681SAndroid Build Coastguard Workerentry:
3162*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <8 x i32> %a, %b
3163*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a
3164*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
3165*9880d681SAndroid Build Coastguard Worker}
3166*9880d681SAndroid Build Coastguard Worker
3167*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test95(<8 x i32> %a, <8 x i32> %b) {
3168*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test95:
3169*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
3170*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
3171*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
3172*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
3173*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm5
3174*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
3175*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm5
3176*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm6
3177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
3178*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm4
3179*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm4
3180*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm2
3181*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
3182*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm4
3183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm3
3184*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm5
3185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm5
3186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
3187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
3188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
3189*9880d681SAndroid Build Coastguard Worker;
3190*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test95:
3191*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
3192*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm2, %xmm0
3193*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm3, %xmm1
3194*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
3195*9880d681SAndroid Build Coastguard Worker;
3196*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test95:
3197*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3198*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
3199*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
3200*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm3, %xmm2
3201*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm1, %xmm0, %xmm0
3202*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
3203*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3204*9880d681SAndroid Build Coastguard Worker;
3205*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test95:
3206*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3207*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm1, %ymm0, %ymm0
3208*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3209*9880d681SAndroid Build Coastguard Worker;
3210*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test95:
3211*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
3212*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminud %ymm1, %ymm0, %ymm0
3213*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
3214*9880d681SAndroid Build Coastguard Workerentry:
3215*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <8 x i32> %a, %b
3216*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a
3217*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
3218*9880d681SAndroid Build Coastguard Worker}
3219*9880d681SAndroid Build Coastguard Worker
3220*9880d681SAndroid Build Coastguard Workerdefine <8 x i32> @test96(<8 x i32> %a, <8 x i32> %b) {
3221*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test96:
3222*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
3223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm6 = [2147483648,2147483648,2147483648,2147483648]
3224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
3225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm4
3226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm7
3227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm7
3228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm7
3229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
3230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
3231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
3232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm8
3233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm8
3234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm6
3235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm6
3236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm6, %xmm4
3237*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm6
3238*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
3239*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
3240*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm7
3241*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm5
3242*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm5
3243*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
3244*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
3245*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
3246*9880d681SAndroid Build Coastguard Worker;
3247*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test96:
3248*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
3249*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm2, %xmm0
3250*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm3, %xmm1
3251*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
3252*9880d681SAndroid Build Coastguard Worker;
3253*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test96:
3254*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3255*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
3256*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
3257*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm3, %xmm2
3258*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm1, %xmm0, %xmm0
3259*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
3260*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3261*9880d681SAndroid Build Coastguard Worker;
3262*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test96:
3263*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3264*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm1, %ymm0, %ymm0
3265*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3266*9880d681SAndroid Build Coastguard Worker;
3267*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test96:
3268*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
3269*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminud %ymm1, %ymm0, %ymm0
3270*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
3271*9880d681SAndroid Build Coastguard Workerentry:
3272*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <8 x i32> %a, %b
3273*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i32> %b, <8 x i32> %a
3274*9880d681SAndroid Build Coastguard Worker  ret <8 x i32> %sel
3275*9880d681SAndroid Build Coastguard Worker}
3276*9880d681SAndroid Build Coastguard Worker
3277*9880d681SAndroid Build Coastguard Worker; ----------------------------
3278*9880d681SAndroid Build Coastguard Worker
3279*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test97(<64 x i8> %a, <64 x i8> %b) {
3280*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test97:
3281*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
3282*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
3283*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm3, %xmm8
3284*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
3285*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm2, %xmm9
3286*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm10
3287*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm10
3288*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
3289*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm0, %xmm11
3290*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
3291*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
3292*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm0
3293*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm1
3294*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm10
3295*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm1
3296*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm2
3297*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm9
3298*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm2
3299*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm3
3300*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
3301*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
3302*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
3303*9880d681SAndroid Build Coastguard Worker;
3304*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test97:
3305*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
3306*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm4, %xmm0
3307*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm5, %xmm1
3308*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm6, %xmm2
3309*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm7, %xmm3
3310*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
3311*9880d681SAndroid Build Coastguard Worker;
3312*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test97:
3313*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3314*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3315*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3316*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm4, %xmm5, %xmm4
3317*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm0, %xmm0
3318*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3319*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3320*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3321*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm4, %xmm2
3322*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm3, %xmm1, %xmm1
3323*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3324*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3325*9880d681SAndroid Build Coastguard Worker;
3326*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test97:
3327*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3328*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm2, %ymm0, %ymm0
3329*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm3, %ymm1, %ymm1
3330*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3331*9880d681SAndroid Build Coastguard Worker;
3332*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test97:
3333*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3334*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsb %zmm1, %zmm0, %zmm0
3335*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3336*9880d681SAndroid Build Coastguard Workerentry:
3337*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <64 x i8> %a, %b
3338*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b
3339*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
3340*9880d681SAndroid Build Coastguard Worker}
3341*9880d681SAndroid Build Coastguard Worker
3342*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test98(<64 x i8> %a, <64 x i8> %b) {
3343*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test98:
3344*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
3345*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
3346*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
3347*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm12
3348*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm7, %xmm12
3349*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm13, %xmm13
3350*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm3
3351*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm3
3352*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm14
3353*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm6, %xmm14
3354*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm2
3355*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm2
3356*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm15
3357*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm5, %xmm15
3358*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm10
3359*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm10
3360*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
3361*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm4, %xmm11
3362*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm13
3363*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
3364*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm13
3365*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm11
3366*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm15
3367*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm10
3368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm10
3369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm14
3370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm2
3371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm2
3372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm12
3373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm3
3374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm3
3375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
3376*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
3377*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
3378*9880d681SAndroid Build Coastguard Worker;
3379*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test98:
3380*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
3381*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm4, %xmm0
3382*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm5, %xmm1
3383*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm6, %xmm2
3384*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm7, %xmm3
3385*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
3386*9880d681SAndroid Build Coastguard Worker;
3387*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test98:
3388*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3389*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3390*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3391*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm4, %xmm5, %xmm4
3392*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm0, %xmm0
3393*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3394*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3395*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3396*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm4, %xmm2
3397*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm3, %xmm1, %xmm1
3398*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3399*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3400*9880d681SAndroid Build Coastguard Worker;
3401*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test98:
3402*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3403*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm2, %ymm0, %ymm0
3404*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm3, %ymm1, %ymm1
3405*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3406*9880d681SAndroid Build Coastguard Worker;
3407*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test98:
3408*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3409*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsb %zmm1, %zmm0, %zmm0
3410*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3411*9880d681SAndroid Build Coastguard Workerentry:
3412*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <64 x i8> %a, %b
3413*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b
3414*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
3415*9880d681SAndroid Build Coastguard Worker}
3416*9880d681SAndroid Build Coastguard Worker
3417*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test99(<64 x i8> %a, <64 x i8> %b) {
3418*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test99:
3419*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
3420*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
3421*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm7, %xmm3
3422*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
3423*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm6, %xmm9
3424*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
3425*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm5, %xmm10
3426*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
3427*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm4, %xmm11
3428*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
3429*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
3430*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm11
3431*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm1
3432*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm10
3433*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm10
3434*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm2
3435*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm9
3436*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm9
3437*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm8
3438*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm3
3439*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
3440*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
3441*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
3442*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
3443*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
3444*9880d681SAndroid Build Coastguard Worker;
3445*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test99:
3446*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
3447*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm4, %xmm0
3448*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm5, %xmm1
3449*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm6, %xmm2
3450*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm7, %xmm3
3451*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
3452*9880d681SAndroid Build Coastguard Worker;
3453*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test99:
3454*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3455*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3456*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3457*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm4, %xmm5, %xmm4
3458*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm0, %xmm0
3459*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3460*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3461*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3462*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm4, %xmm2
3463*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm3, %xmm1, %xmm1
3464*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3465*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3466*9880d681SAndroid Build Coastguard Worker;
3467*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test99:
3468*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3469*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm2, %ymm0, %ymm0
3470*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm3, %ymm1, %ymm1
3471*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3472*9880d681SAndroid Build Coastguard Worker;
3473*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test99:
3474*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3475*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsb %zmm1, %zmm0, %zmm0
3476*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3477*9880d681SAndroid Build Coastguard Workerentry:
3478*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <64 x i8> %a, %b
3479*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b
3480*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
3481*9880d681SAndroid Build Coastguard Worker}
3482*9880d681SAndroid Build Coastguard Worker
3483*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test100(<64 x i8> %a, <64 x i8> %b) {
3484*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test100:
3485*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
3486*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
3487*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
3488*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm10
3489*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm12
3490*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm8, %xmm12
3491*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm0, %xmm0
3492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm3
3493*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm3
3494*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm13
3495*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm9, %xmm13
3496*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm2
3497*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
3498*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm14
3499*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm14
3500*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm11
3501*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
3502*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm15
3503*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm10, %xmm15
3504*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm15, %xmm0
3505*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm10, %xmm15
3506*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm0
3507*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm0
3508*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm14
3509*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm11
3510*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm11
3511*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm13
3512*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm2
3513*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm2
3514*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm12
3515*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm3
3516*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm3
3517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
3518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
3519*9880d681SAndroid Build Coastguard Worker;
3520*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test100:
3521*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
3522*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm4, %xmm0
3523*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm5, %xmm1
3524*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm6, %xmm2
3525*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm7, %xmm3
3526*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
3527*9880d681SAndroid Build Coastguard Worker;
3528*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test100:
3529*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3530*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3531*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3532*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm4, %xmm5, %xmm4
3533*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm0, %xmm0
3534*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3535*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3536*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3537*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm4, %xmm2
3538*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm3, %xmm1, %xmm1
3539*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3540*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3541*9880d681SAndroid Build Coastguard Worker;
3542*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test100:
3543*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3544*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm2, %ymm0, %ymm0
3545*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm3, %ymm1, %ymm1
3546*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3547*9880d681SAndroid Build Coastguard Worker;
3548*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test100:
3549*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3550*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsb %zmm1, %zmm0, %zmm0
3551*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3552*9880d681SAndroid Build Coastguard Workerentry:
3553*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <64 x i8> %a, %b
3554*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b
3555*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
3556*9880d681SAndroid Build Coastguard Worker}
3557*9880d681SAndroid Build Coastguard Worker
3558*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test101(<64 x i8> %a, <64 x i8> %b) {
3559*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test101:
3560*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
3561*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm4, %xmm0
3562*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm5, %xmm1
3563*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm6, %xmm2
3564*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm7, %xmm3
3565*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
3566*9880d681SAndroid Build Coastguard Worker;
3567*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test101:
3568*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3569*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3570*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3571*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm4, %xmm5, %xmm4
3572*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm0, %xmm0
3573*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3574*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3575*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3576*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm4, %xmm2
3577*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm3, %xmm1, %xmm1
3578*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3579*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3580*9880d681SAndroid Build Coastguard Worker;
3581*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test101:
3582*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3583*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm2, %ymm0, %ymm0
3584*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm3, %ymm1, %ymm1
3585*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3586*9880d681SAndroid Build Coastguard Worker;
3587*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test101:
3588*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3589*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminub %zmm1, %zmm0, %zmm0
3590*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3591*9880d681SAndroid Build Coastguard Workerentry:
3592*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <64 x i8> %a, %b
3593*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b
3594*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
3595*9880d681SAndroid Build Coastguard Worker}
3596*9880d681SAndroid Build Coastguard Worker
3597*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test102(<64 x i8> %a, <64 x i8> %b) {
3598*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test102:
3599*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
3600*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm4, %xmm0
3601*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm5, %xmm1
3602*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm6, %xmm2
3603*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm7, %xmm3
3604*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
3605*9880d681SAndroid Build Coastguard Worker;
3606*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test102:
3607*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3608*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3609*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3610*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm4, %xmm5, %xmm4
3611*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm0, %xmm0
3612*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3613*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3614*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3615*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm4, %xmm2
3616*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm3, %xmm1, %xmm1
3617*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3618*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3619*9880d681SAndroid Build Coastguard Worker;
3620*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test102:
3621*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3622*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm2, %ymm0, %ymm0
3623*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm3, %ymm1, %ymm1
3624*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3625*9880d681SAndroid Build Coastguard Worker;
3626*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test102:
3627*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3628*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminub %zmm1, %zmm0, %zmm0
3629*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3630*9880d681SAndroid Build Coastguard Workerentry:
3631*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <64 x i8> %a, %b
3632*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b
3633*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
3634*9880d681SAndroid Build Coastguard Worker}
3635*9880d681SAndroid Build Coastguard Worker
3636*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test103(<64 x i8> %a, <64 x i8> %b) {
3637*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test103:
3638*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
3639*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm4, %xmm0
3640*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm5, %xmm1
3641*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm6, %xmm2
3642*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm7, %xmm3
3643*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
3644*9880d681SAndroid Build Coastguard Worker;
3645*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test103:
3646*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3647*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3648*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3649*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm4, %xmm5, %xmm4
3650*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm0, %xmm0
3651*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3652*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3653*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3654*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm4, %xmm2
3655*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm3, %xmm1, %xmm1
3656*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3657*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3658*9880d681SAndroid Build Coastguard Worker;
3659*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test103:
3660*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3661*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm2, %ymm0, %ymm0
3662*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm3, %ymm1, %ymm1
3663*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3664*9880d681SAndroid Build Coastguard Worker;
3665*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test103:
3666*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3667*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxub %zmm1, %zmm0, %zmm0
3668*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3669*9880d681SAndroid Build Coastguard Workerentry:
3670*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <64 x i8> %a, %b
3671*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b
3672*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
3673*9880d681SAndroid Build Coastguard Worker}
3674*9880d681SAndroid Build Coastguard Worker
3675*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test104(<64 x i8> %a, <64 x i8> %b) {
3676*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test104:
3677*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
3678*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm4, %xmm0
3679*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm5, %xmm1
3680*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm6, %xmm2
3681*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm7, %xmm3
3682*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
3683*9880d681SAndroid Build Coastguard Worker;
3684*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test104:
3685*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3686*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3687*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3688*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm4, %xmm5, %xmm4
3689*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm0, %xmm0
3690*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3691*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3692*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3693*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm4, %xmm2
3694*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm3, %xmm1, %xmm1
3695*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3696*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3697*9880d681SAndroid Build Coastguard Worker;
3698*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test104:
3699*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3700*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm2, %ymm0, %ymm0
3701*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm3, %ymm1, %ymm1
3702*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3703*9880d681SAndroid Build Coastguard Worker;
3704*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test104:
3705*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3706*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxub %zmm1, %zmm0, %zmm0
3707*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3708*9880d681SAndroid Build Coastguard Workerentry:
3709*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <64 x i8> %a, %b
3710*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %a, <64 x i8> %b
3711*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
3712*9880d681SAndroid Build Coastguard Worker}
3713*9880d681SAndroid Build Coastguard Worker
3714*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test105(<32 x i16> %a, <32 x i16> %b) {
3715*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test105:
3716*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
3717*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm4, %xmm0
3718*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm5, %xmm1
3719*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm6, %xmm2
3720*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm7, %xmm3
3721*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
3722*9880d681SAndroid Build Coastguard Worker;
3723*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test105:
3724*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3725*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3726*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3727*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm4, %xmm5, %xmm4
3728*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm0, %xmm0
3729*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3730*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3731*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3732*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm4, %xmm2
3733*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm3, %xmm1, %xmm1
3734*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3735*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3736*9880d681SAndroid Build Coastguard Worker;
3737*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test105:
3738*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3739*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm2, %ymm0, %ymm0
3740*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm3, %ymm1, %ymm1
3741*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3742*9880d681SAndroid Build Coastguard Worker;
3743*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test105:
3744*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3745*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsw %zmm1, %zmm0, %zmm0
3746*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3747*9880d681SAndroid Build Coastguard Workerentry:
3748*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <32 x i16> %a, %b
3749*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b
3750*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
3751*9880d681SAndroid Build Coastguard Worker}
3752*9880d681SAndroid Build Coastguard Worker
3753*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test106(<32 x i16> %a, <32 x i16> %b) {
3754*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test106:
3755*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
3756*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm4, %xmm0
3757*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm5, %xmm1
3758*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm6, %xmm2
3759*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm7, %xmm3
3760*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
3761*9880d681SAndroid Build Coastguard Worker;
3762*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test106:
3763*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3764*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3765*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3766*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm4, %xmm5, %xmm4
3767*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm0, %xmm0
3768*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3769*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3770*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3771*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm4, %xmm2
3772*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm3, %xmm1, %xmm1
3773*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3774*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3775*9880d681SAndroid Build Coastguard Worker;
3776*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test106:
3777*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3778*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm2, %ymm0, %ymm0
3779*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm3, %ymm1, %ymm1
3780*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3781*9880d681SAndroid Build Coastguard Worker;
3782*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test106:
3783*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3784*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsw %zmm1, %zmm0, %zmm0
3785*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3786*9880d681SAndroid Build Coastguard Workerentry:
3787*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <32 x i16> %a, %b
3788*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b
3789*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
3790*9880d681SAndroid Build Coastguard Worker}
3791*9880d681SAndroid Build Coastguard Worker
3792*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test107(<32 x i16> %a, <32 x i16> %b) {
3793*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test107:
3794*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
3795*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm4, %xmm0
3796*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm5, %xmm1
3797*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm6, %xmm2
3798*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm7, %xmm3
3799*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
3800*9880d681SAndroid Build Coastguard Worker;
3801*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test107:
3802*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3803*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3804*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3805*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm4, %xmm5, %xmm4
3806*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm0, %xmm0
3807*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3808*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3809*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3810*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm4, %xmm2
3811*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm3, %xmm1, %xmm1
3812*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3813*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3814*9880d681SAndroid Build Coastguard Worker;
3815*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test107:
3816*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3817*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm2, %ymm0, %ymm0
3818*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm3, %ymm1, %ymm1
3819*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3820*9880d681SAndroid Build Coastguard Worker;
3821*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test107:
3822*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3823*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsw %zmm1, %zmm0, %zmm0
3824*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3825*9880d681SAndroid Build Coastguard Workerentry:
3826*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <32 x i16> %a, %b
3827*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b
3828*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
3829*9880d681SAndroid Build Coastguard Worker}
3830*9880d681SAndroid Build Coastguard Worker
3831*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test108(<32 x i16> %a, <32 x i16> %b) {
3832*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test108:
3833*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
3834*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm4, %xmm0
3835*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm5, %xmm1
3836*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm6, %xmm2
3837*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm7, %xmm3
3838*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
3839*9880d681SAndroid Build Coastguard Worker;
3840*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test108:
3841*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3842*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3843*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3844*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm4, %xmm5, %xmm4
3845*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm0, %xmm0
3846*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3847*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3848*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3849*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm4, %xmm2
3850*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm3, %xmm1, %xmm1
3851*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3852*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3853*9880d681SAndroid Build Coastguard Worker;
3854*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test108:
3855*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3856*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm2, %ymm0, %ymm0
3857*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm3, %ymm1, %ymm1
3858*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3859*9880d681SAndroid Build Coastguard Worker;
3860*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test108:
3861*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3862*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsw %zmm1, %zmm0, %zmm0
3863*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3864*9880d681SAndroid Build Coastguard Workerentry:
3865*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <32 x i16> %a, %b
3866*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b
3867*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
3868*9880d681SAndroid Build Coastguard Worker}
3869*9880d681SAndroid Build Coastguard Worker
3870*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test109(<32 x i16> %a, <32 x i16> %b) {
3871*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test109:
3872*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
3873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm10 = [32768,32768,32768,32768,32768,32768,32768,32768]
3874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm9
3875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm9
3876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
3877*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm8
3878*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm9, %xmm8
3879*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm11
3880*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
3881*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
3882*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm9
3883*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm11, %xmm9
3884*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm11
3885*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
3886*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm12
3887*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm12
3888*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm11, %xmm12
3889*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
3890*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
3891*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm10
3892*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm11, %xmm10
3893*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm0
3894*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm10
3895*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm0
3896*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm1
3897*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm12
3898*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm1
3899*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm2
3900*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm9
3901*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm2
3902*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm3
3903*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
3904*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
3905*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
3906*9880d681SAndroid Build Coastguard Worker;
3907*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test109:
3908*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
3909*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm4, %xmm0
3910*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm5, %xmm1
3911*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm6, %xmm2
3912*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm7, %xmm3
3913*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
3914*9880d681SAndroid Build Coastguard Worker;
3915*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test109:
3916*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3917*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3918*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3919*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm4, %xmm5, %xmm4
3920*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm0, %xmm0
3921*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3922*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3923*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3924*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm4, %xmm2
3925*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm3, %xmm1, %xmm1
3926*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3927*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3928*9880d681SAndroid Build Coastguard Worker;
3929*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test109:
3930*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
3931*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm2, %ymm0, %ymm0
3932*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm3, %ymm1, %ymm1
3933*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
3934*9880d681SAndroid Build Coastguard Worker;
3935*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test109:
3936*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
3937*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuw %zmm1, %zmm0, %zmm0
3938*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
3939*9880d681SAndroid Build Coastguard Workerentry:
3940*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <32 x i16> %a, %b
3941*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b
3942*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
3943*9880d681SAndroid Build Coastguard Worker}
3944*9880d681SAndroid Build Coastguard Worker
3945*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test110(<32 x i16> %a, <32 x i16> %b) {
3946*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test110:
3947*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
3948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
3949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
3950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
3951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm7, %xmm3
3952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm12, %xmm12
3953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm3
3954*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm6, %xmm2
3955*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm2
3956*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm5, %xmm1
3957*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm1
3958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
3959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm4, %xmm11
3960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm11
3961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
3962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
3963*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm11
3964*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm1, %xmm10
3965*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm1
3966*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm1
3967*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm9
3968*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm2
3969*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm2
3970*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm8
3971*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm3
3972*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
3973*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
3974*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
3975*9880d681SAndroid Build Coastguard Worker;
3976*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test110:
3977*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
3978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm4, %xmm0
3979*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm5, %xmm1
3980*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm6, %xmm2
3981*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm7, %xmm3
3982*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
3983*9880d681SAndroid Build Coastguard Worker;
3984*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test110:
3985*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
3986*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
3987*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
3988*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm4, %xmm5, %xmm4
3989*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm0, %xmm0
3990*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
3991*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
3992*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
3993*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm4, %xmm2
3994*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm3, %xmm1, %xmm1
3995*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3996*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
3997*9880d681SAndroid Build Coastguard Worker;
3998*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test110:
3999*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4000*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm2, %ymm0, %ymm0
4001*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm3, %ymm1, %ymm1
4002*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4003*9880d681SAndroid Build Coastguard Worker;
4004*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test110:
4005*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
4006*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuw %zmm1, %zmm0, %zmm0
4007*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
4008*9880d681SAndroid Build Coastguard Workerentry:
4009*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <32 x i16> %a, %b
4010*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b
4011*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
4012*9880d681SAndroid Build Coastguard Worker}
4013*9880d681SAndroid Build Coastguard Worker
4014*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test111(<32 x i16> %a, <32 x i16> %b) {
4015*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test111:
4016*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm11 = [32768,32768,32768,32768,32768,32768,32768,32768]
4018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm9
4019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
4020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
4021*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm8
4022*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm9, %xmm8
4023*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm10
4024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
4025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
4026*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
4027*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm10, %xmm9
4028*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm12
4029*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
4030*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
4031*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
4032*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm12, %xmm10
4033*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm12
4034*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
4035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
4036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm12, %xmm11
4037*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
4038*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
4039*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm0
4040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm1
4041*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm10
4042*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm10
4043*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm2
4044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm9
4045*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm9
4046*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm3
4047*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
4048*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm8
4049*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
4050*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
4051*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
4052*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4053*9880d681SAndroid Build Coastguard Worker;
4054*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test111:
4055*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4056*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm4, %xmm0
4057*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm5, %xmm1
4058*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm6, %xmm2
4059*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm7, %xmm3
4060*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4061*9880d681SAndroid Build Coastguard Worker;
4062*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test111:
4063*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
4064*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
4065*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
4066*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm4, %xmm5, %xmm4
4067*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm0, %xmm0
4068*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
4069*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
4070*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
4071*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm4, %xmm2
4072*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm3, %xmm1, %xmm1
4073*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4074*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
4075*9880d681SAndroid Build Coastguard Worker;
4076*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test111:
4077*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4078*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm2, %ymm0, %ymm0
4079*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm3, %ymm1, %ymm1
4080*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4081*9880d681SAndroid Build Coastguard Worker;
4082*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test111:
4083*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
4084*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuw %zmm1, %zmm0, %zmm0
4085*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
4086*9880d681SAndroid Build Coastguard Workerentry:
4087*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <32 x i16> %a, %b
4088*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b
4089*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
4090*9880d681SAndroid Build Coastguard Worker}
4091*9880d681SAndroid Build Coastguard Worker
4092*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test112(<32 x i16> %a, <32 x i16> %b) {
4093*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test112:
4094*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4095*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
4096*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm3, %xmm8
4097*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm9
4098*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm9, %xmm8
4099*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm10
4100*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm2, %xmm10
4101*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm9, %xmm10
4102*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm11
4103*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm1, %xmm11
4104*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm9, %xmm11
4105*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm12
4106*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm0, %xmm12
4107*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm9, %xmm12
4108*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm0
4109*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm12
4110*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm0
4111*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm1
4112*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm11
4113*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm1
4114*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm2
4115*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm10
4116*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm2
4117*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm3
4118*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
4119*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
4120*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4121*9880d681SAndroid Build Coastguard Worker;
4122*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test112:
4123*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4124*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm4, %xmm0
4125*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm5, %xmm1
4126*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm6, %xmm2
4127*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm7, %xmm3
4128*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4129*9880d681SAndroid Build Coastguard Worker;
4130*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test112:
4131*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
4132*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
4133*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
4134*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm4, %xmm5, %xmm4
4135*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm0, %xmm0
4136*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
4137*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
4138*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
4139*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm4, %xmm2
4140*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm3, %xmm1, %xmm1
4141*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4142*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
4143*9880d681SAndroid Build Coastguard Worker;
4144*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test112:
4145*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4146*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm2, %ymm0, %ymm0
4147*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm3, %ymm1, %ymm1
4148*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4149*9880d681SAndroid Build Coastguard Worker;
4150*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test112:
4151*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
4152*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuw %zmm1, %zmm0, %zmm0
4153*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
4154*9880d681SAndroid Build Coastguard Workerentry:
4155*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <32 x i16> %a, %b
4156*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %a, <32 x i16> %b
4157*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
4158*9880d681SAndroid Build Coastguard Worker}
4159*9880d681SAndroid Build Coastguard Worker
4160*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test113(<16 x i32> %a, <16 x i32> %b) {
4161*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test113:
4162*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4163*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
4164*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm8
4165*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
4166*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm2, %xmm9
4167*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm10
4168*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm10
4169*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
4170*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm11
4171*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
4172*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
4173*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm0
4174*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm1
4175*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm10
4176*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm1
4177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm2
4178*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm9
4179*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm2
4180*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm3
4181*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
4182*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
4183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4184*9880d681SAndroid Build Coastguard Worker;
4185*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test113:
4186*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4187*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm4, %xmm0
4188*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm5, %xmm1
4189*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm6, %xmm2
4190*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm7, %xmm3
4191*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4192*9880d681SAndroid Build Coastguard Worker;
4193*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test113:
4194*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
4195*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
4196*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
4197*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm4, %xmm5, %xmm4
4198*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm0, %xmm0
4199*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
4200*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
4201*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
4202*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm4, %xmm2
4203*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm3, %xmm1, %xmm1
4204*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4205*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
4206*9880d681SAndroid Build Coastguard Worker;
4207*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test113:
4208*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4209*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm2, %ymm0, %ymm0
4210*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm3, %ymm1, %ymm1
4211*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4212*9880d681SAndroid Build Coastguard Worker;
4213*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test113:
4214*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
4215*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsd %zmm1, %zmm0, %zmm0
4216*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
4217*9880d681SAndroid Build Coastguard Workerentry:
4218*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <16 x i32> %a, %b
4219*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b
4220*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
4221*9880d681SAndroid Build Coastguard Worker}
4222*9880d681SAndroid Build Coastguard Worker
4223*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test114(<16 x i32> %a, <16 x i32> %b) {
4224*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test114:
4225*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
4227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
4228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm12
4229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm7, %xmm12
4230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm13, %xmm13
4231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm3
4232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm3
4233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm14
4234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm14
4235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm2
4236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm2
4237*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm15
4238*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm15
4239*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm10
4240*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm10
4241*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
4242*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm11
4243*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm13
4244*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
4245*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm13
4246*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm11
4247*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm15
4248*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm10
4249*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm10
4250*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm14
4251*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm2
4252*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm2
4253*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm12
4254*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm3
4255*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm3
4256*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
4257*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
4258*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4259*9880d681SAndroid Build Coastguard Worker;
4260*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test114:
4261*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4262*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm4, %xmm0
4263*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm5, %xmm1
4264*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm6, %xmm2
4265*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm7, %xmm3
4266*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4267*9880d681SAndroid Build Coastguard Worker;
4268*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test114:
4269*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
4270*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
4271*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
4272*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm4, %xmm5, %xmm4
4273*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm0, %xmm0
4274*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
4275*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
4276*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
4277*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm4, %xmm2
4278*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm3, %xmm1, %xmm1
4279*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4280*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
4281*9880d681SAndroid Build Coastguard Worker;
4282*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test114:
4283*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4284*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm2, %ymm0, %ymm0
4285*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm3, %ymm1, %ymm1
4286*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4287*9880d681SAndroid Build Coastguard Worker;
4288*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test114:
4289*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
4290*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsd %zmm1, %zmm0, %zmm0
4291*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
4292*9880d681SAndroid Build Coastguard Workerentry:
4293*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <16 x i32> %a, %b
4294*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b
4295*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
4296*9880d681SAndroid Build Coastguard Worker}
4297*9880d681SAndroid Build Coastguard Worker
4298*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test115(<16 x i32> %a, <16 x i32> %b) {
4299*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test115:
4300*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4301*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
4302*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm7, %xmm3
4303*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
4304*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm9
4305*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
4306*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm10
4307*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
4308*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm11
4309*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
4310*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
4311*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm11
4312*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm1
4313*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm10
4314*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm10
4315*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm2
4316*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm9
4317*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm9
4318*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm8
4319*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm3
4320*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
4321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
4322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
4323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
4324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4325*9880d681SAndroid Build Coastguard Worker;
4326*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test115:
4327*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4328*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm4, %xmm0
4329*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm5, %xmm1
4330*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm6, %xmm2
4331*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm7, %xmm3
4332*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4333*9880d681SAndroid Build Coastguard Worker;
4334*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test115:
4335*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
4336*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
4337*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
4338*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm4, %xmm5, %xmm4
4339*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm0, %xmm0
4340*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
4341*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
4342*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
4343*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm4, %xmm2
4344*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm3, %xmm1, %xmm1
4345*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4346*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
4347*9880d681SAndroid Build Coastguard Worker;
4348*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test115:
4349*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4350*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm2, %ymm0, %ymm0
4351*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm3, %ymm1, %ymm1
4352*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4353*9880d681SAndroid Build Coastguard Worker;
4354*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test115:
4355*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
4356*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsd %zmm1, %zmm0, %zmm0
4357*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
4358*9880d681SAndroid Build Coastguard Workerentry:
4359*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <16 x i32> %a, %b
4360*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b
4361*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
4362*9880d681SAndroid Build Coastguard Worker}
4363*9880d681SAndroid Build Coastguard Worker
4364*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test116(<16 x i32> %a, <16 x i32> %b) {
4365*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test116:
4366*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4367*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
4368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
4369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm10
4370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm12
4371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm12
4372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm0, %xmm0
4373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm3
4374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm3
4375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm13
4376*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm13
4377*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm2
4378*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
4379*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm14
4380*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm14
4381*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm11
4382*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
4383*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm15
4384*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm15
4385*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm15, %xmm0
4386*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm10, %xmm15
4387*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm0
4388*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm0
4389*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm14
4390*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm11
4391*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm11
4392*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm13
4393*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm2
4394*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm2
4395*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm12
4396*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm3
4397*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm3
4398*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
4399*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4400*9880d681SAndroid Build Coastguard Worker;
4401*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test116:
4402*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4403*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm4, %xmm0
4404*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm5, %xmm1
4405*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm6, %xmm2
4406*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm7, %xmm3
4407*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4408*9880d681SAndroid Build Coastguard Worker;
4409*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test116:
4410*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
4411*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
4412*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
4413*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm4, %xmm5, %xmm4
4414*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm0, %xmm0
4415*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
4416*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
4417*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
4418*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm4, %xmm2
4419*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm3, %xmm1, %xmm1
4420*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4421*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
4422*9880d681SAndroid Build Coastguard Worker;
4423*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test116:
4424*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4425*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm2, %ymm0, %ymm0
4426*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm3, %ymm1, %ymm1
4427*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4428*9880d681SAndroid Build Coastguard Worker;
4429*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test116:
4430*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
4431*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsd %zmm1, %zmm0, %zmm0
4432*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
4433*9880d681SAndroid Build Coastguard Workerentry:
4434*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <16 x i32> %a, %b
4435*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b
4436*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
4437*9880d681SAndroid Build Coastguard Worker}
4438*9880d681SAndroid Build Coastguard Worker
4439*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test117(<16 x i32> %a, <16 x i32> %b) {
4440*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test117:
4441*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4442*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm10 = [2147483648,2147483648,2147483648,2147483648]
4443*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm9
4444*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm9
4445*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
4446*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm8
4447*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm8
4448*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm11
4449*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
4450*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
4451*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm9
4452*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm9
4453*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm11
4454*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
4455*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm12
4456*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm12
4457*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm12
4458*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
4459*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
4460*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm10
4461*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm10
4462*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm0
4463*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm10
4464*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm0
4465*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm1
4466*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm12
4467*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm1
4468*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm2
4469*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm9
4470*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm2
4471*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm3
4472*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
4473*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
4474*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4475*9880d681SAndroid Build Coastguard Worker;
4476*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test117:
4477*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4478*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm4, %xmm0
4479*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm5, %xmm1
4480*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm6, %xmm2
4481*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm7, %xmm3
4482*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4483*9880d681SAndroid Build Coastguard Worker;
4484*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test117:
4485*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
4486*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
4487*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
4488*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm4, %xmm5, %xmm4
4489*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm0, %xmm0
4490*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
4491*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
4492*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
4493*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm4, %xmm2
4494*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm3, %xmm1, %xmm1
4495*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4496*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
4497*9880d681SAndroid Build Coastguard Worker;
4498*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test117:
4499*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4500*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm2, %ymm0, %ymm0
4501*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm3, %ymm1, %ymm1
4502*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4503*9880d681SAndroid Build Coastguard Worker;
4504*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test117:
4505*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
4506*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminud %zmm1, %zmm0, %zmm0
4507*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
4508*9880d681SAndroid Build Coastguard Workerentry:
4509*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <16 x i32> %a, %b
4510*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b
4511*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
4512*9880d681SAndroid Build Coastguard Worker}
4513*9880d681SAndroid Build Coastguard Worker
4514*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test118(<16 x i32> %a, <16 x i32> %b) {
4515*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test118:
4516*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm10
4518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm14 = [2147483648,2147483648,2147483648,2147483648]
4519*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm0
4520*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm0
4521*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm12
4522*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm12
4523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm12
4524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm0, %xmm0
4525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
4526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm8
4527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
4528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm9
4529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm13
4530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm13
4531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm13
4532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm9
4533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
4534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm11
4535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm11
4536*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm15
4537*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm15
4538*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
4539*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
4540*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm11
4541*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm14
4542*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
4543*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
4544*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
4545*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm0
4546*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm10, %xmm14
4547*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm0
4548*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm0
4549*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm15
4550*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm11
4551*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
4552*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm13
4553*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm9
4554*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm9
4555*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm12
4556*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
4557*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
4558*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
4559*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
4560*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
4561*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4562*9880d681SAndroid Build Coastguard Worker;
4563*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test118:
4564*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4565*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm4, %xmm0
4566*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm5, %xmm1
4567*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm6, %xmm2
4568*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm7, %xmm3
4569*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4570*9880d681SAndroid Build Coastguard Worker;
4571*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test118:
4572*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
4573*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
4574*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
4575*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm4, %xmm5, %xmm4
4576*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm0, %xmm0
4577*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
4578*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
4579*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
4580*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm4, %xmm2
4581*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm3, %xmm1, %xmm1
4582*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4583*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
4584*9880d681SAndroid Build Coastguard Worker;
4585*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test118:
4586*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4587*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm2, %ymm0, %ymm0
4588*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm3, %ymm1, %ymm1
4589*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4590*9880d681SAndroid Build Coastguard Worker;
4591*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test118:
4592*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
4593*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminud %zmm1, %zmm0, %zmm0
4594*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
4595*9880d681SAndroid Build Coastguard Workerentry:
4596*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <16 x i32> %a, %b
4597*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b
4598*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
4599*9880d681SAndroid Build Coastguard Worker}
4600*9880d681SAndroid Build Coastguard Worker
4601*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test119(<16 x i32> %a, <16 x i32> %b) {
4602*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test119:
4603*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4604*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm11 = [2147483648,2147483648,2147483648,2147483648]
4605*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm9
4606*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
4607*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
4608*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm8
4609*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm8
4610*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm10
4611*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
4612*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
4613*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
4614*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm9
4615*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm12
4616*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
4617*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
4618*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
4619*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm12, %xmm10
4620*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm12
4621*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
4622*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
4623*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm12, %xmm11
4624*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
4625*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
4626*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm0
4627*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm1
4628*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm10
4629*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm10
4630*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm2
4631*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm9
4632*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm9
4633*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm3
4634*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
4635*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm8
4636*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
4637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
4638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
4639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4640*9880d681SAndroid Build Coastguard Worker;
4641*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test119:
4642*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4643*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm4, %xmm0
4644*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm5, %xmm1
4645*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm6, %xmm2
4646*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm7, %xmm3
4647*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4648*9880d681SAndroid Build Coastguard Worker;
4649*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test119:
4650*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
4651*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
4652*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
4653*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm4, %xmm5, %xmm4
4654*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm0, %xmm0
4655*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
4656*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
4657*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
4658*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm4, %xmm2
4659*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm3, %xmm1, %xmm1
4660*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4661*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
4662*9880d681SAndroid Build Coastguard Worker;
4663*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test119:
4664*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4665*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm2, %ymm0, %ymm0
4666*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm3, %ymm1, %ymm1
4667*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4668*9880d681SAndroid Build Coastguard Worker;
4669*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test119:
4670*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
4671*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxud %zmm1, %zmm0, %zmm0
4672*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
4673*9880d681SAndroid Build Coastguard Workerentry:
4674*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <16 x i32> %a, %b
4675*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b
4676*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
4677*9880d681SAndroid Build Coastguard Worker}
4678*9880d681SAndroid Build Coastguard Worker
4679*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test120(<16 x i32> %a, <16 x i32> %b) {
4680*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test120:
4681*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4682*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm10
4683*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm14 = [2147483648,2147483648,2147483648,2147483648]
4684*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm0
4685*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm0
4686*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm12
4687*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm12
4688*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm12
4689*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm0, %xmm0
4690*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
4691*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm8
4692*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
4693*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm9
4694*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm13
4695*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm13
4696*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm13
4697*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm9
4698*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
4699*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm11
4700*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm11
4701*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm15
4702*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm15
4703*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
4704*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm11
4705*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm11
4706*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm14
4707*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
4708*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
4709*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
4710*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm0
4711*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm10, %xmm14
4712*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm0
4713*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm0
4714*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm15
4715*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm11
4716*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
4717*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm13
4718*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm9
4719*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm9
4720*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm12
4721*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
4722*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
4723*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
4724*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
4725*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
4726*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4727*9880d681SAndroid Build Coastguard Worker;
4728*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test120:
4729*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4730*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm4, %xmm0
4731*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm5, %xmm1
4732*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm6, %xmm2
4733*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm7, %xmm3
4734*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4735*9880d681SAndroid Build Coastguard Worker;
4736*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test120:
4737*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
4738*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
4739*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
4740*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm4, %xmm5, %xmm4
4741*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm0, %xmm0
4742*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
4743*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
4744*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
4745*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm4, %xmm2
4746*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm3, %xmm1, %xmm1
4747*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4748*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
4749*9880d681SAndroid Build Coastguard Worker;
4750*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test120:
4751*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4752*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm2, %ymm0, %ymm0
4753*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm3, %ymm1, %ymm1
4754*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4755*9880d681SAndroid Build Coastguard Worker;
4756*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test120:
4757*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
4758*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxud %zmm1, %zmm0, %zmm0
4759*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
4760*9880d681SAndroid Build Coastguard Workerentry:
4761*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <16 x i32> %a, %b
4762*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %a, <16 x i32> %b
4763*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
4764*9880d681SAndroid Build Coastguard Worker}
4765*9880d681SAndroid Build Coastguard Worker
4766*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test121(<8 x i64> %a, <8 x i64> %b) {
4767*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test121:
4768*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4769*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm9 = [2147483648,0,2147483648,0]
4770*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
4771*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm8
4772*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm10
4773*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
4774*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm11
4775*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
4776*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
4777*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm10
4778*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3]
4779*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm10
4780*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm11[1,1,3,3]
4781*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm8
4782*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm10
4783*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
4784*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm11
4785*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
4786*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm12
4787*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm12
4788*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2]
4789*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm10, %xmm11
4790*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm11[1,1,3,3]
4791*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm13, %xmm11
4792*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm12[1,1,3,3]
4793*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm10
4794*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm11
4795*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
4796*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm12
4797*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm12
4798*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm13
4799*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm13
4800*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
4801*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm12
4802*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm12[1,1,3,3]
4803*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm11
4804*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm13[1,1,3,3]
4805*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm12
4806*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
4807*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
4808*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm9
4809*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm13
4810*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm13
4811*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
4812*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm9
4813*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3]
4814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm9
4815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
4816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm11
4817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
4818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
4819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm0
4820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm1
4821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm12
4822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm1
4823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm2
4824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm10
4825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm2
4826*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm3
4827*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
4828*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
4829*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4830*9880d681SAndroid Build Coastguard Worker;
4831*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test121:
4832*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4833*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
4834*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm9
4835*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm9
4836*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm10
4837*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm10
4838*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm11
4839*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm11
4840*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm0
4841*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm8, %xmm0
4842*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm8, %xmm4
4843*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
4844*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm5
4845*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
4846*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm6
4847*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
4848*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm7
4849*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
4850*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm5, %xmm1
4851*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm6, %xmm2
4852*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm7, %xmm3
4853*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4854*9880d681SAndroid Build Coastguard Worker;
4855*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test121:
4856*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
4857*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
4858*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm5
4859*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm5, %xmm4
4860*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm3, %xmm5
4861*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm5, %ymm4
4862*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
4863*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm6
4864*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm5, %xmm6, %xmm5
4865*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm2, %xmm6
4866*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm5, %ymm6, %ymm5
4867*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
4868*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
4869*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
4870*9880d681SAndroid Build Coastguard Worker;
4871*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test121:
4872*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
4873*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm1, %ymm3, %ymm4
4874*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm0, %ymm2, %ymm5
4875*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
4876*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
4877*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
4878*9880d681SAndroid Build Coastguard Worker;
4879*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test121:
4880*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
4881*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsq %zmm1, %zmm0, %zmm0
4882*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
4883*9880d681SAndroid Build Coastguard Workerentry:
4884*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <8 x i64> %a, %b
4885*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b
4886*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
4887*9880d681SAndroid Build Coastguard Worker}
4888*9880d681SAndroid Build Coastguard Worker
4889*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test122(<8 x i64> %a, <8 x i64> %b) {
4890*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test122:
4891*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
4892*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
4893*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, -{{[0-9]+}}(%rsp) # 16-byte Spill
4894*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm7
4895*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm3
4896*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
4897*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm9
4898*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm10 = [2147483648,0,2147483648,0]
4899*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm8
4900*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm0
4901*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm0
4902*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
4903*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
4904*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
4905*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm0
4906*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
4907*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm0
4908*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
4909*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm12
4910*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm1, %xmm1
4911*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
4912*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm8
4913*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm11
4914*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
4915*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm13
4916*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm13
4917*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm14
4918*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
4919*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2]
4920*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm13
4921*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
4922*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm15, %xmm11
4923*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3]
4924*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm13
4925*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm11
4926*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
4927*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm14
4928*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm14
4929*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm15
4930*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
4931*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm14
4932*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2]
4933*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
4934*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm14
4935*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3]
4936*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm15
4937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
4938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
4939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
4940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm14
4941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
4942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm10
4943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2]
4944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3]
4945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
4946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm10
4947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm10
4948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
4949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm14
4950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
4951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm11
4952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm1
4953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm14
4954*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm1
4955*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm1
4956*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm15
4957*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm11
4958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
4959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm13
4960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm10
4961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm10
4962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm12
4963*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn -{{[0-9]+}}(%rsp), %xmm8 # 16-byte Folded Reload
4964*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
4965*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm0
4966*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
4967*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm2
4968*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
4969*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
4970*9880d681SAndroid Build Coastguard Worker;
4971*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test122:
4972*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
4973*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
4974*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm9
4975*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm7, %xmm9
4976*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm12, %xmm12
4977*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm9
4978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm10
4979*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm10
4980*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm10
4981*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm11
4982*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm5, %xmm11
4983*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm11
4984*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm4, %xmm0
4985*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm0
4986*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm8, %xmm4
4987*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
4988*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm5
4989*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
4990*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm6
4991*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
4992*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm7
4993*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
4994*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm5, %xmm1
4995*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm6, %xmm2
4996*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm7, %xmm3
4997*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
4998*9880d681SAndroid Build Coastguard Worker;
4999*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test122:
5000*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
5001*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm4
5002*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm5
5003*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm5, %xmm4
5004*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm5, %xmm5, %xmm5
5005*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm4, %xmm4
5006*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm1, %xmm6
5007*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm6, %xmm6
5008*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
5009*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm6
5010*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm7
5011*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
5012*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm6, %xmm6
5013*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm0, %xmm7
5014*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm7, %xmm5
5015*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
5016*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
5017*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
5018*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
5019*9880d681SAndroid Build Coastguard Worker;
5020*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test122:
5021*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
5022*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm1, %ymm4
5023*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm5, %ymm5, %ymm5
5024*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm5, %ymm4, %ymm4
5025*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm2, %ymm0, %ymm6
5026*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm5, %ymm6, %ymm5
5027*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
5028*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
5029*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
5030*9880d681SAndroid Build Coastguard Worker;
5031*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test122:
5032*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
5033*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsq %zmm1, %zmm0, %zmm0
5034*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
5035*9880d681SAndroid Build Coastguard Workerentry:
5036*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <8 x i64> %a, %b
5037*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b
5038*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
5039*9880d681SAndroid Build Coastguard Worker}
5040*9880d681SAndroid Build Coastguard Worker
5041*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test123(<8 x i64> %a, <8 x i64> %b) {
5042*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test123:
5043*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
5044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm9 = [2147483648,0,2147483648,0]
5045*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
5046*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm8
5047*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm10
5048*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
5049*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm11
5050*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
5051*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
5052*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm10
5053*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3]
5054*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm10
5055*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm11[1,1,3,3]
5056*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm8
5057*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm10
5058*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
5059*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm11
5060*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
5061*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm12
5062*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm12
5063*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2]
5064*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm10, %xmm11
5065*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm11[1,1,3,3]
5066*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm13, %xmm11
5067*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm12[1,1,3,3]
5068*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm10
5069*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm11
5070*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
5071*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm12
5072*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm12
5073*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm13
5074*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm13
5075*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
5076*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm12
5077*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm12[1,1,3,3]
5078*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm11
5079*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm13[1,1,3,3]
5080*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm12
5081*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
5082*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
5083*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
5084*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm13
5085*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm13
5086*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
5087*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm9
5088*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3]
5089*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm9
5090*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
5091*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm11
5092*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
5093*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
5094*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm0
5095*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm1
5096*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm12
5097*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm1
5098*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm2
5099*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm10
5100*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm2
5101*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm3
5102*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
5103*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
5104*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
5105*9880d681SAndroid Build Coastguard Worker;
5106*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test123:
5107*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
5108*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
5109*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm9
5110*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm7, %xmm9
5111*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm10
5112*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm10
5113*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm11
5114*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm5, %xmm11
5115*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm4, %xmm0
5116*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm8, %xmm4
5117*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
5118*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm5
5119*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
5120*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm6
5121*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
5122*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm7
5123*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
5124*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm5, %xmm1
5125*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm6, %xmm2
5126*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm7, %xmm3
5127*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
5128*9880d681SAndroid Build Coastguard Worker;
5129*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test123:
5130*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
5131*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm4
5132*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm5
5133*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm5, %xmm4
5134*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm1, %xmm5
5135*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm5, %ymm4
5136*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm5
5137*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm6
5138*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm5, %xmm6, %xmm5
5139*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm0, %xmm6
5140*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm5, %ymm6, %ymm5
5141*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
5142*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
5143*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
5144*9880d681SAndroid Build Coastguard Worker;
5145*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test123:
5146*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
5147*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm1, %ymm4
5148*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm2, %ymm0, %ymm5
5149*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
5150*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
5151*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
5152*9880d681SAndroid Build Coastguard Worker;
5153*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test123:
5154*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
5155*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsq %zmm1, %zmm0, %zmm0
5156*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
5157*9880d681SAndroid Build Coastguard Workerentry:
5158*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <8 x i64> %a, %b
5159*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b
5160*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
5161*9880d681SAndroid Build Coastguard Worker}
5162*9880d681SAndroid Build Coastguard Worker
5163*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test124(<8 x i64> %a, <8 x i64> %b) {
5164*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test124:
5165*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
5166*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm11
5167*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, -{{[0-9]+}}(%rsp) # 16-byte Spill
5168*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm7
5169*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm3
5170*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
5171*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm9
5172*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm10 = [2147483648,0,2147483648,0]
5173*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
5174*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm8
5175*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
5176*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm0
5177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
5178*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
5179*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
5180*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm0
5181*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
5182*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm0
5183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
5184*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm12
5185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm1, %xmm1
5186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
5187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm8
5188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm11
5189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
5190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm13
5191*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm13
5192*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm14
5193*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
5194*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2]
5195*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm13
5196*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
5197*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm15, %xmm11
5198*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3]
5199*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm13
5200*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm11
5201*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
5202*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm14
5203*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm14
5204*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm15
5205*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
5206*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm14
5207*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2]
5208*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
5209*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm14
5210*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3]
5211*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm15
5212*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm11
5213*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
5214*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm10
5215*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm14
5216*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
5217*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm10
5218*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2]
5219*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3]
5220*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
5221*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm10
5222*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm10
5223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
5224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm14
5225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
5226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm11
5227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm1
5228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm14
5229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm1
5230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm1
5231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm15
5232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm11
5233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
5234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm13
5235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm10
5236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm10
5237*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm12
5238*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn -{{[0-9]+}}(%rsp), %xmm8 # 16-byte Folded Reload
5239*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
5240*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm0
5241*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
5242*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm2
5243*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
5244*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
5245*9880d681SAndroid Build Coastguard Worker;
5246*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test124:
5247*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
5248*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
5249*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm9
5250*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm9
5251*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm0, %xmm0
5252*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm9
5253*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm10
5254*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm10
5255*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
5256*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm11
5257*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm11
5258*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
5259*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm12
5260*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm8, %xmm12
5261*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm0
5262*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm8, %xmm4
5263*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
5264*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm5
5265*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
5266*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm6
5267*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
5268*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm7
5269*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
5270*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm5, %xmm1
5271*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm6, %xmm2
5272*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm7, %xmm3
5273*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
5274*9880d681SAndroid Build Coastguard Worker;
5275*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test124:
5276*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
5277*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
5278*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm5
5279*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm5, %xmm4
5280*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm5, %xmm5, %xmm5
5281*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm4, %xmm4
5282*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm3, %xmm6
5283*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm6, %xmm6
5284*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
5285*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm6
5286*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm7
5287*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
5288*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm6, %xmm6
5289*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm2, %xmm7
5290*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm7, %xmm5
5291*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
5292*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
5293*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
5294*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
5295*9880d681SAndroid Build Coastguard Worker;
5296*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test124:
5297*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
5298*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm1, %ymm3, %ymm4
5299*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm5, %ymm5, %ymm5
5300*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm5, %ymm4, %ymm4
5301*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm0, %ymm2, %ymm6
5302*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm5, %ymm6, %ymm5
5303*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
5304*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
5305*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
5306*9880d681SAndroid Build Coastguard Worker;
5307*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test124:
5308*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
5309*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsq %zmm1, %zmm0, %zmm0
5310*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
5311*9880d681SAndroid Build Coastguard Workerentry:
5312*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <8 x i64> %a, %b
5313*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b
5314*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
5315*9880d681SAndroid Build Coastguard Worker}
5316*9880d681SAndroid Build Coastguard Worker
5317*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test125(<8 x i64> %a, <8 x i64> %b) {
5318*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test125:
5319*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
5320*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm9 = [2147483648,2147483648,2147483648,2147483648]
5321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
5322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm8
5323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm10
5324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
5325*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm11
5326*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
5327*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
5328*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm10
5329*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3]
5330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm10
5331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm11[1,1,3,3]
5332*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm8
5333*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm10
5334*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
5335*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm11
5336*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
5337*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm12
5338*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm12
5339*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2]
5340*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm10, %xmm11
5341*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm11[1,1,3,3]
5342*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm13, %xmm11
5343*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm12[1,1,3,3]
5344*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm10
5345*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm11
5346*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
5347*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm12
5348*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm12
5349*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm13
5350*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm13
5351*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
5352*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm12
5353*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm12[1,1,3,3]
5354*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm11
5355*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm13[1,1,3,3]
5356*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm12
5357*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
5358*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
5359*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm9
5360*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm13
5361*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm13
5362*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
5363*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm9
5364*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3]
5365*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm9
5366*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
5367*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm11
5368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
5369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
5370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm0
5371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm1
5372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm12
5373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm1
5374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm2
5375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm10
5376*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm2
5377*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm3
5378*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
5379*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
5380*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
5381*9880d681SAndroid Build Coastguard Worker;
5382*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test125:
5383*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
5384*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
5385*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
5386*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm10
5387*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
5388*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm9
5389*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm9
5390*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm10, %xmm9
5391*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm11
5392*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
5393*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm10
5394*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
5395*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm11, %xmm10
5396*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm12
5397*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm12
5398*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm11
5399*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
5400*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm12, %xmm11
5401*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm8, %xmm12
5402*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm12
5403*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm4, %xmm0
5404*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm12, %xmm0
5405*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm8, %xmm4
5406*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
5407*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm5
5408*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
5409*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm6
5410*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
5411*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm7
5412*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
5413*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm5, %xmm1
5414*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm6, %xmm2
5415*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm7, %xmm3
5416*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
5417*9880d681SAndroid Build Coastguard Worker;
5418*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test125:
5419*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
5420*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
5421*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]
5422*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm4, %xmm4
5423*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm6
5424*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
5425*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm6, %xmm4
5426*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm1, %xmm6
5427*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm3, %xmm7
5428*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
5429*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
5430*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm6
5431*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
5432*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm7
5433*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm7, %xmm7
5434*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
5435*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm0, %xmm7
5436*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm2, %xmm5
5437*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm5, %xmm5
5438*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
5439*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
5440*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
5441*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
5442*9880d681SAndroid Build Coastguard Worker;
5443*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test125:
5444*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
5445*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm4
5446*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm1, %ymm5
5447*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm3, %ymm6
5448*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm5, %ymm6, %ymm5
5449*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm0, %ymm6
5450*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm2, %ymm4
5451*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm6, %ymm4, %ymm4
5452*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm0, %ymm2, %ymm0
5453*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm1, %ymm3, %ymm1
5454*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
5455*9880d681SAndroid Build Coastguard Worker;
5456*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test125:
5457*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
5458*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminuq %zmm1, %zmm0, %zmm0
5459*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
5460*9880d681SAndroid Build Coastguard Workerentry:
5461*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <8 x i64> %a, %b
5462*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b
5463*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
5464*9880d681SAndroid Build Coastguard Worker}
5465*9880d681SAndroid Build Coastguard Worker
5466*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test126(<8 x i64> %a, <8 x i64> %b) {
5467*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test126:
5468*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
5469*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
5470*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, -{{[0-9]+}}(%rsp) # 16-byte Spill
5471*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm7
5472*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm3
5473*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
5474*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm9
5475*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm10 = [2147483648,2147483648,2147483648,2147483648]
5476*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm8
5477*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm0
5478*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm0
5479*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
5480*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
5481*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
5482*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm0
5483*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
5484*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm0
5485*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
5486*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm12
5487*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm1, %xmm1
5488*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
5489*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm8
5490*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm11
5491*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
5492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm13
5493*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm13
5494*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm14
5495*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
5496*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2]
5497*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm13
5498*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
5499*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm15, %xmm11
5500*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3]
5501*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm13
5502*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm11
5503*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
5504*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm14
5505*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm14
5506*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm15
5507*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
5508*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm14
5509*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2]
5510*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
5511*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm14
5512*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3]
5513*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm15
5514*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
5515*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
5516*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
5517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm14
5518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
5519*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm10
5520*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2]
5521*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3]
5522*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
5523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm10
5524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm10
5525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
5526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm14
5527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
5528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm11
5529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm1
5530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm14
5531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm1
5532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm1
5533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm15
5534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm11
5535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
5536*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm13
5537*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm10
5538*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm10
5539*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm12
5540*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn -{{[0-9]+}}(%rsp), %xmm8 # 16-byte Folded Reload
5541*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
5542*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm0
5543*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
5544*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm2
5545*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
5546*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
5547*9880d681SAndroid Build Coastguard Worker;
5548*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test126:
5549*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
5550*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm9
5551*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
5552*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm10
5553*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
5554*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm8
5555*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm8
5556*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm10, %xmm8
5557*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm12, %xmm12
5558*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm8
5559*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm11
5560*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
5561*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm10
5562*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
5563*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm11, %xmm10
5564*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm10
5565*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm13
5566*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm13
5567*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm11
5568*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
5569*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm13, %xmm11
5570*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm11
5571*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm13
5572*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm13
5573*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm9, %xmm0
5574*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm13, %xmm0
5575*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm0
5576*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm9, %xmm4
5577*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
5578*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm5
5579*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
5580*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm6
5581*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm8, %xmm0
5582*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm7
5583*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
5584*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm5, %xmm1
5585*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm6, %xmm2
5586*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm7, %xmm3
5587*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
5588*9880d681SAndroid Build Coastguard Worker;
5589*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test126:
5590*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
5591*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm4
5592*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]
5593*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm4, %xmm4
5594*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm6
5595*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
5596*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm6, %xmm4
5597*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm8, %xmm8, %xmm8
5598*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm4, %xmm4
5599*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm3, %xmm7
5600*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm1, %xmm6
5601*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm6, %xmm6
5602*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm6, %xmm6
5603*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
5604*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm6
5605*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
5606*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm7
5607*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm7, %xmm7
5608*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
5609*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm6, %xmm6
5610*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm2, %xmm7
5611*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm0, %xmm5
5612*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm5, %xmm5
5613*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm5, %xmm5
5614*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
5615*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
5616*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
5617*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
5618*9880d681SAndroid Build Coastguard Worker;
5619*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test126:
5620*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
5621*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm4
5622*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm3, %ymm5
5623*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm1, %ymm6
5624*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm5, %ymm6, %ymm5
5625*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm6, %ymm6, %ymm6
5626*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm6, %ymm5, %ymm5
5627*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm2, %ymm7
5628*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm0, %ymm4
5629*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm7, %ymm4, %ymm4
5630*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm6, %ymm4, %ymm4
5631*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm0, %ymm2, %ymm0
5632*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm1, %ymm3, %ymm1
5633*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
5634*9880d681SAndroid Build Coastguard Worker;
5635*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test126:
5636*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
5637*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminuq %zmm1, %zmm0, %zmm0
5638*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
5639*9880d681SAndroid Build Coastguard Workerentry:
5640*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <8 x i64> %a, %b
5641*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b
5642*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
5643*9880d681SAndroid Build Coastguard Worker}
5644*9880d681SAndroid Build Coastguard Worker
5645*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test127(<8 x i64> %a, <8 x i64> %b) {
5646*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test127:
5647*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
5648*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm9 = [2147483648,2147483648,2147483648,2147483648]
5649*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
5650*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm8
5651*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm10
5652*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
5653*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm11
5654*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
5655*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
5656*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm10
5657*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3]
5658*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm10
5659*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm11[1,1,3,3]
5660*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm8
5661*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm10
5662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
5663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm11
5664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
5665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm12
5666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm12
5667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2]
5668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm10, %xmm11
5669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm11[1,1,3,3]
5670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm13, %xmm11
5671*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm12[1,1,3,3]
5672*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm10
5673*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm11
5674*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
5675*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm12
5676*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm12
5677*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm13
5678*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm13
5679*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
5680*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm12
5681*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm12[1,1,3,3]
5682*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm11
5683*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm13[1,1,3,3]
5684*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm12
5685*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
5686*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm11
5687*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
5688*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm13
5689*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm13
5690*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
5691*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm9
5692*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3]
5693*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm9
5694*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
5695*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm11
5696*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
5697*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
5698*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm0
5699*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm1
5700*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm12
5701*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm1
5702*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm2
5703*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm10
5704*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm2
5705*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm3
5706*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
5707*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm3
5708*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
5709*9880d681SAndroid Build Coastguard Worker;
5710*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test127:
5711*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
5712*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
5713*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
5714*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm10
5715*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
5716*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm9
5717*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm9
5718*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm10, %xmm9
5719*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm11
5720*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
5721*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm10
5722*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
5723*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm11, %xmm10
5724*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm12
5725*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm12
5726*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm11
5727*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
5728*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm12, %xmm11
5729*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm12
5730*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm12
5731*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm8, %xmm0
5732*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm12, %xmm0
5733*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm8, %xmm4
5734*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
5735*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm5
5736*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
5737*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm6
5738*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
5739*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm7
5740*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
5741*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm5, %xmm1
5742*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm6, %xmm2
5743*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm7, %xmm3
5744*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
5745*9880d681SAndroid Build Coastguard Worker;
5746*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test127:
5747*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
5748*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm4
5749*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]
5750*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm4, %xmm4
5751*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm6
5752*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
5753*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm6, %xmm4
5754*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm3, %xmm6
5755*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm1, %xmm7
5756*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
5757*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
5758*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm6
5759*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
5760*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm7
5761*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm7, %xmm7
5762*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
5763*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm2, %xmm7
5764*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm0, %xmm5
5765*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm5, %xmm5
5766*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
5767*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
5768*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
5769*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
5770*9880d681SAndroid Build Coastguard Worker;
5771*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test127:
5772*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
5773*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm4
5774*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm3, %ymm5
5775*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm1, %ymm6
5776*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm5, %ymm6, %ymm5
5777*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm2, %ymm6
5778*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm0, %ymm4
5779*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm6, %ymm4, %ymm4
5780*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm0, %ymm2, %ymm0
5781*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm1, %ymm3, %ymm1
5782*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
5783*9880d681SAndroid Build Coastguard Worker;
5784*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test127:
5785*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
5786*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxuq %zmm1, %zmm0, %zmm0
5787*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
5788*9880d681SAndroid Build Coastguard Workerentry:
5789*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <8 x i64> %a, %b
5790*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b
5791*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
5792*9880d681SAndroid Build Coastguard Worker}
5793*9880d681SAndroid Build Coastguard Worker
5794*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test128(<8 x i64> %a, <8 x i64> %b) {
5795*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test128:
5796*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
5797*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm11
5798*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, -{{[0-9]+}}(%rsp) # 16-byte Spill
5799*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm7
5800*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm3
5801*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
5802*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm9
5803*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm10 = [2147483648,2147483648,2147483648,2147483648]
5804*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
5805*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm8
5806*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
5807*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm0
5808*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
5809*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
5810*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
5811*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm0
5812*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
5813*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm0
5814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
5815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm12
5816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm1, %xmm1
5817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
5818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm8
5819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm11
5820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
5821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm13
5822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm13
5823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm14
5824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
5825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2]
5826*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm13
5827*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
5828*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm15, %xmm11
5829*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3]
5830*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm13
5831*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm11
5832*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
5833*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm14
5834*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm14
5835*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm15
5836*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
5837*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm14
5838*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2]
5839*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
5840*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm14
5841*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3]
5842*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm15
5843*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm11
5844*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
5845*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm10
5846*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm14
5847*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
5848*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm10
5849*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2]
5850*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3]
5851*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
5852*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm10
5853*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm10
5854*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
5855*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm14
5856*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
5857*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm11
5858*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm1
5859*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm14
5860*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm1
5861*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm1
5862*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm15
5863*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm11
5864*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
5865*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm13
5866*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm10
5867*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm10
5868*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm12
5869*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn -{{[0-9]+}}(%rsp), %xmm8 # 16-byte Folded Reload
5870*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
5871*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm0
5872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
5873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm2
5874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
5875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
5876*9880d681SAndroid Build Coastguard Worker;
5877*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test128:
5878*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
5879*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm9
5880*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
5881*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm10
5882*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
5883*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm8
5884*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm8
5885*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm10, %xmm8
5886*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm12, %xmm12
5887*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm8
5888*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm11
5889*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
5890*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm10
5891*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
5892*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm11, %xmm10
5893*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm10
5894*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm13
5895*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm13
5896*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm11
5897*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
5898*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm13, %xmm11
5899*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm11
5900*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm13
5901*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm13
5902*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm4, %xmm0
5903*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm13, %xmm0
5904*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm0
5905*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm9, %xmm4
5906*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
5907*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm5
5908*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
5909*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm6
5910*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm8, %xmm0
5911*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm7
5912*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
5913*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm5, %xmm1
5914*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm6, %xmm2
5915*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm7, %xmm3
5916*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
5917*9880d681SAndroid Build Coastguard Worker;
5918*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test128:
5919*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
5920*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
5921*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]
5922*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm4, %xmm4
5923*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm6
5924*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
5925*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm6, %xmm4
5926*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm8, %xmm8, %xmm8
5927*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm4, %xmm4
5928*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm1, %xmm7
5929*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm3, %xmm6
5930*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm6, %xmm6
5931*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm6, %xmm6
5932*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
5933*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm6
5934*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
5935*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm7
5936*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm7, %xmm7
5937*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
5938*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm6, %xmm6
5939*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm0, %xmm7
5940*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm2, %xmm5
5941*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm5, %xmm5
5942*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm5, %xmm5
5943*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
5944*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm0, %ymm2, %ymm0
5945*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm1, %ymm3, %ymm1
5946*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
5947*9880d681SAndroid Build Coastguard Worker;
5948*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test128:
5949*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
5950*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm4
5951*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm1, %ymm5
5952*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm3, %ymm6
5953*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm5, %ymm6, %ymm5
5954*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm6, %ymm6, %ymm6
5955*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm6, %ymm5, %ymm5
5956*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm0, %ymm7
5957*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm2, %ymm4
5958*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm7, %ymm4, %ymm4
5959*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm6, %ymm4, %ymm4
5960*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm0, %ymm2, %ymm0
5961*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm1, %ymm3, %ymm1
5962*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
5963*9880d681SAndroid Build Coastguard Worker;
5964*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test128:
5965*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
5966*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxuq %zmm1, %zmm0, %zmm0
5967*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
5968*9880d681SAndroid Build Coastguard Workerentry:
5969*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <8 x i64> %a, %b
5970*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %a, <8 x i64> %b
5971*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
5972*9880d681SAndroid Build Coastguard Worker}
5973*9880d681SAndroid Build Coastguard Worker
5974*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test129(<64 x i8> %a, <64 x i8> %b) {
5975*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test129:
5976*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
5977*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
5978*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm3
5979*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm8, %xmm3
5980*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
5981*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm2, %xmm9
5982*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm10
5983*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm10
5984*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
5985*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm0, %xmm11
5986*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm4
5987*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
5988*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm11
5989*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
5990*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
5991*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
5992*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
5993*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
5994*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
5995*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm7
5996*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm3
5997*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm3
5998*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
5999*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
6000*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
6001*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
6002*9880d681SAndroid Build Coastguard Worker;
6003*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test129:
6004*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
6005*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm4, %xmm0
6006*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm5, %xmm1
6007*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm6, %xmm2
6008*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm7, %xmm3
6009*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
6010*9880d681SAndroid Build Coastguard Worker;
6011*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test129:
6012*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6013*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6014*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6015*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm4, %xmm5, %xmm4
6016*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm0, %xmm0
6017*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6018*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6019*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6020*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm4, %xmm2
6021*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm3, %xmm1, %xmm1
6022*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6023*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6024*9880d681SAndroid Build Coastguard Worker;
6025*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test129:
6026*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6027*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm2, %ymm0, %ymm0
6028*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm3, %ymm1, %ymm1
6029*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6030*9880d681SAndroid Build Coastguard Worker;
6031*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test129:
6032*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6033*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsb %zmm1, %zmm0, %zmm0
6034*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6035*9880d681SAndroid Build Coastguard Workerentry:
6036*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <64 x i8> %a, %b
6037*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a
6038*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
6039*9880d681SAndroid Build Coastguard Worker}
6040*9880d681SAndroid Build Coastguard Worker
6041*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test130(<64 x i8> %a, <64 x i8> %b) {
6042*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test130:
6043*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
6044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm8
6045*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm12
6046*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm7, %xmm12
6047*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm13, %xmm13
6048*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm9
6049*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm9
6050*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm14
6051*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm6, %xmm14
6052*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm2
6053*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm2
6054*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm15
6055*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm5, %xmm15
6056*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm10
6057*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm10
6058*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
6059*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm4, %xmm11
6060*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm13
6061*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
6062*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm13
6063*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm11
6064*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm15
6065*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
6066*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm10
6067*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm14
6068*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm2
6069*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm2
6070*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm12
6071*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm9
6072*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm9
6073*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
6074*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
6075*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm3
6076*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
6077*9880d681SAndroid Build Coastguard Worker;
6078*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test130:
6079*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
6080*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm4, %xmm0
6081*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm5, %xmm1
6082*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm6, %xmm2
6083*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsb %xmm7, %xmm3
6084*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
6085*9880d681SAndroid Build Coastguard Worker;
6086*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test130:
6087*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6088*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6089*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6090*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm4, %xmm5, %xmm4
6091*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm0, %xmm0
6092*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6093*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6094*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6095*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm2, %xmm4, %xmm2
6096*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsb %xmm3, %xmm1, %xmm1
6097*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6098*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6099*9880d681SAndroid Build Coastguard Worker;
6100*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test130:
6101*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6102*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm2, %ymm0, %ymm0
6103*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsb %ymm3, %ymm1, %ymm1
6104*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6105*9880d681SAndroid Build Coastguard Worker;
6106*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test130:
6107*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6108*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsb %zmm1, %zmm0, %zmm0
6109*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6110*9880d681SAndroid Build Coastguard Workerentry:
6111*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <64 x i8> %a, %b
6112*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a
6113*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
6114*9880d681SAndroid Build Coastguard Worker}
6115*9880d681SAndroid Build Coastguard Worker
6116*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test131(<64 x i8> %a, <64 x i8> %b) {
6117*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test131:
6118*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
6119*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
6120*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm7, %xmm3
6121*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
6122*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm6, %xmm9
6123*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
6124*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm5, %xmm10
6125*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
6126*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm4, %xmm11
6127*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm4
6128*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
6129*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm11
6130*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
6131*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
6132*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
6133*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
6134*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
6135*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
6136*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm7
6137*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm3
6138*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm3
6139*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
6140*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
6141*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
6142*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
6143*9880d681SAndroid Build Coastguard Worker;
6144*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test131:
6145*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
6146*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm4, %xmm0
6147*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm5, %xmm1
6148*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm6, %xmm2
6149*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm7, %xmm3
6150*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
6151*9880d681SAndroid Build Coastguard Worker;
6152*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test131:
6153*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6154*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6155*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6156*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm4, %xmm5, %xmm4
6157*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm0, %xmm0
6158*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6159*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6160*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6161*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm4, %xmm2
6162*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm3, %xmm1, %xmm1
6163*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6164*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6165*9880d681SAndroid Build Coastguard Worker;
6166*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test131:
6167*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6168*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm2, %ymm0, %ymm0
6169*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm3, %ymm1, %ymm1
6170*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6171*9880d681SAndroid Build Coastguard Worker;
6172*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test131:
6173*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6174*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsb %zmm1, %zmm0, %zmm0
6175*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6176*9880d681SAndroid Build Coastguard Workerentry:
6177*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <64 x i8> %a, %b
6178*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a
6179*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
6180*9880d681SAndroid Build Coastguard Worker}
6181*9880d681SAndroid Build Coastguard Worker
6182*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test132(<64 x i8> %a, <64 x i8> %b) {
6183*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test132:
6184*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
6185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm8
6186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm10
6187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm12
6188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm3, %xmm12
6189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm0, %xmm0
6190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm9
6191*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
6192*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm13
6193*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm8, %xmm13
6194*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm2
6195*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
6196*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm14
6197*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm1, %xmm14
6198*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm11
6199*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
6200*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm15
6201*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtb %xmm10, %xmm15
6202*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm15, %xmm0
6203*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm15
6204*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm10, %xmm0
6205*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm0
6206*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm14
6207*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm11
6208*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm11
6209*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm13
6210*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm2
6211*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm2
6212*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm12
6213*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm9
6214*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm9
6215*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
6216*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm3
6217*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
6218*9880d681SAndroid Build Coastguard Worker;
6219*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test132:
6220*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
6221*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm4, %xmm0
6222*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm5, %xmm1
6223*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm6, %xmm2
6224*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsb %xmm7, %xmm3
6225*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
6226*9880d681SAndroid Build Coastguard Worker;
6227*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test132:
6228*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6229*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6230*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6231*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm4, %xmm5, %xmm4
6232*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm0, %xmm0
6233*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6234*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6235*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6236*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm2, %xmm4, %xmm2
6237*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsb %xmm3, %xmm1, %xmm1
6238*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6239*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6240*9880d681SAndroid Build Coastguard Worker;
6241*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test132:
6242*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6243*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm2, %ymm0, %ymm0
6244*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsb %ymm3, %ymm1, %ymm1
6245*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6246*9880d681SAndroid Build Coastguard Worker;
6247*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test132:
6248*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6249*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsb %zmm1, %zmm0, %zmm0
6250*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6251*9880d681SAndroid Build Coastguard Workerentry:
6252*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <64 x i8> %a, %b
6253*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a
6254*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
6255*9880d681SAndroid Build Coastguard Worker}
6256*9880d681SAndroid Build Coastguard Worker
6257*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test133(<64 x i8> %a, <64 x i8> %b) {
6258*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test133:
6259*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
6260*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm4, %xmm0
6261*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm5, %xmm1
6262*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm6, %xmm2
6263*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm7, %xmm3
6264*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
6265*9880d681SAndroid Build Coastguard Worker;
6266*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test133:
6267*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6268*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6269*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6270*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm4, %xmm5, %xmm4
6271*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm0, %xmm0
6272*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6273*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6274*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6275*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm4, %xmm2
6276*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm3, %xmm1, %xmm1
6277*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6278*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6279*9880d681SAndroid Build Coastguard Worker;
6280*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test133:
6281*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6282*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm2, %ymm0, %ymm0
6283*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm3, %ymm1, %ymm1
6284*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6285*9880d681SAndroid Build Coastguard Worker;
6286*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test133:
6287*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6288*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxub %zmm1, %zmm0, %zmm0
6289*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6290*9880d681SAndroid Build Coastguard Workerentry:
6291*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <64 x i8> %a, %b
6292*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a
6293*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
6294*9880d681SAndroid Build Coastguard Worker}
6295*9880d681SAndroid Build Coastguard Worker
6296*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test134(<64 x i8> %a, <64 x i8> %b) {
6297*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test134:
6298*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
6299*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm4, %xmm0
6300*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm5, %xmm1
6301*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm6, %xmm2
6302*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxub %xmm7, %xmm3
6303*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
6304*9880d681SAndroid Build Coastguard Worker;
6305*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test134:
6306*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6307*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6308*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6309*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm4, %xmm5, %xmm4
6310*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm0, %xmm0
6311*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6312*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6313*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6314*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm2, %xmm4, %xmm2
6315*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxub %xmm3, %xmm1, %xmm1
6316*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6317*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6318*9880d681SAndroid Build Coastguard Worker;
6319*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test134:
6320*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6321*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm2, %ymm0, %ymm0
6322*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxub %ymm3, %ymm1, %ymm1
6323*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6324*9880d681SAndroid Build Coastguard Worker;
6325*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test134:
6326*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6327*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxub %zmm1, %zmm0, %zmm0
6328*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6329*9880d681SAndroid Build Coastguard Workerentry:
6330*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <64 x i8> %a, %b
6331*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a
6332*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
6333*9880d681SAndroid Build Coastguard Worker}
6334*9880d681SAndroid Build Coastguard Worker
6335*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test135(<64 x i8> %a, <64 x i8> %b) {
6336*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test135:
6337*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
6338*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm4, %xmm0
6339*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm5, %xmm1
6340*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm6, %xmm2
6341*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm7, %xmm3
6342*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
6343*9880d681SAndroid Build Coastguard Worker;
6344*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test135:
6345*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6346*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6347*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6348*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm4, %xmm5, %xmm4
6349*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm0, %xmm0
6350*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6351*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6352*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6353*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm4, %xmm2
6354*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm3, %xmm1, %xmm1
6355*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6356*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6357*9880d681SAndroid Build Coastguard Worker;
6358*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test135:
6359*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6360*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm2, %ymm0, %ymm0
6361*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm3, %ymm1, %ymm1
6362*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6363*9880d681SAndroid Build Coastguard Worker;
6364*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test135:
6365*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6366*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminub %zmm1, %zmm0, %zmm0
6367*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6368*9880d681SAndroid Build Coastguard Workerentry:
6369*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <64 x i8> %a, %b
6370*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a
6371*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
6372*9880d681SAndroid Build Coastguard Worker}
6373*9880d681SAndroid Build Coastguard Worker
6374*9880d681SAndroid Build Coastguard Workerdefine <64 x i8> @test136(<64 x i8> %a, <64 x i8> %b) {
6375*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test136:
6376*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
6377*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm4, %xmm0
6378*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm5, %xmm1
6379*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm6, %xmm2
6380*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminub %xmm7, %xmm3
6381*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
6382*9880d681SAndroid Build Coastguard Worker;
6383*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test136:
6384*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6385*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6386*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6387*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm4, %xmm5, %xmm4
6388*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm0, %xmm0
6389*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6390*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6391*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6392*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm2, %xmm4, %xmm2
6393*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminub %xmm3, %xmm1, %xmm1
6394*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6395*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6396*9880d681SAndroid Build Coastguard Worker;
6397*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test136:
6398*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6399*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm2, %ymm0, %ymm0
6400*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminub %ymm3, %ymm1, %ymm1
6401*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6402*9880d681SAndroid Build Coastguard Worker;
6403*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test136:
6404*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6405*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminub %zmm1, %zmm0, %zmm0
6406*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6407*9880d681SAndroid Build Coastguard Workerentry:
6408*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <64 x i8> %a, %b
6409*9880d681SAndroid Build Coastguard Worker  %sel = select <64 x i1> %cmp, <64 x i8> %b, <64 x i8> %a
6410*9880d681SAndroid Build Coastguard Worker  ret <64 x i8> %sel
6411*9880d681SAndroid Build Coastguard Worker}
6412*9880d681SAndroid Build Coastguard Worker
6413*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test137(<32 x i16> %a, <32 x i16> %b) {
6414*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test137:
6415*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
6416*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm4, %xmm0
6417*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm5, %xmm1
6418*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm6, %xmm2
6419*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm7, %xmm3
6420*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
6421*9880d681SAndroid Build Coastguard Worker;
6422*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test137:
6423*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6424*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6425*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6426*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm4, %xmm5, %xmm4
6427*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm0, %xmm0
6428*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6429*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6430*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6431*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm4, %xmm2
6432*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm3, %xmm1, %xmm1
6433*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6434*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6435*9880d681SAndroid Build Coastguard Worker;
6436*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test137:
6437*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6438*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm2, %ymm0, %ymm0
6439*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm3, %ymm1, %ymm1
6440*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6441*9880d681SAndroid Build Coastguard Worker;
6442*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test137:
6443*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6444*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsw %zmm1, %zmm0, %zmm0
6445*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6446*9880d681SAndroid Build Coastguard Workerentry:
6447*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <32 x i16> %a, %b
6448*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a
6449*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
6450*9880d681SAndroid Build Coastguard Worker}
6451*9880d681SAndroid Build Coastguard Worker
6452*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test138(<32 x i16> %a, <32 x i16> %b) {
6453*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test138:
6454*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
6455*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm4, %xmm0
6456*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm5, %xmm1
6457*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm6, %xmm2
6458*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pmaxsw %xmm7, %xmm3
6459*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
6460*9880d681SAndroid Build Coastguard Worker;
6461*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test138:
6462*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6463*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6464*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6465*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm4, %xmm5, %xmm4
6466*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm0, %xmm0
6467*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6468*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6469*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6470*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm2, %xmm4, %xmm2
6471*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsw %xmm3, %xmm1, %xmm1
6472*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6473*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6474*9880d681SAndroid Build Coastguard Worker;
6475*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test138:
6476*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6477*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm2, %ymm0, %ymm0
6478*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsw %ymm3, %ymm1, %ymm1
6479*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6480*9880d681SAndroid Build Coastguard Worker;
6481*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test138:
6482*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6483*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsw %zmm1, %zmm0, %zmm0
6484*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6485*9880d681SAndroid Build Coastguard Workerentry:
6486*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <32 x i16> %a, %b
6487*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a
6488*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
6489*9880d681SAndroid Build Coastguard Worker}
6490*9880d681SAndroid Build Coastguard Worker
6491*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test139(<32 x i16> %a, <32 x i16> %b) {
6492*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test139:
6493*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
6494*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm4, %xmm0
6495*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm5, %xmm1
6496*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm6, %xmm2
6497*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm7, %xmm3
6498*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
6499*9880d681SAndroid Build Coastguard Worker;
6500*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test139:
6501*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6502*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6503*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6504*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm4, %xmm5, %xmm4
6505*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm0, %xmm0
6506*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6507*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6508*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6509*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm4, %xmm2
6510*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm3, %xmm1, %xmm1
6511*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6512*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6513*9880d681SAndroid Build Coastguard Worker;
6514*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test139:
6515*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6516*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm2, %ymm0, %ymm0
6517*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm3, %ymm1, %ymm1
6518*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6519*9880d681SAndroid Build Coastguard Worker;
6520*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test139:
6521*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6522*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsw %zmm1, %zmm0, %zmm0
6523*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6524*9880d681SAndroid Build Coastguard Workerentry:
6525*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <32 x i16> %a, %b
6526*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a
6527*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
6528*9880d681SAndroid Build Coastguard Worker}
6529*9880d681SAndroid Build Coastguard Worker
6530*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test140(<32 x i16> %a, <32 x i16> %b) {
6531*9880d681SAndroid Build Coastguard Worker; SSE-LABEL: test140:
6532*9880d681SAndroid Build Coastguard Worker; SSE:       # BB#0: # %entry
6533*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm4, %xmm0
6534*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm5, %xmm1
6535*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm6, %xmm2
6536*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    pminsw %xmm7, %xmm3
6537*9880d681SAndroid Build Coastguard Worker; SSE-NEXT:    retq
6538*9880d681SAndroid Build Coastguard Worker;
6539*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test140:
6540*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6541*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6542*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6543*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm4, %xmm5, %xmm4
6544*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm0, %xmm0
6545*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6546*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6547*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6548*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm2, %xmm4, %xmm2
6549*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsw %xmm3, %xmm1, %xmm1
6550*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6551*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6552*9880d681SAndroid Build Coastguard Worker;
6553*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test140:
6554*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6555*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm2, %ymm0, %ymm0
6556*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsw %ymm3, %ymm1, %ymm1
6557*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6558*9880d681SAndroid Build Coastguard Worker;
6559*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test140:
6560*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6561*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsw %zmm1, %zmm0, %zmm0
6562*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6563*9880d681SAndroid Build Coastguard Workerentry:
6564*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <32 x i16> %a, %b
6565*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a
6566*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
6567*9880d681SAndroid Build Coastguard Worker}
6568*9880d681SAndroid Build Coastguard Worker
6569*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test141(<32 x i16> %a, <32 x i16> %b) {
6570*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test141:
6571*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
6572*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
6573*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm0 = [32768,32768,32768,32768,32768,32768,32768,32768]
6574*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm9
6575*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
6576*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
6577*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm8
6578*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm9, %xmm8
6579*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm10
6580*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm10
6581*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
6582*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
6583*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm10, %xmm9
6584*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm12
6585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm12
6586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm10
6587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm10
6588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm12, %xmm10
6589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm12
6590*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm12
6591*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm0
6592*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm12, %xmm0
6593*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm0, %xmm4
6594*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm11, %xmm0
6595*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm0
6596*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
6597*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
6598*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
6599*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
6600*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
6601*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
6602*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm7
6603*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
6604*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm8
6605*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
6606*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
6607*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
6608*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
6609*9880d681SAndroid Build Coastguard Worker;
6610*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test141:
6611*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
6612*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm4, %xmm0
6613*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm5, %xmm1
6614*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm6, %xmm2
6615*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm7, %xmm3
6616*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
6617*9880d681SAndroid Build Coastguard Worker;
6618*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test141:
6619*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6620*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6621*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6622*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm4, %xmm5, %xmm4
6623*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm0, %xmm0
6624*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6625*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6626*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6627*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm4, %xmm2
6628*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm3, %xmm1, %xmm1
6629*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6630*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6631*9880d681SAndroid Build Coastguard Worker;
6632*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test141:
6633*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6634*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm2, %ymm0, %ymm0
6635*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm3, %ymm1, %ymm1
6636*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6637*9880d681SAndroid Build Coastguard Worker;
6638*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test141:
6639*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6640*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuw %zmm1, %zmm0, %zmm0
6641*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6642*9880d681SAndroid Build Coastguard Workerentry:
6643*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <32 x i16> %a, %b
6644*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a
6645*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
6646*9880d681SAndroid Build Coastguard Worker}
6647*9880d681SAndroid Build Coastguard Worker
6648*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test142(<32 x i16> %a, <32 x i16> %b) {
6649*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test142:
6650*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
6651*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
6652*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
6653*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
6654*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm7, %xmm3
6655*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm12, %xmm12
6656*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm3
6657*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm6, %xmm2
6658*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm2
6659*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm5, %xmm1
6660*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm1
6661*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
6662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm4, %xmm11
6663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm11
6664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm4
6665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
6666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm11
6667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm1, %xmm5
6668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm10, %xmm1
6669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm1
6670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm6
6671*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm2
6672*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm2
6673*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm7
6674*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm3
6675*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm3
6676*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
6677*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
6678*9880d681SAndroid Build Coastguard Worker;
6679*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test142:
6680*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
6681*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm4, %xmm0
6682*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm5, %xmm1
6683*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm6, %xmm2
6684*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxuw %xmm7, %xmm3
6685*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
6686*9880d681SAndroid Build Coastguard Worker;
6687*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test142:
6688*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6689*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6690*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6691*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm4, %xmm5, %xmm4
6692*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm0, %xmm0
6693*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6694*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6695*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6696*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm2, %xmm4, %xmm2
6697*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxuw %xmm3, %xmm1, %xmm1
6698*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6699*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6700*9880d681SAndroid Build Coastguard Worker;
6701*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test142:
6702*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6703*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm2, %ymm0, %ymm0
6704*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxuw %ymm3, %ymm1, %ymm1
6705*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6706*9880d681SAndroid Build Coastguard Worker;
6707*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test142:
6708*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6709*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuw %zmm1, %zmm0, %zmm0
6710*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6711*9880d681SAndroid Build Coastguard Workerentry:
6712*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <32 x i16> %a, %b
6713*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a
6714*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
6715*9880d681SAndroid Build Coastguard Worker}
6716*9880d681SAndroid Build Coastguard Worker
6717*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test143(<32 x i16> %a, <32 x i16> %b) {
6718*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test143:
6719*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
6720*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
6721*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm0 = [32768,32768,32768,32768,32768,32768,32768,32768]
6722*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm9
6723*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
6724*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
6725*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm8
6726*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm9, %xmm8
6727*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm10
6728*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm10
6729*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
6730*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
6731*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm10, %xmm9
6732*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm12
6733*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm12
6734*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
6735*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm10
6736*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm12, %xmm10
6737*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm12
6738*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm12
6739*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm0
6740*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtw %xmm12, %xmm0
6741*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm0, %xmm4
6742*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm11, %xmm0
6743*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm0
6744*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
6745*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
6746*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
6747*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
6748*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
6749*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
6750*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm7
6751*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
6752*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm8
6753*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
6754*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
6755*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
6756*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
6757*9880d681SAndroid Build Coastguard Worker;
6758*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test143:
6759*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
6760*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm4, %xmm0
6761*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm5, %xmm1
6762*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm6, %xmm2
6763*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm7, %xmm3
6764*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
6765*9880d681SAndroid Build Coastguard Worker;
6766*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test143:
6767*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6768*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6769*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6770*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm4, %xmm5, %xmm4
6771*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm0, %xmm0
6772*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6773*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6774*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6775*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm4, %xmm2
6776*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm3, %xmm1, %xmm1
6777*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6778*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6779*9880d681SAndroid Build Coastguard Worker;
6780*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test143:
6781*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6782*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm2, %ymm0, %ymm0
6783*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm3, %ymm1, %ymm1
6784*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6785*9880d681SAndroid Build Coastguard Worker;
6786*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test143:
6787*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6788*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuw %zmm1, %zmm0, %zmm0
6789*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6790*9880d681SAndroid Build Coastguard Workerentry:
6791*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <32 x i16> %a, %b
6792*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a
6793*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
6794*9880d681SAndroid Build Coastguard Worker}
6795*9880d681SAndroid Build Coastguard Worker
6796*9880d681SAndroid Build Coastguard Workerdefine <32 x i16> @test144(<32 x i16> %a, <32 x i16> %b) {
6797*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test144:
6798*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
6799*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
6800*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
6801*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
6802*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm3
6803*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm8, %xmm3
6804*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm12, %xmm12
6805*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm3
6806*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm2
6807*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm9, %xmm2
6808*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm2
6809*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm1
6810*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm10, %xmm1
6811*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm1
6812*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
6813*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    psubusw %xmm0, %xmm11
6814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqw %xmm12, %xmm11
6815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm4
6816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
6817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm11
6818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm1, %xmm5
6819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm10, %xmm1
6820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm1
6821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm6
6822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm2
6823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm2
6824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm7
6825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm3
6826*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm3
6827*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
6828*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
6829*9880d681SAndroid Build Coastguard Worker;
6830*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test144:
6831*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
6832*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm4, %xmm0
6833*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm5, %xmm1
6834*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm6, %xmm2
6835*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminuw %xmm7, %xmm3
6836*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
6837*9880d681SAndroid Build Coastguard Worker;
6838*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test144:
6839*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6840*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6841*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6842*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm4, %xmm5, %xmm4
6843*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm0, %xmm0
6844*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6845*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6846*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6847*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm2, %xmm4, %xmm2
6848*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminuw %xmm3, %xmm1, %xmm1
6849*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6850*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6851*9880d681SAndroid Build Coastguard Worker;
6852*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test144:
6853*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6854*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm2, %ymm0, %ymm0
6855*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminuw %ymm3, %ymm1, %ymm1
6856*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6857*9880d681SAndroid Build Coastguard Worker;
6858*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test144:
6859*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
6860*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuw %zmm1, %zmm0, %zmm0
6861*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
6862*9880d681SAndroid Build Coastguard Workerentry:
6863*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <32 x i16> %a, %b
6864*9880d681SAndroid Build Coastguard Worker  %sel = select <32 x i1> %cmp, <32 x i16> %b, <32 x i16> %a
6865*9880d681SAndroid Build Coastguard Worker  ret <32 x i16> %sel
6866*9880d681SAndroid Build Coastguard Worker}
6867*9880d681SAndroid Build Coastguard Worker
6868*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test145(<16 x i32> %a, <16 x i32> %b) {
6869*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test145:
6870*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
6871*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
6872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm3
6873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm3
6874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
6875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm2, %xmm9
6876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm10
6877*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm10
6878*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
6879*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm11
6880*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm4
6881*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
6882*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm11
6883*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
6884*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
6885*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
6886*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
6887*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
6888*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
6889*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm7
6890*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm3
6891*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm3
6892*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
6893*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
6894*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
6895*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
6896*9880d681SAndroid Build Coastguard Worker;
6897*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test145:
6898*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
6899*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm4, %xmm0
6900*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm5, %xmm1
6901*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm6, %xmm2
6902*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm7, %xmm3
6903*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
6904*9880d681SAndroid Build Coastguard Worker;
6905*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test145:
6906*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6907*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6908*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6909*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm4, %xmm5, %xmm4
6910*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm0, %xmm0
6911*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6912*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6913*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6914*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm4, %xmm2
6915*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm3, %xmm1, %xmm1
6916*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6917*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6918*9880d681SAndroid Build Coastguard Worker;
6919*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test145:
6920*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6921*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm2, %ymm0, %ymm0
6922*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm3, %ymm1, %ymm1
6923*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6924*9880d681SAndroid Build Coastguard Worker;
6925*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test145:
6926*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
6927*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsd %zmm1, %zmm0, %zmm0
6928*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
6929*9880d681SAndroid Build Coastguard Workerentry:
6930*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <16 x i32> %a, %b
6931*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a
6932*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
6933*9880d681SAndroid Build Coastguard Worker}
6934*9880d681SAndroid Build Coastguard Worker
6935*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test146(<16 x i32> %a, <16 x i32> %b) {
6936*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test146:
6937*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
6938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm8
6939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm12
6940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm7, %xmm12
6941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm13, %xmm13
6942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm9
6943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm9
6944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm14
6945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm14
6946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm2
6947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm2
6948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm15
6949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm15
6950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm10
6951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm13, %xmm10
6952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
6953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm11
6954*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm13
6955*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm11
6956*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm13
6957*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm11
6958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm15
6959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
6960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm10
6961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm14
6962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm2
6963*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm2
6964*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm12
6965*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm9
6966*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm9
6967*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
6968*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
6969*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm3
6970*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
6971*9880d681SAndroid Build Coastguard Worker;
6972*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test146:
6973*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
6974*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm4, %xmm0
6975*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm5, %xmm1
6976*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm6, %xmm2
6977*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxsd %xmm7, %xmm3
6978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
6979*9880d681SAndroid Build Coastguard Worker;
6980*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test146:
6981*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
6982*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
6983*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
6984*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm4, %xmm5, %xmm4
6985*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm0, %xmm0
6986*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
6987*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
6988*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
6989*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm2, %xmm4, %xmm2
6990*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxsd %xmm3, %xmm1, %xmm1
6991*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6992*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
6993*9880d681SAndroid Build Coastguard Worker;
6994*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test146:
6995*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
6996*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm2, %ymm0, %ymm0
6997*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxsd %ymm3, %ymm1, %ymm1
6998*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
6999*9880d681SAndroid Build Coastguard Worker;
7000*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test146:
7001*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
7002*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsd %zmm1, %zmm0, %zmm0
7003*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
7004*9880d681SAndroid Build Coastguard Workerentry:
7005*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <16 x i32> %a, %b
7006*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a
7007*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
7008*9880d681SAndroid Build Coastguard Worker}
7009*9880d681SAndroid Build Coastguard Worker
7010*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test147(<16 x i32> %a, <16 x i32> %b) {
7011*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test147:
7012*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
7013*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
7014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm7, %xmm3
7015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
7016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm9
7017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
7018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm10
7019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
7020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm11
7021*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm4
7022*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
7023*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm11
7024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
7025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
7026*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
7027*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
7028*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
7029*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
7030*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm7
7031*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm3
7032*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm3
7033*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
7034*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
7035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
7036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
7037*9880d681SAndroid Build Coastguard Worker;
7038*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test147:
7039*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
7040*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm4, %xmm0
7041*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm5, %xmm1
7042*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm6, %xmm2
7043*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm7, %xmm3
7044*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
7045*9880d681SAndroid Build Coastguard Worker;
7046*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test147:
7047*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
7048*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
7049*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
7050*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm4, %xmm5, %xmm4
7051*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm0, %xmm0
7052*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
7053*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
7054*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
7055*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm4, %xmm2
7056*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm3, %xmm1, %xmm1
7057*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7058*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
7059*9880d681SAndroid Build Coastguard Worker;
7060*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test147:
7061*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
7062*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm2, %ymm0, %ymm0
7063*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm3, %ymm1, %ymm1
7064*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
7065*9880d681SAndroid Build Coastguard Worker;
7066*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test147:
7067*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
7068*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsd %zmm1, %zmm0, %zmm0
7069*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
7070*9880d681SAndroid Build Coastguard Workerentry:
7071*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <16 x i32> %a, %b
7072*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a
7073*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
7074*9880d681SAndroid Build Coastguard Worker}
7075*9880d681SAndroid Build Coastguard Worker
7076*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test148(<16 x i32> %a, <16 x i32> %b) {
7077*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test148:
7078*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
7079*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm8
7080*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm10
7081*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm12
7082*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm12
7083*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm0, %xmm0
7084*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm9
7085*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
7086*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm13
7087*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm13
7088*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm2
7089*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
7090*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm14
7091*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm1, %xmm14
7092*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm11
7093*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
7094*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm15
7095*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm15
7096*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm15, %xmm0
7097*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm15
7098*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm10, %xmm0
7099*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm0
7100*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm14
7101*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm11
7102*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm11
7103*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm13
7104*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm8, %xmm2
7105*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm2
7106*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm12
7107*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm9
7108*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm9
7109*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
7110*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm3
7111*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
7112*9880d681SAndroid Build Coastguard Worker;
7113*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test148:
7114*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
7115*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm4, %xmm0
7116*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm5, %xmm1
7117*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm6, %xmm2
7118*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminsd %xmm7, %xmm3
7119*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
7120*9880d681SAndroid Build Coastguard Worker;
7121*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test148:
7122*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
7123*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
7124*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
7125*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm4, %xmm5, %xmm4
7126*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm0, %xmm0
7127*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
7128*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
7129*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
7130*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm2, %xmm4, %xmm2
7131*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminsd %xmm3, %xmm1, %xmm1
7132*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7133*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
7134*9880d681SAndroid Build Coastguard Worker;
7135*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test148:
7136*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
7137*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm2, %ymm0, %ymm0
7138*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminsd %ymm3, %ymm1, %ymm1
7139*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
7140*9880d681SAndroid Build Coastguard Worker;
7141*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test148:
7142*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
7143*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsd %zmm1, %zmm0, %zmm0
7144*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
7145*9880d681SAndroid Build Coastguard Workerentry:
7146*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <16 x i32> %a, %b
7147*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a
7148*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
7149*9880d681SAndroid Build Coastguard Worker}
7150*9880d681SAndroid Build Coastguard Worker
7151*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test149(<16 x i32> %a, <16 x i32> %b) {
7152*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test149:
7153*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
7154*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
7155*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648]
7156*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm9
7157*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
7158*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
7159*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm8
7160*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm8
7161*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm10
7162*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm10
7163*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
7164*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
7165*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm9
7166*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm12
7167*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm12
7168*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm10
7169*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm10
7170*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm12, %xmm10
7171*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm12
7172*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm12
7173*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm0
7174*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm12, %xmm0
7175*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm0, %xmm4
7176*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm11, %xmm0
7177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm0
7178*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
7179*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
7180*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
7181*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
7182*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
7183*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
7184*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm7
7185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
7186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm8
7187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
7188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
7189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
7190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
7191*9880d681SAndroid Build Coastguard Worker;
7192*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test149:
7193*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
7194*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm4, %xmm0
7195*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm5, %xmm1
7196*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm6, %xmm2
7197*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm7, %xmm3
7198*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
7199*9880d681SAndroid Build Coastguard Worker;
7200*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test149:
7201*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
7202*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
7203*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
7204*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm4, %xmm5, %xmm4
7205*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm0, %xmm0
7206*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
7207*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
7208*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
7209*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm4, %xmm2
7210*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm3, %xmm1, %xmm1
7211*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7212*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
7213*9880d681SAndroid Build Coastguard Worker;
7214*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test149:
7215*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
7216*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm2, %ymm0, %ymm0
7217*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm3, %ymm1, %ymm1
7218*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
7219*9880d681SAndroid Build Coastguard Worker;
7220*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test149:
7221*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
7222*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxud %zmm1, %zmm0, %zmm0
7223*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
7224*9880d681SAndroid Build Coastguard Workerentry:
7225*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <16 x i32> %a, %b
7226*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a
7227*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
7228*9880d681SAndroid Build Coastguard Worker}
7229*9880d681SAndroid Build Coastguard Worker
7230*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test150(<16 x i32> %a, <16 x i32> %b) {
7231*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test150:
7232*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
7233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm10
7234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm14 = [2147483648,2147483648,2147483648,2147483648]
7235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm0
7236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm0
7237*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm12
7238*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm12
7239*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm12
7240*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm0, %xmm0
7241*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
7242*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm8
7243*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
7244*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm9
7245*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm13
7246*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm13
7247*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm13
7248*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm9
7249*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
7250*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm11
7251*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm11
7252*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm15
7253*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm15
7254*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
7255*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
7256*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm11
7257*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm14
7258*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
7259*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
7260*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
7261*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm0
7262*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm14
7263*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm10, %xmm0
7264*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm0
7265*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm15
7266*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm11
7267*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
7268*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm13
7269*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
7270*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm9
7271*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm12
7272*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
7273*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
7274*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
7275*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
7276*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
7277*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
7278*9880d681SAndroid Build Coastguard Worker;
7279*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test150:
7280*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
7281*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm4, %xmm0
7282*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm5, %xmm1
7283*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm6, %xmm2
7284*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pmaxud %xmm7, %xmm3
7285*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
7286*9880d681SAndroid Build Coastguard Worker;
7287*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test150:
7288*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
7289*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
7290*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
7291*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm4, %xmm5, %xmm4
7292*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm0, %xmm0
7293*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
7294*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
7295*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
7296*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm2, %xmm4, %xmm2
7297*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpmaxud %xmm3, %xmm1, %xmm1
7298*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7299*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
7300*9880d681SAndroid Build Coastguard Worker;
7301*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test150:
7302*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
7303*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm2, %ymm0, %ymm0
7304*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpmaxud %ymm3, %ymm1, %ymm1
7305*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
7306*9880d681SAndroid Build Coastguard Worker;
7307*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test150:
7308*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
7309*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxud %zmm1, %zmm0, %zmm0
7310*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
7311*9880d681SAndroid Build Coastguard Workerentry:
7312*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <16 x i32> %a, %b
7313*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a
7314*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
7315*9880d681SAndroid Build Coastguard Worker}
7316*9880d681SAndroid Build Coastguard Worker
7317*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test151(<16 x i32> %a, <16 x i32> %b) {
7318*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test151:
7319*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
7320*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
7321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm0 = [2147483648,2147483648,2147483648,2147483648]
7322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm9
7323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
7324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
7325*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm8
7326*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm8
7327*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm10
7328*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm10
7329*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
7330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
7331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm9
7332*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm12
7333*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm12
7334*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
7335*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm10
7336*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm12, %xmm10
7337*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm12
7338*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm12
7339*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm0
7340*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm12, %xmm0
7341*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm0, %xmm4
7342*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm11, %xmm0
7343*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm0
7344*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
7345*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
7346*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
7347*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
7348*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
7349*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
7350*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm7
7351*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
7352*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm8
7353*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
7354*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
7355*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
7356*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
7357*9880d681SAndroid Build Coastguard Worker;
7358*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test151:
7359*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
7360*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm4, %xmm0
7361*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm5, %xmm1
7362*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm6, %xmm2
7363*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm7, %xmm3
7364*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
7365*9880d681SAndroid Build Coastguard Worker;
7366*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test151:
7367*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
7368*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
7369*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
7370*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm4, %xmm5, %xmm4
7371*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm0, %xmm0
7372*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
7373*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
7374*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
7375*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm4, %xmm2
7376*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm3, %xmm1, %xmm1
7377*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7378*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
7379*9880d681SAndroid Build Coastguard Worker;
7380*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test151:
7381*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
7382*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm2, %ymm0, %ymm0
7383*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm3, %ymm1, %ymm1
7384*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
7385*9880d681SAndroid Build Coastguard Worker;
7386*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test151:
7387*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
7388*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminud %zmm1, %zmm0, %zmm0
7389*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
7390*9880d681SAndroid Build Coastguard Workerentry:
7391*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <16 x i32> %a, %b
7392*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a
7393*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
7394*9880d681SAndroid Build Coastguard Worker}
7395*9880d681SAndroid Build Coastguard Worker
7396*9880d681SAndroid Build Coastguard Workerdefine <16 x i32> @test152(<16 x i32> %a, <16 x i32> %b) {
7397*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test152:
7398*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
7399*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm10
7400*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm14 = [2147483648,2147483648,2147483648,2147483648]
7401*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm0
7402*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm0
7403*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm12
7404*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm12
7405*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm0, %xmm12
7406*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm0, %xmm0
7407*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
7408*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm8
7409*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
7410*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm9
7411*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm13
7412*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm13
7413*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm13
7414*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm9
7415*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm9
7416*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm11
7417*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm11
7418*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm15
7419*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm15
7420*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
7421*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm11
7422*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm11
7423*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm14
7424*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
7425*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
7426*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
7427*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm0
7428*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm14
7429*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm10, %xmm0
7430*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm0
7431*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm15
7432*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm11
7433*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
7434*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm13
7435*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
7436*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm9
7437*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm12
7438*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
7439*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
7440*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
7441*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
7442*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
7443*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
7444*9880d681SAndroid Build Coastguard Worker;
7445*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test152:
7446*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
7447*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm4, %xmm0
7448*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm5, %xmm1
7449*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm6, %xmm2
7450*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pminud %xmm7, %xmm3
7451*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
7452*9880d681SAndroid Build Coastguard Worker;
7453*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test152:
7454*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
7455*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm4
7456*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
7457*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm4, %xmm5, %xmm4
7458*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm0, %xmm0
7459*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
7460*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm2
7461*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
7462*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm2, %xmm4, %xmm2
7463*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpminud %xmm3, %xmm1, %xmm1
7464*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7465*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
7466*9880d681SAndroid Build Coastguard Worker;
7467*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test152:
7468*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
7469*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm2, %ymm0, %ymm0
7470*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpminud %ymm3, %ymm1, %ymm1
7471*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
7472*9880d681SAndroid Build Coastguard Worker;
7473*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test152:
7474*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
7475*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminud %zmm1, %zmm0, %zmm0
7476*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
7477*9880d681SAndroid Build Coastguard Workerentry:
7478*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <16 x i32> %a, %b
7479*9880d681SAndroid Build Coastguard Worker  %sel = select <16 x i1> %cmp, <16 x i32> %b, <16 x i32> %a
7480*9880d681SAndroid Build Coastguard Worker  ret <16 x i32> %sel
7481*9880d681SAndroid Build Coastguard Worker}
7482*9880d681SAndroid Build Coastguard Worker
7483*9880d681SAndroid Build Coastguard Worker; -----------------------
7484*9880d681SAndroid Build Coastguard Worker
7485*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test153(<8 x i64> %a, <8 x i64> %b) {
7486*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test153:
7487*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
7488*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm11 = [2147483648,0,2147483648,0]
7489*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
7490*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm8
7491*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm9
7492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
7493*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm10
7494*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm10
7495*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm10[0,0,2,2]
7496*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm9
7497*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3]
7498*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm9
7499*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm10[1,1,3,3]
7500*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm8
7501*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
7502*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
7503*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm10
7504*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
7505*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm12
7506*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm12
7507*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2]
7508*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm9, %xmm10
7509*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3]
7510*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm13, %xmm10
7511*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm12[1,1,3,3]
7512*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm9
7513*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
7514*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
7515*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm12
7516*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
7517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm13
7518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm13
7519*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
7520*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm10, %xmm12
7521*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm12[1,1,3,3]
7522*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm12
7523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm13[1,1,3,3]
7524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm10
7525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm12
7526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
7527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm11
7528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm13
7529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm12, %xmm13
7530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
7531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm12, %xmm11
7532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
7533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm12
7534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
7535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm11
7536*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm4
7537*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
7538*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm11
7539*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
7540*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
7541*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
7542*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
7543*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
7544*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
7545*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm7
7546*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
7547*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm8
7548*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
7549*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
7550*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
7551*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
7552*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
7553*9880d681SAndroid Build Coastguard Worker;
7554*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test153:
7555*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
7556*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
7557*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm9
7558*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm9
7559*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm10
7560*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm10
7561*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm11
7562*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm11
7563*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm0
7564*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm8, %xmm0
7565*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm8
7566*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
7567*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm5, %xmm1
7568*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
7569*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm6, %xmm2
7570*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
7571*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm7, %xmm3
7572*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm8, %xmm0
7573*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
7574*9880d681SAndroid Build Coastguard Worker;
7575*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test153:
7576*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
7577*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
7578*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm5
7579*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm5, %xmm4
7580*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm3, %xmm5
7581*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm5, %ymm4
7582*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm5
7583*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm6
7584*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm5, %xmm6, %xmm5
7585*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm2, %xmm6
7586*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm5, %ymm6, %ymm5
7587*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
7588*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
7589*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
7590*9880d681SAndroid Build Coastguard Worker;
7591*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test153:
7592*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
7593*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm1, %ymm3, %ymm4
7594*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm0, %ymm2, %ymm5
7595*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
7596*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
7597*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
7598*9880d681SAndroid Build Coastguard Worker;
7599*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test153:
7600*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
7601*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsq %zmm1, %zmm0, %zmm0
7602*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
7603*9880d681SAndroid Build Coastguard Workerentry:
7604*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <8 x i64> %a, %b
7605*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a
7606*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
7607*9880d681SAndroid Build Coastguard Worker}
7608*9880d681SAndroid Build Coastguard Worker
7609*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test154(<8 x i64> %a, <8 x i64> %b) {
7610*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test154:
7611*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
7612*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
7613*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, -{{[0-9]+}}(%rsp) # 16-byte Spill
7614*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm7
7615*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm3
7616*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
7617*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm9
7618*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm10 = [2147483648,0,2147483648,0]
7619*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm8
7620*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm0
7621*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm0
7622*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
7623*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
7624*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
7625*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm0
7626*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
7627*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm0
7628*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
7629*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm12
7630*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm1, %xmm1
7631*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
7632*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm8
7633*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm11
7634*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
7635*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm13
7636*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm13
7637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm14
7638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
7639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2]
7640*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm13
7641*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
7642*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm15, %xmm11
7643*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3]
7644*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm13
7645*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm11
7646*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
7647*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm14
7648*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm14
7649*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm15
7650*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
7651*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm14
7652*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2]
7653*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
7654*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm14
7655*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3]
7656*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm15
7657*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
7658*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
7659*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
7660*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm14
7661*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
7662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm10
7663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2]
7664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3]
7665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
7666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm10
7667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm10
7668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
7669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm14
7670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
7671*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm11
7672*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm1
7673*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm14
7674*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm1
7675*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm1
7676*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm15
7677*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm11
7678*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
7679*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm13
7680*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm10
7681*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm10
7682*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn -{{[0-9]+}}(%rsp), %xmm12 # 16-byte Folded Reload
7683*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
7684*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
7685*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm0
7686*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
7687*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm2
7688*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
7689*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
7690*9880d681SAndroid Build Coastguard Worker;
7691*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test154:
7692*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
7693*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
7694*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm9
7695*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm7, %xmm9
7696*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm12, %xmm12
7697*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm9
7698*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm10
7699*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm10
7700*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm10
7701*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm11
7702*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm5, %xmm11
7703*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm11
7704*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm4, %xmm0
7705*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm0
7706*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm8
7707*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
7708*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm5, %xmm1
7709*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
7710*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm6, %xmm2
7711*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
7712*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm7, %xmm3
7713*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm8, %xmm0
7714*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
7715*9880d681SAndroid Build Coastguard Worker;
7716*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test154:
7717*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
7718*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm4
7719*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm5
7720*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm5, %xmm4
7721*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm5, %xmm5, %xmm5
7722*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm4, %xmm4
7723*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm1, %xmm6
7724*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm6, %xmm6
7725*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
7726*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm6
7727*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm7
7728*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
7729*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm6, %xmm6
7730*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm0, %xmm7
7731*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm7, %xmm5
7732*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
7733*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
7734*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
7735*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
7736*9880d681SAndroid Build Coastguard Worker;
7737*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test154:
7738*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
7739*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm1, %ymm4
7740*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm5, %ymm5, %ymm5
7741*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm5, %ymm4, %ymm4
7742*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm2, %ymm0, %ymm6
7743*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm5, %ymm6, %ymm5
7744*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
7745*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
7746*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
7747*9880d681SAndroid Build Coastguard Worker;
7748*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test154:
7749*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
7750*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxsq %zmm1, %zmm0, %zmm0
7751*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
7752*9880d681SAndroid Build Coastguard Workerentry:
7753*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <8 x i64> %a, %b
7754*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a
7755*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
7756*9880d681SAndroid Build Coastguard Worker}
7757*9880d681SAndroid Build Coastguard Worker
7758*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test155(<8 x i64> %a, <8 x i64> %b) {
7759*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test155:
7760*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
7761*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm11 = [2147483648,0,2147483648,0]
7762*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
7763*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm8
7764*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm9
7765*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
7766*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm10
7767*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm10
7768*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm10[0,0,2,2]
7769*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm9
7770*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3]
7771*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm9
7772*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm10[1,1,3,3]
7773*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm8
7774*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
7775*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
7776*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm10
7777*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
7778*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm12
7779*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm12
7780*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2]
7781*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm9, %xmm10
7782*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3]
7783*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm13, %xmm10
7784*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm12[1,1,3,3]
7785*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm9
7786*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm10
7787*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
7788*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm12
7789*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
7790*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm13
7791*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm13
7792*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
7793*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm10, %xmm12
7794*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm12[1,1,3,3]
7795*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm12
7796*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm13[1,1,3,3]
7797*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm10
7798*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm12
7799*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
7800*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
7801*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm13
7802*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm12, %xmm13
7803*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
7804*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm12, %xmm11
7805*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
7806*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm12
7807*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
7808*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm11
7809*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm4
7810*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
7811*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm11
7812*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
7813*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
7814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
7815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
7816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
7817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
7818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm7
7819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
7820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm8
7821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
7822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
7823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
7824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
7825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
7826*9880d681SAndroid Build Coastguard Worker;
7827*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test155:
7828*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
7829*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
7830*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm9
7831*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm7, %xmm9
7832*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm10
7833*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm10
7834*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm11
7835*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm5, %xmm11
7836*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm4, %xmm0
7837*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm8
7838*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
7839*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm5, %xmm1
7840*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
7841*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm6, %xmm2
7842*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
7843*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm7, %xmm3
7844*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm8, %xmm0
7845*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
7846*9880d681SAndroid Build Coastguard Worker;
7847*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test155:
7848*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
7849*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm4
7850*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm5
7851*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm5, %xmm4
7852*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm1, %xmm5
7853*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm5, %ymm4
7854*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm5
7855*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm6
7856*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm5, %xmm6, %xmm5
7857*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm0, %xmm6
7858*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm5, %ymm6, %ymm5
7859*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
7860*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
7861*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
7862*9880d681SAndroid Build Coastguard Worker;
7863*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test155:
7864*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
7865*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm1, %ymm4
7866*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm2, %ymm0, %ymm5
7867*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
7868*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
7869*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
7870*9880d681SAndroid Build Coastguard Worker;
7871*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test155:
7872*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
7873*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsq %zmm1, %zmm0, %zmm0
7874*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
7875*9880d681SAndroid Build Coastguard Workerentry:
7876*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <8 x i64> %a, %b
7877*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a
7878*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
7879*9880d681SAndroid Build Coastguard Worker}
7880*9880d681SAndroid Build Coastguard Worker
7881*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test156(<8 x i64> %a, <8 x i64> %b) {
7882*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test156:
7883*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
7884*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm11
7885*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, -{{[0-9]+}}(%rsp) # 16-byte Spill
7886*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm7
7887*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm3
7888*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
7889*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm9
7890*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm10 = [2147483648,0,2147483648,0]
7891*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
7892*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm8
7893*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
7894*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm0
7895*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
7896*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
7897*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
7898*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm0
7899*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
7900*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm0
7901*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
7902*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm12
7903*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm1, %xmm1
7904*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
7905*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm8
7906*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm11
7907*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
7908*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm13
7909*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm13
7910*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm14
7911*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
7912*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2]
7913*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm13
7914*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
7915*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm15, %xmm11
7916*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3]
7917*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm13
7918*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm11
7919*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
7920*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm14
7921*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm14
7922*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm15
7923*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
7924*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm14
7925*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2]
7926*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
7927*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm14
7928*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3]
7929*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm15
7930*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm11
7931*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
7932*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm10
7933*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm14
7934*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
7935*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm10
7936*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2]
7937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3]
7938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
7939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm10
7940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm10
7941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
7942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm14
7943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
7944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm11
7945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm1
7946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm14
7947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm1
7948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm1
7949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm15
7950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm11
7951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
7952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm13
7953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm10
7954*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm10
7955*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn -{{[0-9]+}}(%rsp), %xmm12 # 16-byte Folded Reload
7956*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
7957*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
7958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm0
7959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
7960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm2
7961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
7962*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
7963*9880d681SAndroid Build Coastguard Worker;
7964*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test156:
7965*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
7966*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
7967*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm9
7968*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm9
7969*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm0, %xmm0
7970*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm9
7971*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm10
7972*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm10
7973*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
7974*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm11
7975*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm11
7976*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
7977*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm12
7978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm8, %xmm12
7979*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm0
7980*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm8
7981*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
7982*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm5, %xmm1
7983*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
7984*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm6, %xmm2
7985*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
7986*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm7, %xmm3
7987*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm8, %xmm0
7988*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
7989*9880d681SAndroid Build Coastguard Worker;
7990*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test156:
7991*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
7992*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
7993*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm5
7994*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm5, %xmm4
7995*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm5, %xmm5, %xmm5
7996*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm4, %xmm4
7997*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm3, %xmm6
7998*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm6, %xmm6
7999*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
8000*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm6
8001*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm7
8002*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
8003*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm6, %xmm6
8004*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm2, %xmm7
8005*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm5, %xmm7, %xmm5
8006*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
8007*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
8008*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
8009*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
8010*9880d681SAndroid Build Coastguard Worker;
8011*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test156:
8012*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
8013*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm1, %ymm3, %ymm4
8014*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm5, %ymm5, %ymm5
8015*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm5, %ymm4, %ymm4
8016*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm0, %ymm2, %ymm6
8017*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm5, %ymm6, %ymm5
8018*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
8019*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
8020*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
8021*9880d681SAndroid Build Coastguard Worker;
8022*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test156:
8023*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
8024*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminsq %zmm1, %zmm0, %zmm0
8025*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
8026*9880d681SAndroid Build Coastguard Workerentry:
8027*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <8 x i64> %a, %b
8028*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a
8029*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
8030*9880d681SAndroid Build Coastguard Worker}
8031*9880d681SAndroid Build Coastguard Worker
8032*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test157(<8 x i64> %a, <8 x i64> %b) {
8033*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test157:
8034*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
8035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm11 = [2147483648,2147483648,2147483648,2147483648]
8036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm8
8037*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm8
8038*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm9
8039*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
8040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm10
8041*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm10
8042*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm10[0,0,2,2]
8043*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm9
8044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3]
8045*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm9
8046*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm10[1,1,3,3]
8047*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm8
8048*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm9
8049*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
8050*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm10
8051*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
8052*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm12
8053*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm12
8054*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2]
8055*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm9, %xmm10
8056*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3]
8057*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm13, %xmm10
8058*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm12[1,1,3,3]
8059*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm9
8060*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm10
8061*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
8062*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm12
8063*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
8064*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm13
8065*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm13
8066*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
8067*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm10, %xmm12
8068*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm12[1,1,3,3]
8069*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm12
8070*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm13[1,1,3,3]
8071*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm10
8072*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm12
8073*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
8074*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm11
8075*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm13
8076*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm12, %xmm13
8077*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
8078*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm12, %xmm11
8079*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
8080*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm12
8081*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
8082*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm11
8083*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm4
8084*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
8085*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm11
8086*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
8087*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
8088*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
8089*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
8090*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
8091*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
8092*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm7
8093*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
8094*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm8
8095*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
8096*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
8097*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
8098*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
8099*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
8100*9880d681SAndroid Build Coastguard Worker;
8101*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test157:
8102*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
8103*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
8104*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
8105*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm10
8106*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
8107*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm9
8108*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm9
8109*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm10, %xmm9
8110*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm11
8111*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
8112*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm10
8113*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
8114*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm11, %xmm10
8115*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm12
8116*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm12
8117*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm11
8118*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
8119*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm12, %xmm11
8120*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm8, %xmm12
8121*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm12
8122*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm4, %xmm0
8123*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm12, %xmm0
8124*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm8
8125*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
8126*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm5, %xmm1
8127*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
8128*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm6, %xmm2
8129*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
8130*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm7, %xmm3
8131*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm8, %xmm0
8132*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
8133*9880d681SAndroid Build Coastguard Worker;
8134*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test157:
8135*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
8136*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
8137*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]
8138*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm4, %xmm4
8139*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm6
8140*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
8141*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm6, %xmm4
8142*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm1, %xmm6
8143*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm3, %xmm7
8144*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
8145*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
8146*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm6
8147*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
8148*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm7
8149*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm7, %xmm7
8150*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
8151*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm0, %xmm7
8152*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm2, %xmm5
8153*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm5, %xmm5
8154*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
8155*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
8156*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
8157*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
8158*9880d681SAndroid Build Coastguard Worker;
8159*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test157:
8160*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
8161*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm4
8162*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm1, %ymm5
8163*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm3, %ymm6
8164*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm5, %ymm6, %ymm5
8165*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm0, %ymm6
8166*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm2, %ymm4
8167*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm6, %ymm4, %ymm4
8168*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm2, %ymm0, %ymm0
8169*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm3, %ymm1, %ymm1
8170*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
8171*9880d681SAndroid Build Coastguard Worker;
8172*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test157:
8173*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
8174*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxuq %zmm1, %zmm0, %zmm0
8175*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
8176*9880d681SAndroid Build Coastguard Workerentry:
8177*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <8 x i64> %a, %b
8178*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a
8179*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
8180*9880d681SAndroid Build Coastguard Worker}
8181*9880d681SAndroid Build Coastguard Worker
8182*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test158(<8 x i64> %a, <8 x i64> %b) {
8183*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test158:
8184*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
8185*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
8186*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, -{{[0-9]+}}(%rsp) # 16-byte Spill
8187*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm7
8188*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm3
8189*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
8190*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm9
8191*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm10 = [2147483648,2147483648,2147483648,2147483648]
8192*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm8
8193*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm0
8194*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm0
8195*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
8196*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
8197*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
8198*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm0
8199*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
8200*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm0
8201*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
8202*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm12
8203*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm1, %xmm1
8204*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
8205*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm8
8206*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm11
8207*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
8208*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm13
8209*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm13
8210*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm14
8211*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
8212*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2]
8213*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm13
8214*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
8215*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm15, %xmm11
8216*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3]
8217*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm13
8218*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm11
8219*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
8220*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm14
8221*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm14
8222*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm15
8223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
8224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm14
8225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2]
8226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
8227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm14
8228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3]
8229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm15
8230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm11
8231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
8232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm9, %xmm10
8233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm14
8234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
8235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm10
8236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2]
8237*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3]
8238*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
8239*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm10
8240*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm10
8241*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
8242*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm14
8243*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
8244*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm11
8245*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm1
8246*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm14
8247*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm1
8248*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm1
8249*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm15
8250*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm11
8251*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
8252*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm13
8253*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm10
8254*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm10
8255*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn -{{[0-9]+}}(%rsp), %xmm12 # 16-byte Folded Reload
8256*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
8257*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
8258*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm0
8259*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
8260*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm2
8261*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
8262*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
8263*9880d681SAndroid Build Coastguard Worker;
8264*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test158:
8265*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
8266*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
8267*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
8268*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm10
8269*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
8270*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm9
8271*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm9
8272*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm10, %xmm9
8273*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm12, %xmm12
8274*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm9
8275*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm11
8276*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
8277*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm10
8278*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
8279*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm11, %xmm10
8280*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm10
8281*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm13
8282*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm13
8283*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm11
8284*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
8285*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm13, %xmm11
8286*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm11
8287*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm13
8288*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm13
8289*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm8, %xmm0
8290*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm13, %xmm0
8291*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm0
8292*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm8
8293*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
8294*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm5, %xmm1
8295*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
8296*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm6, %xmm2
8297*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
8298*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm7, %xmm3
8299*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm8, %xmm0
8300*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
8301*9880d681SAndroid Build Coastguard Worker;
8302*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test158:
8303*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
8304*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm4
8305*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]
8306*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm4, %xmm4
8307*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm6
8308*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
8309*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm6, %xmm4
8310*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm8, %xmm8, %xmm8
8311*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm4, %xmm4
8312*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm3, %xmm7
8313*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm1, %xmm6
8314*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm6, %xmm6
8315*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm6, %xmm6
8316*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
8317*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm6
8318*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
8319*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm7
8320*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm7, %xmm7
8321*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
8322*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm6, %xmm6
8323*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm2, %xmm7
8324*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm0, %xmm5
8325*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm5, %xmm5
8326*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm5, %xmm5
8327*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
8328*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
8329*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
8330*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
8331*9880d681SAndroid Build Coastguard Worker;
8332*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test158:
8333*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
8334*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm4
8335*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm3, %ymm5
8336*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm1, %ymm6
8337*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm5, %ymm6, %ymm5
8338*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm6, %ymm6, %ymm6
8339*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm6, %ymm5, %ymm5
8340*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm2, %ymm7
8341*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm0, %ymm4
8342*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm7, %ymm4, %ymm4
8343*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm6, %ymm4, %ymm4
8344*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm2, %ymm0, %ymm0
8345*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm3, %ymm1, %ymm1
8346*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
8347*9880d681SAndroid Build Coastguard Worker;
8348*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test158:
8349*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
8350*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpmaxuq %zmm1, %zmm0, %zmm0
8351*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
8352*9880d681SAndroid Build Coastguard Workerentry:
8353*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <8 x i64> %a, %b
8354*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a
8355*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
8356*9880d681SAndroid Build Coastguard Worker}
8357*9880d681SAndroid Build Coastguard Worker
8358*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test159(<8 x i64> %a, <8 x i64> %b) {
8359*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test159:
8360*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
8361*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm11 = [2147483648,2147483648,2147483648,2147483648]
8362*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
8363*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm8
8364*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm9
8365*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
8366*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm10
8367*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm10
8368*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm10[0,0,2,2]
8369*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm9
8370*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm9[1,1,3,3]
8371*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm9
8372*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm10[1,1,3,3]
8373*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm9, %xmm8
8374*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm9
8375*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm9
8376*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm10
8377*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
8378*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm12
8379*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm9, %xmm12
8380*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm12[0,0,2,2]
8381*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm9, %xmm10
8382*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm10[1,1,3,3]
8383*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm13, %xmm10
8384*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm9 = xmm12[1,1,3,3]
8385*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm10, %xmm9
8386*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm10
8387*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm10
8388*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm12
8389*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
8390*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm13
8391*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm10, %xmm13
8392*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
8393*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm10, %xmm12
8394*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm12[1,1,3,3]
8395*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm12
8396*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm13[1,1,3,3]
8397*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm10
8398*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm12
8399*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm11, %xmm12
8400*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm11
8401*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm13
8402*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm12, %xmm13
8403*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm13[0,0,2,2]
8404*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm12, %xmm11
8405*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
8406*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm14, %xmm12
8407*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
8408*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm11
8409*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm4
8410*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm11
8411*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm11
8412*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm5
8413*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm10
8414*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm10
8415*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm9, %xmm6
8416*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm9
8417*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm9
8418*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm7
8419*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
8420*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm7, %xmm8
8421*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
8422*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm1
8423*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm2
8424*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
8425*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
8426*9880d681SAndroid Build Coastguard Worker;
8427*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test159:
8428*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
8429*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
8430*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
8431*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm10
8432*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
8433*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm9
8434*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm9
8435*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm10, %xmm9
8436*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm11
8437*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
8438*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm10
8439*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
8440*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm11, %xmm10
8441*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm12
8442*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm12
8443*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm11
8444*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
8445*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm12, %xmm11
8446*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm12
8447*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm12
8448*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm8, %xmm0
8449*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm12, %xmm0
8450*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm8
8451*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
8452*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm5, %xmm1
8453*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
8454*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm6, %xmm2
8455*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
8456*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm7, %xmm3
8457*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm8, %xmm0
8458*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
8459*9880d681SAndroid Build Coastguard Worker;
8460*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test159:
8461*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
8462*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm4
8463*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]
8464*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm4, %xmm4
8465*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm6
8466*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
8467*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm6, %xmm4
8468*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm3, %xmm6
8469*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm1, %xmm7
8470*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
8471*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
8472*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm6
8473*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
8474*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm7
8475*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm7, %xmm7
8476*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
8477*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm2, %xmm7
8478*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm0, %xmm5
8479*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm5, %xmm5
8480*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
8481*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
8482*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
8483*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
8484*9880d681SAndroid Build Coastguard Worker;
8485*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test159:
8486*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
8487*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm4
8488*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm3, %ymm5
8489*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm1, %ymm6
8490*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm5, %ymm6, %ymm5
8491*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm2, %ymm6
8492*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm0, %ymm4
8493*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm6, %ymm4, %ymm4
8494*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm2, %ymm0, %ymm0
8495*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm3, %ymm1, %ymm1
8496*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
8497*9880d681SAndroid Build Coastguard Worker;
8498*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test159:
8499*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
8500*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminuq %zmm1, %zmm0, %zmm0
8501*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
8502*9880d681SAndroid Build Coastguard Workerentry:
8503*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <8 x i64> %a, %b
8504*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a
8505*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
8506*9880d681SAndroid Build Coastguard Worker}
8507*9880d681SAndroid Build Coastguard Worker
8508*9880d681SAndroid Build Coastguard Workerdefine <8 x i64> @test160(<8 x i64> %a, <8 x i64> %b) {
8509*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test160:
8510*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
8511*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm11
8512*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, -{{[0-9]+}}(%rsp) # 16-byte Spill
8513*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm7
8514*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm3
8515*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm2
8516*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm9
8517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm10 = [2147483648,2147483648,2147483648,2147483648]
8518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm8
8519*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm8
8520*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm0
8521*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm0
8522*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm11
8523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm8, %xmm11
8524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[0,0,2,2]
8525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm8, %xmm0
8526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
8527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm12, %xmm0
8528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm12 = xmm11[1,1,3,3]
8529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm12
8530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm1, %xmm1
8531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm12, %xmm8
8532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm8
8533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm11
8534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
8535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm13
8536*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm13
8537*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm14
8538*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
8539*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm14[0,0,2,2]
8540*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm13
8541*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm13[1,1,3,3]
8542*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm15, %xmm11
8543*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm13 = xmm14[1,1,3,3]
8544*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm11, %xmm13
8545*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm11
8546*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
8547*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm14
8548*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm14
8549*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm14, %xmm15
8550*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm15
8551*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm14
8552*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm15[0,0,2,2]
8553*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
8554*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm14
8555*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm15 = xmm15[1,1,3,3]
8556*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm15
8557*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm11
8558*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm10, %xmm11
8559*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm10
8560*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm14
8561*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm11, %xmm14
8562*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm11, %xmm10
8563*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm11 = xmm14[0,0,2,2]
8564*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm10[1,1,3,3]
8565*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm11, %xmm0
8566*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm13, %xmm10
8567*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm10
8568*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm14 = xmm14[1,1,3,3]
8569*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm0, %xmm14
8570*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm15, %xmm11
8571*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm11
8572*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm14, %xmm1
8573*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm4, %xmm14
8574*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm9, %xmm1
8575*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm14, %xmm1
8576*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm5, %xmm15
8577*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm11
8578*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm15, %xmm11
8579*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm6, %xmm13
8580*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm10
8581*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm13, %xmm10
8582*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn -{{[0-9]+}}(%rsp), %xmm12 # 16-byte Folded Reload
8583*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm7, %xmm8
8584*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm12, %xmm8
8585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm0
8586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm11, %xmm1
8587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm10, %xmm2
8588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm3
8589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
8590*9880d681SAndroid Build Coastguard Worker;
8591*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test160:
8592*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
8593*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm8
8594*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
8595*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm10
8596*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
8597*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm7, %xmm9
8598*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm9
8599*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm10, %xmm9
8600*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm12, %xmm12
8601*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm9
8602*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm11
8603*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
8604*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm6, %xmm10
8605*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm10
8606*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm11, %xmm10
8607*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm10
8608*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm13
8609*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm13
8610*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm11
8611*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm11
8612*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm13, %xmm11
8613*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm11
8614*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm8, %xmm13
8615*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm13
8616*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm4, %xmm0
8617*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm13, %xmm0
8618*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm12, %xmm0
8619*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm8
8620*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm11, %xmm0
8621*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm5, %xmm1
8622*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm10, %xmm0
8623*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm6, %xmm2
8624*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm9, %xmm0
8625*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm7, %xmm3
8626*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm8, %xmm0
8627*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
8628*9880d681SAndroid Build Coastguard Worker;
8629*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test160:
8630*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
8631*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
8632*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]
8633*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm4, %xmm4
8634*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm3, %xmm6
8635*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
8636*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm6, %xmm4
8637*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm8, %xmm8, %xmm8
8638*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm4, %xmm4
8639*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm1, %xmm7
8640*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm3, %xmm6
8641*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm6, %xmm6
8642*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm6, %xmm6
8643*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm4
8644*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm6
8645*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm6, %xmm6
8646*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm2, %xmm7
8647*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm7, %xmm7
8648*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm6, %xmm7, %xmm6
8649*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm6, %xmm6
8650*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm0, %xmm7
8651*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm5, %xmm2, %xmm5
8652*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm7, %xmm5, %xmm5
8653*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm8, %xmm5, %xmm5
8654*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
8655*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm5, %ymm2, %ymm0, %ymm0
8656*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm4, %ymm3, %ymm1, %ymm1
8657*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
8658*9880d681SAndroid Build Coastguard Worker;
8659*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test160:
8660*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
8661*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm4
8662*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm1, %ymm5
8663*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm3, %ymm6
8664*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm5, %ymm6, %ymm5
8665*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm6, %ymm6, %ymm6
8666*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm6, %ymm5, %ymm5
8667*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm0, %ymm7
8668*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm4, %ymm2, %ymm4
8669*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm7, %ymm4, %ymm4
8670*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm6, %ymm4, %ymm4
8671*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm4, %ymm2, %ymm0, %ymm0
8672*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm5, %ymm3, %ymm1, %ymm1
8673*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
8674*9880d681SAndroid Build Coastguard Worker;
8675*9880d681SAndroid Build Coastguard Worker; AVX512F-LABEL: test160:
8676*9880d681SAndroid Build Coastguard Worker; AVX512F:       # BB#0: # %entry
8677*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    vpminuq %zmm1, %zmm0, %zmm0
8678*9880d681SAndroid Build Coastguard Worker; AVX512F-NEXT:    retq
8679*9880d681SAndroid Build Coastguard Workerentry:
8680*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <8 x i64> %a, %b
8681*9880d681SAndroid Build Coastguard Worker  %sel = select <8 x i1> %cmp, <8 x i64> %b, <8 x i64> %a
8682*9880d681SAndroid Build Coastguard Worker  ret <8 x i64> %sel
8683*9880d681SAndroid Build Coastguard Worker}
8684*9880d681SAndroid Build Coastguard Worker
8685*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test161(<4 x i64> %a, <4 x i64> %b) {
8686*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test161:
8687*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
8688*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [2147483648,0,2147483648,0]
8689*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm5
8690*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
8691*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
8692*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
8693*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm7
8694*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm7
8695*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8696*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm5, %xmm6
8697*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8698*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm5
8699*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8700*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm6
8701*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
8702*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
8703*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm4
8704*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm7
8705*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm7
8706*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8707*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm5, %xmm4
8708*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
8709*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
8710*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
8711*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm5
8712*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm0
8713*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
8714*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm0
8715*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm6, %xmm1
8716*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm6
8717*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm1
8718*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
8719*9880d681SAndroid Build Coastguard Worker;
8720*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test161:
8721*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
8722*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
8723*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm5
8724*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm5
8725*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm0
8726*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm4, %xmm0
8727*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm2
8728*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
8729*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm3
8730*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
8731*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm3, %xmm1
8732*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
8733*9880d681SAndroid Build Coastguard Worker;
8734*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test161:
8735*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
8736*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
8737*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm3
8738*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm3, %xmm2
8739*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm3
8740*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
8741*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
8742*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
8743*9880d681SAndroid Build Coastguard Worker;
8744*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test161:
8745*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
8746*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm0, %ymm1, %ymm2
8747*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
8748*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
8749*9880d681SAndroid Build Coastguard Worker;
8750*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test161:
8751*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
8752*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsq %ymm1, %ymm0, %ymm0
8753*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
8754*9880d681SAndroid Build Coastguard Workerentry:
8755*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <4 x i64> %a, %b
8756*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b
8757*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
8758*9880d681SAndroid Build Coastguard Worker}
8759*9880d681SAndroid Build Coastguard Worker
8760*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test162(<4 x i64> %a, <4 x i64> %b) {
8761*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test162:
8762*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
8763*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm7 = [2147483648,0,2147483648,0]
8764*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
8765*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
8766*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm5
8767*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm5
8768*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm6
8769*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm6
8770*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2]
8771*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm5
8772*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8773*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
8774*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3]
8775*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm8
8776*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
8777*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm9
8778*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm9
8779*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm6
8780*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm6
8781*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm7
8782*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
8783*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm5
8784*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2]
8785*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm7
8786*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8787*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm6
8788*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
8789*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
8790*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
8791*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
8792*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm4
8793*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm4
8794*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm8
8795*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm9
8796*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm9
8797*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
8798*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm1
8799*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
8800*9880d681SAndroid Build Coastguard Worker;
8801*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test162:
8802*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
8803*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
8804*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm5
8805*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm5
8806*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm6, %xmm6
8807*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm5
8808*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm0
8809*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm0
8810*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm2
8811*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
8812*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm3
8813*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
8814*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm3, %xmm1
8815*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
8816*9880d681SAndroid Build Coastguard Worker;
8817*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test162:
8818*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
8819*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
8820*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
8821*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm3, %xmm2
8822*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
8823*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
8824*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm4
8825*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm4, %xmm3
8826*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
8827*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
8828*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
8829*9880d681SAndroid Build Coastguard Worker;
8830*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test162:
8831*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
8832*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm1, %ymm0, %ymm2
8833*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm3, %ymm3, %ymm3
8834*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm3, %ymm2, %ymm2
8835*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
8836*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
8837*9880d681SAndroid Build Coastguard Worker;
8838*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test162:
8839*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
8840*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsq %ymm1, %ymm0, %ymm0
8841*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
8842*9880d681SAndroid Build Coastguard Workerentry:
8843*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <4 x i64> %a, %b
8844*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b
8845*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
8846*9880d681SAndroid Build Coastguard Worker}
8847*9880d681SAndroid Build Coastguard Worker
8848*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test163(<4 x i64> %a, <4 x i64> %b) {
8849*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test163:
8850*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
8851*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [2147483648,0,2147483648,0]
8852*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm5
8853*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
8854*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm6
8855*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
8856*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm7
8857*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm7
8858*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8859*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm5, %xmm6
8860*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
8861*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm5
8862*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8863*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm6
8864*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm5
8865*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
8866*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm4
8867*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm7
8868*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm7
8869*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
8870*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm5, %xmm4
8871*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
8872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
8873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
8874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm5
8875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm0
8876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
8877*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm0
8878*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm6, %xmm1
8879*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm6
8880*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm1
8881*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
8882*9880d681SAndroid Build Coastguard Worker;
8883*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test163:
8884*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
8885*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
8886*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm5
8887*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm5
8888*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm0
8889*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm2
8890*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
8891*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm3
8892*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
8893*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm3, %xmm1
8894*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
8895*9880d681SAndroid Build Coastguard Worker;
8896*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test163:
8897*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
8898*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
8899*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
8900*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm3, %xmm2
8901*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm3
8902*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
8903*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
8904*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
8905*9880d681SAndroid Build Coastguard Worker;
8906*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test163:
8907*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
8908*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm1, %ymm0, %ymm2
8909*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
8910*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
8911*9880d681SAndroid Build Coastguard Worker;
8912*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test163:
8913*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
8914*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsq %ymm1, %ymm0, %ymm0
8915*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
8916*9880d681SAndroid Build Coastguard Workerentry:
8917*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <4 x i64> %a, %b
8918*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b
8919*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
8920*9880d681SAndroid Build Coastguard Worker}
8921*9880d681SAndroid Build Coastguard Worker
8922*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test164(<4 x i64> %a, <4 x i64> %b) {
8923*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test164:
8924*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
8925*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm7 = [2147483648,0,2147483648,0]
8926*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
8927*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
8928*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm5
8929*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm5
8930*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm6
8931*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm6
8932*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2]
8933*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm5
8934*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
8935*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
8936*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3]
8937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm8
8938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
8939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm9
8940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm9
8941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm6
8942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm6
8943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm7
8944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
8945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm5
8946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2]
8947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm7
8948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
8949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm6
8950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
8951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
8952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
8953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
8954*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm4
8955*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm4
8956*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm8
8957*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm9
8958*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm9
8959*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
8960*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm1
8961*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
8962*9880d681SAndroid Build Coastguard Worker;
8963*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test164:
8964*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
8965*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
8966*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm5
8967*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm5
8968*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm0, %xmm0
8969*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm5
8970*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm6
8971*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm4, %xmm6
8972*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm0
8973*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm2
8974*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
8975*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm3
8976*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
8977*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm3, %xmm1
8978*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
8979*9880d681SAndroid Build Coastguard Worker;
8980*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test164:
8981*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
8982*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
8983*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm3
8984*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm3, %xmm2
8985*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
8986*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
8987*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm4
8988*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm4, %xmm3
8989*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
8990*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
8991*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
8992*9880d681SAndroid Build Coastguard Worker;
8993*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test164:
8994*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
8995*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm0, %ymm1, %ymm2
8996*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm3, %ymm3, %ymm3
8997*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm3, %ymm2, %ymm2
8998*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
8999*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9000*9880d681SAndroid Build Coastguard Worker;
9001*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test164:
9002*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9003*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsq %ymm1, %ymm0, %ymm0
9004*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9005*9880d681SAndroid Build Coastguard Workerentry:
9006*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <4 x i64> %a, %b
9007*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b
9008*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
9009*9880d681SAndroid Build Coastguard Worker}
9010*9880d681SAndroid Build Coastguard Worker
9011*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test165(<4 x i64> %a, <4 x i64> %b) {
9012*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test165:
9013*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
9014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
9015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm5
9016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
9017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
9018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
9019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm7
9020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm7
9021*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9022*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm5, %xmm6
9023*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
9024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm5
9025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
9026*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm6
9027*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm5
9028*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
9029*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm4
9030*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm7
9031*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm7
9032*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9033*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm5, %xmm4
9034*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
9035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
9036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
9037*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm5
9038*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm0
9039*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
9040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm0
9041*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm6, %xmm1
9042*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm6
9043*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm1
9044*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
9045*9880d681SAndroid Build Coastguard Worker;
9046*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test165:
9047*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
9048*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
9049*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
9050*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm6
9051*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
9052*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm5
9053*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm5
9054*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm5
9055*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm6
9056*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
9057*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm2, %xmm0
9058*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm0
9059*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm2
9060*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
9061*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm3
9062*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
9063*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm3, %xmm1
9064*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
9065*9880d681SAndroid Build Coastguard Worker;
9066*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test165:
9067*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
9068*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
9069*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
9070*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm2, %xmm2
9071*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
9072*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm4, %xmm4
9073*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm4, %xmm2
9074*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm0, %xmm4
9075*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm1, %xmm3
9076*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm3, %xmm3
9077*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
9078*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
9079*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
9080*9880d681SAndroid Build Coastguard Worker;
9081*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test165:
9082*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
9083*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm2
9084*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm0, %ymm3
9085*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm1, %ymm2
9086*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm2, %ymm2
9087*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
9088*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9089*9880d681SAndroid Build Coastguard Worker;
9090*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test165:
9091*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9092*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuq %ymm1, %ymm0, %ymm0
9093*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9094*9880d681SAndroid Build Coastguard Workerentry:
9095*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <4 x i64> %a, %b
9096*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b
9097*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
9098*9880d681SAndroid Build Coastguard Worker}
9099*9880d681SAndroid Build Coastguard Worker
9100*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test166(<4 x i64> %a, <4 x i64> %b) {
9101*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test166:
9102*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
9103*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm7 = [2147483648,2147483648,2147483648,2147483648]
9104*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
9105*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
9106*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm5
9107*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm5
9108*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm6
9109*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm6
9110*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2]
9111*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm5
9112*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
9113*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
9114*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3]
9115*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm8
9116*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
9117*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm9
9118*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm9
9119*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm6
9120*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm6
9121*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm7
9122*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
9123*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm5
9124*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2]
9125*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm7
9126*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
9127*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm6
9128*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
9129*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
9130*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
9131*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
9132*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm4
9133*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm4
9134*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm8
9135*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm9
9136*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm9
9137*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
9138*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm1
9139*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
9140*9880d681SAndroid Build Coastguard Worker;
9141*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test166:
9142*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
9143*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
9144*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
9145*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm6
9146*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
9147*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm5
9148*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm5
9149*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm5
9150*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm6, %xmm6
9151*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm5
9152*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm7
9153*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm7
9154*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm4, %xmm0
9155*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm7, %xmm0
9156*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm0
9157*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm2
9158*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
9159*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm3
9160*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
9161*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm3, %xmm1
9162*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
9163*9880d681SAndroid Build Coastguard Worker;
9164*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test166:
9165*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
9166*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
9167*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
9168*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm2, %xmm2
9169*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm4
9170*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm4, %xmm4
9171*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm4, %xmm2
9172*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm4, %xmm4, %xmm4
9173*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm4, %xmm2, %xmm2
9174*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm1, %xmm5
9175*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm0, %xmm3
9176*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm5, %xmm3, %xmm3
9177*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm4, %xmm3, %xmm3
9178*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
9179*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
9180*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
9181*9880d681SAndroid Build Coastguard Worker;
9182*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test166:
9183*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
9184*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm2
9185*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm1, %ymm3
9186*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm0, %ymm2
9187*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm2, %ymm2
9188*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm3, %ymm3, %ymm3
9189*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm3, %ymm2, %ymm2
9190*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
9191*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9192*9880d681SAndroid Build Coastguard Worker;
9193*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test166:
9194*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9195*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuq %ymm1, %ymm0, %ymm0
9196*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9197*9880d681SAndroid Build Coastguard Workerentry:
9198*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <4 x i64> %a, %b
9199*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b
9200*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
9201*9880d681SAndroid Build Coastguard Worker}
9202*9880d681SAndroid Build Coastguard Worker
9203*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test167(<4 x i64> %a, <4 x i64> %b) {
9204*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test167:
9205*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
9206*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [2147483648,2147483648,2147483648,2147483648]
9207*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm5
9208*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
9209*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm6
9210*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm6
9211*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm7
9212*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm7
9213*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9214*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm5, %xmm6
9215*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm6[1,1,3,3]
9216*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm5
9217*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
9218*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm6
9219*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm5
9220*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm5
9221*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm4
9222*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm7
9223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm5, %xmm7
9224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm5, %xmm4
9226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
9227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
9228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
9229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm5
9230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm0
9231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
9232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm0
9233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm6, %xmm1
9234*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm6
9235*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm1
9236*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
9237*9880d681SAndroid Build Coastguard Worker;
9238*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test167:
9239*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
9240*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
9241*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
9242*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm6
9243*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
9244*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm5
9245*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm5
9246*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm5
9247*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm6
9248*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
9249*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm4, %xmm0
9250*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm0
9251*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm2
9252*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
9253*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm3
9254*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
9255*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm3, %xmm1
9256*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
9257*9880d681SAndroid Build Coastguard Worker;
9258*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test167:
9259*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
9260*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
9261*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
9262*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm2, %xmm2
9263*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm4
9264*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm4, %xmm4
9265*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm4, %xmm2
9266*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm1, %xmm4
9267*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm0, %xmm3
9268*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm3, %xmm3
9269*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
9270*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
9271*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
9272*9880d681SAndroid Build Coastguard Worker;
9273*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test167:
9274*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
9275*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm2
9276*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm1, %ymm3
9277*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm0, %ymm2
9278*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm2, %ymm2
9279*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
9280*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9281*9880d681SAndroid Build Coastguard Worker;
9282*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test167:
9283*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9284*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuq %ymm1, %ymm0, %ymm0
9285*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9286*9880d681SAndroid Build Coastguard Workerentry:
9287*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <4 x i64> %a, %b
9288*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b
9289*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
9290*9880d681SAndroid Build Coastguard Worker}
9291*9880d681SAndroid Build Coastguard Worker
9292*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test168(<4 x i64> %a, <4 x i64> %b) {
9293*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test168:
9294*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
9295*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm7 = [2147483648,2147483648,2147483648,2147483648]
9296*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
9297*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
9298*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm5
9299*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm5
9300*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm6
9301*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm6
9302*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2]
9303*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm5
9304*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
9305*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
9306*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3]
9307*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm8
9308*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
9309*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm9
9310*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm9
9311*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm6
9312*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm6
9313*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm7
9314*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
9315*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm5
9316*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2]
9317*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm7
9318*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
9319*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm6
9320*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
9321*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
9322*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
9323*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
9324*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm4
9325*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm4
9326*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm8
9327*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm9
9328*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm9
9329*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
9330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm1
9331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
9332*9880d681SAndroid Build Coastguard Worker;
9333*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test168:
9334*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
9335*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
9336*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
9337*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm6
9338*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
9339*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm5
9340*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm5
9341*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm5
9342*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm6, %xmm6
9343*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm5
9344*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm7
9345*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm7
9346*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm2, %xmm0
9347*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm7, %xmm0
9348*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm0
9349*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm4, %xmm2
9350*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
9351*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm3
9352*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
9353*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm3, %xmm1
9354*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
9355*9880d681SAndroid Build Coastguard Worker;
9356*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test168:
9357*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
9358*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
9359*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
9360*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm2, %xmm2
9361*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
9362*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm4, %xmm4
9363*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm4, %xmm2
9364*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm4, %xmm4, %xmm4
9365*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm4, %xmm2, %xmm2
9366*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm0, %xmm5
9367*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm1, %xmm3
9368*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm5, %xmm3, %xmm3
9369*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm4, %xmm3, %xmm3
9370*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
9371*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
9372*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
9373*9880d681SAndroid Build Coastguard Worker;
9374*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test168:
9375*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
9376*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm2
9377*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm0, %ymm3
9378*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm1, %ymm2
9379*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm2, %ymm2
9380*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm3, %ymm3, %ymm3
9381*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm3, %ymm2, %ymm2
9382*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm0, %ymm1, %ymm0
9383*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9384*9880d681SAndroid Build Coastguard Worker;
9385*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test168:
9386*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9387*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuq %ymm1, %ymm0, %ymm0
9388*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9389*9880d681SAndroid Build Coastguard Workerentry:
9390*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <4 x i64> %a, %b
9391*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %a, <4 x i64> %b
9392*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
9393*9880d681SAndroid Build Coastguard Worker}
9394*9880d681SAndroid Build Coastguard Worker
9395*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test169(<4 x i64> %a, <4 x i64> %b) {
9396*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test169:
9397*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
9398*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm5 = [2147483648,0,2147483648,0]
9399*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
9400*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
9401*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
9402*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
9403*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm7
9404*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm7
9405*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9406*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm6
9407*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3]
9408*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm6
9409*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm7[1,1,3,3]
9410*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
9411*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm6
9412*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
9413*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm5
9414*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm7
9415*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm7
9416*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9417*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm5
9418*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm5[1,1,3,3]
9419*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm6
9420*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
9421*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
9422*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
9423*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
9424*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm5
9425*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm3
9426*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
9427*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm4
9428*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
9429*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
9430*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
9431*9880d681SAndroid Build Coastguard Worker;
9432*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test169:
9433*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
9434*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
9435*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm5
9436*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm5
9437*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm0
9438*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm4, %xmm0
9439*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm4
9440*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
9441*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm1
9442*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
9443*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
9444*9880d681SAndroid Build Coastguard Worker;
9445*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test169:
9446*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
9447*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
9448*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm3
9449*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm3, %xmm2
9450*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm3
9451*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
9452*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9453*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
9454*9880d681SAndroid Build Coastguard Worker;
9455*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test169:
9456*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
9457*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm0, %ymm1, %ymm2
9458*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9459*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9460*9880d681SAndroid Build Coastguard Worker;
9461*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test169:
9462*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9463*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsq %ymm1, %ymm0, %ymm0
9464*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9465*9880d681SAndroid Build Coastguard Workerentry:
9466*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <4 x i64> %a, %b
9467*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a
9468*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
9469*9880d681SAndroid Build Coastguard Worker}
9470*9880d681SAndroid Build Coastguard Worker
9471*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test170(<4 x i64> %a, <4 x i64> %b) {
9472*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test170:
9473*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
9474*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm7 = [2147483648,0,2147483648,0]
9475*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
9476*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
9477*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm5
9478*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm5
9479*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm6
9480*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm6
9481*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2]
9482*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm5
9483*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
9484*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
9485*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3]
9486*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm8
9487*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
9488*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm9
9489*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm9
9490*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm6
9491*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm6
9492*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm7
9493*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
9494*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm5
9495*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2]
9496*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm7
9497*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
9498*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm6
9499*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
9500*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
9501*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
9502*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
9503*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
9504*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm4
9505*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
9506*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm9
9507*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm9
9508*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
9509*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm1
9510*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
9511*9880d681SAndroid Build Coastguard Worker;
9512*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test170:
9513*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
9514*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
9515*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm5
9516*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm5
9517*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm6, %xmm6
9518*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm5
9519*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm0
9520*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm0
9521*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm4
9522*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
9523*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm1
9524*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
9525*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
9526*9880d681SAndroid Build Coastguard Worker;
9527*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test170:
9528*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
9529*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
9530*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
9531*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm3, %xmm2
9532*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
9533*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
9534*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm4
9535*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm4, %xmm3
9536*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
9537*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9538*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
9539*9880d681SAndroid Build Coastguard Worker;
9540*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test170:
9541*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
9542*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm1, %ymm0, %ymm2
9543*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm3, %ymm3, %ymm3
9544*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm3, %ymm2, %ymm2
9545*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9546*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9547*9880d681SAndroid Build Coastguard Worker;
9548*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test170:
9549*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9550*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsq %ymm1, %ymm0, %ymm0
9551*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9552*9880d681SAndroid Build Coastguard Workerentry:
9553*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <4 x i64> %a, %b
9554*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a
9555*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
9556*9880d681SAndroid Build Coastguard Worker}
9557*9880d681SAndroid Build Coastguard Worker
9558*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test171(<4 x i64> %a, <4 x i64> %b) {
9559*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test171:
9560*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
9561*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm5 = [2147483648,0,2147483648,0]
9562*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
9563*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
9564*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm6
9565*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
9566*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm7
9567*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm7
9568*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9569*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm6
9570*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3]
9571*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm6
9572*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm7[1,1,3,3]
9573*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
9574*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm6
9575*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
9576*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm5
9577*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm7
9578*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm7
9579*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9580*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm5
9581*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm5[1,1,3,3]
9582*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm6
9583*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
9584*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
9585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
9586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
9587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm5
9588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm3
9589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
9590*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm4
9591*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
9592*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
9593*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
9594*9880d681SAndroid Build Coastguard Worker;
9595*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test171:
9596*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
9597*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
9598*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm5
9599*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm5
9600*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm0
9601*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm4
9602*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
9603*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm1
9604*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
9605*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
9606*9880d681SAndroid Build Coastguard Worker;
9607*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test171:
9608*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
9609*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
9610*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm3
9611*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm3, %xmm2
9612*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm3
9613*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
9614*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9615*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
9616*9880d681SAndroid Build Coastguard Worker;
9617*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test171:
9618*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
9619*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm1, %ymm0, %ymm2
9620*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9621*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9622*9880d681SAndroid Build Coastguard Worker;
9623*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test171:
9624*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9625*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsq %ymm1, %ymm0, %ymm0
9626*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9627*9880d681SAndroid Build Coastguard Workerentry:
9628*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <4 x i64> %a, %b
9629*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a
9630*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
9631*9880d681SAndroid Build Coastguard Worker}
9632*9880d681SAndroid Build Coastguard Worker
9633*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test172(<4 x i64> %a, <4 x i64> %b) {
9634*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test172:
9635*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
9636*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm7 = [2147483648,0,2147483648,0]
9637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
9638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
9639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm5
9640*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm5
9641*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm6
9642*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm6
9643*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2]
9644*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm5
9645*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
9646*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
9647*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3]
9648*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm8
9649*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
9650*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm9
9651*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm9
9652*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm6
9653*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm6
9654*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm7
9655*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
9656*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm5
9657*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2]
9658*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm7
9659*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
9660*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm6
9661*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
9662*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
9663*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
9664*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
9665*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
9666*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm4
9667*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
9668*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm9
9669*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm9
9670*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
9671*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm1
9672*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
9673*9880d681SAndroid Build Coastguard Worker;
9674*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test172:
9675*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
9676*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
9677*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm5
9678*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm5
9679*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm0, %xmm0
9680*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm5
9681*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm6
9682*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm4, %xmm6
9683*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm0
9684*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm4
9685*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
9686*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm1
9687*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
9688*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
9689*9880d681SAndroid Build Coastguard Worker;
9690*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test172:
9691*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
9692*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
9693*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm3
9694*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm3, %xmm2
9695*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
9696*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
9697*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm4
9698*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm4, %xmm3
9699*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
9700*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9701*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
9702*9880d681SAndroid Build Coastguard Worker;
9703*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test172:
9704*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
9705*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm0, %ymm1, %ymm2
9706*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm3, %ymm3, %ymm3
9707*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm3, %ymm2, %ymm2
9708*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9709*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9710*9880d681SAndroid Build Coastguard Worker;
9711*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test172:
9712*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9713*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsq %ymm1, %ymm0, %ymm0
9714*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9715*9880d681SAndroid Build Coastguard Workerentry:
9716*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <4 x i64> %a, %b
9717*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a
9718*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
9719*9880d681SAndroid Build Coastguard Worker}
9720*9880d681SAndroid Build Coastguard Worker
9721*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test173(<4 x i64> %a, <4 x i64> %b) {
9722*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test173:
9723*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
9724*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm5 = [2147483648,2147483648,2147483648,2147483648]
9725*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
9726*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
9727*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm6
9728*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
9729*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm7
9730*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm7
9731*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9732*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm6
9733*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3]
9734*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm6
9735*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm7[1,1,3,3]
9736*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
9737*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm6
9738*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
9739*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm5
9740*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm7
9741*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm7
9742*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9743*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm5
9744*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm5[1,1,3,3]
9745*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm6
9746*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
9747*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
9748*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
9749*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
9750*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm5
9751*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm3
9752*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
9753*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm4
9754*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
9755*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
9756*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
9757*9880d681SAndroid Build Coastguard Worker;
9758*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test173:
9759*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
9760*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
9761*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
9762*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm6
9763*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
9764*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm5
9765*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm5
9766*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm5
9767*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm6
9768*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
9769*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm2, %xmm0
9770*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm0
9771*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm4
9772*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
9773*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm1
9774*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
9775*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
9776*9880d681SAndroid Build Coastguard Worker;
9777*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test173:
9778*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
9779*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
9780*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
9781*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm2, %xmm2
9782*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
9783*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm4, %xmm4
9784*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm4, %xmm2
9785*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm0, %xmm4
9786*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm1, %xmm3
9787*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm3, %xmm3
9788*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
9789*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9790*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
9791*9880d681SAndroid Build Coastguard Worker;
9792*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test173:
9793*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
9794*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm2
9795*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm0, %ymm3
9796*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm1, %ymm2
9797*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm2, %ymm2
9798*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9799*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9800*9880d681SAndroid Build Coastguard Worker;
9801*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test173:
9802*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9803*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuq %ymm1, %ymm0, %ymm0
9804*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9805*9880d681SAndroid Build Coastguard Workerentry:
9806*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <4 x i64> %a, %b
9807*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a
9808*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
9809*9880d681SAndroid Build Coastguard Worker}
9810*9880d681SAndroid Build Coastguard Worker
9811*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test174(<4 x i64> %a, <4 x i64> %b) {
9812*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test174:
9813*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
9814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm7 = [2147483648,2147483648,2147483648,2147483648]
9815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
9816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
9817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm5
9818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm5
9819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm6
9820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm6
9821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2]
9822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm5
9823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
9824*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
9825*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3]
9826*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm8
9827*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
9828*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm9
9829*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm9
9830*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm6
9831*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm6
9832*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm7
9833*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
9834*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm5
9835*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2]
9836*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm7
9837*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
9838*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm6
9839*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
9840*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
9841*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
9842*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
9843*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
9844*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm4
9845*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
9846*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm9
9847*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm9
9848*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
9849*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm1
9850*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
9851*9880d681SAndroid Build Coastguard Worker;
9852*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test174:
9853*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
9854*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
9855*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
9856*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm6
9857*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
9858*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm5
9859*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm5
9860*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm5
9861*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm6, %xmm6
9862*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm5
9863*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm7
9864*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm7
9865*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm4, %xmm0
9866*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm7, %xmm0
9867*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm0
9868*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm4
9869*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
9870*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm1
9871*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
9872*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
9873*9880d681SAndroid Build Coastguard Worker;
9874*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test174:
9875*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
9876*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
9877*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
9878*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm2, %xmm2
9879*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm4
9880*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm4, %xmm4
9881*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm4, %xmm2
9882*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm4, %xmm4, %xmm4
9883*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm4, %xmm2, %xmm2
9884*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm1, %xmm5
9885*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm0, %xmm3
9886*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm5, %xmm3, %xmm3
9887*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm4, %xmm3, %xmm3
9888*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
9889*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9890*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
9891*9880d681SAndroid Build Coastguard Worker;
9892*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test174:
9893*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
9894*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm2
9895*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm1, %ymm3
9896*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm0, %ymm2
9897*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm2, %ymm2
9898*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm3, %ymm3, %ymm3
9899*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm3, %ymm2, %ymm2
9900*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9901*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9902*9880d681SAndroid Build Coastguard Worker;
9903*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test174:
9904*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9905*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuq %ymm1, %ymm0, %ymm0
9906*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9907*9880d681SAndroid Build Coastguard Workerentry:
9908*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <4 x i64> %a, %b
9909*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a
9910*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
9911*9880d681SAndroid Build Coastguard Worker}
9912*9880d681SAndroid Build Coastguard Worker
9913*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test175(<4 x i64> %a, <4 x i64> %b) {
9914*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test175:
9915*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
9916*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm5 = [2147483648,2147483648,2147483648,2147483648]
9917*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm4
9918*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
9919*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm6
9920*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
9921*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm6, %xmm7
9922*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm7
9923*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9924*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm6
9925*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm6[1,1,3,3]
9926*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm6
9927*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm7[1,1,3,3]
9928*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm4
9929*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm6
9930*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm6
9931*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm5
9932*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm7
9933*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm7
9934*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[0,0,2,2]
9935*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm5
9936*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm5[1,1,3,3]
9937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm6
9938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm7[1,1,3,3]
9939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
9940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
9941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm5
9942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm5
9943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm4, %xmm3
9944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm4
9945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm4
9946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm0
9947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm1
9948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
9949*9880d681SAndroid Build Coastguard Worker;
9950*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test175:
9951*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
9952*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
9953*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
9954*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm6
9955*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
9956*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm5
9957*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm5
9958*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm5
9959*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm6
9960*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
9961*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm4, %xmm0
9962*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm0
9963*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm4
9964*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
9965*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm1
9966*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
9967*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
9968*9880d681SAndroid Build Coastguard Worker;
9969*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test175:
9970*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
9971*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm2
9972*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
9973*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm2, %xmm2
9974*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm4
9975*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm4, %xmm4
9976*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm4, %xmm2
9977*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm1, %xmm4
9978*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm0, %xmm3
9979*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm4, %xmm3, %xmm3
9980*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
9981*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9982*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
9983*9880d681SAndroid Build Coastguard Worker;
9984*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test175:
9985*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
9986*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm2
9987*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm1, %ymm3
9988*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm0, %ymm2
9989*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm2, %ymm2
9990*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
9991*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
9992*9880d681SAndroid Build Coastguard Worker;
9993*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test175:
9994*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
9995*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuq %ymm1, %ymm0, %ymm0
9996*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
9997*9880d681SAndroid Build Coastguard Workerentry:
9998*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <4 x i64> %a, %b
9999*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a
10000*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
10001*9880d681SAndroid Build Coastguard Worker}
10002*9880d681SAndroid Build Coastguard Worker
10003*9880d681SAndroid Build Coastguard Workerdefine <4 x i64> @test176(<4 x i64> %a, <4 x i64> %b) {
10004*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test176:
10005*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10006*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm7 = [2147483648,2147483648,2147483648,2147483648]
10007*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm4
10008*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm4
10009*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm3, %xmm5
10010*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm5
10011*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm5, %xmm6
10012*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm4, %xmm6
10013*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[0,0,2,2]
10014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm5
10015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm4 = xmm5[1,1,3,3]
10016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm8, %xmm4
10017*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm8 = xmm6[1,1,3,3]
10018*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm4, %xmm8
10019*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm4, %xmm4
10020*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm8, %xmm9
10021*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm4, %xmm9
10022*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm6
10023*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm7, %xmm6
10024*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm7
10025*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm7, %xmm5
10026*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm6, %xmm5
10027*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm10 = xmm5[0,0,2,2]
10028*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm6, %xmm7
10029*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm6 = xmm7[1,1,3,3]
10030*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm10, %xmm6
10031*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
10032*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm6, %xmm5
10033*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm5, %xmm4
10034*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm2, %xmm5
10035*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm4
10036*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm5, %xmm4
10037*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm3, %xmm8
10038*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm9
10039*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm8, %xmm9
10040*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm4, %xmm0
10041*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm9, %xmm1
10042*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10043*9880d681SAndroid Build Coastguard Worker;
10044*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test176:
10045*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10046*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm4
10047*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
10048*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm6
10049*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm6
10050*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm3, %xmm5
10051*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm5
10052*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm6, %xmm5
10053*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm6, %xmm6
10054*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm5
10055*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm4, %xmm7
10056*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm7
10057*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm2, %xmm0
10058*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm7, %xmm0
10059*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm6, %xmm0
10060*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm4
10061*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm5, %xmm0
10062*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm3, %xmm1
10063*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm4, %xmm0
10064*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10065*9880d681SAndroid Build Coastguard Worker;
10066*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test176:
10067*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10068*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm0, %xmm2
10069*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovaps {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
10070*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm2, %xmm2
10071*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vextractf128 $1, %ymm1, %xmm4
10072*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm4, %xmm4
10073*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm2, %xmm4, %xmm2
10074*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm4, %xmm4, %xmm4
10075*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm4, %xmm2, %xmm2
10076*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm0, %xmm5
10077*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vxorps %xmm3, %xmm1, %xmm3
10078*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm5, %xmm3, %xmm3
10079*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm4, %xmm3, %xmm3
10080*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
10081*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
10082*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10083*9880d681SAndroid Build Coastguard Worker;
10084*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test176:
10085*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10086*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpbroadcastq {{.*}}(%rip), %ymm2
10087*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm0, %ymm3
10088*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm2, %ymm1, %ymm2
10089*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %ymm3, %ymm2, %ymm2
10090*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %ymm3, %ymm3, %ymm3
10091*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %ymm3, %ymm2, %ymm2
10092*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
10093*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10094*9880d681SAndroid Build Coastguard Worker;
10095*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test176:
10096*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10097*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuq %ymm1, %ymm0, %ymm0
10098*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10099*9880d681SAndroid Build Coastguard Workerentry:
10100*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <4 x i64> %a, %b
10101*9880d681SAndroid Build Coastguard Worker  %sel = select <4 x i1> %cmp, <4 x i64> %b, <4 x i64> %a
10102*9880d681SAndroid Build Coastguard Worker  ret <4 x i64> %sel
10103*9880d681SAndroid Build Coastguard Worker}
10104*9880d681SAndroid Build Coastguard Worker
10105*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test177(<2 x i64> %a, <2 x i64> %b) {
10106*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test177:
10107*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10108*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]
10109*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
10110*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10111*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
10112*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10113*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10114*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10115*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10116*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10117*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
10118*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10119*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
10120*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm0
10121*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
10122*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm0
10123*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10124*9880d681SAndroid Build Coastguard Worker;
10125*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test177:
10126*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10127*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10128*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm0
10129*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm0
10130*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm1
10131*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm1, %xmm0
10132*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10133*9880d681SAndroid Build Coastguard Worker;
10134*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test177:
10135*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10136*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm2
10137*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10138*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10139*9880d681SAndroid Build Coastguard Worker;
10140*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test177:
10141*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10142*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm2
10143*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10144*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10145*9880d681SAndroid Build Coastguard Worker;
10146*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test177:
10147*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10148*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsq %xmm1, %xmm0, %xmm0
10149*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10150*9880d681SAndroid Build Coastguard Workerentry:
10151*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <2 x i64> %a, %b
10152*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b
10153*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10154*9880d681SAndroid Build Coastguard Worker}
10155*9880d681SAndroid Build Coastguard Worker
10156*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test178(<2 x i64> %a, <2 x i64> %b) {
10157*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test178:
10158*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10159*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]
10160*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
10161*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10162*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
10163*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10164*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10165*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10166*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10167*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10168*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
10169*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10170*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
10171*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
10172*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
10173*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm3
10174*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
10175*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
10176*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
10177*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10178*9880d681SAndroid Build Coastguard Worker;
10179*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test178:
10180*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10181*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10182*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm0
10183*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm3, %xmm3
10184*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
10185*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm1
10186*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm1, %xmm0
10187*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10188*9880d681SAndroid Build Coastguard Worker;
10189*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test178:
10190*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10191*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm2
10192*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10193*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10194*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10195*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10196*9880d681SAndroid Build Coastguard Worker;
10197*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test178:
10198*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10199*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm2
10200*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10201*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10202*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10203*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10204*9880d681SAndroid Build Coastguard Worker;
10205*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test178:
10206*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10207*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsq %xmm1, %xmm0, %xmm0
10208*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10209*9880d681SAndroid Build Coastguard Workerentry:
10210*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <2 x i64> %a, %b
10211*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b
10212*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10213*9880d681SAndroid Build Coastguard Worker}
10214*9880d681SAndroid Build Coastguard Worker
10215*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test179(<2 x i64> %a, <2 x i64> %b) {
10216*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test179:
10217*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10218*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]
10219*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
10220*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10221*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
10222*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10223*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10224*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10225*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10226*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10227*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
10228*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10229*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
10230*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm0
10231*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
10232*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm0
10233*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10234*9880d681SAndroid Build Coastguard Worker;
10235*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test179:
10236*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10237*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10238*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm0
10239*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm1
10240*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm1, %xmm0
10241*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10242*9880d681SAndroid Build Coastguard Worker;
10243*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test179:
10244*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10245*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm2
10246*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10247*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10248*9880d681SAndroid Build Coastguard Worker;
10249*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test179:
10250*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10251*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm2
10252*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10253*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10254*9880d681SAndroid Build Coastguard Worker;
10255*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test179:
10256*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10257*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsq %xmm1, %xmm0, %xmm0
10258*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10259*9880d681SAndroid Build Coastguard Workerentry:
10260*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <2 x i64> %a, %b
10261*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b
10262*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10263*9880d681SAndroid Build Coastguard Worker}
10264*9880d681SAndroid Build Coastguard Worker
10265*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test180(<2 x i64> %a, <2 x i64> %b) {
10266*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test180:
10267*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10268*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]
10269*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
10270*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10271*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
10272*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10273*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10274*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10275*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10276*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10277*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
10278*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10279*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
10280*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
10281*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
10282*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm3
10283*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
10284*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
10285*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
10286*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10287*9880d681SAndroid Build Coastguard Worker;
10288*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test180:
10289*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10290*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10291*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm3
10292*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm3
10293*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm0, %xmm0
10294*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
10295*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm1
10296*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm1, %xmm0
10297*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10298*9880d681SAndroid Build Coastguard Worker;
10299*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test180:
10300*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10301*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm2
10302*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10303*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10304*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10305*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10306*9880d681SAndroid Build Coastguard Worker;
10307*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test180:
10308*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10309*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm2
10310*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10311*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10312*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10313*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10314*9880d681SAndroid Build Coastguard Worker;
10315*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test180:
10316*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10317*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsq %xmm1, %xmm0, %xmm0
10318*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10319*9880d681SAndroid Build Coastguard Workerentry:
10320*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <2 x i64> %a, %b
10321*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b
10322*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10323*9880d681SAndroid Build Coastguard Worker}
10324*9880d681SAndroid Build Coastguard Worker
10325*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test181(<2 x i64> %a, <2 x i64> %b) {
10326*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test181:
10327*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10328*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
10329*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
10330*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10331*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
10332*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10333*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10334*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10335*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10336*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10337*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
10338*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10339*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
10340*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm0
10341*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
10342*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm0
10343*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10344*9880d681SAndroid Build Coastguard Worker;
10345*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test181:
10346*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10347*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10348*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
10349*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm3
10350*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm3
10351*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm1, %xmm0
10352*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm0
10353*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm1
10354*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm1, %xmm0
10355*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10356*9880d681SAndroid Build Coastguard Worker;
10357*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test181:
10358*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10359*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10360*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm0, %xmm3
10361*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm1, %xmm2
10362*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10363*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10364*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10365*9880d681SAndroid Build Coastguard Worker;
10366*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test181:
10367*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10368*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10369*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm0, %xmm3
10370*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm1, %xmm2
10371*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10372*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10373*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10374*9880d681SAndroid Build Coastguard Worker;
10375*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test181:
10376*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10377*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuq %xmm1, %xmm0, %xmm0
10378*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10379*9880d681SAndroid Build Coastguard Workerentry:
10380*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <2 x i64> %a, %b
10381*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b
10382*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10383*9880d681SAndroid Build Coastguard Worker}
10384*9880d681SAndroid Build Coastguard Worker
10385*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test182(<2 x i64> %a, <2 x i64> %b) {
10386*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test182:
10387*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10388*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
10389*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
10390*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10391*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
10392*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10393*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10394*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10395*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10396*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10397*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
10398*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10399*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
10400*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
10401*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
10402*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm3
10403*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
10404*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
10405*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
10406*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10407*9880d681SAndroid Build Coastguard Worker;
10408*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test182:
10409*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10410*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10411*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
10412*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm0
10413*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
10414*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm2, %xmm3
10415*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm0, %xmm3
10416*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm0, %xmm0
10417*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
10418*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm1
10419*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm1, %xmm0
10420*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10421*9880d681SAndroid Build Coastguard Worker;
10422*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test182:
10423*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10424*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10425*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm1, %xmm3
10426*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm0, %xmm2
10427*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10428*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10429*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10430*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10431*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10432*9880d681SAndroid Build Coastguard Worker;
10433*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test182:
10434*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10435*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10436*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm1, %xmm3
10437*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm0, %xmm2
10438*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10439*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10440*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10441*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10442*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10443*9880d681SAndroid Build Coastguard Worker;
10444*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test182:
10445*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10446*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuq %xmm1, %xmm0, %xmm0
10447*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10448*9880d681SAndroid Build Coastguard Workerentry:
10449*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <2 x i64> %a, %b
10450*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b
10451*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10452*9880d681SAndroid Build Coastguard Worker}
10453*9880d681SAndroid Build Coastguard Worker
10454*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test183(<2 x i64> %a, <2 x i64> %b) {
10455*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test183:
10456*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10457*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
10458*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
10459*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10460*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
10461*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10462*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10463*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10464*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10465*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10466*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
10467*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10468*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
10469*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm3, %xmm0
10470*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
10471*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm0
10472*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10473*9880d681SAndroid Build Coastguard Worker;
10474*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test183:
10475*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10476*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10477*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
10478*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm3
10479*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm3
10480*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm2, %xmm0
10481*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm0
10482*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm1
10483*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm1, %xmm0
10484*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10485*9880d681SAndroid Build Coastguard Worker;
10486*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test183:
10487*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10488*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10489*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm1, %xmm3
10490*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm0, %xmm2
10491*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10492*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10493*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10494*9880d681SAndroid Build Coastguard Worker;
10495*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test183:
10496*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10497*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10498*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm1, %xmm3
10499*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm0, %xmm2
10500*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10501*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10502*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10503*9880d681SAndroid Build Coastguard Worker;
10504*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test183:
10505*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10506*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuq %xmm1, %xmm0, %xmm0
10507*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10508*9880d681SAndroid Build Coastguard Workerentry:
10509*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <2 x i64> %a, %b
10510*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b
10511*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10512*9880d681SAndroid Build Coastguard Worker}
10513*9880d681SAndroid Build Coastguard Worker
10514*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test184(<2 x i64> %a, <2 x i64> %b) {
10515*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test184:
10516*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10517*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
10518*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
10519*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10520*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
10521*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10522*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10523*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10524*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10525*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10526*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
10527*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10528*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
10529*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
10530*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
10531*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm3
10532*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm2
10533*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
10534*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
10535*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10536*9880d681SAndroid Build Coastguard Worker;
10537*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test184:
10538*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10539*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10540*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
10541*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
10542*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm1, %xmm3
10543*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm0, %xmm3
10544*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm0, %xmm0
10545*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
10546*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm2, %xmm1
10547*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm1, %xmm0
10548*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10549*9880d681SAndroid Build Coastguard Worker;
10550*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test184:
10551*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10552*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10553*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm0, %xmm3
10554*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm1, %xmm2
10555*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10556*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10557*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10558*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10559*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10560*9880d681SAndroid Build Coastguard Worker;
10561*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test184:
10562*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10563*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10564*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm0, %xmm3
10565*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm1, %xmm2
10566*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10567*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10568*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10569*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
10570*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10571*9880d681SAndroid Build Coastguard Worker;
10572*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test184:
10573*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10574*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuq %xmm1, %xmm0, %xmm0
10575*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10576*9880d681SAndroid Build Coastguard Workerentry:
10577*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <2 x i64> %a, %b
10578*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %a, <2 x i64> %b
10579*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10580*9880d681SAndroid Build Coastguard Worker}
10581*9880d681SAndroid Build Coastguard Worker
10582*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test185(<2 x i64> %a, <2 x i64> %b) {
10583*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test185:
10584*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10585*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]
10586*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
10587*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10588*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
10589*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10590*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10591*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10592*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10593*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[1,1,3,3]
10594*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm3
10595*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
10596*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
10597*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
10598*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
10599*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
10600*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
10601*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10602*9880d681SAndroid Build Coastguard Worker;
10603*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test185:
10604*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10605*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10606*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm0
10607*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm0
10608*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm2
10609*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
10610*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10611*9880d681SAndroid Build Coastguard Worker;
10612*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test185:
10613*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10614*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm2
10615*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10616*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10617*9880d681SAndroid Build Coastguard Worker;
10618*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test185:
10619*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10620*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm2
10621*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10622*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10623*9880d681SAndroid Build Coastguard Worker;
10624*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test185:
10625*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10626*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsq %xmm1, %xmm0, %xmm0
10627*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10628*9880d681SAndroid Build Coastguard Workerentry:
10629*9880d681SAndroid Build Coastguard Worker  %cmp = icmp slt <2 x i64> %a, %b
10630*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a
10631*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10632*9880d681SAndroid Build Coastguard Worker}
10633*9880d681SAndroid Build Coastguard Worker
10634*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test186(<2 x i64> %a, <2 x i64> %b) {
10635*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test186:
10636*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10637*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]
10638*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
10639*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10640*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
10641*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10642*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10643*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10644*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10645*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10646*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
10647*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10648*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
10649*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
10650*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
10651*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
10652*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
10653*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
10654*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
10655*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10656*9880d681SAndroid Build Coastguard Worker;
10657*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test186:
10658*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10659*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10660*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm0
10661*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm3, %xmm3
10662*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
10663*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm2
10664*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
10665*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10666*9880d681SAndroid Build Coastguard Worker;
10667*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test186:
10668*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10669*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm2
10670*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10671*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10672*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10673*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10674*9880d681SAndroid Build Coastguard Worker;
10675*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test186:
10676*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10677*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm2
10678*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10679*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10680*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10681*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10682*9880d681SAndroid Build Coastguard Worker;
10683*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test186:
10684*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10685*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxsq %xmm1, %xmm0, %xmm0
10686*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10687*9880d681SAndroid Build Coastguard Workerentry:
10688*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sle <2 x i64> %a, %b
10689*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a
10690*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10691*9880d681SAndroid Build Coastguard Worker}
10692*9880d681SAndroid Build Coastguard Worker
10693*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test187(<2 x i64> %a, <2 x i64> %b) {
10694*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test187:
10695*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10696*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]
10697*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
10698*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10699*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
10700*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10701*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10702*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10703*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10704*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[1,1,3,3]
10705*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm3
10706*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
10707*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
10708*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
10709*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
10710*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
10711*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
10712*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10713*9880d681SAndroid Build Coastguard Worker;
10714*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test187:
10715*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10716*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10717*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm1, %xmm0
10718*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm2
10719*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
10720*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10721*9880d681SAndroid Build Coastguard Worker;
10722*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test187:
10723*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10724*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm2
10725*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10726*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10727*9880d681SAndroid Build Coastguard Worker;
10728*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test187:
10729*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10730*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm1, %xmm0, %xmm2
10731*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10732*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10733*9880d681SAndroid Build Coastguard Worker;
10734*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test187:
10735*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10736*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsq %xmm1, %xmm0, %xmm0
10737*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10738*9880d681SAndroid Build Coastguard Workerentry:
10739*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sgt <2 x i64> %a, %b
10740*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a
10741*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10742*9880d681SAndroid Build Coastguard Worker}
10743*9880d681SAndroid Build Coastguard Worker
10744*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test188(<2 x i64> %a, <2 x i64> %b) {
10745*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test188:
10746*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10747*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,0,2147483648,0]
10748*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
10749*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10750*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
10751*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10752*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10753*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10754*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10755*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10756*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
10757*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10758*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
10759*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
10760*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
10761*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
10762*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
10763*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
10764*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
10765*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10766*9880d681SAndroid Build Coastguard Worker;
10767*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test188:
10768*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10769*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10770*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm3
10771*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm2, %xmm3
10772*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm0, %xmm0
10773*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
10774*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm2
10775*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
10776*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10777*9880d681SAndroid Build Coastguard Worker;
10778*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test188:
10779*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10780*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm2
10781*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10782*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10783*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10784*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10785*9880d681SAndroid Build Coastguard Worker;
10786*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test188:
10787*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10788*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm0, %xmm1, %xmm2
10789*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10790*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10791*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10792*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10793*9880d681SAndroid Build Coastguard Worker;
10794*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test188:
10795*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10796*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminsq %xmm1, %xmm0, %xmm0
10797*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10798*9880d681SAndroid Build Coastguard Workerentry:
10799*9880d681SAndroid Build Coastguard Worker  %cmp = icmp sge <2 x i64> %a, %b
10800*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a
10801*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10802*9880d681SAndroid Build Coastguard Worker}
10803*9880d681SAndroid Build Coastguard Worker
10804*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test189(<2 x i64> %a, <2 x i64> %b) {
10805*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test189:
10806*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10807*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
10808*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
10809*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10810*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
10811*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10812*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10813*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10814*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10815*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[1,1,3,3]
10816*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm3
10817*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
10818*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
10819*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
10820*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
10821*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
10822*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
10823*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10824*9880d681SAndroid Build Coastguard Worker;
10825*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test189:
10826*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10827*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10828*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
10829*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm2, %xmm3
10830*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm3
10831*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm1, %xmm0
10832*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm0
10833*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm2
10834*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
10835*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10836*9880d681SAndroid Build Coastguard Worker;
10837*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test189:
10838*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10839*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10840*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm0, %xmm3
10841*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm1, %xmm2
10842*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10843*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10844*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10845*9880d681SAndroid Build Coastguard Worker;
10846*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test189:
10847*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10848*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10849*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm0, %xmm3
10850*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm1, %xmm2
10851*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10852*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10853*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10854*9880d681SAndroid Build Coastguard Worker;
10855*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test189:
10856*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10857*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuq %xmm1, %xmm0, %xmm0
10858*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10859*9880d681SAndroid Build Coastguard Workerentry:
10860*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ult <2 x i64> %a, %b
10861*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a
10862*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10863*9880d681SAndroid Build Coastguard Worker}
10864*9880d681SAndroid Build Coastguard Worker
10865*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test190(<2 x i64> %a, <2 x i64> %b) {
10866*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test190:
10867*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10868*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
10869*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
10870*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10871*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
10872*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10873*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10874*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10875*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10876*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
10877*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
10878*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
10879*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
10880*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
10881*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
10882*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
10883*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
10884*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
10885*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
10886*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10887*9880d681SAndroid Build Coastguard Worker;
10888*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test190:
10889*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10890*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10891*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
10892*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm0
10893*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
10894*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm2, %xmm3
10895*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm0, %xmm3
10896*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm0, %xmm0
10897*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
10898*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm2
10899*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
10900*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10901*9880d681SAndroid Build Coastguard Worker;
10902*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test190:
10903*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10904*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10905*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm1, %xmm3
10906*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm0, %xmm2
10907*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10908*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10909*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10910*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10911*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10912*9880d681SAndroid Build Coastguard Worker;
10913*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test190:
10914*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10915*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10916*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm1, %xmm3
10917*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm0, %xmm2
10918*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10919*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
10920*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm3, %xmm2, %xmm2
10921*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10922*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10923*9880d681SAndroid Build Coastguard Worker;
10924*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test190:
10925*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10926*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpmaxuq %xmm1, %xmm0, %xmm0
10927*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10928*9880d681SAndroid Build Coastguard Workerentry:
10929*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ule <2 x i64> %a, %b
10930*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a
10931*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10932*9880d681SAndroid Build Coastguard Worker}
10933*9880d681SAndroid Build Coastguard Worker
10934*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test191(<2 x i64> %a, <2 x i64> %b) {
10935*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test191:
10936*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10937*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
10938*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm1, %xmm3
10939*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
10940*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm0, %xmm2
10941*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
10942*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
10943*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
10944*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
10945*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[1,1,3,3]
10946*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm3
10947*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm4[1,1,3,3]
10948*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
10949*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm2, %xmm1
10950*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
10951*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm1, %xmm2
10952*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
10953*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
10954*9880d681SAndroid Build Coastguard Worker;
10955*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test191:
10956*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
10957*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
10958*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]
10959*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm1, %xmm3
10960*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm0, %xmm3
10961*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm2, %xmm0
10962*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm3, %xmm0
10963*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm2
10964*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
10965*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
10966*9880d681SAndroid Build Coastguard Worker;
10967*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test191:
10968*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
10969*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10970*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm1, %xmm3
10971*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm0, %xmm2
10972*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10973*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10974*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
10975*9880d681SAndroid Build Coastguard Worker;
10976*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test191:
10977*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
10978*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
10979*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm1, %xmm3
10980*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm0, %xmm2
10981*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
10982*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
10983*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
10984*9880d681SAndroid Build Coastguard Worker;
10985*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test191:
10986*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
10987*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuq %xmm1, %xmm0, %xmm0
10988*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
10989*9880d681SAndroid Build Coastguard Workerentry:
10990*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt <2 x i64> %a, %b
10991*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a
10992*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
10993*9880d681SAndroid Build Coastguard Worker}
10994*9880d681SAndroid Build Coastguard Worker
10995*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @test192(<2 x i64> %a, <2 x i64> %b) {
10996*9880d681SAndroid Build Coastguard Worker; SSE2-LABEL: test192:
10997*9880d681SAndroid Build Coastguard Worker; SSE2:       # BB#0: # %entry
10998*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [2147483648,2147483648,2147483648,2147483648]
10999*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm0, %xmm3
11000*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm2, %xmm3
11001*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm1, %xmm2
11002*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm4
11003*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpgtd %xmm3, %xmm4
11004*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2]
11005*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm3, %xmm2
11006*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
11007*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pand %xmm5, %xmm2
11008*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm4[1,1,3,3]
11009*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm2, %xmm3
11010*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pcmpeqd %xmm2, %xmm2
11011*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pxor %xmm3, %xmm2
11012*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm1, %xmm3
11013*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    pandn %xmm0, %xmm2
11014*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    por %xmm3, %xmm2
11015*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    movdqa %xmm2, %xmm0
11016*9880d681SAndroid Build Coastguard Worker; SSE2-NEXT:    retq
11017*9880d681SAndroid Build Coastguard Worker;
11018*9880d681SAndroid Build Coastguard Worker; SSE4-LABEL: test192:
11019*9880d681SAndroid Build Coastguard Worker; SSE4:       # BB#0: # %entry
11020*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa %xmm0, %xmm2
11021*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
11022*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
11023*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm1, %xmm3
11024*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpgtq %xmm0, %xmm3
11025*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pcmpeqd %xmm0, %xmm0
11026*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    pxor %xmm3, %xmm0
11027*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    blendvpd %xmm1, %xmm2
11028*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    movapd %xmm2, %xmm0
11029*9880d681SAndroid Build Coastguard Worker; SSE4-NEXT:    retq
11030*9880d681SAndroid Build Coastguard Worker;
11031*9880d681SAndroid Build Coastguard Worker; AVX1-LABEL: test192:
11032*9880d681SAndroid Build Coastguard Worker; AVX1:       # BB#0: # %entry
11033*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
11034*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm0, %xmm3
11035*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm2, %xmm1, %xmm2
11036*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
11037*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
11038*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vpxor %xmm3, %xmm2, %xmm2
11039*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
11040*9880d681SAndroid Build Coastguard Worker; AVX1-NEXT:    retq
11041*9880d681SAndroid Build Coastguard Worker;
11042*9880d681SAndroid Build Coastguard Worker; AVX2-LABEL: test192:
11043*9880d681SAndroid Build Coastguard Worker; AVX2:       # BB#0: # %entry
11044*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
11045*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm0, %xmm3
11046*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm2, %xmm1, %xmm2
11047*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpgtq %xmm3, %xmm2, %xmm2
11048*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
11049*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vpxor %xmm3, %xmm2, %xmm2
11050*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    vblendvpd %xmm2, %xmm1, %xmm0, %xmm0
11051*9880d681SAndroid Build Coastguard Worker; AVX2-NEXT:    retq
11052*9880d681SAndroid Build Coastguard Worker;
11053*9880d681SAndroid Build Coastguard Worker; AVX512BW-LABEL: test192:
11054*9880d681SAndroid Build Coastguard Worker; AVX512BW:       # BB#0: # %entry
11055*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    vpminuq %xmm1, %xmm0, %xmm0
11056*9880d681SAndroid Build Coastguard Worker; AVX512BW-NEXT:    retq
11057*9880d681SAndroid Build Coastguard Workerentry:
11058*9880d681SAndroid Build Coastguard Worker  %cmp = icmp uge <2 x i64> %a, %b
11059*9880d681SAndroid Build Coastguard Worker  %sel = select <2 x i1> %cmp, <2 x i64> %b, <2 x i64> %a
11060*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %sel
11061*9880d681SAndroid Build Coastguard Worker}
11062