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