[Bug tree-optimization/96245] New: Failure to optimize arithmetic pattern in switch
gabravier at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Jul 20 04:20:58 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96245
Bug ID: 96245
Summary: Failure to optimize arithmetic pattern in switch
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: gabravier at gmail dot com
Target Milestone: ---
void f(int x)
{
switch (x)
{
case 0:
putchar('0');
break;
case 1:
putchar('1');
break;
case 2:
putchar('2');
break;
case 3:
putchar('3');
break;
case 4:
putchar('4');
break;
case 5:
putchar('5');
break;
case 6:
putchar('6');
break;
case 7:
putchar('7');
break;
case 8:
putchar('8');
break;
case 9:
putchar('9');
break;
}
}
This can be optimized to `if ((unsigned)x < 10) putchar('0' + x);`. This
transformation is done by LLVM, but not by GCC.
More information about the Gcc-bugs
mailing list