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

    <tr>
        <th>Summary</th>
        <td>
            Assertion `isNew && "Node emitted out of order - early"` failed
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:X86,
            llvm:crash
      </td>
    </tr>

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

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

<pre>
    ```
llc: llvm-project/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp:261: void llvm::InstrEmitter::CreateVirtualRegisters(llvm::SDNode *, llvm::MachineInstrBuilder &, const llvm::MCInstrDesc &, bool, bool, DenseMap<llvm::SDValue, llvm::Register> &): Assertion `isNew && "Node emitted out of order - early"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: bin/llc -mtriple=x86_64 crash-x86_64-2.bc
1.      Running pass 'Function Pass Manager' on module 'crash-x86_64-2.bc'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@f'
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  llc       0x000055555a13c71b __interceptor_backtrace + 91
1  llc       0x0000555563830079 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 313
2  llc 0x0000555563828105 llvm::sys::RunSignalHandlers() + 405
3  llc 0x00005555638318a3
4  libc.so.6 0x00007ffff7a39520
5  libc.so.6 0x00007ffff7a8da7c pthread_kill + 300
6  libc.so.6 0x00007ffff7a39476 raise + 22
7  libc.so.6 0x00007ffff7a1f7f3 abort + 211
8  libc.so.6 0x00007ffff7a1f71b
9  libc.so.6 0x00007ffff7a30e96
10 llc 0x000055556321ef05
11 llc       0x00005555632304bd
12 llc 0x0000555562d8af59
13 llc       0x0000555562d87844 llvm::ScheduleDAGSDNodes::EmitSchedule(llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>&) + 7108
14 llc       0x0000555563077637 llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 22807
15 llc 0x000055556306deb8 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 22568
16 llc       0x00005555630618f4 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 7044
17 llc       0x000055555e5f5cf8
18 llc       0x00005555609f4876 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 2774
19 llc 0x0000555561d4dc92 llvm::FPPassManager::runOnFunction(llvm::Function&) + 2562
20 llc       0x0000555561d6c553 llvm::FPPassManager::runOnModule(llvm::Module&) + 147
21 llc 0x0000555561d4fe36 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 6662
22 llc       0x000055555a1d6e18 main + 35080
23 libc.so.6 0x00007ffff7a20d90
24 libc.so.6 0x00007ffff7a20e40 __libc_start_main + 128
25 llc       0x000055555a0fef35 _start + 37
[1]    2507325 IOT instruction (core dumped)  bin/llc -mtriple=x86_64 crash-x86_64-2.bc
```

```llvm
; ModuleID = 'crash-x86_64-2.bc'
source_filename = "M"
target triple = "x86_64-unknown-linux-gnu"

@G = external global i1
@G.1 = external global i1
@G.2 = external global i8
@G.3 = external global i1
@G.4 = external global i16
@G.5 = external global i16
@G.6 = external global ptr
@G.7 = external global i32
@G.8 = external global i64
@G.9 = external global i32
@G.10 = external global i1
@G.11 = external global i8
@G.12 = external global i16
@G.13 = external global i32

