[llvm] [LV] Tidy up early bail outs related to runtime checks (PR #228077)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 2 05:56:22 PDT 2026


================

----------------
fhahn wrote:

If it cannot happen we can assert.

But for this case, I think it will change behavior for something like below
```
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "arm64-apple-macosx"

define void @f(ptr %a, i64 %off, i64 %n) {
entry:
  br label %loop

loop:
  %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
  %iv.off = add i64 %iv, %off
  %p.off = getelementptr i32, ptr %a, i64 %iv.off
  %v0 = load i32, ptr %p.off
  %p0 = getelementptr i32, ptr %a, i64 %iv
  %v1 = load i16, ptr %p0
  %v1.ext = sext i16 %v1 to i32
  %s = add i32 %v0, %v1.ext
  %iv.next = add i64 %iv, 1
  %p1 = getelementptr i32, ptr %a, i64 %iv.next
  store i32 %s, ptr %p1
  %ec = icmp eq i64 %iv.next, %n
  br i1 %ec, label %exit, label %loop

exit:
  ret void
}
```

https://github.com/llvm/llvm-project/pull/228077


More information about the llvm-commits mailing list