Skip to content

Commit bad2681

Browse files
author
Leon Clark
committed
Add lowering code and update tests.
1 parent cc40158 commit bad2681

File tree

2 files changed

+87
-90
lines changed

2 files changed

+87
-90
lines changed

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9040,6 +9040,39 @@ X86TargetLowering::LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG) const {
90409040
MVT OpEltVT = Op.getOperand(0).getSimpleValueType();
90419041
unsigned NumElems = Op.getNumOperands();
90429042

9043+
// Match BUILD_VECTOR of scalars that we can lower to X86ISD::BLENDI via
9044+
// shuffles.
9045+
//
9046+
// v4f64 = BUILD_VECTOR X,Y,Y,X
9047+
// >>>
9048+
// t1: v4f64 = BUILD_VECTOR X,u,u,u
9049+
// t3: v4f64 = vector_shuffle<0,u,u,0> t1, u
9050+
// t2: v4f64 = BUILD_VECTOR Y,u,u,u
9051+
// t4: v4f64 = vector_shuffle<u,0,0,u> t2, u
9052+
// v4f64 = vector_shuffle<0,5,6,3> t3, t4
9053+
//
9054+
if (Subtarget.hasAVX() && VT == MVT::v4f64 && Op->getNumOperands() == 4u) {
9055+
auto Op0 = Op->getOperand(0u);
9056+
auto Op1 = Op->getOperand(1u);
9057+
auto Op2 = Op->getOperand(2u);
9058+
auto Op3 = Op->getOperand(3u);
9059+
9060+
// Match X,Y,Y,X inputs.
9061+
if (Op0 == Op3 && Op1 == Op2 && Op0 != Op1) {
9062+
auto PsnVal = DAG.getUNDEF(MVT::f64);
9063+
9064+
auto NewOp0 = DAG.getBuildVector(VT, dl, {Op0, PsnVal, PsnVal, PsnVal});
9065+
NewOp0 = DAG.getVectorShuffle(VT, dl, NewOp0, DAG.getUNDEF(VT),
9066+
{0, -1, -1, 0});
9067+
9068+
auto NewOp1 = DAG.getBuildVector(VT, dl, {Op1, PsnVal, PsnVal, PsnVal});
9069+
NewOp1 = DAG.getVectorShuffle(VT, dl, NewOp1, DAG.getUNDEF(VT),
9070+
{-1, 0, 0, -1});
9071+
9072+
return DAG.getVectorShuffle(VT, dl, NewOp0, NewOp1, {0, 5, 6, 3});
9073+
}
9074+
}
9075+
90439076
// Generate vectors for predicate vectors.
90449077
if (VT.getVectorElementType() == MVT::i1 && Subtarget.hasAVX512())
90459078
return LowerBUILD_VECTORvXi1(Op, dl, DAG, Subtarget);

llvm/test/CodeGen/X86/shuffle-blendw.ll

Lines changed: 54 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -449,60 +449,48 @@ define <4 x double> @blend_broadcasts_v1f64(ptr %p0, ptr %p1) {
449449
; X86-AVX: # %bb.0:
450450
; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax
451451
; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %ecx
452-
; X86-AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
453-
; X86-AVX-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
454-
; X86-AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
455-
; X86-AVX-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
456-
; X86-AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
452+
; X86-AVX-NEXT: vbroadcastsd (%ecx), %ymm0
453+
; X86-AVX-NEXT: vbroadcastsd (%eax), %ymm1
454+
; X86-AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
457455
; X86-AVX-NEXT: retl
458456
;
459457
; X64-AVX-LABEL: blend_broadcasts_v1f64:
460458
; X64-AVX: # %bb.0:
461-
; X64-AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
462-
; X64-AVX-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
463-
; X64-AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
464-
; X64-AVX-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
465-
; X64-AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
459+
; X64-AVX-NEXT: vbroadcastsd (%rsi), %ymm0
460+
; X64-AVX-NEXT: vbroadcastsd (%rdi), %ymm1
461+
; X64-AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
466462
; X64-AVX-NEXT: retq
467463
;
468464
; X86-AVX2-LABEL: blend_broadcasts_v1f64:
469465
; X86-AVX2: # %bb.0:
470466
; X86-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax
471467
; X86-AVX2-NEXT: movl {{[0-9]+}}(%esp), %ecx
472-
; X86-AVX2-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
473-
; X86-AVX2-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
474-
; X86-AVX2-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
475-
; X86-AVX2-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
476-
; X86-AVX2-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
468+
; X86-AVX2-NEXT: vbroadcastsd (%ecx), %ymm0
469+
; X86-AVX2-NEXT: vbroadcastsd (%eax), %ymm1
470+
; X86-AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
477471
; X86-AVX2-NEXT: retl
478472
;
479473
; X64-AVX2-LABEL: blend_broadcasts_v1f64:
480474
; X64-AVX2: # %bb.0:
481-
; X64-AVX2-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
482-
; X64-AVX2-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
483-
; X64-AVX2-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
484-
; X64-AVX2-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
485-
; X64-AVX2-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
475+
; X64-AVX2-NEXT: vbroadcastsd (%rsi), %ymm0
476+
; X64-AVX2-NEXT: vbroadcastsd (%rdi), %ymm1
477+
; X64-AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
486478
; X64-AVX2-NEXT: retq
487479
;
488480
; X86-AVX512-LABEL: blend_broadcasts_v1f64:
489481
; X86-AVX512: # %bb.0:
490482
; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax
491483
; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %ecx
492-
; X86-AVX512-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
493-
; X86-AVX512-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
494-
; X86-AVX512-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
495-
; X86-AVX512-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
496-
; X86-AVX512-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
484+
; X86-AVX512-NEXT: vbroadcastsd (%ecx), %ymm0
485+
; X86-AVX512-NEXT: vbroadcastsd (%eax), %ymm1
486+
; X86-AVX512-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
497487
; X86-AVX512-NEXT: retl
498488
;
499489
; X64-AVX512-LABEL: blend_broadcasts_v1f64:
500490
; X64-AVX512: # %bb.0:
501-
; X64-AVX512-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
502-
; X64-AVX512-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
503-
; X64-AVX512-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
504-
; X64-AVX512-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
505-
; X64-AVX512-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
491+
; X64-AVX512-NEXT: vbroadcastsd (%rsi), %ymm0
492+
; X64-AVX512-NEXT: vbroadcastsd (%rdi), %ymm1
493+
; X64-AVX512-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
506494
; X64-AVX512-NEXT: retq
507495
%ld0 = load <1 x double>, ptr %p0, align 32
508496
%ld1 = load <1 x double>, ptr %p1, align 32
@@ -535,60 +523,48 @@ define <4 x double> @blend_broadcasts_v1f64_4x(ptr %p0, ptr %p1) {
535523
; X86-AVX: # %bb.0:
536524
; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax
537525
; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %ecx
538-
; X86-AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
539-
; X86-AVX-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
540-
; X86-AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
541-
; X86-AVX-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
542-
; X86-AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
526+
; X86-AVX-NEXT: vbroadcastsd (%ecx), %ymm0
527+
; X86-AVX-NEXT: vbroadcastsd (%eax), %ymm1
528+
; X86-AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
543529
; X86-AVX-NEXT: retl
544530
;
545531
; X64-AVX-LABEL: blend_broadcasts_v1f64_4x:
546532
; X64-AVX: # %bb.0:
547-
; X64-AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
548-
; X64-AVX-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
549-
; X64-AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
550-
; X64-AVX-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
551-
; X64-AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
533+
; X64-AVX-NEXT: vbroadcastsd (%rsi), %ymm0
534+
; X64-AVX-NEXT: vbroadcastsd (%rdi), %ymm1
535+
; X64-AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
552536
; X64-AVX-NEXT: retq
553537
;
554538
; X86-AVX2-LABEL: blend_broadcasts_v1f64_4x:
555539
; X86-AVX2: # %bb.0:
556540
; X86-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax
557541
; X86-AVX2-NEXT: movl {{[0-9]+}}(%esp), %ecx
558-
; X86-AVX2-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
559-
; X86-AVX2-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
560-
; X86-AVX2-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
561-
; X86-AVX2-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
562-
; X86-AVX2-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
542+
; X86-AVX2-NEXT: vbroadcastsd (%ecx), %ymm0
543+
; X86-AVX2-NEXT: vbroadcastsd (%eax), %ymm1
544+
; X86-AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
563545
; X86-AVX2-NEXT: retl
564546
;
565547
; X64-AVX2-LABEL: blend_broadcasts_v1f64_4x:
566548
; X64-AVX2: # %bb.0:
567-
; X64-AVX2-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
568-
; X64-AVX2-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
569-
; X64-AVX2-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
570-
; X64-AVX2-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
571-
; X64-AVX2-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
549+
; X64-AVX2-NEXT: vbroadcastsd (%rsi), %ymm0
550+
; X64-AVX2-NEXT: vbroadcastsd (%rdi), %ymm1
551+
; X64-AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
572552
; X64-AVX2-NEXT: retq
573553
;
574554
; X86-AVX512-LABEL: blend_broadcasts_v1f64_4x:
575555
; X86-AVX512: # %bb.0:
576556
; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax
577557
; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %ecx
578-
; X86-AVX512-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
579-
; X86-AVX512-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
580-
; X86-AVX512-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
581-
; X86-AVX512-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
582-
; X86-AVX512-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
558+
; X86-AVX512-NEXT: vbroadcastsd (%ecx), %ymm0
559+
; X86-AVX512-NEXT: vbroadcastsd (%eax), %ymm1
560+
; X86-AVX512-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
583561
; X86-AVX512-NEXT: retl
584562
;
585563
; X64-AVX512-LABEL: blend_broadcasts_v1f64_4x:
586564
; X64-AVX512: # %bb.0:
587-
; X64-AVX512-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
588-
; X64-AVX512-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
589-
; X64-AVX512-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
590-
; X64-AVX512-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
591-
; X64-AVX512-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
565+
; X64-AVX512-NEXT: vbroadcastsd (%rsi), %ymm0
566+
; X64-AVX512-NEXT: vbroadcastsd (%rdi), %ymm1
567+
; X64-AVX512-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
592568
; X64-AVX512-NEXT: retq
593569
%ld0 = load <1 x double>, ptr %p0, align 32
594570
%ld1 = load <1 x double>, ptr %p1, align 32
@@ -623,60 +599,48 @@ define <4 x double> @blend_broadcasts_v1f64_2x(ptr %p0, ptr %p1) {
623599
; X86-AVX: # %bb.0:
624600
; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %eax
625601
; X86-AVX-NEXT: movl {{[0-9]+}}(%esp), %ecx
626-
; X86-AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
627-
; X86-AVX-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
628-
; X86-AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
629-
; X86-AVX-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
630-
; X86-AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
602+
; X86-AVX-NEXT: vbroadcastsd (%ecx), %ymm0
603+
; X86-AVX-NEXT: vbroadcastsd (%eax), %ymm1
604+
; X86-AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
631605
; X86-AVX-NEXT: retl
632606
;
633607
; X64-AVX-LABEL: blend_broadcasts_v1f64_2x:
634608
; X64-AVX: # %bb.0:
635-
; X64-AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
636-
; X64-AVX-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
637-
; X64-AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
638-
; X64-AVX-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
639-
; X64-AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
609+
; X64-AVX-NEXT: vbroadcastsd (%rsi), %ymm0
610+
; X64-AVX-NEXT: vbroadcastsd (%rdi), %ymm1
611+
; X64-AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
640612
; X64-AVX-NEXT: retq
641613
;
642614
; X86-AVX2-LABEL: blend_broadcasts_v1f64_2x:
643615
; X86-AVX2: # %bb.0:
644616
; X86-AVX2-NEXT: movl {{[0-9]+}}(%esp), %eax
645617
; X86-AVX2-NEXT: movl {{[0-9]+}}(%esp), %ecx
646-
; X86-AVX2-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
647-
; X86-AVX2-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
648-
; X86-AVX2-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
649-
; X86-AVX2-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
650-
; X86-AVX2-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
618+
; X86-AVX2-NEXT: vbroadcastsd (%ecx), %ymm0
619+
; X86-AVX2-NEXT: vbroadcastsd (%eax), %ymm1
620+
; X86-AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
651621
; X86-AVX2-NEXT: retl
652622
;
653623
; X64-AVX2-LABEL: blend_broadcasts_v1f64_2x:
654624
; X64-AVX2: # %bb.0:
655-
; X64-AVX2-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
656-
; X64-AVX2-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
657-
; X64-AVX2-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
658-
; X64-AVX2-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
659-
; X64-AVX2-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
625+
; X64-AVX2-NEXT: vbroadcastsd (%rsi), %ymm0
626+
; X64-AVX2-NEXT: vbroadcastsd (%rdi), %ymm1
627+
; X64-AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
660628
; X64-AVX2-NEXT: retq
661629
;
662630
; X86-AVX512-LABEL: blend_broadcasts_v1f64_2x:
663631
; X86-AVX512: # %bb.0:
664632
; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax
665633
; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %ecx
666-
; X86-AVX512-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
667-
; X86-AVX512-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
668-
; X86-AVX512-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
669-
; X86-AVX512-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
670-
; X86-AVX512-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
634+
; X86-AVX512-NEXT: vbroadcastsd (%ecx), %ymm0
635+
; X86-AVX512-NEXT: vbroadcastsd (%eax), %ymm1
636+
; X86-AVX512-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
671637
; X86-AVX512-NEXT: retl
672638
;
673639
; X64-AVX512-LABEL: blend_broadcasts_v1f64_2x:
674640
; X64-AVX512: # %bb.0:
675-
; X64-AVX512-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
676-
; X64-AVX512-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero
677-
; X64-AVX512-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
678-
; X64-AVX512-NEXT: vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
679-
; X64-AVX512-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
641+
; X64-AVX512-NEXT: vbroadcastsd (%rsi), %ymm0
642+
; X64-AVX512-NEXT: vbroadcastsd (%rdi), %ymm1
643+
; X64-AVX512-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]
680644
; X64-AVX512-NEXT: retq
681645
%ld0 = load <1 x double>, ptr %p0, align 32
682646
%ld1 = load <1 x double>, ptr %p1, align 32

0 commit comments

Comments
 (0)