<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/58999>58999</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Some special loop cases will infinite for SI backend
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Jasonmessage
</td>
</tr>
</table>
<pre>
**The following is opencl code**
unsigned int Lock;
void test(int * a, int * b, int c) {
while(1) {
if (atomicExch(&Lock, 1) == 0) {
if (*b == c)
*a = *b;
atomicExch(&Lock, 0);
break;
}
}
}
Thanks!
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx1UtuOnDAM_ZrwYnUEgXB5yEO305Fa9W33B3IxkE4giISd9u8bYGem251aVmJjn-ODYun0b07o5-gvPULrrHUXM3ZgPLgJR2VBOY17B0mPJH07l9GbbkQNZgzww6kzyZ_2yqszGgL6QGi9FiMQBKFf4JrIa6IIbYBUbziIdumNjcPq7ENlN9NGhloENxj19ZfqY0JouY2PnDsqP0aH9B3Dvzx3rihIXjG7ngetq8VGsTaugbz97KPu_8lbJd2A7yFyRnF-UCPV8a9Pt-webOdLL8azJzRLkGdlWbOUsTpPNM91kzciCSZY5M9uQPATKiMsWOcmUMKjh4uxNj5Ha0YT1g2Y4fkbSKHOOGpIltnyPoTJkzyuwCl6Z0K_yINyQ0ysfb1en6bZ_UQVn_1kvF8wCjqxummapOdCMyaKqtK0bJs2r2ShM1oyVqStyIWuEiskWs8JeyKUjniBjSLGhB0Tw2lKaZZlLG2KkuYHnVasEEzWFMsCUZMixUEYe1h1HNzcJTPfJMml87FojQ_-XhR-213cxkV-sYTezfy78G4c0HvRYbLN55v-PysL3RE">