@@ -529,16 +529,15 @@ define void @ctlz_v2i64(ptr %x, ptr %y) nounwind {
529
529
;
530
530
; LMULMAX2-RV32F-LABEL: ctlz_v2i64:
531
531
; LMULMAX2-RV32F: # %bb.0:
532
- ; LMULMAX2-RV32F-NEXT: vsetivli zero, 2, e32, mf2 , ta, ma
532
+ ; LMULMAX2-RV32F-NEXT: vsetivli zero, 2, e64, m1 , ta, ma
533
533
; LMULMAX2-RV32F-NEXT: vle64.v v8, (a0)
534
- ; LMULMAX2-RV32F-NEXT: fsrmi a1, 1
535
- ; LMULMAX2-RV32F-NEXT: vfncvt.f.xu.w v9, v8
536
- ; LMULMAX2-RV32F-NEXT: fsrm a1
537
- ; LMULMAX2-RV32F-NEXT: vsrl.vi v8, v9, 23
538
534
; LMULMAX2-RV32F-NEXT: li a1, 190
539
- ; LMULMAX2-RV32F-NEXT: vsetvli zero, zero, e64, m1, ta, ma
540
535
; LMULMAX2-RV32F-NEXT: vmv.v.x v9, a1
536
+ ; LMULMAX2-RV32F-NEXT: fsrmi a1, 1
541
537
; LMULMAX2-RV32F-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
538
+ ; LMULMAX2-RV32F-NEXT: vfncvt.f.xu.w v10, v8
539
+ ; LMULMAX2-RV32F-NEXT: fsrm a1
540
+ ; LMULMAX2-RV32F-NEXT: vsrl.vi v8, v10, 23
542
541
; LMULMAX2-RV32F-NEXT: vwsubu.wv v9, v9, v8
543
542
; LMULMAX2-RV32F-NEXT: li a1, 64
544
543
; LMULMAX2-RV32F-NEXT: vsetvli zero, zero, e64, m1, ta, ma
@@ -550,12 +549,12 @@ define void @ctlz_v2i64(ptr %x, ptr %y) nounwind {
550
549
; LMULMAX2-RV64F: # %bb.0:
551
550
; LMULMAX2-RV64F-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
552
551
; LMULMAX2-RV64F-NEXT: vle64.v v8, (a0)
553
- ; LMULMAX2-RV64F-NEXT: fsrmi a1, 1
554
- ; LMULMAX2-RV64F-NEXT: vfncvt.f.xu.w v9, v8
555
- ; LMULMAX2-RV64F-NEXT: fsrm a1
556
- ; LMULMAX2-RV64F-NEXT: vsrl.vi v8, v9, 23
557
552
; LMULMAX2-RV64F-NEXT: li a1, 190
558
553
; LMULMAX2-RV64F-NEXT: vmv.v.x v9, a1
554
+ ; LMULMAX2-RV64F-NEXT: fsrmi a1, 1
555
+ ; LMULMAX2-RV64F-NEXT: vfncvt.f.xu.w v10, v8
556
+ ; LMULMAX2-RV64F-NEXT: fsrm a1
557
+ ; LMULMAX2-RV64F-NEXT: vsrl.vi v8, v10, 23
559
558
; LMULMAX2-RV64F-NEXT: vwsubu.vv v10, v9, v8
560
559
; LMULMAX2-RV64F-NEXT: li a1, 64
561
560
; LMULMAX2-RV64F-NEXT: vsetvli zero, zero, e64, m1, ta, ma
@@ -1129,16 +1128,15 @@ define void @ctlz_v4i64(ptr %x, ptr %y) nounwind {
1129
1128
;
1130
1129
; LMULMAX2-RV32F-LABEL: ctlz_v4i64:
1131
1130
; LMULMAX2-RV32F: # %bb.0:
1132
- ; LMULMAX2-RV32F-NEXT: vsetivli zero, 4, e32, m1 , ta, ma
1131
+ ; LMULMAX2-RV32F-NEXT: vsetivli zero, 4, e64, m2 , ta, ma
1133
1132
; LMULMAX2-RV32F-NEXT: vle64.v v8, (a0)
1134
- ; LMULMAX2-RV32F-NEXT: fsrmi a1, 1
1135
- ; LMULMAX2-RV32F-NEXT: vfncvt.f.xu.w v10, v8
1136
- ; LMULMAX2-RV32F-NEXT: fsrm a1
1137
- ; LMULMAX2-RV32F-NEXT: vsrl.vi v8, v10, 23
1138
1133
; LMULMAX2-RV32F-NEXT: li a1, 190
1139
- ; LMULMAX2-RV32F-NEXT: vsetvli zero, zero, e64, m2, ta, ma
1140
1134
; LMULMAX2-RV32F-NEXT: vmv.v.x v10, a1
1135
+ ; LMULMAX2-RV32F-NEXT: fsrmi a1, 1
1141
1136
; LMULMAX2-RV32F-NEXT: vsetvli zero, zero, e32, m1, ta, ma
1137
+ ; LMULMAX2-RV32F-NEXT: vfncvt.f.xu.w v12, v8
1138
+ ; LMULMAX2-RV32F-NEXT: fsrm a1
1139
+ ; LMULMAX2-RV32F-NEXT: vsrl.vi v8, v12, 23
1142
1140
; LMULMAX2-RV32F-NEXT: vwsubu.wv v10, v10, v8
1143
1141
; LMULMAX2-RV32F-NEXT: li a1, 64
1144
1142
; LMULMAX2-RV32F-NEXT: vsetvli zero, zero, e64, m2, ta, ma
@@ -1150,16 +1148,16 @@ define void @ctlz_v4i64(ptr %x, ptr %y) nounwind {
1150
1148
; LMULMAX2-RV64F: # %bb.0:
1151
1149
; LMULMAX2-RV64F-NEXT: vsetivli zero, 4, e32, m1, ta, ma
1152
1150
; LMULMAX2-RV64F-NEXT: vle64.v v8, (a0)
1151
+ ; LMULMAX2-RV64F-NEXT: li a1, 190
1152
+ ; LMULMAX2-RV64F-NEXT: vmv.v.x v10, a1
1153
1153
; LMULMAX2-RV64F-NEXT: fsrmi a1, 1
1154
- ; LMULMAX2-RV64F-NEXT: vfncvt.f.xu.w v10 , v8
1154
+ ; LMULMAX2-RV64F-NEXT: vfncvt.f.xu.w v11 , v8
1155
1155
; LMULMAX2-RV64F-NEXT: fsrm a1
1156
- ; LMULMAX2-RV64F-NEXT: vsrl.vi v8, v10, 23
1157
- ; LMULMAX2-RV64F-NEXT: li a1, 190
1158
- ; LMULMAX2-RV64F-NEXT: vmv.v.x v9, a1
1159
- ; LMULMAX2-RV64F-NEXT: vwsubu.vv v10, v9, v8
1156
+ ; LMULMAX2-RV64F-NEXT: vsrl.vi v8, v11, 23
1157
+ ; LMULMAX2-RV64F-NEXT: vwsubu.vv v12, v10, v8
1160
1158
; LMULMAX2-RV64F-NEXT: li a1, 64
1161
1159
; LMULMAX2-RV64F-NEXT: vsetvli zero, zero, e64, m2, ta, ma
1162
- ; LMULMAX2-RV64F-NEXT: vminu.vx v8, v10 , a1
1160
+ ; LMULMAX2-RV64F-NEXT: vminu.vx v8, v12 , a1
1163
1161
; LMULMAX2-RV64F-NEXT: vse64.v v8, (a0)
1164
1162
; LMULMAX2-RV64F-NEXT: ret
1165
1163
;
@@ -1716,16 +1714,15 @@ define void @ctlz_zero_undef_v2i64(ptr %x, ptr %y) nounwind {
1716
1714
;
1717
1715
; LMULMAX2-RV32F-LABEL: ctlz_zero_undef_v2i64:
1718
1716
; LMULMAX2-RV32F: # %bb.0:
1719
- ; LMULMAX2-RV32F-NEXT: vsetivli zero, 2, e32, mf2 , ta, ma
1717
+ ; LMULMAX2-RV32F-NEXT: vsetivli zero, 2, e64, m1 , ta, ma
1720
1718
; LMULMAX2-RV32F-NEXT: vle64.v v8, (a0)
1721
- ; LMULMAX2-RV32F-NEXT: fsrmi a1, 1
1722
- ; LMULMAX2-RV32F-NEXT: vfncvt.f.xu.w v9, v8
1723
- ; LMULMAX2-RV32F-NEXT: fsrm a1
1724
- ; LMULMAX2-RV32F-NEXT: vsrl.vi v8, v9, 23
1725
1719
; LMULMAX2-RV32F-NEXT: li a1, 190
1726
- ; LMULMAX2-RV32F-NEXT: vsetvli zero, zero, e64, m1, ta, ma
1727
1720
; LMULMAX2-RV32F-NEXT: vmv.v.x v9, a1
1721
+ ; LMULMAX2-RV32F-NEXT: fsrmi a1, 1
1728
1722
; LMULMAX2-RV32F-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
1723
+ ; LMULMAX2-RV32F-NEXT: vfncvt.f.xu.w v10, v8
1724
+ ; LMULMAX2-RV32F-NEXT: fsrm a1
1725
+ ; LMULMAX2-RV32F-NEXT: vsrl.vi v8, v10, 23
1729
1726
; LMULMAX2-RV32F-NEXT: vwsubu.wv v9, v9, v8
1730
1727
; LMULMAX2-RV32F-NEXT: vse64.v v9, (a0)
1731
1728
; LMULMAX2-RV32F-NEXT: ret
@@ -1734,12 +1731,12 @@ define void @ctlz_zero_undef_v2i64(ptr %x, ptr %y) nounwind {
1734
1731
; LMULMAX2-RV64F: # %bb.0:
1735
1732
; LMULMAX2-RV64F-NEXT: vsetivli zero, 2, e32, mf2, ta, ma
1736
1733
; LMULMAX2-RV64F-NEXT: vle64.v v8, (a0)
1737
- ; LMULMAX2-RV64F-NEXT: fsrmi a1, 1
1738
- ; LMULMAX2-RV64F-NEXT: vfncvt.f.xu.w v9, v8
1739
- ; LMULMAX2-RV64F-NEXT: fsrm a1
1740
- ; LMULMAX2-RV64F-NEXT: vsrl.vi v8, v9, 23
1741
1734
; LMULMAX2-RV64F-NEXT: li a1, 190
1742
1735
; LMULMAX2-RV64F-NEXT: vmv.v.x v9, a1
1736
+ ; LMULMAX2-RV64F-NEXT: fsrmi a1, 1
1737
+ ; LMULMAX2-RV64F-NEXT: vfncvt.f.xu.w v10, v8
1738
+ ; LMULMAX2-RV64F-NEXT: fsrm a1
1739
+ ; LMULMAX2-RV64F-NEXT: vsrl.vi v8, v10, 23
1743
1740
; LMULMAX2-RV64F-NEXT: vwsubu.vv v10, v9, v8
1744
1741
; LMULMAX2-RV64F-NEXT: vse64.v v10, (a0)
1745
1742
; LMULMAX2-RV64F-NEXT: ret
@@ -2286,16 +2283,15 @@ define void @ctlz_zero_undef_v4i64(ptr %x, ptr %y) nounwind {
2286
2283
;
2287
2284
; LMULMAX2-RV32F-LABEL: ctlz_zero_undef_v4i64:
2288
2285
; LMULMAX2-RV32F: # %bb.0:
2289
- ; LMULMAX2-RV32F-NEXT: vsetivli zero, 4, e32, m1 , ta, ma
2286
+ ; LMULMAX2-RV32F-NEXT: vsetivli zero, 4, e64, m2 , ta, ma
2290
2287
; LMULMAX2-RV32F-NEXT: vle64.v v8, (a0)
2291
- ; LMULMAX2-RV32F-NEXT: fsrmi a1, 1
2292
- ; LMULMAX2-RV32F-NEXT: vfncvt.f.xu.w v10, v8
2293
- ; LMULMAX2-RV32F-NEXT: fsrm a1
2294
- ; LMULMAX2-RV32F-NEXT: vsrl.vi v8, v10, 23
2295
2288
; LMULMAX2-RV32F-NEXT: li a1, 190
2296
- ; LMULMAX2-RV32F-NEXT: vsetvli zero, zero, e64, m2, ta, ma
2297
2289
; LMULMAX2-RV32F-NEXT: vmv.v.x v10, a1
2290
+ ; LMULMAX2-RV32F-NEXT: fsrmi a1, 1
2298
2291
; LMULMAX2-RV32F-NEXT: vsetvli zero, zero, e32, m1, ta, ma
2292
+ ; LMULMAX2-RV32F-NEXT: vfncvt.f.xu.w v12, v8
2293
+ ; LMULMAX2-RV32F-NEXT: fsrm a1
2294
+ ; LMULMAX2-RV32F-NEXT: vsrl.vi v8, v12, 23
2299
2295
; LMULMAX2-RV32F-NEXT: vwsubu.wv v10, v10, v8
2300
2296
; LMULMAX2-RV32F-NEXT: vse64.v v10, (a0)
2301
2297
; LMULMAX2-RV32F-NEXT: ret
@@ -2304,14 +2300,14 @@ define void @ctlz_zero_undef_v4i64(ptr %x, ptr %y) nounwind {
2304
2300
; LMULMAX2-RV64F: # %bb.0:
2305
2301
; LMULMAX2-RV64F-NEXT: vsetivli zero, 4, e32, m1, ta, ma
2306
2302
; LMULMAX2-RV64F-NEXT: vle64.v v8, (a0)
2303
+ ; LMULMAX2-RV64F-NEXT: li a1, 190
2304
+ ; LMULMAX2-RV64F-NEXT: vmv.v.x v10, a1
2307
2305
; LMULMAX2-RV64F-NEXT: fsrmi a1, 1
2308
- ; LMULMAX2-RV64F-NEXT: vfncvt.f.xu.w v10 , v8
2306
+ ; LMULMAX2-RV64F-NEXT: vfncvt.f.xu.w v11 , v8
2309
2307
; LMULMAX2-RV64F-NEXT: fsrm a1
2310
- ; LMULMAX2-RV64F-NEXT: vsrl.vi v8, v10, 23
2311
- ; LMULMAX2-RV64F-NEXT: li a1, 190
2312
- ; LMULMAX2-RV64F-NEXT: vmv.v.x v9, a1
2313
- ; LMULMAX2-RV64F-NEXT: vwsubu.vv v10, v9, v8
2314
- ; LMULMAX2-RV64F-NEXT: vse64.v v10, (a0)
2308
+ ; LMULMAX2-RV64F-NEXT: vsrl.vi v8, v11, 23
2309
+ ; LMULMAX2-RV64F-NEXT: vwsubu.vv v12, v10, v8
2310
+ ; LMULMAX2-RV64F-NEXT: vse64.v v12, (a0)
2315
2311
; LMULMAX2-RV64F-NEXT: ret
2316
2312
;
2317
2313
; LMULMAX2-RV32D-LABEL: ctlz_zero_undef_v4i64:
0 commit comments