<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/76487>76487</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
missed optimization: redundant store is not optimized away (test case with struct)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
k-arrows
</td>
</tr>
</table>
<pre>
Test case from gcc testsuite (https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-85.c)
```c
struct X { int i; int j; };
struct X x, y;
void foo ()
{
x.i = 1;
y = x;
y.i = 1; // redundant
}
```
https://godbolt.org/z/nEzqGx57h
The last store in the function `foo` is redundant and can be optimized away.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8ksFyszgMx59GXDQwjg0BDhzazbIv0MNejS2Cu4C7lmmSPv03hDTJ18M3wwyWxF_oJ_81szvORA0Ur1AcEr3EwYfmv1SH4E-cdN5emjfiiEYzYR_8hEdjMBJHXlwkBFkNMX4wqBeQLcj26OKwdJnx0xoYk04uBB-2AGTbjb4D2U6aIz2y94ZbJrPHNRmIUmYNsmXWaR8orYrMgKxBHEC8wF5sj9lijmExEf9FKF_RzREdqO3wvh6gPIB6vUl_F5xB_oWXe_XTO4u99yvd42_lrYp4zhyCOuDurkC8XDPn58zTV7gtBwPZZbZ6jt89Dz9QtvDHSr3t_BgzH9atfIFs57-__v_nXJTDM83bQDhqjsjRB0I3YxwI-2U20fkZYS9672Ev0PFjDtSzRaNn7Aj9R3ST-yKL-qQvWWIbZWtV64SaXSlUmYudqJOh0RUpbfK6Nl1nu6oQvTJS7HRe14Xp-zJxjRRS7aSsRCEqWWeFzXfK2kL1pI0mA7mgSbsxG8fPaeVKHPNCTbnPqzIZdUcjXz0p5UwnvBZBytWioVk1abccGXIxOo786BJdHKmZHDPZbxy90oN6eWK-LYhx9vEH9Xrl8W74k4sDbi4BWSdLGJs_uH0d4_ZKP4J_p1XVXodnkO0V7lcAAAD__ylQDwM">