https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119432
Bug ID: 119432
Summary: gimple front-end and round trip for fails for
__builtin_stdc_rotate_left
Product: gcc
Version: 14.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: pinskia at gcc dot gnu.org
Blocks: 101057
Target Milestone: ---
Currently with the gimple front-end format dump of optimized for:
```
void f(unsigned char *ADDR, unsigned int nr, unsigned char mask)
{
mask = __builtin_stdc_rotate_left (mask, nr);
ADDR += nr >> 3;
*ADDR &= (unsigned char) mask;
}
```
Produces:
mask_8 = mask_6(D) r<< _1;
BUT `r<<` and `r>>` are not accepted by the gimple front-end. That is there is
no way to specify a rotate IR with the gimple front-end. This showed up when I
was trying to write a simple testcase for PR 119428.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101057
[Bug 101057] [meta-bug] [gimplefe] GIMPLE frontend issues