#include using namespace metal; void uses_a(threadgroup int* const tint_symbol) { *(tint_symbol) = (*(tint_symbol) + 1); } void uses_b(threadgroup int* const tint_symbol_1) { *(tint_symbol_1) = (*(tint_symbol_1) * 2); } void uses_a_and_b(threadgroup int* const tint_symbol_2, threadgroup int* const tint_symbol_3) { *(tint_symbol_2) = *(tint_symbol_3); } void no_uses() { } void outer(threadgroup int* const tint_symbol_4, threadgroup int* const tint_symbol_5) { *(tint_symbol_4) = 0; uses_a(tint_symbol_4); uses_a_and_b(tint_symbol_5, tint_symbol_4); uses_b(tint_symbol_5); no_uses(); } kernel void main1() { threadgroup int tint_symbol_6 = 0; tint_symbol_6 = 42; uses_a(&(tint_symbol_6)); return; } kernel void main2() { threadgroup int tint_symbol_7 = 0; tint_symbol_7 = 7; uses_b(&(tint_symbol_7)); return; } kernel void main3() { threadgroup int tint_symbol_8 = 0; threadgroup int tint_symbol_9 = 0; outer(&(tint_symbol_8), &(tint_symbol_9)); no_uses(); return; } kernel void main4() { no_uses(); return; }