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

    <tr>
        <th>Summary</th>
        <td>
            LLVM ERROR: Cannot select: t14: v8i64 = X86ISD::VPMADD52L t5, t16, t18
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:X86,
            crash-on-valid,
            llvm:SelectionDAG
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          abhishek-kaushik22
      </td>
    </tr>
</table>

<pre>
    ```llvm
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

define <8 x i64> @emulate_hi(<8 x i64> %0) #0 {
entry:
  %1 = and <8 x i64> %0, splat (i64 1)
  %2 = mul <8 x i64> %1, splat (i64 4294967295)
  %3 = add <8 x i64> %2, splat (i64 1)
 ret <8 x i64> %3
}

attributes #0 = { "target-features"="+avx512vl,+avxifma" }
```

This IR fails to compile with trunk with this error
```
LLVM ERROR: Cannot select: t14: v8i64 = X86ISD::VPMADD52L t5, t16, t18
  t5: v8i64 = and t2, t18
    t2: v8i64,ch = CopyFromReg t0, Register:v8i64 %0
    t18: v8i64,ch = X86ISD::VBROADCAST_LOAD<(load (s64) from constant-pool)> t0, t20
      t20: i64 = X86ISD::Wrapper TargetConstantPool:i64<i64 1> 0
  t16: v8i64,ch = X86ISD::VBROADCAST_LOAD<(load (s64) from constant-pool)> t0, t22
    t22: i64 = X86ISD::Wrapper TargetConstantPool:i64<i64 4294967295> 0
  t18: v8i64,ch = X86ISD::VBROADCAST_LOAD<(load (s64) from constant-pool)> t0, t20
 t20: i64 = X86ISD::Wrapper TargetConstantPool:i64<i64 1> 0
In function: emulate_hi
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0.      Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/llc -o /app/output.s -debug <source>
1.      Running pass 'Function Pass Manager' on module '<source>'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@emulate_hi'
 #0 0x0000000004114118 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x4114118)
 #1 0x0000000004110fc4 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007dc1c1642520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007dc1c16969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x00007dc1c1642476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007dc1c16287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x00000000007b7d63 llvm::json::operator==(llvm::json::Value const&, llvm::json::Value const&) (.cold) JSON.cpp:0:0
 #7 0x0000000003ea2241 llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3ea2241)
 #8 0x0000000003ea6bd9 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3ea6bd9)
 #9 0x0000000002294a77 (anonymous namespace)::X86DAGToDAGISel::Select(llvm::SDNode*) X86ISelDAGToDAG.cpp:0:0
#10 0x0000000003e9e0fb llvm::SelectionDAGISel::DoInstructionSelection() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3e9e0fb)
#11 0x0000000003ead4d0 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3ead4d0)
#12 0x0000000003eb0b0d llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3eb0b0d)
#13 0x0000000003eb20f5 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3eb20f5)
#14 0x0000000003e9d8ef llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3e9d8ef)
#15 0x00000000030129c9 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#16 0x000000000365b4e8 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x365b4e8)
#17 0x000000000365b721 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x365b721)
#18 0x000000000365bf8f llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x365bf8f)
#19 0x00000000008eee3d compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#20 0x00000000007bfba6 main (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x7bfba6)
#21 0x00007dc1c1629d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#22 0x00007dc1c1629e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#23 0x00000000008e5295 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x8e5295)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```

