#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 _return_1 = scale*2.0; gl_Position = position*vec2(_return_1, _return_1).xxyy*_return*_return; } */