<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/57063>57063</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            LLVM optimizer crashes processing LLVM text file
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          dlbraunpu
      </td>
    </tr>
</table>

<pre>
    I am running this version of Clang: `clang version 13.0.1 (Red Hat 13.0.1-2.module+el8.6.0+15487+86bd2a95)`
Like this:   `clang -v -O3 -S ./test.ll`

It crashes like this:

```
clang -cc1 version 13.0.1 based upon LLVM 13.0.1 default target x86_64-unknown-linux-gnu
warning: overriding the module target triple with x86_64-unknown-linux-gnu [-Woverride-module]
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: clang -v -O3 -S ./test.ll
1.      Optimizer
 #0 0x0000154fb2c7bf00 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib64/libLLVM-13.so+0xae3f00)
 #1 0x0000154fb2c79ae4 llvm::sys::RunSignalHandlers() (/lib64/libLLVM-13.so+0xae1ae4)
 #2 0x0000154fb2c7a489 llvm::sys::CleanupOnSignal(unsigned long) (/lib64/libLLVM-13.so+0xae2489)
 #3 0x0000154fb2ba47b8 (/lib64/libLLVM-13.so+0xa0c7b8)
 #4 0x0000154fbb6c4ce0 __restore_rt (/lib64/libpthread.so.0+0x12ce0)
 #5 0x0000154fb3a99d47 (/lib64/libLLVM-13.so+0x1901d47)
 #6 0x0000154fb3a9f988 (/lib64/libLLVM-13.so+0x1907988)
 #7 0x0000154fb3a48793 (/lib64/libLLVM-13.so+0x18b0793)
 #8 0x0000154fb3a4a3f2 (/lib64/libLLVM-13.so+0x18b23f2)
 #9 0x0000154fb3a4b311 llvm::InstCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/lib64/libLLVM-13.so+0x18b3311)
#10 0x0000154fb583f045 (/lib64/libLLVM-13.so+0x36a7045)
#11 0x0000154fb4d284f5 (/lib64/libLLVM-13.so+0x2b904f5)
#12 0x0000154fb2df3da8 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/lib64/libLLVM-13.so+0xc5bda8)
#13 0x0000154fb4d234c5 (/lib64/libLLVM-13.so+0x2b8b4c5)
#14 0x0000154fb2df0fd1 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/lib64/libLLVM-13.so+0xc58fd1)
#15 0x0000154fb94fc6b9 (/lib64/libclang-cpp.so.13+0x1a416b9)
#16 0x0000154fb9501b05 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/lib64/libclang-cpp.so.13+0x1a46b05)
#17 0x0000154fb981e9b9 clang::CodeGenAction::ExecuteAction() (/lib64/libclang-cpp.so.13+0x1d639b9)
#18 0x0000154fba01e851 clang::FrontendAction::Execute() (/lib64/libclang-cpp.so.13+0x2563851)
#19 0x0000154fb9fba2bb clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/lib64/libclang-cpp.so.13+0x24ff2bb)
#20 0x0000154fba09bd0f clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/lib64/libclang-cpp.so.13+0x25e0d0f)
#21 0x000055ef3ed3ea87 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang-13+0x15a87)
#22 0x000055ef3ed3b9fb (/usr/bin/clang-13+0x129fb)
#23 0x0000154fb9cccf69 (/lib64/libclang-cpp.so.13+0x2211f69)
#24 0x0000154fb2ba48d7 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/lib64/libLLVM-13.so+0xa0c8d7)
#25 0x0000154fb9ccd766 (/lib64/libclang-cpp.so.13+0x2212766)
#26 0x0000154fb9ca4bd1 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/lib64/libclang-cpp.so.13+0x21e9bd1)
#27 0x0000154fb9ca55c1 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/lib64/libclang-cpp.so.13+0x21ea5c1)
#28 0x0000154fb9cb3f34 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/lib64/libclang-cpp.so.13+0x21f8f34)
#29 0x000055ef3ed39ae1 main (/usr/bin/clang-13+0x10ae1)
#30 0x0000154fb14decf3 __libc_start_main (/lib64/libc.so.6+0x3acf3)
#31 0x000055ef3ed3b53e _start (/usr/bin/clang-13+0x1253e)
clang-13: error: clang frontend command failed with exit code 139 (use -v to see invocation)
```


