Lines Matching refs:AVX2

3 … -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=AVX2
34 ; AVX2-LABEL: insert_i8_firstelt_of_low_subvector:
35 ; AVX2: # %bb.0:
36 ; AVX2-NEXT: vpinsrb $0, %edi, %xmm0, %xmm1
37 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
38 ; AVX2-NEXT: retq
50 ; AVX2-LABEL: insert_i16_firstelt_of_low_subvector:
51 ; AVX2: # %bb.0:
52 ; AVX2-NEXT: vpinsrw $0, %edi, %xmm0, %xmm1
53 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
54 ; AVX2-NEXT: retq
66 ; AVX2-LABEL: insert_i32_firstelt_of_low_subvector:
67 ; AVX2: # %bb.0:
68 ; AVX2-NEXT: vmovd %edi, %xmm1
69 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7]
70 ; AVX2-NEXT: retq
82 ; AVX2-LABEL: insert_i64_firstelt_of_low_subvector:
83 ; AVX2: # %bb.0:
84 ; AVX2-NEXT: vmovq %rdi, %xmm1
85 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
86 ; AVX2-NEXT: retq
101 ; AVX2-LABEL: insert_f32_firstelt_of_high_subvector:
102 ; AVX2: # %bb.0:
103 ; AVX2-NEXT: vbroadcastss %xmm1, %ymm1
104 ; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7]
105 ; AVX2-NEXT: retq
118 ; AVX2-LABEL: insert_f64_firstelt_of_high_subvector:
119 ; AVX2: # %bb.0:
120 ; AVX2-NEXT: vbroadcastsd %xmm1, %ymm1
121 ; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
122 ; AVX2-NEXT: retq
135 ; AVX2-LABEL: insert_i8_firstelt_of_high_subvector:
136 ; AVX2: # %bb.0:
137 ; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm1
138 ; AVX2-NEXT: vpinsrb $0, %edi, %xmm1, %xmm1
139 ; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
140 ; AVX2-NEXT: retq
153 ; AVX2-LABEL: insert_i16_firstelt_of_high_subvector:
154 ; AVX2: # %bb.0:
155 ; AVX2-NEXT: vmovd %edi, %xmm1
156 ; AVX2-NEXT: vpbroadcastw %xmm1, %ymm1
157 ; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,…
158 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
159 ; AVX2-NEXT: retq
172 ; AVX2-LABEL: insert_i32_firstelt_of_high_subvector:
173 ; AVX2: # %bb.0:
174 ; AVX2-NEXT: vmovd %edi, %xmm1
175 ; AVX2-NEXT: vpbroadcastd %xmm1, %ymm1
176 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7]
177 ; AVX2-NEXT: retq
190 ; AVX2-LABEL: insert_i64_firstelt_of_high_subvector:
191 ; AVX2: # %bb.0:
192 ; AVX2-NEXT: vmovq %rdi, %xmm1
193 ; AVX2-NEXT: vpbroadcastq %xmm1, %ymm1
194 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
195 ; AVX2-NEXT: retq
211 ; AVX2-LABEL: insert_f32_firstelts:
212 ; AVX2: # %bb.0:
213 ; AVX2-NEXT: vbroadcastss %xmm1, %ymm1
214 ; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
215 ; AVX2-NEXT: retq
230 ; AVX2-LABEL: insert_f64_firstelts:
231 ; AVX2: # %bb.0:
232 ; AVX2-NEXT: vbroadcastsd %xmm1, %ymm1
233 ; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
234 ; AVX2-NEXT: retq
249 ; AVX2-LABEL: insert_i8_firstelts:
250 ; AVX2: # %bb.0:
251 ; AVX2-NEXT: vpinsrb $0, %edi, %xmm0, %xmm1
252 ; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm0
253 ; AVX2-NEXT: vpinsrb $0, %edi, %xmm0, %xmm0
254 ; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm0
255 ; AVX2-NEXT: retq
270 ; AVX2-LABEL: insert_i16_firstelts:
271 ; AVX2: # %bb.0:
272 ; AVX2-NEXT: vpinsrw $0, %edi, %xmm0, %xmm1
273 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
274 ; AVX2-NEXT: vmovd %edi, %xmm1
275 ; AVX2-NEXT: vpbroadcastw %xmm1, %ymm1
276 ; AVX2-NEXT: vpblendw {{.*#+}} ymm1 = ymm1[0],ymm0[1,2,3,4,5,6,7],ymm1[8],ymm0[9,10,11,12,13,14,…
277 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
278 ; AVX2-NEXT: retq
293 ; AVX2-LABEL: insert_i32_firstelts:
294 ; AVX2: # %bb.0:
295 ; AVX2-NEXT: vmovd %edi, %xmm1
296 ; AVX2-NEXT: vpbroadcastd %xmm1, %ymm1
297 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
298 ; AVX2-NEXT: retq
313 ; AVX2-LABEL: insert_i64_firstelts:
314 ; AVX2: # %bb.0:
315 ; AVX2-NEXT: vmovq %rdi, %xmm1
316 ; AVX2-NEXT: vpbroadcastq %xmm1, %ymm1
317 ; AVX2-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
318 ; AVX2-NEXT: retq
334 ; AVX2-LABEL: insert_f32_two_elts_of_high_subvector:
335 ; AVX2: # %bb.0:
336 ; AVX2-NEXT: vbroadcastss %xmm1, %ymm1
337 ; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
338 ; AVX2-NEXT: retq
351 ; AVX2-LABEL: insert_f64_two_elts_of_high_subvector:
352 ; AVX2: # %bb.0:
353 ; AVX2-NEXT: vbroadcastsd %xmm1, %ymm1
354 ; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
355 ; AVX2-NEXT: retq
370 ; AVX2-LABEL: insert_i8_two_elts_of_high_subvector:
371 ; AVX2: # %bb.0:
372 ; AVX2-NEXT: vextracti128 $1, %ymm0, %xmm1
373 ; AVX2-NEXT: vpinsrb $0, %edi, %xmm1, %xmm1
374 ; AVX2-NEXT: vpinsrb $1, %edi, %xmm1, %xmm1
375 ; AVX2-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm0
376 ; AVX2-NEXT: retq
391 ; AVX2-LABEL: insert_i16_two_elts_of_high_subvector:
392 ; AVX2: # %bb.0:
393 ; AVX2-NEXT: vmovd %edi, %xmm1
394 ; AVX2-NEXT: vpbroadcastw %xmm1, %ymm1
395 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7]
396 ; AVX2-NEXT: retq
411 ; AVX2-LABEL: insert_i32_two_elts_of_high_subvector:
412 ; AVX2: # %bb.0:
413 ; AVX2-NEXT: vmovd %edi, %xmm1
414 ; AVX2-NEXT: vpbroadcastd %xmm1, %ymm1
415 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
416 ; AVX2-NEXT: retq
430 ; AVX2-LABEL: insert_i64_two_elts_of_high_subvector:
431 ; AVX2: # %bb.0:
432 ; AVX2-NEXT: vmovq %rdi, %xmm1
433 ; AVX2-NEXT: vpbroadcastq %xmm1, %ymm1
434 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
435 ; AVX2-NEXT: retq
473 ; AVX2-LABEL: insert_i8_two_elts_of_low_subvector:
474 ; AVX2: # %bb.0:
475 ; AVX2-NEXT: vpinsrb $0, %edi, %xmm0, %xmm1
476 ; AVX2-NEXT: vpinsrb $1, %edi, %xmm1, %xmm1
477 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
478 ; AVX2-NEXT: retq
492 ; AVX2-LABEL: insert_i16_two_elts_of_low_subvector:
493 ; AVX2: # %bb.0:
494 ; AVX2-NEXT: vpinsrw $0, %edi, %xmm0, %xmm1
495 ; AVX2-NEXT: vpinsrw $1, %edi, %xmm1, %xmm1
496 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
497 ; AVX2-NEXT: retq
511 ; AVX2-LABEL: insert_i32_two_elts_of_low_subvector:
512 ; AVX2: # %bb.0:
513 ; AVX2-NEXT: vmovd %edi, %xmm1
514 ; AVX2-NEXT: vpblendd {{.*#+}} xmm1 = xmm1[0],xmm0[1,2,3]
515 ; AVX2-NEXT: vpinsrd $1, %edi, %xmm1, %xmm1
516 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
517 ; AVX2-NEXT: retq
531 ; AVX2-LABEL: insert_i64_two_elts_of_low_subvector:
532 ; AVX2: # %bb.0:
533 ; AVX2-NEXT: vmovq %rdi, %xmm1
534 ; AVX2-NEXT: vpinsrq $1, %rdi, %xmm1, %xmm1
535 ; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
536 ; AVX2-NEXT: retq