The guilty commit seems to be 212ba92d308d52451dd27dfca06fd3b32f2dce77 and this is a regression from `21.1.0`. @Arghnews can you please take a look?
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMWN1y4ygWfhpyQ9mF0P-FLxQ7zmYrmU7FXb29VykkkMwYgQpQOnn7LZAcy45nu7PjmdqpaUcCzne-88PhCGIMbyRjCxBfg3h1RXq7VXpByi03W7ab7UhvtnyH8VWp6NsCJGj4X4iXFqDCEt0wCymxRJA31VsIwhUEGLNZC8KCzTqcIhAWIfY_7jU4fnVPSeR_Zvz9IcAZCIsAZ7M6Q-OT9EPJXjyJZhu3DOMDD6t5J9iew2uWPCfRrJc7qX7ImeCyf501sh9EACooq7l0y5cZfIVe-w0EEWJtL4hlz1sOHI-jWRwjgHMIcIggSK8BKpi0-g2EDhC6-cDrJ5KeAnvRJTSdIBYCnPEkggHA-V4Qe8G2Fx8Fgw-CEc6jPElxHk8QwkE1PaMa_6FqzezH5aHzULoa_ESs1bzsLTOj3c6_6bXz8eD4Wc2I7TUzzrXhyv3ia_LyGgf4RQC8HN543RKAMRxx96k06Pi65QbePcGacGGgVbBSbccFgz-43UKre7kbH91CprXSJyD3998e4M3T05cnEBZwSaRUFhomWGXdgA1ccsEXb7uz4HuW3G1WLnBh8e3xoVitYnwPbewcZYNk-JN519r4WNQF1-LpCuje92sAXlZbv3Cpure1Vu0Ta6D10X9iDTeWaRAWI55LixEiyM5gHPG8fvpSrJbF5uvz_ZdiBcIlwJlQhLqgGieVw1qrFlZKGkuknXVKCRfo8GYkYPFeHfTPYQHPeeRfmnQd0_CrD_ByhHt0aGHh82Q5JFF4AwdA6_fmX84ev_sb_0nuky00MeLvC8EFvX8nYd3LynIlHeSkgKHi8f6m2NxA05ctt5DAsm-gZp3S1m2zrbWdcUrxGuB1w-22L-eVagFe-xo__Jl1Wv3uNhJec2N6t9HXfhdwWYmeMmi3DFaamC0sSbWzmlRsnDdW956Y39WadVrRvhokyr6ZA1RsLKl2kPZtN5RRNAcof9Sq0aSFRDd9y6R1JCHAa9U5FmN10DP22gmlmXZjgshmRoxh2uub-aoB8Lrk0ttRwZlyEKTrHFBvu97ODZxR5nwCwqVRva4YCG8AKgJH4qmXkssGdsS42peuRyfDRzfwQCRpnOoUKglbRXt3-OD0CAmnzkR8Du17lsBVcTsD4c2quIV3B1_Bja9bLpwD-D66Hv74hEpdLvm6jF7R_r8oCKIgyKCPoU8p82aGh0fNpfUu_-rC5LL3fZEmP56VsZqRFmBfArm0w3mX_UnfA3yNXkda48kDcBickEZ1FcENbyQR_yCSCgeeeQ5LaHjDZa2eLcCFe39RnPrHfJQw86pzKYT8v0EBHhWktAqqIIlwjNFojeAlwOuxS5h0B26imhs1TwbOTuTAODwGzJO8rmBnt5oR-rzjQnwO3csf0KNTulGawMZ48z5LO0qTA3B8DIyztA4hKV0V-BSsFzzAJtP4obRMaRJOku534wsSCAvVMU2s0q49cB1Cdm7RNyJ6NhTOMf1-ZZXPznmlBHXP_9x8-e1MHqRToiEjGEfBBP19v62K27sNE8Po0ET8m9lh-oj1ZvWbomzMvwttj5HXwb3ZCeukpPlPWQ-jS0XZUrWtKyHnaS9hL333T2G1JXrv0eOZy-7_0YSDgfnUQIzziKSpU0akkm-t6g2UpGWm84UqH0z4niWr4varOmP0H0fIn65M7AVPMsRVInTs65yhuvypr1dqUrUnRTu7qNM8l8FpjmlwkhU0oujnuawou2WykPSm5XZV3F6apKdxIImPSZaoRPQXU7cQ4poYXl0LVe3MUUzfD-CT7X8ZEzzJgwnhiQkY1fFPTdC9_CIfSLXlku3ZHpnwYe7CNjiWBxuik6ymGav_iw33rCHV2_-HJZ7rwZL4yBIU4Lya1sITMq5Bm5hxlv9H4vOOaDv3X_hn8M4UjaPzL0ziMmLTpmv96OT2feKn6VzEjwOpgx_TU8opDn6B8oNvb4_jPw5dmm6KgwPd7JRunU0TWEwSdkL8ru0O-_FvIV1nk1w9OtZQxhgL6f5G492R7tD1p1Nx3Onc3397WCpp2eu-wAlRfcw9jE56r7okCWwJl5cya4B8twoHJz1kTvNP9tJe5ACITwFZhODzs5N5NpZo-zwx55dVsGiiIjyJRIzzGA7gl3LTADqo3H-1WqZbLolldLi1Gjp49wm7ubvd3Nx-A6hYjiqhZrbXklE3HYT5ucsxBpueC_vmksh9xhvGWv9BXTKIA1ySHNMQZTTGURxQilNaVwQlNQ3LENeYVixNh2urLTeQG0igZo1mxrjD1N9XgAThYB7Mndo5BBEqdLOV7IeBFZHwTfWwE4wYBi3ZMUigUGoHwvUVXYQ0D3NyxRZBGmc5ytMcXW0XcZqUMcJZHgdlFaCsSighKcFRkBMSV-UVX2CEY5TjJMhQGKB5yShJYhokNUrKMEf-Q5dwMXd7Y650c-UvHxZBgnKcXQlSMmH8zTXGJal2TNKhPfQXkEuAsb-SmCk5eyHCfSyOw-Nemx5-bi5eXemFv-4o-8aACAlurDlot9wKtvhr7hmvei0W__tlzOiSlwX-TwAAAP__JpoO-A">