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

    <tr>
        <th>Summary</th>
        <td>
            Opt -instcombine crashed. llvm::Constant* {anonymous}::ConstantFoldScalarCall1(llvm::StringRef, llvm::Intrinsic::ID, llvm::Type*, llvm::ArrayRef<llvm::Constant*>, const llvm::TargetLibraryInfo*, const llvm::CallBase*): Assertion `status == APFloat::opOK && !lost && "Precision lost during fp16 constfolding"' failed.
        </td>
    </tr>

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

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

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

<pre>
    Link: https://gcc.godbolt.org/z/d1aG5MjKG
Test case:
```
define void @foo() {
entry:
  %var2 = call float @llvm.convert.from.fp16.f32(i16 -600)
  %var3 = fadd float %var2, %var2
  ret void
}

declare float @llvm.convert.from.fp16.f32(i16) 
```

Error message.
```
opt: /home/spica/GitRepo/llvm-project/llvm/lib/Analysis/ConstantFolding.cpp:2363: llvm::Constant* {anonymous}::ConstantFoldScalarCall1(llvm::StringRef, llvm::Intrinsic::ID, llvm::Type*, llvm::ArrayRef<llvm::Constant*>, const llvm::TargetLibraryInfo*, const llvm::CallBase*): Assertion `status == APFloat::opOK && !lost && "Precision lost during fp16 constfolding"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: opt -O2 /home/spica/test.ll
 #0 0x00007f33b853fad4 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x00007f33b853cb14 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f33b7f410c0 (/lib/x86_64-linux-gnu/libc.so.6+0x430c0)
 #3 0x00007f33b7f4103b raise /build/glibc-sMfBJT/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007f33b7f20859 abort /build/glibc-sMfBJT/glibc-2.31/stdlib/abort.c:81:7
 #5 0x00007f33b7f20729 get_sysdep_segment_value /build/glibc-sMfBJT/glibc-2.31/intl/loadmsgcat.c:509:8
 #6 0x00007f33b7f20729 _nl_load_domain /build/glibc-sMfBJT/glibc-2.31/intl/loadmsgcat.c:970:34
 #7 0x00007f33b7f32006 (/lib/x86_64-linux-gnu/libc.so.6+0x34006)
 #8 0x00007f33b8e88db7 (anonymous namespace)::ConstantFoldScalarCall1(llvm::StringRef, unsigned int, llvm::Type*, llvm::ArrayRef<llvm::Constant*>, llvm::TargetLibraryInfo const*, llvm::CallBase const*) ConstantFolding.cpp:0:0
 #9 0x00007f33b8e91385 llvm::ConstantFoldCall(llvm::CallBase const*, llvm::Function*, llvm::ArrayRef<llvm::Constant*>, llvm::TargetLibraryInfo const*) (/usr/local/bin/../lib/libLLVMAnalysis.so.15git+0x1bc385)
#10 0x00007f33b8f69f43 tryConstantFoldCall(llvm::CallBase*, llvm::SimplifyQuery const&) InstructionSimplify.cpp:0:0
#11 0x00007f33b8f8d69b llvm::simplifyCall(llvm::CallBase*, llvm::SimplifyQuery const&) (/usr/local/bin/../lib/libLLVMAnalysis.so.15git+0x2b869b)
#12 0x00007f33b8f90cd3 simplifyInstructionWithOperands(llvm::Instruction*, llvm::ArrayRef<llvm::Value*>, llvm::SimplifyQuery const&, llvm::OptimizationRemarkEmitter*) (.constprop.0) InstructionSimplify.cpp:0:0
#13 0x00007f33b8f912e8 llvm::simplifyInstruction(llvm::Instruction*, llvm::SimplifyQuery const&, llvm::OptimizationRemarkEmitter*) (/usr/local/bin/../lib/libLLVMAnalysis.so.15git+0x2bc2e8)
#14 0x00007f33b9cf2503 (anonymous namespace)::EarlyCSE::processNode(llvm::DomTreeNodeBase<llvm::BasicBlock>*) (.isra.0) EarlyCSE.cpp:0:0
#15 0x00007f33b9cf408e (anonymous namespace)::EarlyCSE::run() EarlyCSE.cpp:0:0
#16 0x00007f33b9cf50a7 llvm::EarlyCSEPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/local/bin/../lib/libLLVMScalarOpts.so.15git+0x1160a7)
#17 0x00007f33bb2d55a6 llvm::detail::PassModel<llvm::Function, llvm::EarlyCSEPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/local/bin/../lib/libLLVMPasses.so.15git+0xa35a6)
#18 0x00007f33b8904d34 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/local/bin/../lib/libLLVMCore.so.15git+0x2dbd34)
#19 0x00007f33bb2d11f6 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/local/bin/../lib/libLLVMPasses.so.15git+0x9f1f6)
#20 0x00007f33b8903866 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/local/bin/../lib/libLLVMCore.so.15git+0x2da866)
#21 0x00007f33bb2d9876 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/local/bin/../lib/libLLVMPasses.so.15git+0xa7876)
#22 0x00007f33b8901901 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/local/bin/../lib/libLLVMCore.so.15git+0x2d8901)
#23 0x0000556bf703fdec 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) (/usr/local/bin/opt+0x33dec)
#24 0x0000556bf702fc73 main (/usr/local/bin/opt+0x23c73)
#25 0x00007f33b7f220b3 __libc_start_main /build/glibc-sMfBJT/glibc-2.31/csu/../csu/libc-start.c:342:3
#26 0x0000556bf70306fe _start (/usr/local/bin/opt+0x246fe)
Aborted (core dumped)
```

