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

    <tr>
        <th>Summary</th>
        <td>
            "Expected FP_TO_INTHelper to handle all remaining cases" when round-trip converting bfloat and i32
        </td>
    </tr>

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

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

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

<pre>
    ```
define dso_local i32 @main(i32 %argc, i8** %argv) {
entry:
  %bf = sitofp i32 %argc to bfloat
  %i = fptosi bfloat %bf to i32
  ret i32 %i
}
```

```
$ llc -O2 bf.ll                                                                                                                                                            
Expected FP_TO_INTHelper to handle all remaining cases.                                                                                                                                                            
UNREACHABLE executed at /home/vext01/research/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:22388!                                                                                                          
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.                                                                                                        
Stack dump:                                                                                                                                                                                                        
0.      Program arguments: llc -O2 bf.ll                                                                                                                                                                           
1.      Running pass 'Function Pass Manager' on module 'bf.ll'.                                                                                                                                                    
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@main'                                                                                                                                      
 #0 0x00005581ee67dfc0 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0                                                                                                                                         
 #1 0x00005581ee67b80c SignalHandler(int) Signals.cpp:0:0                                                                                                                                                          
 #2 0x00007f8d4821e140 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14140)                                                                                                                                
 #3 0x00007f8d47d01ce1 raise ./signal/../sysdeps/unix/sysv/linux/raise.c:51:1                                                                                                                                      
 #4 0x00007f8d47ceb537 abort ./stdlib/abort.c:81:7                                                       
 #5 0x00005581ee5c1f6a (/home/vext01/research/llvm-project/build/bin/llc+0x3316f6a)
 #6 0x00005581ecf6d398 llvm::X86TargetLowering::LowerFP_TO_INT(llvm::SDValue, llvm::SelectionDAG&) const (/home/vext01/research/llvm-project/build/bin/llc+0x1cc2398)
 #7 0x00005581ee350d43 (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) LegalizeDAG.cpp:0:0
 #8 0x00005581ee3604d0 llvm::SelectionDAG::Legalize() (/home/vext01/research/llvm-project/build/bin/llc+0x30b54d0)
 #9 0x00005581ee4547c3 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/vext01/research/llvm-project/build/bin/llc+0x31a97c3)
#10 0x00005581ee458497 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/vext01/research/llvm-project/build/bin/llc+0x31ad497)
#11 0x00005581ee45a469 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#12 0x00005581eceb579c (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) X86ISelDAGToDAG.cpp:0:0
#13 0x00005581ed8b57d0 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/vext01/research/llvm-project/build/bin/llc+0x260a7d0)
#14 0x00005581edda9b44 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/vext01/research/llvm-project/build/bin/llc+0x2afeb44)
#15 0x00005581edda9d61 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/vext01/research/llvm-project/build/bin/llc+0x2afed61)
#16 0x00005581eddaa9f5 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/vext01/research/llvm-project/build/bin/llc+0x2aff9f5)
#17 0x00005581ebc8bf43 main (/home/vext01/research/llvm-project/build/bin/llc+0x9e0f43)
#18 0x00007f8d47cecd0a __libc_start_main ./csu/../csu/libc-start.c:308:16
#19 0x00005581ebd27dba _start (/home/vext01/research/llvm-project/build/bin/llc+0xa7cdba)
```

