#include using namespace metal; template T tint_dot3(vec a, vec b) { return a[0]*b[0] + a[1]*b[1] + a[2]*b[2]; } void dot_f1312c() { int res = tint_dot3(int3(), int3()); } struct tint_symbol { float4 value [[position]]; }; float4 vertex_main_inner() { dot_f1312c(); 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_f1312c(); return; } kernel void compute_main() { dot_f1312c(); return; }