<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/89200>89200</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Crash in `SIInstrInfo::isSafeToSink`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:AMDGPU,
crash-on-valid
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
petar-avramovic
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jayfoad
</td>
</tr>
</table>
<pre>
New test case `test/CodeGen/AMDGPU/machine-sink-crash.mir`:
```
# RUN: llc -mtriple=amdgcn -mcpu=gfx1030 -run-pass=machine-sink %s | FileCheck %s
---
name: f
body: |
bb.0:
%81:sreg_32_xm0_xexec = IMPLICIT_DEF
S_CBRANCH_SCC1 %bb.2, implicit undef $scc
S_BRANCH %bb.1
bb.1:
S_BRANCH %bb.3
bb.2:
S_BRANCH %bb.6
bb.3:
successors: %bb.4, %bb.5
%10:sreg_32_xm0_xexec = SI_IF undef %81, %bb.5, implicit-def $exec, implicit-def $scc, implicit $exec
S_BRANCH %bb.4
bb.4:
bb.5:
successors: %bb.2(0x00000000), %bb.3(0x80000000)
%61:sreg_32 = COPY undef %10
S_CBRANCH_VCCNZ %bb.3, implicit undef $vcc
S_BRANCH %bb.2
bb.6:
ADJCALLSTACKUP 0, 0, implicit-def $scc
ADJCALLSTACKDOWN 0, 0, implicit-def $scc
...
```
I get:
```
llc: lib/Target/AMDGPU/SIInstrInfo.cpp:220: virtual bool llvm::SIInstrInfo::isSafeToSink(llvm::MachineInstr &, llvm::MachineBasicBlock *, llvm::MachineCycleInfo *) const: Assertion `ExitBlocks[0]->getSinglePredecessor()' failed.
```
`SIInstrInfo::isSafeToSink` was introduced by #67456.
Cc @sameerds
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVVFzmzgQ_jXrFw2MkADjBx4IhJ7vktRTJ3dz9-IRQsZqBHgkcJ1_fyNwatKStJmMLa3229X3-ZsVM0ZWjRAxBDdAyFF0TDvspFndniQHQiDIFqzvDq2Ov7KXfcvKRdGWL_GD-IY6YTrEmREIQmw3QPK0LcUn0QDJk_vs0-YJSF4zfpCNcIxsnh2umTm4tdQQYqAJ4AxwYtfj_7glFH15egCaIKU4cupOy6MSQDNWlxVvkFPzYw80q_ZnD1OMHN03zpEZAzSbdkNAAoNgmaJcKpEeBB9DlzbDp-M446JhtbAt9-PWsrRbWKZjAKGicK93RgjZWpEHNDFaVDtKduca787iLDgCmqH1_eZuna4fd9ltfsVsd-nNl-Qh_WO3TVPPligKlwBJkayPSnLZob4pxR4B8Q3nU-CIu0C815PJ7bw3t_sBQGcA5CNAOAOgbwCm51wY02ozKDWgfEtlXAY_FAASePhdubbr3Tr_zt0KOyk0kce5iGOBc3Er2lTN19T3aPozNP0rzUk0-CV5AiTCZ3z5A7K6cqDDUTQ5-kmccOKlQZL08-bfqyIennPR32n68N-1x5yNTh_YiMywD9_wTLI_0-TubvuYpH89bRC2PfB7ws-iss__PPwOznXd2XmwRpXo3hsWSvFhUMgCSP7ItE2dDJ_tet2YTq-bfevy4xFoQoj1IDpJ3fVMoaJtFVLqVNsGNJnkjwFptmwvHtutbJ6BRNfM-3HQDOkISGip_XR6w4zkN6odBk8ym5K-cCVsvzFjhXjbGEsXJcYI3cm2sfP19iy7oZCB4AZDkDlAbyvRbWVTKbHRohSjHYFEg_GWaM-kEuW8pt-DHxMOMfrGDJJNp9uy56JExQsCQsOlH4TutFTKEfjYsFoIXZpFGdNyRVdsIWJv6VGfBgEOF4c4xKuSYRxSn0SML5fhqiyDIlziYk8x24cLGRNMfOx7kYe9iIQui1YrGoplhKlPS1-Aj0XNpHKtkm6rq4U0phdxtCIYLxQrhDKX56xg_Fk0JdDk1Q920AIhwyvktI1zYkqWl2dOx7aiU_SVAR8raTpz7dHJTok4tTgkhx_kV8Iteq3iQ9cd7XwAkgPJK9kd-sLlbQ0kH4wwfjlH3X4V3Bp34GKA5AOd_wMAAP__aU8ghA">