@@ -448,12 +448,10 @@ define void @trunc_sat_u8u32_maxmin(ptr %x, ptr %y) {
448
448
; CHECK-NEXT: vl2re32.v v8, (a0)
449
449
; CHECK-NEXT: vsetvli a0, zero, e32, m2, ta, ma
450
450
; CHECK-NEXT: vmax.vx v8, v8, zero
451
- ; CHECK-NEXT: li a0, 255
452
- ; CHECK-NEXT: vmin.vx v8, v8, a0
453
451
; CHECK-NEXT: vsetvli zero, zero, e16, m1, ta, ma
454
- ; CHECK-NEXT: vnsrl .wi v10, v8, 0
452
+ ; CHECK-NEXT: vnclipu .wi v10, v8, 0
455
453
; CHECK-NEXT: vsetvli zero, zero, e8, mf2, ta, ma
456
- ; CHECK-NEXT: vnsrl .wi v8, v10, 0
454
+ ; CHECK-NEXT: vnclipu .wi v8, v10, 0
457
455
; CHECK-NEXT: vse8.v v8, (a1)
458
456
; CHECK-NEXT: ret
459
457
%1 = load <vscale x 4 x i32 >, ptr %x , align 16
@@ -468,14 +466,12 @@ define void @trunc_sat_u8u32_minmax(ptr %x, ptr %y) {
468
466
; CHECK-LABEL: trunc_sat_u8u32_minmax:
469
467
; CHECK: # %bb.0:
470
468
; CHECK-NEXT: vl2re32.v v8, (a0)
471
- ; CHECK-NEXT: li a0, 255
472
- ; CHECK-NEXT: vsetvli a2, zero, e32, m2, ta, ma
473
- ; CHECK-NEXT: vmin.vx v8, v8, a0
469
+ ; CHECK-NEXT: vsetvli a0, zero, e32, m2, ta, ma
474
470
; CHECK-NEXT: vmax.vx v8, v8, zero
475
471
; CHECK-NEXT: vsetvli zero, zero, e16, m1, ta, ma
476
- ; CHECK-NEXT: vnsrl .wi v10, v8, 0
472
+ ; CHECK-NEXT: vnclipu .wi v10, v8, 0
477
473
; CHECK-NEXT: vsetvli zero, zero, e8, mf2, ta, ma
478
- ; CHECK-NEXT: vnsrl .wi v8, v10, 0
474
+ ; CHECK-NEXT: vnclipu .wi v8, v10, 0
479
475
; CHECK-NEXT: vse8.v v8, (a1)
480
476
; CHECK-NEXT: ret
481
477
%1 = load <vscale x 4 x i32 >, ptr %x , align 16
@@ -551,14 +547,12 @@ define void @trunc_sat_u8u64_maxmin(ptr %x, ptr %y) {
551
547
; CHECK-NEXT: vl4re64.v v8, (a0)
552
548
; CHECK-NEXT: vsetvli a0, zero, e64, m4, ta, ma
553
549
; CHECK-NEXT: vmax.vx v8, v8, zero
554
- ; CHECK-NEXT: li a0, 255
555
- ; CHECK-NEXT: vmin.vx v8, v8, a0
556
550
; CHECK-NEXT: vsetvli zero, zero, e32, m2, ta, ma
557
- ; CHECK-NEXT: vnsrl .wi v12, v8, 0
551
+ ; CHECK-NEXT: vnclipu .wi v12, v8, 0
558
552
; CHECK-NEXT: vsetvli zero, zero, e16, m1, ta, ma
559
- ; CHECK-NEXT: vnsrl .wi v8, v12, 0
553
+ ; CHECK-NEXT: vnclipu .wi v8, v12, 0
560
554
; CHECK-NEXT: vsetvli zero, zero, e8, mf2, ta, ma
561
- ; CHECK-NEXT: vnsrl .wi v8, v8, 0
555
+ ; CHECK-NEXT: vnclipu .wi v8, v8, 0
562
556
; CHECK-NEXT: vse8.v v8, (a1)
563
557
; CHECK-NEXT: ret
564
558
%1 = load <vscale x 4 x i64 >, ptr %x , align 16
@@ -573,16 +567,14 @@ define void @trunc_sat_u8u64_minmax(ptr %x, ptr %y) {
573
567
; CHECK-LABEL: trunc_sat_u8u64_minmax:
574
568
; CHECK: # %bb.0:
575
569
; CHECK-NEXT: vl4re64.v v8, (a0)
576
- ; CHECK-NEXT: li a0, 255
577
- ; CHECK-NEXT: vsetvli a2, zero, e64, m4, ta, ma
578
- ; CHECK-NEXT: vmin.vx v8, v8, a0
570
+ ; CHECK-NEXT: vsetvli a0, zero, e64, m4, ta, ma
579
571
; CHECK-NEXT: vmax.vx v8, v8, zero
580
572
; CHECK-NEXT: vsetvli zero, zero, e32, m2, ta, ma
581
- ; CHECK-NEXT: vnsrl .wi v12, v8, 0
573
+ ; CHECK-NEXT: vnclipu .wi v12, v8, 0
582
574
; CHECK-NEXT: vsetvli zero, zero, e16, m1, ta, ma
583
- ; CHECK-NEXT: vnsrl .wi v8, v12, 0
575
+ ; CHECK-NEXT: vnclipu .wi v8, v12, 0
584
576
; CHECK-NEXT: vsetvli zero, zero, e8, mf2, ta, ma
585
- ; CHECK-NEXT: vnsrl .wi v8, v8, 0
577
+ ; CHECK-NEXT: vnclipu .wi v8, v8, 0
586
578
; CHECK-NEXT: vse8.v v8, (a1)
587
579
; CHECK-NEXT: ret
588
580
%1 = load <vscale x 4 x i64 >, ptr %x , align 16
@@ -653,13 +645,10 @@ define void @trunc_sat_u16u64_maxmin(ptr %x, ptr %y) {
653
645
; CHECK-NEXT: li a0, 1
654
646
; CHECK-NEXT: vsetvli a2, zero, e64, m4, ta, ma
655
647
; CHECK-NEXT: vmax.vx v8, v8, a0
656
- ; CHECK-NEXT: lui a0, 16
657
- ; CHECK-NEXT: addiw a0, a0, -1
658
- ; CHECK-NEXT: vmin.vx v8, v8, a0
659
648
; CHECK-NEXT: vsetvli zero, zero, e32, m2, ta, ma
660
- ; CHECK-NEXT: vnsrl .wi v12, v8, 0
649
+ ; CHECK-NEXT: vnclipu .wi v12, v8, 0
661
650
; CHECK-NEXT: vsetvli zero, zero, e16, m1, ta, ma
662
- ; CHECK-NEXT: vnsrl .wi v8, v12, 0
651
+ ; CHECK-NEXT: vnclipu .wi v8, v12, 0
663
652
; CHECK-NEXT: vs1r.v v8, (a1)
664
653
; CHECK-NEXT: ret
665
654
%1 = load <vscale x 4 x i64 >, ptr %x , align 16
@@ -674,16 +663,13 @@ define void @trunc_sat_u16u64_minmax(ptr %x, ptr %y) {
674
663
; CHECK-LABEL: trunc_sat_u16u64_minmax:
675
664
; CHECK: # %bb.0:
676
665
; CHECK-NEXT: vl4re64.v v8, (a0)
677
- ; CHECK-NEXT: lui a0, 16
678
- ; CHECK-NEXT: addiw a0, a0, -1
679
- ; CHECK-NEXT: vsetvli a2, zero, e64, m4, ta, ma
680
- ; CHECK-NEXT: vmin.vx v8, v8, a0
681
666
; CHECK-NEXT: li a0, 50
667
+ ; CHECK-NEXT: vsetvli a2, zero, e64, m4, ta, ma
682
668
; CHECK-NEXT: vmax.vx v8, v8, a0
683
669
; CHECK-NEXT: vsetvli zero, zero, e32, m2, ta, ma
684
- ; CHECK-NEXT: vnsrl .wi v12, v8, 0
670
+ ; CHECK-NEXT: vnclipu .wi v12, v8, 0
685
671
; CHECK-NEXT: vsetvli zero, zero, e16, m1, ta, ma
686
- ; CHECK-NEXT: vnsrl .wi v8, v12, 0
672
+ ; CHECK-NEXT: vnclipu .wi v8, v12, 0
687
673
; CHECK-NEXT: vs1r.v v8, (a1)
688
674
; CHECK-NEXT: ret
689
675
%1 = load <vscale x 4 x i64 >, ptr %x , align 16
0 commit comments