[llvm-commits] PATCH: Initial patches for changing the semantics of llvm.cttz and llvm.ctlz

Chris Lattner clattner at apple.com
Thu Dec 1 15:06:40 PST 2011


On Dec 1, 2011, at 11:20 AM, Dan Gohman wrote:

> On Dec 1, 2011, at 2:47 AM, Chandler Carruth wrote:
>> 
>> 7) remove all support (other than auto-upgrade) for the old intrinsics
> 
> The "old" semantics really are more desirable though, in general. The only
> reason I know of for the "new" semantics is to cater to x86's old bsf and
> bsr instructions. But x86 admits its own deficiency, and has since introduced
> the lzcnt and tzcnt instructions, which behave properly. It seems unfortunate
> to require people who want the sane semantics to use a branch (even if
> CodeGen is clever and can eliminate it).

I would be fine with keeping the existing intrinsics and adding two new ones with gcc-compatible semantics.

How about llvm.ctlz.undef0 or something like that?

-Chris



More information about the llvm-commits mailing list