[llvm] [SROA] Pre-split overlapping move slices within a partition (PR #210061)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 27 11:15:38 PDT 2026
nikic wrote:
Looks like this introduces an assertion failure (https://llvm.godbolt.org/z/MYd86YY15):
```llvm
define i64 @f(i64 %x, float %f) {
%a = alloca [16 x i8], align 8
store i64 %x, ptr %a, align 8
%p6 = getelementptr i8, ptr %a, i64 6
store float %f, ptr %p6, align 2
%p2 = getelementptr i8, ptr %a, i64 2
%v = load i64, ptr %a, align 8
store i64 %v, ptr %p2, align 2
%r = load i64, ptr %p2, align 2
ret i64 %r
}
```
> opt: /root/llvm-project/llvm/lib/Transforms/Scalar/SROA.cpp:5163: bool {anonymous}::SROA::presplitLoadsAndStores(llvm::AllocaInst&, {anonymous}::AllocaSlices&): Assertion `Offsets.Splits.back() == P.beginOffset() - Offsets.S->beginOffset() && "Previous split does not end where this one begins!"' failed.
AI generated test case.
https://github.com/llvm/llvm-project/pull/210061
More information about the llvm-commits
mailing list