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

    <tr>
        <th>Summary</th>
        <td>
            LLVM ERROR: Do not know how to expand this operator's operand!
        </td>
    </tr>

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

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

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

<pre>
    # Description
The following code crashes x86_64 backend with "LLVM ERROR: Do not know how to expand this operator's operand!".

# Minimal Reproduction
https://godbolt.org/z/KPeYhGx4o

## Code
```
; ModuleID = 'Fuzzer input'
source_filename = "M"

@G = global <8 x i2> zeroinitializer
@G.1 = global i8 -128
@G.2 = global i16 0
@G.3 = global fp128 0xL00000000000000004004500000000000
@G.4 = global bfloat 0xR7F7F

define i8 @f(double %0, i16 %1, i8 %2, float %3, i8 %4) {
BB:
  %CastFPTrunc2 = fpext double %0 to ppc_fp128
  %LGV = load i8, ptr @G.1, align 1
  %RP = alloca i8, align 1
  %CastFPTrunc1 = fptrunc ppc_fp128 %CastFPTrunc2 to bfloat
  %L = load double, ptr %RP, align 8
  %Castbitcast = bitcast i16 %1 to <8 x i2>
  %5 = load i8, ptr %RP, align 1
  %CastFPTrunc = fpext double %L to fp128
  %CastExt = zext i8 %LGV to i16
  store <8 x i2> %Castbitcast, ptr @G, align 2
 store i16 %CastExt, ptr @G.2, align 2
  store fp128 %CastFPTrunc, ptr @G.3, align 16
  store ppc_fp128 %CastFPTrunc2, ptr %RP, align 16
 store bfloat %CastFPTrunc1, ptr @G.4, align 2
  ret i8 %5
}
```

