https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93781
--- Comment #2 from vfdff <zhongyunde at huawei dot com> ---
For more test, I find the following case2 can get the expect result, while the
case1 can't.
== [case1] ======================================
unsigned int foo (unsigned int arg)
{
unsigned int C000003FE = 4;
if ((int)(arg -3) < 0)
C000003FE = 0x1 << arg;
return C000003FE < 5;
}
== [case2] ======================================
unsigned int foo (unsigned int arg)
{
unsigned int C000003FE = 4;
if (arg < 3)
C000003FE = 0x1 << arg;
return C000003FE < 5;
}