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

    <tr>
        <th>Summary</th>
        <td>
            __bf16 <-> _Float16 failure
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          hjl-tools
      </td>
    </tr>
</table>

<pre>
    ```
[hjl@gnu-cfl-3 pr114907]$ cat foo.c
__bf16
foo (_Float16 x)
{
  return x;
}
[hjl@gnu-cfl-3 pr114907]$ make CC=clang foo.s
clang -O2 -S foo.c
fatal error: error in backend: Do not know how to soft promote this operator's result!
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: clang -O2 -S foo.c
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'foo.c'.
4.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@foo'
 #0 0x00007fd85be0440a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib64/libLLVM.so.18.1+0x60440a)
 #1 0x00007fd85be01bf4 llvm::sys::RunSignalHandlers() (/lib64/libLLVM.so.18.1+0x601bf4)
 #2 0x00007fd85bd35e92 (/lib64/libLLVM.so.18.1+0x535e92)
 #3 0x00007fd85bd35e4f (/lib64/libLLVM.so.18.1+0x535e4f)
 #4 0x00007fd85bdfe0cf (/lib64/libLLVM.so.18.1+0x5fe0cf)
 #5 0x00000000004147c7 (/usr/bin/clang-18+0x4147c7)
 #6 0x00007fd85bd46a77 llvm::report_fatal_error(llvm::Twine const&, bool) (/lib64/libLLVM.so.18.1+0x546a77)
 #7 0x00007fd85bd4693a (/lib64/libLLVM.so.18.1+0x54693a)
 #8 0x00007fd85c6402e8 (/lib64/libLLVM.so.18.1+0xe402e8)
 #9 0x00007fd85c67c73d llvm::SelectionDAG::LegalizeTypes() (/lib64/libLLVM.so.18.1+0xe7c73d)
#10 0x00007fd85c79a6d1 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/lib64/libLLVM.so.18.1+0xf9a6d1)
#11 0x00007fd85c7997b4 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/lib64/libLLVM.so.18.1+0xf997b4)
#12 0x00007fd85c7970ba llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/lib64/libLLVM.so.18.1+0xf970ba)
#13 0x00007fd85f1b1cb0 (/lib64/libLLVM.so.18.1+0x39b1cb0)
#14 0x00007fd85c2683e9 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/lib64/libLLVM.so.18.1+0xa683e9)
#15 0x00007fd85bf894e5 llvm::FPPassManager::runOnFunction(llvm::Function&) (/lib64/libLLVM.so.18.1+0x7894e5)
#16 0x00007fd85bf90e43 llvm::FPPassManager::runOnModule(llvm::Module&) (/lib64/libLLVM.so.18.1+0x790e43)
#17 0x00007fd85bf89c09 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/lib64/libLLVM.so.18.1+0x789c09)
#18 0x00007fd86425c08b clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, 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*) (/lib64/libclang-cpp.so.18.1+0x185c08b)
#19 0x00007fd864659be0 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/lib64/libclang-cpp.so.18.1+0x1c59be0)
#20 0x00007fd862f74386 clang::ParseAST(clang::Sema&, bool, bool) (/lib64/libclang-cpp.so.18.1+0x574386)
#21 0x00007fd86521c896 clang::FrontendAction::Execute() (/lib64/libclang-cpp.so.18.1+0x281c896)
#22 0x00007fd8651945a0 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/lib64/libclang-cpp.so.18.1+0x27945a0)
#23 0x00007fd865299df5 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/lib64/libclang-cpp.so.18.1+0x2899df5)
#24 0x00000000004144c6 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang-18+0x4144c6)
#25 0x0000000000411164 (/usr/bin/clang-18+0x411164)
#26 0x00007fd864dc523d (/lib64/libclang-cpp.so.18.1+0x23c523d)
#27 0x00007fd85bd35e24 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/lib64/libLLVM.so.18.1+0x535e24)
#28 0x00007fd864dc4ca7 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/lib64/libclang-cpp.so.18.1+0x23c4ca7)
#29 0x00007fd864d8aa07 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/lib64/libclang-cpp.so.18.1+0x238aa07)
#30 0x00007fd864d8ac67 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/lib64/libclang-cpp.so.18.1+0x238ac67)
#31 0x00007fd864da90ce clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/lib64/libclang-cpp.so.18.1+0x23a90ce)
#32 0x00000000004109bf clang_main(int, char**, llvm::ToolContext const&) (/usr/bin/clang-18+0x4109bf)
#33 0x000000000041dcba main (/usr/bin/clang-18+0x41dcba)
#34 0x00007fd85b23d088 __libc_start_call_main (/lib64/libc.so.6+0x2a088)
#35 0x00007fd85b23d14b __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x2a14b)
#36 0x000000000040d8a5 _start (/usr/bin/clang-18+0x40d8a5)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 18.1.1 (Fedora 18.1.1-1.fc40)
Target: x86_64-redhat-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Configuration file: /etc/clang/clang.cfg
clang: note: diagnostic msg: 
********************

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

********************
make: *** [Makefile:33: foo.s] Error 1
[hjl@gnu-cfl-3 pr114907]$ cat bar.c
_Float16
foo (__bf16 x)
{
  return x;
}
[hjl@gnu-cfl-3 pr114907]$ make CC=clang bar.s
clang -O2 -S bar.c
fatal error: error in backend: Do not know how to soft promote this operator's operand!
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: clang -O2 -S bar.c
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'bar.c'.
4.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@foo'
 #0 0x00007fe53ce0440a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib64/libLLVM.so.18.1+0x60440a)
 #1 0x00007fe53ce01bf4 llvm::sys::RunSignalHandlers() (/lib64/libLLVM.so.18.1+0x601bf4)
 #2 0x00007fe53cd35e92 (/lib64/libLLVM.so.18.1+0x535e92)
 #3 0x00007fe53cd35e4f (/lib64/libLLVM.so.18.1+0x535e4f)
 #4 0x00007fe53cdfe0cf (/lib64/libLLVM.so.18.1+0x5fe0cf)
 #5 0x00000000004147c7 (/usr/bin/clang-18+0x4147c7)
 #6 0x00007fe53cd46a77 llvm::report_fatal_error(llvm::Twine const&, bool) (/lib64/libLLVM.so.18.1+0x546a77)
 #7 0x00007fe53cd4693a (/lib64/libLLVM.so.18.1+0x54693a)
 #8 0x00007fe53d6428a0 (/lib64/libLLVM.so.18.1+0xe428a0)
 #9 0x00007fe53d67c6c0 llvm::SelectionDAG::LegalizeTypes() (/lib64/libLLVM.so.18.1+0xe7c6c0)
#10 0x00007fe53d79a6d1 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/lib64/libLLVM.so.18.1+0xf9a6d1)
#11 0x00007fe53d7997b4 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/lib64/libLLVM.so.18.1+0xf997b4)
#12 0x00007fe53d7970ba llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/lib64/libLLVM.so.18.1+0xf970ba)
#13 0x00007fe5401b1cb0 (/lib64/libLLVM.so.18.1+0x39b1cb0)
#14 0x00007fe53d2683e9 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/lib64/libLLVM.so.18.1+0xa683e9)
#15 0x00007fe53cf894e5 llvm::FPPassManager::runOnFunction(llvm::Function&) (/lib64/libLLVM.so.18.1+0x7894e5)
#16 0x00007fe53cf90e43 llvm::FPPassManager::runOnModule(llvm::Module&) (/lib64/libLLVM.so.18.1+0x790e43)
#17 0x00007fe53cf89c09 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/lib64/libLLVM.so.18.1+0x789c09)
#18 0x00007fe54525c08b clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, 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*) (/lib64/libclang-cpp.so.18.1+0x185c08b)
#19 0x00007fe545659be0 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/lib64/libclang-cpp.so.18.1+0x1c59be0)
#20 0x00007fe543f74386 clang::ParseAST(clang::Sema&, bool, bool) (/lib64/libclang-cpp.so.18.1+0x574386)
#21 0x00007fe54621c896 clang::FrontendAction::Execute() (/lib64/libclang-cpp.so.18.1+0x281c896)
#22 0x00007fe5461945a0 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/lib64/libclang-cpp.so.18.1+0x27945a0)
#23 0x00007fe546299df5 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/lib64/libclang-cpp.so.18.1+0x2899df5)
#24 0x00000000004144c6 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang-18+0x4144c6)
#25 0x0000000000411164 (/usr/bin/clang-18+0x411164)
#26 0x00007fe545dc523d (/lib64/libclang-cpp.so.18.1+0x23c523d)
#27 0x00007fe53cd35e24 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/lib64/libLLVM.so.18.1+0x535e24)
#28 0x00007fe545dc4ca7 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/lib64/libclang-cpp.so.18.1+0x23c4ca7)
#29 0x00007fe545d8aa07 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/lib64/libclang-cpp.so.18.1+0x238aa07)
#30 0x00007fe545d8ac67 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/lib64/libclang-cpp.so.18.1+0x238ac67)
#31 0x00007fe545da90ce clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/lib64/libclang-cpp.so.18.1+0x23a90ce)
#32 0x00000000004109bf clang_main(int, char**, llvm::ToolContext const&) (/usr/bin/clang-18+0x4109bf)
#33 0x000000000041dcba main (/usr/bin/clang-18+0x41dcba)
#34 0x00007fe53c23d088 __libc_start_call_main (/lib64/libc.so.6+0x2a088)
#35 0x00007fe53c23d14b __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x2a14b)
#36 0x000000000040d8a5 _start (/usr/bin/clang-18+0x40d8a5)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 18.1.1 (Fedora 18.1.1-1.fc40)
Target: x86_64-redhat-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Configuration file: /etc/clang/clang.cfg
clang: note: diagnostic msg: 
********************

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

********************
make: *** [Makefile:33: bar.s] Error 1
[hjl@gnu-cfl-3 pr114907]$ 
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW11P47oW_TXhxWqVON8PPJSWMhwxFwScc-9b5Tg7rQ-p3Ws7fNxff2UnLXGhQznDzFQaRiMR7O21l7e3t50sQZRicw5w7MUnXjw5Io1eCHm8-LseaCFqdVSI8unYS_zuvz_x_JEXnyz-rr3In_NmQKt6EKKVDIIo91Mvnng4QpRoVAkxpO2A2ayogqR9roRAHs5m01oQHSTo0cN5B5uetA8ISdCN5OjRC0_WfZN9fS_JHaDx2AsntCZ8bnmodnDbMLjEaHDT51cRTWoEUgrphaP2ATGOCkLvgJembSIQFxrdcfGAFuIBaYGUqDRaSbEUGpBeMIXECiTRQno4VUiCamrt4aD1cXVxOro5RaoplkwjgopmjiSshNQGa6H1SnnhyMNTD0_nTC-aYkjF0sPTur5f_xispPgbqPbwlCnVgPLwFBFeIsZp3ZSGBSAqiVpY6loSCh4eo5WElRQUlIISKdHIttmMJEoJyoiGEsmGI0UlW-lhS_lGE3qHyma5Msxskz_0_PxKirkkS0TkvFkC14Y42hXbwIzwwjGIygtP0YpIBRIRjYCXSFSoYjW0lthYjkUJaA7cBJIJ3vaEpue64ZzxOVoRpZCH02nDqTFBV6bhK-FkDibySHC0FGVTg7FqmeC0m1L0GtJ_sgRNRmcDLzydjM7QOVdaNi32DdRgnzrgau3Uw6kX-ZUQ5qHNWg-HPvIffd_306rM4gL8KPIJsgsYjrxwpJ5U-3AlGdc2vLftGmXPRpI8zITSEsjSw4lZJ8a1h3Oza0wesCKJ2p8XF399HSoxDLJh4OET_zGxDjcbyjAKthgFRRW9xui64Tdszkn9hfCyBqmst_2cGkzHKXaclmEMOd4DKbaGDlL4Aimq9kSKKgcpcpEq8OleSNbQQYo7pPZfFEQpTTukRkkPTwvGPTy1G2IQZBamtXJgEpdQlJA07a1MWxtmtjTN2tLUz5LbB8YBUcGV7rKkEKLeb8Vi68shk26TyUOyH1IeugmX9ZFoEvkYsj2QwBo6SLmLlNI0LHsB2mzNyeisbbmAOanZ_-D2aQX75y9Y4OdTCIeBs41pmpOkDHZ4Pr-Bum01lesM-IiXp0umDal9GVTWgcMg2GKQp0X0JoO2dVTXJ0QxelILeqecpNmUzOe82Y-fce_ww1v8Ur8gb_KTDb_kXwldMA5rKg6_F317EzT-HYJO4aiCIqCFvwdSmFtLB8qpHBQnWQg52knanEa96b46z3dPkFinDqvY2bFVlkcQ91hNrwyR9an40XxS687h45azKvchCvfg89We1G4WdE37crGuHC7pdmyo31-xGuaEPnUn8TOr8-XqOVG_i5F16DDqV8UkwjH1s6K9MrUeTMk4aW-bl41eNdrDWa97wsicC6UZVad8zjh0Nb9n8gVICfIGiKSLy5VZTeUcDz3TrlK9YXVL5Bz0G0YXhM9fM-mVAi0Zn19D5TavQzraAuyCMOrysT_knGvZKHYP11CNub7S0gvHz933VbfvpqyGmyelYemFpwZC6bLtaTj7bwOz1dZIc-NaPUimYba-d_UGlVCRptazEmrQ8MbA8LTz-XJKY8FVszRX1NGradTeF-hq5eRSkNlccZIpd5IpifMC_G85bPPD3utuJeGqtlfrPznbyrLRze1YcA2PO4-GHRyppdDniPtHaIKrNAqzpM_xyrwHjG5uXQY3sCTOdeYb15rXucTWk0Olf5YmMQ5oljtUptJMepNz7X58BNpo2HWEv-4bZxbbcY4d50EexcR39-JyxWqQ5qWDcAqO-_UuyHazfddC4dT6dwiGbnTyvKxipzK1VJ553gtKXtJ6MY93ZTnOrF-HWLR9zY5ogigNZkvC3PI8kpI8mQoTjumCyHUhGq23otOGx-hesNLh961re0TdBd2-_QdBEr0NY6wcmMTZwyWNcVjuHa3Qmjt46YsXJdy_MI4lUYtroOIe5NN6k29e_EgF9ZMT0vV77kzasJqItexyG9S93jIsB4dktjXpiJK0n2ulZPfrejUeB2OxXBJebu_IVxd-U66FPY1I7RTq50NoU6A3A2Yz-vgYBO0vhbk5m2LODCebTo6xaZhpSZhW6-4tOFLXZoMI2es3JqPnYmYzzybkO1bcxMoJpnsKlBkh_u5g2t1JXtS3dYSdrbw10BjsOv6_YTraei1953ztdPrzdb6t2PnS5N3z_UMUavdk_xDFBVN610VmSer6L6BadDfF55xbEWaW236n2T8-XWJ8X5Ro4kYpcKNEcp_CLkaT3rNT5l-p77ui-xOjtP9pEtppO3HBW2Xbz4uq5bA-T9a87JYfdRu298FFiLornK-8Pn-j9BtPDpVwi0pJC4IMibexjKmD5X7VwmHpZxmazUxoZkoTqWeU1PWsh96Pnola0oaM-FnmIMfbyEFUuMg2bpF_dnF-Mp7hIR7Gb7gIIuceu_kC1gXCLzMSoxb8zVBY4w3aOpmev-F33_67yxKiXVpVhNVQogemFwgemVnKElBqPw00CtDg3n7ZB0Csd9Hpe0H3IBUTHJl0GwZm4BRKIUnXMAiGFY2e71jta5Sh9JglsyQaSCgXRA9qxpvHwZw3ndlCAinRUpT2awlaCcUe2y57paprKCfMTs2Ji7UYC16xedN-Mm-_qLd2oOk6cuufQ1rNt4LGhbYDys1bJloq27Neq-_43yL0JZDR7e1o_AXdfjlF08uLi8t_n__rDE3PL05v0O2lbT758wxdn15dXt9uhIer1ySMTJkduFPG2BhIQPZQhhIRvYHcZ_54qpcrD08rIQZxlvklrHWNfzhaLd4b_A9agiW567Kia0ZefPKV3EGXLmFoeluxLJ6gU6uBBe8R_AoiN4Jfp-65kp9VAX-84Gd4vCb49fj9EMHP_mIuU7-j4tcL7i9W_FomP1_xgzikh6X4tYx-suJnnH6M4rdG-n7FzyIdkuJnCR2K4teR-QDFD-KwTCKckX2kFrCGOxQ_i5TShPo_RvFLqL9D8TOef63i1zI4XMWv5XfAih_Ekf9Bip-Z6-EpfmbHHpLiZ_kciOLXxeaAFD-Io_hT8ftU_D5E8TPJdOiKH8RReCCKH8RR8ssUP-P8oBU_G51Pxe9nK35mD3-k4rd-UTpoxa-d9Kfi9yGKnw3mb6T4dfP9VPy-qfjZKH0qfr-L4mfK_o9R_DrkT8XvU_H7bRW_gsgBLqGIw3-i-PVGH7ji16pl71f8Orv1XwYelcdhmYc5OYLjIA2iOI2jEB8tjssMoixICuxHsY9TnFCa-Jj6UQRFjKPgiB1jH0d-7AdmVOAPy6Asq7gqKp8EcZKDF_mwJKwemtI8FHJ-ZKWw49xPw-yoJgXUyv79IsYcHpDt9DD24smRPLYiWtHMlRf5NVNaPaNopms47lRJLxwPvPAUbf4u0dSNRsJRI-vjf67VWY7_DwAA__8hbKBN">