#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(0), int3(0)); } struct tint_symbol { float4 value [[position]]; }; float4 vertex_main_inner() { dot_f1312c(); return float4(0.0f); } 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; }