--- layout: stdlib-reference --- # firstbithigh ## Description Find first set bit starting at high bit and working down. ## Signature
uint firstbithigh<T>(T value) where T : __BuiltinIntegerType; vector<uint, N> firstbithigh<T, int N>(vector<T, N> value) where T : __BuiltinIntegerType;## Generic Parameters #### T: [\_\_BuiltinIntegerType](../interfaces/0_builtinintegertype-029g/index.html) #### N : int ## Parameters #### value : [T](firstbithigh.html#typeparam-T) The value to find set bits in. #### value : [vector](../types/vector/index.html)\<[T](../types/vector/index.html#typeparam-T), [N](../types/vector/index.html#decl-N)\> The value to find set bits in. ## Return value The bit index number of the most significant bit, or returns -1 if value is either 0 if value is a signed type and equal to -1. ## Remarks If value is unsigned, or signed with positive value, the bit index returned is the highest 1-bit. If value is signed with negative value, the bit index returned is the highest 0-bit. For SPIR-V, this function maps to GLSL extended instruction FindSMsb if value is signed, or FindUMsb if value is unsigned. ## Availability and Requirements Defined for the following targets: #### hlsl Available in all stages. #### glsl Available in all stages. #### cpp Available in all stages. #### cuda Available in all stages. #### metal Available in all stages. #### wgsl Available in all stages. #### spirv Available in all stages. #### llvm Available in all stages.