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

    <tr>
        <th>Summary</th>
        <td>
            [X86] Using option -mno-sse2 causes ICE
        </td>
    </tr>

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

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

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

<pre>
    
```
clang: /home/luhaocong/llvm-project-debug/llvm/lib/Target/X86/X86FloatingPoint.cpp:318: unsigned int getFPReg(const llvm::MachineOperand&): Assertion `Reg >= X86::FP0 && Reg <= X86::FP6 && "Expected FP 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/luhaocong/llvm-project-debug/build/bin/clang -O2 -S test.c -mno-sse2
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'test.c'.
4.      Running pass 'X86 FP Stackifier' on function '@main'
 #0 0x0000560a7cb8a666 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/luhaocong/llvm-project-debug/llvm/lib/Support/Unix/Signals.inc:565:0
 #1 0x0000560a7cb8a71d PrintStackTraceSignalHandler(void*) /home/luhaocong/llvm-project-debug/llvm/lib/Support/Unix/Signals.inc:632:0
 #2 0x0000560a7cb883cc llvm::sys::RunSignalHandlers() /home/luhaocong/llvm-project-debug/llvm/lib/Support/Signals.cpp:94:0
 #3 0x0000560a7cb89ec0 llvm::sys::CleanupOnSignal(unsigned long) /home/luhaocong/llvm-project-debug/llvm/lib/Support/Unix/Signals.inc:361:0
 #4 0x0000560a7caaaa3c (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /home/luhaocong/llvm-project-debug/llvm/lib/Support/CrashRecoveryContext.cpp:76:0
 #5 0x0000560a7caaaf57 CrashRecoverySignalHandler(int) /home/luhaocong/llvm-project-debug/llvm/lib/Support/CrashRecoveryContext.cpp:390:0
 #6 0x00007f54dff59980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #7 0x00007f54df051e87 raise /build/glibc-uZu3wS/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #8 0x00007f54df0537f1 abort /build/glibc-uZu3wS/glibc-2.27/stdlib/abort.c:81:0
 #9 0x00007f54df0433fa __assert_fail_base /build/glibc-uZu3wS/glibc-2.27/assert/assert.c:89:0
