https://gcc.gnu.org/bugzilla/show_bug.cgi?id=23782
--- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
After my patch, we get:
```
void drawbutton (struct coord upperleft, struct coord lowerright, unsigned int
upperleftcolor, unsigned int lowerrightrcolor, unsigned int fillcolor, unsigned
int drawbackground)
{
short unsigned int lowerright$x;
struct coord D.3029;
unsigned int _15;
<bb 2> [local count: 1073741824]:
_15 = MEM <unsigned int> [(short unsigned int *)&upperleft];
lowerright$x_4 = lowerright.x;
setpixel (upperleft, upperleftcolor_3(D));
if (drawbackground_5(D) != 0)
goto <bb 3>; [33.00%]
else
goto <bb 4>; [67.00%]
<bb 3> [local count: 354334800]:
MEM <unsigned int> [(short unsigned int *)&D.3029] = _15;
plotHline (D.3029, lowerright$x_4, fillcolor_6(D));
<bb 4> [local count: 1073741824]:
setpixel (lowerright, lowerrightrcolor_8(D)); [tail call]
return;
}
```
Which is better, just missing forming of upperleft but that is a different
issue and the original testcase had a different form.