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

    <tr>
        <th>Summary</th>
        <td>
            [x86] Cannot select `X86ISD::VZEXT_MOVL` when targeting Intel Sapphire Rapids
        </td>
    </tr>

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

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

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

<pre>
    ## Description

The following code crashes x86 backend with "Cannot select `X86ISD::VZEXT_MOVL`" when targeting `sapphirerapids` CPU.

The code can successfully compile without specifying CPU.

## Minimal Reproduction

https://godbolt.org/z/asEvGcG7e

### Code

```ll
define <8 x i16> @f(i16 %0) {
BB:
  %I1 = insertelement <8 x i16> zeroinitializer, i16 %0, i16 0
  %I2 = insertelement <8 x i16> %I1, i16 0, i16 %0
  ret <8 x i16> %I2
}
```

### Stack Trace

```console
LLVM ERROR: Cannot select: t37: v8i16 = X86ISD::VZEXT_MOVL t48
  t48: v8i16 = X86ISD::VBROADCAST t3
    t3: i16 = truncate t2
      t2: i32,ch = CopyFromReg t0, Register:i32 %0
        t1: i32 = Register %0
In function: f
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-latest/build-debug/bin/llc -mtriple=x86_64 -mcpu=sapphirerapids ./crash-reports/dagisel-x86_64/sapphirerapids/1.ll
1.      Running pass 'Function Pass Manager' on module './crash-reports/dagisel-x86_64/sapphirerapids/1.ll'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@f'
 #0 0x00007f94f47e0f2a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/Support/Unix/Signals.inc:567:11
 #1 0x00007f94f47e10db PrintStackTraceSignalHandler(void*) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/Support/Unix/Signals.inc:641:1
 #2 0x00007f94f47df756 llvm::sys::RunSignalHandlers() /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/Support/Signals.cpp:104:5
 #3 0x00007f94f47e1805 SignalHandler(int) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/Support/Unix/Signals.inc:412:1
 #4 0x00007f94f2f75980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007f94f2271e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007f94f22737f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #7 0x00007f94f4654424 llvm::report_fatal_error(llvm::Twine const&, bool) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/Support/ErrorHandling.cpp:125:5
 #8 0x00007f94f4ff0e5b /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3817:3
 #9 0x00007f94f4fee3f2 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3719:9
#10 0x00007f9501023b49 (anonymous namespace)::X86DAGToDAGISel::SelectCode(llvm::SDNode*) /home/henry/aflplusplus-isel/llvm-project-latest/build-debug/lib/Target/X86/X86GenDAGISel.inc:333210:1
#11 0x00007f9501019e47 (anonymous namespace)::X86DAGToDAGISel::Select(llvm::SDNode*) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:6171:1
#12 0x00007f94f4fe2199 llvm::SelectionDAGISel::DoInstructionSelection() /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1178:5
#13 0x00007f94f4fe11ea llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:949:3
#14 0x00007f94f4fdfbbd 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-latest/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:701:1
#15 0x00007f94f4fdf64d llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1641:11
#16 0x00007f94f4fdcb27 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:480:3
#17 0x00007f9501007b7a (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:193:7
#18 0x00007f94f7ff51d5 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:8
#19 0x00007f94f713d676 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/IR/LegacyPassManager.cpp:1430:23
#20 0x00007f94f71424a2 llvm::FPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/IR/LegacyPassManager.cpp:1476:16
#21 0x00007f94f713df49 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/IR/LegacyPassManager.cpp:1545:23
#22 0x00007f94f713dabd llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/IR/LegacyPassManager.cpp:535:16
#23 0x00007f94f7142781 llvm::legacy::PassManager::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/lib/IR/LegacyPassManager.cpp:1672:3
#24 0x0000000000419b16 compileModule(char**, llvm::LLVMContext&) /home/henry/aflplusplus-isel/llvm-project-latest/llvm/tools/llc/llc.cpp:737:41
#25 0x0000000000417eaa main /home/henry/aflplusplus-isel/llvm-project-latest/llvm/tools/llc/llc.cpp:418:13
#26 0x00007f94f2254c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#27 0x00000000004176aa _start (./llvm-project-latest/build-debug/bin/llc+0x4176aa)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWVtv27gS_jXMC2GDF938kAfHjrM5SE4DJ1sU-2JQEmXzLE0KJNXE_fUHpKzI0qZIur2kRWPLvMx838xwOCKZtWKrOD8H8QWIl2escTttzv9gXw4rYXdnuS4P54BQQChcclsYUTuhFUBLgObt58OOw0pLqR-F2sJClxwWhtkdt_ApS2DOir-5KuGjcDsICFkwpbSDlkteOAgS9ClLru-XgM4BnX_86_LTw-b2w8cbkCBACHzccQUdM1vuvHSQIMvqeicMN6wWpQUJgou7P6djQC0MpqBtioJbWzVSHmCh97WQPGDRjYO25oWoDl7yWMiR861QYs8kXPPa6LIpxuR3ztXWYycrQFZbXeZauqk2W0BWXwBZMXv5-aq4Svk_ZXvxC10OexLU_peybSh5JRSHgC4y-AQFTgC9hCBCFSCZwAkEJEaAzCBIL9oJFxceTXiEvvcaQ0CXUCjLjeOS77lyI3FfuNFCCSeYFF-4AWQBe9HtMzqVSF6VGPT2c08FHuUY_tIccrRCuhyZ42Xr3TtW_A0fDCteNmKhldXy2Hdz8_EWXq7XH9aAzuEgCn2Do6n_-txalS7hy2EJXZR1HPzj16dcrD_Ml4v5_QN0tJsB_TOdw26CM40qmOPQkX4I9L_8IEoAWRS7MHKh68PK6P2ab6ELFl3zrbCOG0DngpKBcY9S8FFKENANPxl4rWDVqDak6RxWbevdzeX8_hLaJt8LBxnMmy00vNbGQafhKN6F2zX5tNB7QFZSfu6-JrXR__OGJSthbcMtICvIVAmFKmRTcuh2xyQR0oPzHjyuvtanZbOvn-MYTQGa3Rm9NWwPmdk2PuI8CDgd6ZtI5rj1avNGyHJS8rzxKzEXKows4GTvjKglB3T5lCWbJIKTfVE3gC6HeSWIDggnLXlPoWRbYbmctDMBWY1yEVnhabdwsQe9bpTyyaVm1kJA0tXR3PDON9wyxbZ-vaVQK7jXZSO5H_Udqv3koJ68pP5TlsDl_GoC6OVyfgWvlXWmTWnwPiwEHwktmi4w_LQ23aTH6AKEIoieEEIorWZRFaUcVYTB4P4Q-vZg24c7I5QLDm3XKMn6QYY9brR1hrM9IElIEcqFTEZWO73n_osrc_A5tJK1bKz_m3gjfNXpXQSKHJDVfVN74wGy-lOJJ98gtopJOxWqAHQeJ369Y9yzwiNWGJU5HFFoZfzBVCm947LPWpSAzH8h7iTyy_oENhnCLqs0Tl5yxrpRA_QWkOzn4O4AF7VfwxhF3tw9YDq2c4ZiODbsrw2GCJOhUaNTjKRK41mG4GZjuHXa8I1xMFjvKL1dlBMpVPM02aqm7ajdznBWTq2eIkAu0BMms8xv1r2aeKCGpJhnKTRMWJ8H2hzms6wUeTFZfPzP41_5808yJalPA4EHIKupzxr2YEte-2zQtDTtwX4OaFTjfwbR0xD-PopQjyQZIaFphSHLdWD6NiSubK0RZgUl2UhJOvB8EkcRiU5Ctc12m4o5JjfcGG0GGePh0VdCfk93x4yRay1_TpRceu0hGoXadoFM4mEgZwM6VYV4nP8wLL4yvOJ-23pOzcv51ejn9T2XR3Q0wz6h0R7ebAiPc1qRE2uP5Zy2euULvd_77eDEA_fL__p61ee7BWxUeHMoYbFjpnPLsOcHL-JvNkmKZ4DOZ89lIz7ZuGKEEaF55OFlTGl12OvGQsX23NZhs5q1pD9lyXJ-9aC_YqavGei7aA-rl5b9Q3gJAmT1KUvazyv-TLhNY5RSglGfyTxlPKSMZzxKv4PyT6E78PI_eXoMHZ6jaxOc4iFPMop2gmezV6N9qU9qoJMS6IdujN8athinWZ9oPDc64oYxZ69yO6qdq_JyL1zQ-K60ZtGsz0-eVTRkVVZ5Xr4xP10wK4oLqYu_B_EopLBuIxw3zGkD6GLcVXLHxFGS0iXf6HCaYQdDT0LCZzNnGu6_KyZteAg1H70ctIVBbdtvBqfdI5P39HyKRms1Hns-id7q-bmUvfPtwPvPL1d9ifCOi_hYp5-wTkasi5ykr7I2jfqgblmxE4p3BAes_9H3rrSjDA0XeTrcflCap-xfbT_vbIg37Up4Rn249-wHFWJaVTEuY_hVyHfM2hOyL7L86X5-AVOXwH1AZz25QX2ZYlom6emL5-rOz-3OON6H1vUakNUN37LicAKm81ZEfbCSPloJGlKKSMTIGyjdhqObYTQem34lnTQJiaeng8ceql4vd29_a45xFI9cRsYc2aCKkEHS8Tiql3e9r_u88s6kYhqP_EbHYZhm-HVOvwsfnKRksAmQrtJr_0V4luOku4t5jiv_GhleJebDKurm5uPtQivHn37cnu60lrY9EW4_u0olXAJE_aZN4hH0lDMG90yon4giwr7-xycGHJ3OxFGRpXCzkSIvNtYx4zYdpLec1BS26Q6M2sfQGeSEYxsaRf25jVefjo2QMAZbxT6dfPMpfDgNa8U8H4c9X9qclee0nNEZO-PnOElxnNGEkLPdOS9zlPIIJVUVFTzNZpyzlFcZjuIYJzE5E-cEEYIJwQhFKSJTGmUsSbMizXjMyrgCEeJ7JuTUo51qsz0LtxPn8Swh2ZlkOZc2XIQSovgjDJ2AEBAvz8x5YJg3Wwsi5Kt320txwslwg_qUJSBewrdfcY7vN6-V4xLeH8_24Toc7p81Rp7_-4uXwO7_AQAA__8_tzsO">