#10 0x00007f54df043472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
#11 0x0000560a7ae357a4 getFPReg(llvm::MachineOperand const&) /home/luhaocong/llvm-project-debug/llvm/lib/Target/X86/X86FloatingPoint.cpp:318:0
#12 0x0000560a7ae395f8 (anonymous namespace)::FPS::handleSpecialFP(llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>&) /home/luhaocong/llvm-project-debug/llvm/lib/Target/X86/X86FloatingPoint.cpp:1532:0
#13 0x0000560a7ae36236 (anonymous namespace)::FPS::processBasicBlock(llvm::MachineFunction&, llvm::MachineBasicBlock&) /home/luhaocong/llvm-project-debug/llvm/lib/Target/X86/X86FloatingPoint.cpp:460:0
#14 0x0000560a7ae35ac0 (anonymous namespace)::FPS::runOnMachineFunction(llvm::MachineFunction&) /home/luhaocong/llvm-project-debug/llvm/lib/Target/X86/X86FloatingPoint.cpp:375:0
#15 0x0000560a7b90ba79 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/luhaocong/llvm-project-debug/llvm/lib/CodeGen/MachineFunctionPass.cpp:73:0
#16 0x0000560a7c072d22 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/luhaocong/llvm-project-debug/llvm/lib/IR/LegacyPassManager.cpp:1434:0
#17 0x0000560a7c072fcb llvm::FPPassManager::runOnModule(llvm::Module&) /home/luhaocong/llvm-project-debug/llvm/lib/IR/LegacyPassManager.cpp:1480:0
#18 0x0000560a7c0733f3 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/luhaocong/llvm-project-debug/llvm/lib/IR/LegacyPassManager.cpp:1549:0
#19 0x0000560a7c06e415 llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/luhaocong/llvm-project-debug/llvm/lib/IR/LegacyPassManager.cpp:539:0
#20 0x0000560a7c073c7d llvm::legacy::PassManager::run(llvm::Module&) /home/luhaocong/llvm-project-debug/llvm/lib/IR/LegacyPassManager.cpp:1677:0
#21 0x0000560a7d04742c (anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile> >&) /home/luhaocong/llvm-project-debug/clang/lib/CodeGen/BackendUtil.cpp:1535:0
#22 0x0000560a7d047630 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) /home/luhaocong/llvm-project-debug/clang/lib/CodeGen/BackendUtil.cpp:1568:0
#23 0x0000560a7d0486c3 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/luhaocong/llvm-project-debug/clang/lib/CodeGen/BackendUtil.cpp:1729:0
#24 0x0000560a7e3f5196 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home/luhaocong/llvm-project-debug/clang/lib/CodeGen/CodeGenAction.cpp:370:0
#25 0x0000560a80075d8c clang::ParseAST(clang::Sema&, bool, bool) /home/luhaocong/llvm-project-debug/clang/lib/Parse/ParseAST.cpp:182:0
#26 0x0000560a7dad14f9 clang::ASTFrontendAction::ExecuteAction() /home/luhaocong/llvm-project-debug/clang/lib/Frontend/FrontendAction.cpp:1083:0
#27 0x0000560a7e3f180a clang::CodeGenAction::ExecuteAction() /home/luhaocong/llvm-project-debug/clang/lib/CodeGen/CodeGenAction.cpp:1107:0
#28 0x0000560a7dad0dc2 clang::FrontendAction::Execute() /home/luhaocong/llvm-project-debug/clang/lib/Frontend/FrontendAction.cpp:980:0
#29 0x0000560a7da09475 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/luhaocong/llvm-project-debug/clang/lib/Frontend/CompilerInstance.cpp:1036:0
#30 0x0000560a7dc69b28 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/luhaocong/llvm-project-debug/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:263:0
#31 0x0000560a7ad07a16 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/luhaocong/llvm-project-debug/clang/tools/driver/cc1_main.cpp:248:0
#32 0x0000560a7acfbb35 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) /home/luhaocong/llvm-project-debug/clang/tools/driver/driver.cpp:317:0
#33 0x0000560a7d8d9289 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'()::operator()() const /home/luhaocong/llvm-project-debug/clang/lib/Driver/Job.cpp:407:0
#34 0x0000560a7d8d98aa 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) /home/luhaocong/llvm-project-debug/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:0
#35 0x0000560a7ca9ff00 llvm::function_ref<void ()>::operator()() const /home/luhaocong/llvm-project-debug/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:0
#36 0x0000560a7caab157 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /home/luhaocong/llvm-project-debug/llvm/lib/Support/CrashRecoveryContext.cpp:426:0
#37 0x0000560a7d8d94a3 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const /home/luhaocong/llvm-project-debug/clang/lib/Driver/Job.cpp:407:0
#38 0x0000560a7d8841a2 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const /home/luhaocong/llvm-project-debug/clang/lib/Driver/Compilation.cpp:196:0
#39 0x0000560a7d88451e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const /home/luhaocong/llvm-project-debug/clang/lib/Driver/Compilation.cpp:249:0
#40 0x0000560a7d894408 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) /home/luhaocong/llvm-project-debug/clang/lib/Driver/Driver.cpp:1617:0
#41 0x0000560a7acfccc0 main /home/luhaocong/llvm-project-debug/clang/tools/driver/driver.cpp:489:0
#42 0x00007f54df034c87 __libc_start_main /build/glibc-uZu3wS/glibc-2.27/csu/../csu/libc-start.c:344:0
#43 0x0000560a7acfa2aa _start (/home/luhaocong/llvm-project-debug/build/bin/clang+0x2a662aa)
clang-14: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 15.0.0 (git@github.com:llvm/llvm-project.git 75acad41bcd6cbe688e0609cbd7649ea8a533195)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/luhaocong/llvm-project-debug/build/bin
```

The failed test case as follow:
```
// test.c
int main() {
  printf("%f\n", 999.99);
}
```
Build options:

```
cmake -DCMAKE_INSTALL_PREFIX=$RISCV -DCMAKE_BUILD_TYPE=Debug -DLLVM_OPTIMIZED_TABLEGEN=On -DLLVM_USE_LINKER=gold -DLLVM_ENABLE_PROJECTS="clang;lld;compiler-rt;" -DLLVM_ENABLE_ZLIB=Off -DLLVM_ENABLE_TERMINFO=Off -DLLVM_TARGETS_TO_BUILD="X86;RISCV;" ../llvm
```
What's more, this case can be compiled successfully with release version, but runs error results.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWllz2zgS_jXyC8oqErwf_KBzRjNyrLKU7Oy8qEAQlLihSC5B-vj30wBIiaDl2HHs7NTuulwShKu7vz7QOMI8erwaGNOBMRq4RvMvf9KUZLuBNUIDPN_nBwZfab0nOc2hGsrp3eGyKPN_MVpdRiys20rxlYTwuSHljlVQ-MN31ec8zUmVZLtVnmTVkBYFTG-ZviBSZzzZZSxC0IJg2Hx1y2BGH6jxCsl5rRH8XxO6TzJ2U7CSZNEAw8yBGD_inJVVkmcIBIChaGDNBtYUCdpy4HxlINndRap50mt22-YBxrOHAsQCbuYrVLJdwitWDrAJLQPsoZgkKYuGCqbVcjZazxCvw0NSIYIACBhS5GWFqhztq6rgggKew_8uqfZ1OKT5oYNVB0f4mXBeMw4FBOIBGDStI4aqPUO0JHyPQkK_ViWhoI4JKoBQmVMGskeI53WpqsVIwnlOEyJkKOsMcVomRdWwvK5gEhTVB4G_qjKGSP6tynxXkgMC1dUHllX8Ow0grJM0Et9JBp_ShNDlDUaXa1QxDjpHl4csvwSGsSJsNoRBHyyPQWmoICWoEpEKMZAjj1EMaKvOuOk8yQGTHcvABoTKVaPVNN7WWQY2BvNwDqx78zqj0jBWouKaZGQnlOkhqDrkUZ0y0UtxB4UGI_uZ2cBghFFICJM4Oc4Ut1Tg98A2DkQA4Km5oM4ykPFgwJ_jGsSjoU9c1-2YNX_kqrAqwQHk7BulZf_UqST325xXJSMHaaoT4Sxg_2_20HVdCEOF0ucseRAV4IMk5UOwO6DnuA58GichzL4QnhmhHsdqil_BBlMBjn-XJ2AQow9k07WwzibuselblJ7DGnSrcQtu578Pny2DKsQFts6f1eMvYNQ4x98kZSSri5uGS-DuGCVTydOHQWq5ps6yrbFM4M-iUO-TLM8eD3nNUUYOjBfSZIOGfRGwbhnN71j5OMmzij1Ui0ORqlaFuewD80hDnqAPkO8cF41ePFcX0ukLGTse0sb3jfvd_O8bXFqBobPpNmx6sWNHcewEgW-g7baECJaXbAsLj7TjhsaD725d-zJNsvrhcpfVqqGo9hBGoiHPh8YAj40HE8MsQnVHMp5GxnBM5nuoJAkX8fIY6HcwGb2s_6yt-_XxJx5C6MNz3pjtfDgUvx55xAqxtNXK5KDiTnIDnMG3nHoo407P-PweJ5YXm4iEuZT0dZxUkUJDjpJE_B6RQCdiW1ZMAFUi84qtWPK3IXm97GrcsaBIBieSIpoafZK2h1-hOyq05kqtWQYMOWpNzKmFaMIsxyN2N596LpNCMtFS-dRPyfg6OOAez4ET-y8Fl_lqrQp76YxryNcSks5X50RcgGTluBb9FpXIGfIS0o3z3UQUiiEQMpE__gw0TKe7fAk4rB4crnD518LR5INjwhM6TnP69RwgbUrUZBFP2rujfwIEtmvoCNh9IybUeDUCkO7eZE8EfQGED7d5z9FF1NaaMDBC4gVPFdHyKFLXjnRnxXoneURu_QsT2fsZHtqF09KFcbWF0_BwhHFHmPlKjG0z758jxuIWPpZsR-hjh3jrcxBqdQm8vgQxDV8hwbXcP-jW1VR9JPd-z1_8Hvewdlkv-cv130okx-6tjYEukstscJkTS6mcqNkynaY7pZcgy0-WwbF0EbDR1wr1opdF-E-xb7qep_OvpRIRZBo2fjHnnx2SShzFHML08VeWFq08sNUSgQX27KukYJDQCAtrT5jgfwzbR9jujxrXnyDI2FQLJIv_rtm2qPQ1W-yFi_syqdi23RF3BkUsJnVabSOWsoq9MNCaoXaxf5nuJs_Tm7oq6moujiVeSbQ3qkPxu7SpAHsaqRv0PldJesoq9AUH4742XevFNfU5bXbr_356_DBIXT1vxVYPUt-lFuqAIWBq5lHK17GaJmSX5bxKKJ9lO-kS0gQ7XX6FPRor14yUdH9TCEx5J1HXujasv9BLZSsvdFpC6VyXE_jrqoQE55bFvfSxiVKj3oT_zVbh4V7Y15JXZsWOGbhnwIBNPq8PrUepI4UN7MR4Ks80P2dJz1xG601zMPB-gaMpKcUcU1U9u8DdVNWH3aoT-bQr0Eoc2AJ3OrtrdiCN3YQQ_U7fP8C4pNR-A8VWB76-g8JaPhqRyLTjAOlQzkuB5dEmlb8-MFpXrDXT7z0L1HltCXSKGsym4etZNPZ6hmP6Bjnj4R_G8bfNwjSNXn7g91A2Ioq7_H4D4o8GN-hlyDjQeTUC23N0bA8FrMylOAMgGSyBZ-F9Xrgf9MiOPH1OjuZiuZpI-o1CRN0gBI10Vx_F_Gm-u5ySp4I8kfy7z-rPi7KRzj5_lotGLuzqXqDfMYBReQS2l5SaW3Wl0smJR2VJHsUaZE3onpTtUjWS4R7WH60OKt52E9FKV4E84vAyKpM7cfY7b3lqBbH17EC_hSA0DkPLQS0cE1Ph0xFnfSBp-gVI58025oxUb7WyJ8yrwvFATvds_YIi8qMA-1r8bKZR9jMxQbkHcRnb8_CzmjpVqgyDpFrlKbFo1-3Our_d0ocH01Q_QnFGJRb5RHAlsdI6i4ptVZJE3GGq5t50ALewRXkY2LQrkqPTYiWtRalAjhlgLyWHMCLick8GMVWfF825oqpT4U3dXb_Zk6atsn7Lw_akrBeD9XsZoSmfEGnonaysvZrcllIDsrXlfdaABViIm-VtnAkw_q_p85qeCVnffDPVXOafKkZTyJnm682yPfMi6ewBBOHDvdB1L973bqeCODaM79Py-xjp26Tp7Z0st3fXFpqO15Hm3H3Y4HhpS2ImN56vlf6jr-hs3NOV13dLm1j_6wH0YwOhnoz6vm0S_CziMhkhT7LSVg1aftQbeNDvyibfoNHtOmrW7vdCoiNCmyAGPRsM-og4JvteRABw_jwc0LpMQJxnzgie5DNHwylIImymufR_LYLaqdnHAYl7R9G2nmj7gW0b_nNMTztlLfU9k3k_p4CfC-SPQzjt5pKm20smbbOXB1NKDSQS5_dPZO3eDbuN9Rt2y6a-h7ZbcYkOkY-U1bZl5DV3-pSLG3j5mEEVZaOcR97vW7Z-q2RbPdEJhuxMEW7u-X_gXZ18AICJ68KkxycAsuXSFHwgVpYiNI-UXaC42ZiBHSh7UM8Y0X1S7RF7SIQfRwyZkFOKl0acocs78YSRM4aSzuaxSwkB9ly8ejOdoTGU58m7pBrYRuelozU689JxCB2Q5xBKItsMaeTSkLm-zwzXCGgYea4dMOITB_aDgXOk2dy1gkjNy4g6-5rl91nnhYTqJx-3iNd9TFwHoSLnyYNqktvcFOSeJhKbN-rg3IPZljZrkRVvChEVj0YIR3EOq-W98MizY-X70OaNpKoSD2GbPa_0U2_cPFZBhXhxF8t6PMBOPHAmmSxOUBAEwyCQaU_TfeBNz1IcC2lQro55T2ydfQl8IF_BGqaT69Hvs-3i03ozWi63q9vZfPHHwJoOsH27WE--HHuMPy-W0-3mnyvxAncq0IOm5fLL9fZmtVlcL_6cQetovJz9MvsEPW6ytvnzerZdLj79PruF6l0O_DUNs0-iO5C8-W022awlUdyEu3EKWrHGtDlhuIRkDWTHuDf2z-ViLIjFca9hM7u9Xnya3-iNm9HtL7PNeru5UeIokvK58FhK2xCR0UAa-Dnk_rEnEHE9DqZYysuiap9wZRKUZChkqGE7Qrym4uFGXKfpo_LJkqVM9Gx8TOZUdSWe83Ll29CD12nFmyerF9GVFQVWQC6qpErZ1cAZC36dKfrMxRNWpevTA1xgAbyco8VkdlGX6dXb3yo7thW4F_sr6jHL86hlWCTChhkw1zVoFGPMwiCMfPMiJSFLueAMsMvYPZJTCNt1phfJFTYwNiwTYoBlYXvo-DGxvID5Xmj61I0grjDwiHQo-Bjm5e6ivJIsgYVxaEwhGeGnRsLlY0IJhJif1NU-L6-WrZ9fSOJXkvm_AIa9kPs">