@@ -513,3 +513,100 @@ body: |
513
513
%x:vr = PseudoVADD_VV_MF4 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
514
514
%y:vr = PseudoVNSRL_WV_MF2 $noreg, $noreg, %x, 1, 3 /* e8 */, 0
515
515
...
516
+ ---
517
+ name : vmerge_vim
518
+ body : |
519
+ bb.0:
520
+ ; CHECK-LABEL: name: vmerge_vim
521
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
522
+ ; CHECK-NEXT: %y:vrnov0 = PseudoVMERGE_VIM_M1 $noreg, %x, 9, $v0, 1, 3 /* e8 */
523
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
524
+ %y:vrnov0 = PseudoVMERGE_VIM_M1 $noreg, %x, 9, $v0, 1, 3 /* e8 */
525
+ ...
526
+ ---
527
+ name : vmerge_vim_incompatible_eew
528
+ body : |
529
+ bb.0:
530
+ ; CHECK-LABEL: name: vmerge_vim_incompatible_eew
531
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
532
+ ; CHECK-NEXT: %y:vrnov0 = PseudoVMERGE_VIM_M1 $noreg, %x, 9, $v0, 1, 3 /* e8 */
533
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
534
+ %y:vrnov0 = PseudoVMERGE_VIM_M1 $noreg, %x, 9, $v0, 1, 3 /* e8 */
535
+ ...
536
+ ---
537
+ name : vmerge_vim_incompatible_emul
538
+ body : |
539
+ bb.0:
540
+ ; CHECK-LABEL: name: vmerge_vim_incompatible_emul
541
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
542
+ ; CHECK-NEXT: %y:vrnov0 = PseudoVMERGE_VIM_MF2 $noreg, %x, 9, $v0, 1, 3 /* e8 */
543
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
544
+ %y:vrnov0 = PseudoVMERGE_VIM_MF2 $noreg, %x, 9, $v0, 1, 3 /* e8 */
545
+ ...
546
+ ---
547
+ name : vmerge_vxm
548
+ body : |
549
+ bb.0:
550
+ ; CHECK-LABEL: name: vmerge_vxm
551
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
552
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
553
+ ; CHECK-NEXT: %z:vrnov0 = PseudoVMERGE_VXM_M1 $noreg, %x, %y, $v0, 1, 3 /* e8 */
554
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
555
+ %y:gpr = ADDI $x0, 1
556
+ %z:vrnov0 = PseudoVMERGE_VXM_M1 $noreg, %x, %y, $v0, 1, 3 /* e8 */
557
+ ...
558
+ ---
559
+ name : vmerge_vxm_incompatible_eew
560
+ body : |
561
+ bb.0:
562
+ ; CHECK-LABEL: name: vmerge_vxm_incompatible_eew
563
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
564
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
565
+ ; CHECK-NEXT: %z:vrnov0 = PseudoVMERGE_VXM_M1 $noreg, %x, %y, $v0, 1, 3 /* e8 */
566
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
567
+ %y:gpr = ADDI $x0, 1
568
+ %z:vrnov0 = PseudoVMERGE_VXM_M1 $noreg, %x, %y, $v0, 1, 3 /* e8 */
569
+ ...
570
+ ---
571
+ name : vmerge_vxm_incompatible_emul
572
+ body : |
573
+ bb.0:
574
+ ; CHECK-LABEL: name: vmerge_vxm_incompatible_emul
575
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
576
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
577
+ ; CHECK-NEXT: %z:vrnov0 = PseudoVMERGE_VXM_MF2 $noreg, %x, %y, $v0, 1, 3 /* e8 */
578
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
579
+ %y:gpr = ADDI $x0, 1
580
+ %z:vrnov0 = PseudoVMERGE_VXM_MF2 $noreg, %x, %y, $v0, 1, 3 /* e8 */
581
+ ...
582
+ ---
583
+ name : vmerge_vvm
584
+ body : |
585
+ bb.0:
586
+ ; CHECK-LABEL: name: vmerge_vvm
587
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
588
+ ; CHECK-NEXT: %y:vrnov0 = PseudoVMERGE_VVM_M1 $noreg, $noreg, %x, $v0, 1, 3 /* e8 */
589
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
590
+ %y:vrnov0 = PseudoVMERGE_VVM_M1 $noreg, $noreg, %x, $v0, 1, 3 /* e8 */
591
+ ...
592
+ ---
593
+ name : vmerge_vvm_incompatible_eew
594
+ body : |
595
+ bb.0:
596
+ ; CHECK-LABEL: name: vmerge_vvm_incompatible_eew
597
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
598
+ ; CHECK-NEXT: %y:vrnov0 = PseudoVMERGE_VVM_M1 $noreg, $noreg, %x, $v0, 1, 3 /* e8 */
599
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
600
+ %y:vrnov0 = PseudoVMERGE_VVM_M1 $noreg, $noreg, %x, $v0, 1, 3 /* e8 */
601
+ ...
602
+ ---
603
+ name : vmerge_vvm_incompatible_emul
604
+ body : |
605
+ bb.0:
606
+ ; CHECK-LABEL: name: vmerge_vvm_incompatible_emul
607
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
608
+ ; CHECK-NEXT: %y:vrnov0 = PseudoVMERGE_VVM_MF2 $noreg, $noreg, %x, $v0, 1, 3 /* e8 */
609
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
610
+ %y:vrnov0 = PseudoVMERGE_VVM_MF2 $noreg, $noreg, %x, $v0, 1, 3 /* e8 */
611
+ ...
612
+
0 commit comments