> From: Jakub Jelinek [mailto:[email protected]]
> Sent: Wednesday, October 08, 2014 2:39 PM
>
> Doesn't it turn 16-bit {L,R}ROTATE_EXPR used alone into
> __builtin_bswap16?
> For those the question is if the canonical GIMPLE should be the rotation
> or
> byteswap, I'd think rotation would be perhaps better. Or depending on
> if
> the backend has bswaphi2 or rotate pattern?
Good point. It seems better to keep the status quo.
>
> Also, perhaps you could short-circuit this if the rotation isn't by constant
> or not a multiple of BITS_PER_UNIT. So
> switch (code)
> {
> case BIT_IOR_EXPR:
> break;
> case LROTATE_EXPR:
> case RROTATE_EXPR:
> if (!tree_fits_uhwi_p (gimple_assign_rhs2 (cur_stmt))
> || (tree_to_uhwi (gimple_assign_rhs2 (cur_stmt))
> % BITS_PER_UNIT))
> continue;
> break;
> default:
> continue;
> }
> ?
Right. Thanks for the comments.
Best regards,
Thomas