Lines Matching +full:- +full:x
2 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=skx | FileCheck %s
4 define <4 x i64> @test256_1(<4 x i64> %x, <4 x i64> %y) nounwind {
5 ; CHECK-LABEL: test256_1:
7 ; CHECK-NEXT: vpcmpeqq %ymm1, %ymm0, %k1
8 ; CHECK-NEXT: vpblendmq %ymm0, %ymm1, %ymm0 {%k1}
9 ; CHECK-NEXT: retq
10 %mask = icmp eq <4 x i64> %x, %y
11 %max = select <4 x i1> %mask, <4 x i64> %x, <4 x i64> %y
12 ret <4 x i64> %max
15 define <4 x i64> @test256_2(<4 x i64> %x, <4 x i64> %y, <4 x i64> %x1) nounwind {
16 ; CHECK-LABEL: test256_2:
18 ; CHECK-NEXT: vpcmpgtq %ymm1, %ymm0, %k1
19 ; CHECK-NEXT: vpblendmq %ymm2, %ymm1, %ymm0 {%k1}
20 ; CHECK-NEXT: retq
21 %mask = icmp sgt <4 x i64> %x, %y
22 %max = select <4 x i1> %mask, <4 x i64> %x1, <4 x i64> %y
23 ret <4 x i64> %max
26 define <8 x i32> @test256_3(<8 x i32> %x, <8 x i32> %y, <8 x i32> %x1) nounwind {
27 ; CHECK-LABEL: test256_3:
29 ; CHECK-NEXT: vpcmpled %ymm0, %ymm1, %k1
30 ; CHECK-NEXT: vpblendmd %ymm2, %ymm1, %ymm0 {%k1}
31 ; CHECK-NEXT: retq
32 %mask = icmp sge <8 x i32> %x, %y
33 %max = select <8 x i1> %mask, <8 x i32> %x1, <8 x i32> %y
34 ret <8 x i32> %max
37 define <4 x i64> @test256_4(<4 x i64> %x, <4 x i64> %y, <4 x i64> %x1) nounwind {
38 ; CHECK-LABEL: test256_4:
40 ; CHECK-NEXT: vpcmpnleuq %ymm1, %ymm0, %k1
41 ; CHECK-NEXT: vpblendmq %ymm2, %ymm1, %ymm0 {%k1}
42 ; CHECK-NEXT: retq
43 %mask = icmp ugt <4 x i64> %x, %y
44 %max = select <4 x i1> %mask, <4 x i64> %x1, <4 x i64> %y
45 ret <4 x i64> %max
48 define <8 x i32> @test256_5(<8 x i32> %x, <8 x i32> %x1, <8 x i32>* %yp) nounwind {
49 ; CHECK-LABEL: test256_5:
51 ; CHECK-NEXT: vpcmpeqd (%rdi), %ymm0, %k1
52 ; CHECK-NEXT: vpblendmd %ymm0, %ymm1, %ymm0 {%k1}
53 ; CHECK-NEXT: retq
54 %y = load <8 x i32>, <8 x i32>* %yp, align 4
55 %mask = icmp eq <8 x i32> %x, %y
56 %max = select <8 x i1> %mask, <8 x i32> %x, <8 x i32> %x1
57 ret <8 x i32> %max
60 define <8 x i32> @test256_6(<8 x i32> %x, <8 x i32> %x1, <8 x i32>* %y.ptr) nounwind {
61 ; CHECK-LABEL: test256_6:
63 ; CHECK-NEXT: vpcmpgtd (%rdi), %ymm0, %k1
64 ; CHECK-NEXT: vpblendmd %ymm0, %ymm1, %ymm0 {%k1}
65 ; CHECK-NEXT: retq
66 %y = load <8 x i32>, <8 x i32>* %y.ptr, align 4
67 %mask = icmp sgt <8 x i32> %x, %y
68 %max = select <8 x i1> %mask, <8 x i32> %x, <8 x i32> %x1
69 ret <8 x i32> %max
72 define <8 x i32> @test256_7(<8 x i32> %x, <8 x i32> %x1, <8 x i32>* %y.ptr) nounwind {
73 ; CHECK-LABEL: test256_7:
75 ; CHECK-NEXT: vpcmpled (%rdi), %ymm0, %k1
76 ; CHECK-NEXT: vpblendmd %ymm0, %ymm1, %ymm0 {%k1}
77 ; CHECK-NEXT: retq
78 %y = load <8 x i32>, <8 x i32>* %y.ptr, align 4
79 %mask = icmp sle <8 x i32> %x, %y
80 %max = select <8 x i1> %mask, <8 x i32> %x, <8 x i32> %x1
81 ret <8 x i32> %max
84 define <8 x i32> @test256_8(<8 x i32> %x, <8 x i32> %x1, <8 x i32>* %y.ptr) nounwind {
85 ; CHECK-LABEL: test256_8:
87 ; CHECK-NEXT: vpcmpleud (%rdi), %ymm0, %k1
88 ; CHECK-NEXT: vpblendmd %ymm0, %ymm1, %ymm0 {%k1}
89 ; CHECK-NEXT: retq
90 %y = load <8 x i32>, <8 x i32>* %y.ptr, align 4
91 %mask = icmp ule <8 x i32> %x, %y
92 %max = select <8 x i1> %mask, <8 x i32> %x, <8 x i32> %x1
93 ret <8 x i32> %max
96 define <8 x i32> @test256_9(<8 x i32> %x, <8 x i32> %y, <8 x i32> %x1, <8 x i32> %y1) nounwind {
97 ; CHECK-LABEL: test256_9:
99 ; CHECK-NEXT: vpcmpeqd %ymm1, %ymm0, %k1
100 ; CHECK-NEXT: vpcmpeqd %ymm3, %ymm2, %k1 {%k1}
101 ; CHECK-NEXT: vpblendmd %ymm0, %ymm1, %ymm0 {%k1}
102 ; CHECK-NEXT: retq
103 %mask1 = icmp eq <8 x i32> %x1, %y1
104 %mask0 = icmp eq <8 x i32> %x, %y
105 %mask = select <8 x i1> %mask0, <8 x i1> %mask1, <8 x i1> zeroinitializer
106 %max = select <8 x i1> %mask, <8 x i32> %x, <8 x i32> %y
107 ret <8 x i32> %max
110 define <4 x i64> @test256_10(<4 x i64> %x, <4 x i64> %y, <4 x i64> %x1, <4 x i64> %y1) nounwind {
111 ; CHECK-LABEL: test256_10:
113 ; CHECK-NEXT: vpcmpleq %ymm1, %ymm0, %k1
114 ; CHECK-NEXT: vpcmpleq %ymm2, %ymm3, %k1 {%k1}
115 ; CHECK-NEXT: vpblendmq %ymm0, %ymm2, %ymm0 {%k1}
116 ; CHECK-NEXT: retq
117 %mask1 = icmp sge <4 x i64> %x1, %y1
118 %mask0 = icmp sle <4 x i64> %x, %y
119 %mask = select <4 x i1> %mask0, <4 x i1> %mask1, <4 x i1> zeroinitializer
120 %max = select <4 x i1> %mask, <4 x i64> %x, <4 x i64> %x1
121 ret <4 x i64> %max
124 define <4 x i64> @test256_11(<4 x i64> %x, <4 x i64>* %y.ptr, <4 x i64> %x1, <4 x i64> %y1) nounwin…
125 ; CHECK-LABEL: test256_11:
127 ; CHECK-NEXT: vpcmpgtq %ymm2, %ymm1, %k1
128 ; CHECK-NEXT: vpcmpgtq (%rdi), %ymm0, %k1 {%k1}
129 ; CHECK-NEXT: vpblendmq %ymm0, %ymm1, %ymm0 {%k1}
130 ; CHECK-NEXT: retq
131 %mask1 = icmp sgt <4 x i64> %x1, %y1
132 %y = load <4 x i64>, <4 x i64>* %y.ptr, align 4
133 %mask0 = icmp sgt <4 x i64> %x, %y
134 %mask = select <4 x i1> %mask0, <4 x i1> %mask1, <4 x i1> zeroinitializer
135 %max = select <4 x i1> %mask, <4 x i64> %x, <4 x i64> %x1
136 ret <4 x i64> %max
139 define <8 x i32> @test256_12(<8 x i32> %x, <8 x i32>* %y.ptr, <8 x i32> %x1, <8 x i32> %y1) nounwin…
140 ; CHECK-LABEL: test256_12:
142 ; CHECK-NEXT: vpcmpled %ymm1, %ymm2, %k1
143 ; CHECK-NEXT: vpcmpleud (%rdi), %ymm0, %k1 {%k1}
144 ; CHECK-NEXT: vpblendmd %ymm0, %ymm1, %ymm0 {%k1}
145 ; CHECK-NEXT: retq
146 %mask1 = icmp sge <8 x i32> %x1, %y1
147 %y = load <8 x i32>, <8 x i32>* %y.ptr, align 4
148 %mask0 = icmp ule <8 x i32> %x, %y
149 %mask = select <8 x i1> %mask0, <8 x i1> %mask1, <8 x i1> zeroinitializer
150 %max = select <8 x i1> %mask, <8 x i32> %x, <8 x i32> %x1
151 ret <8 x i32> %max
154 define <4 x i64> @test256_13(<4 x i64> %x, <4 x i64> %x1, i64* %yb.ptr) nounwind {
155 ; CHECK-LABEL: test256_13:
157 ; CHECK-NEXT: vpcmpeqq (%rdi){1to4}, %ymm0, %k1
158 ; CHECK-NEXT: vpblendmq %ymm0, %ymm1, %ymm0 {%k1}
159 ; CHECK-NEXT: retq
161 %y.0 = insertelement <4 x i64> undef, i64 %yb, i32 0
162 %y = shufflevector <4 x i64> %y.0, <4 x i64> undef, <4 x i32> zeroinitializer
163 %mask = icmp eq <4 x i64> %x, %y
164 %max = select <4 x i1> %mask, <4 x i64> %x, <4 x i64> %x1
165 ret <4 x i64> %max
168 define <8 x i32> @test256_14(<8 x i32> %x, i32* %yb.ptr, <8 x i32> %x1) nounwind {
169 ; CHECK-LABEL: test256_14:
171 ; CHECK-NEXT: vpcmpled (%rdi){1to8}, %ymm0, %k1
172 ; CHECK-NEXT: vpblendmd %ymm0, %ymm1, %ymm0 {%k1}
173 ; CHECK-NEXT: retq
175 %y.0 = insertelement <8 x i32> undef, i32 %yb, i32 0
176 %y = shufflevector <8 x i32> %y.0, <8 x i32> undef, <8 x i32> zeroinitializer
177 %mask = icmp sle <8 x i32> %x, %y
178 %max = select <8 x i1> %mask, <8 x i32> %x, <8 x i32> %x1
179 ret <8 x i32> %max
182 define <8 x i32> @test256_15(<8 x i32> %x, i32* %yb.ptr, <8 x i32> %x1, <8 x i32> %y1) nounwind {
183 ; CHECK-LABEL: test256_15:
185 ; CHECK-NEXT: vpcmpled %ymm1, %ymm2, %k1
186 ; CHECK-NEXT: vpcmpgtd (%rdi){1to8}, %ymm0, %k1 {%k1}
187 ; CHECK-NEXT: vpblendmd %ymm0, %ymm1, %ymm0 {%k1}
188 ; CHECK-NEXT: retq
189 %mask1 = icmp sge <8 x i32> %x1, %y1
191 %y.0 = insertelement <8 x i32> undef, i32 %yb, i32 0
192 %y = shufflevector <8 x i32> %y.0, <8 x i32> undef, <8 x i32> zeroinitializer
193 %mask0 = icmp sgt <8 x i32> %x, %y
194 %mask = select <8 x i1> %mask0, <8 x i1> %mask1, <8 x i1> zeroinitializer
195 %max = select <8 x i1> %mask, <8 x i32> %x, <8 x i32> %x1
196 ret <8 x i32> %max
199 define <4 x i64> @test256_16(<4 x i64> %x, i64* %yb.ptr, <4 x i64> %x1, <4 x i64> %y1) nounwind {
200 ; CHECK-LABEL: test256_16:
202 ; CHECK-NEXT: vpcmpleq %ymm1, %ymm2, %k1
203 ; CHECK-NEXT: vpcmpgtq (%rdi){1to4}, %ymm0, %k1 {%k1}
204 ; CHECK-NEXT: vpblendmq %ymm0, %ymm1, %ymm0 {%k1}
205 ; CHECK-NEXT: retq
206 %mask1 = icmp sge <4 x i64> %x1, %y1
208 %y.0 = insertelement <4 x i64> undef, i64 %yb, i32 0
209 %y = shufflevector <4 x i64> %y.0, <4 x i64> undef, <4 x i32> zeroinitializer
210 %mask0 = icmp sgt <4 x i64> %x, %y
211 %mask = select <4 x i1> %mask0, <4 x i1> %mask1, <4 x i1> zeroinitializer
212 %max = select <4 x i1> %mask, <4 x i64> %x, <4 x i64> %x1
213 ret <4 x i64> %max
216 define <2 x i64> @test128_1(<2 x i64> %x, <2 x i64> %y) nounwind {
217 ; CHECK-LABEL: test128_1:
219 ; CHECK-NEXT: vpcmpeqq %xmm1, %xmm0, %k1
220 ; CHECK-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
221 ; CHECK-NEXT: retq
222 %mask = icmp eq <2 x i64> %x, %y
223 %max = select <2 x i1> %mask, <2 x i64> %x, <2 x i64> %y
224 ret <2 x i64> %max
227 define <2 x i64> @test128_2(<2 x i64> %x, <2 x i64> %y, <2 x i64> %x1) nounwind {
228 ; CHECK-LABEL: test128_2:
230 ; CHECK-NEXT: vpcmpgtq %xmm1, %xmm0, %k1
231 ; CHECK-NEXT: vpblendmq %xmm2, %xmm1, %xmm0 {%k1}
232 ; CHECK-NEXT: retq
233 %mask = icmp sgt <2 x i64> %x, %y
234 %max = select <2 x i1> %mask, <2 x i64> %x1, <2 x i64> %y
235 ret <2 x i64> %max
238 define <4 x i32> @test128_3(<4 x i32> %x, <4 x i32> %y, <4 x i32> %x1) nounwind {
239 ; CHECK-LABEL: test128_3:
241 ; CHECK-NEXT: vpcmpled %xmm0, %xmm1, %k1
242 ; CHECK-NEXT: vpblendmd %xmm2, %xmm1, %xmm0 {%k1}
243 ; CHECK-NEXT: retq
244 %mask = icmp sge <4 x i32> %x, %y
245 %max = select <4 x i1> %mask, <4 x i32> %x1, <4 x i32> %y
246 ret <4 x i32> %max
249 define <2 x i64> @test128_4(<2 x i64> %x, <2 x i64> %y, <2 x i64> %x1) nounwind {
250 ; CHECK-LABEL: test128_4:
252 ; CHECK-NEXT: vpcmpnleuq %xmm1, %xmm0, %k1
253 ; CHECK-NEXT: vpblendmq %xmm2, %xmm1, %xmm0 {%k1}
254 ; CHECK-NEXT: retq
255 %mask = icmp ugt <2 x i64> %x, %y
256 %max = select <2 x i1> %mask, <2 x i64> %x1, <2 x i64> %y
257 ret <2 x i64> %max
260 define <4 x i32> @test128_5(<4 x i32> %x, <4 x i32> %x1, <4 x i32>* %yp) nounwind {
261 ; CHECK-LABEL: test128_5:
263 ; CHECK-NEXT: vpcmpeqd (%rdi), %xmm0, %k1
264 ; CHECK-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
265 ; CHECK-NEXT: retq
266 %y = load <4 x i32>, <4 x i32>* %yp, align 4
267 %mask = icmp eq <4 x i32> %x, %y
268 %max = select <4 x i1> %mask, <4 x i32> %x, <4 x i32> %x1
269 ret <4 x i32> %max
272 define <4 x i32> @test128_6(<4 x i32> %x, <4 x i32> %x1, <4 x i32>* %y.ptr) nounwind {
273 ; CHECK-LABEL: test128_6:
275 ; CHECK-NEXT: vpcmpgtd (%rdi), %xmm0, %k1
276 ; CHECK-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
277 ; CHECK-NEXT: retq
278 %y = load <4 x i32>, <4 x i32>* %y.ptr, align 4
279 %mask = icmp sgt <4 x i32> %x, %y
280 %max = select <4 x i1> %mask, <4 x i32> %x, <4 x i32> %x1
281 ret <4 x i32> %max
284 define <4 x i32> @test128_7(<4 x i32> %x, <4 x i32> %x1, <4 x i32>* %y.ptr) nounwind {
285 ; CHECK-LABEL: test128_7:
287 ; CHECK-NEXT: vpcmpled (%rdi), %xmm0, %k1
288 ; CHECK-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
289 ; CHECK-NEXT: retq
290 %y = load <4 x i32>, <4 x i32>* %y.ptr, align 4
291 %mask = icmp sle <4 x i32> %x, %y
292 %max = select <4 x i1> %mask, <4 x i32> %x, <4 x i32> %x1
293 ret <4 x i32> %max
296 define <4 x i32> @test128_8(<4 x i32> %x, <4 x i32> %x1, <4 x i32>* %y.ptr) nounwind {
297 ; CHECK-LABEL: test128_8:
299 ; CHECK-NEXT: vpcmpleud (%rdi), %xmm0, %k1
300 ; CHECK-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
301 ; CHECK-NEXT: retq
302 %y = load <4 x i32>, <4 x i32>* %y.ptr, align 4
303 %mask = icmp ule <4 x i32> %x, %y
304 %max = select <4 x i1> %mask, <4 x i32> %x, <4 x i32> %x1
305 ret <4 x i32> %max
308 define <4 x i32> @test128_9(<4 x i32> %x, <4 x i32> %y, <4 x i32> %x1, <4 x i32> %y1) nounwind {
309 ; CHECK-LABEL: test128_9:
311 ; CHECK-NEXT: vpcmpeqd %xmm1, %xmm0, %k1
312 ; CHECK-NEXT: vpcmpeqd %xmm3, %xmm2, %k1 {%k1}
313 ; CHECK-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
314 ; CHECK-NEXT: retq
315 %mask1 = icmp eq <4 x i32> %x1, %y1
316 %mask0 = icmp eq <4 x i32> %x, %y
317 %mask = select <4 x i1> %mask0, <4 x i1> %mask1, <4 x i1> zeroinitializer
318 %max = select <4 x i1> %mask, <4 x i32> %x, <4 x i32> %y
319 ret <4 x i32> %max
322 define <2 x i64> @test128_10(<2 x i64> %x, <2 x i64> %y, <2 x i64> %x1, <2 x i64> %y1) nounwind {
323 ; CHECK-LABEL: test128_10:
325 ; CHECK-NEXT: vpcmpleq %xmm1, %xmm0, %k1
326 ; CHECK-NEXT: vpcmpleq %xmm2, %xmm3, %k1 {%k1}
327 ; CHECK-NEXT: vpblendmq %xmm0, %xmm2, %xmm0 {%k1}
328 ; CHECK-NEXT: retq
329 %mask1 = icmp sge <2 x i64> %x1, %y1
330 %mask0 = icmp sle <2 x i64> %x, %y
331 %mask = select <2 x i1> %mask0, <2 x i1> %mask1, <2 x i1> zeroinitializer
332 %max = select <2 x i1> %mask, <2 x i64> %x, <2 x i64> %x1
333 ret <2 x i64> %max
336 define <2 x i64> @test128_11(<2 x i64> %x, <2 x i64>* %y.ptr, <2 x i64> %x1, <2 x i64> %y1) nounwin…
337 ; CHECK-LABEL: test128_11:
339 ; CHECK-NEXT: vpcmpgtq %xmm2, %xmm1, %k1
340 ; CHECK-NEXT: vpcmpgtq (%rdi), %xmm0, %k1 {%k1}
341 ; CHECK-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
342 ; CHECK-NEXT: retq
343 %mask1 = icmp sgt <2 x i64> %x1, %y1
344 %y = load <2 x i64>, <2 x i64>* %y.ptr, align 4
345 %mask0 = icmp sgt <2 x i64> %x, %y
346 %mask = select <2 x i1> %mask0, <2 x i1> %mask1, <2 x i1> zeroinitializer
347 %max = select <2 x i1> %mask, <2 x i64> %x, <2 x i64> %x1
348 ret <2 x i64> %max
351 define <4 x i32> @test128_12(<4 x i32> %x, <4 x i32>* %y.ptr, <4 x i32> %x1, <4 x i32> %y1) nounwin…
352 ; CHECK-LABEL: test128_12:
354 ; CHECK-NEXT: vpcmpled %xmm1, %xmm2, %k1
355 ; CHECK-NEXT: vpcmpleud (%rdi), %xmm0, %k1 {%k1}
356 ; CHECK-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
357 ; CHECK-NEXT: retq
358 %mask1 = icmp sge <4 x i32> %x1, %y1
359 %y = load <4 x i32>, <4 x i32>* %y.ptr, align 4
360 %mask0 = icmp ule <4 x i32> %x, %y
361 %mask = select <4 x i1> %mask0, <4 x i1> %mask1, <4 x i1> zeroinitializer
362 %max = select <4 x i1> %mask, <4 x i32> %x, <4 x i32> %x1
363 ret <4 x i32> %max
366 define <2 x i64> @test128_13(<2 x i64> %x, <2 x i64> %x1, i64* %yb.ptr) nounwind {
367 ; CHECK-LABEL: test128_13:
369 ; CHECK-NEXT: vpcmpeqq (%rdi){1to2}, %xmm0, %k1
370 ; CHECK-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
371 ; CHECK-NEXT: retq
373 %y.0 = insertelement <2 x i64> undef, i64 %yb, i32 0
374 %y = insertelement <2 x i64> %y.0, i64 %yb, i32 1
375 %mask = icmp eq <2 x i64> %x, %y
376 %max = select <2 x i1> %mask, <2 x i64> %x, <2 x i64> %x1
377 ret <2 x i64> %max
380 define <4 x i32> @test128_14(<4 x i32> %x, i32* %yb.ptr, <4 x i32> %x1) nounwind {
381 ; CHECK-LABEL: test128_14:
383 ; CHECK-NEXT: vpcmpled (%rdi){1to4}, %xmm0, %k1
384 ; CHECK-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
385 ; CHECK-NEXT: retq
387 %y.0 = insertelement <4 x i32> undef, i32 %yb, i32 0
388 %y = shufflevector <4 x i32> %y.0, <4 x i32> undef, <4 x i32> zeroinitializer
389 %mask = icmp sle <4 x i32> %x, %y
390 %max = select <4 x i1> %mask, <4 x i32> %x, <4 x i32> %x1
391 ret <4 x i32> %max
394 define <4 x i32> @test128_15(<4 x i32> %x, i32* %yb.ptr, <4 x i32> %x1, <4 x i32> %y1) nounwind {
395 ; CHECK-LABEL: test128_15:
397 ; CHECK-NEXT: vpcmpled %xmm1, %xmm2, %k1
398 ; CHECK-NEXT: vpcmpgtd (%rdi){1to4}, %xmm0, %k1 {%k1}
399 ; CHECK-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
400 ; CHECK-NEXT: retq
401 %mask1 = icmp sge <4 x i32> %x1, %y1
403 %y.0 = insertelement <4 x i32> undef, i32 %yb, i32 0
404 %y = shufflevector <4 x i32> %y.0, <4 x i32> undef, <4 x i32> zeroinitializer
405 %mask0 = icmp sgt <4 x i32> %x, %y
406 %mask = select <4 x i1> %mask0, <4 x i1> %mask1, <4 x i1> zeroinitializer
407 %max = select <4 x i1> %mask, <4 x i32> %x, <4 x i32> %x1
408 ret <4 x i32> %max
411 define <2 x i64> @test128_16(<2 x i64> %x, i64* %yb.ptr, <2 x i64> %x1, <2 x i64> %y1) nounwind {
412 ; CHECK-LABEL: test128_16:
414 ; CHECK-NEXT: vpcmpleq %xmm1, %xmm2, %k1
415 ; CHECK-NEXT: vpcmpgtq (%rdi){1to2}, %xmm0, %k1 {%k1}
416 ; CHECK-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
417 ; CHECK-NEXT: retq
418 %mask1 = icmp sge <2 x i64> %x1, %y1
420 %y.0 = insertelement <2 x i64> undef, i64 %yb, i32 0
421 %y = insertelement <2 x i64> %y.0, i64 %yb, i32 1
422 %mask0 = icmp sgt <2 x i64> %x, %y
423 %mask = select <2 x i1> %mask0, <2 x i1> %mask1, <2 x i1> zeroinitializer
424 %max = select <2 x i1> %mask, <2 x i64> %x, <2 x i64> %x1
425 ret <2 x i64> %max