@@ -76,11 +76,9 @@ define <2 x i32> @utest_f64i32(<2 x double> %x) {
76
76
; CHECK-V: # %bb.0: # %entry
77
77
; CHECK-V-NEXT: vsetivli zero, 2, e64, m1, ta, ma
78
78
; CHECK-V-NEXT: vfcvt.rtz.xu.f.v v8, v8
79
- ; CHECK-V-NEXT: li a0, -1
80
- ; CHECK-V-NEXT: srli a0, a0, 32
81
- ; CHECK-V-NEXT: vminu.vx v8, v8, a0
82
79
; CHECK-V-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
83
- ; CHECK-V-NEXT: vnsrl.wi v8, v8, 0
80
+ ; CHECK-V-NEXT: csrwi vxrm, 0
81
+ ; CHECK-V-NEXT: vnclipu.wi v8, v8, 0
84
82
; CHECK-V-NEXT: ret
85
83
entry:
86
84
%conv = fptoui <2 x double > %x to <2 x i64 >
@@ -249,12 +247,8 @@ define <4 x i32> @utest_f32i32(<4 x float> %x) {
249
247
; CHECK-V: # %bb.0: # %entry
250
248
; CHECK-V-NEXT: vsetivli zero, 4, e32, m1, ta, ma
251
249
; CHECK-V-NEXT: vfwcvt.rtz.xu.f.v v10, v8
252
- ; CHECK-V-NEXT: li a0, -1
253
- ; CHECK-V-NEXT: srli a0, a0, 32
254
- ; CHECK-V-NEXT: vsetvli zero, zero, e64, m2, ta, ma
255
- ; CHECK-V-NEXT: vminu.vx v10, v10, a0
256
- ; CHECK-V-NEXT: vsetvli zero, zero, e32, m1, ta, ma
257
- ; CHECK-V-NEXT: vnsrl.wi v8, v10, 0
250
+ ; CHECK-V-NEXT: csrwi vxrm, 0
251
+ ; CHECK-V-NEXT: vnclipu.wi v8, v10, 0
258
252
; CHECK-V-NEXT: ret
259
253
entry:
260
254
%conv = fptoui <4 x float > %x to <4 x i64 >
@@ -671,11 +665,9 @@ define <4 x i32> @utesth_f16i32(<4 x half> %x) {
671
665
; CHECK-V-NEXT: addi a0, a0, 16
672
666
; CHECK-V-NEXT: vl2r.v v10, (a0) # Unknown-size Folded Reload
673
667
; CHECK-V-NEXT: vslideup.vi v10, v8, 3
674
- ; CHECK-V-NEXT: li a0, -1
675
- ; CHECK-V-NEXT: srli a0, a0, 32
676
- ; CHECK-V-NEXT: vminu.vx v10, v10, a0
677
668
; CHECK-V-NEXT: vsetvli zero, zero, e32, m1, ta, ma
678
- ; CHECK-V-NEXT: vnsrl.wi v8, v10, 0
669
+ ; CHECK-V-NEXT: csrwi vxrm, 0
670
+ ; CHECK-V-NEXT: vnclipu.wi v8, v10, 0
679
671
; CHECK-V-NEXT: csrr a0, vlenb
680
672
; CHECK-V-NEXT: slli a0, a0, 2
681
673
; CHECK-V-NEXT: add sp, sp, a0
@@ -951,11 +943,9 @@ define <2 x i16> @utest_f64i16(<2 x double> %x) {
951
943
; CHECK-V: # %bb.0: # %entry
952
944
; CHECK-V-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
953
945
; CHECK-V-NEXT: vfncvt.rtz.xu.f.w v9, v8
954
- ; CHECK-V-NEXT: lui a0, 16
955
- ; CHECK-V-NEXT: addi a0, a0, -1
956
- ; CHECK-V-NEXT: vminu.vx v8, v9, a0
957
946
; CHECK-V-NEXT: vsetvli zero, zero, e16, mf4, ta, ma
958
- ; CHECK-V-NEXT: vnsrl.wi v8, v8, 0
947
+ ; CHECK-V-NEXT: csrwi vxrm, 0
948
+ ; CHECK-V-NEXT: vnclipu.wi v8, v9, 0
959
949
; CHECK-V-NEXT: ret
960
950
entry:
961
951
%conv = fptoui <2 x double > %x to <2 x i32 >
@@ -1127,11 +1117,9 @@ define <4 x i16> @utest_f32i16(<4 x float> %x) {
1127
1117
; CHECK-V: # %bb.0: # %entry
1128
1118
; CHECK-V-NEXT: vsetivli zero, 4, e32, m1, ta, ma
1129
1119
; CHECK-V-NEXT: vfcvt.rtz.xu.f.v v8, v8
1130
- ; CHECK-V-NEXT: lui a0, 16
1131
- ; CHECK-V-NEXT: addi a0, a0, -1
1132
- ; CHECK-V-NEXT: vminu.vx v8, v8, a0
1133
1120
; CHECK-V-NEXT: vsetvli zero, zero, e16, mf2, ta, ma
1134
- ; CHECK-V-NEXT: vnsrl.wi v8, v8, 0
1121
+ ; CHECK-V-NEXT: csrwi vxrm, 0
1122
+ ; CHECK-V-NEXT: vnclipu.wi v8, v8, 0
1135
1123
; CHECK-V-NEXT: ret
1136
1124
entry:
1137
1125
%conv = fptoui <4 x float > %x to <4 x i32 >
@@ -1785,11 +1773,9 @@ define <8 x i16> @utesth_f16i16(<8 x half> %x) {
1785
1773
; CHECK-V-NEXT: addi a0, sp, 16
1786
1774
; CHECK-V-NEXT: vl2r.v v10, (a0) # Unknown-size Folded Reload
1787
1775
; CHECK-V-NEXT: vslideup.vi v10, v8, 7
1788
- ; CHECK-V-NEXT: lui a0, 16
1789
- ; CHECK-V-NEXT: addi a0, a0, -1
1790
- ; CHECK-V-NEXT: vminu.vx v10, v10, a0
1791
1776
; CHECK-V-NEXT: vsetvli zero, zero, e16, m1, ta, ma
1792
- ; CHECK-V-NEXT: vnsrl.wi v8, v10, 0
1777
+ ; CHECK-V-NEXT: csrwi vxrm, 0
1778
+ ; CHECK-V-NEXT: vnclipu.wi v8, v10, 0
1793
1779
; CHECK-V-NEXT: csrr a0, vlenb
1794
1780
; CHECK-V-NEXT: slli a0, a0, 1
1795
1781
; CHECK-V-NEXT: add sp, sp, a0
@@ -3397,11 +3383,9 @@ define <2 x i32> @utest_f64i32_mm(<2 x double> %x) {
3397
3383
; CHECK-V: # %bb.0: # %entry
3398
3384
; CHECK-V-NEXT: vsetivli zero, 2, e64, m1, ta, ma
3399
3385
; CHECK-V-NEXT: vfcvt.rtz.xu.f.v v8, v8
3400
- ; CHECK-V-NEXT: li a0, -1
3401
- ; CHECK-V-NEXT: srli a0, a0, 32
3402
- ; CHECK-V-NEXT: vminu.vx v8, v8, a0
3403
3386
; CHECK-V-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
3404
- ; CHECK-V-NEXT: vnsrl.wi v8, v8, 0
3387
+ ; CHECK-V-NEXT: csrwi vxrm, 0
3388
+ ; CHECK-V-NEXT: vnclipu.wi v8, v8, 0
3405
3389
; CHECK-V-NEXT: ret
3406
3390
entry:
3407
3391
%conv = fptoui <2 x double > %x to <2 x i64 >
@@ -3565,12 +3549,8 @@ define <4 x i32> @utest_f32i32_mm(<4 x float> %x) {
3565
3549
; CHECK-V: # %bb.0: # %entry
3566
3550
; CHECK-V-NEXT: vsetivli zero, 4, e32, m1, ta, ma
3567
3551
; CHECK-V-NEXT: vfwcvt.rtz.xu.f.v v10, v8
3568
- ; CHECK-V-NEXT: li a0, -1
3569
- ; CHECK-V-NEXT: srli a0, a0, 32
3570
- ; CHECK-V-NEXT: vsetvli zero, zero, e64, m2, ta, ma
3571
- ; CHECK-V-NEXT: vminu.vx v10, v10, a0
3572
- ; CHECK-V-NEXT: vsetvli zero, zero, e32, m1, ta, ma
3573
- ; CHECK-V-NEXT: vnsrl.wi v8, v10, 0
3552
+ ; CHECK-V-NEXT: csrwi vxrm, 0
3553
+ ; CHECK-V-NEXT: vnclipu.wi v8, v10, 0
3574
3554
; CHECK-V-NEXT: ret
3575
3555
entry:
3576
3556
%conv = fptoui <4 x float > %x to <4 x i64 >
@@ -3982,11 +3962,9 @@ define <4 x i32> @utesth_f16i32_mm(<4 x half> %x) {
3982
3962
; CHECK-V-NEXT: addi a0, a0, 16
3983
3963
; CHECK-V-NEXT: vl2r.v v10, (a0) # Unknown-size Folded Reload
3984
3964
; CHECK-V-NEXT: vslideup.vi v10, v8, 3
3985
- ; CHECK-V-NEXT: li a0, -1
3986
- ; CHECK-V-NEXT: srli a0, a0, 32
3987
- ; CHECK-V-NEXT: vminu.vx v10, v10, a0
3988
3965
; CHECK-V-NEXT: vsetvli zero, zero, e32, m1, ta, ma
3989
- ; CHECK-V-NEXT: vnsrl.wi v8, v10, 0
3966
+ ; CHECK-V-NEXT: csrwi vxrm, 0
3967
+ ; CHECK-V-NEXT: vnclipu.wi v8, v10, 0
3990
3968
; CHECK-V-NEXT: csrr a0, vlenb
3991
3969
; CHECK-V-NEXT: slli a0, a0, 2
3992
3970
; CHECK-V-NEXT: add sp, sp, a0
@@ -4257,11 +4235,9 @@ define <2 x i16> @utest_f64i16_mm(<2 x double> %x) {
4257
4235
; CHECK-V: # %bb.0: # %entry
4258
4236
; CHECK-V-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
4259
4237
; CHECK-V-NEXT: vfncvt.rtz.xu.f.w v9, v8
4260
- ; CHECK-V-NEXT: lui a0, 16
4261
- ; CHECK-V-NEXT: addi a0, a0, -1
4262
- ; CHECK-V-NEXT: vminu.vx v8, v9, a0
4263
4238
; CHECK-V-NEXT: vsetvli zero, zero, e16, mf4, ta, ma
4264
- ; CHECK-V-NEXT: vnsrl.wi v8, v8, 0
4239
+ ; CHECK-V-NEXT: csrwi vxrm, 0
4240
+ ; CHECK-V-NEXT: vnclipu.wi v8, v9, 0
4265
4241
; CHECK-V-NEXT: ret
4266
4242
entry:
4267
4243
%conv = fptoui <2 x double > %x to <2 x i32 >
@@ -4428,11 +4404,9 @@ define <4 x i16> @utest_f32i16_mm(<4 x float> %x) {
4428
4404
; CHECK-V: # %bb.0: # %entry
4429
4405
; CHECK-V-NEXT: vsetivli zero, 4, e32, m1, ta, ma
4430
4406
; CHECK-V-NEXT: vfcvt.rtz.xu.f.v v8, v8
4431
- ; CHECK-V-NEXT: lui a0, 16
4432
- ; CHECK-V-NEXT: addi a0, a0, -1
4433
- ; CHECK-V-NEXT: vminu.vx v8, v8, a0
4434
4407
; CHECK-V-NEXT: vsetvli zero, zero, e16, mf2, ta, ma
4435
- ; CHECK-V-NEXT: vnsrl.wi v8, v8, 0
4408
+ ; CHECK-V-NEXT: csrwi vxrm, 0
4409
+ ; CHECK-V-NEXT: vnclipu.wi v8, v8, 0
4436
4410
; CHECK-V-NEXT: ret
4437
4411
entry:
4438
4412
%conv = fptoui <4 x float > %x to <4 x i32 >
@@ -5079,11 +5053,9 @@ define <8 x i16> @utesth_f16i16_mm(<8 x half> %x) {
5079
5053
; CHECK-V-NEXT: addi a0, sp, 16
5080
5054
; CHECK-V-NEXT: vl2r.v v10, (a0) # Unknown-size Folded Reload
5081
5055
; CHECK-V-NEXT: vslideup.vi v10, v8, 7
5082
- ; CHECK-V-NEXT: lui a0, 16
5083
- ; CHECK-V-NEXT: addi a0, a0, -1
5084
- ; CHECK-V-NEXT: vminu.vx v10, v10, a0
5085
5056
; CHECK-V-NEXT: vsetvli zero, zero, e16, m1, ta, ma
5086
- ; CHECK-V-NEXT: vnsrl.wi v8, v10, 0
5057
+ ; CHECK-V-NEXT: csrwi vxrm, 0
5058
+ ; CHECK-V-NEXT: vnclipu.wi v8, v10, 0
5087
5059
; CHECK-V-NEXT: csrr a0, vlenb
5088
5060
; CHECK-V-NEXT: slli a0, a0, 1
5089
5061
; CHECK-V-NEXT: add sp, sp, a0
0 commit comments