[llvm] [RISCV] Fix crash when trying to remove segment (PR #146524)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 3 06:34:34 PDT 2025
================
@@ -722,3 +722,35 @@ define i64 @avl_undef2() {
%1 = tail call i64 @llvm.riscv.vsetvli(i64 poison, i64 2, i64 7)
ret i64 %1
}
+
+define i64 @vsetvli_vleff() {
+; CHECK-LABEL: vsetvli_vleff:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: vsetvli a1, zero, e16, m1, ta, ma
+; CHECK-NEXT: vmv.v.i v8, 0
+; CHECK-NEXT: .LBB37_1: # %while.body
+; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
+; CHECK-NEXT: vsetivli zero, 0, e16, m1, tu, ma
+; CHECK-NEXT: vmv1r.v v9, v8
+; CHECK-NEXT: vle16ff.v v9, (zero)
+; CHECK-NEXT: csrr a0, vl
+; CHECK-NEXT: beqz a0, .LBB37_1
+; CHECK-NEXT: # %bb.2: # %while.end
+; CHECK-NEXT: li a0, 0
+; CHECK-NEXT: ret
+entry:
+ br label %while.cond
+
+while.cond:
+ %new_vl.0 = phi i64 [ 0, %entry ], [ %1, %while.body ]
+ %cmp = icmp eq i64 %new_vl.0, 0
+ br i1 %cmp, label %while.body, label %while.end
+
+while.body:
+ %0 = tail call { <vscale x 4 x i16>, i64 } @llvm.riscv.vleff.nxv4i16.i64(<vscale x 4 x i16> zeroinitializer, ptr null, i64 0)
----------------
sc-clulzze wrote:
Addressed
https://github.com/llvm/llvm-project/pull/146524
More information about the llvm-commits
mailing list