This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch] catch builtin_bswap16 construct


On 20 September 2012 09:12, Eric Botcazou <ebotcazou@adacore.com> wrote:
>> The attached patch catches C constructs:
>> (A << 8) | (A >> 8)
>> where A is unsigned 16 bits
>> and maps them to builtin_bswap16(A) which can provide more efficient
>> implementations on some targets.
>
> This belongs in tree-ssa-math-opts.c:execute_optimize_bswap instead.
>
OK I'll have a look at that. Actually I modified fold-const.c because
it's here that the similar 32 bits pattern is turned into a rotate.

> When I implemented __builtin_bswap16, I didn't add this because I thought this
> would be overkill since the RTL combiner should be able to catch the pattern.
> Have you investigated on this front?  But I don't have a strong opinion.
>
No I didn't. As I said above, I looked at where the 32 bits pattern
was handled and added the 16 bits one.

Christophe.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]