## Stack Trace
```
LLVM ERROR: Do not know how to expand this operator's operand!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /opt/compiler-explorer/clang-trunk/bin/llc -o /app/output.s -x86-asm-syntax=intel -mtriple x86_64 -O=0 <source>
1.      Running pass 'Function Pass Manager' on module '<source>'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@f'
 #0 0x00000000036a1558 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/llc+0x36a1558)
 #1 0x000000000369eecc SignalHandler(int) Signals.cpp:0:0
 #2 0x0000729d9f042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x0000729d9f0969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x0000729d9f042476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x0000729d9f0287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x0000000000729932 llvm::UniqueStringSaver::save(llvm::StringRef) (.cold) StringSaver.cpp:0:0
 #7 0x00000000035f9c18 (/opt/compiler-explorer/clang-trunk/bin/llc+0x35f9c18)
 #8 0x000000000356947f llvm::DAGTypeLegalizer::ExpandFloatOperand(llvm::SDNode*, unsigned int) (/opt/compiler-explorer/clang-trunk/bin/llc+0x356947f)
 #9 0x00000000035064b1 llvm::DAGTypeLegalizer::run() (/opt/compiler-explorer/clang-trunk/bin/llc+0x35064b1)
#10 0x0000000003506911 llvm::SelectionDAG::LegalizeTypes() (/opt/compiler-explorer/clang-trunk/bin/llc+0x3506911)
#11 0x000000000347d221 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-trunk/bin/llc+0x347d221)
#12 0x0000000003480068 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x3480068)
#13 0x0000000003482849 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#14 0x0000000001c24011 (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) X86ISelDAGToDAG.cpp:0:0
#15 0x00000000027d4c10 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#16 0x0000000002cf9742 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x2cf9742)
#17 0x0000000002cf98c1 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x2cf98c1)
#18 0x0000000002cfb570 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-trunk/bin/llc+0x2cfb570)
#19 0x000000000083e154 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#20 0x000000000073bb5e main (/opt/compiler-explorer/clang-trunk/bin/llc+0x73bb5e)
#21 0x0000729d9f029d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#22 0x0000729d9f029e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#23 0x0000000000835d9e _start (/opt/compiler-explorer/clang-trunk/bin/llc+0x835d9e)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0mE9z27oRwD8NdMFIQy7_H3SQLUvN1G48dppJTx4QhCjUEMCCYCz703cAUhKhKM1L7L55SUgCu_tb7GIXEGlbXkvG5ii5QslyQjqzVXq-5PVnvVT1pFTV6xxBhJespZo3hiuJgiUKFl-2DG-UEOqFyxpTVTFMNWm3rMX7PH1KY1wS-sxkhV-42WIEcHv79Q7fPDx8fkDRAi8VlsrgZ6le8Fa9YKMw2zdEVthseYtVwzQxSiPIhhdZIQgRwKy3P_wNEb7jku-IwA-s0arq6Ilxa0zTomiBYIVgVauqVMLMlK4RrN4QrP5-z_61Xe9jdabSar1WFRs-pMHwf_8aXeE7VXWCfVpiFC0xgmzVvb0xjblsOoMg6ye2qtOUPW24YJLs2DAX7hCAZy8O1m6sFqokAqPoOsd7zAFFN_iNacUlN5wI_sb0SWIWjmV4jqch5KNh8IbDFAejwWg8uGlCyHGwvw3O_ouDIE5G7yMF8VhBuRGKGBzsH7JVthq7VrENl8zSoTjYIMgr1ZWCYQRJgODacSFIQvec20ewj70-BEl0GogRFBhlV73iqysbVfeI7eg1ac3q_ovuJO0d3zRsb_DInM2vpqFPztuR5O36qxMQilSY59ZgYzTul9i-EcFricORyMO9kyBCKEoGmR9njZDCAcnYlxPFD-BGDWs55jvR9d4cCS3IyXR-ZrrkhpLWOOnD82G5raFxlo1Ek4uL4Zv6iZcX1_3W2jpfcyt0s-_Z3uz8PsQ2FEZZysPc1ijN_A3huzcO1wlw2F6D-OD1YNQLMPwoMwhdCpAnGo3W44z3pwH-2XqmHm95TP9xCnnG4wvcmh3WMRm2YLa8XL_GVe7REPqMv2hCLxe7D6nZTtP97c3i8Qa3XbnjBhNcdjXWrFHaWDVnlZqbbVfOqNohWAnx_fDPtNHq34waBCveth1rEaywNc8lFV3FsNkOXcg1H2PdGtpF72jV7Zpj5QhmKCjutao12WGi627HpLEQGMFKNdYKVbuGC6anbN8IpZm23wSR9dTu5WcEq5JLB0fxVFk50jRWujNNZ2Ytnu7zdEra3bR9lYbsUbTk0jCBpzujeSPYoVdOP6NoGdhU77vGcVeGFvKhk9J22Ya0bd9upOty-N5-uCOS1BYtw0rinWtNdpanDLJhIeCSwm95ipeL9RRFN8vFGn-SrdF9I8WPTLC-pfb6Nwfb1oKr6kO7wwiiAAf7Y7-IUhImSY5dAKMFihbta9s_3GsujQtJn3qQnyZp8vKkWqMZ2SFIXQeQxlV_yP8kMAiugv3AgqA4wYY-bMEYpfiR15KIvxFZCas0H2z3n9sZbWz-BO7PUREMijIoqmITxJBAMNAKXiJY9UGeCi67_bSWXT9AZ62apQ7PiXhwka-zSIsNxY3Zakaqp2cuxO8ZcPKegfgcOs5SXLfOz9-Fj7PU0534uiHPNhEmpd3rv6XZCXqa03HMrP4iglGC_VPy_3Ts0Wgu60fynekh78h3P8f6GQ9sM-TVjCpRuTifRC_HOvOSJtkUNMzfl5m9Ds_L3DeSFnG2GXm5XKy_vDbsltXDqdB9vXGVeGWbx-dD7R27vPyHPdHCwu6oTrpjf_UhW6vn8xwofAeCNC7DXzqgO-k43ovjrB1x7EYPznGKcIxzLHHLxbr_ciCzlO0HQRWhD-WXnzirAH4G9emRif6rvZWsmVzI6mbHjeX9ALjetgcHPlweBGn-S7j-60KIK9JyeiUUfW69HDz2LaqkPbyl70d3ZB56dIYOeVz8El138rO8I3TLJTtQeug_jB3YZw3RZha44nGm-scKYvniMV9IIQ7C0CoiUsnXnepabG-LbeP6YtFb_5ands-oj2D-lqdWx0HfZchkDAlZFdMwwD_VbI8hI6aLMP9z5S7ou8zl1X-gmyKLx_V_dW9FDwei3yb64zwcSLw8zM5Rcxr-BdT-pwU_jsOnD8HMqb_T8zPMMsnGkRasJvR1OLWdgD_tGjGu2v8fWMviwXp9JcgjFiYxHhQfF45uiXZ9zrW6E5m9y1wradj-UHqEoBfTDAL_mBGVZcLwjnD5Lo96PWOHIDw7KRVV8ZtHRyfi6YRznSwO8NOTFXtqDdHmaeTJX7bCYt9KdBaKpCoY7vW_a5F6TUdTh_uZYXrHJTFs-D2xP6jay9rjp_XjzfprP_16sGavw52WrLIzwqg4u9xOqnlUFVFBJmweZmGSBfbUPtnOs6IqaVlBGEMMURLRguVhApsohzIhpJjwOQQQB0kYhwlkQTKDMmRFHtKAkrLaUHsnYjvCxcwm3kzpeuKuqvMCwggmgpRMtO7XVgDJXrAbRAAoWU703F1yy65uURwI3pr2pMVwI9j8I-7jk06L-Z9fuJ0j_w0AAP__iYJ9gQ">