Ben Clayton | 8169693 | 2022-02-23 18:20:30 +0000 | [diff] [blame] | 1 | uint tint_first_leading_bit(uint v) { |
| 2 | uint x = v; |
| 3 | const uint b16 = (bool((x & 4294901760u)) ? 16u : 0u); |
| 4 | x = (x >> b16); |
| 5 | const uint b8 = (bool((x & 65280u)) ? 8u : 0u); |
| 6 | x = (x >> b8); |
| 7 | const uint b4 = (bool((x & 240u)) ? 4u : 0u); |
| 8 | x = (x >> b4); |
| 9 | const uint b2 = (bool((x & 12u)) ? 2u : 0u); |
| 10 | x = (x >> b2); |
| 11 | const uint b1 = (bool((x & 2u)) ? 1u : 0u); |
| 12 | const uint is_zero = ((x == 0u) ? 4294967295u : 0u); |
| 13 | return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero)); |
| 14 | } |
| 15 | |
| 16 | void firstLeadingBit_f0779d() { |
| 17 | uint res = tint_first_leading_bit(1u); |
| 18 | } |
| 19 | |
| 20 | struct tint_symbol { |
| 21 | float4 value : SV_Position; |
| 22 | }; |
| 23 | |
| 24 | float4 vertex_main_inner() { |
| 25 | firstLeadingBit_f0779d(); |
Ben Clayton | e9f8b09 | 2022-06-01 13:14:39 +0000 | [diff] [blame] | 26 | return (0.0f).xxxx; |
Ben Clayton | 8169693 | 2022-02-23 18:20:30 +0000 | [diff] [blame] | 27 | } |
| 28 | |
| 29 | tint_symbol vertex_main() { |
| 30 | const float4 inner_result = vertex_main_inner(); |
| 31 | tint_symbol wrapper_result = (tint_symbol)0; |
| 32 | wrapper_result.value = inner_result; |
| 33 | return wrapper_result; |
| 34 | } |
| 35 | |
| 36 | void fragment_main() { |
| 37 | firstLeadingBit_f0779d(); |
| 38 | return; |
| 39 | } |
| 40 | |
| 41 | [numthreads(1, 1, 1)] |
| 42 | void compute_main() { |
| 43 | firstLeadingBit_f0779d(); |
| 44 | return; |
| 45 | } |