#pragma MSP stage(vertex) layout(location=0) in vec4 position; layout(location=1) in float scale; vec2 func() { float _return = scale*2.0; return vec2(_return, _return); } void main() { float _return = scale+1.0; gl_Position = position*func().xxyy*_return*_return; } /* Expected output: vertex layout(location=0) in vec4 position; layout(location=1) in float scale; void main() { float _return = scale+1.0; float _func_return = scale*2.0; gl_Position = position*vec2(_func_return, _func_return).xxyy*_return*_return; } */