Closed regehr closed 3 months ago
here's another one that looks like it's probably a symptom of the same underlying issue
we start with this IR:
define i32 @f(ptr %0) {
%2 = load i1, ptr %0, align 1
%3 = load i32, ptr %0, align 4
ret i32 %3
}
the backend removes the dead load and we lift the ARM to:
define i32 @f(ptr %0) local_unnamed_addr {
arm_tv_entry:
%a3_1 = load i32, ptr %0, align 1
ret i32 %a3_1
}
and this fails with a Value Mismatch
ok CE is updated so I can link to this stuff now https://alive2.llvm.org/ce/z/k8zarP
here's src:
the aarch64 backend lowers this to:
this seems OK. we lift it to:
which also seems ok? but then we get a value mismatch from Alive I'll need to update the version in Compiler Explorer before I can link to this example