Ben Clayton | fe08ba4 | 2022-02-23 21:18:09 +0000 | [diff] [blame] | 1 | uint3 tint_insert_bits(uint3 v, uint3 n, uint offset, uint count) { |
Antonio Maiorano | 144ebed | 2024-01-30 16:30:15 +0000 | [diff] [blame] | 2 | uint e = (offset + count); |
| 3 | uint mask = ((((offset < 32u) ? (1u << offset) : 0u) - 1u) ^ (((e < 32u) ? (1u << e) : 0u) - 1u)); |
Zhaoming Jiang | 4f3f45c | 2022-11-09 01:54:08 +0000 | [diff] [blame] | 4 | return ((((offset < 32u) ? (n << uint3((offset).xxx)) : (0u).xxx) & uint3((mask).xxx)) | (v & uint3((~(mask)).xxx))); |
Ben Clayton | fe08ba4 | 2022-02-23 21:18:09 +0000 | [diff] [blame] | 5 | } |
| 6 | |
| 7 | void f_1() { |
Ben Clayton | e9f8b09 | 2022-06-01 13:14:39 +0000 | [diff] [blame] | 8 | uint3 v = (0u).xxx; |
| 9 | uint3 n = (0u).xxx; |
Ben Clayton | fe08ba4 | 2022-02-23 21:18:09 +0000 | [diff] [blame] | 10 | uint offset_1 = 0u; |
| 11 | uint count = 0u; |
Antonio Maiorano | 144ebed | 2024-01-30 16:30:15 +0000 | [diff] [blame] | 12 | uint3 x_15 = tint_insert_bits(v, n, offset_1, count); |
Ben Clayton | fe08ba4 | 2022-02-23 21:18:09 +0000 | [diff] [blame] | 13 | return; |
| 14 | } |
| 15 | |
| 16 | [numthreads(1, 1, 1)] |
| 17 | void f() { |
| 18 | f_1(); |
| 19 | return; |
| 20 | } |