<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/148364>148364</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
LoopLoadElimination crash
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sjoerdmeijer
</td>
</tr>
</table>
<pre>
Compiling this:
```
#include <algorithm>
extern char a;
unsigned short e;
long b;
short *c, *d;
void fn1(short f[][3], int g[][3], short h[][3]) {
for (int i; i < 3ULL; i += 5ULL)
for (int k; c[i]; k += 2)
#pragma clang loop vectorize_predicate(enable)
for (int j(((4 ? c[2] : 0) || d[i]) - 1); j < -108 - 18446744073709551485;
j += 3) {
a = 0 != f[1][j];
b = g[1][k] = std::min(e, (unsigned short)h[2][k]);
}
}
```
results in a compiler crash, see: https://godbolt.org/z/Eb8orbbvb
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -fno-verbose-asm -S -target aarch64-linux-gnu --gcc-toolchain=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu --sysroot=/opt/compiler-explorer/arm64/gcc-12.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot -fcolor-diagnostics -fno-crash-diagnostics -Ofast -mcpu=grace <source>
1. <eof> parser at end of file
2. Optimizer
3. Running pass "function<eager-inv>(float2int,lower-constant-intrinsics,chr,loop(loop-rotate<header-duplication;no-prepare-for-lto>,loop-deletion),loop-distribute,inject-tli-mappings,loop-vectorize<no-interleave-forced-only;no-vectorize-forced-only;>,infer-alignment,loop-load-elim,instcombine<max-iterations=1;no-verify-fixpoint>,simplifycfg<bonus-inst-threshold=1;forward-switch-cond;switch-range-to-icmp;switch-to-lookup;no-keep-loops;hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,slp-vectorizer,vector-combine,instcombine<max-iterations=1;no-verify-fixpoint>,loop-unroll<O3>,transform-warning,sroa<preserve-cfg>,infer-alignment,instcombine<max-iterations=1;no-verify-fixpoint>,loop-mssa(licm<allowspeculation>),alignment-from-assumptions,loop-sink,instsimplify,div-rem-pairs,tailcallelim,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;hoist-loads-stores-with-cond-faulting;no-sink-common-insts;speculate-blocks;simplify-cond-branch;speculate-unpredictables>)" on module "<source>"
4. Running pass "loop-load-elim" on function "_Z3fn1PA3_sPA3_iS0_"
#0 0x0000000003c7a1b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c7a1b8)
#1 0x0000000003c77b8c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c77b8c)
#2 0x0000000003bc7eb8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00007d6841c42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x0000000002c5d25e simplifyInstructionWithOperands(llvm::Instruction*, llvm::ArrayRef<llvm::Value*>, llvm::SimplifyQuery const&, unsigned int) InstructionSimplify.cpp:0:0
#5 0x0000000002c5d96f llvm::simplifyInstruction(llvm::Instruction*, llvm::SimplifyQuery const&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x2c5d96f)
#6 0x0000000003d92158 simplifyOneLoop(llvm::Loop*, llvm::SmallVectorImpl<llvm::Loop*>&, llvm::DominatorTree*, llvm::LoopInfo*, llvm::ScalarEvolution*, llvm::AssumptionCache*, llvm::MemorySSAUpdater*, bool) LoopSimplify.cpp:0:0
#7 0x0000000003d936f0 llvm::simplifyLoop(llvm::Loop*, llvm::DominatorTree*, llvm::LoopInfo*, llvm::ScalarEvolution*, llvm::AssumptionCache*, llvm::MemorySSAUpdater*, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3d936f0)
#8 0x0000000007c39147 eliminateLoadsAcrossLoops(llvm::Function&, llvm::LoopInfo&, llvm::DominatorTree&, llvm::BlockFrequencyInfo*, llvm::ProfileSummaryInfo*, llvm::ScalarEvolution*, llvm::AssumptionCache*, llvm::LoopAccessInfoManager&) (.isra.0) LoopLoadElimination.cpp:0:0
#9 0x0000000007c39dcb llvm::LoopLoadEliminationPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x7c39dcb)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMWEtv4zgS_jXMhaAhUZYtH3ywnRg7QA-SnczMAnsJKIqSmFCktkg5cf_6RekRP5Lt7Z3uwxpObJeKVV999fEhCe91ZZVak3RL0tsb0YXawdo_OwVFo_SzgpvcFcf1zjWtNtpWNNTak2RDoum9iMZ3tCE80VaarlCUJDthKgc61A1J7ki0UW9BgaWyFkAFSbYk2nS2T19QXzsIVA1W42xF8-H7cIHwjSR8h5_FYD84XdDSxoRng0s5VEDSbYIffEe1DbT6YB286yv7ipIlhqW0dEAJz3CwJsmWaqyEJn98-TL-4luS3NIUDXzVD7kY9IJukqRbjYGTLX2ZhvDBn_CkBVE1gkojbEWNcy09KBkc6K_qqQVVaCmCIjxTVuRGndJcJHomPBvec0qSfZ-Tk_SWkmRDo6GkHVnuaDGB4SvKaIzhki197uticZShMZvPF8v5PFomy2iVpvE8Swee6en1PBWSnPM1vATFCxElPMYv2Ix44Pd5oOHMN-99q5PLy4D6lvpQoLKSTaMtlj-0PLtUCeGreix1HDtUhBnI8hYZHv6f6zLagPKdCZ5qSwWVvZoVUAnC170slELe6hDaXt18T_i-ckXuTJg5qAjffyV8f5dnDvL8kH_U_sOXu83jHfVd3uhABc27ioJqUW3BXQfWoe7ymXQN4XtjDtMHa8E9KxkI32vvO-UJ31NhCzrNqlCrATPNhXwJIGRPUguqBSeV98iS62Aw40jhvZNaBFVQ6Cz1EnQbZiTaPAYhX2jRNe0wm6MZiVYP4CoQDRVQdY2yASFTwveuRUwTbUy9tcaBArShiFmAzr4Qvs-xcYMNxcK3lFXFq4CSzSmrKHMYTLQthuxC24WZp6y0jh0U5M4rJnxD2SNlQUClAhUCZL2YM6Nt98Yq21HGKilZcM7IWmhLkttvwhPQLObIuJQs5jM-i9A4Ru3si3Wv9iK6P3pwLvzcuP_l2piTslI644AVWlTW-aDlyE7f8kvzfSl8oKyRbUeS2wqVgDN6bH6_4MbYUZLslCtJckdbAV4BFYEqW1BX0lIbRaINR7f7NuhGf1VAok2Cht86a3G5b4X3lHBedlYG7SzGE5UCpu0B0_CsNE4Erm0gfGfcqwImnfVB2MC0DaCt19ITvpM19B6uJTzDDwYu4EKX7GolCgWs6FqDa1-fZmsdQ10LUKx0wExwfb4-AiuUUb0fX72btA-g8w6Xzp22OI9YMJo1om21rfzk977WkmRnHWJUYJQ49GmkKpiz5jjkf3e9ujQA0bZUwITRlcW5MsU3ThRMGd30Lj5I1-TaYrZGvDEdFPQVepLcxlMa0OWRlfqtdchjH93rpjW6PMqyIskud7bzDMOxUIPytTPFGKB08CqgYP5VB1kj-bhHjr9A2Eqx4JiWONEnc3DMOPfStQOAF6UQt8Mlals77QOTrmmc7TP6wWmwY3We-eBAefaqw5CQlaIzQdsKU2j7cj3ct0p2RgTFcuPkS28a6xvG5yCsrIdEJ-fODtthwH3Qj7yYsxaiooYfbKL5h0jvG9hZcMaQZHefDNYAwvrSQcNeBeCsQBjgBEl2LSiv4KBY36bPVfGjeBrvBU4ZLZv-VGXc60RRP1PuhknwnpKV4BomvO-adkgyBsLOjHgm9gnfFfrAQDWsFRrQNQhtpDBmlPB369A69j9JETv9UY0XUnxX3ZWcvleKmOKH1PhNKa4I59RZ2riiMwoXyYsFmHMSbeafraXXy0QfZVpg0eHpn0lp44dN8uTxn36MnoZwlPAkotFbNL0SuRRxntH-ENGfnfzRD18eQNvQ7_K_D-eE7OQE4vXJ-QBKNIQvxtNyf6zDE-Vf3-4J30ZvI6bx3Ep4El8hXuaZ_Azxzihhu_bePurKCnN-9MN7gp-IDxGc8PELfLlcqjyjO9xzf1PSHRQcB0B_E7YwmCYb2brw2Tkb1FuYyRZPVFH_N8RPxvjLYpHNYznnKY_GSozOCd-_ZYun81POcEHOvJstesj9kBPg-TlgLtOCp4pOEv7F-gBdr6V_6FDftwqELfxF_898CN9g_0_XNgDi-JsqSbI7Gf8UplPo2i9LZ96PY9a_dwqOtN_5R0W9924k6yznNOgTrtLr0laL8lwrH4v87sL-E9Sfo6oR66lJiwtVFSsep9l7k-6t-jKehN7xDYZr0I0w5s9-i_ulac1FU6YB2JPF5bBb12grgoPfQakPQXHgL7Z0H7NJYQTcHZzpPtfG-6ayE7L-GPhX1Tg4Pj5u_mgLEZC73iF3ziDPmPcbvV9eMZYsyuiT3n8fcf-fDPyU9Wtg5qS07Jy3pUxW8XxJcWtBAtQX3CY3Epz3X_p99Zy6_XSsvxbQiaBvK-vq6hY31D2of3XKyuOnDD-AwzuPx65pBHzu8qNNQPAbiffDGP5XYfGO5TTXZ9qDmEWTIpGgu5Et7ewnwlxdE1zI_CrdVZAH4cdNDTr7fYxvrDBHr_0E93ymvw8ap_rPEdJYyfhcanqWcVOsUWErcaPW8TLlCY85T27qdV4WUmY5X6W5nAu-nKukWC0zkeZptMii1Y1e84in0TLmcZwm82SWxikvuIzTeZyoMi7IPFKN0GaGlc0cVDf9Y451PM-SxfzGiFwZ3z-L5NyqV9pfxZNPensD6_4JSd5Vnswjo33wpzBBB6PWn_RheFpy04FZ__VHMCO8w5r_OwAA__--abpc">