[llvm] [LICM] Allow hoisting of InsertElementInst's past non-hoistable InsertElementInsts (PR #200532)
Devon Loehr via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 12 12:07:48 PDT 2026
DKLoehr wrote:
We've been seeing crashes building chromium that seem to be caused by this commit. The reproducer below crashes when run with `clang++ --target=arm-linux-androideabi29 -march=armv7-a -mfloat-abi=softfp -mfpu=neon -mthumb -Os -c repro.cc`. It doesn't crash if this commit is reverted.
repro.cc:
```
typedef int int8 __attribute__((vector_size(32)));
extern __attribute__((__vector_size__(8 * sizeof(int)))) int *global_out;
int test_crash_format;
void test_crash() {
int8 base;
base[6] = test_crash_format;
for (int i;; ++i) {
int8 vec = base;
vec[5] = vec[4] = i;
*global_out = vec;
}
}
```
The assertion that fails is
```
llvm/lib/CodeGen/RegisterCoalescer.cpp:2872: JoinVals::ConflictResolution (anonymous namespace)::JoinVals::analyzeValue(unsigned int, JoinVals &): Assertion `(TrackSubRegLiveness || V.RedefVNI) && "Instruction is reading nonexistent value"' failed.
```
https://github.com/llvm/llvm-project/pull/200532
More information about the llvm-commits
mailing list