Lines Matching refs:AVX2
3 …known-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX --check-prefix=AVX2
36 ; AVX2-LABEL: testv4i64:
37 ; AVX2: # BB#0:
38 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
39 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
40 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [4,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0,4,3,2,2,1,1,1,1,0,0,0,0,0,…
41 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
42 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm4
43 ; AVX2-NEXT: vpand %ymm1, %ymm4, %ymm1
44 ; AVX2-NEXT: vpxor %ymm4, %ymm4, %ymm4
45 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm1, %ymm5
46 ; AVX2-NEXT: vpand %ymm5, %ymm2, %ymm2
47 ; AVX2-NEXT: vpshufb %ymm1, %ymm3, %ymm1
48 ; AVX2-NEXT: vpaddb %ymm1, %ymm2, %ymm1
49 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm0, %ymm2
50 ; AVX2-NEXT: vpsrlw $8, %ymm2, %ymm2
51 ; AVX2-NEXT: vpand %ymm2, %ymm1, %ymm2
52 ; AVX2-NEXT: vpsrlw $8, %ymm1, %ymm1
53 ; AVX2-NEXT: vpaddw %ymm2, %ymm1, %ymm1
54 ; AVX2-NEXT: vpcmpeqw %ymm4, %ymm0, %ymm2
55 ; AVX2-NEXT: vpsrld $16, %ymm2, %ymm2
56 ; AVX2-NEXT: vpand %ymm2, %ymm1, %ymm2
57 ; AVX2-NEXT: vpsrld $16, %ymm1, %ymm1
58 ; AVX2-NEXT: vpaddd %ymm2, %ymm1, %ymm1
59 ; AVX2-NEXT: vpcmpeqd %ymm4, %ymm0, %ymm0
60 ; AVX2-NEXT: vpsrlq $32, %ymm0, %ymm0
61 ; AVX2-NEXT: vpand %ymm0, %ymm1, %ymm0
62 ; AVX2-NEXT: vpsrlq $32, %ymm1, %ymm1
63 ; AVX2-NEXT: vpaddq %ymm0, %ymm1, %ymm0
64 ; AVX2-NEXT: retq
106 ; AVX2-LABEL: testv4i64u:
107 ; AVX2: # BB#0:
108 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
109 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
110 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [4,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0,4,3,2,2,1,1,1,1,0,0,0,0,0,…
111 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
112 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm4
113 ; AVX2-NEXT: vpand %ymm1, %ymm4, %ymm1
114 ; AVX2-NEXT: vpxor %ymm4, %ymm4, %ymm4
115 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm1, %ymm5
116 ; AVX2-NEXT: vpand %ymm5, %ymm2, %ymm2
117 ; AVX2-NEXT: vpshufb %ymm1, %ymm3, %ymm1
118 ; AVX2-NEXT: vpaddb %ymm1, %ymm2, %ymm1
119 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm0, %ymm2
120 ; AVX2-NEXT: vpsrlw $8, %ymm2, %ymm2
121 ; AVX2-NEXT: vpand %ymm2, %ymm1, %ymm2
122 ; AVX2-NEXT: vpsrlw $8, %ymm1, %ymm1
123 ; AVX2-NEXT: vpaddw %ymm2, %ymm1, %ymm1
124 ; AVX2-NEXT: vpcmpeqw %ymm4, %ymm0, %ymm2
125 ; AVX2-NEXT: vpsrld $16, %ymm2, %ymm2
126 ; AVX2-NEXT: vpand %ymm2, %ymm1, %ymm2
127 ; AVX2-NEXT: vpsrld $16, %ymm1, %ymm1
128 ; AVX2-NEXT: vpaddd %ymm2, %ymm1, %ymm1
129 ; AVX2-NEXT: vpcmpeqd %ymm4, %ymm0, %ymm0
130 ; AVX2-NEXT: vpsrlq $32, %ymm0, %ymm0
131 ; AVX2-NEXT: vpand %ymm0, %ymm1, %ymm0
132 ; AVX2-NEXT: vpsrlq $32, %ymm1, %ymm1
133 ; AVX2-NEXT: vpaddq %ymm0, %ymm1, %ymm0
134 ; AVX2-NEXT: retq
195 ; AVX2-LABEL: testv8i32:
196 ; AVX2: # BB#0:
197 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
198 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
199 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [4,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0,4,3,2,2,1,1,1,1,0,0,0,0,0,…
200 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
201 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm4
202 ; AVX2-NEXT: vpand %ymm1, %ymm4, %ymm1
203 ; AVX2-NEXT: vpxor %ymm4, %ymm4, %ymm4
204 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm1, %ymm5
205 ; AVX2-NEXT: vpand %ymm5, %ymm2, %ymm2
206 ; AVX2-NEXT: vpshufb %ymm1, %ymm3, %ymm1
207 ; AVX2-NEXT: vpaddb %ymm1, %ymm2, %ymm1
208 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm0, %ymm2
209 ; AVX2-NEXT: vpsrlw $8, %ymm2, %ymm2
210 ; AVX2-NEXT: vpand %ymm2, %ymm1, %ymm2
211 ; AVX2-NEXT: vpsrlw $8, %ymm1, %ymm1
212 ; AVX2-NEXT: vpaddw %ymm2, %ymm1, %ymm1
213 ; AVX2-NEXT: vpcmpeqw %ymm4, %ymm0, %ymm0
214 ; AVX2-NEXT: vpsrld $16, %ymm0, %ymm0
215 ; AVX2-NEXT: vpand %ymm0, %ymm1, %ymm0
216 ; AVX2-NEXT: vpsrld $16, %ymm1, %ymm1
217 ; AVX2-NEXT: vpaddd %ymm0, %ymm1, %ymm0
218 ; AVX2-NEXT: retq
270 ; AVX2-LABEL: testv8i32u:
271 ; AVX2: # BB#0:
272 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
273 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
274 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [4,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0,4,3,2,2,1,1,1,1,0,0,0,0,0,…
275 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
276 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm4
277 ; AVX2-NEXT: vpand %ymm1, %ymm4, %ymm1
278 ; AVX2-NEXT: vpxor %ymm4, %ymm4, %ymm4
279 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm1, %ymm5
280 ; AVX2-NEXT: vpand %ymm5, %ymm2, %ymm2
281 ; AVX2-NEXT: vpshufb %ymm1, %ymm3, %ymm1
282 ; AVX2-NEXT: vpaddb %ymm1, %ymm2, %ymm1
283 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm0, %ymm2
284 ; AVX2-NEXT: vpsrlw $8, %ymm2, %ymm2
285 ; AVX2-NEXT: vpand %ymm2, %ymm1, %ymm2
286 ; AVX2-NEXT: vpsrlw $8, %ymm1, %ymm1
287 ; AVX2-NEXT: vpaddw %ymm2, %ymm1, %ymm1
288 ; AVX2-NEXT: vpcmpeqw %ymm4, %ymm0, %ymm0
289 ; AVX2-NEXT: vpsrld $16, %ymm0, %ymm0
290 ; AVX2-NEXT: vpand %ymm0, %ymm1, %ymm0
291 ; AVX2-NEXT: vpsrld $16, %ymm1, %ymm1
292 ; AVX2-NEXT: vpaddd %ymm0, %ymm1, %ymm0
293 ; AVX2-NEXT: retq
347 ; AVX2-LABEL: testv16i16:
348 ; AVX2: # BB#0:
349 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
350 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
351 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [4,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0,4,3,2,2,1,1,1,1,0,0,0,0,0,…
352 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
353 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm4
354 ; AVX2-NEXT: vpand %ymm1, %ymm4, %ymm1
355 ; AVX2-NEXT: vpxor %ymm4, %ymm4, %ymm4
356 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm1, %ymm5
357 ; AVX2-NEXT: vpand %ymm5, %ymm2, %ymm2
358 ; AVX2-NEXT: vpshufb %ymm1, %ymm3, %ymm1
359 ; AVX2-NEXT: vpaddb %ymm1, %ymm2, %ymm1
360 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm0, %ymm0
361 ; AVX2-NEXT: vpsrlw $8, %ymm0, %ymm0
362 ; AVX2-NEXT: vpand %ymm0, %ymm1, %ymm0
363 ; AVX2-NEXT: vpsrlw $8, %ymm1, %ymm1
364 ; AVX2-NEXT: vpaddw %ymm0, %ymm1, %ymm0
365 ; AVX2-NEXT: retq
414 ; AVX2-LABEL: testv16i16u:
415 ; AVX2: # BB#0:
416 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
417 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
418 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [4,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0,4,3,2,2,1,1,1,1,0,0,0,0,0,…
419 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
420 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm4
421 ; AVX2-NEXT: vpand %ymm1, %ymm4, %ymm1
422 ; AVX2-NEXT: vpxor %ymm4, %ymm4, %ymm4
423 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm1, %ymm5
424 ; AVX2-NEXT: vpand %ymm5, %ymm2, %ymm2
425 ; AVX2-NEXT: vpshufb %ymm1, %ymm3, %ymm1
426 ; AVX2-NEXT: vpaddb %ymm1, %ymm2, %ymm1
427 ; AVX2-NEXT: vpcmpeqb %ymm4, %ymm0, %ymm0
428 ; AVX2-NEXT: vpsrlw $8, %ymm0, %ymm0
429 ; AVX2-NEXT: vpand %ymm0, %ymm1, %ymm0
430 ; AVX2-NEXT: vpsrlw $8, %ymm1, %ymm1
431 ; AVX2-NEXT: vpaddw %ymm0, %ymm1, %ymm0
432 ; AVX2-NEXT: retq
471 ; AVX2-LABEL: testv32i8:
472 ; AVX2: # BB#0:
473 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
474 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
475 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [4,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0,4,3,2,2,1,1,1,1,0,0,0,0,0,…
476 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
477 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm0
478 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
479 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1
480 ; AVX2-NEXT: vpcmpeqb %ymm1, %ymm0, %ymm1
481 ; AVX2-NEXT: vpand %ymm1, %ymm2, %ymm1
482 ; AVX2-NEXT: vpshufb %ymm0, %ymm3, %ymm0
483 ; AVX2-NEXT: vpaddb %ymm0, %ymm1, %ymm0
484 ; AVX2-NEXT: retq
545 ; AVX2-LABEL: testv32i8u:
546 ; AVX2: # BB#0:
547 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1…
548 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2
549 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [4,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0,4,3,2,2,1,1,1,1,0,0,0,0,0,…
550 ; AVX2-NEXT: vpshufb %ymm2, %ymm3, %ymm2
551 ; AVX2-NEXT: vpsrlw $4, %ymm0, %ymm0
552 ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
553 ; AVX2-NEXT: vpxor %ymm1, %ymm1, %ymm1
554 ; AVX2-NEXT: vpcmpeqb %ymm1, %ymm0, %ymm1
555 ; AVX2-NEXT: vpand %ymm1, %ymm2, %ymm1
556 ; AVX2-NEXT: vpshufb %ymm0, %ymm3, %ymm0
557 ; AVX2-NEXT: vpaddb %ymm0, %ymm1, %ymm0
558 ; AVX2-NEXT: retq