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

    <tr>
        <th>Summary</th>
        <td>
            [MIPS] Failure to legalize load+call with vector of non-p2 integer type
        </td>
    </tr>

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

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

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

<pre>
    ```
❯ cat reduced.ll
target datalayout = "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
target triple = "mipsel-unknown-linux-unknown"

define void @_start() {
Entry:
  %0 = load <1 x i80>, ptr null, align 16
  call fastcc void null(<1 x i80> %0)
  ret void
}
❯ llc -O0 reduced.ll
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: llc -O0 reduced.ll
1.      Running pass 'Function Pass Manager' on module 'reduced.ll'.
2.      Running pass 'MIPS DAG->DAG Pattern Instruction Selection' on function '@_start'
 #0 0x00007ff7d6e62b42 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/llvm/bin/../lib/libLLVM.so.18.1+0xa62b42)
 #1 0x00007ff7d6e5ff9b SignalHandler(int) Signals.cpp:0:0
 #2 0x00007ff7d5c42990 (/lib/x86_64-linux-gnu/libc.so.6+0x42990)
 #3 0x00007ff7d5c99a1b __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #4 0x00007ff7d5c99a1b __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #5 0x00007ff7d5c99a1b pthread_kill ./nptl/pthread_kill.c:89:10
 #6 0x00007ff7d5c428e6 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #7 0x00007ff7d5c268b7 abort ./stdlib/abort.c:81:7
 #8 0x00007ff7d6b84ced llvm::json::operator==(llvm::json::Value const&, llvm::json::Value const&) (.cold) JSON.cpp:0:0
 #9 0x00007ff7d6d671ce (/opt/llvm/bin/../lib/libLLVM.so.18.1+0x9671ce)
#10 0x00007ff7d786db21 llvm::DAGTypeLegalizer::ExpandIntegerOperand(llvm::SDNode*, unsigned int) (/opt/llvm/bin/../lib/libLLVM.so.18.1+0x146db21)
#11 0x00007ff7d78908e9 llvm::DAGTypeLegalizer::run() (/opt/llvm/bin/../lib/libLLVM.so.18.1+0x14908e9)
#12 0x00007ff7d7890fdd llvm::SelectionDAG::LegalizeTypes() (/opt/llvm/bin/../lib/libLLVM.so.18.1+0x1490fdd)
#13 0x00007ff7d79ec534 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/llvm/bin/../lib/libLLVM.so.18.1+0x15ec534)
#14 0x00007ff7d79ef178 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/llvm/bin/../lib/libLLVM.so.18.1+0x15ef178)
#15 0x00007ff7d79f179a llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#16 0x00007ff7da5fd81e llvm::MipsDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/llvm/bin/../lib/libLLVM.so.18.1+0x41fd81e)
#17 0x00007ff7d739ab08 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#18 0x00007ff7d701abd9 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/llvm/bin/../lib/libLLVM.so.18.1+0xc1abd9)
#19 0x00007ff7d701af24 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/llvm/bin/../lib/libLLVM.so.18.1+0xc1af24)
#20 0x00007ff7d701b92e llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/llvm/bin/../lib/libLLVM.so.18.1+0xc1b92e)
#21 0x00005ea99532abeb compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#22 0x00005ea995320756 main (/opt/llvm/bin/llc+0x11756)
#23 0x00007ff7d5c28150 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#24 0x00007ff7d5c28209 call_init ./csu/../csu/libc-start.c:128:20
#25 0x00007ff7d5c28209 __libc_start_main ./csu/../csu/libc-start.c:347:5
#26 0x00005ea995321415 _start (/opt/llvm/bin/llc+0x12415)
❯ llc --version
LLVM (http://llvm.org/):
  LLVM version 18.1.8
  Optimized build.
  Default target: x86_64-unknown-linux-gnu
  Host CPU: alderlake

  Registered Targets:
    aarch64     - AArch64 (little endian)
    aarch64_32  - AArch64 (little endian ILP32)
    aarch64_be  - AArch64 (big endian)
    amdgcn      - AMD GCN GPUs
    arc         - ARC
    arm         - ARM
    arm64       - ARM64 (little endian)
    arm64_32    - ARM64 (little endian ILP32)
    armeb       - ARM (big endian)
    avr         - Atmel AVR Microcontroller
    bpf         - BPF (host endian)
    bpfeb       - BPF (big endian)
    bpfel       - BPF (little endian)
    csky        - C-SKY
    dxil        - DirectX Intermediate Language
    hexagon     - Hexagon
    lanai       - Lanai
    loongarch32 - 32-bit LoongArch
    loongarch64 - 64-bit LoongArch
    m68k        - Motorola 68000 family
    mips        - MIPS (32-bit big endian)
    mips64      - MIPS (64-bit big endian)
    mips64el    - MIPS (64-bit little endian)
    mipsel      - MIPS (32-bit little endian)
    msp430      - MSP430 [experimental]
    nvptx       - NVIDIA PTX 32-bit
    nvptx64     - NVIDIA PTX 64-bit
    ppc32       - PowerPC 32
    ppc32le     - PowerPC 32 LE
    ppc64       - PowerPC 64
    ppc64le     - PowerPC 64 LE
    r600        - AMD GPUs HD2XXX-HD6XXX
    riscv32     - 32-bit RISC-V
    riscv64     - 64-bit RISC-V
    sparc       - Sparc
    sparcel     - Sparc LE
    sparcv9     - Sparc V9
    spirv       - SPIR-V Logical
    spirv32     - SPIR-V 32-bit
    spirv64     - SPIR-V 64-bit
    systemz     - SystemZ
    thumb       - Thumb
    thumbeb     - Thumb (big endian)
    ve          - VE
    wasm32      - WebAssembly 32-bit
    wasm64      - WebAssembly 64-bit
    x86         - 32-bit X86: Pentium-Pro and above
    x86-64      - 64-bit X86: EM64T and AMD64
    xcore       - XCore
    xtensa      - Xtensa 32
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysWV1z46jS_jXkhpJLQt8XuVDieCbvm8y44tmcnHPjQhKW2SBQAUqc_fWnQLL1ESczZ3ansl5Bdz_90DQtQFgpWnFCLkF4BcLlBW71XshLzMhBNhe5KN8uQeT2f-4SuBm4QSBdgmwFC6yhJGVbkHLBWCfVWFZEwxJrzPCbaDUE_hIChIhTAz-rnQb4mY_sj0MT4GdJ_-xFwM_sj2lFAfCzKHC4j5xNFACEJvha0oaRI3ZNG0WY0_JnLl65wyhvD8fWybL7LcmOcgJfBC0hCNyt0lhqgBKAUgjiq07phmv5BvzeBEKAQtf6YgKXEPjXHjxAmrjAvwHoGjZaQt4yZp4xoxWHXnQ0LTBjcIeVLorOaaeYTECsA4DSo5Ek2ir3xOPlPPKMFdD57r6L_t3d4z28eXj4_gD8DC4F5EJDEwa4F69QC0gODeYl1HuqoGiIxFpIgOK-wUuAvA5pfXeTbW6gavOaaohh3lZQkkZIbWD2WjfKBAitAFpVVO_bfFGIGqAVYy_H_zmNFH-SQgO0okq1RAG0gsY95QVrSwL1nsBCYrWHOS6etcQFWXTuNxoXz7Bs6-Y0De4C2n9rKSqJa4hl1daEa8Pjw4B4vdFDyznlFWywUhCgeNXyQlPB4dp03GOOK2ICAQWHtShbk1soHqGhuGeGPkC8v11v4DL74gD_Zpl9gWusNZEc3nKlZds52xBG7FPvaXdkAVA8Ssa4zwOAfBe6B9d13Xi3i8uIRCgPELQh9jPgZ-pNdQ9rSbm2QfthoghQMihJ_LoVSkuCa4Aik6SUa5vvJu1XotHDtOWUA7RaLEwPzbtfk1QLJRZesvAAunIP2NIY8hUg35vyDHe7NIcbWnHMvmJeMhPcpHfbdatF0ZjJde1_JyA0BgqLAKWp2xPtCB2SaBsF_RqveNsJCkMwsuysyYScP8VMU-zlcLtt9F4SXG6fKWNbWjeMmHTCdkJMAHijGUCrsdqiAH4WmNIURwN-8Cv43GQDZp8ix6YWeqNohOeQx2afwiXpDC6aBzchEayUnQ-L1D0eM0C9qZI0ZtU2QtEDQCuJqSIWG8WmPg_Q8RQaRUkeQ5ybemGhdNlNn-3q2HlmxANCMkmhPAkKUo5S_U8lePd0qlv-0vyNU31QesSsJbAQXOk-6X9Fy66JRSFYaZ7_b_P92_ksTSdcyyj2CvLbyym15qeMNatpsuzjJCpz5I0GsMy-_HhryB2pMKN_Edn13tjafss1qYj8fqzno-hslt9ESQDKTDhabl_85d8tBl5g2U3oe1P6qZuQ9Kf0ZcuP7-HfpmI9TaigOZVdOc6qU0VeZl-6niMrw1D9A4R2ZTkhNClGcUqK0A8-IHS7IazrvRYl-UJ4xsubmmrD9W8SC63fCbFgRmznxclPiXW9GWNXWNHiioniWU1y7vSinS2y36VtWE1oh1PaOy9O8U9py5Z_5_e42FNOjgwntN_JTsWhwVIvXPsem0G_LxWG36Tm4nBXJh4Z8bunjTLrQfxD_H4rroFnaU3iOinosZ_i3B2nw4yA2UaNqJ_l_Gkwz-Cdj-fkNRG7Hs7LcW1ZrY3pcUP3PzP6rfAVlsQkeumc5Q4Fv8Dy3m49pzPdd_1dhjs0We7InTHMUzTOS0YqXLz1m8uB623dsHG5_sd5GhoTnsd3SUhwmoY-wjnJYSHqhjJyClexx9K-17Lpm944uBZck8Ox9DBWnM0rhGZ-3DiMYI0p_3gwjBVdWfLiMJqQnu04UeKFLtxuzUa12-Rvzblwa-FNRArVvt909du6c0aLvdk7mX2oPzgN5k6Rm9rz55Zyqud-ukcD7lhwuyfzzME0Q6OwhOdAJyM5N4iz4H5g9ozhgB3NQu4FXgg71F8IOgq8cAj69GjsvBCpzMIeTsUAJebUejq0GtCFkJVtpaPDvtXu7aHJzEVyFH1vNK3pX6SEeUtZuTj2L8kOt0zD7nLCnEf7U8r0RsKcVnqLr0JpeL3-w-hiVhLJ8DMZ31NA-EAqqjSRpIQ_LK4akYQQY1nso8CeRR2YZV3LLEmqNSOQ8JJiPrpUOJlsffSZCby9W_vorGFOZoY5rc46qsuq4PDI7X4Jv1x_g1_Wf6iRjizg8Z8Ds4frsaieiO4non7MveinYzYGdsQfG5wbsaxJPvbz2Whf5JiurgmD2eMDvKeFFIXgWgpmDsAng7zZjQyu1iubnCYjzqDnzW7EpFf-gInRZXPdj2NTqOe3gce1s_n_fw_C8kDZIFxSSQr9BM3pQtakpFgTeId51eKKDEZ7csCV4L3R1641iBnmmJ4w70xrJBSCVybRfAQd6CMnpxremU6Tb2f0ogA6MAo-0quj5HkYwL3QQgqGYZS4rgt3uKbsbaRMGzVSvl1vTOh6Eh9E29gck3Gw6Ql9atNN0jubj2equ-D8gN4nZqoJfPdktlmbFgivyKEhktrbDgbC5WDAXxp9OIXh2-Pt8jaD6x9P_XTMFE_VZ6TYDWVQbJqiW3xWcS1eiVxfQx_NNBh5pwHvbiZKo3V_VIqCmcY7mCiYwMjIdUdL1RSm9R8Kfl2ip6cn5-syenp6GmlTVbz07E8Z-XC7uXYeZ0qnSPQzOVdSzVDuHLgxrZmwn91eOCFt5S_pRP6YjuVUvgzg69sH5xHeiYoWmM20ToPptebTapVOg-mV5lOq3pQm9V9HJdv6zyDW-7YeCtYP05oJ-3rWCz-pZy8EwmG6HkcxecWqPuaVA_9F8kwpUufs7d2QjOawSsea83EdkmjkrZ_upyQy7-g14Zq2tbOWwt5g41y8kImpMzjpk6A3vbmPgh_WKLtfjjP2UAhJTv6eroUcI2rCFT4Ju9Zx2Zy-yFyUl36Z-im-IJdejPwgDNPYv9hf5rsoRsgPURJGpet7AfbDXVkWoVfGfuGiC3qJXBS4iYfcNIg8f1EWaZSkuySJy8JNkgAELqkxZYvjRunC3uFfei5KYveC4ZwwZb8aIcTJK7RSgBAIlxfy0l7_522lQOAyqrQaYDTVzH5uMmUMhEu4wpS1kkAtIOsvX-yHFoCu7NeTV6r38IUUWkgodpAL7jQI0u6eC-q3hly0kl3-_jeJfkgvl-i_AQAA__8nbav8">