frasercrmck wrote:

> > Also does this have the same 
> > maybe-defined-maybe-not-depending-on-target-preference as __builtin_clz? 
> > Can you document that explicitly if it is or not?
> > I've always hated that behavior and think it's absurd. My main hesitation 
> > is if we're doing something less confusing, could switch to match the llvm 
> > intrinsic name
> 
> There _is_ currently target-specific zero-is-undef behaviour in this patch. 
> On second thought I agree - I don't think we should be replicating that.
> 
> @efriedma-quic, since you've already approved, would you object to having 
> these builtins unconditionally have zero-is-undef behaviour? What do you 
> think about renaming these builtins as something like 
> `__builtin_elementwise_cttz` (`ctlz`) to avoid the conflation of behaviour 
> with the GCC builtins?

Oh excuse me, there's currently no target-specific behaviour. I missed the 
`HasFallback` in

``` cpp
    Value *ZeroUndef =
        Builder.getInt1(HasFallback || getTarget().isCLZForZeroUndef());
```

So neither `__builtin_ctzg` or `__builtin_elementwise_ctz` currently have 
target-specific undef behaviour. Sorry about that, @arsenm.

https://github.com/llvm/llvm-project/pull/131995
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to