<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/60927>60927</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[LSR] Assertion failure: No dominance between recurrences used by one SCEV?
</td>
</tr>
<tr>
<th>Labels</th>
<td>
regression,
llvm:optimizations,
crash
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
davemgreen
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
vzakhari
</td>
</tr>
</table>
<pre>
The issue affects SPEC CPU2017/521.wrf compiled with Flang. The assertion started kicking in after https://reviews.llvm.org/D144014
This is llvm-reduce'd reproducer: [reduced.ll.gz](https://github.com/llvm/llvm-project/files/10808264/reduced.ll.gz)
I was not able to reproduce the issue with an `opt` invocation, so here is the `clang` command to reproduce: `clang -cc1 -emit-obj -O2 -x ir reduced.ll`
```
clang: /llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:744: std::optional<int> CompareSCEVComplexity(llvm::EquivalenceClasses<const llvm::SCEV*>&, llvm::EquivalenceClasses<const llvm::Value*>&, const llvm::LoopInfo*, const llvm::SCEV*, const llvm::SCEV*, llvm::DominatorTree&, unsigned int): Assertion `DT.dominates(RHead, LHead) && "No dominance between recurrences used by one SCEV?"' failed.
```
If I revert 7abe3497e72af3ddee789dfc62c63a981a25dbf6 the compilation passes.
@davemgreen can you please take a look?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVNtu4zYQ_Rr6ZWCBGt2sBz94fUEDBO1ik-47RY5sbihRJSlnk68vSHvjpF0U2AKGLXkuHJ455wjv9XEkWrPqE0NU4kzD0RGNDJFVu4WYw8m69flVPJ2E04vOqpf144lAez8TiL4nGTw8fN5vYfv5T-R5w_BQYZ49ux6kHSZtSMGzDic4GDEeM4BYLrwnF7QdwQfhAil40vJJj0fQI4g-kINTCJNnxYbhgeHB0VnTs8-MOQ-ZdUeGh11eljwvGd8xvrl8P560B-0hZi0dqVkSw0aBo8nZ-OZYsQFWfbrEVGZMdnxl1Y7h6uN5Rx1Oc5dJOzA8xHbXn-Xk7DeSgeGh14Y8w0POV3yFdZmmfN8W2_ez3cGz8DDaAKIzBMHepoLwhmhCSozAam6nwGoOejxbKSJWDLfgLZzIxexUxGouI6wxUdphEKP60Dld95oDSylzWNKgw9J232D5B8LyO2gHt7FZza8z1_z6Sa-XQ2Kzf8HwAxzdMTxsRmFevI6wPEhhhNufrZnj8JmcJlZsmrKMbXxQEepiY6cYFIYVWz0GVuxha4dJOHrY7r_GR0PfdXhhuErnpJr9X7M-C0OjpK2JTPKs2Eo7-gC3pFjPcMOKPcM6IveL9V-FmelDg39m3Fs73Y29jUk_Cf8Y4L9Dtz93dtCjCNY9OqLrkfOY5KkgYoNtRG7zphxW891jpi5lkYmrL7-RULHu_vLQQupTA0P83cIldZQEHYVnohEcydm5CISH2ZOC7gXsSJAGLA7RBLCBXkQRZz8lxpXbPdyBozO5AI3oqCjbhhoUfaEUUbNqVS9rlHUh2lUusFJdXyf-XhwisRumtIrsfV9W8pslgRQjvNgZJkPCEwTxRCDAWPvEisNCrQvVFq1Y0Dqvm4a37WpVLU7rsqvaXkgleV5zXlFbSaVEraTou3pV40KvkWPBERFzXpZVludlKxrMy6bnlSDFSk6D0ObNfBZJq-uat9gsjOjI-KuBOjo68j6JFRluGeJ1w5Hog35NV_VvQemEP1291q2Tsrr56FnJjfbhZneLoINJLn3_8IVVu3c0iNuZXVL6_9nxYnZm_cvelwCIKk8Y_B0AAP__x1386A">