<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/70421>70421</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
opt generates wrong code with "-passes=dse,newgvn"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Bazoka13
</td>
</tr>
</table>
<pre>
*******************************************************************************
OS and Platform:
Ubuntu 20.04.4 LTS
*******************************************************************************
clang version:
$ clang -v
clang version 17.0.3
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/llvm-releases/llvm-17.0.3/build/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@MX32
Selected multilib: .;@m64
*******************************************************************************
Command Lines:
```
clang -O3 -mllvm -disable-llvm-optzns -c -emit-llvm a.c -o a.bc
opt -passes=dse,newgvn a.bc -o a.opt.bc
clang a.opt.bc -o a.out
./a.out
4
opt a.bc -o a0.opt.bc
clang a0.opt.bc -o a0.out
./a0.out
-17
```
*******************************************************************************
Source Code:
```C
#include<stdio.h>
struct {
int a;
} b;
short c;
unsigned int d() {
int e[2][3][9] = {};
unsigned char f;
for (c = -17; c < 0; c = 4) {
int g;
for (; b.a >= 0;)
for (f = 0;;) {
int h;
return e[f][f][0];
}
}
return e[0][0][1];
}
int main() {
d();
printf("%d\n", c);
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzklsGO4ygTx5-GXEq2MNhJfPChY3_5tNKsZqWelfa2woBtdmyIAHf3ztOvwI6Tnmn1aTRzmMgShvrXrwpcEJhzqtdSVqg4oaLZsdkPxlYn9sV8ZhndtUb8WyHy8As9uEH44eMjMC3gj5H5ztgJ0XX8z3bWfgaCU5ynOXz49LiM__y0f_gS8ZHpHp6kdcrobYEQyWGxJE9v6CA7pDili-UTs730iD7Ay3H_9z5PZv1Zm2edjErPL0mv51U3WMkETEbIMagvxqmXxfSbdp6NoxSNssGEyHkwk0TkPI5PU2LlKJmT7tpfo5NzO6tRhFbpBXQ2sxbAmRZKMC_h_3UNaoEzv0wwwGdnA0u1iJx7zhE5r6nfUibn4_dHlgvyUY6Seym-B6veEpvm0avgRB8gRfSEcjzt8_dUlKwySt6TvVx1v_91FW4zeC_oz6_wH76bajNN4cT5oLR0t920x-tzt5WSjxSSKdQzJEI51o4yidVtLv6LdpBwSOSkfBwElnJIDLC05QvEXDwkF-bCtqCNcBKRWsvn_klH0SI2F785LFGvY6t99osRUkTOd_38FmSj4bdw-J6Hb4DIi31YBpLs8OZi_LKl8mhmyyXURshvC6W-LgtVmo9zkNTOC2XSAdH_LUbn7cw9oMNp_YagtAcWNuHifGig3XpuMNYD3_qzjlcGEZ0EIkdEyq9ZEhUngooGFSe6NCUqGkC0icpDs9EANh4fmIXuZumMBUSOPLqFKqAnCJ0a8PW1gfyr6Ev8_o4PV1BwalMGYR1oEyGIlK-DdbCZovU1-oofXuHDz0o_Wx3n3S0TXhscmk0dZr763b3eOeM7r-KU3TtvDiGDiSn97dKvX-MW72KV9l0cJYgUAhW1jq818Hvhxt7qaCcqKkpasp2ssn15pMeyyLLdUHXkuN_ztijKjDHSUlZmhHYFLwvOi5K1O1URTGiGyQHvi6zI0kN3LDImcSkYI8cOoxzLiakxDedTamy_U87NsjrgnGS7kbVydPE-SoiWzxCNIemi2dkqHnTt3DuU41E5724Ur_woq3Dy9FJLy7x08GyN7oEbIeFZ-QEQIW-ffYiQ3WzHavD-Es9fcg7_ocoPc5tyM603iOtF4mLNP5J7RM4xvXDBiOn_FwAA__-zwOIF">