Skip to content

Commit 0565df3

Browse files
committed
[RISCV] update fpclamptosat_vec.ll
1 parent 54a59e0 commit 0565df3

File tree

1 file changed

+24
-52
lines changed

1 file changed

+24
-52
lines changed

llvm/test/CodeGen/RISCV/rvv/fpclamptosat_vec.ll

Lines changed: 24 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,9 @@ define <2 x i32> @utest_f64i32(<2 x double> %x) {
7676
; CHECK-V: # %bb.0: # %entry
7777
; CHECK-V-NEXT: vsetivli zero, 2, e64, m1, ta, ma
7878
; 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
8279
; 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
8482
; CHECK-V-NEXT: ret
8583
entry:
8684
%conv = fptoui <2 x double> %x to <2 x i64>
@@ -249,12 +247,8 @@ define <4 x i32> @utest_f32i32(<4 x float> %x) {
249247
; CHECK-V: # %bb.0: # %entry
250248
; CHECK-V-NEXT: vsetivli zero, 4, e32, m1, ta, ma
251249
; 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
258252
; CHECK-V-NEXT: ret
259253
entry:
260254
%conv = fptoui <4 x float> %x to <4 x i64>
@@ -671,11 +665,9 @@ define <4 x i32> @utesth_f16i32(<4 x half> %x) {
671665
; CHECK-V-NEXT: addi a0, a0, 16
672666
; CHECK-V-NEXT: vl2r.v v10, (a0) # Unknown-size Folded Reload
673667
; 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
677668
; 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
679671
; CHECK-V-NEXT: csrr a0, vlenb
680672
; CHECK-V-NEXT: slli a0, a0, 2
681673
; CHECK-V-NEXT: add sp, sp, a0
@@ -951,11 +943,9 @@ define <2 x i16> @utest_f64i16(<2 x double> %x) {
951943
; CHECK-V: # %bb.0: # %entry
952944
; CHECK-V-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
953945
; 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
957946
; 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
959949
; CHECK-V-NEXT: ret
960950
entry:
961951
%conv = fptoui <2 x double> %x to <2 x i32>
@@ -1127,11 +1117,9 @@ define <4 x i16> @utest_f32i16(<4 x float> %x) {
11271117
; CHECK-V: # %bb.0: # %entry
11281118
; CHECK-V-NEXT: vsetivli zero, 4, e32, m1, ta, ma
11291119
; 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
11331120
; 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
11351123
; CHECK-V-NEXT: ret
11361124
entry:
11371125
%conv = fptoui <4 x float> %x to <4 x i32>
@@ -1785,11 +1773,9 @@ define <8 x i16> @utesth_f16i16(<8 x half> %x) {
17851773
; CHECK-V-NEXT: addi a0, sp, 16
17861774
; CHECK-V-NEXT: vl2r.v v10, (a0) # Unknown-size Folded Reload
17871775
; 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
17911776
; 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
17931779
; CHECK-V-NEXT: csrr a0, vlenb
17941780
; CHECK-V-NEXT: slli a0, a0, 1
17951781
; CHECK-V-NEXT: add sp, sp, a0
@@ -3397,11 +3383,9 @@ define <2 x i32> @utest_f64i32_mm(<2 x double> %x) {
33973383
; CHECK-V: # %bb.0: # %entry
33983384
; CHECK-V-NEXT: vsetivli zero, 2, e64, m1, ta, ma
33993385
; 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
34033386
; 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
34053389
; CHECK-V-NEXT: ret
34063390
entry:
34073391
%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) {
35653549
; CHECK-V: # %bb.0: # %entry
35663550
; CHECK-V-NEXT: vsetivli zero, 4, e32, m1, ta, ma
35673551
; 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
35743554
; CHECK-V-NEXT: ret
35753555
entry:
35763556
%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) {
39823962
; CHECK-V-NEXT: addi a0, a0, 16
39833963
; CHECK-V-NEXT: vl2r.v v10, (a0) # Unknown-size Folded Reload
39843964
; 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
39883965
; 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
39903968
; CHECK-V-NEXT: csrr a0, vlenb
39913969
; CHECK-V-NEXT: slli a0, a0, 2
39923970
; CHECK-V-NEXT: add sp, sp, a0
@@ -4257,11 +4235,9 @@ define <2 x i16> @utest_f64i16_mm(<2 x double> %x) {
42574235
; CHECK-V: # %bb.0: # %entry
42584236
; CHECK-V-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
42594237
; 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
42634238
; 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
42654241
; CHECK-V-NEXT: ret
42664242
entry:
42674243
%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) {
44284404
; CHECK-V: # %bb.0: # %entry
44294405
; CHECK-V-NEXT: vsetivli zero, 4, e32, m1, ta, ma
44304406
; 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
44344407
; 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
44364410
; CHECK-V-NEXT: ret
44374411
entry:
44384412
%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) {
50795053
; CHECK-V-NEXT: addi a0, sp, 16
50805054
; CHECK-V-NEXT: vl2r.v v10, (a0) # Unknown-size Folded Reload
50815055
; 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
50855056
; 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
50875059
; CHECK-V-NEXT: csrr a0, vlenb
50885060
; CHECK-V-NEXT: slli a0, a0, 1
50895061
; CHECK-V-NEXT: add sp, sp, a0

0 commit comments

Comments
 (0)