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

    <tr>
        <th>Summary</th>
        <td>
            'X86 DAG->DAG Instruction Selection' assertion failure
        </td>
    </tr>

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

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

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

<pre>
    When fuzzing x86_64 we found a module that will trigger an assertion failure.

Seems like this is a newly introduced bug. LLVM14.0.0 compiles correctly, but crashes on latest commit `cfd2c5ce580f`

```
; ModuleID = 'x86-dag.bc'
source_filename = "M"

define void @f() {
BB:
  %A6 = alloca i64, align 8
  %A = alloca i64, align 8
  %L = load i64, i64* %A, align 4
  %B3 = sub i64 %L, %L
  %B2 = mul i64 %B3, 4294967296
  %B1 = add i64 %B2, %B2
  %B4 = udiv i64 %B2, -9223372036854775808
  %B = xor i64 %B1, %B4
  store i64 %B, i64* %A, align 4
  %B5 = sdiv i64 %B, -1
  store i64 %B5, i64* %A6, align 4
  ret void
}
```

```
llc: /home/peter/aflplusplus-isel/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:913: const llvm::SDValue &llvm::SDNode::getOperand(unsigned int) const: Assertion `Num < NumOperands && "Invalid child # of SDNode!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/peter/aflplusplus-isel/llvm-project/build-debug/bin/llc x86-dag.bc
1.      Running pass 'Function Pass Manager' on module 'x86-dag.bc'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@f'
 #0 0x00000000030fb20a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:11
 #1 0x00000000030fb3bb PrintStackTraceSignalHandler(void*) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:636:1
 #2 0x00000000030f9a06 llvm::sys::RunSignalHandlers() /home/peter/aflplusplus-isel/llvm-project/llvm/lib/Support/Signals.cpp:103:5
 #3 0x00000000030fbae5 SignalHandler(int) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007f5c34e1d980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007f5c33d0de87 raise /build/glibc-uZu3wS/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007f5c33d0f7f1 abort /build/glibc-uZu3wS/glibc-2.27/stdlib/abort.c:81:0
 #7 0x00007f5c33cff3fa __assert_fail_base /build/glibc-uZu3wS/glibc-2.27/assert/assert.c:89:0
 #8 0x00007f5c33cff472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
 #9 0x0000000000ebf719 llvm::SDNode::getOperand(unsigned int) const /home/peter/aflplusplus-isel/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:0:5
