spall wrote:

> It is not correct to limit firstbithigh to 32 bit integers. There are a 
> couple of reasons that might make one think that it is, but we do in fact 
> want/need to support int16 and int64 here.
> 
>     1. The [HLSL 
> docs](https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/firstbithigh)
>  only mention integer. Unfortunately that's true for most of these functions, 
> as many of these docs were not updated as 64 and 16 bit types gained support 
> in the language.
> 
If you click through the definition of Int it defines it to be 32 bits.
>     2. DXC's SPIR-V implementation doesn't handle 16- and 64-bit for these 
> functions. As noted in [Incorrect SPIR-V generated when `firstbithigh` is 
> used on a `uint64_t` 
> microsoft/DirectXShaderCompiler#4702](https://github.com/microsoft/DirectXShaderCompiler/issues/4702)
>  we decided not to implement those overloads in DXC, but should reconsider 
> this for clang.
> 
> 
> Despite all of this, DXC does indeed support 16- and 64-bit overloads, as 
> seen here: https://hlsl.godbolt.org/z/qbc17xz35
> 
> Note that the return type of the operation is not overloaded - all of the 
> overloads of this function return uint.

https://github.com/microsoft/DirectXShaderCompiler/blob/main/docs/DXIL.rst#firstbithi
FirstBitHi does explicitly mention only 32 bit integers. 

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

Reply via email to