https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117030

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think stdc_memreverse8 is implementable purely on the library side, perhaps
with an inline version optimizing the common cases using switch with
__builtin_bswap{16,32,64}.
stdc_memreverse8uN with those builtins (or just return value for 8).
Endian-aware loads/stores with __BYTE_ORDER__ dependent
__builtin_bswap{16,32,64} or not, perhaps on memcpy out of the memory into a
local.
stdc_rotate_left_ui etc. can be handled inline using what we pattern recognize
as rotations - (X << Y) | (X >> ((-Y) & (B - 1))) and the like.
For stdc_rotate_{left,right} I guess we want __builtin_stdc_rotate_{left,right}
for the same reason we've added the other __builtin_stdc_* builtins, so that it
can be done without statement expressions and doesn't evaluate arguments
multiple times and doesn't expand them multiple times and can handle arbitrary
unsigned _BitInt.
I'll add these two.

Reply via email to