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

    <tr>
        <th>Summary</th>
        <td>
            [Hexagon] i1 vector crashes backend with error `Not a vector MVT!`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    ## Description

When targeting `hexagon`, the following code containing i1 vector crashes backend with error `Not a vector MVT!`.

This problem doesn't exist when using i8 / i16 / i32 / i64 vectors.
This problem doesn't exist when targeting `x86_64` / `aarch64`.

## Minimal Reproduction

https://godbolt.org/z/Wvsqd5vGx

### Code

```ll
define void @f(ptr %0) {
BB:
  %V1 = load <8 x i1>, ptr %0
  %V2 = insertelement <8 x i1> %V1, i1 false, i32 0
  store <8 x i1> %V2, ptr %0
  ret void
}
```

### Stack Trace

```console
Not a vector MVT!
UNREACHABLE executed at /home/henry/aflplusplus-isel/llvm-project/llvm/include/llvm/Support/MachineValueType.h:537!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./llvm-project/build-debug/bin/llc -mtriple=hexagon ./crash-reports/dagisel-hexagon/2.ll
1.      Running pass 'Function Pass Manager' on module './crash-reports/dagisel-hexagon/2.ll'.
2.      Running pass 'Hexagon DAG->DAG Pattern Instruction Selection' on function '@f'
 #0 0x00000000047c438a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:11
 #1 0x00000000047c453b PrintStackTraceSignalHandler(void*) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:636:1
 #2 0x00000000047c2b76 llvm::sys::RunSignalHandlers() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Signals.cpp:104:5
 #3 0x00000000047c4c65 SignalHandler(int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007f7b6eb55980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007f7b6da45e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007f7b6da477f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #7 0x00000000046ec2f0 llvm::install_out_of_memory_new_handler() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/ErrorHandling.cpp:193:0
 #8 0x0000000000e47593 llvm::MVT::getVectorElementType() const /home/henry/aflplusplus-isel/llvm-project/llvm/include/llvm/Support/MachineValueType.h:556:28
 #9 0x0000000001e0e1da llvm::HexagonTargetLowering::insertVector(llvm::SDValue, llvm::SDValue, llvm::SDValue, llvm::SDLoc const&, llvm::MVT, llvm::SelectionDAG&) const /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp:2743:5
#10 0x0000000001e111f9 llvm::HexagonTargetLowering::LowerINSERT_VECTOR_ELT(llvm::SDValue, llvm::SelectionDAG&) const /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp:2995:10
#11 0x0000000001e14094 llvm::HexagonTargetLowering::LowerOperation(llvm::SDValue, llvm::SelectionDAG&) const /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp:3276:44
#12 0x00000000043d492d (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1294:29
#13 0x00000000043d3044 llvm::SelectionDAG::Legalize() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:5102:13
#14 0x0000000004528645 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:892:3
#15 0x00000000045274cd llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, bool&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:688:1
#16 0x0000000004526f6b llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1603:11
#17 0x0000000004524516 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:467:3
#18 0x0000000001dcd8be llvm::HexagonDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h:44:23
#19 0x0000000003585535 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:8
#20 0x0000000003c6cde6 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1430:23
#21 0x0000000003c71c12 llvm::FPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1476:16
#22 0x0000000003c6d6b9 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1545:23
#23 0x0000000003c6d22d llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:16
#24 0x0000000003c71ef1 llvm::legacy::PassManager::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1672:3
#25 0x0000000000d1edec compileModule(char**, llvm::LLVMContext&) /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:737:41
#26 0x0000000000d1d192 main /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:418:13
#27 0x00007f7b6da28c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#28 0x0000000000d1c99a _start (./llvm-project/build-debug/bin/llc+0xd1c99a)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVWV1T47gS_TXhRZWULduy_ZCHAGFgC2YoYNmqfXHJlpL4rmJlLRnC_PptyXb8AXth5jLMXCrEtiSrz-ludbeUVLKn-QR78EGnXGVlvtO5LCbO6cRZ1N9_bHiBNC3XXOfFGk2Is-F7uoZBxJngE6Q3HK2kEPLRdGeScfgqNM0L85y76IFnWpYoK6nacIVSmv3FC4Yec71BvCyhC2b6LDWi7dCr-7sJdqF11gdyt8kV2pUyFXyLmOSqmOBQI77PlUaPBmWlrMgITfAZSCb11cP1lfjN_Gr21gkHtPcRSYgPN3Y6uFJaZhvbMsDZqPMKFLClAt1wEMGqbKzXjdY7NfFg-Bl81pKlUuiZLNfw9BX-_3hQf7Pg4dP--dxm-hNQ9KAHrGE_QtQNjK_ygqMHmTM08Z3VBEc7DbrGAZgtRpPwuB53fGxA2Ftkeu9dNPFOkZAU3vNOIrQHVU68pbH1YYLecGyH54XipeagSV7owXv1nOZt8IUVFYrbe7DKYRoFRuHPX8IviSy5tpwa1uHpiP7L2rrV4HXorqTZy0oDj1VSNH0v-aLt-P3zzXJxcr44vlyCl_Cs0pwhqo0_bOSWmwsvyie40pXYiUqZ_2muuIAmIR62U3CF_8C8zSNc8iITFeNdw22128nSjLii2QYseE9Fxe-edny2AUMFXniAc325XNwukarSbW4Qp9Ua1GPeRlqikX_BaqvSWSa3nagRolypiivj2xSWZwPMLm-7dO3C1UaDjbfXOmXVdndwILMQ4utSrku6RbB2KuMNBgSaPZeXVrlgU8YBtnnKCzskQ9OthjAExvBOm0hj37YgpjU_g5LRtdHstI1G-AzPWt93DY6bqrAhaEeVAhOFZ1VhFyG6Ng1XtKBrXkI7gqYtrFDBzahvEGUGW3H4JXHnDfbTxacpeDRcQLDWvCzQRaF0WUcEdAtrpo4NNZJVixKe62UbNq4PfuwgZ--0f36Y-V5EkbUmWMBbqCdV31yXeaGtfWqXx1E3qKSPiQT5nIIPELsWC20jwvd7scjTgev-XuR705CvC1jwM_Al47okhm_X7ei4YzqBl6IR9nqOc3BJYawV2bWPFx8BmHjEAO7w4hFenIbkJfWDKwxggw9F7wy4RZrtzOpzHd8ouEPqjTWbkQCNVflBdvedcKhGvwEXrsKU8DQI4shBSVJymweS0gTU6DB7nXanIi-q_XRdVHXHTm_Ag9lMyRmks2Nn72KYBeh0YoK-GEb9gEchKikQQm30MYERJsumJ_e_Pf6ZHh7xDFYdPlOWB9zMTFQA8zK-M_GgqmlCw4NFA8jgaqeeWU-HFLZwOiRkhCQMVy6iqbRM34ZEs1ob9i0rJBoJCQcmJzzDK6fnnJCgNRUikZVO5CrZ8q0sn5KCPyabg0O8szcsTXFn3Q3iYuupsTeEHfVhO9wPg9jrwTbp195AHXZvM_KyrjFMRmwgm-T9sUk4MIEBhB9YxH0WLne4y_qBuckFd7acvJSPHGLc-mAXKJxqaoM4fXtqhZoA_X2NlzKrVdOE-aFSh4PbJARZyo5-B6XW3lBThpvzQ-5s7i5AaKuKxjlw6HtdHDMJwhnq1XXdVfw2vdqni8-3y5u75H55cvflJlle3r1Bw7-IKuI4sIG904U70oXvxP436OLLjpe0LjT-T3Tg4dCsM9_vdDDMwB7zY8xMtqCFLJ62slKooFuudrboiZ-zueRrKvKvvNFL8_RlN9LJZ7O5eqciw2zUPnHDdKjWs1Y6PLXBEce-tX1H2BsR9hzf_zdLDTi9Vzj_BviB62DDwuvg-wP4AY6IH_wLfOMAdWsjclGwJWxsrLQfzGWMoyEUxYZPj04wohP6GXuVTt16TFWeHQuZ_TXwtVzkSie5NmsTEoB3Mu5iXNO8makA_Im0JzRqMLS3obBHMmW9og-7bVs011v4Q5sdVLf9YnBSKUUTdj7c5CSKumLVmJyMTE5WJH2jyRdCdFZXA7Mf9qJdgv4JZF3ieL0tmaEbjuj6gUtepVtWxZeiqZRaZgO6z_p-Dl-fhMP1PCg-XZaxKOXPUypMcid_CcL_PX22OG2N6ttM0uM6KFG9IAoCrx-KR4jNGUmP64skf5w5XwDTmDA2u57owAoPCkQvIxnjfX89uzbvtmc9H8zn4qZJk9lTD0W79nzPGVoIu0MuoZtBvfM6lyt7djV0v6bpQ3jYIs0lHQ88sgkjafxakXb1a5IL_GBkJG9MDuN-CSDsTPV9b76L7a4LHT-LDSz4kaX8scfxlfs6mZ9OxCXhsDDDg8LMYS5n3Gx-t7tc8IMLZRta2qp-MSx6Li_vr05kofn-HTKxhuJF2ces_m4wh57JPX6XajEZYWZujNGW5sWPEO-70bA0x-HwUArUE4UoScypU6I0LXXSYnnLAVWmzMGcPSerb22nnceeVnk2H3W7WRyN2GdxTFEt2MSKt_9eYE__6vcPx3-H33WO-NwlJCIeCcPoiM09FnsxPdK5Fnw-CY7bPBqc_o-_VB5VpZh__08uQez4-GgzD2PX9xnz0sihNOAkhozmRLHnEDckGVAQNOVCGeiA-SifYwdj13UJfOMgmoEWwNI-DmLGGYuyie9wMKOYGcHmx8Wjcm4xgBIVdJqaXnWdsNLydcF5Oz-t9EaW83P69Qmwbo4s3rkF-w9kwlnW">