https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107051
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Depends on| |14295
Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot
gnu.org
Status|NEW |ASSIGNED
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I have a fix:
```
.L2:
movl flag(%rip), %eax
testl %eax, %eax
jne .L2
movl g2(%rip), %eax
movl %eax, g1(%rip)
ret
```
```
void func_1 ()
{
int flag.0_1;
<bb 2> [local count: 118111600]:
<bb 3> [local count: 1073741824]:
flag.0_1 ={v} flag;
if (flag.0_1 != 0)
goto <bb 3>; [89.00%]
else
goto <bb 4>; [11.00%]
<bb 4> [local count: 118111600]:
g1 = g2;
return;
}
```
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=14295
[Bug 14295] [tree-ssa] copy propagation for aggregates