Natalie Chouinard | e27b166 | 2024-08-16 16:24:35 +0000 | [diff] [blame^] | 1 | #include <metal_stdlib> |
| 2 | |
| 3 | using namespace metal; |
| 4 | struct tint_private_vars_struct { |
| 5 | uint tint_msl_thread_index_in_quadgroup; |
| 6 | }; |
Natalie Chouinard | e31fa9d | 2024-08-14 20:52:07 +0000 | [diff] [blame] | 7 | |
| 8 | |
Natalie Chouinard | e27b166 | 2024-08-16 16:24:35 +0000 | [diff] [blame^] | 9 | int4 tint_msl_quadSwapDiagonal(int4 e, thread tint_private_vars_struct* const tint_private_vars) { |
| 10 | return quad_shuffle(e,((*(tint_private_vars)).tint_msl_thread_index_in_quadgroup ^ 3u)); |
| 11 | } |
Natalie Chouinard | e31fa9d | 2024-08-14 20:52:07 +0000 | [diff] [blame] | 12 | |
Natalie Chouinard | e27b166 | 2024-08-16 16:24:35 +0000 | [diff] [blame^] | 13 | int4 quadSwapDiagonal_a665b1(thread tint_private_vars_struct* const tint_private_vars) { |
| 14 | int4 res = tint_msl_quadSwapDiagonal(int4(1), tint_private_vars); |
Natalie Chouinard | e31fa9d | 2024-08-14 20:52:07 +0000 | [diff] [blame] | 15 | return res; |
| 16 | } |
| 17 | |
Natalie Chouinard | e27b166 | 2024-08-16 16:24:35 +0000 | [diff] [blame^] | 18 | fragment void fragment_main(device int4* tint_symbol [[buffer(0)]], uint tint_thread_index_in_quadgroup [[thread_index_in_quadgroup]]) { |
| 19 | thread tint_private_vars_struct tint_private_vars = {}; |
| 20 | { |
| 21 | tint_private_vars.tint_msl_thread_index_in_quadgroup = tint_thread_index_in_quadgroup; |
| 22 | } |
| 23 | *(tint_symbol) = quadSwapDiagonal_a665b1(&(tint_private_vars)); |
| 24 | return; |
Natalie Chouinard | e31fa9d | 2024-08-14 20:52:07 +0000 | [diff] [blame] | 25 | } |
| 26 | |
Natalie Chouinard | e27b166 | 2024-08-16 16:24:35 +0000 | [diff] [blame^] | 27 | kernel void compute_main(device int4* tint_symbol_1 [[buffer(0)]], uint tint_thread_index_in_quadgroup_1 [[thread_index_in_quadgroup]]) { |
| 28 | thread tint_private_vars_struct tint_private_vars = {}; |
| 29 | { |
| 30 | tint_private_vars.tint_msl_thread_index_in_quadgroup = tint_thread_index_in_quadgroup_1; |
| 31 | } |
| 32 | *(tint_symbol_1) = quadSwapDiagonal_a665b1(&(tint_private_vars)); |
| 33 | return; |
Natalie Chouinard | e31fa9d | 2024-08-14 20:52:07 +0000 | [diff] [blame] | 34 | } |
| 35 | |