@@ -2585,8 +2585,7 @@ define <vscale x 1 x i9> @vp_ctlz_nxv1i9(<vscale x 1 x i9> %va, <vscale x 1 x i1
25852585; CHECK-NEXT: vrsub.vx v8, v8, a0, v0.t
25862586; CHECK-NEXT: li a0, 16
25872587; CHECK-NEXT: vminu.vx v8, v8, a0, v0.t
2588- ; CHECK-NEXT: li a0, 7
2589- ; CHECK-NEXT: vsub.vx v8, v8, a0, v0.t
2588+ ; CHECK-NEXT: vadd.vi v8, v8, -7, v0.t
25902589; CHECK-NEXT: ret
25912590;
25922591; CHECK-ZVBB-LABEL: vp_ctlz_nxv1i9:
@@ -2595,8 +2594,7 @@ define <vscale x 1 x i9> @vp_ctlz_nxv1i9(<vscale x 1 x i9> %va, <vscale x 1 x i1
25952594; CHECK-ZVBB-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
25962595; CHECK-ZVBB-NEXT: vand.vx v8, v8, a1, v0.t
25972596; CHECK-ZVBB-NEXT: vclz.v v8, v8, v0.t
2598- ; CHECK-ZVBB-NEXT: li a0, 7
2599- ; CHECK-ZVBB-NEXT: vsub.vx v8, v8, a0, v0.t
2597+ ; CHECK-ZVBB-NEXT: vadd.vi v8, v8, -7, v0.t
26002598; CHECK-ZVBB-NEXT: ret
26012599 %v = call <vscale x 1 x i9 > @llvm.vp.ctlz.nxv1i9 (<vscale x 1 x i9 > %va , i1 false , <vscale x 1 x i1 > %m , i32 %evl )
26022600 ret <vscale x 1 x i9 > %v
@@ -2744,13 +2742,12 @@ define <vscale x 1 x i9> @vp_ctlo_zero_nxv1i9_unpredicated_ctlz_with_vp_xor(<vsc
27442742; CHECK-NEXT: li a0, 142
27452743; CHECK-NEXT: vsetvli a2, zero, e16, mf4, ta, ma
27462744; CHECK-NEXT: vand.vx v8, v8, a1
2747- ; CHECK-NEXT: li a1, 16
27482745; CHECK-NEXT: vfwcvt.f.xu.v v9, v8
27492746; CHECK-NEXT: vnsrl.wi v8, v9, 23
27502747; CHECK-NEXT: vrsub.vx v8, v8, a0
2751- ; CHECK-NEXT: vminu.vx v8, v8, a1
2752- ; CHECK-NEXT: li a0, 7
2753- ; CHECK-NEXT: vsub.vx v8, v8, a0
2748+ ; CHECK-NEXT: li a0, 16
2749+ ; CHECK-NEXT: vminu.vx v8, v8, a0
2750+ ; CHECK-NEXT: vadd.vi v8, v8, -7
27542751; CHECK-NEXT: ret
27552752;
27562753; CHECK-ZVBB-LABEL: vp_ctlo_zero_nxv1i9_unpredicated_ctlz_with_vp_xor:
@@ -2761,8 +2758,7 @@ define <vscale x 1 x i9> @vp_ctlo_zero_nxv1i9_unpredicated_ctlz_with_vp_xor(<vsc
27612758; CHECK-ZVBB-NEXT: vsetvli a0, zero, e16, mf4, ta, ma
27622759; CHECK-ZVBB-NEXT: vand.vx v8, v8, a1
27632760; CHECK-ZVBB-NEXT: vclz.v v8, v8
2764- ; CHECK-ZVBB-NEXT: li a0, 7
2765- ; CHECK-ZVBB-NEXT: vsub.vx v8, v8, a0
2761+ ; CHECK-ZVBB-NEXT: vadd.vi v8, v8, -7
27662762; CHECK-ZVBB-NEXT: ret
27672763 %va.not = call <vscale x 1 x i9 > @llvm.vp.xor.nxv1i9 (<vscale x 1 x i9 > %va , <vscale x 1 x i9 > splat (i9 -1 ), <vscale x 1 x i1 > %m , i32 %evl )
27682764 %v = call <vscale x 1 x i9 > @llvm.ctlz (<vscale x 1 x i9 > %va.not , i1 false )
0 commit comments