@@ -483,3 +483,82 @@ body: |
483
483
%x:vr = PseudoVADD_VV_MF4 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
484
484
%y:vr = PseudoVNSRL_WV_MF2 $noreg, $noreg, %x, 1, 3 /* e8 */, 0
485
485
...
486
+ ---
487
+ name : vseN_v
488
+ body : |
489
+ bb.0:
490
+ ; CHECK-LABEL: name: vseN_v
491
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
492
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
493
+ ; CHECK-NEXT: PseudoVSE8_V_M1 %x, %y, 1, 3 /* e8 */
494
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
495
+ %y:gpr = ADDI $x0, 1
496
+ PseudoVSE8_V_M1 %x, %y, 1, 3 /* e8 */
497
+ ...
498
+ ---
499
+ name : vseN_v_incompatible_eew
500
+ body : |
501
+ bb.0:
502
+ ; CHECK-LABEL: name: vseN_v_incompatible_eew
503
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
504
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
505
+ ; CHECK-NEXT: PseudoVSE8_V_M1 %x, %y, 1, 3 /* e8 */
506
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
507
+ %y:gpr = ADDI $x0, 1
508
+ PseudoVSE8_V_M1 %x, %y, 1, 3 /* e8 */
509
+ ...
510
+ ---
511
+ name : vseN_v_incompatible_emul
512
+ body : |
513
+ bb.0:
514
+ ; CHECK-LABEL: name: vseN_v_incompatible_emul
515
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
516
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
517
+ ; CHECK-NEXT: PseudoVSE8_V_MF2 %x, %y, 1, 3 /* e8 */
518
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
519
+ %y:gpr = ADDI $x0, 1
520
+ PseudoVSE8_V_MF2 %x, %y, 1, 3 /* e8 */
521
+ ...
522
+ ---
523
+ name : vsseN_v
524
+ body : |
525
+ bb.0:
526
+ ; CHECK-LABEL: name: vsseN_v
527
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
528
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
529
+ ; CHECK-NEXT: %z:gpr = ADDI $x0, 2
530
+ ; CHECK-NEXT: PseudoVSSE8_V_M1 %x, %y, %z, 1, 3 /* e8 */
531
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
532
+ %y:gpr = ADDI $x0, 1
533
+ %z:gpr = ADDI $x0, 2
534
+ PseudoVSSE8_V_M1 %x, %y, %z, 1, 3 /* e8 */
535
+ ...
536
+ ---
537
+ name : vsseN_v_incompatible_eew
538
+ body : |
539
+ bb.0:
540
+ ; CHECK-LABEL: name: vsseN_v_incompatible_eew
541
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
542
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
543
+ ; CHECK-NEXT: %z:gpr = ADDI $x0, 2
544
+ ; CHECK-NEXT: PseudoVSSE8_V_M1 %x, %y, %z, 1, 3 /* e8 */
545
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
546
+ %y:gpr = ADDI $x0, 1
547
+ %z:gpr = ADDI $x0, 2
548
+ PseudoVSSE8_V_M1 %x, %y, %z, 1, 3 /* e8 */
549
+ ...
550
+ ---
551
+ name : vsseN_v_incompatible_emul
552
+ body : |
553
+ bb.0:
554
+ ; CHECK-LABEL: name: vsseN_v_incompatible_emul
555
+ ; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
556
+ ; CHECK-NEXT: %y:gpr = ADDI $x0, 1
557
+ ; CHECK-NEXT: %z:gpr = ADDI $x0, 2
558
+ ; CHECK-NEXT: PseudoVSSE8_V_MF2 %x, %y, %z, 1, 3 /* e8 */
559
+ %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
560
+ %y:gpr = ADDI $x0, 1
561
+ %z:gpr = ADDI $x0, 2
562
+ PseudoVSSE8_V_MF2 %x, %y, %z, 1, 3 /* e8 */
563
+ ...
564
+
0 commit comments