<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">