Here is the input test.ll file:
```
; ModuleID = './swap_FAC1_3_tmp.ll'
source_filename = "mod_;_FT816Float_;_FAC1"

define i96 @top_function(i80 %"E___#3_", i96 %"FAC1___#3_", i96 %"FAC2___#3_", i8 %"\\state_stk[0]___#3_", i8 %"\\state_stk[1]___#3_", i8 %"\\state_stk[2]___#3_", i8 %"\\state_stk[3]___#3_", i16 %"acc___#3_", i1 %"addOrSub___#3_", i1 %"busy___#3_", i1 %"cf___#3_", i8 %"cmd___#3_", i32 %"dbo___#3_", i1 %"isFixedPoint___#3_", i1 %"isRTAR___#3_", i1 %"rdy1___#3_", i1 %"rdy2___#3_", i2 %"sign___#3_", i8 %"state___#3_", i1 %"vf___#3_", i8 %"y___#3_", i32 %"a___#0_", i24 %"ad___#0_", i352 %"b___#0_", i32 %"db___#0_", i1 %"rst___#0_", i1 %"rw___#0_", i11 %"s___#0_", i1 %"vda___#0_", i32 %"a___#1_", i24 %"ad___#1_", i352 %"b___#1_", i32 %"db___#1_", i1 %"rst___#1_", i1 %"rw___#1_", i11 %"s___#1_", i1 %"vda___#1_", i32 %"a___#2_", i24 %"ad___#2_", i352 %"b___#2_", i32 %"db___#2_", i1 %"rst___#2_", i1 %"rw___#2_", i11 %"s___#2_", i1 %"vda___#2_", i32 %"a___#3_", i24 %"ad___#3_", i352 %"b___#3_", i32 %"db___#3_", i1 %"rst___#3_", i1 %"rw___#3_", i11 %"s___#3_", i1 %"vda___#3_") {
top_bb:
  %0 = call i96 @swap_FAC1(i96 %"FAC1___#3_", i96 %"FAC2___#3_")
  %1 = alloca i96, align 8
  %2 = bitcast i96* %1 to ptr
  call void @swap_FAC1_wrapper(ptr null, ptr null, ptr null, ptr null, ptr null, ptr null, ptr null, ptr %2)
  ret i96 %0
}

; Function Attrs: noinline
define internal void @swap_FAC1_wrapper(ptr %"E___#3_ptr_", ptr %"FAC1___#3_ptr_", ptr %"FAC2___#3_ptr_", ptr %"b___#0_ptr_", ptr %"b___#1_ptr_", ptr %"b___#2_ptr_", ptr %"b___#3_ptr_", ptr %_return_val_ptr_) #0 {
wrapper_bb:
  %0 = load i96, ptr %"FAC1___#3_ptr_", align 4
  %1 = load i96, ptr %"FAC2___#3_ptr_", align 4
  %2 = call i96 @swap_FAC1(i96 %0, i96 %1)
  store i96 %2, ptr %_return_val_ptr_, align 4
  ret void
}

; Function Attrs: noinline
define internal i96 @swap_FAC1(i96 %"FAC1___#3_", i96 %"FAC2___#3_") #0 {
"bb_;_FAC1":
  ret i96 %"FAC2___#3_"
}

attributes #0 = { noinline }
```


