| #include <metal_stdlib> |
| |
| using namespace metal; |
| void uses_a(threadgroup int* const tint_symbol_3) { |
| *(tint_symbol_3) = (*(tint_symbol_3) + 1); |
| } |
| |
| void uses_b(threadgroup int* const tint_symbol_4) { |
| *(tint_symbol_4) = (*(tint_symbol_4) * 2); |
| } |
| |
| void uses_a_and_b(threadgroup int* const tint_symbol_5, threadgroup int* const tint_symbol_6) { |
| *(tint_symbol_5) = *(tint_symbol_6); |
| } |
| |
| void no_uses() { |
| } |
| |
| void outer(threadgroup int* const tint_symbol_7, threadgroup int* const tint_symbol_8) { |
| *(tint_symbol_7) = 0; |
| uses_a(tint_symbol_7); |
| uses_a_and_b(tint_symbol_8, tint_symbol_7); |
| uses_b(tint_symbol_8); |
| no_uses(); |
| } |
| |
| kernel void main1(uint local_invocation_index [[thread_index_in_threadgroup]]) { |
| threadgroup int tint_symbol_9; |
| if ((local_invocation_index == 0u)) { |
| tint_symbol_9 = int(); |
| } |
| threadgroup_barrier(mem_flags::mem_threadgroup); |
| tint_symbol_9 = 42; |
| uses_a(&(tint_symbol_9)); |
| return; |
| } |
| |
| kernel void main2(uint local_invocation_index_1 [[thread_index_in_threadgroup]]) { |
| threadgroup int tint_symbol_10; |
| if ((local_invocation_index_1 == 0u)) { |
| tint_symbol_10 = int(); |
| } |
| threadgroup_barrier(mem_flags::mem_threadgroup); |
| tint_symbol_10 = 7; |
| uses_b(&(tint_symbol_10)); |
| return; |
| } |
| |
| kernel void main3(uint local_invocation_index_2 [[thread_index_in_threadgroup]]) { |
| threadgroup int tint_symbol_11; |
| threadgroup int tint_symbol_12; |
| if ((local_invocation_index_2 == 0u)) { |
| tint_symbol_11 = int(); |
| tint_symbol_12 = int(); |
| } |
| threadgroup_barrier(mem_flags::mem_threadgroup); |
| outer(&(tint_symbol_11), &(tint_symbol_12)); |
| no_uses(); |
| return; |
| } |
| |
| kernel void main4() { |
| no_uses(); |
| return; |
| } |
| |