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

    <tr>
        <th>Summary</th>
        <td>
            SLH assertion failure when building test-suite
        </td>
    </tr>

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

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

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

<pre>
    The X86SpeculativeLoadHardening pass encounters an assertion failure when compiling one of the tests in the LLVM Test Suite. 
[pr84521-805e0d.zip](https://github.com/llvm/llvm-project/files/10428169/pr84521-805e0d.zip)
```
clang: /home/nmosier/llvm-project/llvm/include/llvm/CodeGen/Register.h:78: static unsigned int llvm::Register::virtReg2Index(llvm::Register): Assertion `isVirtualRegister(Reg) && "Not a virtual register"' failed.
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: /home/nmosier/llvm-project/build/bin/clang -DNDEBUG -fuse-ld=/home/nmosier/llvm-project/build/bin/ld.lld -Wno-unused-command-line-argument -mllvm -x86-speculative-load-hardening -O3 -DNDEBUG -w -Werror=date-time -w -fomit-frame-pointer -fno-inline -MD -MT SingleSource/Regression/C/gcc-c-torture/execute/CMakeFiles/GCC-C-execute-pr84521.dir/pr84521.c.o -MF SingleSource/Regression/C/gcc-c-torture/execute/CMakeFiles/GCC-C-execute-pr84521.dir/pr84521.c.o.d -o SingleSource/Regression/C/gcc-c-torture/execute/CMakeFiles/GCC-C-execute-pr84521.dir/pr84521.c.o -c /afs/cs.stanford.edu/u/nmosier/scfe-llvm/test-suite/SingleSource/Regression/C/gcc-c-torture/execute/pr84521.c
1. <eof> parser at end of file
2.      Code generation
3. Running pass 'Function Pass Manager' on module '/afs/cs.stanford.edu/u/nmosier/scfe-llvm/test-suite/SingleSource/Regression/C/gcc-c-torture/execute/pr84521.c'.
4. Running pass 'X86 speculative load hardening' on function '@broken_longjmp'
 #0 0x000055fabc83b5a9 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/nmosier/llvm-project/build/bin/clang+0x19145a9)
 #1 0x000055fabc83a181 llvm::sys::RunSignalHandlers() (/home/nmosier/llvm-project/build/bin/clang+0x1913181)
 #2 0x000055fabc7dfb59 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
 #3 0x000055fabc7e00d6 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #4 0x00007f28f7559520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007f28f75ada7c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #6 0x00007f28f75ada7c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #7 0x00007f28f75ada7c pthread_kill ./nptl/pthread_kill.c:89:10
 #8 0x00007f28f7559476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #9 0x00007f28f753f7f3 abort ./stdlib/abort.c:81:7
#10 0x00007f28f753f71b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#11 0x00007f28f7550e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#12 0x000055fabbc00eb3 (/home/nmosier/llvm-project/build/bin/clang+0xcd9eb3)
#13 0x000055fabbc021aa llvm::IndexedMap<std::pair<llvm::PointerUnion<llvm::TargetRegisterClass const*, llvm::RegisterBank const*>, llvm::MachineOperand*>, llvm::VirtReg2IndexFunctor>::operator[](llvm::Register) const (/home/nmosier/llvm-project/build/bin/clang+0xcdb1aa)
#14 0x000055fabbc2e4a9 llvm::MachineRegisterInfo::getRegClass(llvm::Register) const (/home/nmosier/llvm-project/build/bin/clang+0xd074a9)
#15 0x000055fabbdab54f (anonymous namespace)::X86SpeculativeLoadHardeningPass::canHardenRegister(llvm::Register) X86SpeculativeLoadHardening.cpp:0:0
#16 0x000055fabbdadca3 (anonymous namespace)::X86SpeculativeLoadHardeningPass::tracePredStateThroughBlocksAndHarden(llvm::MachineFunction&) X86SpeculativeLoadHardening.cpp:0:0
#17 0x000055fabbdb2b81 (anonymous namespace)::X86SpeculativeLoadHardeningPass::runOnMachineFunction(llvm::MachineFunction&) X86SpeculativeLoadHardening.cpp:0:0
#18 0x000055fabc0697bf llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#19 0x000055fabc3693cb llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/nmosier/llvm-project/build/bin/clang+0x14423cb)
#20 0x000055fabc369561 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/nmosier/llvm-project/build/bin/clang+0x1442561)
#21 0x000055fabc369ba8 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/nmosier/llvm-project/build/bin/clang+0x1442ba8)
#22 0x000055fabca0e25c 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>>) (/home/nmosier/llvm-project/build/bin/clang+0x1ae725c)
#23 0x000055fabd2452a9 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/nmosier/llvm-project/build/bin/clang+0x231e2a9)
#24 0x000055fabd906a13 clang::ParseAST(clang::Sema&, bool, bool) (/home/nmosier/llvm-project/build/bin/clang+0x29dfa13)
#25 0x000055fabce50712 clang::FrontendAction::Execute() (/home/nmosier/llvm-project/build/bin/clang+0x1f29712)
#26 0x000055fabce150b5 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/nmosier/llvm-project/build/bin/clang+0x1eee0b5)
#27 0x000055fabceba02e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/nmosier/llvm-project/build/bin/clang+0x1f9302e)
#28 0x000055fabbbee1fa cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/nmosier/llvm-project/build/bin/clang+0xcc71fa)
#29 0x000055fabbbebdf0 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#30 0x000055fabcd6231a void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#31 0x000055fabc7dfd1a llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/nmosier/llvm-project/build/bin/clang+0x18b8d1a)
#32 0x000055fabcd62be0 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#33 0x000055fabcd47842 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/home/nmosier/llvm-project/build/bin/clang+0x1e20842)
#34 0x000055fabcd479b4 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) const (/home/nmosier/llvm-project/build/bin/clang+0x1e209b4)
#35 0x000055fabcd560df clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/home/nmosier/llvm-project/build/bin/clang+0x1e2f0df)
#36 0x000055fabbb80f52 main (/home/nmosier/llvm-project/build/bin/clang+0xc59f52)
#37 0x00007f28f7540d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#38 0x00007f28f7540e40 call_init ./csu/../csu/libc-start.c:128:20
#39 0x00007f28f7540e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#40 0x000055fabbbeb285 _start (/home/nmosier/llvm-project/build/bin/clang+0xcc4285)
clang-14: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/nmosier/llvm-project/build/bin
clang-14: note: diagnostic msg:
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-14: note: diagnostic msg: /tmp/pr84521-805e0d.c
clang-14: note: diagnostic msg: /tmp/pr84521-805e0d.sh

********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkWl9z46iy_zTKCyWXQH8sPeTB48Qzs5VsUkl297y5ELRsTiTQBZRJ7qe_BZJtyXFmZyY5W7fqbM1WbGiaXzf9jzbUGLGRAOdB-ilIL85oZ7dKn8tGGQH6rFT85fxhC-hfeXbfAutqasUTXCnKv1DNQQq5QS01BoFkqpMWtEFUImoMaCuURBUVdacBfduCREw1rajdGiUBqQrZLSALxhokpP9ydfXnNXoAY9F9JyzMUBBdBNEiSD-1Ok9SgsM8SiHis_8VbZBeBCTfWtuaIF4EZBWQ1UbYbVfOmGoCsqrrp92fsNXq38BsQFaVqMEEZIWjhOQ4KwKyOsGbFMPOWTT8819ZTeUmiBcoIKutaiAgq0FXrzcatheS1R2Hw8BScfgMMiCrO9gIY0HPtkG8mOeOr7HUCoY66c-FIyEt8uviRRAvdgv6b09C2zvYkK-Sw3NA8hN0pHBMF_vjCLJImD-Fth2tD0T5HWwCUqCAZAHJUEDI78oiip56QqT3lCQgc3-mwGe9Rm6vLhf3l8h0ZSPcmrLbIA2t0hZZhX76dIQxnT8eRKWT3uvOmwbT1GxRSdmj1ZRBQJao1dBqxcAY4MioTvfDbiU1RjFBLXCkO4kM06K1A-R7S9kj4l3TOmR-KJoh_9-tVhtNG0T1pmtAWvODZ112oubur3Dn6q0EhRe_X1x--uMzCqvOQFjzIL74aVY1n9U1R-FfUoWd7AzwkKmmoZKHtZAQ7oCisHF8UPicZ6E5uGpYK8rD7d5Zw5t4BOwbCv8CrZUO4gtOLYRWNOCHK9UIG1aaNhC2SjjPRmElVSik2xeF1xcovH5A90JuargfdO8sWoMxQjnsS3fkjIUstErbTjsCeAbWWfdpeU0fYTU44-flMlyGw2Q4-OOMC33wzhmbKRRer_7hLWccheofF5M5o6OVW8PMzFgqK6X5DHgXkFU3MR_DKggHZ3KxNDQucgZk9euY91B658AzFMRLUFUQX6KWagMaUYtAchfDXTzt6cjgRC7AoQ1I0NQFnX4ynqG7Th4SRkDmq04yH5Vu3cA1lXTjJJojJVGjeFeDo_r_oQgyH4JH8lqOf-UZGrkcci6H9i43CFTthHUiJVGp1SPIda3k5t9N68Y8dxSQOELRcxRFUZpWtGR5XKa0GOUA82L6D7daSOtj2UMfEEcJQNNva2WsBtr4oL50iaQP8fmvhbOAfIqecYGTlBb77Ojg4iO4FOf4FNy7Tt6LjaT1Fyp5Ddp4KB-AKMY5niAiE0RzXpWp34ZKJV8a1RkkaQOm9UorenRLl13ugKkn0C9LJS08269NW_ezPWRPE5Dcq3J5yNHuEJ0kp3jMWOuyTOT_3yOMpwghing2XT5R1W7Pn9kiGbaYVySv5mlapCQadF2LMiCr5zxbZ4nLIt1zuJFdP8FmRs0yr9qEpCSaKDad8qSczhlar1u71UD5-lHU9Vo0bQ0uI3nfRzN3qK2tnTONyGYsiBdJ4sqe7MA_-xH-LhVJWn-Xs6-l8Egb81Ocx8u-yy4vjtjlx8pN5hnaGH9mnlP_MSCrmf_2Yji0Loa1yojngKw0FQY8bzIP4sVIB8WUdVzNqxjR0tVTnpXl_fH5oR4ddhIP5SqJcfSKAy7RWtZrF5fWXDVU9OcipBfXDTdmw2jPDuO5g1QcGOIjaSMosp8zpbiAIjvU1CTGEx8tWRRBGb8zFDBeQBlPdomPdiGY0lFs8oUz8GvaBvHSWN6PtlToIF4eyG77-ucP6VLGeOKB6g3YXR29rF0-YEoaG5CFixCvC_JPVD4eSOLLKdU1ZVsh4aYFTSU_RfHnuOT3-dPVbpf9pHLr3IC_y711Iei3f7euS0zpRNfJVNcEkknaGmTbAfkqK9VP9Br0yvuPQubRPBmlLgc5nUDmtEyT6u8SxXduwq6M6YkYlf3o6I51WrLvsHsd1x3m7AgzZzT-EMz-VnWrgd9bauFhq1W32X6qFXs0CzksmIgxnOiuivN1xi8INJ8KVJIyxx8ikO7kjXwF8uMFyCfJPMqKeVm9NvzdLkf4TgI7QhSQfNZSbWcuG6MT_E7jKia44qyIWTnCtbp1S3dV908jek_NliQkZuXYFUl0DDbN8A-AvfbXhOmpDkMfBDTN8AQoPgZa0nwEtIYNZS9D3jhAPpSSupP_SbglzSdwp7UwjYCkDO26WEG8uGyE_UTZI0h-09m2swHJR9MXgm6kMlYwcyk3QsJwmxiRfAHKQd8D1Wx70zoj2SfBY9Kh8_U3VH1W_RuiKyo3p0gOir23WsjNHVRHOXbQ9-KI4aCExWDmS7SvBzop_qeDdWunVYG7YrXftLCw3l20Ros4VLSr7ZpDDRb-ZqFL4JcfcP4U5iRlk_OfVECcJCmhxQmxl0qartm5Vn_teNBUmtqX8X9IcWQYi_uH4frxIaZLYgxkmp3JpKDgRZRRHI-h31JtYHH_MAV2Dw0dbKFUqj78fTfEglcUT-pLMikgGKTRHJMxxJV2OtpbVe9xu-7CR9x-K1LMMZlgyqaYcBqV6dQJm1bUrgIzlkoGE1Q788_fFuJDIhUARGU6wT2f4i5pRGASqXqEB_hPitHXaF-J5zz9_Xou4ojABO8k7ZclAK4oYgyv3f1qEuIXWtMXF4jiJdtSfVz_T8fIEj0pwT8ENmNzXE2qdFIcoS55FaGdapf4wbvKCPt9Q-v6T3D3jD6HnRDBGwTX4gn0yUrkqKPFMxJj6qUcxeVdf2ytvaL8bO8j-_sNo3VdUva4rtw1bHTm_d7D-S_xsm-QH7vbyQM5DPbZhNaTwUMSGWL0KMSv1-z5GeP-S0mNYC6eCwfKK2lC7AbWVlNhzW76iB2ta2fQ7j63n3cki0MIW-zvQv2SgMxr2pSc-jbpTlck3zWkflPl6QPBxx0yjsf34lNdpkMTj1ZQv0z0-f2ze7_35WXO8cSOj3p8PCMlROi_2iSOrglvnv2098iTeZ6QNzXngyl9lbx26pxE3qOFjuCt6u07pIshnnzElR8DifJkkh7j5Fj8okx-VvzfVGnelv03VV4JY98qS18F1OPG09Be_lF1DTbxoUorymSitGmdw9Ms4tVbAC9Gnyc5-0SyfkvZ_6jS3q2uKuLVRF3THk2ZR1VKkG-7vjOfp0WVTs35qLGdRLyI0Hpdi9KFHqrt2mXN9b7ny0z3uis99L1PLfJPE1LfTs8Ou-bHu0ISIb9GSGGPN-o_Ou6h5963mYljSkaBqTjFdCLKKSlOMo_nhYO9551Ex2UPyVPUc313jZWQ_FDJ-okQJ0G8QMMv64veKlE11NFo-AF_eEeBvgm7RfAsXMTggHCcOEidARQ-IauQAUBiVO2Od0JPoI1QEuFkFs18V_7nnlzMNsKiiuQsijKa5kVasQhiUlSA0woozzHE8ySdsxLzQyOkv6I70YbWfycfpfomRz8B9HT-hxTUKA61o-5__vBTvj6va-AXQv_CI4tXypbKXbMXiO87Fqgxm_0DD59YfvVfz2H83GXx8LBYfkEPXy7R6ubq6uavr79_RquvV5f36OHGD3_64zO6u7y9uXvYY7g99VwlNy4GvflkZU-gAfliADiids_yhzTgdGub9vVDJ_YRTMx2rJ8P0PPuxdUZP495ERf0DM5xNo_zIiJZdLY9LzKOq5LlVRRlKc6d3cYsi3FU5RGe4-pMnJOIxBHGGZ7HOIpmRUGKBKeA0yTHQNIgiaChop45C5spvTnz747OsyjK8VlNS6iNfxJHiIRvyE8GhATpxZk-91ZZdhsTJFEtjDUHLlbYGs7vr7689QLOm7CQG3R4oHDW6fr8199Jecj_FwAA__-nUkjh">