define void @f() {
BB:
  %LGV20 = load i16, ptr @G.12, align 2
  %A19 = alloca i8, align 1
  %L19 = load i32, ptr %A19, align 4
 store i8 undef, ptr %A19, align 1
  %LGV16 = load i8, ptr @G.11, align 1
  %LGV9 = load i64, ptr @G.8, align 4
  %LGV3 = load i16, ptr @G.5, align 2
  %A8 = alloca i1, align 1
  %L9 = load i32, ptr %A8, align 4
  store i1 undef, ptr %A8, align 1
  %C10 = icmp sle i64 0, %LGV9
 %A7 = alloca i1, align 1
  %L7 = load i8, ptr %A7, align 1
  %L14 = load i1, ptr %A7, align 1
  %B16 = lshr i32 %L9, 0
  %C9 = icmp sle i16 %LGV3, 0
  %C18 = icmp sle i1 false, %L14
  %L5 = load float, ptr %A7, align 4
  store i1 undef, ptr %A7, align 1
  %LGV5 = load i16, ptr @G.4, align 2
  %A5 = alloca i1, align 1
  %L17 = load i32, ptr %A5, align 4
  %L15 = load i8, ptr %A5, align 1
  %B21 = sdiv i32 %L17, %B16
  %L3 = load i1, ptr %A5, align 1
  %A4 = alloca i1, align 1
 %L13 = load i32, ptr %A4, align 4
  %L4 = load i16, ptr %A4, align 2
 %L2 = load i1, ptr %A4, align 1
  store i1 poison, ptr %A4, align 1
 %LGV2 = load i8, ptr @G.2, align 1
  %A = alloca i1, align 1
  %L18 = load i8, ptr %A, align 1
  %L = load i1, ptr %A, align 1
  store i1 undef, ptr %A, align 1
  %B22 = sub i16 42, %LGV20
  %LGV = load i1, ptr @G, align 1
  %C6 = icmp ugt i16 %L4, %LGV5
  %C1 = icmp sgt i1 %L, %LGV
  %C7 = icmp uge i1 false, %L2
  %C2 = icmp sle i1 false, %C1
 store i1 %C2, ptr %A, align 1
  %B5 = add i1 false, %C7
  %B6 = lshr i1 %C6, %C6
  %B14 = mul i32 -1, %L13
  store i1 %B5, ptr %A4, align 1
 %G17 = getelementptr i1, ptr %A, i1 %L3
  store i1 %B6, ptr %A8, align 1
  %G = getelementptr i64, ptr %A4, i8 %LGV2
  %L8 = load i8, ptr %G, align 1
  store i1 %C9, ptr %A, align 1
  %B18 = srem i8 %L15, %LGV16
  store i32 poison, ptr @G.7, align 4
  store i1 %C10, ptr %A7, align 1
  store i32 %B21, ptr @G.7, align 4
  %C22 = icmp sle i8 %L7, %L18
  store i32 %B14, ptr %G17, align 4
  store i16 %B22, ptr %G, align 2
  store i1 %C18, ptr %A5, align 1
  store i8 %B18, ptr %A19, align 1
  store i1 %C22, ptr %G17, align 1
  ret void
}
```

https://godbolt.org/z/nPe9rYnTv
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykWV1v27gS_TXMC5GAHxIlP-TBjhNvgGY3aIpi974YlETZvKUpg6LSZn_9BUXalmIxMXqNoo6lMzNnzgyHtMXbVm60ELcgXYB0ecU7u23MbbmteWuviqZ6uwUMhX9oCdBcqRLQOVTqdXe9N81_RWkBeXAf3ZssAHm4ayqxEhqQhxehRGllo5fzFSAPj7q15n4nrRXmptzvAZ0Thp2710ZWvU9A54DOh0B_5c4IbsV3aWzH1Vexka0VpgUkPxm9LP9sKgEBmQNyN3D2xMut1KL3ueikqoSBgDAHKhvd2iH0rkctRVseIEXTqOH7UuhWPPE9oHfD0N-56sQ47oEloPfe2cxlOm9bYZwkEDAk2z_FT3-TQUBIn4Do865g01nY1LAxjvA1FNyoN0AIIBmsuVSiuvEVef5yP3-5h21X7KSFHBbdBhqxb4yFtoFba_etI0QeAHnYSLvtipuy2Q2KNi6lbNtOtIA8QK4rKHWpukpAuxWwNLzdwoKXP6zhpQjhXywvf8Cq27ly-kvoBvavZ9NsDN9BbjbdTmjreMBC6j5oCa931si9EoAuf-VszRIf4dp_uCY3Ren94eDva6e11Bu4520LAckeOt13F3x2F5645hthnD6Nhrum6pTrhuzcKckCdxJx_HfO4HK-ugb0fjlfwb4pOh_q2NIhTn3gAEgGElS7t3e6wJ_Sbl0127dd0Sio-U64MLnQbWcEfGs6uOWvwi8qD5L_CgOldvcMfJ5_-wM2BrbC9oUQ-lWaRjtJ4Ss3rpO-fPn-tH7552nx15fH_9x_XTsTwJDrgH0jdd8K0voeDEWC0BXBv9AvhBBK3YtjWma4gOu11FaYUuxtY9bHqkNAFnCGQ2GmfTCaU4Sy2WAxtG-t_-PZSG17bb45d6MVbPjPddNaI_gurD6pHec-JsU0FM0HHYUjOUbpVLivnX6RG83VH1xXyo-Mg8cEpd4jnfBIcc5DwARCJYvypm1uWABldV3XGaezlIS5mEZBecWzEu7t1gherX9IpXw-KFiyD9wnGYOGy9bLToi3yKIWuM5qCnnhFn9vgUOl8o9McOFBszgTJGYs1BydiUWwqA9aYhxpCUJRUlQBRN77IFXO63QWbtNpH6TKszxJBnV-KbfCrfPlfOXHfyi72zsO90YtNt4MXEs8WmG4bcxooA9hrg9rrloB6L2f4720GUZ5oJtEUkZZxmg2pDvYDx9fhAp7m98v57pytPut8tijhOQoDBScngmPWCWK_NMA_upcqQVvZblQTfljvHUeB2m_IQ6SJCRlhyxZLEuG8zr5lITp9F866HqIN1Wa072T1ChJAolsemiJtE7L-sA0n2aKZnWSZ-z8aHAI6baRAdlJlhP0SJYd6M3elwhXSVXOyCDmw7MLc9isfiNaysIYIGg6T1yxMk3pBTGfmvMFEi4d4-Ek9B_BE8nVgg4FVWLDy7cw6U8hH3f7Uxd8HI6xY3oktkFVTOAc7rjUfpKmKA-zlNDYBCOomh1ASRwkEgTXa3d73Vpu7PoYBZPQXiSN8EK1qGkKvaFnFqQD6QKDdOkMSIoySlL4-Nc3KAfnCkDysjGiPzCIyqnxOyeld4f1dxd72f0luoBe-sclBHQZOyd5dNt0phTrWirhzi7BgDyBw4Zkudm4s0lP8nA7eOr0D9381NdK6u7X9UZ3R6vwf4JWvYn4ZYXRXMGNagquoMQnwA3-HEKmIfkAQj_3kkQgbIBJL8CwSczemgEmm_ZDyQCTT2NYMsDMLvCD0QUiR1QeSogjMo-SxxGh6ajylailFv67nz86-20vW_j7i8XxsAohIOmX1Xfis1ANr_qQ5M5JCgMz95ErudGQDMzcVHZGXKmm5C6bIwwPvQeY903J0Xfv4WQThIetdctV5rDTlahjaDzmj9kgRj6mj6NWQ2IsGVnl58SCEY0rlUaEykc6xfjEZZoiE2TC5zJF6nAXOlWWuz1slXApQ-SwQYyAdS6yiwhnk5o781gnJEPtLrBYHOrabo0TxevksGiY2exdYs7K1-oMivP32HAGDTrgUbXTE99aNdxGKF9QlJgkq-9pvJ-SSD-lF5UHZ9GGSiPdjdNYSdNIgYgfbW0lX48FwllQc3EYXt47jVU_4nyefJZnH41G00wiaSbTko8tyCAGiTFPJpgfm2DfyNYdMT-Eh_kbHV8kos1lLZDH6hkxiOX5UZpnvR5rFZ9k2xX9Ck3IafYQNF4TkzQStIpMNnZa093GHtd_cgqQjmbAYAT08B50Ag-x2dD1-bgYLss78uFoucPjDQ57mwuEC8u9qs5cZkPYcFR65-yAY6OZ6tt_1_UHB3iNj7OPntW2D_95B6_CrNkIK5TYCW0d_ryFgtTTcdgFm9hqKsxg6z4wlPmhs4aNFVsNU301qtLsgiqFtdYasTuEx-mpqU6jMHim5P2A6I-uH-0qfhf_bFs5-fcD-lP_fR--b16fQXbsjXzaPR5qv8If0WdhCkwLT6az_XQTOh4XfQ0-PS-OVx-JsT_ijbD9STocsLPlB18I3z0TaKqiUfamMRtAHv4F5EE_i5n5R397vapuaTWjM34lbjHLWcbQjNKr7a0gJceYkFnN85xlqCxFyRnOZ1VCq1mWXMlbgghFDCeYJQTTm4ySsuJpUZVFlvGUggSJHZfqxn0pdbGv-gcPt4xSNLtSvBCq7Z9KEVLw8ofQFaDzv3PWPwG5A4SE3xD6b63uYrq8Mrf9L-hFt2lBgpRsbXtyb6VV4vb_f_zCUHj8ctUZdfv7j1f6RP8XAAD___Ilma4">