<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/128133>128133</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Assertion `SecondFPRegOp == ~0U && "More than two fp operands!"' failed
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
bi6c
</td>
</tr>
</table>
<pre>
Compiler Explorer: https://godbolt.org/z/evMT6aMqo
Console:
```console
<source>:4:55: error: SSE register return with SSE disabled
4 | V __attribute__((target("no-sse"))) f(const V *ptr) { return *ptr; }
| ^
<source>:4:55: error: SSE register return with SSE disabled
clang: /root/llvm-project/llvm/lib/Target/X86/X86FloatingPoint.cpp:1113: void {anonymous}::FPS::handleReturn(llvm::MachineBasicBlock::iterator&): Assertion `SecondFPRegOp == ~0U && "More than two fp operands!"' 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: /opt/compiler-explorer/clang-assertions-trunk/bin/clang -gdwarf-4 -g -o /app/output.s -fno-verbose-asm -c --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics <source>
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module '<source>'.
4. Running pass 'X86 FP Stackifier' on function '@f'
#0 0x0000000003e98398 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3e98398)
#1 0x0000000003e96054 llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3e96054)
#2 0x0000000003de2458 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x0000744e2d442520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x0000744e2d4969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#5 0x0000744e2d442476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x0000744e2d4287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x0000744e2d42871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#8 0x0000744e2d439e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#9 0x00000000028fac30 (anonymous namespace)::FPS::handleSpecialFP(llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>&) X86FloatingPoint.cpp:0:0
#10 0x00000000028fb30b (anonymous namespace)::FPS::processBasicBlock(llvm::MachineFunction&, llvm::MachineBasicBlock&) (.isra.0) X86FloatingPoint.cpp:0:0
#11 0x00000000028fd955 (anonymous namespace)::FPS::runOnMachineFunction(llvm::MachineFunction&) (.part.0) X86FloatingPoint.cpp:0:0
#12 0x00000000031d060a llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#13 0x00000000037e667f llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x37e667f)
#14 0x00000000037e6a31 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x37e6a31)
#15 0x00000000037e72d1 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x37e72d1)
#16 0x0000000004159870 clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4159870)
#17 0x0000000004859d00 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4859d00)
#18 0x00000000064aa3dc clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x64aa3dc)
#19 0x000000000485a108 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x485a108)
#20 0x0000000004b211e5 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4b211e5)
#21 0x0000000004aa498e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4aa498e)
#22 0x0000000004c0fc3e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4c0fc3e)
#23 0x0000000000d5c7ef cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xd5c7ef)
#24 0x0000000000d5426a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#25 0x00000000048a0719 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#26 0x0000000003de2904 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x3de2904)
#27 0x00000000048a0d0f clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#28 0x0000000004863e8d clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4863e8d)
#29 0x0000000004864f0e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x4864f0e)
#30 0x000000000486cec5 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0x486cec5)
#31 0x0000000000d595e3 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xd595e3)
#32 0x0000000000c2b854 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xc2b854)
#33 0x0000744e2d429d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#34 0x0000744e2d429e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#35 0x0000000000d53d15 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+0xd53d15)
clang: error: clang frontend command failed with exit code 134 (use -v to see invocation)
Compiler returned: 134
```
Code:
```c
typedef float V __attribute__((__vector_size__(16), __may_alias__));
V __attribute__((target("no-sse"))) f(const V *ptr) { return *ptr; }
V g(const V *ptr) { return *ptr; }
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkml9z4ygSwD8NeaGcQuivH_KgeOK72dqpSY2zW_umQqilcJFBCyiT7MN99iuQFFmOJ5vcefflpjJjB0Hz66bpbsEwY0QjAa5QfI3iTxest_dKX5Ui4Relqp6vNmrfiRY0vnnqWqVBozDH99Z2BoU5oltEt42qStXaS6UbRLd_ILqFxy93Cfvyu0IkRyTfKGlUC24AyVFChh8-tpIchRujes0BhTcozCMU5nHs5gGtlZ9wt7vBGhphLGiswfZa4u_C3vsHlTCsbKFCJMcY4wijdIN_xUXBrNWi7C0UBaIZopllugHrv1OpVsYAohTR9fCDa0QzR2XxrxjRvLPataL0eppybAyvMUo_jdNhPx2Kb86qCG-ZbNwARLdaKYvotm0f96tOq38Bn351H6JEdHs3Krb9LUuGf7etYlbI5lYJaS9516EwD4IgdDIflaicWkwq-bxXvXHahDkK8-3tbvhyz2TVwjcPiGjmJ_MPvjB-LyRcMyP4dav4w9AsLGhmlUY0ccYMc5wbA9oKJTFKyA64ktX29hs0XzuMwk8o_IT_TX7Bvn-CEaVflAZs75nE9rvCdYdVB5rJyiAa-FVKcc1EC9UlIvntzzf57gabvtwLixku-wZr6JS22Kpj9xT2vi8vudofWG1pS2FMDwbRLWaywkLytq8cDGCumbnHJeMPVjMOiG5wp6HTioMxUOFxuenGj2TGKC6YhQrrXmLDteis491Zxh9w1e-7YROQS0TWt1o1mu0x002_B2nNuN6qc0x83HgrmDYe3XqvWLHJsmZldS8fEN2WQk6P8aqpvjNdryK8avBKOYms65zc3na9vTR4VUu1egRdKgMrZvZ4xfFq1XC-skq1_J4J6ZboLRLX2UjWmXtl8armqlV6VQnWSGWs4OMc3nqL5sUOIXng7IDCDagahTe4Y9qAxsxikBVWNa6FDxDUdduoCnAD0jmaUBKRPHTN33ophWxwx4zBiKbbXnLvdreu4QuTrHHEKVYS71XVt-B6LTho6tYoOiXttyzB21vs10_U4kVSPc3iZEWkdh_ErV5IMHki058Q1lm4zvC8f8yzGb7caiGtl3s3eNbBJtPse6GM1cD2foNssJDWxyIXuv5HB0H0mjyNYG6vDtjBEXZC4ugU9qYFJvvuq9yJRrIW0ayXPoVUuFVO-HkhHcYMSReQFdAozvDGOdk34OoR9PNA9U8fvTSi2Wi3RZ-NkhaepqBI_N9BfjjKT6MIaBVFNKZkVGeIs09ZUiTRqhWyf1o1sh8e8EujLhOP7IfMwNFS4DpZ1xx39l4Dq4oH0bYfk-7Hz9LjY9woTXBjvAk-ih2lySw4WQqmWVqHmJUuvH5IrB84i01fiQ3KDwsMyllgthQYrmGdfEygHzILXB86GM1qxkPvAC-ZEku2B9P5Dbs-mTN3HXDB2u3tqbT5WRqrr3vX7_OUMcPN6W5u29esNUOIcpD4B3l9cmG3jcmRBmVIyndrMOa1g-R-QocpwI6R6a3SYKBGNLsURrNL8k4dgiMdqnUcv1sH3cuv8hXqn6gxQHZM23dDLmNRUJGEsNfGmGZxyeiA7yTYm0Qn5J2AChdQKSRJWh9AbW_duCknfhjnTFF9wBo2nYOOjqFZGLwD-otP5sulHZvOD8zCYAaOj4BTWh0Ct9Aw_jxm-Rn9875rX_D_HmwHNmMnh9hREK-zlODpRQOFOeyFvWb8AWT11ZeK7nVofjy9CbrgxCSHcf8velTwD5BfOw_2Kj7srBay-Qb1UdgYtc-PpI0o-eiEh0M-S6t7Ix7hG9QbaW_tMoo-1uNe24oWds_Gwt7H0A02thqe9FL83kPRHY10hVf3XQsLxVR-HQyqoGZ9a4sKWrDwJwPdG-DNaZXc-3C_d6uZn3XFxzWdVzxdrHgWrytC3uLxjUPxdKeZNK2vtH-R4sgV8t3dWESd22lHyFmF7FCFJGIsrPihCrfulSHf3S0Bd7Bno_-VSrXz5xlRR5gZdX1kbRaQ7MT2GB3aN908Ae8tTD6enduWDuEFkC5qg6ikQQDxIeBWu0V92XKHhGdnG2af2RY5P2IsWmeA34o-J-33Y2XO7acD4cy_KAciTmoeLvhH0lmNR8XZa-rXQfbMIWIgm7kXFQOpYp5CjTkPij0TyyyVa82eXfQON_yeaexPyhzfGOYWbXTjT5nOjT_wzfTREX1EE4YnU2-CO7_nD3TY7Vnb_grcqjEdn1DlKGs5GWOwm_p5V6q0eAT9ugaj8TIMMJIG6-HIbRY6HR8U2ttzOJDzW2w4OURhzlnblow_FLV0mLOLDBOP7rIJNmq_Z7I63q0n1-0lkymfolm7yGFzfn7JXS8DioI_PQXB8EvpKnyX54Rj8iZcdHYNhdVMWDM9PhLH2ta5v3_7mZ67Lvkcqb3jDAb3QxBNW7YvK4ZoOpuKZtOpw0-qPLEYyfGJwZocHmucOhcYnnzr5Y7V0D4vbPn2up21ehtYZ1dPj92qIjX-f3aLoxek0-ufLa2WhJBVP7SaXy_2KvdNplwE6qOBrsNBeNi8Mcdh13xRpBwodq4KwCs8O9FRiZJENYGPmuMnVZof2-InVf4sjF3Y4q34-7L2HRNu2f2B3fvNNzrIX2xEZ6YXIy5PeKMs4cDjHwF_Ovi-KAFO5P4fGf9vNOJZq09vmNlswVGuXscQDohTrTFh-8CRj9v-zzPxGasLxzQTL2o6wmmZxRF2rOebchA6T3l0Ak3X1fqDJ9B-yCwwOhYIEcFF4cYUxjJtiwOF3j0FRAdTxEcLG1ZBjAfh51wbJ3aY9OVy9OVadbj5qseSH_PRw4cLw-GCFZ6Ec5sKcBBGjqs3gFeP2CpsALA4KMjX_s56vPceLmnBbTA38vAG23erXt1rI5Lb5w4qqHHdKmZP30UXxaPfwoURfwyNgT-IphtcFHv2XLBWMOMe-Ovp8Hq4S_9b7rX9PM2HR00WuKiuwmodrtkFXAVpRIIgiUl0cX9FKg4pIXHCeZgQoFFaRXwdrAkraQi8uhBXlNCYUBqQOAqi6LJMeUarmobrkgVBnKKIwJ6J9tKFhUulmwt_d3sV0CwIw4uWldAa_58ZKJXwHfunzhjxpwt95a99y74xKCKtMNbMYqywLVz9ZZfWF71ur_77e-lRvccr-p8AAAD__8YZU_U">