@@ -236,18 +236,17 @@ define <4 x i32> @masked_gather_v4i32(<4 x i32*> %ptrs, <4 x i1> %masks, <4 x i3
236
236
; NOGATHER-NEXT: vpinsrd $1, (%rax), %xmm2, %xmm2
237
237
; NOGATHER-NEXT: .LBB4_4: # %else2
238
238
; NOGATHER-NEXT: vpextrb $8, %xmm1, %eax
239
+ ; NOGATHER-NEXT: vextractf128 $1, %ymm0, %xmm0
239
240
; NOGATHER-NEXT: testb $1, %al
240
241
; NOGATHER-NEXT: je .LBB4_6
241
242
; NOGATHER-NEXT: # %bb.5: # %cond.load4
242
- ; NOGATHER-NEXT: vextractf128 $1, %ymm0, %xmm3
243
- ; NOGATHER-NEXT: vmovq %xmm3, %rax
243
+ ; NOGATHER-NEXT: vmovq %xmm0, %rax
244
244
; NOGATHER-NEXT: vpinsrd $2, (%rax), %xmm2, %xmm2
245
245
; NOGATHER-NEXT: .LBB4_6: # %else5
246
246
; NOGATHER-NEXT: vpextrb $12, %xmm1, %eax
247
247
; NOGATHER-NEXT: testb $1, %al
248
248
; NOGATHER-NEXT: je .LBB4_8
249
249
; NOGATHER-NEXT: # %bb.7: # %cond.load7
250
- ; NOGATHER-NEXT: vextractf128 $1, %ymm0, %xmm0
251
250
; NOGATHER-NEXT: vpextrq $1, %xmm0, %rax
252
251
; NOGATHER-NEXT: vpinsrd $3, (%rax), %xmm2, %xmm2
253
252
; NOGATHER-NEXT: .LBB4_8: # %else8
@@ -295,18 +294,17 @@ define <4 x float> @masked_gather_v4float(<4 x float*> %ptrs, <4 x i1> %masks, <
295
294
; NOGATHER-NEXT: vinsertps {{.*#+}} xmm2 = xmm2[0],mem[0],xmm2[2,3]
296
295
; NOGATHER-NEXT: .LBB5_4: # %else2
297
296
; NOGATHER-NEXT: vpextrb $8, %xmm1, %eax
297
+ ; NOGATHER-NEXT: vextractf128 $1, %ymm0, %xmm0
298
298
; NOGATHER-NEXT: testb $1, %al
299
299
; NOGATHER-NEXT: je .LBB5_6
300
300
; NOGATHER-NEXT: # %bb.5: # %cond.load4
301
- ; NOGATHER-NEXT: vextractf128 $1, %ymm0, %xmm3
302
- ; NOGATHER-NEXT: vmovq %xmm3, %rax
301
+ ; NOGATHER-NEXT: vmovq %xmm0, %rax
303
302
; NOGATHER-NEXT: vinsertps {{.*#+}} xmm2 = xmm2[0,1],mem[0],xmm2[3]
304
303
; NOGATHER-NEXT: .LBB5_6: # %else5
305
304
; NOGATHER-NEXT: vpextrb $12, %xmm1, %eax
306
305
; NOGATHER-NEXT: testb $1, %al
307
306
; NOGATHER-NEXT: je .LBB5_8
308
307
; NOGATHER-NEXT: # %bb.7: # %cond.load7
309
- ; NOGATHER-NEXT: vextractf128 $1, %ymm0, %xmm0
310
308
; NOGATHER-NEXT: vpextrq $1, %xmm0, %rax
311
309
; NOGATHER-NEXT: vinsertps {{.*#+}} xmm2 = xmm2[0,1,2],mem[0]
312
310
; NOGATHER-NEXT: .LBB5_8: # %else8
@@ -366,19 +364,18 @@ define <8 x i32> @masked_gather_v8i32(<8 x i32*>* %ptr, <8 x i1> %masks, <8 x i3
366
364
; NOGATHER-NEXT: vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm1[4,5,6,7]
367
365
; NOGATHER-NEXT: .LBB6_4: # %else2
368
366
; NOGATHER-NEXT: vpextrb $4, %xmm0, %eax
367
+ ; NOGATHER-NEXT: vextractf128 $1, %ymm3, %xmm3
369
368
; NOGATHER-NEXT: testb $1, %al
370
369
; NOGATHER-NEXT: je .LBB6_6
371
370
; NOGATHER-NEXT: # %bb.5: # %cond.load4
372
- ; NOGATHER-NEXT: vextractf128 $1, %ymm3, %xmm4
373
- ; NOGATHER-NEXT: vmovq %xmm4, %rax
371
+ ; NOGATHER-NEXT: vmovq %xmm3, %rax
374
372
; NOGATHER-NEXT: vpinsrd $2, (%rax), %xmm1, %xmm4
375
373
; NOGATHER-NEXT: vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm1[4,5,6,7]
376
374
; NOGATHER-NEXT: .LBB6_6: # %else5
377
375
; NOGATHER-NEXT: vpextrb $6, %xmm0, %eax
378
376
; NOGATHER-NEXT: testb $1, %al
379
377
; NOGATHER-NEXT: je .LBB6_8
380
378
; NOGATHER-NEXT: # %bb.7: # %cond.load7
381
- ; NOGATHER-NEXT: vextractf128 $1, %ymm3, %xmm3
382
379
; NOGATHER-NEXT: vpextrq $1, %xmm3, %rax
383
380
; NOGATHER-NEXT: vpinsrd $3, (%rax), %xmm1, %xmm3
384
381
; NOGATHER-NEXT: vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
@@ -402,11 +399,11 @@ define <8 x i32> @masked_gather_v8i32(<8 x i32*>* %ptr, <8 x i1> %masks, <8 x i3
402
399
; NOGATHER-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1
403
400
; NOGATHER-NEXT: .LBB6_12: # %else14
404
401
; NOGATHER-NEXT: vpextrb $12, %xmm0, %eax
402
+ ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm2
405
403
; NOGATHER-NEXT: testb $1, %al
406
404
; NOGATHER-NEXT: je .LBB6_14
407
405
; NOGATHER-NEXT: # %bb.13: # %cond.load16
408
- ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm3
409
- ; NOGATHER-NEXT: vmovq %xmm3, %rax
406
+ ; NOGATHER-NEXT: vmovq %xmm2, %rax
410
407
; NOGATHER-NEXT: vextractf128 $1, %ymm1, %xmm3
411
408
; NOGATHER-NEXT: vpinsrd $2, (%rax), %xmm3, %xmm3
412
409
; NOGATHER-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1
@@ -415,8 +412,7 @@ define <8 x i32> @masked_gather_v8i32(<8 x i32*>* %ptr, <8 x i1> %masks, <8 x i3
415
412
; NOGATHER-NEXT: testb $1, %al
416
413
; NOGATHER-NEXT: je .LBB6_16
417
414
; NOGATHER-NEXT: # %bb.15: # %cond.load19
418
- ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm0
419
- ; NOGATHER-NEXT: vpextrq $1, %xmm0, %rax
415
+ ; NOGATHER-NEXT: vpextrq $1, %xmm2, %rax
420
416
; NOGATHER-NEXT: vextractf128 $1, %ymm1, %xmm0
421
417
; NOGATHER-NEXT: vpinsrd $3, (%rax), %xmm0, %xmm0
422
418
; NOGATHER-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm1
@@ -477,19 +473,18 @@ define <8 x float> @masked_gather_v8float(<8 x float*>* %ptr, <8 x i1> %masks, <
477
473
; NOGATHER-NEXT: vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm1[4,5,6,7]
478
474
; NOGATHER-NEXT: .LBB7_4: # %else2
479
475
; NOGATHER-NEXT: vpextrb $4, %xmm0, %eax
476
+ ; NOGATHER-NEXT: vextractf128 $1, %ymm3, %xmm3
480
477
; NOGATHER-NEXT: testb $1, %al
481
478
; NOGATHER-NEXT: je .LBB7_6
482
479
; NOGATHER-NEXT: # %bb.5: # %cond.load4
483
- ; NOGATHER-NEXT: vextractf128 $1, %ymm3, %xmm4
484
- ; NOGATHER-NEXT: vmovq %xmm4, %rax
480
+ ; NOGATHER-NEXT: vmovq %xmm3, %rax
485
481
; NOGATHER-NEXT: vinsertps {{.*#+}} xmm4 = xmm1[0,1],mem[0],xmm1[3]
486
482
; NOGATHER-NEXT: vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm1[4,5,6,7]
487
483
; NOGATHER-NEXT: .LBB7_6: # %else5
488
484
; NOGATHER-NEXT: vpextrb $6, %xmm0, %eax
489
485
; NOGATHER-NEXT: testb $1, %al
490
486
; NOGATHER-NEXT: je .LBB7_8
491
487
; NOGATHER-NEXT: # %bb.7: # %cond.load7
492
- ; NOGATHER-NEXT: vextractf128 $1, %ymm3, %xmm3
493
488
; NOGATHER-NEXT: vpextrq $1, %xmm3, %rax
494
489
; NOGATHER-NEXT: vinsertps {{.*#+}} xmm3 = xmm1[0,1,2],mem[0]
495
490
; NOGATHER-NEXT: vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
@@ -514,11 +509,11 @@ define <8 x float> @masked_gather_v8float(<8 x float*>* %ptr, <8 x i1> %masks, <
514
509
; NOGATHER-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1
515
510
; NOGATHER-NEXT: .LBB7_12: # %else14
516
511
; NOGATHER-NEXT: vpextrb $12, %xmm0, %eax
512
+ ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm2
517
513
; NOGATHER-NEXT: testb $1, %al
518
514
; NOGATHER-NEXT: je .LBB7_14
519
515
; NOGATHER-NEXT: # %bb.13: # %cond.load16
520
- ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm3
521
- ; NOGATHER-NEXT: vmovq %xmm3, %rax
516
+ ; NOGATHER-NEXT: vmovq %xmm2, %rax
522
517
; NOGATHER-NEXT: vextractf128 $1, %ymm1, %xmm3
523
518
; NOGATHER-NEXT: vinsertps {{.*#+}} xmm3 = xmm3[0,1],mem[0],xmm3[3]
524
519
; NOGATHER-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1
@@ -527,8 +522,7 @@ define <8 x float> @masked_gather_v8float(<8 x float*>* %ptr, <8 x i1> %masks, <
527
522
; NOGATHER-NEXT: testb $1, %al
528
523
; NOGATHER-NEXT: je .LBB7_16
529
524
; NOGATHER-NEXT: # %bb.15: # %cond.load19
530
- ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm0
531
- ; NOGATHER-NEXT: vpextrq $1, %xmm0, %rax
525
+ ; NOGATHER-NEXT: vpextrq $1, %xmm2, %rax
532
526
; NOGATHER-NEXT: vextractf128 $1, %ymm1, %xmm0
533
527
; NOGATHER-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0,1,2],mem[0]
534
528
; NOGATHER-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm1
@@ -583,11 +577,11 @@ define <4 x i64> @masked_gather_v4i64(<4 x i64*>* %ptr, <4 x i1> %masks, <4 x i6
583
577
; NOGATHER-NEXT: vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]
584
578
; NOGATHER-NEXT: .LBB8_4: # %else2
585
579
; NOGATHER-NEXT: vpextrb $8, %xmm0, %eax
580
+ ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm2
586
581
; NOGATHER-NEXT: testb $1, %al
587
582
; NOGATHER-NEXT: je .LBB8_6
588
583
; NOGATHER-NEXT: # %bb.5: # %cond.load4
589
- ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm3
590
- ; NOGATHER-NEXT: vmovq %xmm3, %rax
584
+ ; NOGATHER-NEXT: vmovq %xmm2, %rax
591
585
; NOGATHER-NEXT: vextractf128 $1, %ymm1, %xmm3
592
586
; NOGATHER-NEXT: vpinsrq $0, (%rax), %xmm3, %xmm3
593
587
; NOGATHER-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1
@@ -596,8 +590,7 @@ define <4 x i64> @masked_gather_v4i64(<4 x i64*>* %ptr, <4 x i1> %masks, <4 x i6
596
590
; NOGATHER-NEXT: testb $1, %al
597
591
; NOGATHER-NEXT: je .LBB8_8
598
592
; NOGATHER-NEXT: # %bb.7: # %cond.load7
599
- ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm0
600
- ; NOGATHER-NEXT: vpextrq $1, %xmm0, %rax
593
+ ; NOGATHER-NEXT: vpextrq $1, %xmm2, %rax
601
594
; NOGATHER-NEXT: vextractf128 $1, %ymm1, %xmm0
602
595
; NOGATHER-NEXT: vpinsrq $1, (%rax), %xmm0, %xmm0
603
596
; NOGATHER-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm1
@@ -652,11 +645,11 @@ define <4 x double> @masked_gather_v4double(<4 x double*>* %ptr, <4 x i1> %masks
652
645
; NOGATHER-NEXT: vblendpd {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3]
653
646
; NOGATHER-NEXT: .LBB9_4: # %else2
654
647
; NOGATHER-NEXT: vpextrb $8, %xmm0, %eax
648
+ ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm2
655
649
; NOGATHER-NEXT: testb $1, %al
656
650
; NOGATHER-NEXT: je .LBB9_6
657
651
; NOGATHER-NEXT: # %bb.5: # %cond.load4
658
- ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm3
659
- ; NOGATHER-NEXT: vmovq %xmm3, %rax
652
+ ; NOGATHER-NEXT: vmovq %xmm2, %rax
660
653
; NOGATHER-NEXT: vextractf128 $1, %ymm1, %xmm3
661
654
; NOGATHER-NEXT: vmovlpd {{.*#+}} xmm3 = mem[0],xmm3[1]
662
655
; NOGATHER-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1
@@ -665,8 +658,7 @@ define <4 x double> @masked_gather_v4double(<4 x double*>* %ptr, <4 x i1> %masks
665
658
; NOGATHER-NEXT: testb $1, %al
666
659
; NOGATHER-NEXT: je .LBB9_8
667
660
; NOGATHER-NEXT: # %bb.7: # %cond.load7
668
- ; NOGATHER-NEXT: vextractf128 $1, %ymm2, %xmm0
669
- ; NOGATHER-NEXT: vpextrq $1, %xmm0, %rax
661
+ ; NOGATHER-NEXT: vpextrq $1, %xmm2, %rax
670
662
; NOGATHER-NEXT: vextractf128 $1, %ymm1, %xmm0
671
663
; NOGATHER-NEXT: vmovhpd {{.*#+}} xmm0 = xmm0[0],mem[0]
672
664
; NOGATHER-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm1
0 commit comments