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

    <tr>
        <th>Summary</th>
        <td>
            InstCombine fails on assert in optimizeExp2 function
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            tools:opt,
            llvm:instcombine
      </td>
    </tr>

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

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

<pre>
    The following assert fails:
```
sext source and destination must both be a vector or neither
  %1 = sext <2 x i8> %0 to i32
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-15.0.0/bin/opt -o /app/output.s -S -passes=instcombine <source>
 #0 0x0000561e4267fac4 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x0000561e4267d324 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007fd794fbb420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007fd794a8800b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #4 0x00007fd794a67859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #5 0x0000561e3fdbd797 llvm::DisplayGraph(llvm::StringRef, bool, llvm::GraphProgram::Name) (.cold) GraphWriter.cpp:0:0
 #6 0x0000561e425c045e (/opt/compiler-explorer/clang-15.0.0/bin/opt+0x31ca45e)
 #7 0x0000561e41e49edc (/opt/compiler-explorer/clang-15.0.0/bin/opt+0x2a53edc)
 #8 0x0000561e3fe9c026 llvm::detail::PassModel<llvm::Module, llvm::VerifierPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-15.0.0/bin/opt+0xaa6026)
 #9 0x0000561e41e0e122 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-15.0.0/bin/opt+0x2a18122)
#10 0x0000561e3fea6b0f llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool) (/opt/compiler-explorer/clang-15.0.0/bin/opt+0xab0b0f)
#11 0x0000561e3fdd494c main (/opt/compiler-explorer/clang-15.0.0/bin/opt+0x9de94c)
#12 0x00007fd794a69083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#13 0x0000561e3fe9a04e _start (/opt/compiler-explorer/clang-15.0.0/bin/opt+0xaa404e)
Compiler returned: 139
```

https://godbolt.org/z/7aMPq45zK

Command: opt -S -passes=instcombine fail.ll
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcV01z4ygT_jX4QtmFAH0dfPA49vtOTbLjSqZmjy4k2jI7CLSAss78-i2kZGxlkpqP3LZKtiS6ebr76QZawnvVGIAlSt-h9Gom-nC0bikeWmHa3otZZeXD8tMR8MFqbf9RpsHCe3ABH4TSHrEVIleIrFBGHq_h1cMpYG97VwMWRmIJPigjgrIGt70PuLLhiCvAAt9DHazD1mEDKhzBjQgYI5omGLErPIAhtqb4hFWB2CaKCA4WK0ZH7evrzzd4c3v78RaxFX7n7BcwuLWy19Hz3khE17i2baf06ISorAsgEU1GgN31ZnW3wb6vWhWwwFXfYAeddSHaOYbQDbHSLaLbRoVjXy1q2yK61fr-6TbvnP0L6oDoVnnfg0d0O0SvTK17CTgcAddO-COuRP0lOFHDYjR_F0T9Bcu-7b4xShaIlDtnGydaLFzTt2BCdAIjurVdtDIGBG4Op05bBy6OaWGaeZIuyIIguq2UGdXx3MaJouviex-6Piw8nt_heRcT6hG7UsaH2raVMhDpHtOH2OYxIYgygsmJEELSLAFOs_wgao53TpkwBPApRnSnGiP0_4WROjpU3FslEV0hWuJR5Bd1F8Mkw-8bdvIMWzLK8XMwZcIPgegjUH6QeckPVcUpwfu9Ax-sg70LGNEipkxViG5PRbbP-Fwr05_mjelHQReODoRceBtZfEdOCeeUIFqezbCJGVEUhFTYCeXhJ_DriJwNyJwRUk2Q-RQ5y4u0HAv215ApLdJygpxecMwOspJ5meOhgtkKsdWV8p0WD_9zojsiWpwFd8Ep09zCIS6jylod72fxMOGxVMeRP0QLMVGIFovaahmfB60_nQrgXk5cNqmAtCY8feLy1-t9YIAlteApTDjIL60kwEuQ9dusUJEykPXESjFhGsqa0OyCMQlBKD0-74T3N1aCRmx91rgZNq8pz5_BqYMCF2dMJTsHHtw9yJUR-iEu54l4HFX-RhjRgHvJENsMVxxxvZlk_8mV7HdA46zybfwKkZEB5kxvOU0igYTSSzoipa-79R_ihoqkSCj9Rk7cSMm09kRWkcOFb643kZ-d6kArA68v9B9G-Um4BsKNqI8Dzuol6bWqnHAP783Bvm87_b2WtfrjcBxtlX4B5E3iV8JZOSce4uhlWs66MTM_VB8o1H2jzHf6tgv7EDfJ4W1074Mae5DXtJ6W9pPe0yb7c_e3LrCKVOQwqaFkelJIXvIat0KZt1kqJZS8nliiz067khQM7_fxKNv7IFzYX5j92ZOPk4JNrLBn-7EgHPCI_9bNiRN-PmHWj_Oxg9A7AzI2bAkrX-ySx_9nzaWVldVhYV2D6PYrottc3Oz-5unXD5eT1rZthRnQh-butT4udukLrWdyyWTJSjGDZZLlaZHzIi1mx6XIi4LmaZmmuZSFyEoJjBSEFTVPk0ORztSSEsoIJUWS8ZwViyTnosgSyQuWUsoBcQLtaOW-jW7PhuZ3mZGMpDMtKtB--LygNJa7H0sfxT1rjSh9XBAXPkdRejVzy6GnrvrGI0608sGfTQQVNCzfGx_WF4F6HDv78fNEmUiMatVX2Jw6ig-9qWPnP-udXv5-Pz9E9W8AAAD__92F_1g">