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

Reply via email to