#10 0x0000000000ec127e llvm::SDValue::getOperand(unsigned int) const /home/peter/aflplusplus-isel/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1138:3
#11 0x0000000002c94558 (anonymous namespace)::DAGCombiner::MatchRotate(llvm::SDValue, llvm::SDValue, llvm::SDLoc const&) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:7646:25
#12 0x0000000002c338c3 (anonymous namespace)::DAGCombiner::visitOR(llvm::SDNode*) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:7161:21
#13 0x0000000002c1b0d0 (anonymous namespace)::DAGCombiner::visit(llvm::SDNode*) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1721:40
#14 0x0000000002c1a788 (anonymous namespace)::DAGCombiner::combine(llvm::SDNode*) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1826:10
#15 0x0000000002c19d96 (anonymous namespace)::DAGCombiner::Run(llvm::CombineLevel) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1624:18
#16 0x0000000002c1967f llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOpt::Level) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:25147:3
#17 0x0000000002e74baf llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/peter/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:769:3
#18 0x0000000002e7475d 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/peter/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:685:1
#19 0x0000000002e741fb llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1591:11
#20 0x0000000002e7179d llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:464:3
#21 0x0000000000e8d18a (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:191:7
#22 0x0000000001e9326d llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:85:8
#23 0x00000000025a2256 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1430:23
#24 0x00000000025a7082 llvm::FPPassManager::runOnModule(llvm::Module&) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1476:16
#25 0x00000000025a2b29 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1545:23
#26 0x00000000025a269d llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:16
#27 0x00000000025a7361 llvm::legacy::PassManager::run(llvm::Module&) /home/peter/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1672:3
#28 0x0000000000c744b0 compileModule(char**, llvm::LLVMContext&) /home/peter/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:737:41
#29 0x0000000000c72832 main /home/peter/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:418:13
#30 0x00007f5c33cf0c87 __libc_start_main /build/glibc-uZu3wS/glibc-2.27/csu/../csu/libc-start.c:344:0
#31 0x0000000000c7203a _start (/home/peter/aflplusplus-isel/llvm-project/build-debug/bin/llc+0xc7203a)
Aborted
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNWVtzo7gS_jXOiyouXQDBgx_sXPakKtlJTWYvdV5cQgibMzK4EOQyv35bAsxlkk0yJ5OJyzZCtLr76261WiIukofFX1uVo7T-9i3LN-g-DNaBh-4USos6T5BAuyKptULVVlToLtMaVWW22agSiRwJY1RZZQWMF5muSzWf4dMZXjb_N0rtDNLZVzs6Mwi-AuXqTj-gLK9K4CtVguJ6M0eXl39eEW-O5xjJYrfPtDLQKEslK_0woydAVSFZCrOFByBOi0qZytLusgrNAizThEpfKj_EKdwO1bC3zbe5ZSt05TBdnKIZgx_lgPo4EZt5LOGmITNFXUq1TkGVXOxUS0mv4Ddknqg0yxW6LbIEzTyQTcMZjdCMr5rnq9WMtaQIxvvLwHESWhdSoCzwLDihs02OwiHZi6guHZUuRNLRuMvSceiHeIMhK-bGmDq2tI6JJXTXARV1VLtad1QrZsk8GnlRwGkUDIlJo2ySHIhpy3NFh3Seo6uT7HZMeBxRyhinmAWh73EOPhyiXLlh90V5GEU69gdkpipKdXj-Mkv4jSWG6jhtyONM_QnX4BG2papcKLQRwk8fj8DHOrWWECnA-Xxb7BRc9qpSJVxFqve6NvZ3nBmloUvr293xviz-B9OjvYVLlktdJ6rvOCkS9ZvKoXWjNJDCPD1d_vY79Jr5FoRFhFmRsshhKrkxEKpseXP6p9A1RDwNhp12XNPeqOrTXpUiTyDa69yACWAew5S2ke-4WbbLQ24AjL_XO7D2CYJrO9RY_vC1k-oivwVDJkhuMw3TiDJUpKiVSImdcZS7DKOSNsFcX54tb85sGNv5L2wSAePvi7JCVYG2VbU3Vld6Dt9NVm3reA65ojfNxIKZMbUy0ICkZpE4Q0LSUk3OQbGQX6tSyC6_3VTQgZJ6tz_MbjxH7nNdFptS7JAoN_VO5ZX5Ua_GNRjjOFEAzd5luSORaJCrnGDSCv5c57nN4HtIyjannde5czm6th1XIhcbK5nb9Nnm9Gnma9HRJzj-HQYIAuh4xs7ggi7A0WXdyDgEWCsg7YTbfOrSYptWrXcxwve4-zCcxhSLQfyZB9M0rkuIKWfqL9b2EGw9USnu1gXIV2Ln4uiki7__YwLpLLZzpd7bOILWH3l2bzsgvoU2cwgLEOwHEfwT0sMhUzgsjtFE94bHfyC6tNUpdEmCLt9D4YAFVuFeXzrRNxI4eMz84P6R2qZb295O4U5TubcTiWCbj_xeUza1rFA-mprynfzuYT42o9cqx1NfMk-RJAoxWq9L5ZaNNWQiZ6-We1NXHessr--PN3ndPNhXW4jgZG6KOZ7RFb4nFLgAnF6MPxTDEpyokKNSACDUJQmb44CZPK7_W7O7m8MtncOso-fG4YDGfG7vHkyi9jbX1Q1M6Lh12oBmcHWs5y7SCfzhXpNgoknKU4JEXDikL9OkShpruFFOSDgRwkdCZJqyVIBVm0JzbdeAdSxejr0Zd2g0IqOxyHAq0uP0Bb6T1muB8xrDMGTktWgYuVjFKScR-tHV9F2LAtxPQZvb8BiIJJSr72uFD4mEEBbChfVgRpmaysjz_dB6WuRF_rAraoNsqW_2brGJGlDA8qTYwfIL2rqOK1HJ7eeigh3IaEXqTAFL0bOdl4VsCyW7dr1B8nrcFnA7UL_Nsjzw7IJAB06mY7swFkr2arvcZiarPn2e2KSp4d5moXsNSBLYxEJJD5KNQZIYJ_jHQH4MiIRT4talHqI3gSh4-Pr4ls3dBwEZUle9DED6E5BREgWvBgm1zQhg-_RS3Vrt3xljQD0HtccYTDEGPB0mkCHLof7_gmmYgJbLz8rUGvYmdDl-0qr9aV8197_EINQnHh9nbj4yiOJeLJ4yyAXcjMAs8-QMdolO2tsUsE9imepxSLnRGE44hcP95Fk4Te9KmEyudCG_jpyd6cxU6wzgCCg_Yas9fZSoCoqnpicH_dfF3kowI9LBls7GBbTd0pVCGewabtvCzkZ9jqjp-2DqxEWhf_oC-4TLg9DvtwvW5dHU5SSNX-jypda9183I7YdN_vtUE0-AJX5EBptiu8fEE7iER89HeFnnn_IrIbeQDDpkI7jfPfs1eL3AG81nSsZVcpiQUDy3Jv0dBsD1S_EhLPBFlFC9QwO0av6tTp1-nZudl3kPe1Q3EhUxGgydPNHVnkMNUD4K7-d59hFlWlhupvaLLx0Xir6g1B-ej5xf27Hdedo747mA-vr8Um2EfBho0fnHY3b3RgeB6U2wcBzSF2Bp3o-MA6_tehcc3BV9QY_Dn_okdlr86wS7-pjgfM-fOCmYggtGuVI7Tk17wO9it--Txq9C4zN_4ik-jTgWkOfB_HIgJOB0nNNHNRqW3PPiw8vJQwjJrShdET2po-37zJMir9T9GyzKFdQxxt3K5r8rK5mtkr3BqhtNdKYho2gnsvxniPeIPV4hvckOB_vdSRqWIUfrtT0sW5tKlNW60-UlZ3fS2JM2d2jZNN1Dx8ed4zHPrsL9znB8EG_RYyZQI7g9z3urlzDu1K8RcDj2W9ozTdW9-ute7h2pBQkCQnHk8-goWbAkYpE4qrJKq8Ur3ql896b9qC714sdfdPk2No62iwRHEYm4H8RhlIQJD8FlOMVJRDhOfBEeaRErbRYz-3KU5uoOORb2nZx_epQtKKYU1hRKGQ5INI-ox4nywkhKjL0wnXlYgc_13OoxL8rNUblwKoFBDTy0ewHTPwSU9tBQOXHAX9TVtigXp6ISJ0VZ1nsw8JFTYOEA_APuS_np">