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