I also get a crash from running just the "opt" command:
```
$ opt -O1 -S  ./test.ll
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.      Program arguments: opt -O1 -S ./test.ll
 #0 0x00001551799edf00 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib64/libLLVM-13.so+0xae3f00)
 #1 0x00001551799ebae4 llvm::sys::RunSignalHandlers() (/lib64/libLLVM-13.so+0xae1ae4)
 #2 0x00001551799ec615 (/lib64/libLLVM-13.so+0xae2615)
 #3 0x0000155178cfcce0 __restore_rt (/lib64/libpthread.so.0+0x12ce0)
 #4 0x000015517a80bd47 (/lib64/libLLVM-13.so+0x1901d47)
 #5 0x000015517a811988 (/lib64/libLLVM-13.so+0x1907988)
 #6 0x000015517a7ba793 (/lib64/libLLVM-13.so+0x18b0793)
 #7 0x000015517a7bc3f2 (/lib64/libLLVM-13.so+0x18b23f2)
 #8 0x000015517a7bd311 llvm::InstCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/lib64/libLLVM-13.so+0x18b3311)
 #9 0x000015517c5b1045 (/lib64/libLLVM-13.so+0x36a7045)
#10 0x000015517ba9a4f5 (/lib64/libLLVM-13.so+0x2b904f5)
#11 0x0000155179b65da8 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/lib64/libLLVM-13.so+0xc5bda8)
#12 0x000015517ba954c5 (/lib64/libLLVM-13.so+0x2b8b4c5)
#13 0x0000155179b62fd1 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/lib64/libLLVM-13.so+0xc58fd1)
#14 0x000055b6133408b1 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool) (/usr/bin/opt+0x378b1)
#15 0x000055b61332ea99 main (/usr/bin/opt+0x25a99)
#16 0x0000155178030cf3 __libc_start_main (/lib64/libc.so.6+0x3acf3)
#17 0x000055b613330c0e _start (/usr/bin/opt+0x27c0e)
Segmentation fault (core dumped)
```
I suspect the issue is related to this line from test.ll (at line 29):
`store i96 %2, ptr %_return_val_ptr_, align 4`
I comment it out, and the crash goes away

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzlWltT4zoS_jXhRZWULV9iP_AQAuywyxQUTJ19dMm2HHTGsb2yTGB__bbkSyxfSGBnz-6pnWIgcbe-vqilbqkd5vH75R0ie8SrLGPZDokXVqJXykuWZyhP0DYl2W5hbdDCNSL5uSOa1spYmWiBvScao29ENE-WeLXP4yqlC3xFU2_lrgz4ZDq2t4a_nhvGmPjOAvuAuDCuF8bmnv2kSrCUg46Slq9o-WCh5TNaLfCtoKVYpWk3qv59J1DESflCS5T2YPosckT9o7422FFkDk0JSQmWVAU8ub__7Xv7OKYJqVKBBOE7KtCb5wauvayyn1l-yJYpy6q35S6ravQD4dKP0pIc4DmLa69SVDulRRGcFfDtwMTLLCJaOFfLvzcwdNl41bmuJT3e32yeb1BZhXsmEEFhtUOcFjkH8By9CFEoR-Bb-AFaCb573a9yvoPviGQxYlmUVjFVyikfggOin4KTCKZuiwoA43lES-mUMq94_ViOJGWZR4wIIEDcoDICY8SqVutZAAiKq33RTYOxQurfI893HGINPFDtaSbUfH801Wq02Yx-KATbs39SXj-GwLMMZLwZ8A-CKwlxtA4Tw0DSTCna2pTvZf3hkbNMKMV-1NZ5RyZODkFeCk7JfoFdaSHwQnTKwAZVUha6dv1XxsQSYqLMIY6NN0ItECfjuNPHHOjjE2pP6fNUZc9sl5H0G3gzhSBUss4RaQKiJhIPRBLb86dEblNKsqp4aASDpCor4SNMYZpDvJ4lHQO4Jt3SpIfEXofeaRwDZsrTcOw-TuhGdkQNFAQc4iDnNICQHoEW4gXmLAZQtb8YbyaGQRqq00e1iO_H9vqkdqZvmMCnAbkDoMT3TpsJQGvg04DWOhBsib51GsgLAcnSgLwBELESfA4QBj4NyB8AhZZp9uLnLivFNt-HLKOPsOqbJVNl2hK6rbJIwD7arJ8jYQOR9l6y8jvJyA4WrrWdGGTdqHGn4w_Ut0C7Tn254LQdwPFgRdrOSSDLJWvg04C0pWvH2LOT00A49A3g04D0BRknVky8nku-q038R96aL726iUkBcT7t3O9NLv2Ea5shZzs2ckJQUrPCGrjDsqNz3OGFwKcB2QN3GEncjy9p_gcmfN5kJM3-7znSA_M0-7U9yLeTyA0ncFQSXEZFIbcz06rDndgmMGto2kbkO4YZGk6dQWuFb6AUuII0R7P4oRJFBYnM65GvGdllkOxYVN5kO1jTjTd6LN9gT6X8mRIevciMm2cliuCXGLNu85j-hWYnuH6oeucE0z18mmI5TsUzFEzZ7okm-uN2UjcDwMYJm2Zf2qJSxDWlytg_KhoUQp9qWQYUB84EDdpioDeoKQGDmKZU0BMDmyCcipeZeXZhGrV51vKE75nUh6gZu74xr576NxpVgrYWT9cTk_Jj1_IHcaalF2KY1HPMvvxbnmfi6N--Ap8RjR3XAmRNtJaQfJCOw1A3fV8wqJlkZiIZFHOT1s_rOrOSJ9WzkwSk99XDhu4ZP4yNRFuBtSJHLV_ziIyVGlkhI_hsr1EDpGpqtenLcWhi0diixFsjOOIEe8L0bXDDOXmX68jaRi-Et8tto0IW1pD2DB685izWtKtKLk8UEva2Vq8NJId4a00rPNBKzudJFAxMGoqWi_woihL3XE9h0wRmDc0elqxevO5tKFt5EHqikTx1vW9l5LyJY9FOEpq-a-5MmjwOtap0qfRWrZs_tweMq2HQQFPRGRgcr133bIMxMGtoes6IoMSLtbUcc_ZKeT8syWhRw_M9HFX0GB4MlAxz-_sHrJtmRaqvZ1op90M9z-L1wErHiT5t5V_zsJw3Eaj3DFScyU97kqa_0QjquLt9kUIodMmjIEzmGnWsPN8rbRb5gnMI2K45x9OdE1oJnLhmFLnufdY2s4ldbM6pf6xzznRL4oHVmlv8wfYEx3UTyQ3z5B5lAGcfSr-JMO2YRokFB1ipDJQFhIugh9tXVaro1qcSAmM00OGmHjoWRTXc6V0UeDuwjmRtEOVcHTWai5ekyY7g29rHCYG8FNcXU_SNyXiPKTIt5eeqpPKqRuSopBSxXnJr1dbv2vq_v1EOQ0p13cQyqE1Rc82DEpaqND6JYF2husi7u4Y5h_94La-IygMpgtvN1gysQOwLeVuE1_WQ-q4qkKgZ2dNmFN7ncQBowe0Pz3Rv05yI-itgALWvKVR7UBsj5sOuaxsiL4KkO-F6zDMADco1fBMEgZymQA6X90aSX1GUXh8Q8ZDoNbSFs4UfmGFVTf5cOFfGwrk-n9v8FDf-FLc1wW22RpEoGtFaUhw_8OcqnKOHVfk-R4uSOf2ifTwkWbihxWE-B8jKW_ZG48ccNpx5nqcfm6c5Ko_fR3Pbo42mtlVKXrbNGVO7eQb0ddYHI7d1HiA1xThqYXezMSRZTjsqHJGOHh2SOpNLMUs6jCgtqZwb8xqPVB8aZc4bZc4bZc4bZc4bNUE6jCgDo8ZjOqMmlGgoeN4oPG8UnjcKzxs1QTqMKAOjxmM6oyaUIKNFMDTKmjdqckHPrrhydhm3RlmzRk2stVhXHZLe-qpOCjINwFmwTVNIjjBUbomguGmTRZeWZKb4Yj7wexJMJQEEQKKVY1QHJoWtBHk9Lqy4QiYiAmWiYtvUoyFTy5uOhlVpWh9ReqoGB06KAmot7AEvyiqZS7foV36WOvYM41S0DmjT_Ppaqxgg67c3pGgjBFetogx27VTeWmlZGsoXnpHTdg2SNjxq5-JI7U_UHAP-kKHbKD-imh9S8YfUKblw-BQVz4JXkjZUv26PddHbuGImgqEYitvoOumMOvzsUZDOgkw5bAyCz1lLRm_pmL2AUm2ilvCxZ0ayZTCqS45fFYi_cisYTKMMg1ArW4-z2VtUE1BTxhGwh4VwwCsbMbJQXl915qEj_3xZfwf-LHMke9qkaSPDmeL4QsHvFWxJsuYHLfICTm-4PWrMlvyQLYATLR9M2RAed4T_k53vL3axe_qO1EVap9ox175P4_-ZTnWtT_hHdqprkZFrnm4pEYqBbabnDDhelES_pFds91GJZ4Rf7RU7OpBpfrVX7GpA65B8tVe8HgBFX-0VewOg-M_TK0ZaqxvUj5zQ_GqvWFvMIfHJV3vF-ioMXedP2SvGA3c4X-0VWwN34P-zXrHd3feFrmlZtuGFfftBSemCR1ZQVXz0FT7RHh3YUfdkv5PoReFspqj3LOSEv99lSa7ubEdceZ7WPeZblk6A_FvkGXN6vasp3rqDdaRAUg4ECKq_1eL-xmQbY57rN8pZwihv-UJJOfl3qjemih25g6xhGiffCWjmGVPi-3P3zi0KdoBp5l0AmQcNy_gFV85d47lRDUCND66cO-XWwNbhPNOdrIvUxTCqX52UbQNZocuCisZzt8V3UNKVBY3qepGVZaUujDlN1auGUNupt1NVaapqzPYCGeCJqJ9j5aReZfmlo8FRI1mrgjEICs28Eu0LkMfCcZdD9UwO5L0ecEEvTdeVc-LZ9kV8acW-5ZMLwURKL9VLpXn7GmP33mrzlqUslhWHbDmqO_GLiqeXejm7Y-KlCleglZxMGcP1nyWA_A6eg6_Kb1Cn3Tprw7UuXi6dkCSJ4-PEpCF2qO9R28A2dl1Cfdu0oouUhDQtLxfOFVTnGT3UrleXwNcX7BIbGBueaZgetg1rhQ3Di2noONS0qWlYcNShEGlpV2Vf8Eulkiy9gZiyUhxL8AvYweRrh1SJA3xSiZecX8YpbDdVVlQXSvilUv5fZNGOrw">