On May 20, 2018 7:02:40 PM GMT+02:00, Allan Sandfeld Jensen 
<li...@carewolf.com> wrote:
>On Sonntag, 20. Mai 2018 15:07:59 CEST Richard Biener wrote:
>> On May 20, 2018 11:01:54 AM GMT+02:00, Allan Sandfeld Jensen 
><li...@carewolf.com> wrote:
>> >A little over a year back we had a regression in a point release of
>gcc
>> >
>> >because the builtin __builtin_clzs got removed from i386, in part
>> >because it
>> >is was wrongly named for a target specific builtin, but we were
>using
>> >it in Qt
>> >since it existed in multiple compilers. I got the patch removing it
>> >partially
>> >reverted and the problem solved, but in the meantime I had worked on
>a
>> >patch
>> >to make it a generic builtin instead. I have rebased it and added it
>> >below,
>> >should I clean it up futher, finish the other builtins add tests and
>> >propose
>> >it, or is this not something we want?
>> 
>> Can't users simply do clz((unsigned short) s) - 16? GCC should be
>able to
>> handle this for instruction selection With The addition of some
>folding
>> patterns using the corresponding internal function.
>> 
>Of course, but we already have the builtin for i386, and a version of
>the 
>builtin for all integer types except short for all platforms. Note the
>patch 
>also generally adds short versions for all the general integer
>builtins, not 
>just clzs and they are not all that trivial to synthesize (without
>knowing the 
>trick, which gcc does).

For other builtins using them with short types is even easier... 

Richard. 

>
>
>'Allan

Reply via email to