<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/65225>65225</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
opt -O1: Instruction does not dominate all uses!
</td>
</tr>
<tr>
<th>Labels</th>
<td>
llvm:crash,
llvm:optimizations
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
chfast
</td>
</tr>
</table>
<pre>
```llvm
define i32 @f(ptr %G.9, i64 %0) {
%A = alloca i1, align 1
%G = getelementptr i64, ptr %A, i64 -1
%u = load i8, ptr %G, align 1
%v = alloca i8, align 4
%x = load i1, ptr %v, align 4
%y = getelementptr double, ptr %G, i64 %0
store i1 %x, ptr %A, align 1
store i8 %u, ptr %G.9, align 1
store i1 false, ptr %y, align 1
ret i32 0
}
```
https://godbolt.org/z/vPoGh3YET
```
Instruction does not dominate all uses!
%v = alloca i8, align 4
%G = getelementptr i64, ptr %v, i64 -1
LLVM ERROR: Broken module found, compilation aborted!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/opt -o /app/output.s -S -passes=default<O1> <source>
#0 0x00000000034b5ac8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x34b5ac8)
#1 0x00000000034b31fc SignalHandler(int) Signals.cpp:0:0
#2 0x00007fad50536420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x00007fad4fff900b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
#4 0x00007fad4ffd8859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
#5 0x0000000000784487 (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x784487)
#6 0x0000000003405ee8 (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x3405ee8)
#7 0x0000000002e4add3 (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2e4add3)
#8 0x000000000087c49e llvm::detail::PassModel<llvm::Module, llvm::VerifierPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x87c49e)
#9 0x0000000002e108fc llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2e108fc)
#10 0x000000000088648a llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x88648a)
#11 0x000000000078f761 main (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x78f761)
#12 0x00007fad4ffda083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#13 0x000000000087b80e _start (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x87b80e)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
This is a test case reduced with `llvm-reduce`. However, I don't know how to reduce this to single pass.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcV19v4yoW_zTkBSXC4Dj2Qx4ybdJb7VRTtdVI-xRhc-ywJWAB7p_76Vdgp7Wz7e7MvX3aKk1sOOf3O384cODOyUYDrNHyG1peznjnD8auq0PNnZ-VRryuUUb6j1JPR0QuEdkIqKUGLBnFKCU1onnrLUZ0ebUoEL3AMkvDG0G0wGj1rVfCYWiDEbvEXClTcSyTIMyVbDRORkJXUagBDwqOoH0Al1kahAeezYllPtbrop4yXGCZj6SvPqZ5mtiSvwulI6GXEWYywnz6WPz1A9OF6UoF5_a8xWhQdt5YwDKJpOeuTo0fRPPo8xi3j_6Zp2_ANVdubMbrB8IWfEzrYBZaXQ4Pp0UwvMbvg_etQ2yD6A7RXWNEaZRfGNsguvsT0d3Trbk6sH9uH8ZKZ0jX2nnbVV4ajYUBh7XxWJij1NxDSA7uHDhEfztx_3sRPZ0vou_ff97g7d3djzvENvibNY-g8dGITgGuTadFUKjMsZWKR4N5aawH8Wbd7fft5n6LXVcepcccl12DLbTGeuwNPguX9IeuXFTmiOgullb_M2-t-RdUHtGddK4Lvu8w1wJLXalOAPYHwJXl7oBLXj16yytY9PT3nlePWHTHNrDEIbJApLi1prH8iLltuhCKYARGdGfawNI7BHYOL60yFmwYU1w3c-4c2OCom3vb6UdEd6XUvSKemwDB2za8d77t_MLh-T2et0HNIXYpoOad8ohd_EgQ22LELpzpbAWIbYdEIcoIJi_k9MfScsmrHMd4sA1iG_fq-odbK7WPHj4ElxHN34Usf94b5y3wI6JZTKv2cfOh-d_0E9Fv5GUwC9Hi3e7kzG6W1BW-l43m6g-uhQr4-WBGP-wWVRsyQ-L_GxAdgFY1F0uyZFlKCd7vLcTC3Vs_eKFkiejuJc_2WTpXUncv80Z3_UTrDxa4WDizINHiJE0pmdjLRjRpXdcFISW2XDr4BfwqIGcROWWElBPkdIos8nxZ9KXxe8iU5stigrwcx5is8jTNV1-V0x5tQpdNU0qWAPnXLaEIN-FbjfkopFwI9lV8A9yEL5-EM19VaQGjUhPguVRDtXHnbowAhdjFu8RN3AtDfb2P_QQrawk2aExnbi04sE8gNpqr17iLj6f7UeluuOYN2I-I2DZ-Yol3elLyJ1OyvwIatL5sc-jjOAl0MU1sQvK6GgcmBPdzA_8vozRE4S1MYQcl0_WYZ2nOR1baTodI3coWlNTTHf_eW6mbO6injn3i7wO3DfgbXh0izuaj2e-ytNy-XuvaXB9b9Z9Sxqgf8ZzbSfUByN-a_sSdjbX8NYyOExRjorpG6piksbxp_d4bM9Rwz_cP2fctn0md6vckV4aZ3_79umqKq2CyTJKzU6BeZQk-cqm_7igIkBNOenamcZIzvN-HA2vvPLd-PzLgV8-3lORswsLONuQyJ4B7_K_bnQLoG-upFfRg-xZb4GfpD9jFDiX0hffXV_fbq5-9-MVAHO4FndUggkTCiv9yKXg4SIelwxx7cB5X3AG2ILrqRDXcJOf9IMrIAv9hnuEpeHWBr7EwGtGVx4_aPOODeQ6tcy-LfcD2BjupGwU4dJqLmVgzUbCCz2CdZAVbpYyk6eywTjJRiRIoycq0zMlK0CwDKMpVkqerLKlnck0JZaQgLKEJSdMFFEvI85zkSejC8gSlBI5cqkWwN9xrZrEjX2dLSpczxUtQLl6cKR2qK_bliFJEL94HTevlUf4ZrwwuTC4vZ3YdY1B2jUMpUdJ5987ipVewjk126Jw3-JcvSbPOqvVfv2dEx_4dAAD__6q02Jk">