cc @regehr 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWdly47YS_RrpBWUWSXB90IO8TSZjXztj1-RRBQKgjAxFsADQ18rXpwFqI82x5RknlVTikrkB6OX06QYBFpKtZ1ei_jrBc_RgTKPhYhJewm9JqbeUrJCV8aRawpPf4Z8F5EN8_dunDxP_fOLP77k2iBLN7TD3ZJL4m5-7ZbwUNUePUjA0ifxSykmYTcIcTdLTrgevjVrvhiM0CeNHokI0wecguapQWUli7OCqelx5VNaPXBmvVHLllU2QeCUOQaYIEnSS-D7I7kvCTlJJGNtK6hRMwrPd5WaA4sZZuvEkPd9cbDyhFVH8eHOcl2OYdMcLpaRCK641WXJvtKNsjI0LwP4gVxxOuhGUwPmDMJ95A1BeWiNOGiV_49Rsbu1JFHCc16Raa6Hh8kzW2pDaXMqKiXrp0aYBySFOsFXgRkEE8HzbbxLObYRILev1SrbaYtHrYAXdQXiIOoMYBeDxXsidUaDjMy8txPvHH2v7XAu6uT3vN9-vG3Bx3n84V4qsrSR8NmrkBF_YAdQ-OZRF1JKbK1EootYf61JuBA_7WdtPLXttc26hmGsN4RSyRhAF0GJabfljKTS_vbSh70bK5uYTBAaCnMApqKQ2-9vwVnEqtJXiGlhrAUGWHp0JZRcG6DkJU-CmqDjbUOD26mJ-d4F0W6yEQQQV7RJ42UhlkJHDFBXmoS2Ag6uD0PcJIbRuuWUAIjVDoqZVyzgyDxxRRfQDKgj9ahShWwbeGXgABq-aXUr60JTfKrlUZIUA2HYFKWuNQMBPdHITjhDUQF3wqmqTWJMQ-8h_8uEvLTEushhDPkboFmAxTuO9NeFOLIGxP4GhFVfAKJeKLjKoa9Ib3vrufyc7GMimRRChoTBh-fKKoPBQUFpGgU995OrVJqOesmSRRCeVqNunk2Xddg3U09KD0J_6TxGGIfsSBDLxM5m4QIoIzS1sRSsqZiNpxZzo6_L05_vdbejhwGLqTIYLz7N3a814YyPa1uKpe_Do7ACb4OxEezbH4gAOwd6SqG9J6GdxjkhhmXWsJYZ1OLhRTklmlaR7JfFQSQqgQy4uOrsXmi8tfRaPpGqPRgBiZ_2H7GMrvaSkUx37NmOzve5kTPeirhZ24ILJFRH1j6nMU8sYHO11pn2dOPT95G2UwREM6VEm6_GZZxkrUitzV41RTWDeaCBluqr1PXW5rS2vuK0J5v0K8QsluKt8zwRvS_BBc47Gp6tBtuZ9mPIAZ_HIVGZlWCU9KEa0HhoFuUXtJPDnwpBviNJq5ahGXZYXot7mescgOF5dfbnezuaWOUEMpd-xJygouL2jj62G_VJbJnkZYQTvWEcB8szjO7FqKlGuf2m5Wm-Nd-82H-FStQ6nbafngbIG9etzmbEkLw406M3g97DpxwENiwzM6wEa9u3Pfcow2lp9gMKvMB3fNFzBnKN7jhz0OY5RX2x1HKPTtzw_7HPTGLESvxOr7jNfEfX1Al4ljJ0Ft6Tz3Eh4S2g8_02hxAMogpBnI6HsOXwkEO_k2g-Hn4JLvfD35s2clmHs49fK8QVR1frs7qK7A6ApvOf_TzLeg-Ncru4V5_a54_khBeCBoKfgxFdHgl3khFakC9pWx3ik4oHVkZ_xt1mt2nqzVntZUzLQFPskPYjZdvAt0fpQ8Fi1HYR7G6JrUsMaSfXw2Q2y6Lw597spEug0LKdBAtb3wt-b4YuQxTFJDmxk3MDre3dtXbyGYFbjlvZ868HSa4HFA6xBHjnr3Of6-0DBF38btK2PfIA0wYBjD-j-a0_uRwxeWQ9gseC-ZNo_HaUzqfigGLECMOiBlA_YGATle7DxTwP3X8jsvISYHAYt9AfMxllyGDQIUlvxe7k1xQqdM9IYqcYd7Qa8yc3NkHcjJgEXej4GA2LmWfo2Ym6dOjsSmfdi1h6Zb_HqL4Z7tFqmAGcP73DAqQB-RyT0GMr_KHTGyGjd74GzfU2N46QoUx-XjNMD28AFi8-taDisy_m3F8mvetkt764JfXBy5q8s_j7CK-7zXlJWN61pWnMpqhEhP9T8DXdGVx37vsPCPdrdQVi1S1E_6y8bszBgWHfXmfdJ1OylXl-4EqXgatuvsC1Hn18ikd1GdzstGGjQ40nU50lY0hSjzTbRa9JCDJ170oZ7X6FfYLRY2O2eBay8lVm8ZQeK6nabAN1l19fKcXtROArtca8-GZDeT0qOOsXHuBNB9507c7vBx5kdRyHh3IYwZ3tvxz5oUGq_iii-5A8KTfksSOI8i2I_z6ZshlmOczI1wlR8dmP3jQUs8KhcFfbzkNuL5sz770vE3-JLxLRV1ez7PzXESZ4F04cZpwVNWeFzwtMkjOEySBnLgowlnERpNK1IwSs9m8SnoL_m_0dOhLUlPp-KWehDCmV-6kd-FKeez3Ac4ogwGoQMpzGQjUNCVZ77ECfVcqpmzqSiXWr7fU5oWN7tGqFa2Q1P7tSBfNKaB6lmPxGj25q7DxdTp3_m7P8D-GHN6Q">