This is on today's `main` on Debian x86_64.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVWN9z2ygQ_mvkF8YahH4_-MGpkzYzaZNpcjf35kGAbK6ypAGUOvfX34Lk2HKSttPxJTlGtmCFlu-DZXdR0fCHmZfg4cILD8-5KGUtENfNsmoYrZAMCfIivKGy9kjmWiSmasU88gHJzCNzuAbZvUdy5KVnvSpRG_XghfO-hWyfokReuEBamqZs0YEyZBpUlFVDzUFv6TqXrWm0HJ4OSqA3vLzrqoTZ6ZK9zEsXQ2XM7nkhiVBVMTS9JjCKX1XoHZce8vm2FcwIji5ulnfXy8svd59E1QplJ2ZNa14JRIGHEnbZZL1CjGqh_bcG_6PSE_vjy9fz-YdP87OrcyS2gnWWpFv2i3WzEXC7F1uDA6gooQVVbA3VqrrfTFvV_A2TMjTtTRbwfwfmJaz0ryzp_y9vRXXVfBcKJsZnbQsmSkiYgSkHr0335up8fnuOdFdspEEUFd0KFq1tlHEraUyr7QYiF3CtpFl3hc-azQHFMXGpdSc0VBDYAJI1qzoukFkLxBTVa1RQ9s0oysSrWUJP89bAwIh3GzvXrzX0f116aniYyhvVrBTdILC2bgOez67b_8erHJWeWjBQ-9rVzoe0VGvYiOlFVzMjmxrdWMFnWtOVUCBHINo0vAPnAy3HGe7v0un0BMkLBMFHoMX849QLz-GGLmttVNdTBtchXG3gW-7mAtqPUTJ9W3K7MoRHj4QY4S2GEsdZIESS8pJhsFhZG7cz76xLuJWrmlafXPCA1czuG8ldcM9R_0gPvhLb31tzeyx7ksERySLDDB2zAsrvndGTsqdIBoppmfEoI4EIIoyWS4iEplFiqWyczB4j3zZLlkk0rWTdbaeruusftGatBOW-bnzskTO8DSLQYifl3dAMD2mmHAdMBEhRqQXygYR2iwcV37UeNBetDXpdLbe94N5RBdo2TbDv-QyWOA7g7xVD_I_Knmw0IstEEYcpooVNARw9w_vVdCLHI7M8ftfH7AeOR_slZkGZ0MF-fj3VKjpZcXu3fg8eMmdSYRgkoA2Maj9ccjgcKxMe5hlyaQwkOOEcfG6fqe0ys17sWo9JLqDbv3G7-JNWnbDHkAPhzj-D4_ZIYs2aNeC_T0QsYIwA7hGxdDSPYYx5FNrhaN3UD5um06imG6Fb8LH2vScwr8SKVvIfMRAeWtftEdkvDReDP971gZcPPdgeUjaGlOCI45cmaTSqm6X8VFaAixgGHk1WPkIWxWDx4QvIbJreSz8A9Y-intf8HNJkt7KnhBnQHFA8wrShBB_BzKI8_SnMXjqvqjOqJTuD4_M3PVrEx8TJmeRgnicjwQHjiERwRIJGSf5TEqqrr-vPlK1lLXZ4RySePNux8FsKDspFkmPVT63U4iMjjwCOL83ZzzYOuAnQedecAvNwFNzpex5keAiSZwBytJWONNuM-ADTs2CeztwJ1p8kmKYHe81Cj0bQOc2LKDqAfnFj0e7S9zcBTUsBmEag42PQPAl-AfRnd-4YL_ogOjFgwDMCnBwBpnkZHwCuwLOyh75-AP1y0-6N9xVgl4BqBHsUtQqWFSVELXt8OdGYucCgcTRkdpTpMI4pZK-Q3rClNuA8lm58m_Uw3e3yu75qO01dJ5cChTizuVyyVz4KLAUnKS9AuXvjRIxoykDnntFzXxbv1lIjuMDHm4bTBzgLwoky6c-FCbbyhSgkrVGfnPsTPgt5HuZ0YqSpxMwj5Pe-7cGL6Pta1Eg1Xc2nRsnWhpl7oYztM3w9dZ-FQjLpVDX7_a9LMUxyOlnPkjAUCcSdgONIlJBRMoIJ4VFUxjjGSTapaCEqPfPiM4BXi-_IqYC6Fy8mcmZ74zjIgyjGmPhFGYQZZ4KEHCdBLOA8bTlWvsXhN2o1UTMHqehWGh5WUhu9fwibCw4GQrjhQD_tzLpRs369J27kmUP-L_NZ9hw">