#include using namespace metal; template T tint_dot2(vec a, vec b) { return a[0]*b[0] + a[1]*b[1]; } struct tint_symbol { float4 value [[position]]; }; void dot_fc5f7c() { int res = tint_dot2(int2(), int2()); } float4 vertex_main_inner() { dot_fc5f7c(); return float4(); } vertex tint_symbol vertex_main() { float4 const inner_result = vertex_main_inner(); tint_symbol wrapper_result = {}; wrapper_result.value = inner_result; return wrapper_result; } fragment void fragment_main() { dot_fc5f7c(); return; } kernel void compute_main() { dot_fc5f7c(); return; }