https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25186
Roger Sayle <roger at nextmovesoftware dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |13.0
Status|NEW |RESOLVED
Resolution|--- |FIXED
CC| |roger at nextmovesoftware dot
com
Known to work| |13.0
--- Comment #10 from Roger Sayle <roger at nextmovesoftware dot com> ---
This is now fixed (at the tree level) on mainline (and was fixed in GCC 13).
For those wondering, LSHIFT_EXPR is well defined (in this case) in GIMPLE,
hence the "optimized" dump currently looks like:
void f ()
{
short int * a.0_1;
short int _2;
short int _3;
a.0_1 = a;
_2 = *a.0_1;
_3 = _2 << 1;
*a.0_1 = _3;
return;
}